From 2dc5b8c66249e829792c1e9e8ccbc54de006950f Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 08:57:23 +0200 Subject: [PATCH 01/10] Start each generated suite with an index of case IDs and purposes. operations.json now opens with an index that maps each case ID to its purpose, before the profiles and cases, and validate requires an index, where present, to name every case with its purpose. Co-Authored-By: Claude Opus 5.5 (1M context) --- cases/operations.json | 933 ++++++++++++++++++++++++++++++++++++++++++ src/model.rs | 16 + tests/grading.rs | 14 + 3 files changed, 963 insertions(+) diff --git a/cases/operations.json b/cases/operations.json index 7acbaca..eccc186 100644 --- a/cases/operations.json +++ b/cases/operations.json @@ -1,5 +1,938 @@ { "version": 1, + "index": { + "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", + "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/container-properties": "Read the properties of a container", + "operations/azure-hns/container-properties-absent": "Report a missing container when reading its properties", + "operations/azure-hns/copy": "Copy an object to another key in the same container", + "operations/azure-hns/copy-missing-source": "Refuse a copy whose source does not exist", + "operations/azure-hns/create-append": "Create an empty append blob", + "operations/azure-hns/create-container": "Create a container", + "operations/azure-hns/create-container-exists": "Refuse to create a container that exists", + "operations/azure-hns/create-container-invalid-name": "Refuse a container name with capitals and an underscore", + "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": "Delete a container", + "operations/azure-hns/delete-container-absent": "Report a missing container on delete", + "operations/azure-hns/delete-container-missing": "delete container missing", + "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-missing": "delete missing", + "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", + "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", + "operations/azure-hns/get-missing-code-in-body": "get missing, with the error code only in the XML body", + "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-inverted": "get range inverted", + "operations/azure-hns/get-range-not-satisfiable": "get range not satisfiable", + "operations/azure-hns/get-range-open": "get range open", + "operations/azure-hns/get-range-past-the-end": "get range past the end", + "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-committed": "head committed", + "operations/azure-hns/head-committed-declaring-md5": "head committed declaring md5", + "operations/azure-hns/head-content-properties": "Return the stored content properties from a HEAD", + "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", + "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", + "operations/azure-hns/list-containers": "List the containers whose names start with a prefix", + "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", + "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-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-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-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/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", + "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/container-properties": "Read the properties of a container", + "operations/azure/container-properties-absent": "Report a missing container when reading its properties", + "operations/azure/copy": "Copy an object to another key in the same container", + "operations/azure/copy-missing-source": "Refuse a copy whose source does not exist", + "operations/azure/create-append": "Create an empty append blob", + "operations/azure/create-container": "Create a container", + "operations/azure/create-container-exists": "Refuse to create a container that exists", + "operations/azure/create-container-invalid-name": "Refuse a container name with capitals and an underscore", + "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": "Delete a container", + "operations/azure/delete-container-absent": "Report a missing container on delete", + "operations/azure/delete-container-missing": "delete container missing", + "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-missing": "delete missing", + "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", + "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", + "operations/azure/get-missing-code-in-body": "get missing, with the error code only in the XML body", + "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-inverted": "get range inverted", + "operations/azure/get-range-not-satisfiable": "get range not satisfiable", + "operations/azure/get-range-open": "get range open", + "operations/azure/get-range-past-the-end": "get range past the end", + "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-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-committed": "head committed", + "operations/azure/head-committed-declaring-md5": "head committed declaring md5", + "operations/azure/head-content-properties": "Return the stored content properties from a HEAD", + "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", + "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", + "operations/azure/list-containers": "List the containers whose names start with a prefix", + "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", + "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-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-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-tier": "Write an object straight into the Cool access tier", + "operations/azure/set-tags": "Replace the tags of an object", + "operations/azure/set-tier-cool": "Move an object to the Cool access tier", + "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-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/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-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-past": "Read an object modified since a past date", + "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", + "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-inverted": "get range inverted", + "operations/s3-express/get-range-not-satisfiable": "get range not satisfiable", + "operations/s3-express/get-range-open": "get range open", + "operations/s3-express/get-range-past-the-end": "get range past the end", + "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": "head missing", + "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", + "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-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-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-md5": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not", + "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-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/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-missing-source": "Refuse a copy whose source does not exist", + "operations/s3/create-bucket": "Create a bucket in the region of the endpoint", + "operations/s3/create-bucket-owned": "Refuse to create a bucket that the account already owns", + "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": "Delete an empty bucket", + "operations/s3/delete-bucket-missing": "delete bucket missing", + "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-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", + "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-past": "Read an object modified since a past date", + "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", + "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-inverted": "get range inverted", + "operations/s3/get-range-not-satisfiable": "get range not satisfiable", + "operations/s3/get-range-open": "get range open", + "operations/s3/get-range-past-the-end": "get range past the end", + "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-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": "Confirm that a bucket exists", + "operations/s3/head-bucket-missing": "Report a bucket that does not exist", + "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": "head missing", + "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", + "operations/s3/list-buckets": "List the buckets whose names start with a prefix", + "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", + "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-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-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-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-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-md5": "Carry a declared transactional MD5 without substituting a payload or stored-property hash.", + "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-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-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", + "operations/s3/start-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately." + }, "profiles": { "azure": { "provider": "azure", diff --git a/src/model.rs b/src/model.rs index 26bd0ca..d5faf32 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, } @@ -315,6 +320,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 +342,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/tests/grading.rs b/tests/grading.rs index cb3514c..fa288f3 100644 --- a/tests/grading.rs +++ b/tests/grading.rs @@ -138,6 +138,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(); From 18eef3c90e0c88232f7d03fe007a22de869b545f Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 08:57:23 +0200 Subject: [PATCH 02/10] Test server-side copies: options, conditions, sources and part copies. 59 cases on S3, S3 Express and both Azure account kinds cover replaced metadata, tags, class and tier, source conditions, sources in another bucket, container or version, encoded source keys, UploadPartCopy, Copy Blob From URL, Put Blob and Put Block From URL, copy state on a HEAD, and Abort Copy Blob. All were verified live. stage-copy-200-internal-error adds an InternalError in a 200 to a part copy on S3 and S3 Express. Co-Authored-By: Claude Opus 5.5 (1M context) --- cases/operations.json | 103936 +++++++++++++++++++++------------------ 1 file changed, 57218 insertions(+), 46718 deletions(-) diff --git a/cases/operations.json b/cases/operations.json index eccc186..4315c23 100644 --- a/cases/operations.json +++ b/cases/operations.json @@ -1,6 +1,8 @@ { "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", @@ -29,7 +31,17 @@ "operations/azure-hns/container-properties": "Read the properties of a container", "operations/azure-hns/container-properties-absent": "Report a missing container when reading its properties", "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-container": "Create a container", "operations/azure-hns/create-container-exists": "Refuse to create a container that exists", @@ -128,6 +140,7 @@ "operations/azure-hns/head-committed": "head committed", "operations/azure-hns/head-committed-declaring-md5": "head committed declaring md5", "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\"", @@ -199,6 +212,7 @@ "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", @@ -236,6 +250,7 @@ "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\"", @@ -262,6 +277,8 @@ "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", @@ -290,7 +307,18 @@ "operations/azure/container-properties": "Read the properties of a container", "operations/azure/container-properties-absent": "Report a missing container when reading its properties", "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-container": "Create a container", "operations/azure/create-container-exists": "Refuse to create a container that exists", @@ -389,6 +417,7 @@ "operations/azure/head-committed": "head committed", "operations/azure/head-committed-declaring-md5": "head committed declaring md5", "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\"", @@ -460,6 +489,7 @@ "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", @@ -497,6 +527,7 @@ "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\"", @@ -553,6 +584,15 @@ "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\"", @@ -695,6 +735,10 @@ "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\"", @@ -744,7 +788,20 @@ "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/create-bucket": "Create a bucket in the region of the endpoint", "operations/s3/create-bucket-owned": "Refuse to create a bucket that the account already owns", "operations/s3/delete-accepted": "delete accepted", @@ -911,6 +968,10 @@ "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\"", @@ -17056,6 +17117,107 @@ ], "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/list-after-delete-with-versions", "profile": "azure", @@ -27570,16 +27732,20 @@ "refusal": null }, { - "id": "operations/azure/get-page-ranges", + "id": "operations/azure/copy-replace-metadata", "profile": "azure", "lane": "core", - "purpose": "List the written ranges of a page blob", + "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/get-page-ranges" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "key": "object-tests/pages/object.vhd", - "op": "azure.get_page_ranges" + "key": "object-tests/copy/target.txt", + "metadata": { + "colour": "blue" + }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -27591,7 +27757,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -27599,7 +27765,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -27611,32 +27777,38 @@ } }, { - "at": "/query/comp", + "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": "pagelist" + "value": "blue" } } ], "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-content-length": "1024" + "x-ms-copy-id": "fixture-copy-id", + "x-ms-copy-status": "success" }, "body": { - "encoding": "utf8", - "data": "0511" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -27652,34 +27824,29 @@ } }, { - "at": "/value/ranges", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": [ - { - "end": 512, - "start": 0 - } - ] + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/upload-pages-unaligned", + "id": "operations/azure/copy-source-if-match", "profile": "azure", "lane": "core", - "purpose": "Refuse a page write that does not start on a 512-byte boundary", + "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/put-page" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", - "key": "object-tests/pages/object.vhd", - "offset": 1, - "op": "azure.upload_pages" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -27699,7 +27866,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -27707,48 +27874,41 @@ "optional": false, "rule": { "is": "equal", - "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "page" + "value": "" } }, { - "at": "/headers/x-ms-page-write", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "update" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-range", + "at": "/headers/x-ms-source-if-match", "optional": false, "rule": { "is": "equal", - "value": "bytes=1-512" + "value": "\"fixture-etag\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidHeaderValue" + "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": "InvalidHeaderValueFixture error" + "encoding": "empty" } } } @@ -27761,41 +27921,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 400 + "value": "ok" } }, { - "at": "/code", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "InvalidHeaderValue" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/upload-pages", + "id": "operations/azure/copy-source-if-match-failed", "profile": "azure", "lane": "core", - "purpose": "Write the first page of a page blob", + "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/put-page" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", - "key": "object-tests/pages/object.vhd", - "offset": 0, - "op": "azure.upload_pages" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-0123456789ab\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -27815,7 +27967,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -27823,49 +27975,40 @@ "optional": false, "rule": { "is": "equal", - "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "page" + "value": "" } }, { - "at": "/headers/x-ms-page-write", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "update" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-range", + "at": "/headers/x-ms-source-if-match", "optional": false, "rule": { "is": "equal", - "value": "bytes=0-511" + "value": "\"fixture-0123456789ab\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "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-sequence-number": "0", - "x-ms-request-server-encrypted": "true" + "x-ms-error-code": "SourceConditionNotMet" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "SourceConditionNotMetFixture error" } } } @@ -27878,24 +28021,41 @@ "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": "SourceConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/create-page", + "id": "operations/azure/copy-source-if-unmodified-since-failed", "profile": "azure", "lane": "core", - "purpose": "Create a page blob of 1,024 bytes", + "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/put-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "key": "object-tests/pages/object.vhd", - "op": "azure.create_page", - "size": 1024 + "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": [ { @@ -27915,7 +28075,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -27927,36 +28087,36 @@ } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "PageBlob" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-blob-content-length", + "at": "/headers/x-ms-source-if-unmodified-since", "optional": false, "rule": { "is": "equal", - "value": "1024" + "value": "Mon, 01 Jan 2024 00:00:00 GMT" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "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-request-server-encrypted": "true" + "x-ms-error-code": "SourceConditionNotMet" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "SourceConditionNotMetFixture error" } } } @@ -27969,24 +28129,41 @@ "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": "SourceConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/append-block-to-block-blob", + "id": "operations/azure/copy-if-none-match-exists", "profile": "azure", "lane": "core", - "purpose": "Refuse an append to a block blob", + "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/append-block" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "c2Vjb25k", - "key": "object-tests/append/object.log", - "op": "azure.append_block" + "if_none_match": "*", + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -28006,7 +28183,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28014,15 +28191,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { - "at": "/query/comp", + "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": "appendblock" + "value": "*" } } ], @@ -28035,11 +28220,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlobType" + "x-ms-error-code": "BlobAlreadyExists" }, "body": { "encoding": "utf8", - "data": "InvalidBlobTypeFixture error" + "data": "BlobAlreadyExistsFixture error" } } } @@ -28068,25 +28253,25 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidBlobType" + "value": "BlobAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure/append-block-at-wrong-position", + "id": "operations/azure/copy-across-containers", "profile": "azure", "lane": "core", - "purpose": "Refuse an append whose position condition does not match the blob length", + "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/append-block" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "append_position": 0, - "body_base64": "c2Vjb25k", - "key": "object-tests/append/object.log", - "op": "azure.append_block" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_container": "source", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -28106,7 +28291,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28114,40 +28299,33 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "appendblock" + "value": "" } }, { - "at": "/headers/x-ms-blob-condition-appendpos", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "0" + "is": "matches", + "pattern": "https?://[^/]+/source/object-tests/copy/source\\.txt" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "AppendPositionConditionNotMet" + "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": "AppendPositionConditionNotMetFixture error" + "encoding": "empty" } } } @@ -28160,40 +28338,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 412 + "value": "ok" } }, { - "at": "/code", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "AppendPositionConditionNotMet" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/append-block", + "id": "operations/azure/copy-tier", "profile": "azure", "lane": "core", - "purpose": "Append a block to an append blob and report its offset", + "purpose": "Copy a blob into another access tier, named in x-ms-access-tier", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "c2Vjb25k", - "key": "object-tests/append/object.log", - "op": "azure.append_block" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "tier": "Cool" }, "exchanges": [ { @@ -28213,7 +28384,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28221,31 +28392,38 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { - "at": "/query/comp", + "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": "appendblock" + "value": "Cool" } } ], "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-append-offset": "5", - "x-ms-blob-committed-block-count": "2", - "x-ms-request-server-encrypted": "true" + "x-ms-copy-id": "fixture-copy-id", + "x-ms-copy-status": "success" }, "body": { "encoding": "empty" @@ -28265,35 +28443,28 @@ } }, { - "at": "/value/append_offset", - "optional": false, - "rule": { - "is": "equal", - "value": 5 - } - }, - { - "at": "/value/committed_block_count", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/create-append", + "id": "operations/azure/copy-source-key-encoded", "profile": "azure", "lane": "core", - "purpose": "Create an empty append blob", + "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/put-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "key": "object-tests/append/object.log", - "op": "azure.create_append" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/a b+c%é?#.txt" }, "exchanges": [ { @@ -28313,7 +28484,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28325,25 +28496,26 @@ } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "AppendBlob" + "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": 201, + "status": 202, "headers": { "date": { "from": "now" }, "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-ms-request-server-encrypted": "true" + "x-ms-copy-id": "fixture-copy-id", + "x-ms-copy-status": "success" }, "body": { "encoding": "empty" @@ -28361,23 +28533,31 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/copy_status", + "optional": false, + "rule": { + "is": "equal", + "value": "success" + } } ], "refusal": null }, { - "id": "operations/azure/put-leased-if-match-without-lease-id", + "id": "operations/azure/copy-source-version", "profile": "azure", "lane": "core", - "purpose": "Refuse a write to a leased object whose If-Match holds but that names no lease ID", + "purpose": "Copy an earlier version of a blob, named by versionid in the x-ms-copy-source URL", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "c2Vjb25k", - "if_match": "\"fixture-etag\"", - "key": "object-tests/leases/object.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "source_version": "2024-01-01T00:00:00.0000000Z" }, "exchanges": [ { @@ -28397,7 +28577,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28405,40 +28585,33 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/headers/x-ms-blob-type", - "optional": false, - "rule": { - "is": "equal", - "value": "BlockBlob" + "value": "" } }, { - "at": "/headers/if-match", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-etag\"" + "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": 412, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "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": "LeaseIdMissingFixture error" + "encoding": "empty" } } } @@ -28451,41 +28624,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 412 + "value": "ok" } }, { - "at": "/code", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "LeaseIdMissing" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/put-leased-with-lease-id", + "id": "operations/azure/copy-sync", "profile": "azure", "lane": "core", - "purpose": "Write to a leased object with its lease ID", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url" ], "call": { - "body_base64": "c2Vjb25k", - "key": "object-tests/leases/object.txt", - "lease_id": "11111111-2222-3333-4444-555555555555", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "sync": true }, "exchanges": [ { @@ -28505,7 +28670,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28513,37 +28678,40 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-lease-id", + "at": "/headers/x-ms-requires-sync", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": "true" } } ], - "allow_headers": [], + "allow_headers": [ + "x-ms-copy-source-authorization" + ], "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-request-server-encrypted": "true" + "x-ms-copy-id": "fixture-copy-id", + "x-ms-copy-status": "success" }, "body": { "encoding": "empty" @@ -28561,22 +28729,31 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/copy_status", + "optional": false, + "rule": { + "is": "equal", + "value": "success" + } } ], "refusal": null }, { - "id": "operations/azure/put-leased-without-lease-id", + "id": "operations/azure/copy-pending", "profile": "azure", "lane": "core", - "purpose": "Refuse a write to a leased object that names no lease ID", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], + "origin": "transient", "call": { - "body_base64": "c2Vjb25k", - "key": "object-tests/leases/object.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -28596,7 +28773,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28604,32 +28781,33 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "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": "LeaseIdMissingFixture error" + "encoding": "empty" } } } @@ -28642,41 +28820,40 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "pending" } }, { - "at": "/code", + "at": "/value/copy_id", "optional": false, "rule": { "is": "equal", - "value": "LeaseIdMissing" + "value": "fixture-copy-id" } } ], "refusal": null }, { - "id": "operations/azure/lease-break", + "id": "operations/azure/put-from-url", "profile": "azure", "lane": "core", - "purpose": "Break a lease at once", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob-from-url" ], "call": { - "action": "break", - "break_period": 0, - "key": "object-tests/leases/object.txt", - "op": "azure.lease" + "key": "object-tests/copy/target.txt", + "op": "azure.put_from_url", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -28696,7 +28873,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28708,41 +28885,36 @@ } }, { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "lease" - } - }, - { - "at": "/headers/x-ms-lease-action", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "break" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-lease-break-period", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "0" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "x-ms-copy-source-authorization", + "x-ms-copy-source-blob-properties" + ], "allow_query": [], "response": { - "status": 202, + "status": 201, "headers": { "date": { "from": "now" }, "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-ms-lease-time": "0" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "empty" @@ -28760,23 +28932,31 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-etag\"" + } } ], "refusal": null }, { - "id": "operations/azure/lease-release", + "id": "operations/azure/abort-copy", "profile": "azure", "lane": "core", - "purpose": "Release a lease", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob" ], + "origin": "transient", "call": { - "action": "release", - "key": "object-tests/leases/object.txt", - "lease_id": "11111111-2222-3333-4444-555555555555", - "op": "azure.lease" + "copy_id": "fixture-copy-id", + "key": "object-tests/copy/target.txt", + "op": "azure.abort_copy" }, "exchanges": [ { @@ -28796,7 +28976,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28812,36 +28992,34 @@ "optional": false, "rule": { "is": "equal", - "value": "lease" + "value": "copy" } }, { - "at": "/headers/x-ms-lease-action", + "at": "/query/copyid", "optional": false, "rule": { "is": "equal", - "value": "release" + "value": "fixture-copy-id" } }, { - "at": "/headers/x-ms-lease-id", + "at": "/headers/x-ms-copy-action", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": "abort" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { "date": { "from": "now" - }, - "etag": "\"fixture-etag\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { "encoding": "empty" @@ -28864,19 +29042,17 @@ "refusal": null }, { - "id": "operations/azure/lease-acquire-leased", + "id": "operations/azure/abort-copy-finished", "profile": "azure", "lane": "core", - "purpose": "Refuse a second lease while another lease holds the object", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob" ], "call": { - "action": "acquire", - "duration": 15, - "key": "object-tests/leases/object.txt", - "op": "azure.lease", - "proposed_lease_id": "66666666-7777-8888-9999-000000000000" + "copy_id": "fixture-copy-id", + "key": "object-tests/copy/target.txt", + "op": "azure.abort_copy" }, "exchanges": [ { @@ -28896,7 +29072,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -28912,31 +29088,23 @@ "optional": false, "rule": { "is": "equal", - "value": "lease" - } - }, - { - "at": "/headers/x-ms-lease-action", - "optional": false, - "rule": { - "is": "equal", - "value": "acquire" + "value": "copy" } }, { - "at": "/headers/x-ms-lease-duration", + "at": "/query/copyid", "optional": false, "rule": { "is": "equal", - "value": "15" + "value": "fixture-copy-id" } }, { - "at": "/headers/x-ms-proposed-lease-id", + "at": "/headers/x-ms-copy-action", "optional": false, "rule": { "is": "equal", - "value": "66666666-7777-8888-9999-000000000000" + "value": "abort" } } ], @@ -28949,11 +29117,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "LeaseAlreadyPresent" + "x-ms-error-code": "NoPendingCopyOperation" }, "body": { "encoding": "utf8", - "data": "LeaseAlreadyPresentFixture error" + "data": "NoPendingCopyOperationFixture error" } } } @@ -28982,26 +29150,23 @@ "optional": false, "rule": { "is": "equal", - "value": "LeaseAlreadyPresent" + "value": "NoPendingCopyOperation" } } ], "refusal": null }, { - "id": "operations/azure/lease-acquire", + "id": "operations/azure/get-page-ranges", "profile": "azure", "lane": "core", - "purpose": "Acquire a lease on an object with a proposed lease ID", + "purpose": "List the written ranges of a page blob", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/get-page-ranges" ], "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/pages/object.vhd", + "op": "azure.get_page_ranges" }, "exchanges": [ { @@ -29013,7 +29178,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -29021,7 +29186,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -29037,49 +29202,28 @@ "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" + "value": "pagelist" } } ], "allow_headers": [], "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-lease-id": "11111111-2222-3333-4444-555555555555" + "x-ms-blob-content-length": "1024" }, "body": { - "encoding": "empty" - } + "encoding": "utf8", + "data": "0511" + }, + "framing": "chunked" } } ] @@ -29095,31 +29239,34 @@ } }, { - "at": "/value/lease_id", + "at": "/value/ranges", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": [ + { + "end": 512, + "start": 0 + } + ] } } ], "refusal": null }, { - "id": "operations/azure/put-with-tags", + "id": "operations/azure/upload-pages-unaligned", "profile": "azure", "lane": "core", - "purpose": "Write an object with tags", + "purpose": "Refuse a page write that does not start on a 512-byte boundary", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page" ], "call": { - "body_base64": "Zmlyc3Q=", - "key": "object-tests/tags/object.txt", - "op": "put", - "tags": { - "project": "object-tests" - } + "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", + "key": "object-tests/pages/object.vhd", + "offset": 1, + "op": "azure.upload_pages" }, "exchanges": [ { @@ -29139,7 +29286,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -29147,40 +29294,48 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "page" } }, { - "at": "/headers/x-ms-tags", + "at": "/headers/x-ms-page-write", "optional": false, "rule": { "is": "equal", - "value": "project=object-tests" + "value": "update" + } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=1-512" } } ], "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" + "x-ms-error-code": "InvalidHeaderValue" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "InvalidHeaderValueFixture error" } } } @@ -29193,23 +29348,41 @@ "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": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure/get-tags", + "id": "operations/azure/upload-pages", "profile": "azure", "lane": "core", - "purpose": "Read the tags of an object", + "purpose": "Write the first page of a page blob", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page" ], "call": { - "key": "object-tests/tags/object.txt", - "op": "azure.get_tags" + "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", + "key": "object-tests/pages/object.vhd", + "offset": 0, + "op": "azure.upload_pages" }, "exchanges": [ { @@ -29221,7 +29394,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -29229,7 +29402,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -29237,7 +29410,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" } }, { @@ -29245,23 +29418,41 @@ "optional": false, "rule": { "is": "equal", - "value": "tags" + "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": 200, + "status": 201, "headers": { - "content-type": "application/xml", "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" }, "body": { - "encoding": "utf8", - "data": "projectobject-tests" + "encoding": "empty" } } } @@ -29276,34 +29467,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/tags", - "optional": false, - "rule": { - "is": "equal", - "value": { - "project": "object-tests" - } - } } ], "refusal": null }, { - "id": "operations/azure/set-tags", + "id": "operations/azure/create-page", "profile": "azure", "lane": "core", - "purpose": "Replace the tags of an object", + "purpose": "Create a page blob of 1,024 bytes", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" ], "call": { - "key": "object-tests/tags/object.txt", - "op": "azure.set_tags", - "tags": { - "project": "object-tests" - } + "key": "object-tests/pages/object.vhd", + "op": "azure.create_page", + "size": 1024 }, "exchanges": [ { @@ -29323,45 +29502,45 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "projectobject-tests" + "is": "equal", + "value": "" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "tags" + "value": "PageBlob" } }, { - "at": "/headers/content-type", + "at": "/headers/x-ms-blob-content-length", "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/xml; charset=UTF-8" - ] + "is": "equal", + "value": "1024" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 204, + "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" @@ -29384,18 +29563,17 @@ "refusal": null }, { - "id": "operations/azure/put-with-tier", + "id": "operations/azure/append-block-to-block-blob", "profile": "azure", "lane": "core", - "purpose": "Write an object straight into the Cool access tier", + "purpose": "Refuse an append to a block blob", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block" ], "call": { - "body_base64": "Zmlyc3Q=", - "key": "object-tests/tiers/object.txt", - "op": "put", - "tier": "Cool" + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -29415,7 +29593,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -29423,40 +29601,32 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" - } - }, - { - "at": "/headers/x-ms-blob-type", - "optional": false, - "rule": { - "is": "equal", - "value": "BlockBlob" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-access-tier", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "Cool" + "value": "appendblock" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 409, "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": "InvalidBlobType" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "InvalidBlobTypeFixture error" } } } @@ -29469,24 +29639,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 409 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidBlobType" } } ], "refusal": null }, { - "id": "operations/azure/set-tier-unknown", + "id": "operations/azure/append-block-at-wrong-position", "profile": "azure", "lane": "core", - "purpose": "Refuse an access tier the service does not have", + "purpose": "Refuse an append whose position condition does not match the blob length", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier" + "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block" ], "call": { - "key": "object-tests/tiers/object.txt", - "op": "azure.set_tier", - "tier": "Warm" + "append_position": 0, + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -29506,7 +29693,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -29514,7 +29701,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { @@ -29522,32 +29709,32 @@ "optional": false, "rule": { "is": "equal", - "value": "tier" + "value": "appendblock" } }, { - "at": "/headers/x-ms-access-tier", + "at": "/headers/x-ms-blob-condition-appendpos", "optional": false, "rule": { "is": "equal", - "value": "Warm" + "value": "0" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidHeaderValue" + "x-ms-error-code": "AppendPositionConditionNotMet" }, "body": { "encoding": "utf8", - "data": "InvalidHeaderValueFixture error" + "data": "AppendPositionConditionNotMetFixture error" } } } @@ -29568,7 +29755,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 412 } }, { @@ -29576,24 +29763,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidHeaderValue" + "value": "AppendPositionConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/set-tier-cool", + "id": "operations/azure/append-block", "profile": "azure", "lane": "core", - "purpose": "Move an object to the Cool access tier", + "purpose": "Append a block to an append blob and report its offset", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier" + "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block" ], "call": { - "key": "object-tests/tiers/object.txt", - "op": "azure.set_tier", - "tier": "Cool" + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -29613,7 +29800,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -29621,7 +29808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { @@ -29629,26 +29816,23 @@ "optional": false, "rule": { "is": "equal", - "value": "tier" - } - }, - { - "at": "/headers/x-ms-access-tier", - "optional": false, - "rule": { - "is": "equal", - "value": "Cool" + "value": "appendblock" } } ], "allow_headers": [], "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-blob-append-offset": "5", + "x-ms-blob-committed-block-count": "2", + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "empty" @@ -29666,24 +29850,37 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/append_offset", + "optional": false, + "rule": { + "is": "equal", + "value": 5 + } + }, + { + "at": "/value/committed_block_count", + "optional": false, + "rule": { + "is": "equal", + "value": 2 + } } ], "refusal": null }, { - "id": "operations/azure/put-internal-error", + "id": "operations/azure/create-append", "profile": "azure", "lane": "core", - "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries", + "purpose": "Create an empty append blob", "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/put-blob" ], - "origin": "transient", "call": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/append/object.log", + "op": "azure.create_append" }, "exchanges": [ { @@ -29703,7 +29900,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -29711,7 +29908,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -29719,31 +29916,57 @@ "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "AppendBlob" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "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": "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": [ { @@ -29761,7 +29984,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -29769,7 +29992,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { @@ -29779,30 +30002,79 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-etag\"" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "x-ms-error-code": "LeaseIdMissing" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "data": "LeaseIdMissingFixture 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": "LeaseIdMissing" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/put-leased-with-lease-id", + "profile": "azure", + "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": [ { "alternatives": [ { @@ -29820,7 +30092,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -29828,7 +30100,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { @@ -29838,30 +30110,62 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-lease-id", + "optional": false, + "rule": { + "is": "equal", + "value": "11111111-2222-3333-4444-555555555555" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "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" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/put-leased-without-lease-id", + "profile": "azure", + "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": [ { @@ -29879,7 +30183,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -29887,7 +30191,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { @@ -29899,28 +30203,69 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "x-ms-error-code": "LeaseIdMissing" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "data": "LeaseIdMissingFixture 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": "LeaseIdMissing" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/lease-break", + "profile": "azure", + "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": [ { @@ -29938,7 +30283,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -29946,40 +30291,81 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-lease-time": "0" }, "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" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/lease-release", + "profile": "azure", + "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": [ { "alternatives": [ { @@ -29997,7 +30383,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -30005,39 +30391,51 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "etag": "\"fixture-etag\"", + "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": [ @@ -30046,41 +30444,26 @@ "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" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure/put-if-unmodified-since-past", + "id": "operations/azure/lease-acquire-leased", "profile": "azure", "lane": "core", - "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", - "key": "object-tests/write/object.txt", - "op": "put" + "action": "acquire", + "duration": 15, + "key": "object-tests/leases/object.txt", + "op": "azure.lease", + "proposed_lease_id": "66666666-7777-8888-9999-000000000000" }, "exchanges": [ { @@ -30100,7 +30483,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -30108,42 +30491,56 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "lease" } }, { - "at": "/headers/if-unmodified-since", + "at": "/headers/x-ms-lease-action", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "x-ms-error-code": "LeaseAlreadyPresent" }, "body": { "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "data": "LeaseAlreadyPresentFixture error" } } } @@ -30164,7 +30561,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 409 } }, { @@ -30172,25 +30569,26 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "LeaseAlreadyPresent" } } ], "refusal": null }, { - "id": "operations/azure/put-content-encoding-gzip", + "id": "operations/azure/lease-acquire", "profile": "azure", "lane": "core", - "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged", + "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": { - "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", - "content_encoding": "gzip", - "key": "object-tests/write/object.txt", - "op": "put" + "action": "acquire", + "duration": 15, + "key": "object-tests/leases/object.txt", + "op": "azure.lease", + "proposed_lease_id": "11111111-2222-3333-4444-555555555555" }, "exchanges": [ { @@ -30210,7 +30608,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -30218,49 +30616,101 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "lease" } }, { - "at": "/headers/x-ms-blob-content-encoding", + "at": "/headers/x-ms-lease-action", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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-ms-version-id": "2024-01-01T00:00:00.2084665Z" + "x-ms-lease-id": "11111111-2222-3333-4444-555555555555" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/lease_id", + "optional": false, + "rule": { + "is": "equal", + "value": "11111111-2222-3333-4444-555555555555" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/put-with-tags", + "profile": "azure", + "lane": "core", + "purpose": "Write an object with tags", + "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": [ + { + "alternatives": [ { "request": [ { @@ -30276,7 +30726,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -30284,7 +30734,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "Zmlyc3Q=" } }, { @@ -30296,34 +30746,28 @@ } }, { - "at": "/headers/content-encoding", + "at": "/headers/x-ms-tags", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "value": "project=object-tests" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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-ms-version-id": "2024-01-01T00:00:00.2084665Z" + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -30338,42 +30782,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-content-properties", + "id": "operations/azure/get-tags", "profile": "azure", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "purpose": "Read the tags of an 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/get-blob-tags" ], "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/tags/object.txt", + "op": "azure.get_tags" }, "exchanges": [ { @@ -30385,7 +30808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -30393,7 +30816,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -30401,73 +30824,77 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - }, - { - "at": "/headers/x-ms-blob-type", - "optional": false, - "rule": { - "is": "equal", - "value": "BlockBlob" + "value": "" } }, { - "at": "/headers/x-ms-blob-content-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "text/plain; charset=utf-8" + "value": "tags" } - }, - { - "at": "/headers/x-ms-blob-content-language", - "optional": false, - "rule": { - "is": "equal", - "value": "nl-NL" + } + ], + "allow_headers": [], + "allow_query": [], + "response": { + "status": 200, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" } }, - { - "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": "" + "encoding": "utf8", + "data": "projectobject-tests" } } - }, + } + ] + } + ], + "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/azure/set-tags", + "profile": "azure", + "lane": "core", + "purpose": "Replace the tags of an object", + "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": [ + { + "alternatives": [ { "request": [ { @@ -30483,78 +30910,48 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "is": "xml", + "value": "projectobject-tests" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "tags" } }, { "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" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 204, "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": "" + "encoding": "empty" } } } @@ -30569,38 +30966,23 @@ "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-first-version", + "id": "operations/azure/put-with-tier", "profile": "azure", "lane": "core", - "purpose": "put first version", + "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": { - "body_base64": "djE=", - "key": "object-tests/versions-mtydohr2/object.txt", - "op": "put" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/tiers/object.txt", + "op": "put", + "tier": "Cool" }, "exchanges": [ { @@ -30620,7 +31002,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -30628,7 +31010,7 @@ "optional": false, "rule": { "is": "equal", - "value": "djE=" + "value": "Zmlyc3Q=" } }, { @@ -30638,28 +31020,30 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-access-tier", + "optional": false, + "rule": { + "is": "equal", + "value": "Cool" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "date": { "from": "now" }, - "etag": "\"fixture-5769a0807b46\"", + "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-ms-version-id": "2024-01-01T00:00:00.2318906Z" + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -30674,39 +31058,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-5769a0807b46\"" - } - }, - { - "at": "/value/version", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.2318906Z" - } } ], "refusal": null }, { - "id": "operations/azure/put-if-match-current", + "id": "operations/azure/set-tier-unknown", "profile": "azure", "lane": "core", - "purpose": "put if match current", + "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": { - "body_base64": "cmVwbGFjZWQ=", - "if_match": "\"fixture-b9991ef94e3d\"", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/tiers/object.txt", + "op": "azure.set_tier", + "tier": "Warm" }, "exchanges": [ { @@ -30726,7 +31093,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -30734,46 +31101,40 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" + "value": "" } }, { - "at": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b9991ef94e3d\"" + "value": "tier" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-access-tier", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "Warm" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 400, "headers": { - "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-3e075954b24b\"", - "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.3814952Z" + "x-ms-error-code": "InvalidHeaderValue" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidHeaderValueFixture error" } } } @@ -30786,41 +31147,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3e075954b24b\"" + "value": 400 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.3814952Z" + "value": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure/put-if-none-match-missing", + "id": "operations/azure/set-tier-cool", "profile": "azure", "lane": "core", - "purpose": "put if none match missing", + "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": { - "body_base64": "ZnJlc2g=", - "if_none_match": "*", - "key": "object-tests/write/fresh.txt", - "op": "put" + "key": "object-tests/tiers/object.txt", + "op": "azure.set_tier", + "tier": "Cool" }, "exchanges": [ { @@ -30840,7 +31200,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/fresh.txt" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -30848,46 +31208,37 @@ "optional": false, "rule": { "is": "equal", - "value": "ZnJlc2g=" + "value": "" } }, { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "tier" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-access-tier", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "Cool" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 200, "headers": { - "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", "date": { "from": "now" - }, - "etag": "\"fixture-0445b9b5a1dd\"", - "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.2457093Z" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -30902,37 +31253,23 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-0445b9b5a1dd\"" - } - }, - { - "at": "/value/version", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.2457093Z" - } } ], "refusal": null }, { - "id": "operations/azure/put-key-1024", + "id": "operations/azure/put-internal-error", "profile": "azure", "lane": "core", - "purpose": "put key 1024", + "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": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -30953,7 +31290,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -30961,7 +31298,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -30978,69 +31315,22 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 500, "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": "InternalError" }, "body": { - "encoding": "base64", - "data": "" + "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-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": [ { @@ -31058,7 +31348,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31066,7 +31356,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -31083,106 +31373,23 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 500, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "OutOfRangeInput" + "x-ms-error-code": "InternalError" }, "body": { "encoding": "utf8", - "data": "OutOfRangeInputFixture 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": 400 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "OutOfRangeInput" - } - } - ], - "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": false, - "rule": { - "is": "equal", - "value": 400 - } + ], + "optional": true }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "OutOfRangeInput" - } - } - ] - }, - { - "id": "operations/azure/put-key-under-object", - "profile": "azure", - "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": [ { "alternatives": [ { @@ -31200,7 +31407,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/order/a/b" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31208,7 +31415,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -31225,70 +31432,23 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 500, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-type": "application/xml", "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": "InternalError" }, "body": { - "encoding": "base64", - "data": "" + "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-17ced520f182\"" - } + ], + "optional": true }, - { - "at": "/value/version", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.2584945Z" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/put-lost-the-race-to-create", - "profile": "azure", - "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": [ { @@ -31314,15 +31474,7 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" - } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -31339,69 +31491,23 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 500, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobAlreadyExists" + "x-ms-error-code": "InternalError" }, "body": { "encoding": "utf8", - "data": "BlobAlreadyExistsFixture 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": 409 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "BlobAlreadyExists" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/put-md5-mismatch", - "profile": "azure", - "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==" + ], + "optional": true }, - "key": "object-tests/hashes/md5-mismatch.txt", - "op": "put" - }, - "exchanges": [ { "alternatives": [ { @@ -31419,7 +31525,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5-mismatch.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31427,15 +31533,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" - } - }, - { - "at": "/headers/content-md5", - "optional": false, - "rule": { - "is": "equal", - "value": "eV8yArF8trw9S3cdjGyerw==" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -31452,68 +31550,23 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 500, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "Md5Mismatch" + "x-ms-error-code": "InternalError" }, "body": { "encoding": "utf8", - "data": "Md5MismatchFixture 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": 400 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "Md5Mismatch" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/put-metadata-empty-value", - "profile": "azure", - "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": "" + ], + "optional": true }, - "op": "put" - }, - "exchanges": [ { "alternatives": [ { @@ -31531,7 +31584,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31539,15 +31592,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-ms-meta-empty", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -31564,25 +31609,22 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 500, "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" + "x-ms-error-code": "InternalError" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InternalErrorThe server encountered an internal error. Please retry the request." } } } - ] + ], + "optional": true } ], "expect": [ @@ -31591,42 +31633,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-333d95b64818\"" + "value": 500 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9480929Z" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/azure/put-metadata-invalid-name", + "id": "operations/azure/put-if-unmodified-since-past", "profile": "azure", "lane": "core", - "purpose": "put metadata invalid name", + "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": "MQ==", - "key": "object-tests/metadata/invalid-name.txt", - "metadata": { - "not-valid": "1" - }, + "body_base64": "MDEyMzQ1Njc4OQ==", + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -31647,7 +31687,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/invalid-name.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31655,23 +31695,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-meta-not-valid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "BlockBlob" } }, { - "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" } } ], @@ -31680,17 +31720,17 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidMetadata" + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -31711,7 +31751,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 412 } }, { @@ -31719,64 +31759,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidMetadata" + "value": "ConditionNotMet" } } ], - "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" - } - } - ] + "refusal": null }, { - "id": "operations/azure/put-metadata-replaced", + "id": "operations/azure/put-content-encoding-gzip", "profile": "azure", "lane": "core", - "purpose": "put metadata replaced", + "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": "Mg==", - "key": "object-tests/metadata/replaced.txt", + "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", + "content_encoding": "gzip", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -31797,7 +31797,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31805,7 +31805,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { @@ -31815,6 +31815,14 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-blob-content-encoding", + "optional": false, + "rule": { + "is": "equal", + "value": "gzip" + } } ], "allow_headers": [ @@ -31824,73 +31832,22 @@ "response": { "status": 201, "headers": { - "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "etag": "\"fixture-37b036d8c13f\"", + "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.7487600Z" + "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-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": [ { @@ -31906,7 +31863,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31914,31 +31871,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-ms-meta-name", - "optional": false, - "rule": { - "is": "equal", - "value": "value" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { - "at": "/headers/x-ms-meta-second", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/content-encoding", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "gzip" } } ], @@ -31949,15 +31898,15 @@ "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "etag": "\"fixture-9abbc5e374ca\"", + "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.7035036Z" + "x-ms-version-id": "2024-01-01T00:00:00.2084665Z" }, "body": { "encoding": "base64", @@ -31982,7 +31931,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9abbc5e374ca\"" + "value": "\"fixture-b9991ef94e3d\"" } }, { @@ -31990,26 +31939,27 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7035036Z" + "value": "2024-01-01T00:00:00.2084665Z" } } ], "refusal": null }, { - "id": "operations/azure/put-metadata-identifier-name", + "id": "operations/azure/put-content-properties", "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.", + "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": "MQ==", - "key": "object-tests/metadata/identifier-name.txt", - "metadata": { - "_a1": "1" - }, + "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": [ @@ -32030,7 +31980,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/identifier-name.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -32038,23 +31988,47 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-meta-_a1", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-blob-content-type", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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" } } ], @@ -32065,69 +32039,22 @@ "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-9abbc5e374ca\"", + "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.7035036Z" + "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-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": [ { @@ -32143,7 +32070,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -32151,7 +32078,7 @@ "optional": false, "rule": { "is": "equal", - "value": "dHdv" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -32161,110 +32088,37 @@ "is": "equal", "value": "BlockBlob" } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 201, - "headers": { - "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==", - "date": { - "from": "now" - }, - "etag": "\"fixture-937c89bb7b5c\"", - "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.6268993Z" }, - "body": { - "encoding": "base64", - "data": "" - } - } - } - ] - } - ], - "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": [ { - "at": "/method", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "text/plain; charset=utf-8" } }, { - "at": "/path", + "at": "/headers/content-language", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "nl-NL" } }, { - "at": "/body_base64", + "at": "/headers/x-ms-blob-content-disposition", "optional": false, "rule": { "is": "equal", - "value": "b3ZlcndyaXR0ZW4=" + "value": "attachment; filename=\"report.txt\"" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/cache-control", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "max-age=3600" } } ], @@ -32275,15 +32129,15 @@ "response": { "status": 201, "headers": { - "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-cf4724500964\"", + "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.7758823Z" + "x-ms-version-id": "2024-01-01T00:00:00.2084665Z" }, "body": { "encoding": "base64", @@ -32308,7 +32162,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-cf4724500964\"" + "value": "\"fixture-b9991ef94e3d\"" } }, { @@ -32316,24 +32170,23 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7758823Z" + "value": "2024-01-01T00:00:00.2084665Z" } } ], "refusal": null }, { - "id": "operations/azure/put-precondition-failed", + "id": "operations/azure/put-first-version", "profile": "azure", "lane": "core", - "purpose": "put precondition failed", + "purpose": "put first version", "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", + "body_base64": "djE=", + "key": "object-tests/versions-mtydohr2/object.txt", "op": "put" }, "exchanges": [ @@ -32354,7 +32207,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/versions-mtydohr2/object.txt" } }, { @@ -32362,15 +32215,7 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "djE=" } }, { @@ -32387,17 +32232,21 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "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": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -32410,42 +32259,39 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-5769a0807b46\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "2024-01-01T00:00:00.2318906Z" } } ], "refusal": null }, { - "id": "operations/azure/put-precondition-failed-code-in-body", + "id": "operations/azure/put-if-match-current", "profile": "azure", "lane": "core", - "purpose": "put precondition failed, with the error code only in the XML body", + "purpose": "put if match current", "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": { - "body_base64": "YW5vdGhlciBvYmplY3Q=", - "if_match": "\"fixture-088e5dc109cf\"", + "body_base64": "cmVwbGFjZWQ=", + "if_match": "\"fixture-b9991ef94e3d\"", "key": "object-tests/write/object.txt", "op": "put" }, @@ -32475,7 +32321,7 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "cmVwbGFjZWQ=" } }, { @@ -32483,7 +32329,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "\"fixture-b9991ef94e3d\"" } }, { @@ -32500,16 +32346,21 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", "date": { "from": "now" - } + }, + "etag": "\"fixture-3e075954b24b\"", + "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.3814952Z" }, "body": { - "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -32522,39 +32373,40 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-3e075954b24b\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "2024-01-01T00:00:00.3814952Z" } } ], "refusal": null }, { - "id": "operations/azure/put-refused", + "id": "operations/azure/put-if-none-match-missing", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "put if none match missing", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object.txt", + "body_base64": "ZnJlc2g=", + "if_none_match": "*", + "key": "object-tests/write/fresh.txt", "op": "put" }, "exchanges": [ @@ -32575,7 +32427,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/write/fresh.txt" } }, { @@ -32583,7 +32435,15 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "ZnJlc2g=" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -32600,17 +32460,21 @@ ], "allow_query": [], "response": { - "status": 403, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", "date": { "from": "now" }, - "x-ms-error-code": "AuthorizationPermissionMismatch" + "etag": "\"fixture-0445b9b5a1dd\"", + "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.2457093Z" }, "body": { - "encoding": "utf8", - "data": "AuthorizationPermissionMismatchFixture error" + "encoding": "base64", + "data": "" } } } @@ -32623,39 +32487,39 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 403 + "value": "\"fixture-0445b9b5a1dd\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "AuthorizationPermissionMismatch" + "value": "2024-01-01T00:00:00.2457093Z" } } ], "refusal": null }, { - "id": "operations/azure/put-second-version", + "id": "operations/azure/put-key-1024", "profile": "azure", "lane": "core", - "purpose": "put second version", + "purpose": "put key 1024", "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", + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "op": "put" }, "exchanges": [ @@ -32676,7 +32540,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -32684,7 +32548,7 @@ "optional": false, "rule": { "is": "equal", - "value": "djI=" + "value": "MQ==" } }, { @@ -32703,15 +32567,15 @@ "response": { "status": 201, "headers": { - "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-4768de772705\"", + "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.3326281Z" + "x-ms-version-id": "2024-01-01T00:00:00.8738118Z" }, "body": { "encoding": "base64", @@ -32736,7 +32600,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4768de772705\"" + "value": "\"fixture-cf057aba568d\"" } }, { @@ -32744,23 +32608,23 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.3326281Z" + "value": "2024-01-01T00:00:00.8738118Z" } } ], "refusal": null }, { - "id": "operations/azure/put-unauthenticated", + "id": "operations/azure/put-key-1025", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "put key 1025", "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", + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "op": "put" }, "exchanges": [ @@ -32781,7 +32645,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -32789,7 +32653,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "MQ==" } }, { @@ -32806,17 +32670,17 @@ ], "allow_query": [], "response": { - "status": 401, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "x-ms-error-code": "OutOfRangeInput" }, "body": { "encoding": "utf8", - "data": "InvalidAuthenticationInfoFixture error" + "data": "OutOfRangeInputFixture error" } } } @@ -32837,7 +32701,7 @@ "optional": false, "rule": { "is": "equal", - "value": 401 + "value": 400 } }, { @@ -32845,27 +32709,64 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "OutOfRangeInput" } } ], - "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": "key" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "OutOfRangeInput" + } + } + ] }, { - "id": "operations/azure/put-with-crc64", + "id": "operations/azure/put-key-under-object", "profile": "azure", "lane": "core", - "purpose": "put with crc64", + "purpose": "put key under object", "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", + "body_base64": "MQ==", + "key": "object-tests/order/a/b", "op": "put" }, "exchanges": [ @@ -32886,7 +32787,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64.txt" + "value": "/fixture/object-tests/order/a/b" } }, { @@ -32894,15 +32795,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" - } - }, - { - "at": "/headers/x-ms-content-crc64", - "optional": false, - "rule": { - "is": "equal", - "value": "9XBvAwWoR9o=" + "value": "MQ==" } }, { @@ -32921,15 +32814,15 @@ "response": { "status": 201, "headers": { - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-90cfcb93036b\"", + "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.1153123Z" + "x-ms-version-id": "2024-01-01T00:00:00.2584945Z" }, "body": { "encoding": "base64", @@ -32954,7 +32847,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-90cfcb93036b\"" + "value": "\"fixture-17ced520f182\"" } }, { @@ -32962,27 +32855,24 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1153123Z" + "value": "2024-01-01T00:00:00.2584945Z" } } ], "refusal": null }, { - "id": "operations/azure/put-with-md5", + "id": "operations/azure/put-lost-the-race-to-create", "profile": "azure", "lane": "core", - "purpose": "put with md5", + "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": "ZGVjbGFyZWQtYm9keQ==", - "checksum": { - "algorithm": "md5", - "value_base64": "N6YZkbg+Lyfxtskwn8iRCg==" - }, - "key": "object-tests/hashes/md5.txt", + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_none_match": "*", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -33003,7 +32893,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -33011,15 +32901,15 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/content-md5", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "*" } }, { @@ -33036,21 +32926,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 409, "headers": { - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-494ad7275bf7\"", - "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.7803759Z" + "x-ms-error-code": "BlobAlreadyExists" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobAlreadyExistsFixture error" } } } @@ -33063,137 +32949,44 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-494ad7275bf7\"" + "value": 409 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7803759Z" + "value": "BlobAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure/snapshot", + "id": "operations/azure/put-md5-mismatch", "profile": "azure", "lane": "core", - "purpose": "snapshot", + "purpose": "put md5 mismatch", "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": [ - { - "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": 201, - "headers": { - "date": { - "from": "now" - }, - "etag": "\"fixture-e3698635ab53\"", - "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": "false", - "x-ms-snapshot": "2024-01-01T00:00:00.7351568Z", - "x-ms-version-id": "2024-01-01T00:00:00.8746441Z" - }, - "body": { - "encoding": "base64", - "data": "" - } - } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "md5", + "value_base64": "eV8yArF8trw9S3cdjGyerw==" }, - { - "at": "/value/snapshot", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.7351568Z" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/stage-empty", - "profile": "azure", - "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" + "key": "object-tests/hashes/md5-mismatch.txt", + "op": "put" }, "exchanges": [ { @@ -33213,7 +33006,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/hashes/md5-mismatch.txt" } }, { @@ -33221,23 +33014,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/query/comp", + "at": "/headers/content-md5", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "eV8yArF8trw9S3cdjGyerw==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAz" + "value": "BlockBlob" } } ], @@ -33252,11 +33045,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "InvalidHeaderValue" + "x-ms-error-code": "Md5Mismatch" }, "body": { "encoding": "utf8", - "data": "InvalidHeaderValueFixture error" + "data": "Md5MismatchFixture error" } } } @@ -33285,25 +33078,27 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidHeaderValue" + "value": "Md5Mismatch" } } ], "refusal": null }, { - "id": "operations/azure/stage-escaped-id", + "id": "operations/azure/put-metadata-empty-value", "profile": "azure", "lane": "core", - "purpose": "stage escaped id", + "purpose": "put metadata empty value", "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" + "body_base64": "MQ==", + "key": "object-tests/metadata/empty-value.txt", + "metadata": { + "empty": "" + }, + "op": "put" }, "exchanges": [ { @@ -33323,7 +33118,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -33331,23 +33126,23 @@ "optional": false, "rule": { "is": "equal", - "value": "b25l" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-empty", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "+/8=" + "value": "BlockBlob" } } ], @@ -33358,12 +33153,15 @@ "response": { "status": 201, "headers": { + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "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-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.9480929Z" }, "body": { "encoding": "base64", @@ -33385,31 +33183,38 @@ }, { "at": "/value/etag", - "optional": true, + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "\"fixture-333d95b64818\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.9480929Z" } } ], "refusal": null }, { - "id": "operations/azure/stage-id-too-long", + "id": "operations/azure/put-metadata-invalid-name", "profile": "azure", "lane": "core", - "purpose": "stage id too long", + "purpose": "put metadata invalid name", "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" + "body_base64": "MQ==", + "key": "object-tests/metadata/invalid-name.txt", + "metadata": { + "not-valid": "1" + }, + "op": "put" }, "exchanges": [ { @@ -33429,7 +33234,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/metadata/invalid-name.txt" } }, { @@ -33437,23 +33242,23 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-not-valid", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "1" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=" + "value": "BlockBlob" } } ], @@ -33468,11 +33273,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "OutOfRangeInput" + "x-ms-error-code": "InvalidMetadata" }, "body": { "encoding": "utf8", - "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes." + "data": "InvalidMetadataFixture error" } } } @@ -33501,7 +33306,7 @@ "optional": false, "rule": { "is": "equal", - "value": "OutOfRangeInput" + "value": "InvalidMetadata" } } ], @@ -33527,7 +33332,7 @@ "optional": false, "rule": { "is": "equal", - "value": "block_id_base64" + "value": "metadata" } }, { @@ -33543,24 +33348,23 @@ "optional": true, "rule": { "is": "equal", - "value": "OutOfRangeInput" + "value": "InvalidMetadata" } } ] }, { - "id": "operations/azure/stage-mixed-length-id", + "id": "operations/azure/put-metadata-replaced", "profile": "azure", "lane": "core", - "purpose": "stage mixed length id", + "purpose": "put metadata replaced", "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" + "body_base64": "Mg==", + "key": "object-tests/metadata/replaced.txt", + "op": "put" }, "exchanges": [ { @@ -33580,7 +33384,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -33588,23 +33392,15 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "Mg==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" + "value": "BlockBlob" } } ], @@ -33613,17 +33409,21 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlobOrBlock" + "etag": "\"fixture-37b036d8c13f\"", + "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.7487600Z" }, "body": { - "encoding": "utf8", - "data": "InvalidBlobOrBlockFixture error" + "encoding": "base64", + "data": "" } } } @@ -33636,44 +33436,44 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-37b036d8c13f\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "InvalidBlobOrBlock" + "value": "2024-01-01T00:00:00.7487600Z" } } ], "refusal": null }, { - "id": "operations/azure/stage-mixed-length-id-code-in-body", + "id": "operations/azure/put-metadata", "profile": "azure", "lane": "core", - "purpose": "stage mixed length id, with the error code only in the XML body", + "purpose": "put 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/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": { - "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", - "body_base64": "dGhpcmQ=", - "key": "object-tests/multipart/staged.bin", - "op": "azure.stage_block" + "body_base64": "MQ==", + "key": "object-tests/metadata/object.txt", + "metadata": { + "name": "value", + "second": "2" + }, + "op": "put" }, "exchanges": [ { @@ -33693,7 +33493,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -33701,23 +33501,31 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-name", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "value" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-meta-second", "optional": false, "rule": { "is": "equal", - "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" + "value": "2" + } + }, + { + "at": "/headers/x-ms-blob-type", + "optional": false, + "rule": { + "is": "equal", + "value": "BlockBlob" } } ], @@ -33726,16 +33534,21 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "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" }, "body": { - "encoding": "utf8", - "data": "InvalidBlobOrBlockFixture error" + "encoding": "base64", + "data": "" } } } @@ -33748,41 +33561,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-9abbc5e374ca\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "InvalidBlobOrBlock" + "value": "2024-01-01T00:00:00.7035036Z" } } ], "refusal": null }, { - "id": "operations/azure/stage-unauthenticated", + "id": "operations/azure/put-metadata-identifier-name", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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": { - "block_id_base64": "MDAwMDAx", - "body_base64": "Zmlyc3Q=", - "key": "object-tests/multipart/staged.bin", - "op": "azure.stage_block" + "body_base64": "MQ==", + "key": "object-tests/metadata/identifier-name.txt", + "metadata": { + "_a1": "1" + }, + "op": "put" }, "exchanges": [ { @@ -33802,7 +33617,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/metadata/identifier-name.txt" } }, { @@ -33810,23 +33625,23 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-_a1", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "1" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAx" + "value": "BlockBlob" } } ], @@ -33835,17 +33650,21 @@ ], "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-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" }, "body": { - "encoding": "utf8", - "data": "InvalidAuthenticationInfoFixture error" + "encoding": "base64", + "data": "" } } } @@ -33858,41 +33677,40 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 401 + "value": "\"fixture-9abbc5e374ca\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "2024-01-01T00:00:00.7035036Z" } } ], "refusal": null }, { - "id": "operations/azure/stage", + "id": "operations/azure/put-over-snapshotted", "profile": "azure", "lane": "core", - "purpose": "stage", + "purpose": "put over snapshotted", "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" + "body_base64": "dHdv", + "key": "object-tests/snapshots/object.txt", + "op": "put" }, "exchanges": [ { @@ -33912,7 +33730,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -33920,23 +33738,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "dHdv" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -33947,12 +33757,15 @@ "response": { "status": 201, "headers": { + "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==", "date": { "from": "now" }, + "etag": "\"fixture-937c89bb7b5c\"", "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-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.6268993Z" }, "body": { "encoding": "base64", @@ -33974,31 +33787,35 @@ }, { "at": "/value/etag", - "optional": true, + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/stage-id-64-bytes", + "id": "operations/azure/put-overwrite", "profile": "azure", "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": "put overwrite", "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" + "body_base64": "b3ZlcndyaXR0ZW4=", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -34018,7 +33835,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -34026,23 +33843,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "b3ZlcndyaXR0ZW4=" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==" + "value": "BlockBlob" } } ], @@ -34053,12 +33862,15 @@ "response": { "status": 201, "headers": { + "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==", "date": { "from": "now" }, + "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-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.7758823Z" }, "body": { "encoding": "base64", @@ -34080,31 +33892,36 @@ }, { "at": "/value/etag", - "optional": true, + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/stage-key-question", + "id": "operations/azure/put-precondition-failed", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"question?mark.txt\"", + "purpose": "put precondition failed", "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" + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -34124,7 +33941,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -34132,23 +33949,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/query/comp", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "\"fixture-088e5dc109cf\"" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -34157,18 +33974,17 @@ ], "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" + "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ConditionNotMetFixture error" } } } @@ -34181,36 +33997,44 @@ "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": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-hash", + "id": "operations/azure/put-precondition-failed-code-in-body", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"hash#tag.txt\"", + "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" + "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": "MDAwMDAy", - "body_base64": "c2Vjb25k", - "key": "object-tests/keys/hash#tag.txt", - "op": "azure.stage_block" + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -34230,7 +34054,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -34238,23 +34062,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/query/comp", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "\"fixture-088e5dc109cf\"" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -34263,18 +34087,16 @@ ], "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": "ConditionNotMetFixture error" } } } @@ -34287,36 +34109,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": 412 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-percent", + "id": "operations/azure/put-refused", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"percent%20.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": { - "block_id_base64": "MDAwMDAy", - "body_base64": "c2Vjb25k", - "key": "object-tests/keys/percent%20.txt", - "op": "azure.stage_block" + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object.txt", + "op": "put" }, "exchanges": [ { @@ -34336,7 +34162,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object.txt" } }, { @@ -34344,23 +34170,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -34369,18 +34187,17 @@ ], "allow_query": [], "response": { - "status": 201, + "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", - "x-ms-request-server-encrypted": "true" + "x-ms-error-code": "AuthorizationPermissionMismatch" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "AuthorizationPermissionMismatchFixture error" } } } @@ -34393,36 +34210,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": 403 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "AuthorizationPermissionMismatch" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-plus", + "id": "operations/azure/put-second-version", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"plus+plus.txt\"", + "purpose": "put second version", "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" + "body_base64": "djI=", + "key": "object-tests/versions-mtydohr2/object.txt", + "op": "put" }, "exchanges": [ { @@ -34442,7 +34263,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/versions-mtydohr2/object.txt" } }, { @@ -34450,23 +34271,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "djI=" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -34477,12 +34290,15 @@ "response": { "status": 201, "headers": { + "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", "date": { "from": "now" }, + "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-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.3326281Z" }, "body": { "encoding": "base64", @@ -34504,31 +34320,35 @@ }, { "at": "/value/etag", - "optional": true, + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "\"fixture-4768de772705\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.3326281Z" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-space", + "id": "operations/azure/put-unauthenticated", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"space name.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": { - "block_id_base64": "MDAwMDAy", - "body_base64": "c2Vjb25k", - "key": "object-tests/keys/space name.txt", - "op": "azure.stage_block" + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -34548,7 +34368,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -34556,23 +34376,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -34581,18 +34393,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 401, "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": "InvalidAuthenticationInfo" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -34605,36 +34416,44 @@ "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": 401 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-non-ascii", + "id": "operations/azure/put-with-crc64", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"café/雪.txt\"", + "purpose": "put with crc64", "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" + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "azure_crc64", + "value_base64": "9XBvAwWoR9o=" + }, + "key": "object-tests/hashes/crc64.txt", + "op": "put" }, "exchanges": [ { @@ -34654,7 +34473,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/hashes/crc64.txt" } }, { @@ -34662,23 +34481,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-content-crc64", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "9XBvAwWoR9o=" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -34689,12 +34508,15 @@ "response": { "status": 201, "headers": { + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, + "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-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.1153123Z" }, "body": { "encoding": "base64", @@ -34716,31 +34538,39 @@ }, { "at": "/value/etag", - "optional": true, + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "\"fixture-90cfcb93036b\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.1153123Z" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-double-slash", + "id": "operations/azure/put-with-md5", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"double//slash.txt\"", + "purpose": "put with md5", "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" + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "md5", + "value_base64": "N6YZkbg+Lyfxtskwn8iRCg==" + }, + "key": "object-tests/hashes/md5.txt", + "op": "put" }, "exchanges": [ { @@ -34760,7 +34590,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/hashes/md5.txt" } }, { @@ -34768,23 +34598,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/query/comp", + "at": "/headers/content-md5", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -34795,12 +34625,15 @@ "response": { "status": 201, "headers": { + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, + "etag": "\"fixture-494ad7275bf7\"", "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-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.7803759Z" }, "body": { "encoding": "base64", @@ -34822,31 +34655,34 @@ }, { "at": "/value/etag", - "optional": true, + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "\"fixture-494ad7275bf7\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.7803759Z" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-trailing-slash", + "id": "operations/azure/snapshot", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"trailing-slash/\"", + "purpose": "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/keys/trailing-slash/", - "op": "azure.stage_block" + "key": "object-tests/snapshots/object.txt", + "op": "azure.snapshot" }, "exchanges": [ { @@ -34866,7 +34702,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -34874,7 +34710,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -34882,15 +34718,7 @@ "optional": false, "rule": { "is": "equal", - "value": "block" - } - }, - { - "at": "/query/blockid", - "optional": false, - "rule": { - "is": "equal", - "value": "MDAwMDAy" + "value": "snapshot" } } ], @@ -34904,9 +34732,12 @@ "date": { "from": "now" }, + "etag": "\"fixture-e3698635ab53\"", "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-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", @@ -34927,31 +34758,29 @@ } }, { - "at": "/value/etag", - "optional": true, + "at": "/value/snapshot", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "2024-01-01T00:00:00.7351568Z" } } ], "refusal": null }, { - "id": "operations/azure/staged-absent", + "id": "operations/azure/stage-empty", "profile": "azure", "lane": "core", - "purpose": "staged absent", + "purpose": "stage empty", "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" + "block_id_base64": "MDAwMDAz", + "body_base64": "", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -34963,7 +34792,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -34971,7 +34800,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/absent.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -34987,32 +34816,34 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "MDAwMDAz" } } ], - "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": "InvalidHeaderValue" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "InvalidHeaderValueFixture error" } } } @@ -35033,7 +34864,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -35041,27 +34872,25 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure/staged-absent-code-in-body", + "id": "operations/azure/stage-escaped-id", "profile": "azure", "lane": "core", - "purpose": "staged absent, with the error code only in the XML body", + "purpose": "stage escaped 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/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": { - "key": "object-tests/multipart/absent.bin", - "kind": "all", - "op": "azure.list_blocks" + "block_id_base64": "+/8=", + "body_base64": "b25l", + "key": "object-tests/multipart/escaped.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -35073,7 +34902,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35081,7 +34910,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/absent.bin" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { @@ -35089,7 +34918,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "b25l" } }, { @@ -35097,31 +34926,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "+/8=" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 404, + "status": 201, "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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -35134,40 +34967,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 404 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "BlobNotFound" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-after-commit", + "id": "operations/azure/stage-id-too-long", "profile": "azure", "lane": "core", - "purpose": "staged after commit", + "purpose": "stage id too long", "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" + "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -35179,7 +35008,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35187,7 +35016,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -35195,7 +35024,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "dGhpcmQ=" } }, { @@ -35203,36 +35032,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "OutOfRangeInput" }, "body": { "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes." + } } } ] @@ -35244,72 +35072,82 @@ "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": 400 } }, { - "at": "/value/committed/0/size", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": 5 + "value": "OutOfRangeInput" } - }, + } + ], + "refusal": [ { - "at": "/value/committed/1/id_base64", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "refused" } }, { - "at": "/value/committed/1/size", + "at": "/kind", "optional": false, "rule": { - "is": "equal", - "value": 6 + "is": "matches", + "pattern": ".+" } }, { - "at": "/value/committed", + "at": "/parameter", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "is": "equal", + "value": "block_id_base64" } }, { - "at": "/value/uncommitted", - "optional": false, + "at": "/status", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "OutOfRangeInput" } } - ], - "refusal": null + ] }, { - "id": "operations/azure/staged-after-replacement", + "id": "operations/azure/stage-mixed-length-id", "profile": "azure", "lane": "core", - "purpose": "staged after replacement", + "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/replaced.bin", - "kind": "all", - "op": "azure.list_blocks" + "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -35321,7 +35159,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35329,7 +35167,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -35337,7 +35175,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "dGhpcmQ=" } }, { @@ -35345,36 +35183,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "InvalidBlobOrBlock" }, "body": { "encoding": "utf8", - "data": "MDAwMDAx5" - }, - "framing": "chunked" + "data": "InvalidBlobOrBlockFixture error" + } } } ] @@ -35386,56 +35223,44 @@ "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": 400 } }, { - "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": "InvalidBlobOrBlock" } } ], "refusal": null }, { - "id": "operations/azure/staged-after-whole-write", + "id": "operations/azure/stage-mixed-length-id-code-in-body", "profile": "azure", "lane": "core", - "purpose": "staged after whole write", + "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/multipart/whole.bin", - "kind": "all", - "op": "azure.list_blocks" + "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -35447,7 +35272,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35455,7 +35280,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/whole.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -35463,7 +35288,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "dGhpcmQ=" } }, { @@ -35471,36 +35296,34 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "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": "" - }, - "framing": "chunked" + "data": "InvalidBlobOrBlockFixture error" + } } } ] @@ -35512,40 +35335,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/committed", + "at": "/status", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 400 } }, { - "at": "/value/uncommitted", + "at": "/code", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "InvalidBlobOrBlock" } } ], "refusal": null }, { - "id": "operations/azure/staged-committed-empty", + "id": "operations/azure/stage-unauthenticated", "profile": "azure", "lane": "core", - "purpose": "staged committed empty", + "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", - "kind": "committed", - "op": "azure.list_blocks" + "op": "azure.stage_block" }, "exchanges": [ { @@ -35557,7 +35381,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35573,7 +35397,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { @@ -35581,35 +35405,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "committed" + "value": "MDAwMDAx" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 401, "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": "InvalidAuthenticationInfo" }, "body": { "encoding": "utf8", - "data": "" - }, - "framing": "chunked" + "data": "InvalidAuthenticationInfoFixture error" + } } } ] @@ -35621,40 +35445,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/committed", + "at": "/status", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 401 } }, { - "at": "/value/uncommitted", + "at": "/code", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure/staged-committed-nothing", + "id": "operations/azure/stage", "profile": "azure", "lane": "core", - "purpose": "staged committed nothing", + "purpose": "stage", "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" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -35666,7 +35491,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35674,7 +35499,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -35682,7 +35507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { @@ -35690,36 +35515,36 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "MDAwMDAy" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -35735,36 +35560,32 @@ } }, { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 0 - } - }, - { - "at": "/value/uncommitted", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-escaped-id", + "id": "operations/azure/stage-id-64-bytes", "profile": "azure", "lane": "core", - "purpose": "staged escaped id", + "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/multipart/escaped.bin", - "kind": "all", - "op": "azure.list_blocks" + "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==", + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -35776,7 +35597,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35784,7 +35605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -35792,7 +35613,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { @@ -35800,35 +35621,36 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "+/8=3" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -35844,52 +35666,32 @@ } }, { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 0 - } - }, - { - "at": "/value/uncommitted/0/id_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "+/8=" - } - }, - { - "at": "/value/uncommitted/0/size", - "optional": false, - "rule": { - "is": "equal", - "value": 3 - } - }, - { - "at": "/value/uncommitted", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "array_length", - "value": 1 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-replacement", + "id": "operations/azure/stage-key-question", "profile": "azure", "lane": "core", - "purpose": "staged replacement", + "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/multipart/pending.bin", - "kind": "all", - "op": "azure.list_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/question?mark.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -35901,7 +35703,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35909,7 +35711,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -35917,7 +35719,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { @@ -35925,36 +35727,36 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "MDAwMDAy" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6MDAwMDAx5" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -35970,84 +35772,32 @@ } }, { - "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", - "optional": false, - "rule": { - "is": "equal", - "value": "MDAwMDAy" - } - }, - { - "at": "/value/committed/1/size", - "optional": false, - "rule": { - "is": "equal", - "value": 6 - } - }, - { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 - } - }, - { - "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", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "array_length", - "value": 1 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-uncommitted-only", + "id": "operations/azure/stage-key-hash", "profile": "azure", "lane": "core", - "purpose": "staged uncommitted only", + "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/multipart/staged.bin", - "kind": "all", - "op": "azure.list_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/hash#tag.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -36059,7 +35809,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36067,7 +35817,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -36075,7 +35825,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { @@ -36083,35 +35833,36 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "MDAwMDAy" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -36127,68 +35878,32 @@ } }, { - "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, + "at": "/value/etag", + "optional": true, "rule": { - "is": "array_length", - "value": 2 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-uncommitted", + "id": "operations/azure/stage-key-percent", "profile": "azure", "lane": "core", - "purpose": "staged uncommitted", + "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/multipart/staged.bin", - "kind": "uncommitted", - "op": "azure.list_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/percent%20.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -36200,7 +35915,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36208,7 +35923,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -36216,7 +35931,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { @@ -36224,35 +35939,36 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "uncommitted" + "value": "MDAwMDAy" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -36268,68 +35984,32 @@ } }, { - "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, + "at": "/value/etag", + "optional": true, "rule": { - "is": "array_length", - "value": 2 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-container-missing", - "profile": "azure-hns", + "id": "operations/azure/stage-key-plus", + "profile": "azure", "lane": "core", - "purpose": "commit container missing", + "purpose": "stage, with the key \"plus+plus.txt\"", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "blocks": [], - "key": "object.bin", - "op": "azure.commit_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/plus+plus.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -36349,15 +36029,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.bin" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "" + "is": "equal", + "value": "c2Vjb25k" } }, { @@ -36365,7 +36045,15 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -36374,17 +36062,18 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 201, "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", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -36397,46 +36086,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 404 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "ContainerNotFound" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-declaring-md5", - "profile": "azure-hns", + "id": "operations/azure/stage-key-space", + "profile": "azure", "lane": "core", - "purpose": "commit declaring md5", + "purpose": "stage, 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" - } - ], - "content_md5_base64": "N6YZkbg+Lyfxtskwn8iRCg==", - "key": "object-tests/hashes/committed.bin", - "op": "azure.commit_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/space name.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -36456,31 +36135,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/committed.bin" + "value": "/fixture/object-tests/keys/space name.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAx" + "is": "equal", + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-content-md5", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "block" } }, { - "at": "/query/comp", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "MDAwMDAy" } } ], @@ -36494,7 +36173,6 @@ "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" @@ -36519,14 +36197,6 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-9a581bc70e20\"" - } - }, - { - "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -36540,26 +36210,18 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-duplicate-id", - "profile": "azure-hns", + "id": "operations/azure/stage-key-non-ascii", + "profile": "azure", "lane": "core", - "purpose": "commit duplicate id", + "purpose": "stage, with the key \"café/雪.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": "MDAwMDAx", - "kind": "latest" - } - ], - "key": "object-tests/multipart/duplicate.bin", - "op": "azure.commit_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/café/雪.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -36579,15 +36241,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/duplicate.bin" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAx" + "is": "equal", + "value": "c2Vjb25k" } }, { @@ -36595,7 +36257,15 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -36609,7 +36279,6 @@ "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" @@ -36634,14 +36303,6 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-a8581b642c5f\"" - } - }, - { - "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -36655,22 +36316,18 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-escaped-id", - "profile": "azure-hns", + "id": "operations/azure/stage-key-double-slash", + "profile": "azure", "lane": "core", - "purpose": "commit escaped id", + "purpose": "stage, 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": "+/8=", - "kind": "latest" - } - ], - "key": "object-tests/multipart/escaped.bin", - "op": "azure.commit_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/double//slash.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -36690,15 +36347,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "+/8=" + "is": "equal", + "value": "c2Vjb25k" } }, { @@ -36706,7 +36363,15 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -36720,7 +36385,6 @@ "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" @@ -36745,14 +36409,6 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-77b5e2317b8a\"" - } - }, - { - "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -36766,23 +36422,18 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-lost-the-race-to-create", - "profile": "azure-hns", + "id": "operations/azure/stage-key-trailing-slash", + "profile": "azure", "lane": "core", - "purpose": "commit lost the race to create", + "purpose": "stage, 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" - } - ], - "if_none_match": "*", - "key": "object-tests/multipart/pending.bin", - "op": "azure.commit_blocks" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/trailing-slash/", + "op": "azure.stage_block" }, "exchanges": [ { @@ -36802,31 +36453,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAx" + "is": "equal", + "value": "c2Vjb25k" } }, { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "block" } }, { - "at": "/query/comp", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "MDAwMDAy" } } ], @@ -36835,17 +36486,18 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobAlreadyExists" + "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": "BlobAlreadyExistsFixture error" + "encoding": "base64", + "data": "" } } } @@ -36858,40 +36510,40 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 409 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "BlobAlreadyExists" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-nothing", - "profile": "azure-hns", + "id": "operations/azure/stage-from-url", + "profile": "azure", "lane": "core", - "purpose": "commit nothing", + "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": { - "blocks": [], - "key": "object-tests/multipart/empty.bin", - "op": "azure.commit_blocks" + "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": [ { @@ -36911,15 +36563,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "" + "is": "equal", + "value": "" } }, { @@ -36927,12 +36579,37 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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" + "content-type", + "x-ms-copy-source-authorization" ], "allow_query": [], "response": { @@ -36941,7 +36618,6 @@ "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" @@ -36966,14 +36642,6 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-072bed78cc6a\"" - } - }, - { - "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -36987,22 +36655,17 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-over-whole-object", - "profile": "azure-hns", + "id": "operations/azure/staged-absent", + "profile": "azure", "lane": "core", - "purpose": "commit over whole object", + "purpose": "staged absent", "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/multipart/absent.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37014,7 +36677,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37022,15 +36685,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/over.bin" + "value": "/fixture/object-tests/multipart/absent.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAx" + "is": "equal", + "value": "" } }, { @@ -37040,26 +36703,30 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 404, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-7dc650e58291\"", - "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" } } } @@ -37072,49 +36739,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-7dc650e58291\"" + "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-precondition-failed", - "profile": "azure-hns", + "id": "operations/azure/staged-absent-code-in-body", + "profile": "azure", "lane": "core", - "purpose": "commit precondition failed", + "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": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - } - ], - "if_match": "\"fixture-088e5dc109cf\"", - "key": "object-tests/multipart/pending.bin", - "op": "azure.commit_blocks" + "key": "object-tests/multipart/absent.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37126,7 +36787,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37134,50 +36795,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/multipart/absent.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAx" + "is": "equal", + "value": "" } }, { - "at": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "blocklist" } }, { - "at": "/query/comp", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "all" } } ], - "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" + } }, "body": { "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "data": "BlobNotFoundFixture error" } } } @@ -37198,7 +36856,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 404 } }, { @@ -37206,24 +36864,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-refused", - "profile": "azure-hns", + "id": "operations/azure/staged-after-commit", + "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "staged after commit", "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/multipart/committed.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37235,7 +36893,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37243,15 +36901,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.bin" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "" + "is": "equal", + "value": "" } }, { @@ -37261,25 +36919,34 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "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" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" - } + "data": "MDAwMDAx5MDAwMDAy6" + }, + "framing": "chunked" } } ] @@ -37291,49 +36958,72 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/committed/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "MDAwMDAx" } }, { - "at": "/code", + "at": "/value/committed/0/size", "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": 5 + } + }, + { + "at": "/value/committed/1/id_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" + } + }, + { + "at": "/value/committed/1/size", + "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 } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-reordered", - "profile": "azure-hns", + "id": "operations/azure/staged-after-replacement", + "profile": "azure", "lane": "core", - "purpose": "commit reordered", + "purpose": "staged after replacement", "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/multipart/replaced.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37345,7 +37035,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37353,15 +37043,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/reordered.bin" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAyMDAwMDAx" + "is": "equal", + "value": "" } }, { @@ -37371,27 +37061,34 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-446301cfeaef\"", + "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-request-server-encrypted": "true" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "MDAwMDAx5" + }, + "framing": "chunked" } } ] @@ -37407,44 +37104,52 @@ } }, { - "at": "/value/etag", + "at": "/value/committed/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-446301cfeaef\"" + "value": "MDAwMDAx" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/committed/0/size", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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 } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-replacement", - "profile": "azure-hns", + "id": "operations/azure/staged-after-whole-write", + "profile": "azure", "lane": "core", - "purpose": "commit replacement", + "purpose": "staged after whole write", "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/multipart/whole.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37456,7 +37161,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37464,15 +37169,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/multipart/whole.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAx" + "is": "equal", + "value": "" } }, { @@ -37482,27 +37187,34 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-9c5e55ff559c\"", + "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", - "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": "" + }, + "framing": "chunked" } } ] @@ -37518,48 +37230,36 @@ } }, { - "at": "/value/etag", + "at": "/value/committed", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-9c5e55ff559c\"" + "is": "array_length", + "value": 0 } }, { - "at": "/value/version", - "optional": true, + "at": "/value/uncommitted", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-unstaged-id", - "profile": "azure-hns", + "id": "operations/azure/staged-committed-empty", + "profile": "azure", "lane": "core", - "purpose": "commit unstaged id", + "purpose": "staged committed empty", "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" + "kind": "committed", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37571,7 +37271,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37583,11 +37283,11 @@ } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDA5" + "is": "equal", + "value": "" } }, { @@ -37597,25 +37297,33 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "committed" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlockList" + "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": "InvalidBlockListFixture error" - } + "data": "" + }, + "framing": "chunked" } } ] @@ -37627,52 +37335,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": "InvalidBlockList" + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-unstaged-id-code-in-body", - "profile": "azure-hns", + "id": "operations/azure/staged-committed-nothing", + "profile": "azure", "lane": "core", - "purpose": "commit unstaged id, 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": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - }, - { - "id_base64": "MDAwMDA5", - "kind": "latest" - } - ], - "key": "object-tests/multipart/staged.bin", - "op": "azure.commit_blocks" + "key": "object-tests/multipart/empty.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37684,7 +37380,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37692,15 +37388,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDA5" + "is": "equal", + "value": "" } }, { @@ -37710,24 +37406,34 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "allow_headers": [ - "content-type" - ], + "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": "InvalidBlockListFixture error" - } + "data": "" + }, + "framing": "chunked" } } ] @@ -37739,49 +37445,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": "InvalidBlockList" + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/azure-hns/commit", - "profile": "azure-hns", + "id": "operations/azure/staged-escaped-id", + "profile": "azure", "lane": "core", - "purpose": "commit", + "purpose": "staged escaped id", "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/multipart/escaped.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37793,7 +37490,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37801,15 +37498,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "equal", + "value": "" } }, { @@ -37819,27 +37516,33 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "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": "+/8=3" + }, + "framing": "chunked" } } ] @@ -37855,48 +37558,52 @@ } }, { - "at": "/value/etag", + "at": "/value/committed", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/uncommitted/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": "+/8=" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/uncommitted/0/size", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": 3 + } + }, + { + "at": "/value/uncommitted", + "optional": false, + "rule": { + "is": "array_length", + "value": 1 } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-key-question", - "profile": "azure-hns", + "id": "operations/azure/staged-replacement", + "profile": "azure", "lane": "core", - "purpose": "commit, with the key \"question?mark.txt\"", + "purpose": "staged replacement", "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/multipart/pending.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -37908,7 +37615,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -37916,15 +37623,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "equal", + "value": "" } }, { @@ -37934,27 +37641,34 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-8ec031f3abfa\"", + "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", - "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": "MDAwMDAx5MDAwMDAy6MDAwMDAx5" + }, + "framing": "chunked" } } ] @@ -37970,48 +37684,84 @@ } }, { - "at": "/value/etag", + "at": "/value/committed/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": "MDAwMDAx" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/committed/0/size", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": 5 + } + }, + { + "at": "/value/committed/1/id_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" + } + }, + { + "at": "/value/committed/1/size", + "optional": false, + "rule": { + "is": "equal", + "value": 6 + } + }, + { + "at": "/value/committed", + "optional": false, + "rule": { + "is": "array_length", + "value": 2 + } + }, + { + "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", + "optional": false, + "rule": { + "is": "array_length", + "value": 1 } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-key-hash", - "profile": "azure-hns", + "id": "operations/azure/staged-uncommitted-only", + "profile": "azure", "lane": "core", - "purpose": "commit, with the key \"hash#tag.txt\"", + "purpose": "staged uncommitted only", "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/multipart/staged.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -38023,7 +37773,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -38031,15 +37781,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "equal", + "value": "" } }, { @@ -38049,27 +37799,33 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" + } } ], - "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": "MDAwMDAx5MDAwMDAy6" + }, + "framing": "chunked" } } ] @@ -38085,48 +37841,68 @@ } }, { - "at": "/value/etag", + "at": "/value/committed", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/uncommitted/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": "MDAwMDAx" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/uncommitted/0/size", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/azure-hns/commit-key-percent", - "profile": "azure-hns", + "id": "operations/azure/staged-uncommitted", + "profile": "azure", "lane": "core", - "purpose": "commit, with the key \"percent%20.txt\"", + "purpose": "staged uncommitted", "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" + "key": "object-tests/multipart/staged.bin", + "kind": "uncommitted", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -38138,7 +37914,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -38146,15 +37922,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "equal", + "value": "" } }, { @@ -38164,27 +37940,33 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "uncommitted" + } } ], - "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": "MDAwMDAx5MDAwMDAy6" + }, + "framing": "chunked" } } ] @@ -38200,47 +37982,67 @@ } }, { - "at": "/value/etag", + "at": "/value/committed", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/uncommitted/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": "MDAwMDAx" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/uncommitted/0/size", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/azure-hns/commit-key-plus", + "id": "operations/azure-hns/commit-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"plus+plus.txt\"", + "purpose": "commit container missing", "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/plus+plus.txt", + "blocks": [], + "key": "object.bin", "op": "azure.commit_blocks" }, "exchanges": [ @@ -38261,7 +38063,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object.bin" } }, { @@ -38269,7 +38071,7 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "value": "" } }, { @@ -38286,19 +38088,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 404, "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": "ContainerNotFound" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ContainerNotFoundFixture error" } } } @@ -38311,36 +38111,33 @@ "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": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-key-space", + "id": "operations/azure-hns/commit-declaring-md5", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"space name.txt\"", + "purpose": "commit declaring md5", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], @@ -38349,13 +38146,10 @@ { "id_base64": "MDAwMDAx", "kind": "latest" - }, - { - "id_base64": "MDAwMDAy", - "kind": "latest" } ], - "key": "object-tests/keys/space name.txt", + "content_md5_base64": "N6YZkbg+Lyfxtskwn8iRCg==", + "key": "object-tests/hashes/committed.bin", "op": "azure.commit_blocks" }, "exchanges": [ @@ -38376,7 +38170,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/hashes/committed.bin" } }, { @@ -38384,7 +38178,15 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "value": "MDAwMDAx" + } + }, + { + "at": "/headers/x-ms-blob-content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { @@ -38406,7 +38208,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-8ec031f3abfa\"", + "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" @@ -38434,7 +38236,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": "\"fixture-9a581bc70e20\"" } }, { @@ -38452,10 +38254,10 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-key-non-ascii", + "id": "operations/azure-hns/commit-duplicate-id", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"café/雪.txt\"", + "purpose": "commit duplicate id", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], @@ -38466,11 +38268,11 @@ "kind": "latest" }, { - "id_base64": "MDAwMDAy", + "id_base64": "MDAwMDAx", "kind": "latest" } ], - "key": "object-tests/keys/café/雪.txt", + "key": "object-tests/multipart/duplicate.bin", "op": "azure.commit_blocks" }, "exchanges": [ @@ -38491,7 +38293,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/multipart/duplicate.bin" } }, { @@ -38499,7 +38301,7 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "value": "MDAwMDAxMDAwMDAx" } }, { @@ -38521,7 +38323,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-8ec031f3abfa\"", + "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" @@ -38549,7 +38351,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": "\"fixture-a8581b642c5f\"" } }, { @@ -38567,25 +38369,21 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-key-double-slash", + "id": "operations/azure-hns/commit-escaped-id", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"double//slash.txt\"", + "purpose": "commit escaped id", "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", + "id_base64": "+/8=", "kind": "latest" } ], - "key": "object-tests/keys/double//slash.txt", + "key": "object-tests/multipart/escaped.bin", "op": "azure.commit_blocks" }, "exchanges": [ @@ -38606,7 +38404,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { @@ -38614,7 +38412,7 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "value": "+/8=" } }, { @@ -38636,7 +38434,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-8ec031f3abfa\"", + "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" @@ -38664,7 +38462,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": "\"fixture-77b5e2317b8a\"" } }, { @@ -38682,10 +38480,10 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-key-trailing-slash", + "id": "operations/azure-hns/commit-lost-the-race-to-create", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"trailing-slash/\"", + "purpose": "commit lost the race to create", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], @@ -38694,13 +38492,10 @@ { "id_base64": "MDAwMDAx", "kind": "latest" - }, - { - "id_base64": "MDAwMDAy", - "kind": "latest" } ], - "key": "object-tests/keys/trailing-slash/", + "if_none_match": "*", + "key": "object-tests/multipart/pending.bin", "op": "azure.commit_blocks" }, "exchanges": [ @@ -38721,7 +38516,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { @@ -38729,7 +38524,15 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "value": "MDAwMDAx" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -38746,17 +38549,17 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlockList" + "x-ms-error-code": "BlobAlreadyExists" }, "body": { "encoding": "utf8", - "data": "InvalidBlockListFixture error" + "data": "BlobAlreadyExistsFixture error" } } } @@ -38777,7 +38580,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 409 } }, { @@ -38785,23 +38588,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidBlockList" + "value": "BlobAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted", + "id": "operations/azure-hns/commit-nothing", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted", + "purpose": "commit nothing", "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": [], + "key": "object-tests/multipart/empty.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -38813,7 +38617,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -38821,28 +38625,40 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 202, + "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -38861,21 +38677,46 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-072bed78cc6a\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-question", + "id": "operations/azure-hns/commit-over-whole-object", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"question?mark.txt\"", + "purpose": "commit over whole object", "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" + } + ], + "key": "object-tests/multipart/over.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -38887,7 +38728,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -38895,28 +38736,40 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/multipart/over.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAx" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 202, + "status": 201, "headers": { "date": { "from": "now" }, + "etag": "\"fixture-7dc650e58291\"", "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": "base64", @@ -38935,21 +38788,47 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-7dc650e58291\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-hash", + "id": "operations/azure-hns/commit-precondition-failed", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"hash#tag.txt\"", + "purpose": "commit precondition failed", "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" + } + ], + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/multipart/pending.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -38961,7 +38840,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -38969,32 +38848,50 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAx" + } + }, + { + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-088e5dc109cf\"" + } + }, + { + "at": "/query/comp", + "optional": false, + "rule": { + "is": "equal", + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 202, + "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": "base64", - "data": "" + "encoding": "utf8", + "data": "ConditionNotMetFixture error" } } } @@ -39007,23 +38904,40 @@ "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": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-percent", + "id": "operations/azure-hns/commit-refused", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"percent%20.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": { - "key": "object-tests/keys/percent%20.txt", - "op": "delete" + "blocks": [], + "key": "object.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39035,7 +38949,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39043,32 +38957,42 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "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" } } } @@ -39081,23 +39005,49 @@ "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" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-plus", + "id": "operations/azure-hns/commit-reordered", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"plus+plus.txt\"", + "purpose": "commit reordered", "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" + "blocks": [ + { + "id_base64": "MDAwMDAy", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "key": "object-tests/multipart/reordered.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39109,7 +39059,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39117,28 +39067,40 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/multipart/reordered.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAyMDAwMDAx" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 202, + "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -39157,21 +39119,46 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-446301cfeaef\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-space", + "id": "operations/azure-hns/commit-replacement", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"space name.txt\"", + "purpose": "commit replacement", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "key": "object-tests/multipart/replaced.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39183,7 +39170,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39191,28 +39178,40 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAx" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 202, + "status": 201, "headers": { "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": "base64", @@ -39231,21 +39230,50 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-9c5e55ff559c\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-non-ascii", + "id": "operations/azure-hns/commit-unstaged-id", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"café/雪.txt\"", + "purpose": "commit unstaged id", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/keys/café/雪.txt", - "op": "delete" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDA5", + "kind": "latest" + } + ], + "key": "object-tests/multipart/staged.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39257,7 +39285,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39265,32 +39293,42 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAxMDAwMDA5" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "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": "InvalidBlockList" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidBlockListFixture error" } } } @@ -39303,23 +39341,52 @@ "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": "InvalidBlockList" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-double-slash", + "id": "operations/azure-hns/commit-unstaged-id-code-in-body", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"double//slash.txt\"", + "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" + "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/double//slash.txt", - "op": "delete" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDA5", + "kind": "latest" + } + ], + "key": "object-tests/multipart/staged.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39331,7 +39398,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39339,32 +39406,41 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAxMDAwMDA5" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "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" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidBlockListFixture error" } } } @@ -39377,23 +39453,49 @@ "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": "InvalidBlockList" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-accepted-key-trailing-slash", + "id": "operations/azure-hns/commit", "profile": "azure-hns", "lane": "core", - "purpose": "delete accepted, with the key \"trailing-slash/\"", + "purpose": "commit", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/keys/trailing-slash/", - "op": "delete" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/multipart/committed.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39405,7 +39507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39413,32 +39515,44 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "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" } } ], - "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": "InvalidUri" + "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": "InvalidUriFixture error" + "encoding": "base64", + "data": "" } } } @@ -39451,43 +39565,52 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidUri" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-many", + "id": "operations/azure-hns/commit-key-question", "profile": "azure-hns", "lane": "core", - "purpose": "Delete several objects in one batch and report each result", + "purpose": "commit, with the key \"question?mark.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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } ], - "op": "delete_many" + "key": "object-tests/keys/question?mark.txt", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39499,7 +39622,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -39507,31 +39630,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-]+" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { "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" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -39539,25 +39646,29 @@ "optional": false, "rule": { "is": "equal", - "value": "batch" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 202, + "status": 201, "headers": { - "content-type": "multipart/mixed; boundary=batchresponse_fixture", "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": "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": "" + } } } ] @@ -39573,27 +39684,21 @@ } }, { - "at": "/value/deleted", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": [ - "object-tests/batch/a.txt", - "object-tests/batch/b.txt" - ] + "value": "\"fixture-8ec031f3abfa\"" } }, { - "at": "/value/errors", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": [ - { - "code": "BlobNotFound", - "key": "object-tests/batch/absent.txt", - "status": 404 - } + "is": "one_of", + "values": [ + null, + "" ] } } @@ -39601,17 +39706,26 @@ "refusal": null }, { - "id": "operations/azure-hns/delete-leased-if-match-without-lease-id", + "id": "operations/azure-hns/commit-key-hash", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse to delete a leased object whose If-Match holds but that names no lease ID", + "purpose": "commit, with the key \"hash#tag.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", - "op": "delete" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/hash#tag.txt", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39623,7 +39737,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39631,40 +39745,44 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { - "at": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "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": "LeaseIdMissingFixture error" + "encoding": "base64", + "data": "" } } } @@ -39677,39 +39795,52 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "LeaseIdMissing" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-leased-without-lease-id", + "id": "operations/azure-hns/commit-key-percent", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse to delete a leased object without its lease ID", + "purpose": "commit, with the key \"percent%20.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": { - "key": "object-tests/leases/object.txt", - "op": "delete" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/percent%20.txt", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39721,7 +39852,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39729,32 +39860,44 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "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": "LeaseIdMissingFixture error" + "encoding": "base64", + "data": "" } } } @@ -39767,41 +39910,52 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "LeaseIdMissing" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-server-busy", + "id": "operations/azure-hns/commit-key-plus", "profile": "azure-hns", "lane": "core", - "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries", + "purpose": "commit, with the key \"plus+plus.txt\"", "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/remove/present.txt", - "op": "delete" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/plus+plus.txt", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -39813,7 +39967,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39821,37 +39975,104 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 503, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ServerBusy" + "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": "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-8ec031f3abfa\"" + } }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/commit-key-space", + "profile": "azure-hns", + "lane": "core", + "purpose": "commit, 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": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/space name.txt", + "op": "azure.commit_blocks" + }, + "exchanges": [ { "alternatives": [ { @@ -39861,7 +40082,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39869,87 +40090,104 @@ "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" + "value": "/fixture/object-tests/keys/space name.txt" } }, { - "at": "/path", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { - "at": "/body_base64", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 503, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ServerBusy" + "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "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-non-ascii", + "profile": "azure-hns", + "lane": "core", + "purpose": "commit, with the key \"café/雪.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/café/雪.txt", + "op": "azure.commit_blocks" + }, + "exchanges": [ { "alternatives": [ { @@ -39959,7 +40197,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -39967,87 +40205,104 @@ "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" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { - "at": "/path", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { - "at": "/body_base64", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 503, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ServerBusy" + "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "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-double-slash", + "profile": "azure-hns", + "lane": "core", + "purpose": "commit, 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/keys/double//slash.txt", + "op": "azure.commit_blocks" + }, + "exchanges": [ { "alternatives": [ { @@ -40057,7 +40312,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -40065,37 +40320,48 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 503, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ServerBusy" + "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "encoding": "base64", + "data": "" } } } - ], - "optional": true + ] } ], "expect": [ @@ -40104,40 +40370,52 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 503 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "ServerBusy" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-if-unmodified-since-past", + "id": "operations/azure-hns/commit-key-trailing-slash", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a delete with 412 when the object changed after If-Unmodified-Since", + "purpose": "commit, with the key \"trailing-slash/\"", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/trailing-slash/", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -40149,7 +40427,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -40157,40 +40435,42 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { - "at": "/headers/if-unmodified-since", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "blocklist" } } ], - "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": "ConditionNotMet" + "x-ms-error-code": "InvalidBlockList" }, "body": { "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "data": "InvalidBlockListFixture error" } } } @@ -40211,7 +40491,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 400 } }, { @@ -40219,22 +40499,22 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "InvalidBlockList" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-container-missing", + "id": "operations/azure-hns/delete-accepted", "profile": "azure-hns", "lane": "core", - "purpose": "delete container missing", + "purpose": "delete accepted", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object.txt", + "key": "object-tests/remove/present.txt", "op": "delete" }, "exchanges": [ @@ -40255,7 +40535,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -40270,17 +40550,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 202, "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" + "encoding": "base64", + "data": "" } } } @@ -40293,40 +40573,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": "ContainerNotFound" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-current-version", + "id": "operations/azure-hns/delete-accepted-key-question", "profile": "azure-hns", "lane": "core", - "purpose": "delete current version", + "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/versions-mtypy4jp/object.txt", - "op": "delete", - "version": "none-2" + "key": "object-tests/keys/question?mark.txt", + "op": "delete" }, "exchanges": [ { @@ -40346,7 +40609,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -40356,29 +40619,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/versionid", - "optional": false, - "rule": { - "is": "equal", - "value": "none-2" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 202, "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" + "encoding": "base64", + "data": "" } } } @@ -40391,39 +40647,22 @@ "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" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-if-match-current", + "id": "operations/azure-hns/delete-accepted-key-hash", "profile": "azure-hns", "lane": "core", - "purpose": "delete if match current", + "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": { - "if_match": "\"fixture-51797d9f787d\"", - "key": "object-tests/remove/conditional.txt", + "key": "object-tests/keys/hash#tag.txt", "op": "delete" }, "exchanges": [ @@ -40444,7 +40683,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/conditional.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -40454,14 +40693,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-51797d9f787d\"" - } } ], "allow_headers": [], @@ -40497,15 +40728,15 @@ "refusal": null }, { - "id": "operations/azure-hns/delete-missing", + "id": "operations/azure-hns/delete-accepted-key-percent", "profile": "azure-hns", "lane": "core", - "purpose": "delete missing", + "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/remove/absent.txt", + "key": "object-tests/keys/percent%20.txt", "op": "delete" }, "exchanges": [ @@ -40526,7 +40757,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/absent.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -40541,17 +40772,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -40564,39 +40795,22 @@ "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/delete-precondition-failed", + "id": "operations/azure-hns/delete-accepted-key-plus", "profile": "azure-hns", "lane": "core", - "purpose": "delete precondition failed", + "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": { - "if_match": "\"fixture-088e5dc109cf\"", - "key": "object-tests/remove/conditional.txt", + "key": "object-tests/keys/plus+plus.txt", "op": "delete" }, "exchanges": [ @@ -40617,7 +40831,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/conditional.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -40627,30 +40841,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-088e5dc109cf\"" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 202, "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" + "encoding": "base64", + "data": "" } } } @@ -40663,42 +40869,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": "ConditionNotMet" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-precondition-failed-code-in-body", + "id": "operations/azure-hns/delete-accepted-key-space", "profile": "azure-hns", "lane": "core", - "purpose": "delete precondition failed, with the error code only in the XML body", + "purpose": "delete accepted, with the key \"space name.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": { - "if_match": "\"fixture-088e5dc109cf\"", - "key": "object-tests/remove/conditional.txt", + "key": "object-tests/keys/space name.txt", "op": "delete" }, "exchanges": [ @@ -40719,7 +40905,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/conditional.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -40729,29 +40915,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-088e5dc109cf\"" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 202, "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" + "encoding": "base64", + "data": "" } } } @@ -40764,40 +40943,23 @@ "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" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-previous-version", + "id": "operations/azure-hns/delete-accepted-key-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "delete previous version", + "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/versions-mtypy4jp/object.txt", - "op": "delete", - "version": "none-1" + "key": "object-tests/keys/café/雪.txt", + "op": "delete" }, "exchanges": [ { @@ -40817,7 +40979,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -40827,29 +40989,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/versionid", - "optional": false, - "rule": { - "is": "equal", - "value": "none-1" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 202, "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" + "encoding": "base64", + "data": "" } } } @@ -40862,38 +41017,22 @@ "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" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-refused-for-snapshots", + "id": "operations/azure-hns/delete-accepted-key-double-slash", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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/snapshots/object.txt", + "key": "object-tests/keys/double//slash.txt", "op": "delete" }, "exchanges": [ @@ -40914,7 +41053,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -40959,15 +41098,15 @@ "refusal": null }, { - "id": "operations/azure-hns/delete-refused", + "id": "operations/azure-hns/delete-accepted-key-trailing-slash", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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.txt", + "key": "object-tests/keys/trailing-slash/", "op": "delete" }, "exchanges": [ @@ -40988,7 +41127,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -41003,17 +41142,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "x-ms-error-code": "InvalidUri" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "InvalidUriFixture error" } } } @@ -41034,7 +41173,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -41042,24 +41181,27 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "InvalidUri" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-snapshot", + "id": "operations/azure-hns/delete-many", "profile": "azure-hns", "lane": "core", - "purpose": "delete snapshot", + "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": { - "key": "object-tests/snapshots/object.txt", - "op": "delete", - "snapshot": "2024-01-01T00:00:00.8557081Z" + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" + ], + "op": "delete_many" }, "exchanges": [ { @@ -41071,7 +41213,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -41079,41 +41221,57 @@ "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": "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": "" + "value": "container" } }, { - "at": "/query/snapshot", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.8557081Z" + "value": "batch" } } ], "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": "BlobNotFound" + } }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" - } + "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" } } ] @@ -41125,40 +41283,49 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt" + ] } }, { - "at": "/code", + "at": "/value/errors", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": [ + { + "code": "BlobNotFound", + "key": "object-tests/batch/absent.txt", + "status": 404 + } + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-snapshots-only", + "id": "operations/azure-hns/delete-leased-if-match-without-lease-id", "profile": "azure-hns", "lane": "core", - "purpose": "delete snapshots only", + "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": { - "key": "object-tests/snapshots-only/object.txt", - "op": "delete", - "snapshots": "only" + "if_match": "\"fixture-etag\"", + "key": "object-tests/leases/object.txt", + "op": "delete" }, "exchanges": [ { @@ -41178,7 +41345,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots-only/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -41190,28 +41357,28 @@ } }, { - "at": "/headers/x-ms-delete-snapshots", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "only" + "value": "\"fixture-etag\"" } } ], "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" } } } @@ -41232,7 +41399,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 } }, { @@ -41240,22 +41407,22 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "LeaseIdMissing" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-unauthenticated", + "id": "operations/azure-hns/delete-leased-without-lease-id", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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": { - "key": "object-tests/remove/absent.txt", + "key": "object-tests/leases/object.txt", "op": "delete" }, "exchanges": [ @@ -41276,7 +41443,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/absent.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -41291,17 +41458,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 401, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "x-ms-error-code": "LeaseIdMissing" }, "body": { "encoding": "utf8", - "data": "InvalidAuthenticationInfoFixture error" + "data": "LeaseIdMissingFixture error" } } } @@ -41322,7 +41489,7 @@ "optional": false, "rule": { "is": "equal", - "value": 401 + "value": 412 } }, { @@ -41330,22 +41497,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "LeaseIdMissing" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-versioned-object", + "id": "operations/azure-hns/delete-server-busy", "profile": "azure-hns", "lane": "core", - "purpose": "delete versioned object", + "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": { - "key": "object-tests/versions-mtypy4jp/deleted.txt", + "key": "object-tests/remove/present.txt", "op": "delete" }, "exchanges": [ @@ -41366,7 +41535,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -41381,49 +41550,22 @@ "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." } } } ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "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": [ { @@ -41441,7 +41583,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots-all/object.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -41451,61 +41593,28 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-delete-snapshots", - "optional": false, - "rule": { - "is": "equal", - "value": "include" - } } ], "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." } } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -41515,7 +41624,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -41523,7 +41632,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots-only/object.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -41538,106 +41647,23 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 503, "headers": { - "content-md5": "TYtghPPRZ7dsrGaiKpG+Ag==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "a2VwdA==" + "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" - } - }, - { - "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, - "" - ] - } + ], + "optional": true }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "a2VwdA==" - } - } - ], - "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": [ { @@ -41647,7 +41673,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -41655,7 +41681,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -41670,97 +41696,23 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 503, "headers": { - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "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" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-072bed78cc6a\"" - } - }, - { - "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": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } + ], + "optional": true }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" - } - } - ], - "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": [ { @@ -41770,7 +41722,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -41778,7 +41730,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/over.bin" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -41793,97 +41745,23 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 503, "headers": { - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "YmxvY2s=" + "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" - } - }, - { - "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": "application/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": "YmxvY2s=" - } - } - ], - "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": [ { @@ -41893,7 +41771,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -41901,7 +41779,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -41916,27 +41794,22 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 503, "headers": { - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "Zmlyc3RzZWNvbmQ=" + "encoding": "utf8", + "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request." } } } - ] + ], + "optional": true } ], "expect": [ @@ -41945,66 +41818,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" - } - }, - { - "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" - } - }, - { - "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": "Zmlyc3RzZWNvbmQ=" + "value": "ServerBusy" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-container-missing", + "id": "operations/azure-hns/delete-if-unmodified-since-past", "profile": "azure-hns", "lane": "core", - "purpose": "get container missing", + "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": { - "key": "object.txt", - "op": "get" + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/remove/present.txt", + "op": "delete" }, "exchanges": [ { @@ -42016,7 +41863,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -42024,7 +41871,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -42034,22 +41881,30 @@ "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": 404, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -42070,7 +41925,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 } }, { @@ -42078,23 +41933,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/list-containers", + "id": "operations/azure-hns/delete-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "List the containers whose names start with a prefix", + "purpose": "delete container missing", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "op": "azure.list_containers", - "prefix": "otc-listed-" + "key": "object.txt", + "op": "delete" }, "exchanges": [ { @@ -42106,7 +41961,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -42114,7 +41969,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object.txt" } }, { @@ -42124,39 +41979,23 @@ "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, + "status": 404, "headers": { "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "ContainerNotFound" }, "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" + "data": "ContainerNotFoundFixture error" + } } } ] @@ -42168,34 +42007,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/containers", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": [ - "otc-listed-a", - "otc-listed-b" - ] + "value": 404 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/container-properties-absent", + "id": "operations/azure-hns/delete-current-version", "profile": "azure-hns", "lane": "core", - "purpose": "Report a missing container when reading its properties", + "purpose": "delete current version", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "container": "otc-absent", - "op": "azure.container_properties" + "key": "object-tests/versions-mtypy4jp/object.txt", + "op": "delete", + "version": "none-2" }, "exchanges": [ { @@ -42207,7 +42052,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -42215,7 +42060,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/otc-absent" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -42227,28 +42072,27 @@ } }, { - "at": "/query/restype", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "container" + "value": "none-2" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "ContainerNotFound" + } }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "InvalidQueryParameterValueFixture error" } } } @@ -42269,7 +42113,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -42277,23 +42121,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/container-properties", + "id": "operations/azure-hns/delete-if-match-current", "profile": "azure-hns", "lane": "core", - "purpose": "Read the properties of a container", + "purpose": "delete if match current", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "container": "otc-read", - "op": "azure.container_properties" + "if_match": "\"fixture-51797d9f787d\"", + "key": "object-tests/remove/conditional.txt", + "op": "delete" }, "exchanges": [ { @@ -42305,7 +42150,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -42313,7 +42158,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/otc-read" + "value": "/fixture/object-tests/remove/conditional.txt" } }, { @@ -42325,31 +42170,28 @@ } }, { - "at": "/query/restype", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "container" + "value": "\"fixture-51797d9f787d\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 202, "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -42369,16 +42211,16 @@ "refusal": null }, { - "id": "operations/azure-hns/delete-container-absent", + "id": "operations/azure-hns/delete-missing", "profile": "azure-hns", "lane": "core", - "purpose": "Report a missing container on delete", + "purpose": "delete missing", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "container": "otc-absent", - "op": "azure.delete_container" + "key": "object-tests/remove/absent.txt", + "op": "delete" }, "exchanges": [ { @@ -42398,7 +42240,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/otc-absent" + "value": "/fixture/object-tests/remove/absent.txt" } }, { @@ -42408,14 +42250,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/restype", - "optional": false, - "rule": { - "is": "equal", - "value": "container" - } } ], "allow_headers": [], @@ -42427,11 +42261,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "x-ms-error-code": "BlobNotFound" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "BlobNotFoundFixture error" } } } @@ -42460,23 +42294,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/delete-container", + "id": "operations/azure-hns/delete-precondition-failed", "profile": "azure-hns", "lane": "core", - "purpose": "Delete a container", + "purpose": "delete precondition failed", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "container": "otc-deleted", - "op": "azure.delete_container" + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/remove/conditional.txt", + "op": "delete" }, "exchanges": [ { @@ -42496,7 +42331,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/otc-deleted" + "value": "/fixture/object-tests/remove/conditional.txt" } }, { @@ -42508,25 +42343,28 @@ } }, { - "at": "/query/restype", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "container" + "value": "\"fixture-088e5dc109cf\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 202, + "status": 412, "headers": { + "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "ConditionNotMetFixture error" } } } @@ -42539,23 +42377,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": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/create-container-invalid-name", + "id": "operations/azure-hns/delete-precondition-failed-code-in-body", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a container name with capitals and an underscore", + "purpose": "delete precondition failed, with the error code only in the XML body", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata" + "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": { - "container": "Otc_Invalid", - "op": "azure.create_container" + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/remove/conditional.txt", + "op": "delete" }, "exchanges": [ { @@ -42567,7 +42425,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "DELETE" } }, { @@ -42575,7 +42433,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/Otc_Invalid" + "value": "/fixture/object-tests/remove/conditional.txt" } }, { @@ -42587,28 +42445,27 @@ } }, { - "at": "/query/restype", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "container" + "value": "\"fixture-088e5dc109cf\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "InvalidResourceName" + } }, "body": { "encoding": "utf8", - "data": "InvalidResourceNameFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -42629,7 +42486,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 412 } }, { @@ -42637,23 +42494,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidResourceName" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/create-container-exists", + "id": "operations/azure-hns/delete-previous-version", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse to create a container that exists", + "purpose": "delete previous version", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "container": "otc-existing", - "op": "azure.create_container" + "key": "object-tests/versions-mtypy4jp/object.txt", + "op": "delete", + "version": "none-1" }, "exchanges": [ { @@ -42665,7 +42523,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "DELETE" } }, { @@ -42673,7 +42531,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/otc-existing" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -42685,28 +42543,27 @@ } }, { - "at": "/query/restype", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "container" + "value": "none-1" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 409, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "ContainerAlreadyExists" + } }, "body": { "encoding": "utf8", - "data": "ContainerAlreadyExistsFixture error" + "data": "InvalidQueryParameterValueFixture error" } } } @@ -42727,7 +42584,7 @@ "optional": false, "rule": { "is": "equal", - "value": 409 + "value": 400 } }, { @@ -42735,23 +42592,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerAlreadyExists" + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/create-container", + "id": "operations/azure-hns/delete-refused-for-snapshots", "profile": "azure-hns", "lane": "core", - "purpose": "Create a container", + "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "container": "otc-created", - "op": "azure.create_container" + "key": "object-tests/snapshots/object.txt", + "op": "delete" }, "exchanges": [ { @@ -42763,7 +42620,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "DELETE" } }, { @@ -42771,7 +42628,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/otc-created" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -42781,29 +42638,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/restype", - "optional": false, - "rule": { - "is": "equal", - "value": "container" - } } ], "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" + "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": "base64", + "data": "" } } } @@ -42823,17 +42673,16 @@ "refusal": null }, { - "id": "operations/azure-hns/get-current-version-of-deleted-object", + "id": "operations/azure-hns/delete-refused", "profile": "azure-hns", "lane": "core", - "purpose": "get current version of deleted object", + "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/versions-mtypy4jp/deleted.txt", - "op": "get", - "version": "none-2" + "key": "object.txt", + "op": "delete" }, "exchanges": [ { @@ -42845,7 +42694,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -42853,7 +42702,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" + "value": "/fixture/object.txt" } }, { @@ -42863,29 +42712,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/versionid", - "optional": false, - "rule": { - "is": "equal", - "value": "none-2" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "ContainerNotFound" }, "body": { "encoding": "utf8", - "data": "InvalidQueryParameterValueFixture error" + "data": "ContainerNotFoundFixture error" } } } @@ -42906,7 +42748,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -42914,23 +42756,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidQueryParameterValue" + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-current-version", + "id": "operations/azure-hns/delete-snapshot", "profile": "azure-hns", "lane": "core", - "purpose": "get current version", + "purpose": "delete snapshot", "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" + "key": "object-tests/snapshots/object.txt", + "op": "delete", + "snapshot": "2024-01-01T00:00:00.8557081Z" }, "exchanges": [ { @@ -42942,7 +42785,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -42950,7 +42793,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -42960,29 +42803,30 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/snapshot", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.8557081Z" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { - "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "djI=" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -42995,75 +42839,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-ecff54f15562\"" - } - }, - { - "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/content_md5_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "GyZ2GcSBLMRu4oF0eITKUA==" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": 404 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "djI=" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-deleted-snapshot", + "id": "operations/azure-hns/delete-snapshots-only", "profile": "azure-hns", "lane": "core", - "purpose": "get deleted snapshot", + "purpose": "delete snapshots only", "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" + "key": "object-tests/snapshots-only/object.txt", + "op": "delete", + "snapshots": "only" }, "exchanges": [ { @@ -43075,7 +42884,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -43083,7 +42892,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/snapshots-only/object.txt" } }, { @@ -43095,11 +42904,11 @@ } }, { - "at": "/query/snapshot", + "at": "/headers/x-ms-delete-snapshots", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.8557081Z" + "value": "only" } } ], @@ -43152,16 +42961,16 @@ "refusal": null }, { - "id": "operations/azure-hns/get-deleted-versioned-object", + "id": "operations/azure-hns/delete-unauthenticated", "profile": "azure-hns", "lane": "core", - "purpose": "get deleted versioned object", + "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/versions-mtypy4jp/deleted.txt", - "op": "get" + "key": "object-tests/remove/absent.txt", + "op": "delete" }, "exchanges": [ { @@ -43173,7 +42982,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -43181,7 +42990,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" + "value": "/fixture/object-tests/remove/absent.txt" } }, { @@ -43196,17 +43005,17 @@ "allow_headers": [], "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": "utf8", - "data": "BlobNotFoundFixture error" + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -43227,7 +43036,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 401 } }, { @@ -43235,23 +43044,23 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-duplicate-id", + "id": "operations/azure-hns/delete-versioned-object", "profile": "azure-hns", "lane": "core", - "purpose": "get duplicate id", + "purpose": "delete versioned object", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/duplicate.bin", - "op": "get" + "key": "object-tests/versions-mtypy4jp/deleted.txt", + "op": "delete" }, "exchanges": [ { @@ -43263,7 +43072,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -43271,7 +43080,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/duplicate.bin" + "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" } }, { @@ -43286,23 +43095,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 202, "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "c2FtZXNhbWU=" + "data": "" } } } @@ -43317,64 +43120,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-a8581b642c5f\"" - } - }, - { - "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": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "c2FtZXNhbWU=" - } } ], "refusal": null }, { - "id": "operations/azure-hns/get-empty", + "id": "operations/azure-hns/delete-with-snapshots", "profile": "azure-hns", "lane": "core", - "purpose": "get empty", + "purpose": "delete with snapshots", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/write/empty.bin", - "op": "get" + "key": "object-tests/snapshots-all/object.txt", + "op": "delete", + "snapshots": "include" }, "exchanges": [ { @@ -43386,7 +43147,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -43394,7 +43155,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture/object-tests/snapshots-all/object.txt" } }, { @@ -43404,25 +43165,26 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-delete-snapshots", + "optional": false, + "rule": { + "is": "equal", + "value": "include" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 202, "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", @@ -43441,72 +43203,20 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "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-hns/get-if-match-current", + "id": "operations/azure-hns/get-after-snapshots-deleted", "profile": "azure-hns", "lane": "core", - "purpose": "get if match current", + "purpose": "get after snapshots deleted", "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", + "key": "object-tests/snapshots-only/object.txt", "op": "get" }, "exchanges": [ @@ -43527,7 +43237,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/snapshots-only/object.txt" } }, { @@ -43537,14 +43247,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" - } } ], "allow_headers": [], @@ -43552,12 +43254,12 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-md5": "TYtghPPRZ7dsrGaiKpG+Ag==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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", @@ -43567,7 +43269,7 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "a2VwdA==" } } } @@ -43588,7 +43290,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-8fc260370f1a\"" } }, { @@ -43596,7 +43298,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 4 } }, { @@ -43612,7 +43314,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "TYtghPPRZ7dsrGaiKpG+Ag==" } }, { @@ -43631,23 +43333,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "a2VwdA==" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-if-none-match-other", + "id": "operations/azure-hns/get-committed-nothing", "profile": "azure-hns", "lane": "core", - "purpose": "get if none match other", + "purpose": "get committed nothing", "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", + "key": "object-tests/multipart/empty.bin", "op": "get" }, "exchanges": [ @@ -43668,7 +43369,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { @@ -43678,14 +43379,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-088e5dc109cf\"" - } } ], "allow_headers": [], @@ -43693,12 +43386,11 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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", @@ -43708,7 +43400,7 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -43729,7 +43421,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-072bed78cc6a\"" } }, { @@ -43737,7 +43429,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 0 } }, { @@ -43748,14 +43440,6 @@ "value": "application/octet-stream" } }, - { - "at": "/value/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" - } - }, { "at": "/value/version", "optional": true, @@ -43772,22 +43456,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-key-with-hash", + "id": "operations/azure-hns/get-committed-over-whole-object", "profile": "azure-hns", "lane": "core", - "purpose": "get key with hash", + "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/names/hash#tag.txt", + "key": "object-tests/multipart/over.bin", "op": "get" }, "exchanges": [ @@ -43808,7 +43492,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/hash#tag.txt" + "value": "/fixture/object-tests/multipart/over.bin" } }, { @@ -43825,12 +43509,11 @@ "response": { "status": 200, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ed49e7da63af\"", + "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", @@ -43840,7 +43523,7 @@ }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "YmxvY2s=" } } } @@ -43861,7 +43544,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ed49e7da63af\"" + "value": "\"fixture-7dc650e58291\"" } }, { @@ -43869,7 +43552,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 5 } }, { @@ -43880,14 +43563,6 @@ "value": "application/octet-stream" } }, - { - "at": "/value/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" - } - }, { "at": "/value/version", "optional": true, @@ -43904,22 +43579,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "YmxvY2s=" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-key-with-percent", + "id": "operations/azure-hns/get-committed", "profile": "azure-hns", "lane": "core", - "purpose": "get key with percent", + "purpose": "get committed", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/names/percent%20.txt", + "key": "object-tests/multipart/committed.bin", "op": "get" }, "exchanges": [ @@ -43940,7 +43615,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/percent%20.txt" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { @@ -43957,12 +43632,11 @@ "response": { "status": 200, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-c4ca668cf15e\"", + "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", @@ -43972,7 +43646,7 @@ }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "Zmlyc3RzZWNvbmQ=" } } } @@ -43993,7 +43667,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-c4ca668cf15e\"" + "value": "\"fixture-8ec031f3abfa\"" } }, { @@ -44001,7 +43675,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 11 } }, { @@ -44012,14 +43686,6 @@ "value": "application/octet-stream" } }, - { - "at": "/value/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" - } - }, { "at": "/value/version", "optional": true, @@ -44036,22 +43702,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "Zmlyc3RzZWNvbmQ=" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-key-with-plus", + "id": "operations/azure-hns/get-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "get key with plus", + "purpose": "get container missing", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/names/plus+plus.txt", + "key": "object.txt", "op": "get" }, "exchanges": [ @@ -44072,7 +43738,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/plus+plus.txt" + "value": "/fixture/object.txt" } }, { @@ -44087,24 +43753,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "ContainerNotFound" }, "body": { - "encoding": "base64", - "data": "MQ==" + "encoding": "utf8", + "data": "ContainerNotFoundFixture error" } } } @@ -44117,74 +43776,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-f09c0f273191\"" - } - }, - { - "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/content_md5_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": 404 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-key-with-space", + "id": "operations/azure-hns/list-containers", "profile": "azure-hns", "lane": "core", - "purpose": "get key space", + "purpose": "List the containers whose names start with a prefix", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2" ], "call": { - "key": "a b", - "op": "get" + "op": "azure.list_containers", + "prefix": "otc-listed-" }, "exchanges": [ { @@ -44204,7 +43828,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a b" + "value": "/" } }, { @@ -44214,6 +43838,22 @@ "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": [], @@ -44221,25 +43861,16 @@ "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": "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" } } ] @@ -44255,27 +43886,30 @@ } }, { - "at": "/value/body_base64", + "at": "/value/containers", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": [ + "otc-listed-a", + "otc-listed-b" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/get-key-with-question", + "id": "operations/azure-hns/container-properties-absent", "profile": "azure-hns", "lane": "core", - "purpose": "get key question", + "purpose": "Report a missing container when reading its properties", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties" ], "call": { - "key": "a?b", - "op": "get" + "container": "otc-absent", + "op": "azure.container_properties" }, "exchanges": [ { @@ -44295,7 +43929,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a?b" + "value": "/otc-absent" } }, { @@ -44305,31 +43939,30 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "ContainerNotFound" }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" + "encoding": "utf8", + "data": "ContainerNotFoundFixture error" } } } @@ -44342,31 +43975,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": 404 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-key-with-non-ascii", + "id": "operations/azure-hns/container-properties", "profile": "azure-hns", "lane": "core", - "purpose": "get key unicode", + "purpose": "Read the properties of a container", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties" ], "call": { - "key": "café/雪", - "op": "get" + "container": "otc-read", + "op": "azure.container_properties" }, "exchanges": [ { @@ -44386,7 +44027,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/café/雪" + "value": "/otc-read" } }, { @@ -44396,6 +44037,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" + } } ], "allow_headers": [], @@ -44403,24 +44052,18 @@ "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-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", "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-lease-status": "unlocked" }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" + "encoding": "empty" } } } @@ -44435,29 +44078,21 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "aGVsbG8=" - } } ], "refusal": null }, { - "id": "operations/azure-hns/get-key-with-separators", + "id": "operations/azure-hns/delete-container-absent", "profile": "azure-hns", "lane": "core", - "purpose": "get key separators", + "purpose": "Report a missing container on delete", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container" ], "call": { - "key": "a//b/", - "op": "get" + "container": "otc-absent", + "op": "azure.delete_container" }, "exchanges": [ { @@ -44469,7 +44104,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -44477,7 +44112,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a//b/" + "value": "/otc-absent" } }, { @@ -44487,6 +44122,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" + } } ], "allow_headers": [], @@ -44498,11 +44141,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "x-ms-error-code": "ContainerNotFound" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "ContainerNotFoundFixture error" } } } @@ -44531,23 +44174,23 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-metadata-empty-value", + "id": "operations/azure-hns/delete-container", "profile": "azure-hns", "lane": "core", - "purpose": "get metadata empty value", + "purpose": "Delete a container", "sources": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" + "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container" ], "call": { - "key": "object-tests/metadata/empty-value.txt", - "op": "get" + "container": "otc-deleted", + "op": "azure.delete_container" }, "exchanges": [ { @@ -44559,7 +44202,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -44567,7 +44210,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/otc-deleted" } }, { @@ -44577,30 +44220,27 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 202, "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==" + "encoding": "empty" } } } @@ -44615,83 +44255,21 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "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": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "empty": "" - } - } } ], "refusal": null }, { - "id": "operations/azure-hns/get-metadata-of-snapshot", + "id": "operations/azure-hns/create-container-invalid-name", "profile": "azure-hns", "lane": "core", - "purpose": "get metadata of snapshot", + "purpose": "Refuse a container name with capitals and an underscore", "sources": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" + "https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata" ], "call": { - "key": "object-tests/metadata/snapshotted.txt", - "op": "get", - "snapshot": "2024-01-01T00:00:00.1577201Z" + "container": "Otc_Invalid", + "op": "azure.create_container" }, "exchanges": [ { @@ -44703,7 +44281,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -44711,7 +44289,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/snapshotted.txt" + "value": "/Otc_Invalid" } }, { @@ -44723,28 +44301,28 @@ } }, { - "at": "/query/snapshot", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1577201Z" + "value": "container" } } ], "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": "InvalidResourceName" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "InvalidResourceNameFixture error" } } } @@ -44765,7 +44343,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -44773,23 +44351,23 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidResourceName" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-metadata-replaced", + "id": "operations/azure-hns/create-container-exists", "profile": "azure-hns", "lane": "core", - "purpose": "get metadata replaced", + "purpose": "Refuse to create a container that exists", "sources": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" + "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container" ], "call": { - "key": "object-tests/metadata/replaced.txt", - "op": "get" + "container": "otc-existing", + "op": "azure.create_container" }, "exchanges": [ { @@ -44801,7 +44379,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -44809,7 +44387,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/otc-existing" } }, { @@ -44819,29 +44397,30 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 409, "headers": { - "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "ContainerAlreadyExists" }, "body": { - "encoding": "base64", - "data": "Mg==" + "encoding": "utf8", + "data": "ContainerAlreadyExistsFixture error" } } } @@ -44854,74 +44433,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "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" + "value": "error" } }, { - "at": "/value/content_md5_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "yB5yjZ1ML2NvBn+JzBSGLA==" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": 409 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "ContainerAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-metadata", + "id": "operations/azure-hns/create-container", "profile": "azure-hns", "lane": "core", - "purpose": "get metadata", + "purpose": "Create a container", "sources": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" + "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container" ], "call": { - "key": "object-tests/metadata/object.txt", - "op": "get" + "container": "otc-created", + "op": "azure.create_container" }, "exchanges": [ { @@ -44933,7 +44477,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -44941,7 +44485,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/otc-created" } }, { @@ -44951,31 +44495,29 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 201, "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" + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "MQ==" + "encoding": "empty" } } } @@ -44990,83 +44532,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "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": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "name": "value", - "second": "2" - } - } } ], "refusal": null }, { - "id": "operations/azure-hns/get-metadata-ignores-unknown-headers", + "id": "operations/azure-hns/get-current-version-of-deleted-object", "profile": "azure-hns", "lane": "core", - "purpose": "Surface user metadata; unknown headers must not become metadata.", + "purpose": "get current version of deleted object", "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" + "key": "object-tests/versions-mtypy4jp/deleted.txt", + "op": "get", + "version": "none-2" }, "exchanges": [ { @@ -45086,7 +44567,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" } }, { @@ -45096,33 +44577,29 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/versionid", + "optional": false, + "rule": { + "is": "equal", + "value": "none-2" + } } ], "allow_headers": [], "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-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": "utf8", + "data": "InvalidQueryParameterValueFixture error" } } } @@ -45135,40 +44612,38 @@ "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": "/value/metadata", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": { - "author": "Ada" - } + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-missing", + "id": "operations/azure-hns/get-current-version", "profile": "azure-hns", "lane": "core", - "purpose": "get missing", + "purpose": "get current version", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/read/absent.txt", + "key": "object-tests/versions-mtypy4jp/object.txt", "op": "get" }, "exchanges": [ @@ -45189,7 +44664,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -45204,17 +44679,24 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", + "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "djI=" } } } @@ -45227,42 +44709,75 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-ecff54f15562\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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-hns/get-missing-code-in-body", + "id": "operations/azure-hns/get-deleted-snapshot", "profile": "azure-hns", "lane": "core", - "purpose": "get missing, with the error code only in the XML body", + "purpose": "get deleted snapshot", "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": { - "key": "object-tests/read/absent.txt", - "op": "get" + "key": "object-tests/snapshots/object.txt", + "op": "get", + "snapshot": "2024-01-01T00:00:00.8557081Z" }, "exchanges": [ { @@ -45282,7 +44797,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -45292,6 +44807,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/snapshot", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.8557081Z" + } } ], "allow_headers": [], @@ -45302,7 +44825,8 @@ "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "BlobNotFound" }, "body": { "encoding": "utf8", @@ -45342,16 +44866,15 @@ "refusal": null }, { - "id": "operations/azure-hns/get-not-modified", + "id": "operations/azure-hns/get-deleted-versioned-object", "profile": "azure-hns", "lane": "core", - "purpose": "get not modified", + "purpose": "get deleted versioned object", "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", + "key": "object-tests/versions-mtypy4jp/deleted.txt", "op": "get" }, "exchanges": [ @@ -45372,7 +44895,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" } }, { @@ -45382,29 +44905,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 304, + "status": 404, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -45425,7 +44941,7 @@ "optional": false, "rule": { "is": "equal", - "value": 304 + "value": 404 } }, { @@ -45433,23 +44949,22 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-precondition-failed", + "id": "operations/azure-hns/get-duplicate-id", "profile": "azure-hns", "lane": "core", - "purpose": "get precondition failed", + "purpose": "get duplicate id", "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", + "key": "object-tests/multipart/duplicate.bin", "op": "get" }, "exchanges": [ @@ -45470,7 +44985,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/duplicate.bin" } }, { @@ -45480,30 +44995,28 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-088e5dc109cf\"" - } } ], "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": "ConditionNotMet" + "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": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "c2FtZXNhbWU=" } } } @@ -45516,40 +45029,66 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-a8581b642c5f\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "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-hns/get-previous-version-of-deleted-object", + "id": "operations/azure-hns/get-empty", "profile": "azure-hns", "lane": "core", - "purpose": "get previous version of deleted object", + "purpose": "get empty", "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" + "key": "object-tests/write/empty.bin", + "op": "get" }, "exchanges": [ { @@ -45569,7 +45108,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" + "value": "/fixture/object-tests/write/empty.bin" } }, { @@ -45579,29 +45118,29 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/versionid", - "optional": false, - "rule": { - "is": "equal", - "value": "none-1" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { - "content-type": "application/xml", + "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": "utf8", - "data": "InvalidQueryParameterValueFixture error" + "encoding": "base64", + "data": "" } } } @@ -45614,40 +45153,75 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-9373f0410116\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidQueryParameterValue" + "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-hns/get-previous-version", + "id": "operations/azure-hns/get-if-match-current", "profile": "azure-hns", "lane": "core", - "purpose": "get previous version", + "purpose": "get if match current", "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" + "if_match": "\"fixture-5295cdfd25ff\"", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -45667,7 +45241,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -45679,27 +45253,35 @@ } }, { - "at": "/query/versionid", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "none-1" + "value": "\"fixture-5295cdfd25ff\"" } } ], "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": "InvalidQueryParameterValueFixture error" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -45712,43 +45294,75 @@ "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": "InvalidQueryParameterValue" + "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-hns/get-range-inverted", + "id": "operations/azure-hns/get-if-none-match-other", "profile": "azure-hns", "lane": "core", - "purpose": "get range inverted", + "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", - "range": { - "end": 2, - "start": 6 - } + "op": "get" }, "exchanges": [ { @@ -45780,70 +45394,11 @@ } }, { - "at": "/headers/range", + "at": "/headers/if-none-match", "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" + "value": "\"fixture-088e5dc109cf\"" } } ], @@ -45935,48 +45490,19 @@ } } ], - "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/azure-hns/get-range-not-satisfiable", + "id": "operations/azure-hns/get-key-with-hash", "profile": "azure-hns", "lane": "core", - "purpose": "get range not satisfiable", + "purpose": "get key with hash", "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 - } + "key": "object-tests/names/hash#tag.txt", + "op": "get" }, "exchanges": [ { @@ -45996,60 +45522,7 @@ "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" + "value": "/fixture/object-tests/names/hash#tag.txt" } }, { @@ -46059,31 +45532,29 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=40-" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 416, + "status": 200, "headers": { - "content-range": "bytes */30", - "content-type": "application/xml", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "InvalidRange" + "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": "InvalidRangeFixture error" + "encoding": "base64", + "data": "MQ==" } } } @@ -46096,43 +45567,74 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 416 + "value": "\"fixture-ed49e7da63af\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidRange" + "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-range-past-the-end", + "id": "operations/azure-hns/get-key-with-percent", "profile": "azure-hns", "lane": "core", - "purpose": "get range past the end", + "purpose": "get key with percent", "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 - } + "key": "object-tests/names/percent%20.txt", + "op": "get" }, "exchanges": [ { @@ -46152,66 +45654,7 @@ "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" + "value": "/fixture/object-tests/names/percent%20.txt" } }, { @@ -46221,27 +45664,19 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=28-63" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 28-29/30", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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", @@ -46251,7 +45686,7 @@ }, "body": { "encoding": "base64", - "data": "Y3Q=" + "data": "MQ==" } } } @@ -46272,7 +45707,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-c4ca668cf15e\"" } }, { @@ -46280,7 +45715,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -46291,6 +45726,14 @@ "value": "application/octet-stream" } }, + { + "at": "/value/content_md5_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "xMpCOKC5I4INzFCab3WEmw==" + } + }, { "at": "/value/version", "optional": true, @@ -46307,27 +45750,23 @@ "optional": false, "rule": { "is": "equal", - "value": "Y3Q=" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-range-single-byte", + "id": "operations/azure-hns/get-key-with-plus", "profile": "azure-hns", "lane": "core", - "purpose": "get range single byte", + "purpose": "get key with plus", "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 - } + "key": "object-tests/names/plus+plus.txt", + "op": "get" }, "exchanges": [ { @@ -46347,66 +45786,7 @@ "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" + "value": "/fixture/object-tests/names/plus+plus.txt" } }, { @@ -46416,27 +45796,19 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=0-0" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 0-0/30", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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", @@ -46446,7 +45818,7 @@ }, "body": { "encoding": "base64", - "data": "MA==" + "data": "MQ==" } } } @@ -46467,7 +45839,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-f09c0f273191\"" } }, { @@ -46486,6 +45858,14 @@ "value": "application/octet-stream" } }, + { + "at": "/value/content_md5_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "xMpCOKC5I4INzFCab3WEmw==" + } + }, { "at": "/value/version", "optional": true, @@ -46502,27 +45882,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MA==" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-range", + "id": "operations/azure-hns/get-key-with-space", "profile": "azure-hns", "lane": "core", - "purpose": "get range", + "purpose": "get key space", "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": { - "key": "object-tests/read/object.txt", - "op": "get", - "range": { - "end": 6, - "start": 2 - } + "key": "a b", + "op": "get" }, "exchanges": [ { @@ -46542,66 +45918,7 @@ "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" + "value": "/fixture/a b" } }, { @@ -46611,37 +45928,31 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=2-5" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 2-5/30", "content-type": "application/octet-stream", "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": "MjM0NQ==" + "data": "aGVsbG8=" } } } @@ -46657,66 +45968,28 @@ "value": "ok" } }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "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": "MjM0NQ==" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-range-open", + "id": "operations/azure-hns/get-key-with-question", "profile": "azure-hns", "lane": "core", - "purpose": "get range open", + "purpose": "get key question", "sources": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob" ], "call": { - "key": "object", - "op": "get", - "range": { - "start": 3 - } + "key": "a?b", + "op": "get" }, "exchanges": [ { @@ -46736,7 +46009,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/a?b" } }, { @@ -46746,22 +46019,13 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=3-" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 3-4/5", "content-type": "application/octet-stream", "date": { "from": "now" @@ -46779,10 +46043,48 @@ }, "body": { "encoding": "base64", - "data": "bG8=" + "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-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": [ { @@ -46798,7 +46100,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/café/雪" } }, { @@ -46808,22 +46110,13 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=3-" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 3-4/5", "content-type": "application/octet-stream", "date": { "from": "now" @@ -46841,7 +46134,7 @@ }, "body": { "encoding": "base64", - "data": "bG8=" + "data": "aGVsbG8=" } } } @@ -46862,22 +46155,22 @@ "optional": false, "rule": { "is": "equal", - "value": "bG8=" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-reordered", + "id": "operations/azure-hns/get-key-with-separators", "profile": "azure-hns", "lane": "core", - "purpose": "get reordered", + "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": { - "key": "object-tests/multipart/reordered.bin", + "key": "a//b/", "op": "get" }, "exchanges": [ @@ -46898,7 +46191,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/reordered.bin" + "value": "/fixture/a//b/" } }, { @@ -46913,23 +46206,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "c2Vjb25kZmlyc3Q=" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -46942,65 +46229,38 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-446301cfeaef\"" - } - }, - { - "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" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": 404 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25kZmlyc3Q=" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-replacement", + "id": "operations/azure-hns/get-metadata-empty-value", "profile": "azure-hns", "lane": "core", - "purpose": "get replacement", + "purpose": "get metadata empty value", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/replaced.bin", + "key": "object-tests/metadata/empty-value.txt", "op": "get" }, "exchanges": [ @@ -47021,7 +46281,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -47038,21 +46298,23 @@ "response": { "status": 200, "headers": { + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-9c5e55ff559c\"", + "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": "RklSU1Q=" + "data": "MQ==" } } } @@ -47073,7 +46335,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9c5e55ff559c\"" + "value": "\"fixture-18852ad86043\"" } }, { @@ -47081,7 +46343,7 @@ "optional": false, "rule": { "is": "equal", - "value": 5 + "value": 1 } }, { @@ -47092,6 +46354,14 @@ "value": "application/octet-stream" } }, + { + "at": "/value/content_md5_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "xMpCOKC5I4INzFCab3WEmw==" + } + }, { "at": "/value/version", "optional": true, @@ -47108,22 +46378,32 @@ "optional": false, "rule": { "is": "equal", - "value": "RklSU1Q=" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "empty": "" + } } } ], "refusal": null }, { - "id": "operations/azure-hns/get-snapshot", + "id": "operations/azure-hns/get-metadata-of-snapshot", "profile": "azure-hns", "lane": "core", - "purpose": "get snapshot", + "purpose": "get metadata of snapshot", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/snapshots/object.txt", + "key": "object-tests/metadata/snapshotted.txt", "op": "get", "snapshot": "2024-01-01T00:00:00.1577201Z" }, @@ -47145,7 +46425,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/metadata/snapshotted.txt" } }, { @@ -47214,15 +46494,15 @@ "refusal": null }, { - "id": "operations/azure-hns/get-staged-only", + "id": "operations/azure-hns/get-metadata-replaced", "profile": "azure-hns", "lane": "core", - "purpose": "get staged only", + "purpose": "get metadata replaced", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/staged.bin", + "key": "object-tests/metadata/replaced.txt", "op": "get" }, "exchanges": [ @@ -47243,7 +46523,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -47258,17 +46538,24 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", + "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "Mg==" } } } @@ -47281,42 +46568,74 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-c24dabf9e117\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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": "Mg==" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-suffix-longer-than-object", + "id": "operations/azure-hns/get-metadata", "profile": "azure-hns", "lane": "core", - "purpose": "get suffix longer than object", + "purpose": "get 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": 100 - } + "key": "object-tests/metadata/object.txt", + "op": "get" }, "exchanges": [ { @@ -47336,66 +46655,7 @@ "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-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" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -47405,14 +46665,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-100" - } } ], "allow_headers": [], @@ -47420,22 +46672,24 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } } @@ -47456,7 +46710,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-4d04dba3441e\"" } }, { @@ -47464,7 +46718,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -47480,7 +46734,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -47499,52 +46753,34 @@ "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": ".+" + "value": "MQ==" } }, { - "at": "/parameter", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "range" + "value": { + "name": "value", + "second": "2" + } } } ], - "decline_permitted": true + "refusal": null }, { - "id": "operations/azure-hns/get-suffix", + "id": "operations/azure-hns/get-metadata-ignores-unknown-headers", "profile": "azure-hns", "lane": "core", - "purpose": "get suffix", + "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": { - "key": "object-tests/read/object.txt", - "op": "get", - "range": { - "suffix": 6 - } + "key": "object", + "op": "get" }, "exchanges": [ { @@ -47564,7 +46800,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -47574,14 +46810,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-6" - } } ], "allow_headers": [], @@ -47589,25 +46817,77 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "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-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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "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-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": [ { @@ -47623,7 +46903,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/read/absent.txt" } }, { @@ -47633,37 +46913,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-6" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -47676,98 +46941,228 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": 404 } }, { - "at": "/value/size", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": 30 + "value": "BlobNotFound" } - }, + } + ], + "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": [ { - "at": "/value/content_type", + "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": "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": 404 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "BlobNotFound" } } ], - "refusal": [ + "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": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "refused" + "value": "error" } }, { - "at": "/kind", + "at": "/status", "optional": false, "rule": { - "is": "matches", - "pattern": ".+" + "is": "equal", + "value": 304 } }, { - "at": "/parameter", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "range" + "value": "ConditionNotMet" } } ], - "decline_permitted": true + "refusal": null }, { - "id": "operations/azure-hns/get-unauthenticated", + "id": "operations/azure-hns/get-precondition-failed", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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" }, @@ -47799,22 +47194,30 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-088e5dc109cf\"" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 401, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "InvalidAuthenticationInfoFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -47835,7 +47238,7 @@ "optional": false, "rule": { "is": "equal", - "value": 401 + "value": 412 } }, { @@ -47843,24 +47246,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-unknown-snapshot", + "id": "operations/azure-hns/get-previous-version-of-deleted-object", "profile": "azure-hns", "lane": "core", - "purpose": "get unknown snapshot", + "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/snapshots/object.txt", + "key": "object-tests/versions-mtypy4jp/deleted.txt", "op": "get", - "snapshot": "2024-01-01T00:00:00.4364169Z" + "version": "none-1" }, "exchanges": [ { @@ -47880,7 +47283,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" } }, { @@ -47892,28 +47295,27 @@ } }, { - "at": "/query/snapshot", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.4364169Z" + "value": "none-1" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "BlobNotFound" + } }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "InvalidQueryParameterValueFixture error" } } } @@ -47934,7 +47336,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -47942,24 +47344,24 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-unknown-version", + "id": "operations/azure-hns/get-previous-version", "profile": "azure-hns", "lane": "core", - "purpose": "get unknown version", + "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": "2024-01-01T00:00:00.4364169Z" + "version": "none-1" }, "exchanges": [ { @@ -47995,24 +47397,23 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.4364169Z" + "value": "none-1" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 409, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + } }, "body": { "encoding": "utf8", - "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + "data": "InvalidQueryParameterValueFixture error" } } } @@ -48033,7 +47434,7 @@ "optional": false, "rule": { "is": "equal", - "value": 409 + "value": 400 } }, { @@ -48041,23 +47442,27 @@ "optional": false, "rule": { "is": "equal", - "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-whole", + "id": "operations/azure-hns/get-range-inverted", "profile": "azure-hns", "lane": "core", - "purpose": "get whole", + "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" + "op": "get", + "range": { + "end": 2, + "start": 6 + } }, "exchanges": [ { @@ -48087,6 +47492,73 @@ "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": [], @@ -48177,19 +47649,48 @@ } } ], - "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/get-xml-looking", + "id": "operations/azure-hns/get-range-not-satisfiable", "profile": "azure-hns", "lane": "core", - "purpose": "get xml looking", + "purpose": "get range not satisfiable", "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" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "start": 40 + } }, "exchanges": [ { @@ -48209,7 +47710,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -48219,73 +47720,34 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=40-" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 416, "headers": { - "content-type": "application/octet-stream", + "content-range": "bytes */30", + "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": "InvalidRange" }, "body": { - "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + "encoding": "utf8", + "data": "InvalidRangeFixture error" } } - } - ] - } - ], - "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-hns/get-noise-tolerance", - "profile": "azure-hns", - "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": [ { @@ -48301,7 +47763,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -48311,32 +47773,31 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=40-" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 416, "headers": { - "content-type": "application/octet-stream", + "content-range": "bytes */30", + "content-type": "application/xml", "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" + "x-ms-error-code": "InvalidRange" }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" + "encoding": "utf8", + "data": "InvalidRangeFixture error" } } } @@ -48349,33 +47810,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": 416 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidRange" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-body-cut-short", + "id": "operations/azure-hns/get-range-past-the-end", "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", + "purpose": "get range past the end", "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" + "op": "get", + "range": { + "end": 64, + "start": 28 + } }, "exchanges": [ { @@ -48405,14 +47876,22 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=28-63" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-range": "bytes 28-29/30", "content-type": "application/octet-stream", "date": { "from": "now" @@ -48427,15 +47906,10 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - }, - "truncate_body_after": 15 + "data": "Y3Q=" + } } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -48461,16 +47935,22 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=28-63" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-range": "bytes 28-29/30", "content-type": "application/octet-stream", "date": { "from": "now" @@ -48485,10 +47965,87 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "Y3Q=" } } - }, + } + ] + } + ], + "expect": [ + { + "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": 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": "Y3Q=" + } + } + ], + "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": [ { @@ -48520,15 +48077,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=15-" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "bytes=0-0" } } ], @@ -48537,7 +48086,7 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 15-29/30", + "content-range": "bytes 0-0/30", "content-type": "application/octet-stream", "date": { "from": "now" @@ -48552,7 +48101,7 @@ }, "body": { "encoding": "base64", - "data": "Y3QtdGVzdHMtb2JqZWN0" + "data": "MA==" } } }, @@ -48587,15 +48136,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=15-" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "bytes=0-0" } } ], @@ -48604,7 +48145,7 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 15-29/30", + "content-range": "bytes 0-0/30", "content-type": "application/octet-stream", "date": { "from": "now" @@ -48619,50 +48160,83 @@ }, "body": { "encoding": "base64", - "data": "Y3QtdGVzdHMtb2JqZWN0" + "data": "MA==" } } } - ], - "optional": true + ] } ], "expect": [ { "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": 1 + } + }, + { + "at": "/value/content_type", + "optional": false, + "rule": { + "is": "equal", + "value": "application/octet-stream" + } + }, + { + "at": "/value/version", + "optional": true, "rule": { "is": "one_of", "values": [ - "error", - "ok" + null, + "" ] } }, { "at": "/value/body_base64", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "MA==" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-server-busy", + "id": "operations/azure-hns/get-range", "profile": "azure-hns", "lane": "core", - "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries", + "purpose": "get range", "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": "get", + "range": { + "end": 6, + "start": 2 + } }, "exchanges": [ { @@ -48692,78 +48266,40 @@ "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", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "bytes=2-5" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 503, + "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": "ServerBusy" + "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "encoding": "base64", + "data": "MjM0NQ==" } } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -48789,77 +48325,114 @@ "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", + "at": "/headers/x-ms-range", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "bytes=2-5" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 503, + "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": "ServerBusy" + "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "encoding": "base64", + "data": "MjM0NQ==" } } } - ], - "optional": true + ] + } + ], + "expect": [ + { + "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": 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": "MjM0NQ==" + } + } + ], + "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": [ { @@ -48877,7 +48450,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -48887,30 +48460,43 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=3-" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 503, + "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": "ServerBusy" + "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "encoding": "base64", + "data": "bG8=" } } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -48926,7 +48512,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -48936,27 +48522,44 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=3-" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 503, + "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": "ServerBusy" + "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": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "encoding": "base64", + "data": "bG8=" } } } - ], - "optional": true + ] } ], "expect": [ @@ -48965,39 +48568,30 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 503 + "value": "ok" } }, { - "at": "/code", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "ServerBusy" + "value": "bG8=" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-if-unmodified-since-past", + "id": "operations/azure-hns/get-reordered", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", + "purpose": "get reordered", "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", + "key": "object-tests/multipart/reordered.bin", "op": "get" }, "exchanges": [ @@ -49018,7 +48612,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/reordered.bin" } }, { @@ -49028,30 +48622,28 @@ "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, + "status": 200, "headers": { - "content-type": "application/xml", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "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": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "c2Vjb25kZmlyc3Q=" } } } @@ -49064,136 +48656,65 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-446301cfeaef\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": 11 } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/get-if-modified-since-future", - "profile": "azure-hns", - "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", + "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": 304 + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/code", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "c2Vjb25kZmlyc3Q=" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-if-modified-since-past", + "id": "operations/azure-hns/get-replacement", "profile": "azure-hns", "lane": "core", - "purpose": "Read an object modified since a past date", + "purpose": "get replacement", "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", + "key": "object-tests/multipart/replaced.bin", "op": "get" }, "exchanges": [ @@ -49214,7 +48735,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -49224,14 +48745,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-modified-since", - "optional": false, - "rule": { - "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" - } } ], "allow_headers": [], @@ -49239,12 +48752,11 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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", @@ -49254,7 +48766,7 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "RklSU1Q=" } } } @@ -49275,7 +48787,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-9c5e55ff559c\"" } }, { @@ -49283,7 +48795,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 5 } }, { @@ -49294,14 +48806,6 @@ "value": "application/octet-stream" } }, - { - "at": "/value/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" - } - }, { "at": "/value/version", "optional": true, @@ -49318,23 +48822,24 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "RklSU1Q=" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-content-encoding-gzip", + "id": "operations/azure-hns/get-snapshot", "profile": "azure-hns", "lane": "core", - "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them", + "purpose": "get 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": "get", + "snapshot": "2024-01-01T00:00:00.1577201Z" }, "exchanges": [ { @@ -49354,7 +48859,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -49364,30 +48869,30 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/snapshot", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.1577201Z" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { - "content-encoding": "gzip", - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", - "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": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -49400,81 +48905,38 @@ "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": 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, - "" - ] + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": 404 } }, { - "at": "/value/content_encoding", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-content-properties", + "id": "operations/azure-hns/get-staged-only", "profile": "azure-hns", "lane": "core", - "purpose": "Return the stored content properties from a GET", + "purpose": "get staged only", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/read/object.txt", + "key": "object-tests/multipart/staged.bin", "op": "get" }, "exchanges": [ @@ -49495,7 +48957,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -49510,27 +48972,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "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-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": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -49543,98 +48995,42 @@ "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_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" + "value": "error" } }, { - "at": "/value/content_disposition", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "value": 404 } }, { - "at": "/value/cache_control", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-with-staged-blocks", + "id": "operations/azure-hns/get-suffix-longer-than-object", "profile": "azure-hns", "lane": "core", - "purpose": "get with staged blocks", + "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/multipart/pending.bin", - "op": "get" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "suffix": 100 + } }, "exchanges": [ { @@ -49654,7 +49050,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -49664,6 +49060,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-100" + } } ], "allow_headers": [], @@ -49671,11 +49075,12 @@ "response": { "status": 200, "headers": { + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ce92c4d48b08\"", + "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", @@ -49685,83 +49090,10 @@ }, "body": { "encoding": "base64", - "data": "Zmlyc3RzZWNvbmQ=" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-ce92c4d48b08\"" - } - }, - { - "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": "Zmlyc3RzZWNvbmQ=" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/head-committed-declaring-md5", - "profile": "azure-hns", - "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": [ { @@ -49769,7 +49101,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -49777,7 +49109,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/committed.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -49787,6 +49119,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-100" + } } ], "allow_headers": [], @@ -49794,13 +49134,12 @@ "response": { "status": 200, "headers": { - "content-length": "13", - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-9a581bc70e20\"", + "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", @@ -49810,7 +49149,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -49831,7 +49170,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9a581bc70e20\"" + "value": "\"fixture-5295cdfd25ff\"" } }, { @@ -49839,7 +49178,7 @@ "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 30 } }, { @@ -49855,7 +49194,7 @@ "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -49868,21 +49207,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/head-committed", + "id": "operations/azure-hns/get-suffix", "profile": "azure-hns", "lane": "core", - "purpose": "head committed", + "purpose": "get suffix", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/committed.bin", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "suffix": 6 + } }, "exchanges": [ { @@ -49894,7 +49270,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -49902,7 +49278,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -49912,6 +49288,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-6" + } } ], "allow_headers": [], @@ -49919,12 +49303,12 @@ "response": { "status": 200, "headers": { - "content-length": "11", + "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", @@ -49934,75 +49318,10 @@ }, "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-8ec031f3abfa\"" - } - }, - { - "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, - "" - ] - } - } - ], - "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": [ { @@ -50010,7 +49329,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50018,7 +49337,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -50028,6 +49347,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-6" + } } ], "allow_headers": [], @@ -50035,25 +49362,22 @@ "response": { "status": 200, "headers": { - "content-length": "1", - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-4d04dba3441e\"", + "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-meta-name": "value", - "x-ms-meta-second": "2", "x-ms-server-encrypted": "true" }, "body": { "encoding": "base64", - "data": "" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -50074,7 +49398,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4d04dba3441e\"" + "value": "\"fixture-5295cdfd25ff\"" } }, { @@ -50082,7 +49406,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { @@ -50098,7 +49422,7 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -50113,30 +49437,53 @@ } }, { - "at": "/value/metadata", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": { - "name": "value", - "second": "2" - } + "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/head-missing", + "id": "operations/azure-hns/get-unauthenticated", "profile": "azure-hns", "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" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -50148,7 +49495,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50156,7 +49503,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -50171,16 +49518,17 @@ "allow_headers": [], "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" } } } @@ -50201,7 +49549,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 401 } }, { @@ -50209,24 +49557,24 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-previous-version", + "id": "operations/azure-hns/get-unknown-snapshot", "profile": "azure-hns", "lane": "core", - "purpose": "head previous version", + "purpose": "get unknown snapshot", "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" + "key": "object-tests/snapshots/object.txt", + "op": "get", + "snapshot": "2024-01-01T00:00:00.4364169Z" }, "exchanges": [ { @@ -50238,7 +49586,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50246,7 +49594,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -50258,26 +49606,28 @@ } }, { - "at": "/query/versionid", + "at": "/query/snapshot", "optional": false, "rule": { "is": "equal", - "value": "none-1" + "value": "2024-01-01T00:00:00.4364169Z" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { + "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -50298,24 +49648,32 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-snapshot", + "id": "operations/azure-hns/get-unknown-version", "profile": "azure-hns", "lane": "core", - "purpose": "head snapshot", + "purpose": "get unknown version", "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" + "key": "object-tests/versions-mtypy4jp/object.txt", + "op": "get", + "version": "2024-01-01T00:00:00.4364169Z" }, "exchanges": [ { @@ -50327,7 +49685,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50335,7 +49693,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -50347,27 +49705,28 @@ } }, { - "at": "/query/snapshot", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1577201Z" + "value": "2024-01-01T00:00:00.4364169Z" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 409, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" } } } @@ -50388,7 +49747,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 409 } }, { @@ -50396,23 +49755,23 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-written-with-crc64", + "id": "operations/azure-hns/get-whole", "profile": "azure-hns", "lane": "core", - "purpose": "head written with crc64", + "purpose": "get whole", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/hashes/crc64.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -50424,7 +49783,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50432,7 +49791,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -50449,13 +49808,12 @@ "response": { "status": 200, "headers": { - "content-length": "13", - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-bf462a2f52f2\"", + "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", @@ -50465,7 +49823,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -50486,7 +49844,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf462a2f52f2\"" + "value": "\"fixture-5295cdfd25ff\"" } }, { @@ -50494,7 +49852,7 @@ "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 30 } }, { @@ -50510,7 +49868,7 @@ "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -50523,21 +49881,29 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } ], "refusal": null }, { - "id": "operations/azure-hns/head-written-with-md5", + "id": "operations/azure-hns/get-xml-looking", "profile": "azure-hns", "lane": "core", - "purpose": "head written with md5", + "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": { - "key": "object-tests/hashes/md5.txt", - "op": "head" + "key": "object", + "op": "get" }, "exchanges": [ { @@ -50549,7 +49915,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50557,7 +49923,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5.txt" + "value": "/fixture/object" } }, { @@ -50574,23 +49940,24 @@ "response": { "status": 200, "headers": { - "content-length": "13", - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-15ae0acd3480\"", + "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": "" + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } } @@ -50607,62 +49974,28 @@ } }, { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-15ae0acd3480\"" - } - }, - { - "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", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } ], "refusal": null }, { - "id": "operations/azure-hns/head", + "id": "operations/azure-hns/get-noise-tolerance", "profile": "azure-hns", "lane": "core", - "purpose": "head", + "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": { - "key": "object-tests/read/object.txt", - "op": "head" + "key": "object", + "op": "get" }, "exchanges": [ { @@ -50674,7 +50007,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50682,7 +50015,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -50699,23 +50032,25 @@ "response": { "status": 200, "headers": { - "content-length": "30", - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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-server-encrypted": "true" + "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=" } } } @@ -50732,62 +50067,29 @@ } }, { - "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", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-key-question", + "id": "operations/azure-hns/get-body-cut-short", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"question?mark.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": { - "key": "object-tests/keys/question?mark.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -50799,7 +50101,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50807,7 +50109,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -50824,7 +50126,6 @@ "response": { "status": 200, "headers": { - "content-length": "30", "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { @@ -50840,81 +50141,13 @@ }, "body": { "encoding": "base64", - "data": "" - } + "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-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, - "" - ] - } - } - ], - "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": [ { @@ -50924,7 +50157,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -50932,7 +50165,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -50944,12 +50177,13 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 200, "headers": { - "content-length": "30", "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { @@ -50965,11 +50199,478 @@ }, "body": { "encoding": "base64", - "data": "" + "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-5295cdfd25ff\"" + } + } + ], + "allow_headers": [], + "allow_query": [], + "response": { + "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-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-server-encrypted": "true" + }, + "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-5295cdfd25ff\"" + } + } + ], + "allow_headers": [], + "allow_query": [], + "response": { + "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-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-server-encrypted": "true" + }, + "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-hns/get-server-busy", + "profile": "azure-hns", + "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": [ @@ -50978,66 +50679,236 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": 503 } }, { - "at": "/value/size", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": 30 + "value": "ServerBusy" + } + } + ], + "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": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "error" } }, { - "at": "/value/content_type", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "application/octet-stream" + "value": 412 } }, { - "at": "/value/content_md5_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "ConditionNotMet" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/get-if-modified-since-future", + "profile": "azure-hns", + "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": "/value/version", - "optional": true, + "at": "/status", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": 304 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-key-percent", + "id": "operations/azure-hns/get-if-modified-since-past", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"percent%20.txt\"", + "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/keys/percent%20.txt", - "op": "head" + "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -51049,7 +50920,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -51057,7 +50928,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -51067,6 +50938,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-modified-since", + "optional": false, + "rule": { + "is": "equal", + "value": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [], @@ -51074,7 +50953,6 @@ "response": { "status": 200, "headers": { - "content-length": "30", "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { @@ -51090,7 +50968,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -51148,21 +51026,29 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } ], "refusal": null }, { - "id": "operations/azure-hns/head-key-plus", + "id": "operations/azure-hns/get-content-encoding-gzip", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"plus+plus.txt\"", + "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/keys/plus+plus.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -51174,7 +51060,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -51182,7 +51068,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -51199,8 +51085,8 @@ "response": { "status": 200, "headers": { - "content-length": "30", - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-encoding": "gzip", + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "content-type": "application/octet-stream", "date": { "from": "now" @@ -51215,7 +51101,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } } } @@ -51244,7 +51130,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 42 } }, { @@ -51260,7 +51146,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "CVsDGvNMZH4SPA4MSLswrA==" } }, { @@ -51273,21 +51159,37 @@ "" ] } + }, + { + "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-hns/head-key-space", + "id": "operations/azure-hns/get-content-properties", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"space name.txt\"", + "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/keys/space name.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -51299,7 +51201,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -51307,7 +51209,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -51324,9 +51226,11 @@ "response": { "status": 200, "headers": { - "content-length": "30", + "cache-control": "max-age=3600", + "content-disposition": "attachment; filename=\"report.txt\"", + "content-language": "nl-NL", "content-md5": "H1VC0PNTmj+yaCRN4U931g==", - "content-type": "application/octet-stream", + "content-type": "text/plain; charset=utf-8", "date": { "from": "now" }, @@ -51340,7 +51244,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -51372,14 +51276,6 @@ "value": 30 } }, - { - "at": "/value/content_type", - "optional": false, - "rule": { - "is": "equal", - "value": "application/octet-stream" - } - }, { "at": "/value/content_md5_base64", "optional": false, @@ -51398,21 +51294,61 @@ "" ] } + }, + { + "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-hns/head-key-non-ascii", + "id": "operations/azure-hns/get-with-staged-blocks", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"café/雪.txt\"", + "purpose": "get with staged blocks", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/keys/café/雪.txt", - "op": "head" + "key": "object-tests/multipart/pending.bin", + "op": "get" }, "exchanges": [ { @@ -51424,7 +51360,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -51432,7 +51368,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { @@ -51449,13 +51385,11 @@ "response": { "status": 200, "headers": { - "content-length": "30", - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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", @@ -51465,7 +51399,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "Zmlyc3RzZWNvbmQ=" } } } @@ -51486,7 +51420,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-ce92c4d48b08\"" } }, { @@ -51494,7 +51428,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 11 } }, { @@ -51505,14 +51439,6 @@ "value": "application/octet-stream" } }, - { - "at": "/value/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" - } - }, { "at": "/value/version", "optional": true, @@ -51523,20 +51449,28 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "Zmlyc3RzZWNvbmQ=" + } } ], "refusal": null }, { - "id": "operations/azure-hns/head-key-double-slash", + "id": "operations/azure-hns/head-committed-declaring-md5", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"double//slash.txt\"", + "purpose": "head committed declaring md5", "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/hashes/committed.bin", "op": "head" }, "exchanges": [ @@ -51557,7 +51491,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/hashes/committed.bin" } }, { @@ -51574,13 +51508,13 @@ "response": { "status": 200, "headers": { - "content-length": "30", - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-length": "13", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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", @@ -51611,7 +51545,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-9a581bc70e20\"" } }, { @@ -51619,7 +51553,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 13 } }, { @@ -51635,7 +51569,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { @@ -51653,15 +51587,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head-key-trailing-slash", + "id": "operations/azure-hns/head-committed", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"trailing-slash/\"", + "purpose": "head committed", "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/multipart/committed.bin", "op": "head" }, "exchanges": [ @@ -51682,7 +51616,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { @@ -51697,15 +51631,24 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { + "content-length": "11", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "empty" + "encoding": "base64", + "data": "" } } } @@ -51718,38 +51661,57 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/head-content-properties", + "id": "operations/azure-hns/head-metadata", "profile": "azure-hns", "lane": "core", - "purpose": "Return the stored content properties from a HEAD", + "purpose": "head metadata", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/read/object.txt", + "key": "object-tests/metadata/object.txt", "op": "head" }, "exchanges": [ @@ -51770,7 +51732,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -51787,21 +51749,20 @@ "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-length": "1", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5295cdfd25ff\"", + "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": { @@ -51827,7 +51788,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-4d04dba3441e\"" } }, { @@ -51835,7 +51796,15 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 + } + }, + { + "at": "/value/content_type", + "optional": false, + "rule": { + "is": "equal", + "value": "application/octet-stream" } }, { @@ -51843,7 +51812,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -51858,51 +51827,29 @@ } }, { - "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", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": { + "name": "value", + "second": "2" + } } } ], "refusal": null }, { - "id": "operations/azure-hns/head-if-unmodified-since-past", + "id": "operations/azure-hns/head-missing", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since", + "purpose": "head missing", "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", + "key": "object-tests/read/absent.txt", "op": "head" }, "exchanges": [ @@ -51923,7 +51870,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/read/absent.txt" } }, { @@ -51933,28 +51880,21 @@ "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, + "status": 404, "headers": { "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -51975,7 +51915,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 404 } }, { @@ -51983,25 +51923,26 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/list-after-delete-with-versions", + "id": "operations/azure-hns/head-previous-version", "profile": "azure-hns", "lane": "core", - "purpose": "list after delete with versions", + "purpose": "head previous version", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "op": "list_page", - "prefix": "object-tests/versions-mtypy4jp/deleted.txt" - }, - "exchanges": [ + "key": "object-tests/versions-mtypy4jp/object.txt", + "op": "head", + "version": "none-1" + }, + "exchanges": [ { "alternatives": [ { @@ -52011,7 +51952,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -52019,7 +51960,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -52031,47 +51972,27 @@ } }, { - "at": "/query/restype", - "optional": false, - "rule": { - "is": "equal", - "value": "container" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "list" - } - }, - { - "at": "/query/prefix", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "object-tests/versions-mtypy4jp/deleted.txt" + "value": "none-1" } } ], "allow_headers": [], "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/versions-mtypy4jp/deleted.txt" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -52083,48 +52004,32 @@ "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": "error" } }, { - "at": "/value/continuation_token", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "" + "value": 400 } } ], "refusal": null }, { - "id": "operations/azure-hns/list-bad-marker", + "id": "operations/azure-hns/head-snapshot", "profile": "azure-hns", "lane": "core", - "purpose": "list bad marker", + "purpose": "head snapshot", "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/snapshots/object.txt", + "op": "head", + "snapshot": "2024-01-01T00:00:00.1577201Z" }, "exchanges": [ { @@ -52136,7 +52041,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -52144,7 +52049,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -52156,52 +52061,27 @@ } }, { - "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", + "at": "/query/snapshot", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/1d52c72a655f=" + "value": "2024-01-01T00:00:00.1577201Z" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidQueryParameterValue" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "utf8", - "data": "InvalidQueryParameterValueFixture error" + "encoding": "base64", + "data": "" } } } @@ -52222,7 +52102,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -52230,27 +52110,23 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidQueryParameterValue" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/list-bad-marker-code-in-body", + "id": "operations/azure-hns/head-written-with-crc64", "profile": "azure-hns", "lane": "core", - "purpose": "list bad marker, with the error code only in the XML body", + "purpose": "head written with crc64", "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/hashes/crc64.txt", + "op": "head" }, "exchanges": [ { @@ -52262,7 +52138,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -52270,7 +52146,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/hashes/crc64.txt" } }, { @@ -52280,53 +52156,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/board/" - } - }, - { - "at": "/query/marker", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/1d52c72a655f=" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { - "content-type": "application/xml", + "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": "utf8", - "data": "InvalidQueryParameterValueFixture error" + "encoding": "base64", + "data": "" } } } @@ -52339,39 +52192,66 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-bf462a2f52f2\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidQueryParameterValue" + "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/list-container-missing", + "id": "operations/azure-hns/head-written-with-md5", "profile": "azure-hns", "lane": "core", - "purpose": "list container missing", + "purpose": "head written with md5", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "op": "list_page", - "prefix": "" + "key": "object-tests/hashes/md5.txt", + "op": "head" }, "exchanges": [ { @@ -52383,7 +52263,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -52391,7 +52271,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/hashes/md5.txt" } }, { @@ -52401,46 +52281,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": true, - "rule": { - "is": "equal", - "value": "" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "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": "ContainerNotFound" + "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": "ContainerNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -52453,40 +52317,66 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-15ae0acd3480\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "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/list-delimited", + "id": "operations/azure-hns/head", "profile": "azure-hns", "lane": "core", - "purpose": "list delimited", + "purpose": "head", "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/read/object.txt", + "op": "head" }, "exchanges": [ { @@ -52498,7 +52388,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -52506,7 +52396,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -52516,38 +52406,6 @@ "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": [], @@ -52555,18 +52413,24 @@ "response": { "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-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": "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" + "encoding": "base64", + "data": "" + } } } ] @@ -52582,42 +52446,39 @@ } }, { - "at": "/value/entries/0/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/value/entries/0/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 30 } }, { - "at": "/value/entries/0/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "fixture-e8a4acb31ab1" + "value": "application/octet-stream" } }, { - "at": "/value/entries/0/snapshot", - "optional": true, + "at": "/value/content_md5_base64", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { - "at": "/value/entries/0/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -52626,63 +52487,123 @@ "" ] } - }, + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/head-key-question", + "profile": "azure-hns", + "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": [ { - "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": "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-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/content_md5_base64", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" + "value": "ok" } }, { - "at": "/value/entries/1/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/value/entries/1/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 30 } }, { - "at": "/value/entries/1/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "fixture-0d608f7e2d51" + "value": "application/octet-stream" } }, { - "at": "/value/entries/1/snapshot", - "optional": true, + "at": "/value/content_md5_base64", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { - "at": "/value/entries/1/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -52691,73 +52612,146 @@ "" ] } - }, + } + ], + "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": [ { - "at": "/value/entries/1/is_current_version", - "optional": true, + "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, "rule": { - "is": "one_of", - "values": [ - null, - false - ] + "is": "equal", + "value": "ok" } }, { - "at": "/value/entries/1/content_md5_base64", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "Je0by0I7C3IA9IX8X/ccjg==" + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/value/entries", + "at": "/value/size", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "is": "equal", + "value": 30 } }, { - "at": "/value/prefixes/0", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/" + "value": "application/octet-stream" } }, { - "at": "/value/prefixes", + "at": "/value/content_md5_base64", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { - "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-other-delimiter", + "id": "operations/azure-hns/head-key-percent", "profile": "azure-hns", "lane": "core", - "purpose": "Report the 400 DelimiterIsInvalidForHNS that an HNS account answers to any delimiter but /", + "purpose": "head, with the key \"percent%20.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/" + "key": "object-tests/keys/percent%20.txt", + "op": "head" }, "exchanges": [ { @@ -52769,7 +52763,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -52777,7 +52771,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -52787,54 +52781,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/dashes/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "-" - } } ], "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": "DelimiterIsInvalidForHNS" + "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": "DelimiterIsInvalidForHNSThe only delimiter supported for hierarchical namespace accounts is '/'." + "encoding": "base64", + "data": "" } } } @@ -52847,80 +52817,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", - "optional": false, - "rule": { - "is": "equal", - "value": "DelimiterIsInvalidForHNS" - } - } - ], - "refusal": [ - { - "at": "/outcome", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "refused" - } - }, - { - "at": "/kind", - "optional": false, - "rule": { - "is": "matches", - "pattern": ".+" + "value": 30 } }, { - "at": "/parameter", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "delimiter" + "value": "application/octet-stream" } }, { - "at": "/status", + "at": "/value/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "DelimiterIsInvalidForHNS" + "is": "one_of", + "values": [ + null, + "" + ] } } - ] + ], + "refusal": null }, { - "id": "operations/azure-hns/list-empty", + "id": "operations/azure-hns/head-key-plus", "profile": "azure-hns", "lane": "core", - "purpose": "list empty", + "purpose": "head, with the key \"plus+plus.txt\"", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "op": "list_page", - "prefix": "object-tests/nothing/" + "key": "object-tests/keys/plus+plus.txt", + "op": "head" }, "exchanges": [ { @@ -52932,7 +52888,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -52940,7 +52896,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -52950,30 +52906,6 @@ "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": [], @@ -52981,18 +52913,24 @@ "response": { "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-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": "object-tests/nothing/" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -53008,43 +52946,62 @@ } }, { - "at": "/value/entries", + "at": "/value/etag", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/value/prefixes", + "at": "/value/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 30 } }, { - "at": "/value/continuation_token", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "" + "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/list-all-empty", + "id": "operations/azure-hns/head-key-space", "profile": "azure-hns", "lane": "core", - "purpose": "list empty", + "purpose": "head, 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": "" + "key": "object-tests/keys/space name.txt", + "op": "head" }, "exchanges": [ { @@ -53056,7 +53013,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -53064,7 +53021,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -53074,30 +53031,6 @@ "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": [], @@ -53105,26 +53038,24 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", + "content-length": "30", + "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-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-server-encrypted": "true" }, "body": { "encoding": "base64", - "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+" - }, - "framing": "chunked" + "data": "" + } } } ] @@ -53140,27 +53071,62 @@ } }, { - "at": "/value/keys", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": [] + "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, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/list-encoded-names", + "id": "operations/azure-hns/head-key-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "list encoded names", + "purpose": "head, 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/names/" + "key": "object-tests/keys/café/雪.txt", + "op": "head" }, "exchanges": [ { @@ -53172,7 +53138,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -53180,7 +53146,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -53190,30 +53156,6 @@ "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": [], @@ -53221,18 +53163,24 @@ "response": { "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-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": "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" + "encoding": "base64", + "data": "" + } } } ] @@ -53248,42 +53196,39 @@ } }, { - "at": "/value/entries/0/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/100%-￾-name.txt" + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/value/entries/0/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { - "at": "/value/entries/0/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "fixture-78b47742a630" + "value": "application/octet-stream" } }, { - "at": "/value/entries/0/snapshot", - "optional": true, + "at": "/value/content_md5_base64", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { - "at": "/value/entries/0/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -53292,323 +53237,123 @@ "" ] } - }, - { - "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" - } - }, + } + ], + "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": [ { - "at": "/value/entries/4/size", - "optional": false, - "rule": { - "is": "equal", - "value": 1 - } - }, + "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/4/etag", + "at": "/outcome", "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 - ] + "value": "ok" } }, { - "at": "/value/entries/4/content_md5_base64", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/value/entries/5/key", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/hash#tag.txt" + "value": 30 } }, { - "at": "/value/entries/5/size", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "application/octet-stream" } }, { - "at": "/value/entries/5/etag", + "at": "/value/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-abf3c382e0ba" - } - }, - { - "at": "/value/entries/5/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { - "at": "/value/entries/5/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -53617,128 +53362,206 @@ "" ] } - }, - { - "at": "/value/entries/5/is_current_version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - false - ] - } - }, + } + ], + "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": [ { - "at": "/value/entries/5/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" - } - }, + "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": "/value/entries/6/key", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/percent%20.txt" + "value": "error" } }, { - "at": "/value/entries/6/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 404 } }, { - "at": "/value/entries/6/etag", + "at": "/code", "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, - "" - ] + "value": "BlobNotFound" } - }, + } + ], + "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": [ { - "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": "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": "/value/entries/6/content_md5_base64", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "ok" } }, { - "at": "/value/entries/7/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/plus+plus.txt" + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/value/entries/7/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { - "at": "/value/entries/7/etag", + "at": "/value/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-235b28f1c86f" - } - }, - { - "at": "/value/entries/7/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { - "at": "/value/entries/7/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -53749,127 +53572,52 @@ } }, { - "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", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "text/plain; charset=utf-8" } }, { - "at": "/value/entries/8/etag", + "at": "/value/content_language", "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 - ] + "value": "nl-NL" } }, { - "at": "/value/entries/8/content_md5_base64", + "at": "/value/content_disposition", "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 + "value": "attachment; filename=\"report.txt\"" } }, { - "at": "/value/continuation_token", + "at": "/value/cache_control", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "max-age=3600" } } ], "refusal": null }, { - "id": "operations/azure-hns/list-xml-escaped", + "id": "operations/azure-hns/head-if-unmodified-since-past", "profile": "azure-hns", "lane": "core", - "purpose": "list xml escaped", + "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since", "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": "" + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "head" }, "exchanges": [ { @@ -53881,7 +53629,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -53889,7 +53637,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -53901,24 +53649,96 @@ } }, { - "at": "/query/restype", + "at": "/headers/if-unmodified-since", "optional": false, "rule": { "is": "equal", - "value": "container" + "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-hns/head-copy-status", + "profile": "azure-hns", + "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": "/query/comp", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "list" + "value": "HEAD" } }, { - "at": "/query/prefix", - "optional": true, + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/fixture/object-tests/copy/target.txt" + } + }, + { + "at": "/body_base64", + "optional": false, "rule": { "is": "equal", "value": "" @@ -53930,26 +53750,27 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", + "content-length": "5", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "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-request-id": "fixture-request-id", - "x-ms-request-server-encrypted": "true", - "x-ms-server-encrypted": "true", - "x-ms-version": "2023-11-03" + "x-ms-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YSZhbXA7YjwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+YyZsdDtkPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4=" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -53965,31 +53786,35 @@ } }, { - "at": "/value/keys", + "at": "/value/copy_status", "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=" + "data": "object-tests/versions-mtypy4jp/deleted.txt" }, "framing": "chunked" } @@ -54084,142 +53901,12 @@ "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", "optional": false, "rule": { "is": "array_length", - "value": 2 + "value": 0 } }, { @@ -54235,23 +53922,23 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/17aa95c4a402=" + "value": "" } } ], "refusal": null }, { - "id": "operations/azure-hns/list-page-size-one", + "id": "operations/azure-hns/list-bad-marker", "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": "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", - "page_size": 1, "prefix": "object-tests/board/" }, "exchanges": [ @@ -54308,31 +53995,29 @@ } }, { - "at": "/query/maxresults", + "at": "/query/marker", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "fixture-marker+/1d52c72a655f=" } } ], "allow_headers": [], "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": "InvalidQueryParameterValue" }, "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" + "data": "InvalidQueryParameterValueFixture error" + } } } ] @@ -54344,117 +54029,45 @@ "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": 400 } }, { - "at": "/value/entries/0/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "fixture-e8a4acb31ab1" + "value": "InvalidQueryParameterValue" } - }, - { - "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/list-operation-timed-out", - "profile": "azure-hns", - "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": [ + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-bad-marker-code-in-body", + "profile": "azure-hns", + "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": [ { @@ -54508,114 +54121,74 @@ } }, { - "at": "/query/maxresults", + "at": "/query/marker", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "fixture-marker+/1d52c72a655f=" } } ], "allow_headers": [], "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": "InvalidQueryParameterValueFixture error" } } } ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "error" + } }, { - "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 + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 400 + } }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidQueryParameterValue" + } + } + ], + "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": [ { @@ -54662,122 +54235,75 @@ }, { "at": "/query/prefix", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/maxresults", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "2" + "value": "" } } ], "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": "ContainerNotFound" }, "body": { "encoding": "utf8", - "data": "OperationTimedOutThe operation could not be completed within the permitted time." + "data": "ContainerNotFoundFixture error" } } } - ], - "optional": true + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "error" + } }, { - "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 + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 404 + } }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "ContainerNotFound" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-delimited", + "profile": "azure-hns", + "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": [ { @@ -54831,34 +54357,224 @@ } }, { - "at": "/query/maxresults", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "OperationTimedOut" + "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": "OperationTimedOutThe operation could not be completed within the permitted time." - } + "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" } } - ], - "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/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": "" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-other-delimiter", + "profile": "azure-hns", + "lane": "core", + "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": { + "delimiter": "-", + "op": "list_page", + "prefix": "object-tests/dashes/" + }, + "exchanges": [ { "alternatives": [ { @@ -54908,37 +54624,36 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/dashes/" } }, { - "at": "/query/maxresults", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "-" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "OperationTimedOut" + "x-ms-error-code": "DelimiterIsInvalidForHNS" }, "body": { "encoding": "utf8", - "data": "OperationTimedOutThe operation could not be completed within the permitted time." + "data": "DelimiterIsInvalidForHNSThe only delimiter supported for hierarchical namespace accounts is '/'." } } } - ], - "optional": true + ] } ], "expect": [ @@ -54955,7 +54670,7 @@ "optional": false, "rule": { "is": "equal", - "value": 500 + "value": 400 } }, { @@ -54963,24 +54678,64 @@ "optional": false, "rule": { "is": "equal", - "value": "OperationTimedOut" + "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/list-key-equal-to-prefix-delimited", + "id": "operations/azure-hns/list-empty", "profile": "azure-hns", "lane": "core", - "purpose": "list key equal to prefix delimited", + "purpose": "list empty", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "delimiter": "/", "op": "list_page", - "prefix": "object-tests/exact" + "prefix": "object-tests/nothing/" }, "exchanges": [ { @@ -55032,15 +54787,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/nothing/" } } ], @@ -55058,7 +54805,7 @@ }, "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" + "data": "object-tests/nothing/" }, "framing": "chunked" } @@ -55075,77 +54822,12 @@ "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": "xMpCOKC5I4INzFCab3WEmw==" - } - }, { "at": "/value/entries", "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 0 } }, { @@ -55168,16 +54850,16 @@ "refusal": null }, { - "id": "operations/azure-hns/list-key-equal-to-prefix", + "id": "operations/azure-hns/list-all-empty", "profile": "azure-hns", "lane": "core", - "purpose": "list key equal to prefix", + "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": { - "op": "list_page", - "prefix": "object-tests/exact" + "op": "list", + "prefix": "" }, "exchanges": [ { @@ -55226,10 +54908,10 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "" } } ], @@ -55242,12 +54924,20 @@ "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": "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" + "encoding": "base64", + "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+" }, "framing": "chunked" } @@ -55265,108 +54955,27 @@ } }, { - "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/keys", "optional": false, "rule": { "is": "equal", - "value": "" + "value": [] } } ], "refusal": null }, { - "id": "operations/azure-hns/list-many-segments", + "id": "operations/azure-hns/list-encoded-names", "profile": "azure-hns", "lane": "core", - "purpose": "list many segments", + "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/s/" + "prefix": "object-tests/names/" }, "exchanges": [ { @@ -55418,7 +55027,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/" + "value": "object-tests/names/" } } ], @@ -55436,7 +55045,7 @@ }, "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" + "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" } @@ -55458,7 +55067,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s" + "value": "object-tests/names/100%-￾-name.txt" } }, { @@ -55466,7 +55075,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55474,7 +55083,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-a1b39dcffaf3" + "value": "fixture-78b47742a630" } }, { @@ -55511,11 +55120,11 @@ } }, { - "at": "/value/entries/0/directory", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -55523,7 +55132,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s" + "value": "object-tests/names/a&b.txt" } }, { @@ -55531,7 +55140,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55539,7 +55148,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-8159be643ac0" + "value": "fixture-f951d7d7ec22" } }, { @@ -55576,11 +55185,11 @@ } }, { - "at": "/value/entries/1/directory", + "at": "/value/entries/1/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -55588,7 +55197,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s" + "value": "object-tests/names/back" } }, { @@ -55604,7 +55213,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-80c8a1f73c94" + "value": "fixture-e64e63e9a87b" } }, { @@ -55653,7 +55262,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s/s" + "value": "object-tests/names/back/slash.txt" } }, { @@ -55661,7 +55270,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55669,7 +55278,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-7b0fdb4b59dd" + "value": "fixture-e9c0e2dbcfe1" } }, { @@ -55706,11 +55315,11 @@ } }, { - "at": "/value/entries/3/directory", + "at": "/value/entries/3/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -55718,7 +55327,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s/s/s" + "value": "object-tests/names/café.txt" } }, { @@ -55726,7 +55335,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55734,7 +55343,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-4f1babf5f716" + "value": "fixture-7d8cf0126958" } }, { @@ -55771,11 +55380,11 @@ } }, { - "at": "/value/entries/4/directory", + "at": "/value/entries/4/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -55783,7 +55392,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s/s/s/s" + "value": "object-tests/names/hash#tag.txt" } }, { @@ -55791,7 +55400,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55799,7 +55408,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-5f419d87193e" + "value": "fixture-abf3c382e0ba" } }, { @@ -55836,11 +55445,11 @@ } }, { - "at": "/value/entries/5/directory", + "at": "/value/entries/5/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -55848,7 +55457,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s/s/s/s/s" + "value": "object-tests/names/percent%20.txt" } }, { @@ -55856,7 +55465,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55864,7 +55473,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-c32f2de5b421" + "value": "fixture-7ded7554e543" } }, { @@ -55901,11 +55510,11 @@ } }, { - "at": "/value/entries/6/directory", + "at": "/value/entries/6/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -55913,7 +55522,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s/s/s/s/s/s" + "value": "object-tests/names/plus+plus.txt" } }, { @@ -55921,7 +55530,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55929,7 +55538,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-51d97c94b354" + "value": "fixture-235b28f1c86f" } }, { @@ -55966,11 +55575,11 @@ } }, { - "at": "/value/entries/7/directory", + "at": "/value/entries/7/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -55978,7 +55587,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s/s/s/s/s/s/s" + "value": "object-tests/names/q?mark.txt" } }, { @@ -55986,7 +55595,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -55994,7 +55603,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-581e4ea356a1" + "value": "fixture-cb57b84f4392" } }, { @@ -56031,169 +55640,291 @@ } }, { - "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", + "at": "/value/entries/8/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries/10/key", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s" + "is": "array_length", + "value": 9 } }, { - "at": "/value/entries/10/size", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", + "is": "array_length", "value": 0 } }, { - "at": "/value/entries/10/etag", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "fixture-d32c38634d37" - } - }, - { - "at": "/value/entries/10/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-xml-escaped", + "profile": "azure-hns", + "lane": "core", + "purpose": "list xml escaped", + "sources": [ + "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs" + ], + "call": { + "op": "list", + "prefix": "" + }, + "exchanges": [ { - "at": "/value/entries/10/version", - "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": 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": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "ok" } }, { - "at": "/value/entries/10/is_current_version", - "optional": true, + "at": "/value/keys", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - false + "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" + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": true + "value": "ok" } }, { - "at": "/value/entries/11/key", + "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" + "value": "object-tests/board/a.txt" } }, { - "at": "/value/entries/11/size", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 8 } }, { - "at": "/value/entries/11/etag", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-3bdc7f728acb" + "value": "fixture-e8a4acb31ab1" } }, { - "at": "/value/entries/11/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56204,7 +55935,7 @@ } }, { - "at": "/value/entries/11/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -56215,7 +55946,7 @@ } }, { - "at": "/value/entries/11/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56226,23 +55957,23 @@ } }, { - "at": "/value/entries/11/directory", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" } }, { - "at": "/value/entries/12/key", + "at": "/value/entries/1/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "value": "object-tests/board/nested" } }, { - "at": "/value/entries/12/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", @@ -56250,15 +55981,15 @@ } }, { - "at": "/value/entries/12/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-8a1c17d8d892" + "value": "fixture-bcf8c9e06f70" } }, { - "at": "/value/entries/12/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56269,7 +56000,7 @@ } }, { - "at": "/value/entries/12/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -56280,7 +56011,7 @@ } }, { - "at": "/value/entries/12/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56291,7 +56022,7 @@ } }, { - "at": "/value/entries/12/directory", + "at": "/value/entries/1/directory", "optional": false, "rule": { "is": "equal", @@ -56299,96 +56030,164 @@ } }, { - "at": "/value/entries/13/key", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "is": "array_length", + "value": 2 } }, { - "at": "/value/entries/13/size", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", + "is": "array_length", "value": 0 } }, { - "at": "/value/entries/13/etag", + "at": "/value/continuation_token", "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": "fixture-marker+/17aa95c4a402=" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-page-size-one", + "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.", + "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": [ { - "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": "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.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletruefixture-marker+/17aa95c4a402=" + }, + "framing": "chunked" + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/13/directory", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": true + "value": "ok" } }, { - "at": "/value/entries/14/key", + "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" + "value": "object-tests/board/a.txt" } }, { - "at": "/value/entries/14/size", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 8 } }, { - "at": "/value/entries/14/etag", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-18b5ffb0f548" + "value": "fixture-e8a4acb31ab1" } }, { - "at": "/value/entries/14/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56399,7 +56198,7 @@ } }, { - "at": "/value/entries/14/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -56410,7 +56209,7 @@ } }, { - "at": "/value/entries/14/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56421,169 +56220,702 @@ } }, { - "at": "/value/entries/14/directory", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" } }, { - "at": "/value/entries/15/key", + "at": "/value/entries", "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" + "is": "array_length", + "value": 1 } }, { - "at": "/value/entries/15/size", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", + "is": "array_length", "value": 0 } }, { - "at": "/value/entries/15/etag", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "fixture-2250c2114935" + "value": "fixture-marker+/17aa95c4a402=" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-operation-timed-out", + "profile": "azure-hns", + "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": [ { - "at": "/value/entries/15/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" + } + }, + { + "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." + } + } + } + ] }, { - "at": "/value/entries/15/version", - "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" + } + }, + { + "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 }, { - "at": "/value/entries/15/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/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 }, { - "at": "/value/entries/15/directory", - "optional": false, - "rule": { - "is": "equal", - "value": 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 }, { - "at": "/value/entries/16/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" - } + "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 }, { - "at": "/value/entries/16/size", + "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": 0 + "value": "error" } }, { - "at": "/value/entries/16/etag", + "at": "/status", "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, - "" - ] - } - }, - { - "at": "/value/entries/16/is_current_version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - false - ] + "value": 500 } }, { - "at": "/value/entries/16/directory", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": true + "value": "OperationTimedOut" } - }, - { - "at": "/value/entries/17/key", + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-key-equal-to-prefix-delimited", + "profile": "azure-hns", + "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/exactMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fef6be204aeafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue" + }, + "framing": "chunked" + } + } + ] + } + ], + "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" + "value": "ok" } }, { - "at": "/value/entries/17/size", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": 0 + "value": "object-tests/exact" } }, { - "at": "/value/entries/17/etag", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": "fixture-d8660a5bc252" + "value": 1 } }, { - "at": "/value/entries/17/snapshot", + "at": "/value/entries/0/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-fef6be204aea" + } + }, + { + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56594,7 +56926,7 @@ } }, { - "at": "/value/entries/17/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -56605,7 +56937,7 @@ } }, { - "at": "/value/entries/17/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56616,39 +56948,163 @@ } }, { - "at": "/value/entries/17/directory", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries/18/key", + "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": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "value": "" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-key-equal-to-prefix", + "profile": "azure-hns", + "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/exactMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fef6be204aeafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue" + }, + "framing": "chunked" + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" } }, { - "at": "/value/entries/18/size", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": 0 + "value": "object-tests/exact" } }, { - "at": "/value/entries/18/etag", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": "fixture-4ec0409f150b" + "value": 1 } }, { - "at": "/value/entries/18/snapshot", + "at": "/value/entries/0/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-fef6be204aea" + } + }, + { + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56659,7 +57115,7 @@ } }, { - "at": "/value/entries/18/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -56670,7 +57126,7 @@ } }, { - "at": "/value/entries/18/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56681,23 +57137,147 @@ } }, { - "at": "/value/entries/18/directory", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries/19/key", + "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": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "value": "" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-many-segments", + "profile": "azure-hns", + "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/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" + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" } }, { - "at": "/value/entries/19/size", + "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", @@ -56705,15 +57285,15 @@ } }, { - "at": "/value/entries/19/etag", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-aede66c75766" + "value": "fixture-a1b39dcffaf3" } }, { - "at": "/value/entries/19/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56724,7 +57304,7 @@ } }, { - "at": "/value/entries/19/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -56735,7 +57315,7 @@ } }, { - "at": "/value/entries/19/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56746,7 +57326,7 @@ } }, { - "at": "/value/entries/19/directory", + "at": "/value/entries/0/directory", "optional": false, "rule": { "is": "equal", @@ -56754,15 +57334,15 @@ } }, { - "at": "/value/entries/20/key", + "at": "/value/entries/1/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" + "value": "object-tests/s/s/s" } }, { - "at": "/value/entries/20/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", @@ -56770,15 +57350,15 @@ } }, { - "at": "/value/entries/20/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-3316748edb9b" + "value": "fixture-8159be643ac0" } }, { - "at": "/value/entries/20/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56789,7 +57369,7 @@ } }, { - "at": "/value/entries/20/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -56800,7 +57380,7 @@ } }, { - "at": "/value/entries/20/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56811,7 +57391,7 @@ } }, { - "at": "/value/entries/20/directory", + "at": "/value/entries/1/directory", "optional": false, "rule": { "is": "equal", @@ -56819,15 +57399,15 @@ } }, { - "at": "/value/entries/21/key", + "at": "/value/entries/2/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" + "value": "object-tests/s/s/s/s" } }, { - "at": "/value/entries/21/size", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", @@ -56835,15 +57415,15 @@ } }, { - "at": "/value/entries/21/etag", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-f7f3bc0b3f92" + "value": "fixture-80c8a1f73c94" } }, { - "at": "/value/entries/21/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56854,7 +57434,7 @@ } }, { - "at": "/value/entries/21/version", + "at": "/value/entries/2/version", "optional": true, "rule": { "is": "one_of", @@ -56865,7 +57445,7 @@ } }, { - "at": "/value/entries/21/is_current_version", + "at": "/value/entries/2/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56876,7 +57456,7 @@ } }, { - "at": "/value/entries/21/directory", + "at": "/value/entries/2/directory", "optional": false, "rule": { "is": "equal", @@ -56884,15 +57464,15 @@ } }, { - "at": "/value/entries/22/key", + "at": "/value/entries/3/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" + "value": "object-tests/s/s/s/s/s" } }, { - "at": "/value/entries/22/size", + "at": "/value/entries/3/size", "optional": false, "rule": { "is": "equal", @@ -56900,15 +57480,15 @@ } }, { - "at": "/value/entries/22/etag", + "at": "/value/entries/3/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-6a1f4f7934bf" + "value": "fixture-7b0fdb4b59dd" } }, { - "at": "/value/entries/22/snapshot", + "at": "/value/entries/3/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56919,7 +57499,7 @@ } }, { - "at": "/value/entries/22/version", + "at": "/value/entries/3/version", "optional": true, "rule": { "is": "one_of", @@ -56930,7 +57510,7 @@ } }, { - "at": "/value/entries/22/is_current_version", + "at": "/value/entries/3/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -56941,7 +57521,7 @@ } }, { - "at": "/value/entries/22/directory", + "at": "/value/entries/3/directory", "optional": false, "rule": { "is": "equal", @@ -56949,15 +57529,15 @@ } }, { - "at": "/value/entries/23/key", + "at": "/value/entries/4/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" + "value": "object-tests/s/s/s/s/s/s" } }, { - "at": "/value/entries/23/size", + "at": "/value/entries/4/size", "optional": false, "rule": { "is": "equal", @@ -56965,15 +57545,15 @@ } }, { - "at": "/value/entries/23/etag", + "at": "/value/entries/4/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-87c3fdda2bda" + "value": "fixture-4f1babf5f716" } }, { - "at": "/value/entries/23/snapshot", + "at": "/value/entries/4/snapshot", "optional": true, "rule": { "is": "one_of", @@ -56984,7 +57564,7 @@ } }, { - "at": "/value/entries/23/version", + "at": "/value/entries/4/version", "optional": true, "rule": { "is": "one_of", @@ -56995,7 +57575,7 @@ } }, { - "at": "/value/entries/23/is_current_version", + "at": "/value/entries/4/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57006,7 +57586,7 @@ } }, { - "at": "/value/entries/23/directory", + "at": "/value/entries/4/directory", "optional": false, "rule": { "is": "equal", @@ -57014,15 +57594,15 @@ } }, { - "at": "/value/entries/24/key", + "at": "/value/entries/5/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" + "value": "object-tests/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/24/size", + "at": "/value/entries/5/size", "optional": false, "rule": { "is": "equal", @@ -57030,15 +57610,15 @@ } }, { - "at": "/value/entries/24/etag", + "at": "/value/entries/5/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-4d2fcc081fd8" + "value": "fixture-5f419d87193e" } }, { - "at": "/value/entries/24/snapshot", + "at": "/value/entries/5/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57049,7 +57629,7 @@ } }, { - "at": "/value/entries/24/version", + "at": "/value/entries/5/version", "optional": true, "rule": { "is": "one_of", @@ -57060,7 +57640,7 @@ } }, { - "at": "/value/entries/24/is_current_version", + "at": "/value/entries/5/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57071,7 +57651,7 @@ } }, { - "at": "/value/entries/24/directory", + "at": "/value/entries/5/directory", "optional": false, "rule": { "is": "equal", @@ -57079,15 +57659,15 @@ } }, { - "at": "/value/entries/25/key", + "at": "/value/entries/6/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" + "value": "object-tests/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/25/size", + "at": "/value/entries/6/size", "optional": false, "rule": { "is": "equal", @@ -57095,15 +57675,15 @@ } }, { - "at": "/value/entries/25/etag", + "at": "/value/entries/6/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-8956db6ae017" + "value": "fixture-c32f2de5b421" } }, { - "at": "/value/entries/25/snapshot", + "at": "/value/entries/6/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57114,7 +57694,7 @@ } }, { - "at": "/value/entries/25/version", + "at": "/value/entries/6/version", "optional": true, "rule": { "is": "one_of", @@ -57125,7 +57705,7 @@ } }, { - "at": "/value/entries/25/is_current_version", + "at": "/value/entries/6/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57136,7 +57716,7 @@ } }, { - "at": "/value/entries/25/directory", + "at": "/value/entries/6/directory", "optional": false, "rule": { "is": "equal", @@ -57144,15 +57724,15 @@ } }, { - "at": "/value/entries/26/key", + "at": "/value/entries/7/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/26/size", + "at": "/value/entries/7/size", "optional": false, "rule": { "is": "equal", @@ -57160,15 +57740,15 @@ } }, { - "at": "/value/entries/26/etag", + "at": "/value/entries/7/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-7f1f55a3463b" + "value": "fixture-51d97c94b354" } }, { - "at": "/value/entries/26/snapshot", + "at": "/value/entries/7/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57179,7 +57759,7 @@ } }, { - "at": "/value/entries/26/version", + "at": "/value/entries/7/version", "optional": true, "rule": { "is": "one_of", @@ -57190,7 +57770,7 @@ } }, { - "at": "/value/entries/26/is_current_version", + "at": "/value/entries/7/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57201,7 +57781,7 @@ } }, { - "at": "/value/entries/26/directory", + "at": "/value/entries/7/directory", "optional": false, "rule": { "is": "equal", @@ -57209,15 +57789,15 @@ } }, { - "at": "/value/entries/27/key", + "at": "/value/entries/8/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/27/size", + "at": "/value/entries/8/size", "optional": false, "rule": { "is": "equal", @@ -57225,15 +57805,15 @@ } }, { - "at": "/value/entries/27/etag", + "at": "/value/entries/8/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-44dd81206643" + "value": "fixture-581e4ea356a1" } }, { - "at": "/value/entries/27/snapshot", + "at": "/value/entries/8/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57244,7 +57824,7 @@ } }, { - "at": "/value/entries/27/version", + "at": "/value/entries/8/version", "optional": true, "rule": { "is": "one_of", @@ -57255,7 +57835,7 @@ } }, { - "at": "/value/entries/27/is_current_version", + "at": "/value/entries/8/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57266,7 +57846,7 @@ } }, { - "at": "/value/entries/27/directory", + "at": "/value/entries/8/directory", "optional": false, "rule": { "is": "equal", @@ -57274,15 +57854,15 @@ } }, { - "at": "/value/entries/28/key", + "at": "/value/entries/9/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/28/size", + "at": "/value/entries/9/size", "optional": false, "rule": { "is": "equal", @@ -57290,15 +57870,15 @@ } }, { - "at": "/value/entries/28/etag", + "at": "/value/entries/9/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-952096734190" + "value": "fixture-5eb2172133ae" } }, { - "at": "/value/entries/28/snapshot", + "at": "/value/entries/9/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57309,7 +57889,7 @@ } }, { - "at": "/value/entries/28/version", + "at": "/value/entries/9/version", "optional": true, "rule": { "is": "one_of", @@ -57320,7 +57900,7 @@ } }, { - "at": "/value/entries/28/is_current_version", + "at": "/value/entries/9/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57331,7 +57911,7 @@ } }, { - "at": "/value/entries/28/directory", + "at": "/value/entries/9/directory", "optional": false, "rule": { "is": "equal", @@ -57339,15 +57919,15 @@ } }, { - "at": "/value/entries/29/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/29/size", + "at": "/value/entries/10/size", "optional": false, "rule": { "is": "equal", @@ -57355,15 +57935,15 @@ } }, { - "at": "/value/entries/29/etag", + "at": "/value/entries/10/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-db4655ce498c" + "value": "fixture-d32c38634d37" } }, { - "at": "/value/entries/29/snapshot", + "at": "/value/entries/10/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57374,7 +57954,7 @@ } }, { - "at": "/value/entries/29/version", + "at": "/value/entries/10/version", "optional": true, "rule": { "is": "one_of", @@ -57385,7 +57965,7 @@ } }, { - "at": "/value/entries/29/is_current_version", + "at": "/value/entries/10/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57396,7 +57976,7 @@ } }, { - "at": "/value/entries/29/directory", + "at": "/value/entries/10/directory", "optional": false, "rule": { "is": "equal", @@ -57404,15 +57984,15 @@ } }, { - "at": "/value/entries/30/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/30/size", + "at": "/value/entries/11/size", "optional": false, "rule": { "is": "equal", @@ -57420,15 +58000,15 @@ } }, { - "at": "/value/entries/30/etag", + "at": "/value/entries/11/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-b2a6d305ae63" + "value": "fixture-3bdc7f728acb" } }, { - "at": "/value/entries/30/snapshot", + "at": "/value/entries/11/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57439,7 +58019,7 @@ } }, { - "at": "/value/entries/30/version", + "at": "/value/entries/11/version", "optional": true, "rule": { "is": "one_of", @@ -57450,7 +58030,7 @@ } }, { - "at": "/value/entries/30/is_current_version", + "at": "/value/entries/11/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57461,7 +58041,7 @@ } }, { - "at": "/value/entries/30/directory", + "at": "/value/entries/11/directory", "optional": false, "rule": { "is": "equal", @@ -57469,15 +58049,15 @@ } }, { - "at": "/value/entries/31/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/31/size", + "at": "/value/entries/12/size", "optional": false, "rule": { "is": "equal", @@ -57485,15 +58065,15 @@ } }, { - "at": "/value/entries/31/etag", + "at": "/value/entries/12/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-23d914b576fb" + "value": "fixture-8a1c17d8d892" } }, { - "at": "/value/entries/31/snapshot", + "at": "/value/entries/12/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57504,7 +58084,7 @@ } }, { - "at": "/value/entries/31/version", + "at": "/value/entries/12/version", "optional": true, "rule": { "is": "one_of", @@ -57515,7 +58095,7 @@ } }, { - "at": "/value/entries/31/is_current_version", + "at": "/value/entries/12/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57526,7 +58106,7 @@ } }, { - "at": "/value/entries/31/directory", + "at": "/value/entries/12/directory", "optional": false, "rule": { "is": "equal", @@ -57534,15 +58114,15 @@ } }, { - "at": "/value/entries/32/key", + "at": "/value/entries/13/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/32/size", + "at": "/value/entries/13/size", "optional": false, "rule": { "is": "equal", @@ -57550,15 +58130,15 @@ } }, { - "at": "/value/entries/32/etag", + "at": "/value/entries/13/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-0fe87110b578" + "value": "fixture-53277b21dbd0" } }, { - "at": "/value/entries/32/snapshot", + "at": "/value/entries/13/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57569,7 +58149,7 @@ } }, { - "at": "/value/entries/32/version", + "at": "/value/entries/13/version", "optional": true, "rule": { "is": "one_of", @@ -57580,7 +58160,7 @@ } }, { - "at": "/value/entries/32/is_current_version", + "at": "/value/entries/13/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57591,7 +58171,7 @@ } }, { - "at": "/value/entries/32/directory", + "at": "/value/entries/13/directory", "optional": false, "rule": { "is": "equal", @@ -57599,15 +58179,15 @@ } }, { - "at": "/value/entries/33/key", + "at": "/value/entries/14/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/33/size", + "at": "/value/entries/14/size", "optional": false, "rule": { "is": "equal", @@ -57615,15 +58195,15 @@ } }, { - "at": "/value/entries/33/etag", + "at": "/value/entries/14/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-55cf88c7a2e2" + "value": "fixture-18b5ffb0f548" } }, { - "at": "/value/entries/33/snapshot", + "at": "/value/entries/14/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57634,7 +58214,7 @@ } }, { - "at": "/value/entries/33/version", + "at": "/value/entries/14/version", "optional": true, "rule": { "is": "one_of", @@ -57645,7 +58225,7 @@ } }, { - "at": "/value/entries/33/is_current_version", + "at": "/value/entries/14/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57656,7 +58236,7 @@ } }, { - "at": "/value/entries/33/directory", + "at": "/value/entries/14/directory", "optional": false, "rule": { "is": "equal", @@ -57664,15 +58244,15 @@ } }, { - "at": "/value/entries/34/key", + "at": "/value/entries/15/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/34/size", + "at": "/value/entries/15/size", "optional": false, "rule": { "is": "equal", @@ -57680,15 +58260,15 @@ } }, { - "at": "/value/entries/34/etag", + "at": "/value/entries/15/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-6815a7113351" + "value": "fixture-2250c2114935" } }, { - "at": "/value/entries/34/snapshot", + "at": "/value/entries/15/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57699,7 +58279,7 @@ } }, { - "at": "/value/entries/34/version", + "at": "/value/entries/15/version", "optional": true, "rule": { "is": "one_of", @@ -57710,7 +58290,7 @@ } }, { - "at": "/value/entries/34/is_current_version", + "at": "/value/entries/15/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57721,7 +58301,7 @@ } }, { - "at": "/value/entries/34/directory", + "at": "/value/entries/15/directory", "optional": false, "rule": { "is": "equal", @@ -57729,15 +58309,15 @@ } }, { - "at": "/value/entries/35/key", + "at": "/value/entries/16/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/35/size", + "at": "/value/entries/16/size", "optional": false, "rule": { "is": "equal", @@ -57745,15 +58325,15 @@ } }, { - "at": "/value/entries/35/etag", + "at": "/value/entries/16/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-70df51065efe" + "value": "fixture-8ce858fcdc2b" } }, { - "at": "/value/entries/35/snapshot", + "at": "/value/entries/16/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57764,7 +58344,7 @@ } }, { - "at": "/value/entries/35/version", + "at": "/value/entries/16/version", "optional": true, "rule": { "is": "one_of", @@ -57775,7 +58355,7 @@ } }, { - "at": "/value/entries/35/is_current_version", + "at": "/value/entries/16/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57786,7 +58366,7 @@ } }, { - "at": "/value/entries/35/directory", + "at": "/value/entries/16/directory", "optional": false, "rule": { "is": "equal", @@ -57794,15 +58374,15 @@ } }, { - "at": "/value/entries/36/key", + "at": "/value/entries/17/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" + "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" } }, { - "at": "/value/entries/36/size", + "at": "/value/entries/17/size", "optional": false, "rule": { "is": "equal", @@ -57810,15 +58390,15 @@ } }, { - "at": "/value/entries/36/etag", + "at": "/value/entries/17/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-0e76caa6ea5f" + "value": "fixture-d8660a5bc252" } }, { - "at": "/value/entries/36/snapshot", + "at": "/value/entries/17/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57829,7 +58409,7 @@ } }, { - "at": "/value/entries/36/version", + "at": "/value/entries/17/version", "optional": true, "rule": { "is": "one_of", @@ -57840,7 +58420,7 @@ } }, { - "at": "/value/entries/36/is_current_version", + "at": "/value/entries/17/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57851,7 +58431,7 @@ } }, { - "at": "/value/entries/36/directory", + "at": "/value/entries/17/directory", "optional": false, "rule": { "is": "equal", @@ -57859,15 +58439,15 @@ } }, { - "at": "/value/entries/37/key", + "at": "/value/entries/18/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" + "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/entries/37/size", + "at": "/value/entries/18/size", "optional": false, "rule": { "is": "equal", @@ -57875,15 +58455,15 @@ } }, { - "at": "/value/entries/37/etag", + "at": "/value/entries/18/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-97f6d7ad109d" + "value": "fixture-4ec0409f150b" } }, { - "at": "/value/entries/37/snapshot", + "at": "/value/entries/18/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57894,7 +58474,7 @@ } }, { - "at": "/value/entries/37/version", + "at": "/value/entries/18/version", "optional": true, "rule": { "is": "one_of", @@ -57905,7 +58485,7 @@ } }, { - "at": "/value/entries/37/is_current_version", + "at": "/value/entries/18/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57916,7 +58496,7 @@ } }, { - "at": "/value/entries/37/directory", + "at": "/value/entries/18/directory", "optional": false, "rule": { "is": "equal", @@ -57924,15 +58504,15 @@ } }, { - "at": "/value/entries/38/key", + "at": "/value/entries/19/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" + "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/entries/38/size", + "at": "/value/entries/19/size", "optional": false, "rule": { "is": "equal", @@ -57940,15 +58520,15 @@ } }, { - "at": "/value/entries/38/etag", + "at": "/value/entries/19/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-b7df38492c3e" + "value": "fixture-aede66c75766" } }, { - "at": "/value/entries/38/snapshot", + "at": "/value/entries/19/snapshot", "optional": true, "rule": { "is": "one_of", @@ -57959,7 +58539,7 @@ } }, { - "at": "/value/entries/38/version", + "at": "/value/entries/19/version", "optional": true, "rule": { "is": "one_of", @@ -57970,7 +58550,7 @@ } }, { - "at": "/value/entries/38/is_current_version", + "at": "/value/entries/19/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -57981,7 +58561,7 @@ } }, { - "at": "/value/entries/38/directory", + "at": "/value/entries/19/directory", "optional": false, "rule": { "is": "equal", @@ -57989,15 +58569,15 @@ } }, { - "at": "/value/entries/39/key", + "at": "/value/entries/20/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" + "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/entries/39/size", + "at": "/value/entries/20/size", "optional": false, "rule": { "is": "equal", @@ -58005,15 +58585,15 @@ } }, { - "at": "/value/entries/39/etag", + "at": "/value/entries/20/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-ac2f2336ab74" + "value": "fixture-3316748edb9b" } }, { - "at": "/value/entries/39/snapshot", + "at": "/value/entries/20/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58024,7 +58604,7 @@ } }, { - "at": "/value/entries/39/version", + "at": "/value/entries/20/version", "optional": true, "rule": { "is": "one_of", @@ -58035,7 +58615,7 @@ } }, { - "at": "/value/entries/39/is_current_version", + "at": "/value/entries/20/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58046,7 +58626,7 @@ } }, { - "at": "/value/entries/39/directory", + "at": "/value/entries/20/directory", "optional": false, "rule": { "is": "equal", @@ -58054,15 +58634,15 @@ } }, { - "at": "/value/entries/40/key", + "at": "/value/entries/21/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" + "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": "/value/entries/40/size", + "at": "/value/entries/21/size", "optional": false, "rule": { "is": "equal", @@ -58070,15 +58650,15 @@ } }, { - "at": "/value/entries/40/etag", + "at": "/value/entries/21/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-c2a19efa033c" + "value": "fixture-f7f3bc0b3f92" } }, { - "at": "/value/entries/40/snapshot", + "at": "/value/entries/21/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58089,7 +58669,7 @@ } }, { - "at": "/value/entries/40/version", + "at": "/value/entries/21/version", "optional": true, "rule": { "is": "one_of", @@ -58100,7 +58680,7 @@ } }, { - "at": "/value/entries/40/is_current_version", + "at": "/value/entries/21/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58111,7 +58691,7 @@ } }, { - "at": "/value/entries/40/directory", + "at": "/value/entries/21/directory", "optional": false, "rule": { "is": "equal", @@ -58119,15 +58699,15 @@ } }, { - "at": "/value/entries/41/key", + "at": "/value/entries/22/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" + "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" } }, { - "at": "/value/entries/41/size", + "at": "/value/entries/22/size", "optional": false, "rule": { "is": "equal", @@ -58135,15 +58715,15 @@ } }, { - "at": "/value/entries/41/etag", + "at": "/value/entries/22/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-b9e90b553fff" + "value": "fixture-6a1f4f7934bf" } }, { - "at": "/value/entries/41/snapshot", + "at": "/value/entries/22/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58154,7 +58734,7 @@ } }, { - "at": "/value/entries/41/version", + "at": "/value/entries/22/version", "optional": true, "rule": { "is": "one_of", @@ -58165,7 +58745,7 @@ } }, { - "at": "/value/entries/41/is_current_version", + "at": "/value/entries/22/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58176,7 +58756,7 @@ } }, { - "at": "/value/entries/41/directory", + "at": "/value/entries/22/directory", "optional": false, "rule": { "is": "equal", @@ -58184,15 +58764,15 @@ } }, { - "at": "/value/entries/42/key", + "at": "/value/entries/23/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" + "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": "/value/entries/42/size", + "at": "/value/entries/23/size", "optional": false, "rule": { "is": "equal", @@ -58200,15 +58780,15 @@ } }, { - "at": "/value/entries/42/etag", + "at": "/value/entries/23/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-0d7c0a17f740" + "value": "fixture-87c3fdda2bda" } }, { - "at": "/value/entries/42/snapshot", + "at": "/value/entries/23/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58219,7 +58799,7 @@ } }, { - "at": "/value/entries/42/version", + "at": "/value/entries/23/version", "optional": true, "rule": { "is": "one_of", @@ -58230,7 +58810,7 @@ } }, { - "at": "/value/entries/42/is_current_version", + "at": "/value/entries/23/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58241,7 +58821,7 @@ } }, { - "at": "/value/entries/42/directory", + "at": "/value/entries/23/directory", "optional": false, "rule": { "is": "equal", @@ -58249,15 +58829,15 @@ } }, { - "at": "/value/entries/43/key", + "at": "/value/entries/24/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" + "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": "/value/entries/43/size", + "at": "/value/entries/24/size", "optional": false, "rule": { "is": "equal", @@ -58265,15 +58845,15 @@ } }, { - "at": "/value/entries/43/etag", + "at": "/value/entries/24/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-e1d35759d4ac" + "value": "fixture-4d2fcc081fd8" } }, { - "at": "/value/entries/43/snapshot", + "at": "/value/entries/24/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58284,7 +58864,7 @@ } }, { - "at": "/value/entries/43/version", + "at": "/value/entries/24/version", "optional": true, "rule": { "is": "one_of", @@ -58295,7 +58875,7 @@ } }, { - "at": "/value/entries/43/is_current_version", + "at": "/value/entries/24/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58306,7 +58886,7 @@ } }, { - "at": "/value/entries/43/directory", + "at": "/value/entries/24/directory", "optional": false, "rule": { "is": "equal", @@ -58314,15 +58894,15 @@ } }, { - "at": "/value/entries/44/key", + "at": "/value/entries/25/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" + "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": "/value/entries/44/size", + "at": "/value/entries/25/size", "optional": false, "rule": { "is": "equal", @@ -58330,15 +58910,15 @@ } }, { - "at": "/value/entries/44/etag", + "at": "/value/entries/25/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-1389b2ea70e1" + "value": "fixture-8956db6ae017" } }, { - "at": "/value/entries/44/snapshot", + "at": "/value/entries/25/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58349,7 +58929,7 @@ } }, { - "at": "/value/entries/44/version", + "at": "/value/entries/25/version", "optional": true, "rule": { "is": "one_of", @@ -58360,7 +58940,7 @@ } }, { - "at": "/value/entries/44/is_current_version", + "at": "/value/entries/25/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58371,7 +58951,7 @@ } }, { - "at": "/value/entries/44/directory", + "at": "/value/entries/25/directory", "optional": false, "rule": { "is": "equal", @@ -58379,15 +58959,15 @@ } }, { - "at": "/value/entries/45/key", + "at": "/value/entries/26/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" + "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/entries/45/size", + "at": "/value/entries/26/size", "optional": false, "rule": { "is": "equal", @@ -58395,15 +58975,15 @@ } }, { - "at": "/value/entries/45/etag", + "at": "/value/entries/26/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-11c5ee820f55" + "value": "fixture-7f1f55a3463b" } }, { - "at": "/value/entries/45/snapshot", + "at": "/value/entries/26/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58414,7 +58994,7 @@ } }, { - "at": "/value/entries/45/version", + "at": "/value/entries/26/version", "optional": true, "rule": { "is": "one_of", @@ -58425,7 +59005,7 @@ } }, { - "at": "/value/entries/45/is_current_version", + "at": "/value/entries/26/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58436,7 +59016,7 @@ } }, { - "at": "/value/entries/45/directory", + "at": "/value/entries/26/directory", "optional": false, "rule": { "is": "equal", @@ -58444,15 +59024,15 @@ } }, { - "at": "/value/entries/46/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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": "/value/entries/46/size", + "at": "/value/entries/27/size", "optional": false, "rule": { "is": "equal", @@ -58460,15 +59040,15 @@ } }, { - "at": "/value/entries/46/etag", + "at": "/value/entries/27/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-ba489a3d8cb9" + "value": "fixture-44dd81206643" } }, { - "at": "/value/entries/46/snapshot", + "at": "/value/entries/27/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58479,7 +59059,7 @@ } }, { - "at": "/value/entries/46/version", + "at": "/value/entries/27/version", "optional": true, "rule": { "is": "one_of", @@ -58490,7 +59070,7 @@ } }, { - "at": "/value/entries/46/is_current_version", + "at": "/value/entries/27/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58501,7 +59081,7 @@ } }, { - "at": "/value/entries/46/directory", + "at": "/value/entries/27/directory", "optional": false, "rule": { "is": "equal", @@ -58509,15 +59089,15 @@ } }, { - "at": "/value/entries/47/key", + "at": "/value/entries/28/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" + "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": "/value/entries/47/size", + "at": "/value/entries/28/size", "optional": false, "rule": { "is": "equal", @@ -58525,15 +59105,15 @@ } }, { - "at": "/value/entries/47/etag", + "at": "/value/entries/28/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-548645ff94c6" + "value": "fixture-952096734190" } }, { - "at": "/value/entries/47/snapshot", + "at": "/value/entries/28/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58544,7 +59124,7 @@ } }, { - "at": "/value/entries/47/version", + "at": "/value/entries/28/version", "optional": true, "rule": { "is": "one_of", @@ -58555,7 +59135,7 @@ } }, { - "at": "/value/entries/47/is_current_version", + "at": "/value/entries/28/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58566,7 +59146,7 @@ } }, { - "at": "/value/entries/47/directory", + "at": "/value/entries/28/directory", "optional": false, "rule": { "is": "equal", @@ -58574,15 +59154,15 @@ } }, { - "at": "/value/entries/48/key", + "at": "/value/entries/29/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" + "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/entries/48/size", + "at": "/value/entries/29/size", "optional": false, "rule": { "is": "equal", @@ -58590,15 +59170,15 @@ } }, { - "at": "/value/entries/48/etag", + "at": "/value/entries/29/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-b21f6737ba6c" + "value": "fixture-db4655ce498c" } }, { - "at": "/value/entries/48/snapshot", + "at": "/value/entries/29/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58609,7 +59189,7 @@ } }, { - "at": "/value/entries/48/version", + "at": "/value/entries/29/version", "optional": true, "rule": { "is": "one_of", @@ -58620,7 +59200,7 @@ } }, { - "at": "/value/entries/48/is_current_version", + "at": "/value/entries/29/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58631,7 +59211,7 @@ } }, { - "at": "/value/entries/48/directory", + "at": "/value/entries/29/directory", "optional": false, "rule": { "is": "equal", @@ -58639,15 +59219,15 @@ } }, { - "at": "/value/entries/49/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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/entries/49/size", + "at": "/value/entries/30/size", "optional": false, "rule": { "is": "equal", @@ -58655,15 +59235,15 @@ } }, { - "at": "/value/entries/49/etag", + "at": "/value/entries/30/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-23eb881b6618" + "value": "fixture-b2a6d305ae63" } }, { - "at": "/value/entries/49/snapshot", + "at": "/value/entries/30/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58674,7 +59254,7 @@ } }, { - "at": "/value/entries/49/version", + "at": "/value/entries/30/version", "optional": true, "rule": { "is": "one_of", @@ -58685,7 +59265,7 @@ } }, { - "at": "/value/entries/49/is_current_version", + "at": "/value/entries/30/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58696,7 +59276,7 @@ } }, { - "at": "/value/entries/49/directory", + "at": "/value/entries/30/directory", "optional": false, "rule": { "is": "equal", @@ -58704,15 +59284,15 @@ } }, { - "at": "/value/entries/50/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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/entries/50/size", + "at": "/value/entries/31/size", "optional": false, "rule": { "is": "equal", @@ -58720,15 +59300,15 @@ } }, { - "at": "/value/entries/50/etag", + "at": "/value/entries/31/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-02c3be7f3363" + "value": "fixture-23d914b576fb" } }, { - "at": "/value/entries/50/snapshot", + "at": "/value/entries/31/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58739,7 +59319,7 @@ } }, { - "at": "/value/entries/50/version", + "at": "/value/entries/31/version", "optional": true, "rule": { "is": "one_of", @@ -58750,7 +59330,7 @@ } }, { - "at": "/value/entries/50/is_current_version", + "at": "/value/entries/31/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58761,7 +59341,7 @@ } }, { - "at": "/value/entries/50/directory", + "at": "/value/entries/31/directory", "optional": false, "rule": { "is": "equal", @@ -58769,15 +59349,15 @@ } }, { - "at": "/value/entries/51/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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": "/value/entries/51/size", + "at": "/value/entries/32/size", "optional": false, "rule": { "is": "equal", @@ -58785,15 +59365,15 @@ } }, { - "at": "/value/entries/51/etag", + "at": "/value/entries/32/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-86bca962bd30" + "value": "fixture-0fe87110b578" } }, { - "at": "/value/entries/51/snapshot", + "at": "/value/entries/32/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58804,7 +59384,7 @@ } }, { - "at": "/value/entries/51/version", + "at": "/value/entries/32/version", "optional": true, "rule": { "is": "one_of", @@ -58815,7 +59395,7 @@ } }, { - "at": "/value/entries/51/is_current_version", + "at": "/value/entries/32/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58826,7 +59406,7 @@ } }, { - "at": "/value/entries/51/directory", + "at": "/value/entries/32/directory", "optional": false, "rule": { "is": "equal", @@ -58834,15 +59414,15 @@ } }, { - "at": "/value/entries/52/key", + "at": "/value/entries/33/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" + "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/entries/52/size", + "at": "/value/entries/33/size", "optional": false, "rule": { "is": "equal", @@ -58850,15 +59430,15 @@ } }, { - "at": "/value/entries/52/etag", + "at": "/value/entries/33/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-1696791242e8" + "value": "fixture-55cf88c7a2e2" } }, { - "at": "/value/entries/52/snapshot", + "at": "/value/entries/33/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58869,7 +59449,7 @@ } }, { - "at": "/value/entries/52/version", + "at": "/value/entries/33/version", "optional": true, "rule": { "is": "one_of", @@ -58880,7 +59460,7 @@ } }, { - "at": "/value/entries/52/is_current_version", + "at": "/value/entries/33/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58891,7 +59471,7 @@ } }, { - "at": "/value/entries/52/directory", + "at": "/value/entries/33/directory", "optional": false, "rule": { "is": "equal", @@ -58899,15 +59479,15 @@ } }, { - "at": "/value/entries/53/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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/entries/53/size", + "at": "/value/entries/34/size", "optional": false, "rule": { "is": "equal", @@ -58915,15 +59495,15 @@ } }, { - "at": "/value/entries/53/etag", + "at": "/value/entries/34/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-b40699a1e1db" + "value": "fixture-6815a7113351" } }, { - "at": "/value/entries/53/snapshot", + "at": "/value/entries/34/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58934,7 +59514,7 @@ } }, { - "at": "/value/entries/53/version", + "at": "/value/entries/34/version", "optional": true, "rule": { "is": "one_of", @@ -58945,7 +59525,7 @@ } }, { - "at": "/value/entries/53/is_current_version", + "at": "/value/entries/34/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -58956,7 +59536,7 @@ } }, { - "at": "/value/entries/53/directory", + "at": "/value/entries/34/directory", "optional": false, "rule": { "is": "equal", @@ -58964,15 +59544,15 @@ } }, { - "at": "/value/entries/54/key", + "at": "/value/entries/35/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" + "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/entries/54/size", + "at": "/value/entries/35/size", "optional": false, "rule": { "is": "equal", @@ -58980,15 +59560,15 @@ } }, { - "at": "/value/entries/54/etag", + "at": "/value/entries/35/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-d3fa18807e94" + "value": "fixture-70df51065efe" } }, { - "at": "/value/entries/54/snapshot", + "at": "/value/entries/35/snapshot", "optional": true, "rule": { "is": "one_of", @@ -58999,7 +59579,7 @@ } }, { - "at": "/value/entries/54/version", + "at": "/value/entries/35/version", "optional": true, "rule": { "is": "one_of", @@ -59010,7 +59590,7 @@ } }, { - "at": "/value/entries/54/is_current_version", + "at": "/value/entries/35/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59021,7 +59601,7 @@ } }, { - "at": "/value/entries/54/directory", + "at": "/value/entries/35/directory", "optional": false, "rule": { "is": "equal", @@ -59029,15 +59609,15 @@ } }, { - "at": "/value/entries/55/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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/entries/55/size", + "at": "/value/entries/36/size", "optional": false, "rule": { "is": "equal", @@ -59045,15 +59625,15 @@ } }, { - "at": "/value/entries/55/etag", + "at": "/value/entries/36/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-d55c43fd1f89" + "value": "fixture-0e76caa6ea5f" } }, { - "at": "/value/entries/55/snapshot", + "at": "/value/entries/36/snapshot", "optional": true, "rule": { "is": "one_of", @@ -59064,7 +59644,7 @@ } }, { - "at": "/value/entries/55/version", + "at": "/value/entries/36/version", "optional": true, "rule": { "is": "one_of", @@ -59075,7 +59655,7 @@ } }, { - "at": "/value/entries/55/is_current_version", + "at": "/value/entries/36/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59086,7 +59666,7 @@ } }, { - "at": "/value/entries/55/directory", + "at": "/value/entries/36/directory", "optional": false, "rule": { "is": "equal", @@ -59094,15 +59674,15 @@ } }, { - "at": "/value/entries/56/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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": "/value/entries/56/size", + "at": "/value/entries/37/size", "optional": false, "rule": { "is": "equal", @@ -59110,15 +59690,15 @@ } }, { - "at": "/value/entries/56/etag", + "at": "/value/entries/37/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-989ce64e20d6" + "value": "fixture-97f6d7ad109d" } }, { - "at": "/value/entries/56/snapshot", + "at": "/value/entries/37/snapshot", "optional": true, "rule": { "is": "one_of", @@ -59129,7 +59709,7 @@ } }, { - "at": "/value/entries/56/version", + "at": "/value/entries/37/version", "optional": true, "rule": { "is": "one_of", @@ -59140,7 +59720,7 @@ } }, { - "at": "/value/entries/56/is_current_version", + "at": "/value/entries/37/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59151,7 +59731,7 @@ } }, { - "at": "/value/entries/56/directory", + "at": "/value/entries/37/directory", "optional": false, "rule": { "is": "equal", @@ -59159,31 +59739,31 @@ } }, { - "at": "/value/entries/57/key", + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s" + "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" } }, { - "at": "/value/entries/57/size", + "at": "/value/entries/38/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/57/etag", + "at": "/value/entries/38/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-e6b534521353" + "value": "fixture-b7df38492c3e" } }, { - "at": "/value/entries/57/snapshot", + "at": "/value/entries/38/snapshot", "optional": true, "rule": { "is": "one_of", @@ -59194,7 +59774,7 @@ } }, { - "at": "/value/entries/57/version", + "at": "/value/entries/38/version", "optional": true, "rule": { "is": "one_of", @@ -59205,7 +59785,7 @@ } }, { - "at": "/value/entries/57/is_current_version", + "at": "/value/entries/38/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59216,338 +59796,169 @@ } }, { - "at": "/value/entries/57/content_md5_base64", + "at": "/value/entries/38/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries", + "at": "/value/entries/39/key", "optional": false, "rule": { - "is": "array_length", - "value": 58 + "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" } }, { - "at": "/value/prefixes", + "at": "/value/entries/39/size", "optional": false, "rule": { - "is": "array_length", + "is": "equal", "value": 0 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/39/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-ac2f2336ab74" } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/list-max-keys-zero", - "profile": "azure-hns", - "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": "/value/entries/39/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { - "at": "/outcome", - "optional": false, + "at": "/value/entries/39/version", + "optional": true, "rule": { - "is": "equal", - "value": "error" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/status", - "optional": false, + "at": "/value/entries/39/is_current_version", + "optional": true, "rule": { - "is": "equal", - "value": 400 + "is": "one_of", + "values": [ + null, + false + ] } }, { - "at": "/code", + "at": "/value/entries/39/directory", "optional": false, "rule": { "is": "equal", - "value": "OutOfRangeQueryParameterValue" + "value": true } - } - ], - "refusal": [ + }, { - "at": "/outcome", + "at": "/value/entries/40/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" } }, { - "at": "/kind", + "at": "/value/entries/40/size", "optional": false, "rule": { - "is": "matches", - "pattern": ".+" + "is": "equal", + "value": 0 } }, { - "at": "/parameter", + "at": "/value/entries/40/etag", "optional": false, "rule": { "is": "equal", - "value": "page_size" + "value": "fixture-c2a19efa033c" } }, { - "at": "/status", + "at": "/value/entries/40/snapshot", "optional": true, "rule": { - "is": "equal", - "value": 400 + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/code", + "at": "/value/entries/40/version", "optional": true, "rule": { - "is": "equal", - "value": "OutOfRangeQueryParameterValue" + "is": "one_of", + "values": [ + null, + "" + ] } - } - ] - }, - { - "id": "operations/azure-hns/list-metadata", - "profile": "azure-hns", - "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.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" - } - } - ] - } - ], - "expect": [ + "at": "/value/entries/40/is_current_version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + false + ] + } + }, { - "at": "/outcome", + "at": "/value/entries/40/directory", "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": true } }, { - "at": "/value/entries/0/key", + "at": "/value/entries/41/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/metadata-listed/plain.txt" + "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": "/value/entries/0/size", + "at": "/value/entries/41/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/41/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-a2cc4a9b7156" + "value": "fixture-b9e90b553fff" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/41/snapshot", "optional": true, "rule": { "is": "one_of", @@ -59558,7 +59969,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/41/version", "optional": true, "rule": { "is": "one_of", @@ -59569,7 +59980,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/41/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59580,39 +59991,39 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/41/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/1/key", + "at": "/value/entries/42/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/metadata-listed/shadowed.txt" + "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/entries/1/size", + "at": "/value/entries/42/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/42/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-3471a2a78a02" + "value": "fixture-0d7c0a17f740" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/42/snapshot", "optional": true, "rule": { "is": "one_of", @@ -59623,7 +60034,7 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/42/version", "optional": true, "rule": { "is": "one_of", @@ -59634,7 +60045,7 @@ } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/42/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59645,202 +60056,104 @@ } }, { - "at": "/value/entries/1/content_md5_base64", + "at": "/value/entries/42/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries", + "at": "/value/entries/43/key", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "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" } }, { - "at": "/value/prefixes", + "at": "/value/entries/43/size", "optional": false, "rule": { - "is": "array_length", + "is": "equal", "value": 0 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/43/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-e1d35759d4ac" } }, { - "at": "/value/entries/0/metadata", - "optional": false, + "at": "/value/entries/43/snapshot", + "optional": true, "rule": { - "is": "equal", - "value": { - "label": "c" - } + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/value/entries/1/metadata", - "optional": false, + "at": "/value/entries/43/version", + "optional": true, "rule": { - "is": "equal", - "value": { - "Metadata": "x", - "label": "b" - } + "is": "one_of", + "values": [ + null, + "" + ] } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/list-next-page", - "profile": "azure-hns", - "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+/17aa95c4a402=", - "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+/17aa95c4a402=" - } - } - ], - "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+/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" - } - } - ] - } - ], - "expect": [ + "at": "/value/entries/43/is_current_version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + false + ] + } + }, { - "at": "/outcome", + "at": "/value/entries/43/directory", "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": true } }, { - "at": "/value/entries/0/key", + "at": "/value/entries/44/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/c.txt" + "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/entries/0/size", + "at": "/value/entries/44/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/44/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-4125625a1056" + "value": "fixture-1389b2ea70e1" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/44/snapshot", "optional": true, "rule": { "is": "one_of", @@ -59851,7 +60164,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/44/version", "optional": true, "rule": { "is": "one_of", @@ -59862,7 +60175,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/44/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59873,39 +60186,39 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/44/directory", "optional": false, "rule": { "is": "equal", - "value": "SooI8J03tzeVZJA4QItfMw==" + "value": true } }, { - "at": "/value/entries/1/key", + "at": "/value/entries/45/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "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": "/value/entries/1/size", + "at": "/value/entries/45/size", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 0 } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/45/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-0d608f7e2d51" + "value": "fixture-11c5ee820f55" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/45/snapshot", "optional": true, "rule": { "is": "one_of", @@ -59916,7 +60229,7 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/45/version", "optional": true, "rule": { "is": "one_of", @@ -59927,7 +60240,7 @@ } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/45/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -59938,398 +60251,104 @@ } }, { - "at": "/value/entries/1/content_md5_base64", + "at": "/value/entries/45/directory", "optional": false, "rule": { "is": "equal", - "value": "Je0by0I7C3IA9IX8X/ccjg==" + "value": true } }, { - "at": "/value/entries", + "at": "/value/entries/46/key", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "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" } }, { - "at": "/value/prefixes", + "at": "/value/entries/46/size", "optional": false, "rule": { - "is": "array_length", + "is": "equal", "value": 0 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/46/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-ba489a3d8cb9" } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/list-pagination", - "profile": "azure-hns", - "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, + "at": "/value/entries/46/snapshot", + "optional": true, "rule": { - "is": "equal", - "value": "ok" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/value/keys", - "optional": false, + "at": "/value/entries/46/version", + "optional": true, "rule": { - "is": "equal", - "value": [ - "first", - "second" + "is": "one_of", + "values": [ + null, + "" ] } - } - ], - "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": [ - { - "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/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" - } - } - ] - } - ], - "expect": [ + "at": "/value/entries/46/is_current_version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + false + ] + } + }, { - "at": "/outcome", + "at": "/value/entries/46/directory", "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": true } }, { - "at": "/value/entries/0/key", + "at": "/value/entries/47/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "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": "/value/entries/0/size", + "at": "/value/entries/47/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/47/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-033751098c10" + "value": "fixture-548645ff94c6" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/47/snapshot", "optional": true, "rule": { "is": "one_of", @@ -60340,7 +60359,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/47/version", "optional": true, "rule": { "is": "one_of", @@ -60351,7 +60370,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/47/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -60362,169 +60381,39 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/47/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "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", + "at": "/value/entries/48/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a.txt" + "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/entries/3/size", + "at": "/value/entries/48/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/3/etag", + "at": "/value/entries/48/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-5d99f4a9cbbe" + "value": "fixture-b21f6737ba6c" } }, { - "at": "/value/entries/3/snapshot", + "at": "/value/entries/48/snapshot", "optional": true, "rule": { "is": "one_of", @@ -60535,7 +60424,7 @@ } }, { - "at": "/value/entries/3/version", + "at": "/value/entries/48/version", "optional": true, "rule": { "is": "one_of", @@ -60546,7 +60435,7 @@ } }, { - "at": "/value/entries/3/is_current_version", + "at": "/value/entries/48/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -60557,39 +60446,39 @@ } }, { - "at": "/value/entries/3/content_md5_base64", + "at": "/value/entries/48/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/49/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a0" + "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": "/value/entries/4/size", + "at": "/value/entries/49/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/49/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-e5b8569421a3" + "value": "fixture-23eb881b6618" } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/49/snapshot", "optional": true, "rule": { "is": "one_of", @@ -60600,7 +60489,7 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/49/version", "optional": true, "rule": { "is": "one_of", @@ -60611,7 +60500,7 @@ } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/49/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -60622,39 +60511,39 @@ } }, { - "at": "/value/entries/4/content_md5_base64", + "at": "/value/entries/49/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/5/key", + "at": "/value/entries/50/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "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": "/value/entries/5/size", + "at": "/value/entries/50/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/5/etag", + "at": "/value/entries/50/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-2ccf5ed23a16" + "value": "fixture-02c3be7f3363" } }, { - "at": "/value/entries/5/snapshot", + "at": "/value/entries/50/snapshot", "optional": true, "rule": { "is": "one_of", @@ -60665,7 +60554,7 @@ } }, { - "at": "/value/entries/5/version", + "at": "/value/entries/50/version", "optional": true, "rule": { "is": "one_of", @@ -60676,7 +60565,7 @@ } }, { - "at": "/value/entries/5/is_current_version", + "at": "/value/entries/50/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -60687,228 +60576,39 @@ } }, { - "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", + "at": "/value/entries/50/directory", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": true } }, { - "at": "/value/entries/6/etag", + "at": "/value/entries/51/key", "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": "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/entries/6/content_md5_base64", + "at": "/value/entries/51/size", "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/list-order", - "profile": "azure-hns", - "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/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" - } - } - ] - } - ], - "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", + "at": "/value/entries/51/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-033751098c10" + "value": "fixture-86bca962bd30" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/51/snapshot", "optional": true, "rule": { "is": "one_of", @@ -60919,7 +60619,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/51/version", "optional": true, "rule": { "is": "one_of", @@ -60930,7 +60630,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/51/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -60941,39 +60641,39 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/51/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/1/key", + "at": "/value/entries/52/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "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/entries/1/size", + "at": "/value/entries/52/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/52/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-1450d5552b20" + "value": "fixture-1696791242e8" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/52/snapshot", "optional": true, "rule": { "is": "one_of", @@ -60984,7 +60684,7 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/52/version", "optional": true, "rule": { "is": "one_of", @@ -60995,7 +60695,7 @@ } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/52/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -61006,39 +60706,39 @@ } }, { - "at": "/value/entries/1/content_md5_base64", + "at": "/value/entries/52/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/2/key", + "at": "/value/entries/53/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a-b" + "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/entries/2/size", + "at": "/value/entries/53/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/2/etag", + "at": "/value/entries/53/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-179d07a80272" + "value": "fixture-b40699a1e1db" } }, { - "at": "/value/entries/2/snapshot", + "at": "/value/entries/53/snapshot", "optional": true, "rule": { "is": "one_of", @@ -61049,7 +60749,7 @@ } }, { - "at": "/value/entries/2/version", + "at": "/value/entries/53/version", "optional": true, "rule": { "is": "one_of", @@ -61060,7 +60760,7 @@ } }, { - "at": "/value/entries/2/is_current_version", + "at": "/value/entries/53/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -61071,39 +60771,39 @@ } }, { - "at": "/value/entries/2/content_md5_base64", + "at": "/value/entries/53/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/3/key", + "at": "/value/entries/54/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a.txt" + "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": "/value/entries/3/size", + "at": "/value/entries/54/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/3/etag", + "at": "/value/entries/54/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-5d99f4a9cbbe" + "value": "fixture-d3fa18807e94" } }, { - "at": "/value/entries/3/snapshot", + "at": "/value/entries/54/snapshot", "optional": true, "rule": { "is": "one_of", @@ -61114,7 +60814,7 @@ } }, { - "at": "/value/entries/3/version", + "at": "/value/entries/54/version", "optional": true, "rule": { "is": "one_of", @@ -61125,7 +60825,7 @@ } }, { - "at": "/value/entries/3/is_current_version", + "at": "/value/entries/54/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -61136,39 +60836,39 @@ } }, { - "at": "/value/entries/3/content_md5_base64", + "at": "/value/entries/54/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/55/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a0" + "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/entries/4/size", + "at": "/value/entries/55/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/55/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-e5b8569421a3" + "value": "fixture-d55c43fd1f89" } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/55/snapshot", "optional": true, "rule": { "is": "one_of", @@ -61179,7 +60879,7 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/55/version", "optional": true, "rule": { "is": "one_of", @@ -61190,7 +60890,7 @@ } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/55/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -61201,39 +60901,39 @@ } }, { - "at": "/value/entries/4/content_md5_base64", + "at": "/value/entries/55/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/5/key", + "at": "/value/entries/56/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "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/entries/5/size", + "at": "/value/entries/56/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { - "at": "/value/entries/5/etag", + "at": "/value/entries/56/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-2ccf5ed23a16" + "value": "fixture-989ce64e20d6" } }, { - "at": "/value/entries/5/snapshot", + "at": "/value/entries/56/snapshot", "optional": true, "rule": { "is": "one_of", @@ -61244,7 +60944,7 @@ } }, { - "at": "/value/entries/5/version", + "at": "/value/entries/56/version", "optional": true, "rule": { "is": "one_of", @@ -61255,7 +60955,7 @@ } }, { - "at": "/value/entries/5/is_current_version", + "at": "/value/entries/56/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -61266,23 +60966,23 @@ } }, { - "at": "/value/entries/5/content_md5_base64", + "at": "/value/entries/56/directory", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": true } }, { - "at": "/value/entries/6/key", + "at": "/value/entries/57/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/é" + "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": "/value/entries/6/size", + "at": "/value/entries/57/size", "optional": false, "rule": { "is": "equal", @@ -61290,15 +60990,15 @@ } }, { - "at": "/value/entries/6/etag", + "at": "/value/entries/57/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-cb02153208ad" + "value": "fixture-e6b534521353" } }, { - "at": "/value/entries/6/snapshot", + "at": "/value/entries/57/snapshot", "optional": true, "rule": { "is": "one_of", @@ -61309,7 +61009,7 @@ } }, { - "at": "/value/entries/6/version", + "at": "/value/entries/57/version", "optional": true, "rule": { "is": "one_of", @@ -61320,7 +61020,7 @@ } }, { - "at": "/value/entries/6/is_current_version", + "at": "/value/entries/57/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -61331,7 +61031,7 @@ } }, { - "at": "/value/entries/6/content_md5_base64", + "at": "/value/entries/57/content_md5_base64", "optional": false, "rule": { "is": "equal", @@ -61343,7 +61043,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 7 + "value": 58 } }, { @@ -61366,16 +61066,17 @@ "refusal": null }, { - "id": "operations/azure-hns/list-all-order", + "id": "operations/azure-hns/list-max-keys-zero", "profile": "azure-hns", "lane": "core", - "purpose": "list order", + "purpose": "list max keys zero", "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": "" + "op": "list_page", + "page_size": 0, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -61424,38 +61125,36 @@ }, { "at": "/query/prefix", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "" + "value": "object-tests/board/" + } + }, + { + "at": "/query/maxresults", + "optional": false, + "rule": { + "is": "equal", + "value": "0" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "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-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": "OutOfRangeQueryParameterValue" }, "body": { - "encoding": "base64", - "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+" - }, - "framing": "chunked" + "encoding": "utf8", + "data": "OutOfRangeQueryParameterValueFixture error" + } } } ] @@ -61467,34 +61166,83 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/keys", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": [ - "a", - "z" - ] + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "OutOfRangeQueryParameterValue" } } ], - "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": "page_size" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "OutOfRangeQueryParameterValue" + } + } + ] }, { - "id": "operations/azure-hns/list-page", + "id": "operations/azure-hns/list-metadata", "profile": "azure-hns", "lane": "core", - "purpose": "list page", + "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/board/" + "prefix": "object-tests/metadata-listed/" }, "exchanges": [ { @@ -61546,7 +61294,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/metadata-listed/" + } + }, + { + "at": "/query/include", + "optional": false, + "rule": { + "is": "equal", + "value": "metadata" } } ], @@ -61564,7 +61320,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/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": "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" } @@ -61586,7 +61342,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "object-tests/metadata-listed/plain.txt" } }, { @@ -61594,7 +61350,7 @@ "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 1 } }, { @@ -61602,7 +61358,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-e8a4acb31ab1" + "value": "fixture-a2cc4a9b7156" } }, { @@ -61643,7 +61399,7 @@ "optional": false, "rule": { "is": "equal", - "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -61651,7 +61407,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested" + "value": "object-tests/metadata-listed/shadowed.txt" } }, { @@ -61659,7 +61415,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -61667,7 +61423,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-bcf8c9e06f70" + "value": "fixture-3471a2a78a02" } }, { @@ -61704,181 +61460,74 @@ } }, { - "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", + "at": "/value/entries/1/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries/3/size", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", + "is": "array_length", "value": 2 } }, { - "at": "/value/entries/3/etag", + "at": "/value/prefixes", "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 - ] + "is": "array_length", + "value": 0 } }, { - "at": "/value/entries/3/content_md5_base64", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "Je0by0I7C3IA9IX8X/ccjg==" - } - }, - { - "at": "/value/entries", - "optional": false, - "rule": { - "is": "array_length", - "value": 4 + "value": "" } }, { - "at": "/value/prefixes", + "at": "/value/entries/0/metadata", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": { + "label": "c" + } } }, { - "at": "/value/continuation_token", + "at": "/value/entries/1/metadata", "optional": false, "rule": { "is": "equal", - "value": "" + "value": { + "Metadata": "x", + "label": "b" + } } } ], "refusal": null }, { - "id": "operations/azure-hns/list-prefix-without-slash", + "id": "operations/azure-hns/list-next-page", "profile": "azure-hns", "lane": "core", - "purpose": "list prefix without slash", + "purpose": "list next page", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { + "continuation_token": "fixture-marker+/17aa95c4a402=", "op": "list_page", - "prefix": "object-tests/boa" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -61930,7 +61579,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "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=" } } ], @@ -61948,7 +61613,7 @@ }, "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": "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" } @@ -61970,7 +61635,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board" + "value": "object-tests/board/nested/c.txt" } }, { @@ -61978,7 +61643,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -61986,7 +61651,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-113173402488" + "value": "fixture-4125625a1056" } }, { @@ -62023,11 +61688,11 @@ } }, { - "at": "/value/entries/0/directory", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "SooI8J03tzeVZJA4QItfMw==" } }, { @@ -62035,7 +61700,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "object-tests/board/z.txt" } }, { @@ -62043,7 +61708,7 @@ "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 2 } }, { @@ -62051,7 +61716,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-e8a4acb31ab1" + "value": "fixture-0d608f7e2d51" } }, { @@ -62092,84 +61757,378 @@ "optional": false, "rule": { "is": "equal", - "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" + "value": "Je0by0I7C3IA9IX8X/ccjg==" } }, { - "at": "/value/entries/2/key", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/board/nested" + "is": "array_length", + "value": 2 } }, { - "at": "/value/entries/2/size", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", + "is": "array_length", "value": 0 } }, { - "at": "/value/entries/2/etag", + "at": "/value/continuation_token", "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": "" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/list-pagination", + "profile": "azure-hns", + "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": [ { - "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": "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" + } + } + ] }, { - "at": "/value/entries/2/directory", - "optional": false, - "rule": { - "is": "equal", - "value": 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/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/entries/3/key", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/c.txt" + "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": [ + { + "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/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" + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" } }, { - "at": "/value/entries/3/size", + "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", @@ -62177,15 +62136,15 @@ } }, { - "at": "/value/entries/3/etag", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-4125625a1056" + "value": "fixture-033751098c10" } }, { - "at": "/value/entries/3/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -62196,7 +62155,7 @@ } }, { - "at": "/value/entries/3/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -62207,7 +62166,7 @@ } }, { - "at": "/value/entries/3/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -62218,39 +62177,39 @@ } }, { - "at": "/value/entries/3/content_md5_base64", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "SooI8J03tzeVZJA4QItfMw==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/1/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "object-tests/order/a" } }, { - "at": "/value/entries/4/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-0d608f7e2d51" + "value": "fixture-1450d5552b20" } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -62261,7 +62220,7 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -62272,7 +62231,7 @@ } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -62283,156 +62242,88 @@ } }, { - "at": "/value/entries/4/content_md5_base64", + "at": "/value/entries/1/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "Je0by0I7C3IA9IX8X/ccjg==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries", + "at": "/value/entries/2/key", "optional": false, "rule": { - "is": "array_length", - "value": 5 + "is": "equal", + "value": "object-tests/order/a-b" } }, { - "at": "/value/prefixes", + "at": "/value/entries/2/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 1 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-179d07a80272" } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/list-separator-keys-delimited", - "profile": "azure-hns", - "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/..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" - } - } - ] - } - ], - "expect": [ + "at": "/value/entries/2/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { - "at": "/outcome", + "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": "ok" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries/0/key", + "at": "/value/entries/3/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/..leading" + "value": "object-tests/order/a.txt" } }, { - "at": "/value/entries/0/size", + "at": "/value/entries/3/size", "optional": false, "rule": { "is": "equal", @@ -62440,15 +62331,15 @@ } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/3/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-15c8f76b7db4" + "value": "fixture-5d99f4a9cbbe" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/3/snapshot", "optional": true, "rule": { "is": "one_of", @@ -62459,7 +62350,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/3/version", "optional": true, "rule": { "is": "one_of", @@ -62470,7 +62361,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/3/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -62481,7 +62372,7 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/3/content_md5_base64", "optional": false, "rule": { "is": "equal", @@ -62489,15 +62380,15 @@ } }, { - "at": "/value/entries/1/key", + "at": "/value/entries/4/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/dot" + "value": "object-tests/order/a0" } }, { - "at": "/value/entries/1/size", + "at": "/value/entries/4/size", "optional": false, "rule": { "is": "equal", @@ -62505,15 +62396,15 @@ } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/4/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-8a6559c18a1c" + "value": "fixture-e5b8569421a3" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/4/snapshot", "optional": true, "rule": { "is": "one_of", @@ -62524,7 +62415,7 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/4/version", "optional": true, "rule": { "is": "one_of", @@ -62535,7 +62426,7 @@ } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/4/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -62546,7 +62437,7 @@ } }, { - "at": "/value/entries/1/content_md5_base64", + "at": "/value/entries/4/content_md5_base64", "optional": false, "rule": { "is": "equal", @@ -62554,35 +62445,141 @@ } }, { - "at": "/value/entries", + "at": "/value/entries/5/key", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "is": "equal", + "value": "object-tests/order/b" } }, { - "at": "/value/prefixes/0", + "at": "/value/entries/5/size", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/a.b/" + "value": 1 } }, { - "at": "/value/prefixes/1", + "at": "/value/entries/5/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/double/" + "value": "fixture-2ccf5ed23a16" } }, { - "at": "/value/prefixes/2", + "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": "object-tests/separators/space /" + "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 } }, { @@ -62590,7 +62587,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 3 + "value": 0 } }, { @@ -62605,16 +62602,16 @@ "refusal": null }, { - "id": "operations/azure-hns/list-separator-keys", + "id": "operations/azure-hns/list-order", "profile": "azure-hns", "lane": "core", - "purpose": "list separator keys", + "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/separators/" + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -62666,7 +62663,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/order/" } } ], @@ -62684,7 +62681,7 @@ }, "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": "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" } @@ -62706,7 +62703,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/..leading" + "value": "object-tests/order/A" } }, { @@ -62722,7 +62719,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-15c8f76b7db4" + "value": "fixture-033751098c10" } }, { @@ -62771,7 +62768,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/a.b" + "value": "object-tests/order/a" } }, { @@ -62779,7 +62776,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -62787,7 +62784,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-1647f69dced7" + "value": "fixture-1450d5552b20" } }, { @@ -62824,11 +62821,11 @@ } }, { - "at": "/value/entries/1/directory", + "at": "/value/entries/1/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -62836,7 +62833,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/a.b/c" + "value": "object-tests/order/a-b" } }, { @@ -62852,7 +62849,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-75bdde0ebaf4" + "value": "fixture-179d07a80272" } }, { @@ -62901,7 +62898,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/dot" + "value": "object-tests/order/a.txt" } }, { @@ -62917,7 +62914,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-8a6559c18a1c" + "value": "fixture-5d99f4a9cbbe" } }, { @@ -62966,7 +62963,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/double" + "value": "object-tests/order/a0" } }, { @@ -62974,7 +62971,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -62982,7 +62979,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-8e02901b8187" + "value": "fixture-e5b8569421a3" } }, { @@ -63019,11 +63016,11 @@ } }, { - "at": "/value/entries/4/directory", + "at": "/value/entries/4/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -63031,7 +63028,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/double/slash" + "value": "object-tests/order/b" } }, { @@ -63047,7 +63044,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-dffbfc983f10" + "value": "fixture-2ccf5ed23a16" } }, { @@ -63096,7 +63093,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/space " + "value": "object-tests/order/é" } }, { @@ -63104,7 +63101,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -63112,7 +63109,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-978fd2f2d938" + "value": "fixture-cb02153208ad" } }, { @@ -63149,72 +63146,7 @@ } }, { - "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/separators/space /x" - } - }, - { - "at": "/value/entries/7/size", - "optional": false, - "rule": { - "is": "equal", - "value": 1 - } - }, - { - "at": "/value/entries/7/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-ddc1aad6dee1" - } - }, - { - "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", + "at": "/value/entries/6/content_md5_base64", "optional": false, "rule": { "is": "equal", @@ -63226,7 +63158,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 8 + "value": 7 } }, { @@ -63249,19 +63181,16 @@ "refusal": null }, { - "id": "operations/azure-hns/list-snapshots-after-delete", + "id": "operations/azure-hns/list-all-order", "profile": "azure-hns", "lane": "core", - "purpose": "list snapshots after delete", + "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": { - "include": [ - "snapshots" - ], - "op": "list_page", - "prefix": "object-tests/snapshots-all/" + "op": "list", + "prefix": "" }, "exchanges": [ { @@ -63310,18 +63239,10 @@ }, { "at": "/query/prefix", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/snapshots-all/" - } - }, - { - "at": "/query/include", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "snapshots" + "value": "" } } ], @@ -63334,12 +63255,20 @@ "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": "utf8", - "data": "object-tests/snapshots-all/" + "encoding": "base64", + "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+" }, "framing": "chunked" } @@ -63357,46 +63286,30 @@ } }, { - "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", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "" + "value": [ + "a", + "z" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/list-snapshots-after-snapshots-deleted", + "id": "operations/azure-hns/list-page", "profile": "azure-hns", "lane": "core", - "purpose": "list snapshots after snapshots deleted", + "purpose": "list page", "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/" + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -63448,15 +63361,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/snapshots-only/" - } - }, - { - "at": "/query/include", - "optional": false, - "rule": { - "is": "equal", - "value": "snapshots" + "value": "object-tests/board/" } } ], @@ -63474,7 +63379,7 @@ }, "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": "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" } @@ -63496,7 +63401,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/snapshots-only/object.txt" + "value": "object-tests/board/a.txt" } }, { @@ -63504,7 +63409,7 @@ "optional": false, "rule": { "is": "equal", - "value": 4 + "value": 8 } }, { @@ -63512,7 +63417,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-5d8eb33996d7" + "value": "fixture-e8a4acb31ab1" } }, { @@ -63553,7 +63458,202 @@ "optional": false, "rule": { "is": "equal", - "value": "TYtghPPRZ7dsrGaiKpG+Ag==" + "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 + ] + } + }, + { + "at": "/value/entries/3/content_md5_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "Je0by0I7C3IA9IX8X/ccjg==" } }, { @@ -63561,7 +63661,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 4 } }, { @@ -63584,20 +63684,16 @@ "refusal": null }, { - "id": "operations/azure-hns/list-snapshots-and-versions", + "id": "operations/azure-hns/list-prefix-without-slash", "profile": "azure-hns", "lane": "core", - "purpose": "list snapshots and versions", + "purpose": "list prefix without slash", "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/" + "prefix": "object-tests/boa" }, "exchanges": [ { @@ -63649,15 +63745,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/snapshots/" - } - }, - { - "at": "/query/include", - "optional": false, - "rule": { - "is": "equal", - "value": "snapshots,versions" + "value": "object-tests/boa" } } ], @@ -63675,7 +63763,7 @@ }, "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": "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" } @@ -63697,7 +63785,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/snapshots/object.txt" + "value": "object-tests/board" } }, { @@ -63705,7 +63793,7 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 0 } }, { @@ -63713,7 +63801,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-2666f63dbf0b" + "value": "fixture-113173402488" } }, { @@ -63750,174 +63838,104 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/0/directory", "optional": false, "rule": { "is": "equal", - "value": "uKn3Fdu2T9XFbneDxoIKYQ==" + "value": true } }, { - "at": "/value/entries", + "at": "/value/entries/1/key", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "object-tests/board/a.txt" } }, { - "at": "/value/prefixes", + "at": "/value/entries/1/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 8 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-e8a4acb31ab1" } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/list-snapshots", - "profile": "azure-hns", - "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.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2666f63dbf0bfile3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue" - }, - "framing": "chunked" - } - } - ] - } - ], - "expect": [ + "at": "/value/entries/1/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { - "at": "/outcome", + "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": "ok" + "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" } }, { - "at": "/value/entries/0/key", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/snapshots/object.txt" + "value": "object-tests/board/nested" } }, { - "at": "/value/entries/0/size", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 0 } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-2666f63dbf0b" + "value": "fixture-bcf8c9e06f70" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -63928,7 +63946,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/2/version", "optional": true, "rule": { "is": "one_of", @@ -63939,7 +63957,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/2/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -63950,384 +63968,141 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/2/directory", "optional": false, "rule": { "is": "equal", - "value": "uKn3Fdu2T9XFbneDxoIKYQ==" + "value": true } }, { - "at": "/value/entries", + "at": "/value/entries/3/key", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "object-tests/board/nested/c.txt" } }, { - "at": "/value/prefixes", + "at": "/value/entries/3/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 1 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/3/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-4125625a1056" } - } - ], - "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": [ - { - "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, + "at": "/value/entries/3/snapshot", + "optional": true, "rule": { - "is": "equal", - "value": "ok" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/value/entries", - "optional": false, + "at": "/value/entries/3/version", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/value/prefixes", - "optional": false, + "at": "/value/entries/3/is_current_version", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + false + ] } }, { - "at": "/value/continuation_token", + "at": "/value/entries/3/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "SooI8J03tzeVZJA4QItfMw==" } - } - ], - "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": [ - { - "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", + "at": "/value/entries/4/key", "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "object-tests/board/z.txt" } }, { - "at": "/status", + "at": "/value/entries/4/size", "optional": false, "rule": { "is": "equal", - "value": 401 + "value": 2 } }, { - "at": "/code", + "at": "/value/entries/4/etag", "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "fixture-0d608f7e2d51" } - } - ], - "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": [ - { - "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-mtypy4jp/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-mtypy4jp/deleted.txt" - }, - "framing": "chunked" - } - } - ] - } - ], - "expect": [ + "at": "/value/entries/4/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { - "at": "/outcome", + "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": "ok" + "value": "Je0by0I7C3IA9IX8X/ccjg==" } }, { @@ -64335,7 +64110,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 5 } }, { @@ -64358,19 +64133,17 @@ "refusal": null }, { - "id": "operations/azure-hns/list-versions", + "id": "operations/azure-hns/list-separator-keys-delimited", "profile": "azure-hns", "lane": "core", - "purpose": "list versions", + "purpose": "list separator keys delimited", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "include": [ - "versions" - ], + "delimiter": "/", "op": "list_page", - "prefix": "object-tests/versions-mtypy4jp/" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -64422,15 +64195,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/versions-mtypy4jp/" + "value": "object-tests/separators/" } }, { - "at": "/query/include", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "versions" + "value": "/" } } ], @@ -64448,7 +64221,7 @@ }, "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": "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" } @@ -64470,7 +64243,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/versions-mtypy4jp/object.txt" + "value": "object-tests/separators/..leading" } }, { @@ -64478,7 +64251,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -64486,7 +64259,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-bd163fcc78d6" + "value": "fixture-15c8f76b7db4" } }, { @@ -64527,7 +64300,72 @@ "optional": false, "rule": { "is": "equal", - "value": "GyZ2GcSBLMRu4oF0eITKUA==" + "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==" } }, { @@ -64535,7 +64373,31 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "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 /" } }, { @@ -64543,7 +64405,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 3 } }, { @@ -64558,16 +64420,16 @@ "refusal": null }, { - "id": "operations/azure-hns/list-written-with-hashes", + "id": "operations/azure-hns/list-separator-keys", "profile": "azure-hns", "lane": "core", - "purpose": "list written with hashes", + "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/hashes/" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -64619,7 +64481,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/hashes/" + "value": "object-tests/separators/" } } ], @@ -64637,7 +64499,7 @@ }, "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": "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" } @@ -64659,7 +64521,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/hashes/committed.bin" + "value": "object-tests/separators/..leading" } }, { @@ -64667,7 +64529,7 @@ "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 1 } }, { @@ -64675,7 +64537,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-1e5253c0f65a" + "value": "fixture-15c8f76b7db4" } }, { @@ -64716,7 +64578,7 @@ "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -64724,7 +64586,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/hashes/crc64.txt" + "value": "object-tests/separators/a.b" } }, { @@ -64732,7 +64594,7 @@ "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 0 } }, { @@ -64740,7 +64602,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-1a8d1824b282" + "value": "fixture-1647f69dced7" } }, { @@ -64777,19 +64639,11 @@ } }, { - "at": "/value/entries/1/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" - } - }, - { - "at": "/value/entries/1/content_crc64_base64", + "at": "/value/entries/1/directory", "optional": false, "rule": { "is": "equal", - "value": "9XBvAwWoR9o=" + "value": true } }, { @@ -64797,7 +64651,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/hashes/md5.txt" + "value": "object-tests/separators/a.b/c" } }, { @@ -64805,7 +64659,7 @@ "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 1 } }, { @@ -64813,7 +64667,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-3b064c67c0ac" + "value": "fixture-75bdde0ebaf4" } }, { @@ -64854,345 +64708,306 @@ "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries", + "at": "/value/entries/3/key", "optional": false, "rule": { - "is": "array_length", - "value": 3 + "is": "equal", + "value": "object-tests/separators/dot" } }, { - "at": "/value/prefixes", + "at": "/value/entries/3/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 1 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/3/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-8a6559c18a1c" } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/put-container-missing", - "profile": "azure-hns", - "lane": "core", - "purpose": "put container missing", - "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": "/value/entries/3/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { - "at": "/outcome", + "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": "error" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/status", + "at": "/value/entries/4/key", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "object-tests/separators/double" } }, { - "at": "/code", + "at": "/value/entries/4/size", "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": 0 } - } - ], - "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": [ { - "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/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-8e02901b8187" + } + }, { - "at": "/outcome", + "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": "error" + "value": true } }, { - "at": "/status", + "at": "/value/entries/5/key", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "object-tests/separators/double/slash" } }, { - "at": "/code", + "at": "/value/entries/5/size", "optional": false, "rule": { "is": "equal", - "value": "Crc64Mismatch" + "value": 1 } - } - ], - "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": [ + }, { - "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": "/value/entries/5/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-dffbfc983f10" + } + }, { - "at": "/outcome", + "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": "ok" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/etag", + "at": "/value/entries/6/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9373f0410116\"" + "value": "object-tests/separators/space " } }, { - "at": "/value/version", + "at": "/value/entries/6/size", + "optional": false, + "rule": { + "is": "equal", + "value": 0 + } + }, + { + "at": "/value/entries/6/etag", + "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 + ] + } + }, + { + "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/separators/space /x" + } + }, + { + "at": "/value/entries/7/size", + "optional": false, + "rule": { + "is": "equal", + "value": 1 + } + }, + { + "at": "/value/entries/7/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-ddc1aad6dee1" + } + }, + { + "at": "/value/entries/7/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/7/version", "optional": true, "rule": { "is": "one_of", @@ -65201,22 +65016,67 @@ "" ] } + }, + { + "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", + "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-hns/put-created", + "id": "operations/azure-hns/list-snapshots-after-delete", "profile": "azure-hns", "lane": "core", - "purpose": "put created", + "purpose": "list snapshots after delete", "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" + "include": [ + "snapshots" + ], + "op": "list_page", + "prefix": "object-tests/snapshots-all/" }, "exchanges": [ { @@ -65228,7 +65088,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65236,7 +65096,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -65244,38 +65104,59 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "object-tests/snapshots-all/" + }, + "framing": "chunked" } } ] @@ -65291,39 +65172,46 @@ } }, { - "at": "/value/etag", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-bf139483d631\"" + "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/put-created-key-question", + "id": "operations/azure-hns/list-snapshots-after-snapshots-deleted", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"question?mark.txt\"", + "purpose": "list snapshots after snapshots deleted", "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" + "include": [ + "snapshots" + ], + "op": "list_page", + "prefix": "object-tests/snapshots-only/" }, "exchanges": [ { @@ -65335,7 +65223,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65343,7 +65231,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture" } }, { @@ -65351,38 +65239,59 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" + }, + "framing": "chunked" } } ] @@ -65398,15 +65307,31 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": "object-tests/snapshots-only/object.txt" } }, { - "at": "/value/version", + "at": "/value/entries/0/size", + "optional": false, + "rule": { + "is": "equal", + "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", @@ -65415,22 +65340,79 @@ "" ] } + }, + { + "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/put-created-key-hash", + "id": "operations/azure-hns/list-snapshots-and-versions", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"hash#tag.txt\"", + "purpose": "list snapshots and versions", "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" + "include": [ + "snapshots", + "versions" + ], + "op": "list_page", + "prefix": "object-tests/snapshots/" }, "exchanges": [ { @@ -65442,7 +65424,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65450,7 +65432,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture" } }, { @@ -65458,38 +65440,59 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" + }, + "framing": "chunked" } } ] @@ -65505,15 +65508,42 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": "object-tests/snapshots/object.txt" } }, { - "at": "/value/version", + "at": "/value/entries/0/size", + "optional": false, + "rule": { + "is": "equal", + "value": 3 + } + }, + { + "at": "/value/entries/0/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-2666f63dbf0b" + } + }, + { + "at": "/value/entries/0/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -65522,22 +65552,67 @@ "" ] } + }, + { + "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/put-created-key-percent", + "id": "operations/azure-hns/list-snapshots", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"percent%20.txt\"", + "purpose": "list snapshots", "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" + "include": [ + "snapshots" + ], + "op": "list_page", + "prefix": "object-tests/snapshots/" }, "exchanges": [ { @@ -65549,7 +65624,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65557,7 +65632,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture" } }, { @@ -65565,38 +65640,59 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" + }, + "framing": "chunked" } } ] @@ -65612,15 +65708,42 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": "object-tests/snapshots/object.txt" } }, { - "at": "/value/version", + "at": "/value/entries/0/size", + "optional": false, + "rule": { + "is": "equal", + "value": 3 + } + }, + { + "at": "/value/entries/0/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-2666f63dbf0b" + } + }, + { + "at": "/value/entries/0/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -65629,22 +65752,64 @@ "" ] } + }, + { + "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/put-created-key-plus", + "id": "operations/azure-hns/list-staged-only", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"plus+plus.txt\"", + "purpose": "list staged only", "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" + "op": "list_page", + "prefix": "object-tests/multipart/staged.bin" }, "exchanges": [ { @@ -65656,7 +65821,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65664,7 +65829,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture" } }, { @@ -65672,38 +65837,51 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "object-tests/multipart/staged.bin" + }, + "framing": "chunked" } } ] @@ -65719,39 +65897,43 @@ } }, { - "at": "/value/etag", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-bf139483d631\"" + "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/put-created-key-space", + "id": "operations/azure-hns/list-unauthenticated", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"space name.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/space name.txt", - "op": "put" + "op": "list_page", + "prefix": "object-tests/" }, "exchanges": [ { @@ -65763,7 +65945,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65771,7 +65953,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture" } }, { @@ -65779,37 +65961,48 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 401, "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" + "x-ms-error-code": "InvalidAuthenticationInfo" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -65822,43 +66015,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": 401 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-created-key-non-ascii", + "id": "operations/azure-hns/list-versions-of-deleted-object", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"café/雪.txt\"", + "purpose": "list versions of deleted object", "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" + "include": [ + "versions" + ], + "op": "list_page", + "prefix": "object-tests/versions-mtypy4jp/deleted.txt" }, "exchanges": [ { @@ -65870,7 +66062,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65878,7 +66070,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture" } }, { @@ -65886,38 +66078,59 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "container" + } + }, + { + "at": "/query/comp", + "optional": false, + "rule": { + "is": "equal", + "value": "list" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/versions-mtypy4jp/deleted.txt" + } + }, + { + "at": "/query/include", + "optional": false, + "rule": { + "is": "equal", + "value": "versions" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "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" + "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" } } ] @@ -65933,39 +66146,46 @@ } }, { - "at": "/value/etag", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-bf139483d631\"" + "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/put-created-key-double-slash", + "id": "operations/azure-hns/list-versions", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"double//slash.txt\"", + "purpose": "list versions", "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" + "include": [ + "versions" + ], + "op": "list_page", + "prefix": "object-tests/versions-mtypy4jp/" }, "exchanges": [ { @@ -65977,7 +66197,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -65985,7 +66205,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture" } }, { @@ -65993,38 +66213,59 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "container" + } + }, + { + "at": "/query/comp", + "optional": false, + "rule": { + "is": "equal", + "value": "list" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/versions-mtypy4jp/" + } + }, + { + "at": "/query/include", + "optional": false, + "rule": { + "is": "equal", + "value": "versions" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" } } ] @@ -66040,15 +66281,42 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": "object-tests/versions-mtypy4jp/object.txt" } }, { - "at": "/value/version", + "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", @@ -66057,22 +66325,64 @@ "" ] } + }, + { + "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 + } + }, + { + "at": "/value/continuation_token", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } } ], "refusal": null }, { - "id": "operations/azure-hns/put-created-key-trailing-slash", + "id": "operations/azure-hns/list-written-with-hashes", "profile": "azure-hns", "lane": "core", - "purpose": "put created, with the key \"trailing-slash/\"", + "purpose": "list written with hashes", "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" + "op": "list_page", + "prefix": "object-tests/hashes/" }, "exchanges": [ { @@ -66084,7 +66394,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -66092,7 +66402,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture" } }, { @@ -66100,35 +66410,51 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "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/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" } } ] @@ -66140,40 +66466,251 @@ "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/hashes/committed.bin" } }, { - "at": "/code", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidUri" + "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, + "" + ] + } + }, + { + "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": "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-hns/copy-missing-source", + "id": "operations/azure-hns/put-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a copy whose source does not exist", + "purpose": "put container missing", "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" + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object.txt", + "op": "put" }, "exchanges": [ { @@ -66193,7 +66730,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object.txt" } }, { @@ -66201,19 +66738,21 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } }, { - "at": "/headers/x-ms-copy-source", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/absent\\.txt" + "is": "equal", + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 404, @@ -66222,11 +66761,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "x-ms-error-code": "ContainerNotFound" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "ContainerNotFoundFixture error" } } } @@ -66255,24 +66794,28 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/copy", + "id": "operations/azure-hns/put-crc64-mismatch", "profile": "azure-hns", "lane": "core", - "purpose": "Copy an object to another key in the same container", + "purpose": "put crc64 mismatch", "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" + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "azure_crc64", + "value_base64": "khqMBK+EUSA=" + }, + "key": "object-tests/hashes/crc64-mismatch.txt", + "op": "put" }, "exchanges": [ { @@ -66292,7 +66835,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/hashes/crc64-mismatch.txt" } }, { @@ -66300,33 +66843,42 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/headers/x-ms-copy-source", + "at": "/headers/x-ms-content-crc64", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "equal", + "value": "khqMBK+EUSA=" + } + }, + { + "at": "/headers/x-ms-blob-type", + "optional": false, + "rule": { + "is": "equal", + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 202, + "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-copy-id": "fixture-copy-id", - "x-ms-copy-status": "success" + "x-ms-error-code": "Crc64Mismatch" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "Crc64MismatchFixture error" } } } @@ -66339,31 +66891,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/copy_status", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "success" + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "Crc64Mismatch" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-page-ranges", + "id": "operations/azure-hns/put-created-empty", "profile": "azure-hns", "lane": "core", - "purpose": "List the written ranges of a page blob, which an HNS account does not support", + "purpose": "put created empty", "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" + "body_base64": "", + "key": "object-tests/write/empty.bin", + "op": "put" }, "exchanges": [ { @@ -66375,7 +66936,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -66383,7 +66944,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/write/empty.bin" } }, { @@ -66395,28 +66956,33 @@ } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "pagelist" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==", "date": { "from": "now" }, - "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "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": "utf8", - "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + "encoding": "base64", + "data": "" } } } @@ -66429,41 +66995,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 409 + "value": "\"fixture-9373f0410116\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/upload-pages-unaligned", + "id": "operations/azure-hns/put-created", "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", + "purpose": "put created", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -66483,7 +67051,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -66491,48 +67059,37 @@ "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": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-range", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "bytes=1-512" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 400, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "InvalidHeaderValue" + "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": "utf8", - "data": "InvalidHeaderValueFixture error" + "encoding": "base64", + "data": "" } } } @@ -66545,41 +67102,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidHeaderValue" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/upload-pages", + "id": "operations/azure-hns/put-created-key-question", "profile": "azure-hns", "lane": "core", - "purpose": "Write the first page of a page blob, which an HNS account does not support", + "purpose": "put created, with the key \"question?mark.txt\"", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/question?mark.txt", + "op": "put" }, "exchanges": [ { @@ -66599,7 +67158,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -66607,48 +67166,37 @@ "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": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-range", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "bytes=0-511" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "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": "utf8", - "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + "encoding": "base64", + "data": "" } } } @@ -66661,40 +67209,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 409 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/create-page", + "id": "operations/azure-hns/put-created-key-hash", "profile": "azure-hns", "lane": "core", - "purpose": "Create a page blob of 1,024 bytes, which an HNS account does not support", + "purpose": "put created, with the key \"hash#tag.txt\"", "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 + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/hash#tag.txt", + "op": "put" }, "exchanges": [ { @@ -66714,7 +67265,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -66722,7 +67273,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -66730,32 +67281,29 @@ "optional": false, "rule": { "is": "equal", - "value": "PageBlob" - } - }, - { - "at": "/headers/x-ms-blob-content-length", - "optional": false, - "rule": { - "is": "equal", - "value": "1024" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "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": "utf8", - "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + "encoding": "base64", + "data": "" } } } @@ -66768,40 +67316,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 409 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/append-block-to-block-blob", + "id": "operations/azure-hns/put-created-key-percent", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse an append to a block blob", + "purpose": "put created, with the key \"percent%20.txt\"", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/percent%20.txt", + "op": "put" }, "exchanges": [ { @@ -66821,7 +67372,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -66829,32 +67380,37 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "appendblock" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlobType" + "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": "utf8", - "data": "InvalidBlobTypeFixture error" + "encoding": "base64", + "data": "" } } } @@ -66867,41 +67423,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 409 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidBlobType" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/append-block-at-wrong-position", + "id": "operations/azure-hns/put-created-key-plus", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse an append whose position condition does not match the blob length", + "purpose": "put created, with the key \"plus+plus.txt\"", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/plus+plus.txt", + "op": "put" }, "exchanges": [ { @@ -66921,7 +67479,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -66929,40 +67487,37 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "appendblock" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-blob-condition-appendpos", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "0" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "AppendPositionConditionNotMet" + "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": "utf8", - "data": "AppendPositionConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -66975,40 +67530,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "AppendPositionConditionNotMet" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/append-block", + "id": "operations/azure-hns/put-created-key-space", "profile": "azure-hns", "lane": "core", - "purpose": "Append a block to an append blob and report its offset", + "purpose": "put created, with the key \"space name.txt\"", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/space name.txt", + "op": "put" }, "exchanges": [ { @@ -67028,7 +67586,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -67036,34 +67594,37 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "appendblock" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 201, "headers": { + "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-append-offset": "5", - "x-ms-blob-committed-block-count": "2", + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -67080,35 +67641,39 @@ } }, { - "at": "/value/append_offset", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 5 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/value/committed_block_count", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": 2 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/create-append", + "id": "operations/azure-hns/put-created-key-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "Create an empty append blob", + "purpose": "put created, with the key \"café/雪.txt\"", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/café/雪.txt", + "op": "put" }, "exchanges": [ { @@ -67128,7 +67693,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -67136,7 +67701,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -67144,24 +67709,29 @@ "optional": false, "rule": { "is": "equal", - "value": "AppendBlob" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 201, "headers": { + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "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": "empty" + "encoding": "base64", + "data": "" } } } @@ -67176,22 +67746,40 @@ "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-leased-if-match-without-lease-id", + "id": "operations/azure-hns/put-created-key-double-slash", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a write to a leased object whose If-Match holds but that names no lease ID", + "purpose": "put created, 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": { - "body_base64": "c2Vjb25k", - "if_match": "\"fixture-etag\"", - "key": "object-tests/leases/object.txt", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/double//slash.txt", "op": "put" }, "exchanges": [ @@ -67212,7 +67800,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -67220,7 +67808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -67230,30 +67818,27 @@ "is": "equal", "value": "BlockBlob" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-etag\"" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "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": "utf8", - "data": "LeaseIdMissingFixture error" + "encoding": "base64", + "data": "" } } } @@ -67266,40 +67851,42 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "LeaseIdMissing" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/put-leased-with-lease-id", + "id": "operations/azure-hns/put-created-key-trailing-slash", "profile": "azure-hns", "lane": "core", - "purpose": "Write to a leased object with its lease ID", + "purpose": "put created, 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": { - "body_base64": "c2Vjb25k", - "key": "object-tests/leases/object.txt", - "lease_id": "11111111-2222-3333-4444-555555555555", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/trailing-slash/", "op": "put" }, "exchanges": [ @@ -67320,7 +67907,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -67328,7 +67915,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -67338,30 +67925,24 @@ "is": "equal", "value": "BlockBlob" } - }, - { - "at": "/headers/x-ms-lease-id", - "optional": false, - "rule": { - "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "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" + "x-ms-error-code": "InvalidUri" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "InvalidUriFixture error" } } } @@ -67374,24 +67955,40 @@ "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": "InvalidUri" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-leased-without-lease-id", + "id": "operations/azure-hns/copy-missing-source", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a write to a leased object that names no lease ID", + "purpose": "Refuse a copy whose source does not exist", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "c2Vjb25k", - "key": "object-tests/leases/object.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/absent.txt" }, "exchanges": [ { @@ -67411,7 +68008,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -67419,32 +68016,32 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/absent\\.txt" } } ], "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": "BlobNotFound" }, "body": { "encoding": "utf8", - "data": "LeaseIdMissingFixture error" + "data": "BlobNotFoundFixture error" } } } @@ -67465,7 +68062,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 404 } }, { @@ -67473,25 +68070,24 @@ "optional": false, "rule": { "is": "equal", - "value": "LeaseIdMissing" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/lease-break", + "id": "operations/azure-hns/copy", "profile": "azure-hns", "lane": "core", - "purpose": "Break a lease at once", + "purpose": "Copy an object to another key in the same container", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "action": "break", - "break_period": 0, - "key": "object-tests/leases/object.txt", - "op": "azure.lease" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -67511,7 +68107,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -67523,27 +68119,11 @@ } }, { - "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": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "0" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } } ], @@ -67557,7 +68137,8 @@ }, "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-ms-lease-time": "0" + "x-ms-copy-id": "fixture-copy-id", + "x-ms-copy-status": "success" }, "body": { "encoding": "empty" @@ -67575,23 +68156,33 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/copy_status", + "optional": false, + "rule": { + "is": "equal", + "value": "success" + } } ], "refusal": null }, { - "id": "operations/azure-hns/lease-release", + "id": "operations/azure-hns/copy-replace-metadata", "profile": "azure-hns", "lane": "core", - "purpose": "Release a lease", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "action": "release", - "key": "object-tests/leases/object.txt", - "lease_id": "11111111-2222-3333-4444-555555555555", - "op": "azure.lease" + "key": "object-tests/copy/target.txt", + "metadata": { + "colour": "blue" + }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -67611,7 +68202,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -67623,40 +68214,34 @@ } }, { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "lease" - } - }, - { - "at": "/headers/x-ms-lease-action", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "release" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-lease-id", + "at": "/headers/x-ms-meta-colour", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": "blue" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 202, "headers": { "date": { "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-copy-id": "fixture-copy-id", + "x-ms-copy-status": "success" }, "body": { "encoding": "empty" @@ -67674,24 +68259,31 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/copy_status", + "optional": false, + "rule": { + "is": "equal", + "value": "success" + } } ], "refusal": null }, { - "id": "operations/azure-hns/lease-acquire-leased", + "id": "operations/azure-hns/copy-source-if-match", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a second lease while another lease holds the object", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "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/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -67711,7 +68303,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -67723,52 +68315,37 @@ } }, { - "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", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "15" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-proposed-lease-id", + "at": "/headers/x-ms-source-if-match", "optional": false, "rule": { "is": "equal", - "value": "66666666-7777-8888-9999-000000000000" + "value": "\"fixture-etag\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 409, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "LeaseAlreadyPresent" + "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": "LeaseAlreadyPresentFixture error" + "encoding": "empty" } } } @@ -67781,42 +68358,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 409 + "value": "ok" } }, { - "at": "/code", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "LeaseAlreadyPresent" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure-hns/lease-acquire", + "id": "operations/azure-hns/copy-source-if-match-failed", "profile": "azure-hns", "lane": "core", - "purpose": "Acquire a lease on an object with a proposed lease ID", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "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/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-0123456789ab\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -67836,7 +68404,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -67848,52 +68416,36 @@ } }, { - "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", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "15" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-proposed-lease-id", + "at": "/headers/x-ms-source-if-match", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": "\"fixture-0123456789ab\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "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-lease-id": "11111111-2222-3333-4444-555555555555" + "x-ms-error-code": "SourceConditionNotMet" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "SourceConditionNotMetFixture error" } } } @@ -67906,35 +68458,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/lease_id", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": 412 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "SourceConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-with-tags", + "id": "operations/azure-hns/copy-source-if-unmodified-since-failed", "profile": "azure-hns", "lane": "core", - "purpose": "Write an object with tags, which an HNS account does not support", + "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/put-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "Zmlyc3Q=", - "key": "object-tests/tags/object.txt", - "op": "put", - "tags": { - "project": "object-tests" - } + "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": [ { @@ -67954,7 +68512,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -67962,40 +68520,40 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-tags", + "at": "/headers/x-ms-source-if-unmodified-since", "optional": false, "rule": { "is": "equal", - "value": "project=object-tests" + "value": "Mon, 01 Jan 2024 00:00:00 GMT" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 409, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "x-ms-error-code": "SourceConditionNotMet" }, "body": { "encoding": "utf8", - "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + "data": "SourceConditionNotMetFixture error" } } } @@ -68016,7 +68574,7 @@ "optional": false, "rule": { "is": "equal", - "value": 409 + "value": 412 } }, { @@ -68024,23 +68582,25 @@ "optional": false, "rule": { "is": "equal", - "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "value": "SourceConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-tags", + "id": "operations/azure-hns/copy-if-none-match-exists", "profile": "azure-hns", "lane": "core", - "purpose": "Read the tags of an object, which an HNS account does not support", + "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/get-blob-tags" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "key": "object-tests/tags/object.txt", - "op": "azure.get_tags" + "if_none_match": "*", + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -68052,7 +68612,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -68060,7 +68620,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68072,28 +68632,36 @@ } }, { - "at": "/query/comp", + "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": "tags" + "value": "*" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidQueryParameterValue" + "x-ms-error-code": "BlobAlreadyExists" }, "body": { "encoding": "utf8", - "data": "InvalidQueryParameterValueFixture error" + "data": "BlobAlreadyExistsFixture error" } } } @@ -68114,7 +68682,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 409 } }, { @@ -68122,26 +68690,25 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidQueryParameterValue" + "value": "BlobAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure-hns/set-tags", + "id": "operations/azure-hns/copy-across-containers", "profile": "azure-hns", "lane": "core", - "purpose": "Replace the tags of an object, which an HNS account does not support", + "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/set-blob-tags" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "key": "object-tests/tags/object.txt", - "op": "azure.set_tags", - "tags": { - "project": "object-tests" - } + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_container": "source", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -68161,51 +68728,41 @@ "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/copy/target.txt" } }, { - "at": "/query/comp", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "tags" + "value": "" } }, { - "at": "/headers/content-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/xml; charset=UTF-8" - ] + "is": "matches", + "pattern": "https?://[^/]+/source/object-tests/copy/source\\.txt" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts" + "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": "BlobApiNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + "encoding": "empty" } } } @@ -68218,40 +68775,32 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 400 + "value": "ok" } }, { - "at": "/code", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-with-tier", + "id": "operations/azure-hns/copy-tier", "profile": "azure-hns", "lane": "core", - "purpose": "Write an object straight into the Cool access tier", + "purpose": "Copy a blob into another access tier, named in x-ms-access-tier", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "body_base64": "Zmlyc3Q=", - "key": "object-tests/tiers/object.txt", - "op": "put", + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", "tier": "Cool" }, "exchanges": [ @@ -68272,7 +68821,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68280,15 +68829,15 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { @@ -68303,14 +68852,15 @@ "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-request-server-encrypted": "true" + "x-ms-copy-id": "fixture-copy-id", + "x-ms-copy-status": "success" }, "body": { "encoding": "empty" @@ -68328,22 +68878,30 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/copy_status", + "optional": false, + "rule": { + "is": "equal", + "value": "success" + } } ], "refusal": null }, { - "id": "operations/azure-hns/set-tier-unknown", + "id": "operations/azure-hns/copy-source-key-encoded", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse an access tier the service does not have", + "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/set-blob-tier" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "call": { - "key": "object-tests/tiers/object.txt", - "op": "azure.set_tier", - "tier": "Warm" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/a b+c%é?#.txt" }, "exchanges": [ { @@ -68363,7 +68921,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68375,36 +68933,29 @@ } }, { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "tier" - } - }, - { - "at": "/headers/x-ms-access-tier", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "Warm" + "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": 400, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidHeaderValue" + "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": "InvalidHeaderValueFixture error" + "encoding": "empty" } } } @@ -68417,40 +68968,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 400 + "value": "ok" } }, { - "at": "/code", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "InvalidHeaderValue" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure-hns/set-tier-cool", + "id": "operations/azure-hns/copy-sync", "profile": "azure-hns", "lane": "core", - "purpose": "Move an object to the Cool access tier", + "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/set-blob-tier" + "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url" ], "call": { - "key": "object-tests/tiers/object.txt", - "op": "azure.set_tier", - "tier": "Cool" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "sync": true }, "exchanges": [ { @@ -68470,7 +69014,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68482,30 +69026,36 @@ } }, { - "at": "/query/comp", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "tier" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-access-tier", + "at": "/headers/x-ms-requires-sync", "optional": false, "rule": { "is": "equal", - "value": "Cool" + "value": "true" } } ], - "allow_headers": [], + "allow_headers": [ + "x-ms-copy-source-authorization" + ], "allow_query": [], "response": { - "status": 200, + "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" @@ -68523,24 +69073,31 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/copy_status", + "optional": false, + "rule": { + "is": "equal", + "value": "success" + } } ], "refusal": null }, { - "id": "operations/azure-hns/put-internal-error", + "id": "operations/azure-hns/copy-pending", "profile": "azure-hns", "lane": "core", - "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries", + "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/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/copy-blob" ], "origin": "transient", "call": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -68560,7 +69117,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68568,39 +69125,81 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "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": "InternalErrorThe server encountered an internal error. Please retry the request." + "encoding": "empty" } } } ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/copy_status", + "optional": false, + "rule": { + "is": "equal", + "value": "pending" + } }, + { + "at": "/value/copy_id", + "optional": false, + "rule": { + "is": "equal", + "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": [ { "alternatives": [ { @@ -68618,7 +69217,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68626,7 +69225,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" + } + }, + { + "at": "/headers/x-ms-copy-source", + "optional": false, + "rule": { + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { @@ -68639,27 +69246,63 @@ } ], "allow_headers": [ - "content-type" + "x-ms-copy-source-authorization", + "x-ms-copy-source-blob-properties" ], "allow_query": [], "response": { - "status": 500, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "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-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", + "call": { + "copy_id": "fixture-copy-id", + "key": "object-tests/copy/target.txt", + "op": "azure.abort_copy" + }, + "exchanges": [ { "alternatives": [ { @@ -68677,7 +69320,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68685,99 +69328,77 @@ "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 - }, - { - "alternatives": [ - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "PUT" + "value": "" } }, { - "at": "/path", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "copy" } }, { - "at": "/body_base64", + "at": "/query/copyid", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "fixture-copy-id" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-copy-action", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "abort" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 204, "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" } } } - ], - "optional": true - }, + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "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": [ { "alternatives": [ { @@ -68795,7 +69416,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -68803,40 +69424,95 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "x-ms-error-code": "NoPendingCopyOperation" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "data": "NoPendingCopyOperationFixture error" } } } - ], - "optional": true + ] + } + ], + "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": "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": [ { "alternatives": [ { @@ -68846,7 +69522,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -68854,7 +69530,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -68862,39 +69538,36 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "pagelist" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 500, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" } } } - ], - "optional": true + ] } ], "expect": [ @@ -68911,7 +69584,7 @@ "optional": false, "rule": { "is": "equal", - "value": 500 + "value": 409 } }, { @@ -68919,25 +69592,25 @@ "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-if-unmodified-since-past", + "id": "operations/azure-hns/upload-pages-unaligned", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since", + "purpose": "Refuse a page write that does not start on a 512-byte boundary, which an HNS account does not support", "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-page" ], "call": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", - "key": "object-tests/write/object.txt", - "op": "put" + "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", + "key": "object-tests/pages/object.vhd", + "offset": 1, + "op": "azure.upload_pages" }, "exchanges": [ { @@ -68957,7 +69630,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -68965,42 +69638,48 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "page" } }, { - "at": "/headers/if-unmodified-since", + "at": "/headers/x-ms-page-write", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "update" + } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=1-512" } } ], - "allow_headers": [ - "content-type" - ], + "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" } } } @@ -69021,7 +69700,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 400 } }, { @@ -69029,25 +69708,25 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-content-encoding-gzip", + "id": "operations/azure-hns/upload-pages", "profile": "azure-hns", "lane": "core", - "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged", + "purpose": "Write the first page of a page blob, which an HNS account does not support", "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-page" ], "call": { - "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", - "content_encoding": "gzip", - "key": "object-tests/write/object.txt", - "op": "put" + "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", + "key": "object-tests/pages/object.vhd", + "offset": 0, + "op": "azure.upload_pages" }, "exchanges": [ { @@ -69067,7 +69746,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -69075,48 +69754,98 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "page" } }, { - "at": "/headers/x-ms-blob-content-encoding", + "at": "/headers/x-ms-page-write", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "value": "update" + } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=0-511" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 409, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", + "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" + "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture 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": "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": [ + { + "alternatives": [ { "request": [ { @@ -69132,7 +69861,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -69140,7 +69869,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "" } }, { @@ -69148,37 +69877,32 @@ "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "PageBlob" } }, { - "at": "/headers/content-encoding", + "at": "/headers/x-ms-blob-content-length", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "value": "1024" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 409, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", + "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" + "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" } } } @@ -69191,47 +69915,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": 409 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-content-properties", + "id": "operations/azure-hns/append-block-to-block-blob", "profile": "azure-hns", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "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": { - "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" + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -69251,7 +69968,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -69259,72 +69976,83 @@ "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": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-cache-control", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "appendblock" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 409, "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" + "x-ms-error-code": "InvalidBlobType" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidBlobTypeFixture 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": "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": [ + { + "alternatives": [ { "request": [ { @@ -69340,7 +70068,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -69348,69 +70076,40 @@ "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": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-content-disposition", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "value": "appendblock" } }, { - "at": "/headers/cache-control", + "at": "/headers/x-ms-blob-condition-appendpos", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "0" } } ], - "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-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" + "x-ms-error-code": "AppendPositionConditionNotMet" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "AppendPositionConditionNotMetFixture error" } } } @@ -69423,43 +70122,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": 412 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "AppendPositionConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-first-version", + "id": "operations/azure-hns/append-block", "profile": "azure-hns", "lane": "core", - "purpose": "put first 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": { - "body_base64": "djE=", - "key": "object-tests/versions-mtypy4jp/object.txt", - "op": "put" + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -69479,7 +70175,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -69487,37 +70183,34 @@ "optional": false, "rule": { "is": "equal", - "value": "djE=" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "appendblock" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "date": { "from": "now" }, - "etag": "\"fixture-36af044f7dd6\"", + "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-append-offset": "5", + "x-ms-blob-committed-block-count": "2", "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -69534,40 +70227,35 @@ } }, { - "at": "/value/etag", + "at": "/value/append_offset", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-36af044f7dd6\"" + "value": 5 } }, { - "at": "/value/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/put-if-match-current", + "id": "operations/azure-hns/create-append", "profile": "azure-hns", "lane": "core", - "purpose": "put if match current", + "purpose": "Create an empty append 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/put-blob" ], "call": { - "body_base64": "cmVwbGFjZWQ=", - "if_match": "\"fixture-bf139483d631\"", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/append/object.log", + "op": "azure.create_append" }, "exchanges": [ { @@ -69587,7 +70275,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -69595,15 +70283,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-bf139483d631\"" + "value": "" } }, { @@ -69611,29 +70291,24 @@ "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "AppendBlob" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", "date": { "from": "now" }, - "etag": "\"fixture-12045b9dfdc3\"", + "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" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -69648,41 +70323,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-12045b9dfdc3\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } } ], "refusal": null }, { - "id": "operations/azure-hns/put-if-none-match-missing", + "id": "operations/azure-hns/put-leased-if-match-without-lease-id", "profile": "azure-hns", "lane": "core", - "purpose": "put if none match missing", + "purpose": "Refuse a write to 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": { - "body_base64": "ZnJlc2g=", - "if_none_match": "*", - "key": "object-tests/write/fresh.txt", + "body_base64": "c2Vjb25k", + "if_match": "\"fixture-etag\"", + "key": "object-tests/leases/object.txt", "op": "put" }, "exchanges": [ @@ -69703,7 +70359,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/fresh.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -69711,45 +70367,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ZnJlc2g=" + "value": "c2Vjb25k" } }, { - "at": "/headers/if-none-match", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "\"fixture-etag\"" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 412, "headers": { - "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", + "content-type": "application/xml", "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" + "x-ms-error-code": "LeaseIdMissing" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "LeaseIdMissingFixture error" } } } @@ -69762,42 +70413,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5be249955d3d\"" + "value": 412 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "LeaseIdMissing" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-key-1024", + "id": "operations/azure-hns/put-leased-with-lease-id", "profile": "azure-hns", "lane": "core", - "purpose": "put key 1024", + "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": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "body_base64": "c2Vjb25k", + "key": "object-tests/leases/object.txt", + "lease_id": "11111111-2222-3333-4444-555555555555", "op": "put" }, "exchanges": [ @@ -69818,7 +70467,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -69826,7 +70475,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "c2Vjb25k" } }, { @@ -69836,27 +70485,30 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-lease-id", + "optional": false, + "rule": { + "is": "equal", + "value": "11111111-2222-3333-4444-555555555555" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-f5596350d7a5\"", + "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" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -69871,40 +70523,21 @@ "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", + "id": "operations/azure-hns/put-leased-without-lease-id", "profile": "azure-hns", "lane": "core", - "purpose": "put key 1025", + "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": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "body_base64": "c2Vjb25k", + "key": "object-tests/leases/object.txt", "op": "put" }, "exchanges": [ @@ -69925,7 +70558,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -69933,7 +70566,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "c2Vjb25k" } }, { @@ -69945,25 +70578,20 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 412, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-type": "application/xml", "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" + "x-ms-error-code": "LeaseIdMissing" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "LeaseIdMissingFixture error" } } } @@ -69976,43 +70604,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16d1c2f31d98\"" + "value": 412 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "LeaseIdMissing" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-key-under-object", + "id": "operations/azure-hns/lease-break", "profile": "azure-hns", "lane": "core", - "purpose": "put key under object", + "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": { - "body_base64": "MQ==", - "key": "object-tests/order/a/b", - "op": "put" + "action": "break", + "break_period": 0, + "key": "object-tests/leases/object.txt", + "op": "azure.lease" }, "exchanges": [ { @@ -70032,7 +70658,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/order/a/b" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -70040,34 +70666,48 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 202, "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-lease-time": "0" }, "body": { - "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "empty" } } } @@ -70080,41 +70720,25 @@ "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/put-lost-the-race-to-create", + "id": "operations/azure-hns/lease-release", "profile": "azure-hns", "lane": "core", - "purpose": "put lost the race to create", + "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": { - "body_base64": "YW5vdGhlciBvYmplY3Q=", - "if_none_match": "*", - "key": "object-tests/write/object.txt", - "op": "put" + "action": "release", + "key": "object-tests/leases/object.txt", + "lease_id": "11111111-2222-3333-4444-555555555555", + "op": "azure.lease" }, "exchanges": [ { @@ -70134,7 +70758,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -70142,42 +70766,47 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "" } }, { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "lease" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-lease-action", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "release" + } + }, + { + "at": "/headers/x-ms-lease-id", + "optional": false, + "rule": { + "is": "equal", + "value": "11111111-2222-3333-4444-555555555555" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 409, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobAlreadyExists" + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "BlobAlreadyExistsFixture error" + "encoding": "empty" } } } @@ -70190,44 +70819,26 @@ "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" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-md5-mismatch", + "id": "operations/azure-hns/lease-acquire-leased", "profile": "azure-hns", "lane": "core", - "purpose": "put md5 mismatch", + "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": { - "body_base64": "ZGVjbGFyZWQtYm9keQ==", - "checksum": { - "algorithm": "md5", - "value_base64": "eV8yArF8trw9S3cdjGyerw==" - }, - "key": "object-tests/hashes/md5-mismatch.txt", - "op": "put" + "action": "acquire", + "duration": 15, + "key": "object-tests/leases/object.txt", + "op": "azure.lease", + "proposed_lease_id": "66666666-7777-8888-9999-000000000000" }, "exchanges": [ { @@ -70247,7 +70858,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5-mismatch.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -70255,42 +70866,56 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" + "value": "" } }, { - "at": "/headers/content-md5", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "eV8yArF8trw9S3cdjGyerw==" + "value": "lease" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-lease-action", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "Md5Mismatch" + "x-ms-error-code": "LeaseAlreadyPresent" }, "body": { "encoding": "utf8", - "data": "Md5MismatchFixture error" + "data": "LeaseAlreadyPresentFixture error" } } } @@ -70311,7 +70936,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 409 } }, { @@ -70319,27 +70944,26 @@ "optional": false, "rule": { "is": "equal", - "value": "Md5Mismatch" + "value": "LeaseAlreadyPresent" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-metadata-empty-value", + "id": "operations/azure-hns/lease-acquire", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata empty value", + "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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/empty-value.txt", - "metadata": { - "empty": "" - }, - "op": "put" + "action": "acquire", + "duration": 15, + "key": "object-tests/leases/object.txt", + "op": "azure.lease", + "proposed_lease_id": "11111111-2222-3333-4444-555555555555" }, "exchanges": [ { @@ -70359,7 +70983,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -70367,45 +70991,56 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-ms-meta-empty", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "lease" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-lease-action", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "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-ms-lease-id": "11111111-2222-3333-4444-555555555555" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -70422,42 +71057,31 @@ } }, { - "at": "/value/etag", + "at": "/value/lease_id", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-18852ad86043\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "11111111-2222-3333-4444-555555555555" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-metadata-invalid-name", + "id": "operations/azure-hns/put-with-tags", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata invalid name", + "purpose": "Write an object with tags, which an HNS account does not support", "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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/invalid-name.txt", - "metadata": { - "not-valid": "1" - }, - "op": "put" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/tags/object.txt", + "op": "put", + "tags": { + "project": "object-tests" + } }, "exchanges": [ { @@ -70477,7 +71101,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/invalid-name.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -70485,42 +71109,40 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/x-ms-meta-not-valid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-tags", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "project=object-tests" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidMetadata" + "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" + "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" } } } @@ -70541,7 +71163,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 409 } }, { @@ -70549,65 +71171,23 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidMetadata" + "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" } } ], - "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" - } - } - ] + "refusal": null }, { - "id": "operations/azure-hns/put-metadata-replaced", + "id": "operations/azure-hns/get-tags", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata replaced", + "purpose": "Read the tags of an object, which an HNS account does not support", "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-tags" ], "call": { - "body_base64": "Mg==", - "key": "object-tests/metadata/replaced.txt", - "op": "put" + "key": "object-tests/tags/object.txt", + "op": "azure.get_tags" }, "exchanges": [ { @@ -70619,7 +71199,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -70627,7 +71207,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -70635,37 +71215,32 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "tags" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 400, "headers": { - "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", + "content-type": "application/xml", "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" + "x-ms-error-code": "InvalidQueryParameterValue" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidQueryParameterValueFixture error" } } } @@ -70678,47 +71253,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-c24dabf9e117\"" + "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/put-metadata", + "id": "operations/azure-hns/set-tags", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata", + "purpose": "Replace the tags of an object, which an HNS account does not support", "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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/object.txt", - "metadata": { - "name": "value", - "second": "2" - }, - "op": "put" + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": { + "project": "object-tests" + } }, "exchanges": [ { @@ -70738,61 +71308,51 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/headers/x-ms-meta-name", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "value" + "is": "xml", + "value": "projectobject-tests" } }, { - "at": "/headers/x-ms-meta-second", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "tags" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], - "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-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" + "x-ms-error-code": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobApiNotYetSupportedForHierarchicalNamespaceAccountsFixture error" } } } @@ -70805,46 +71365,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4d04dba3441e\"" + "value": 400 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-metadata-identifier-name", + "id": "operations/azure-hns/put-with-tier", "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": "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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/identifier-name.txt", - "metadata": { - "_a1": "1" - }, - "op": "put" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/tiers/object.txt", + "op": "put", + "tier": "Cool" }, "exchanges": [ { @@ -70864,7 +71419,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/identifier-name.txt" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -70872,45 +71427,40 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/x-ms-meta-_a1", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-access-tier", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "Cool" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-4d04dba3441e\"", + "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" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -70925,41 +71475,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-4d04dba3441e\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } } ], "refusal": null }, { - "id": "operations/azure-hns/put-over-snapshotted", + "id": "operations/azure-hns/set-tier-unknown", "profile": "azure-hns", "lane": "core", - "purpose": "put over snapshotted", + "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": { - "body_base64": "dHdv", - "key": "object-tests/snapshots/object.txt", - "op": "put" + "key": "object-tests/tiers/object.txt", + "op": "azure.set_tier", + "tier": "Warm" }, "exchanges": [ { @@ -70979,7 +71510,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -70987,37 +71518,40 @@ "optional": false, "rule": { "is": "equal", - "value": "dHdv" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "tier" + } + }, + { + "at": "/headers/x-ms-access-tier", + "optional": false, + "rule": { + "is": "equal", + "value": "Warm" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 400, "headers": { - "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==", + "content-type": "application/xml", "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" + "x-ms-error-code": "InvalidHeaderValue" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidHeaderValueFixture error" } } } @@ -71030,43 +71564,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-810306ce8bc4\"" + "value": 400 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-overwrite", + "id": "operations/azure-hns/set-tier-cool", "profile": "azure-hns", "lane": "core", - "purpose": "put overwrite", + "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": { - "body_base64": "b3ZlcndyaXR0ZW4=", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/tiers/object.txt", + "op": "azure.set_tier", + "tier": "Cool" }, "exchanges": [ { @@ -71086,7 +71617,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -71094,37 +71625,37 @@ "optional": false, "rule": { "is": "equal", - "value": "b3ZlcndyaXR0ZW4=" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "tier" + } + }, + { + "at": "/headers/x-ms-access-tier", + "optional": false, + "rule": { + "is": "equal", + "value": "Cool" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 200, "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": "" + "encoding": "empty" } } } @@ -71139,40 +71670,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-3da2f422ef3c\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } } ], "refusal": null }, { - "id": "operations/azure-hns/put-precondition-failed", + "id": "operations/azure-hns/put-internal-error", "profile": "azure-hns", "lane": "core", - "purpose": "put precondition failed", + "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": { - "body_base64": "YW5vdGhlciBvYmplY3Q=", - "if_match": "\"fixture-088e5dc109cf\"", + "body_base64": "MDEyMzQ1Njc4OQ==", "key": "object-tests/write/object.txt", "op": "put" }, @@ -71202,15 +71715,65 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/if-match", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "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." + } + } + } + ] + }, + { + "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==" } }, { @@ -71227,69 +71790,82 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 500, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "x-ms-error-code": "InternalError" }, "body": { "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "data": "InternalErrorThe server encountered an internal error. Please retry the request." } } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "error" - } + ], + "optional": true }, { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 412 - } + "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": "/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": [ { @@ -71315,15 +71891,66 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/if-match", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "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 + }, + { + "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==" } }, { @@ -71340,20 +71967,81 @@ ], "allow_query": [], "response": { - "status": 412, + "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 + }, + { + "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": "ConditionNotMetFixture error" + "data": "InternalErrorThe server encountered an internal error. Please retry the request." } } } - ] + ], + "optional": true } ], "expect": [ @@ -71370,7 +72058,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 500 } }, { @@ -71378,23 +72066,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-refused", + "id": "operations/azure-hns/put-if-unmodified-since-past", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object.txt", + "body_base64": "MDEyMzQ1Njc4OQ==", + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -71415,7 +72104,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -71423,7 +72112,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -71433,6 +72122,14 @@ "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": [ @@ -71440,17 +72137,17 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -71471,7 +72168,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 } }, { @@ -71479,23 +72176,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-second-version", + "id": "operations/azure-hns/put-content-encoding-gzip", "profile": "azure-hns", "lane": "core", - "purpose": "put second version", + "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": "djI=", - "key": "object-tests/versions-mtypy4jp/object.txt", + "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", + "content_encoding": "gzip", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -71516,7 +72214,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -71524,7 +72222,7 @@ "optional": false, "rule": { "is": "equal", - "value": "djI=" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { @@ -71534,6 +72232,14 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-blob-content-encoding", + "optional": false, + "rule": { + "is": "equal", + "value": "gzip" + } } ], "allow_headers": [ @@ -71543,11 +72249,76 @@ "response": { "status": 201, "headers": { - "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "etag": "\"fixture-ecff54f15562\"", + "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" @@ -71575,7 +72346,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ecff54f15562\"" + "value": "\"fixture-bf139483d631\"" } }, { @@ -71593,15 +72364,19 @@ "refusal": null }, { - "id": "operations/azure-hns/put-unauthenticated", + "id": "operations/azure-hns/put-content-properties", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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": "bm90aGluZyBpcyBzdG9yZWQ=", + "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" }, @@ -71631,7 +72406,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -71641,6 +72416,38 @@ "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": [ @@ -71648,71 +72455,23 @@ ], "allow_query": [], "response": { - "status": 401, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "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": "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/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": [ { @@ -71728,7 +72487,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -71736,23 +72495,47 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-content-crc64", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "9XBvAwWoR9o=" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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" } } ], @@ -71763,11 +72546,11 @@ "response": { "status": 201, "headers": { - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-bf462a2f52f2\"", + "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" @@ -71795,7 +72578,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf462a2f52f2\"" + "value": "\"fixture-bf139483d631\"" } }, { @@ -71813,20 +72596,16 @@ "refusal": null }, { - "id": "operations/azure-hns/put-with-md5", + "id": "operations/azure-hns/put-first-version", "profile": "azure-hns", "lane": "core", - "purpose": "put with md5", + "purpose": "put first version", "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", + "body_base64": "djE=", + "key": "object-tests/versions-mtypy4jp/object.txt", "op": "put" }, "exchanges": [ @@ -71847,7 +72626,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -71855,15 +72634,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" - } - }, - { - "at": "/headers/content-md5", - "optional": false, - "rule": { - "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "djE=" } }, { @@ -71882,11 +72653,11 @@ "response": { "status": 201, "headers": { - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "date": { "from": "now" }, - "etag": "\"fixture-15ae0acd3480\"", + "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" @@ -71914,7 +72685,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-15ae0acd3480\"" + "value": "\"fixture-36af044f7dd6\"" } }, { @@ -71932,16 +72703,18 @@ "refusal": null }, { - "id": "operations/azure-hns/snapshot", + "id": "operations/azure-hns/put-if-match-current", "profile": "azure-hns", "lane": "core", - "purpose": "snapshot", + "purpose": "put if match current", "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" + "body_base64": "cmVwbGFjZWQ=", + "if_match": "\"fixture-bf139483d631\"", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -71961,7 +72734,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -71969,15 +72742,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cmVwbGFjZWQ=" } }, { - "at": "/query/comp", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "snapshot" + "value": "\"fixture-bf139483d631\"" + } + }, + { + "at": "/headers/x-ms-blob-type", + "optional": false, + "rule": { + "is": "equal", + "value": "BlockBlob" } } ], @@ -71986,17 +72767,20 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", "date": { "from": "now" }, - "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "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": "utf8", - "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + "encoding": "base64", + "data": "" } } } @@ -72009,41 +72793,44 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 409 + "value": "\"fixture-12045b9dfdc3\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/stage-empty", + "id": "operations/azure-hns/put-if-none-match-missing", "profile": "azure-hns", "lane": "core", - "purpose": "stage empty", + "purpose": "put if none match missing", "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" + "body_base64": "ZnJlc2g=", + "if_none_match": "*", + "key": "object-tests/write/fresh.txt", + "op": "put" }, "exchanges": [ { @@ -72063,7 +72850,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/write/fresh.txt" } }, { @@ -72071,23 +72858,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ZnJlc2g=" } }, { - "at": "/query/comp", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "*" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAz" + "value": "BlockBlob" } } ], @@ -72096,17 +72883,20 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", "date": { "from": "now" }, - "x-ms-error-code": "InvalidHeaderValue" + "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": "utf8", - "data": "InvalidHeaderValueFixture error" + "encoding": "base64", + "data": "" } } } @@ -72119,41 +72909,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-5be249955d3d\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidHeaderValue" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/stage-escaped-id", + "id": "operations/azure-hns/put-key-1024", "profile": "azure-hns", "lane": "core", - "purpose": "stage escaped id", + "purpose": "put key 1024", "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" + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "op": "put" }, "exchanges": [ { @@ -72173,7 +72965,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -72181,23 +72973,15 @@ "optional": false, "rule": { "is": "equal", - "value": "b25l" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "MQ==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "+/8=" + "value": "BlockBlob" } } ], @@ -72208,9 +72992,11 @@ "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" @@ -72235,6 +73021,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-f5596350d7a5\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -72248,18 +73042,17 @@ "refusal": null }, { - "id": "operations/azure-hns/stage-id-too-long", + "id": "operations/azure-hns/put-key-1025", "profile": "azure-hns", "lane": "core", - "purpose": "stage id too long", + "purpose": "put key 1025", "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" + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "op": "put" }, "exchanges": [ { @@ -72279,7 +73072,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -72287,23 +73080,15 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "MQ==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=" + "value": "BlockBlob" } } ], @@ -72312,17 +73097,20 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "x-ms-error-code": "OutOfRangeInput" + "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": "utf8", - "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes." + "encoding": "base64", + "data": "" } } } @@ -72335,82 +73123,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": "OutOfRangeInput" - } - } - ], - "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": "block_id_base64" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 + "value": "\"fixture-16d1c2f31d98\"" } }, { - "at": "/code", + "at": "/value/version", "optional": true, "rule": { - "is": "equal", - "value": "OutOfRangeInput" + "is": "one_of", + "values": [ + null, + "" + ] } } - ] + ], + "refusal": null }, { - "id": "operations/azure-hns/stage-mixed-length-id", + "id": "operations/azure-hns/put-key-under-object", "profile": "azure-hns", "lane": "core", - "purpose": "stage mixed length id", + "purpose": "put key under object", "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" + "body_base64": "MQ==", + "key": "object-tests/order/a/b", + "op": "put" }, "exchanges": [ { @@ -72430,7 +73179,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/order/a/b" } }, { @@ -72438,23 +73187,15 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "MQ==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" + "value": "BlockBlob" } } ], @@ -72463,17 +73204,17 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlobOrBlock" + "x-ms-error-code": "BlobNotFound" }, "body": { "encoding": "utf8", - "data": "InvalidBlobOrBlockFixture error" + "data": "BlobNotFoundFixture error" } } } @@ -72494,7 +73235,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -72502,28 +73243,25 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidBlobOrBlock" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/stage-mixed-length-id-code-in-body", + "id": "operations/azure-hns/put-lost-the-race-to-create", "profile": "azure-hns", "lane": "core", - "purpose": "stage mixed length id, with the error code only in the XML body", + "purpose": "put lost the race to create", "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": { - "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", - "body_base64": "dGhpcmQ=", - "key": "object-tests/multipart/staged.bin", - "op": "azure.stage_block" + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_none_match": "*", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -72543,7 +73281,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -72551,23 +73289,23 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/query/comp", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "*" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" + "value": "BlockBlob" } } ], @@ -72576,16 +73314,17 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "BlobAlreadyExists" }, "body": { "encoding": "utf8", - "data": "InvalidBlobOrBlockFixture error" + "data": "BlobAlreadyExistsFixture error" } } } @@ -72606,7 +73345,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 409 } }, { @@ -72614,25 +73353,28 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidBlobOrBlock" + "value": "BlobAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure-hns/stage-unauthenticated", + "id": "operations/azure-hns/put-md5-mismatch", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "put md5 mismatch", "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" + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "md5", + "value_base64": "eV8yArF8trw9S3cdjGyerw==" + }, + "key": "object-tests/hashes/md5-mismatch.txt", + "op": "put" }, "exchanges": [ { @@ -72652,7 +73394,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/hashes/md5-mismatch.txt" } }, { @@ -72660,23 +73402,23 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/query/comp", + "at": "/headers/content-md5", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "eV8yArF8trw9S3cdjGyerw==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAx" + "value": "BlockBlob" } } ], @@ -72685,17 +73427,17 @@ ], "allow_query": [], "response": { - "status": 401, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "x-ms-error-code": "Md5Mismatch" }, "body": { "encoding": "utf8", - "data": "InvalidAuthenticationInfoFixture error" + "data": "Md5MismatchFixture error" } } } @@ -72716,7 +73458,7 @@ "optional": false, "rule": { "is": "equal", - "value": 401 + "value": 400 } }, { @@ -72724,25 +73466,27 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "Md5Mismatch" } } ], "refusal": null }, { - "id": "operations/azure-hns/stage", + "id": "operations/azure-hns/put-metadata-empty-value", "profile": "azure-hns", "lane": "core", - "purpose": "stage", + "purpose": "put metadata empty value", "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" + "body_base64": "MQ==", + "key": "object-tests/metadata/empty-value.txt", + "metadata": { + "empty": "" + }, + "op": "put" }, "exchanges": [ { @@ -72762,7 +73506,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -72770,23 +73514,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-empty", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -72797,9 +73541,11 @@ "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" @@ -72824,6 +73570,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-18852ad86043\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -72837,18 +73591,20 @@ "refusal": null }, { - "id": "operations/azure-hns/stage-id-64-bytes", + "id": "operations/azure-hns/put-metadata-invalid-name", "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": "put metadata invalid name", "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" + "body_base64": "MQ==", + "key": "object-tests/metadata/invalid-name.txt", + "metadata": { + "not-valid": "1" + }, + "op": "put" }, "exchanges": [ { @@ -72868,7 +73624,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/metadata/invalid-name.txt" } }, { @@ -72876,23 +73632,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-not-valid", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "1" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==" + "value": "BlockBlob" } } ], @@ -72901,18 +73657,17 @@ ], "allow_query": [], "response": { - "status": 201, + "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-request-server-encrypted": "true" + "x-ms-error-code": "InvalidMetadata" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidMetadataFixture error" } } } @@ -72925,36 +73680,81 @@ "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": 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-hns/stage-key-question", + "id": "operations/azure-hns/put-metadata-replaced", "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"question?mark.txt\"", + "purpose": "put metadata replaced", "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" + "body_base64": "Mg==", + "key": "object-tests/metadata/replaced.txt", + "op": "put" }, "exchanges": [ { @@ -72974,7 +73774,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -72982,23 +73782,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "Mg==" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -73009,9 +73801,11 @@ "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" @@ -73036,6 +73830,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-c24dabf9e117\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -73049,18 +73851,21 @@ "refusal": null }, { - "id": "operations/azure-hns/stage-key-hash", + "id": "operations/azure-hns/put-metadata", "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"hash#tag.txt\"", + "purpose": "put metadata", "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" + "body_base64": "MQ==", + "key": "object-tests/metadata/object.txt", + "metadata": { + "name": "value", + "second": "2" + }, + "op": "put" }, "exchanges": [ { @@ -73080,7 +73885,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -73088,23 +73893,31 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-name", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "value" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-meta-second", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "2" + } + }, + { + "at": "/headers/x-ms-blob-type", + "optional": false, + "rule": { + "is": "equal", + "value": "BlockBlob" } } ], @@ -73115,9 +73928,11 @@ "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" @@ -73142,6 +73957,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-4d04dba3441e\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -73155,18 +73978,20 @@ "refusal": null }, { - "id": "operations/azure-hns/stage-key-percent", + "id": "operations/azure-hns/put-metadata-identifier-name", "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"percent%20.txt\"", + "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": { - "block_id_base64": "MDAwMDAy", - "body_base64": "c2Vjb25k", - "key": "object-tests/keys/percent%20.txt", - "op": "azure.stage_block" + "body_base64": "MQ==", + "key": "object-tests/metadata/identifier-name.txt", + "metadata": { + "_a1": "1" + }, + "op": "put" }, "exchanges": [ { @@ -73186,7 +74011,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/metadata/identifier-name.txt" } }, { @@ -73194,23 +74019,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-meta-_a1", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "1" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -73221,9 +74046,11 @@ "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" @@ -73248,6 +74075,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-4d04dba3441e\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -73261,18 +74096,17 @@ "refusal": null }, { - "id": "operations/azure-hns/stage-key-plus", + "id": "operations/azure-hns/put-over-snapshotted", "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"plus+plus.txt\"", + "purpose": "put over snapshotted", "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" + "body_base64": "dHdv", + "key": "object-tests/snapshots/object.txt", + "op": "put" }, "exchanges": [ { @@ -73292,7 +74126,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -73300,23 +74134,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "dHdv" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -73327,9 +74153,11 @@ "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" @@ -73354,6 +74182,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-810306ce8bc4\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -73367,18 +74203,17 @@ "refusal": null }, { - "id": "operations/azure-hns/stage-key-space", + "id": "operations/azure-hns/put-overwrite", "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"space name.txt\"", + "purpose": "put overwrite", "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" + "body_base64": "b3ZlcndyaXR0ZW4=", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -73398,7 +74233,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -73406,23 +74241,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "b3ZlcndyaXR0ZW4=" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -73433,9 +74260,11 @@ "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" @@ -73460,6 +74289,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-3da2f422ef3c\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -73473,18 +74310,18 @@ "refusal": null }, { - "id": "operations/azure-hns/stage-key-non-ascii", + "id": "operations/azure-hns/put-precondition-failed", "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"café/雪.txt\"", + "purpose": "put precondition failed", "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" + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -73504,7 +74341,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -73512,23 +74349,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/query/comp", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "\"fixture-088e5dc109cf\"" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -73537,18 +74374,17 @@ ], "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" + "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ConditionNotMetFixture error" } } } @@ -73561,36 +74397,44 @@ "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": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/stage-key-double-slash", + "id": "operations/azure-hns/put-precondition-failed-code-in-body", "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"double//slash.txt\"", + "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" + "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": "MDAwMDAy", - "body_base64": "c2Vjb25k", - "key": "object-tests/keys/double//slash.txt", - "op": "azure.stage_block" + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -73610,7 +74454,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -73618,23 +74462,23 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/query/comp", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "\"fixture-088e5dc109cf\"" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -73643,18 +74487,16 @@ ], "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": "ConditionNotMetFixture error" } } } @@ -73667,36 +74509,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": 412 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/stage-key-trailing-slash", + "id": "operations/azure-hns/put-refused", "profile": "azure-hns", "lane": "core", - "purpose": "stage, 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": { - "block_id_base64": "MDAwMDAy", - "body_base64": "c2Vjb25k", - "key": "object-tests/keys/trailing-slash/", - "op": "azure.stage_block" + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object.txt", + "op": "put" }, "exchanges": [ { @@ -73716,7 +74562,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object.txt" } }, { @@ -73724,23 +74570,15 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "block" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } }, { - "at": "/query/blockid", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "BlockBlob" } } ], @@ -73749,17 +74587,17 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidUri" + "x-ms-error-code": "ContainerNotFound" }, "body": { "encoding": "utf8", - "data": "InvalidUriFixture error" + "data": "ContainerNotFoundFixture error" } } } @@ -73780,7 +74618,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -73788,24 +74626,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidUri" + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-absent", + "id": "operations/azure-hns/put-second-version", "profile": "azure-hns", "lane": "core", - "purpose": "staged absent", + "purpose": "put second version", "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" + "body_base64": "djI=", + "key": "object-tests/versions-mtypy4jp/object.txt", + "op": "put" }, "exchanges": [ { @@ -73817,7 +74655,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -73825,7 +74663,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/absent.bin" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -73833,40 +74671,37 @@ "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "blocklist" + "value": "djI=" } }, { - "at": "/query/blocklisttype", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 404, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -73879,43 +74714,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-ecff54f15562\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "BlobNotFound" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-absent-code-in-body", + "id": "operations/azure-hns/put-unauthenticated", "profile": "azure-hns", "lane": "core", - "purpose": "staged absent, with the error code only in the XML body", + "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", - "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": { - "key": "object-tests/multipart/absent.bin", - "kind": "all", - "op": "azure.list_blocks" + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -73927,7 +74762,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -73935,7 +74770,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/absent.bin" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -73943,39 +74778,34 @@ "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "blocklist" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } }, { - "at": "/query/blocklisttype", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "BlockBlob" } } ], - "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": "InvalidAuthenticationInfo" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -73996,7 +74826,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 401 } }, { @@ -74004,24 +74834,28 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-after-commit", + "id": "operations/azure-hns/put-with-crc64", "profile": "azure-hns", "lane": "core", - "purpose": "staged after commit", + "purpose": "put with crc64", "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" + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "azure_crc64", + "value_base64": "9XBvAwWoR9o=" + }, + "key": "object-tests/hashes/crc64.txt", + "op": "put" }, "exchanges": [ { @@ -74033,7 +74867,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74041,7 +74875,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture/object-tests/hashes/crc64.txt" } }, { @@ -74049,44 +74883,46 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-content-crc64", "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "9XBvAwWoR9o=" } }, { - "at": "/query/blocklisttype", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, - "etag": "\"fixture-8ec031f3abfa\"", + "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -74102,68 +74938,43 @@ } }, { - "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", - "optional": false, - "rule": { - "is": "equal", - "value": "MDAwMDAy" - } - }, - { - "at": "/value/committed/1/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 6 - } - }, - { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 + "value": "\"fixture-bf462a2f52f2\"" } }, { - "at": "/value/uncommitted", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-after-replacement", + "id": "operations/azure-hns/put-with-md5", "profile": "azure-hns", "lane": "core", - "purpose": "staged after replacement", + "purpose": "put with md5", "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" + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "md5", + "value_base64": "N6YZkbg+Lyfxtskwn8iRCg==" + }, + "key": "object-tests/hashes/md5.txt", + "op": "put" }, "exchanges": [ { @@ -74175,7 +74986,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74183,7 +74994,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/hashes/md5.txt" } }, { @@ -74191,44 +75002,46 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/query/comp", + "at": "/headers/content-md5", "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { - "at": "/query/blocklisttype", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, - "etag": "\"fixture-9c5e55ff559c\"", + "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "MDAwMDAx5" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -74244,52 +75057,38 @@ } }, { - "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 - } - }, - { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 1 + "value": "\"fixture-15ae0acd3480\"" } }, { - "at": "/value/uncommitted", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-after-whole-write", + "id": "operations/azure-hns/snapshot", "profile": "azure-hns", "lane": "core", - "purpose": "staged after whole write", + "purpose": "snapshot", "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" + "key": "object-tests/snapshots/object.txt", + "op": "azure.snapshot" }, "exchanges": [ { @@ -74301,7 +75100,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74309,7 +75108,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/whole.bin" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -74325,36 +75124,27 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" - } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" + "value": "snapshot" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 409, "headers": { "content-type": "application/xml", "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" + "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" }, "body": { "encoding": "utf8", - "data": "" - }, - "framing": "chunked" + "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error" + } } } ] @@ -74366,40 +75156,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/committed", + "at": "/status", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 409 } }, { - "at": "/value/uncommitted", + "at": "/code", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts" } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-committed-empty", + "id": "operations/azure-hns/stage-empty", "profile": "azure-hns", "lane": "core", - "purpose": "staged committed empty", + "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", - "kind": "committed", - "op": "azure.list_blocks" + "op": "azure.stage_block" }, "exchanges": [ { @@ -74411,7 +75202,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74435,35 +75226,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "committed" + "value": "MDAwMDAz" } } ], - "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": "InvalidHeaderValue" }, "body": { "encoding": "utf8", - "data": "" - }, - "framing": "chunked" + "data": "InvalidHeaderValueFixture error" + } } } ] @@ -74475,40 +75266,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/committed", + "at": "/status", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 400 } }, { - "at": "/value/uncommitted", + "at": "/code", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-committed-nothing", + "id": "operations/azure-hns/stage-escaped-id", "profile": "azure-hns", "lane": "core", - "purpose": "staged committed nothing", + "purpose": "stage escaped id", "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" + "block_id_base64": "+/8=", + "body_base64": "b25l", + "key": "object-tests/multipart/escaped.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -74520,7 +75312,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74528,7 +75320,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { @@ -74536,7 +75328,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "b25l" } }, { @@ -74544,36 +75336,36 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "+/8=" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -74589,36 +75381,32 @@ } }, { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 0 - } - }, - { - "at": "/value/uncommitted", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-escaped-id", + "id": "operations/azure-hns/stage-id-too-long", "profile": "azure-hns", "lane": "core", - "purpose": "staged escaped id", + "purpose": "stage id too long", "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" + "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -74630,7 +75418,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74638,7 +75426,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -74646,7 +75434,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "dGhpcmQ=" } }, { @@ -74654,35 +75442,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=" } } ], - "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": "OutOfRangeInput" }, "body": { "encoding": "utf8", - "data": "+/8=3" - }, - "framing": "chunked" + "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes." + } } } ] @@ -74694,56 +75482,82 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/committed", + "at": "/status", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 400 } }, { - "at": "/value/uncommitted/0/id_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "+/8=" + "value": "OutOfRangeInput" } - }, + } + ], + "refusal": [ { - "at": "/value/uncommitted/0/size", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": 3 + "value": "refused" } }, { - "at": "/value/uncommitted", + "at": "/kind", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "matches", + "pattern": ".+" + } + }, + { + "at": "/parameter", + "optional": false, + "rule": { + "is": "equal", + "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-hns/staged-replacement", + "id": "operations/azure-hns/stage-mixed-length-id", "profile": "azure-hns", "lane": "core", - "purpose": "staged replacement", + "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/pending.bin", - "kind": "all", - "op": "azure.list_blocks" + "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -74755,7 +75569,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74763,7 +75577,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -74771,7 +75585,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "dGhpcmQ=" } }, { @@ -74779,36 +75593,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "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-error-code": "InvalidBlobOrBlock" }, "body": { "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6MDAwMDAx5" - }, - "framing": "chunked" + "data": "InvalidBlobOrBlockFixture error" + } } } ] @@ -74820,88 +75633,44 @@ "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 - } - }, - { - "at": "/value/committed/1/id_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDAwMDAy" - } - }, - { - "at": "/value/committed/1/size", - "optional": false, - "rule": { - "is": "equal", - "value": 6 - } - }, - { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 + "value": "error" } }, { - "at": "/value/uncommitted/0/id_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAx" + "value": 400 } }, { - "at": "/value/uncommitted/0/size", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": 5 - } - }, - { - "at": "/value/uncommitted", - "optional": false, - "rule": { - "is": "array_length", - "value": 1 + "value": "InvalidBlobOrBlock" } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-uncommitted-only", + "id": "operations/azure-hns/stage-mixed-length-id-code-in-body", "profile": "azure-hns", "lane": "core", - "purpose": "staged uncommitted only", + "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": { + "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", + "body_base64": "dGhpcmQ=", "key": "object-tests/multipart/staged.bin", - "kind": "all", - "op": "azure.list_blocks" + "op": "azure.stage_block" }, "exchanges": [ { @@ -74913,7 +75682,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -74929,7 +75698,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "dGhpcmQ=" } }, { @@ -74937,35 +75706,34 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" } } ], - "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": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "data": "InvalidBlobOrBlockFixture error" + } } } ] @@ -74977,72 +75745,41 @@ "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 + "value": "error" } }, { - "at": "/value/uncommitted/1/id_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": 400 } }, { - "at": "/value/uncommitted/1/size", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": 6 - } - }, - { - "at": "/value/uncommitted", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 + "value": "InvalidBlobOrBlock" } } ], "refusal": null }, { - "id": "operations/azure-hns/staged-uncommitted", + "id": "operations/azure-hns/stage-unauthenticated", "profile": "azure-hns", "lane": "core", - "purpose": "staged uncommitted", + "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", - "kind": "uncommitted", - "op": "azure.list_blocks" + "op": "azure.stage_block" }, "exchanges": [ { @@ -75054,7 +75791,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -75070,7 +75807,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { @@ -75078,35 +75815,35 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "block" } }, { - "at": "/query/blocklisttype", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "uncommitted" + "value": "MDAwMDAx" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 401, "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": "InvalidAuthenticationInfo" }, "body": { "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "data": "InvalidAuthenticationInfoFixture error" + } } } ] @@ -75118,72 +75855,41 @@ "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 + "value": "error" } }, { - "at": "/value/uncommitted/1/id_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": 401 } }, { - "at": "/value/uncommitted/1/size", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": 6 - } - }, - { - "at": "/value/uncommitted", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/s3/abort-after-commit", - "profile": "s3", + "id": "operations/azure-hns/stage", + "profile": "azure-hns", "lane": "core", - "purpose": "abort after commit", + "purpose": "stage", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/object.bin", - "op": "s3.abort_multipart", - "upload_id": "fixture-upload+/276ca18046f9=" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -75195,7 +75901,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -75203,7 +75909,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -75211,15 +75917,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -75228,12 +75942,14 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 201, "headers": { "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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", @@ -75252,22 +75968,34 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/s3/abort-unknown-upload", - "profile": "s3", + "id": "operations/azure-hns/stage-id-64-bytes", + "profile": "azure-hns", "lane": "core", - "purpose": "abort unknown upload", + "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": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/object.bin", - "op": "s3.abort_multipart", - "upload_id": "fixture-upload+/4d0d5ccc4993=" + "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==", + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -75279,7 +76007,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -75287,7 +76015,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -75295,15 +76023,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4d0d5ccc4993=" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==" } } ], @@ -75312,18 +76048,19 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 201, "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": "utf8", - "data": "\nNoSuchUploadFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -75335,40 +76072,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 404 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "NoSuchUpload" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/abort", - "profile": "s3", + "id": "operations/azure-hns/stage-key-question", + "profile": "azure-hns", "lane": "core", - "purpose": "abort", + "purpose": "stage, with the key \"question?mark.txt\"", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/aborted.bin", - "op": "s3.abort_multipart", - "upload_id": "fixture-upload+/f85cf0cd3a3f=" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/question?mark.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -75380,7 +76113,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -75388,7 +76121,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/aborted.bin" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -75396,15 +76129,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "c2Vjb25k" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/f85cf0cd3a3f=" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -75413,12 +76154,14 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 201, "headers": { "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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", @@ -75437,28 +76180,34 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/s3/commit-after-abort", - "profile": "s3", + "id": "operations/azure-hns/stage-key-hash", + "profile": "azure-hns", "lane": "core", - "purpose": "commit after abort", + "purpose": "stage, with the key \"hash#tag.txt\"", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/aborted.bin", - "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-db71b2c0257c\"", - "number": 1 - } - ], - "upload_id": "fixture-upload+/f85cf0cd3a3f=" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/hash#tag.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -75470,7 +76219,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -75478,77 +76227,31 @@ "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" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, - "body": { - "encoding": "utf8", - "data": "\nNoSuchUploadFixture error" - }, - "framing": "chunked" - } - }, - { - "request": [ { - "at": "/method", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "c2Vjb25k" } }, { - "at": "/path", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/aborted.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-db71b2c0257c\"1" + "value": "block" } }, { - "at": "/query/uploadId", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/f85cf0cd3a3f=" + "value": "MDAwMDAy" } } ], @@ -75557,18 +76260,19 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 201, "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": "utf8", - "data": "\nNoSuchUploadFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -75580,47 +76284,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 404 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "NoSuchUpload" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/commit-lost-the-race-to-create", - "profile": "s3", + "id": "operations/azure-hns/stage-key-percent", + "profile": "azure-hns", "lane": "core", - "purpose": "commit lost the race to create", + "purpose": "stage, with the key \"percent%20.txt\"", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "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=" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/percent%20.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -75632,7 +76325,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -75640,31 +76333,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-cd3c4834c1cd\"" + "is": "equal", + "value": "c2Vjb25k" } }, { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "block" } }, { - "at": "/query/uploadId", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "MDAwMDAy" } } ], @@ -75673,20 +76366,64 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "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": "utf8", - "data": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "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-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": [ + { + "alternatives": [ { "request": [ { @@ -75694,7 +76431,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -75702,31 +76439,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-cd3c4834c1cd\"1" + "is": "equal", + "value": "c2Vjb25k" } }, { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "block" } }, { - "at": "/query/uploadId", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "MDAwMDAy" } } ], @@ -75735,18 +76472,19 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "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": "utf8", - "data": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -75758,48 +76496,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 412 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "PreconditionFailed" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/commit-conditional-conflict", - "profile": "s3", + "id": "operations/azure-hns/stage-key-space", + "profile": "azure-hns", "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": "stage, with the key \"space name.txt\"", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_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=" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/space name.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -75811,7 +76537,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -75819,31 +76545,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/keys/space name.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-cd3c4834c1cd\"" + "is": "equal", + "value": "c2Vjb25k" } }, { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "block" } }, { - "at": "/query/uploadId", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "MDAwMDAy" } } ], @@ -75852,20 +76578,64 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 201, "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": "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" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "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-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": [ + { + "alternatives": [ { "request": [ { @@ -75873,7 +76643,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -75881,31 +76651,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-cd3c4834c1cd\"1" + "is": "equal", + "value": "c2Vjb25k" } }, { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "block" } }, { - "at": "/query/uploadId", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "MDAwMDAy" } } ], @@ -75914,18 +76684,19 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 201, "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": "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" + "encoding": "base64", + "data": "" + } } } ] @@ -75937,41 +76708,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": 409 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "ConditionalRequestConflict" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/commit-nothing", - "profile": "s3", + "id": "operations/azure-hns/stage-key-double-slash", + "profile": "azure-hns", "lane": "core", - "purpose": "commit nothing", + "purpose": "stage, with the key \"double//slash.txt\"", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/guarded.bin", - "op": "s3.complete_multipart", - "parts": [], - "upload_id": "fixture-upload+/9cd6f716dbf9=" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/double//slash.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -75983,7 +76749,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -75991,77 +76757,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 400, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, - "body": { - "encoding": "utf8", - "data": "\nMalformedXMLFixture error" - }, - "framing": "chunked" - } - }, - { - "request": [ { - "at": "/method", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "c2Vjb25k" } }, { - "at": "/path", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "" + "value": "block" } }, { - "at": "/query/uploadId", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "MDAwMDAy" } } ], @@ -76070,20 +76790,64 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 201, "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": "utf8", - "data": "\nMalformedXMLFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "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-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": [ + { + "alternatives": [ { "request": [ { @@ -76091,7 +76855,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -76099,23 +76863,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "c2Vjb25k" } }, { - "at": "/body_base64", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -76129,13 +76901,13 @@ "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "InvalidUri" }, "body": { "encoding": "utf8", - "data": "\nMalformedXMLFixture error" - }, - "framing": "chunked" + "data": "InvalidUriFixture error" + } } } ] @@ -76161,83 +76933,31 @@ { "at": "/code", "optional": false, - "rule": { - "is": "one_of", - "values": [ - "MalformedXML", - "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": "parts" - } - }, - { - "at": "/status", - "optional": true, "rule": { "is": "equal", - "value": 400 - } - }, - { - "at": "/code", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - "MalformedXML", - "InvalidRequest" - ] + "value": "InvalidUri" } } - ] + ], + "refusal": null }, { - "id": "operations/s3/commit-out-of-order", - "profile": "s3", + "id": "operations/azure-hns/stage-from-url", + "profile": "azure-hns", "lane": "core", - "purpose": "commit out of order", + "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": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-block-from-url" ], "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=" + "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": [ { @@ -76249,7 +76969,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -76257,97 +76977,69 @@ "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/multipart/staged.bin" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "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" + "value": "" } }, - "body": { - "encoding": "utf8", - "data": "\nInvalidPartOrderFixture error" - }, - "framing": "chunked" - } - }, - { - "request": [ { - "at": "/method", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "block" } }, { - "at": "/path", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "MDAwMDAy" } }, { - "at": "/body_text", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-32b70ae425ac\"2\"fixture-6d60d5bbaa47\"1" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/query/uploadId", + "at": "/headers/x-ms-source-range", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "bytes=0-2" } } ], "allow_headers": [ - "content-type" + "content-type", + "x-ms-copy-source-authorization" ], "allow_query": [], "response": { - "status": 400, + "status": 201, "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": "utf8", - "data": "\nInvalidPartOrderFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -76359,91 +77051,35 @@ "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 + "value": "ok" } }, { - "at": "/code", + "at": "/value/etag", "optional": true, "rule": { - "is": "equal", - "value": "InvalidPartOrder" + "is": "one_of", + "values": [ + null, + "" + ] } } - ] + ], + "refusal": null }, { - "id": "operations/s3/commit-part-too-small", - "profile": "s3", + "id": "operations/azure-hns/staged-absent", + "profile": "azure-hns", "lane": "core", - "purpose": "commit part too small", + "purpose": "staged absent", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "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=" + "key": "object-tests/multipart/absent.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -76455,7 +77091,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -76463,97 +77099,49 @@ "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\"" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/cd2fdba21d3f=" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 400, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" + "value": "/fixture/object-tests/multipart/absent.bin" } }, - "body": { - "encoding": "utf8", - "data": "\nEntityTooSmallFixture error" - }, - "framing": "chunked" - } - }, - { - "request": [ { - "at": "/method", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "" } }, { - "at": "/path", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/small.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-7bce379c0d8f\"1\"fixture-32b70ae425ac\"2" + "value": "blocklist" } }, { - "at": "/query/uploadId", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/cd2fdba21d3f=" + "value": "all" } } ], - "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": "BlobNotFound" }, "body": { "encoding": "utf8", - "data": "\nEntityTooSmallFixture error" - }, - "framing": "chunked" + "data": "BlobNotFoundFixture error" + } } } ] @@ -76573,7 +77161,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -76581,31 +77169,27 @@ "optional": false, "rule": { "is": "equal", - "value": "EntityTooSmall" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/s3/commit-precondition-failed", - "profile": "s3", + "id": "operations/azure-hns/staged-absent-code-in-body", + "profile": "azure-hns", "lane": "core", - "purpose": "commit precondition failed", + "purpose": "staged absent, with the error code only in the XML body", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "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-db71b2c0257c\"", - "key": "object-tests/multipart/guarded.bin", - "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-cd3c4834c1cd\"", - "number": 1 - } - ], - "upload_id": "fixture-upload+/9cd6f716dbf9=" + "key": "object-tests/multipart/absent.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -76617,7 +77201,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -76625,40 +77209,38 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/multipart/absent.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-cd3c4834c1cd\"" + "is": "equal", + "value": "" } }, { - "at": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "blocklist" } }, { - "at": "/query/uploadId", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -76667,11 +77249,57 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "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/staged-after-commit", + "profile": "azure-hns", + "lane": "core", + "purpose": "staged after commit", + "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" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -76679,7 +77307,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -76687,49 +77315,50 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-cd3c4834c1cd\"1" + "is": "equal", + "value": "" } }, { - "at": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "blocklist" } }, { - "at": "/query/uploadId", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/9cd6f716dbf9=" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "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" }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "MDAwMDAx5MDAwMDAy6" }, "framing": "chunked" } @@ -76743,46 +77372,72 @@ "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": "PreconditionFailed" + "value": 5 + } + }, + { + "at": "/value/committed/1/id_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" + } + }, + { + "at": "/value/committed/1/size", + "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 } } ], "refusal": null }, { - "id": "operations/s3/commit-single-small-part", - "profile": "s3", + "id": "operations/azure-hns/staged-after-replacement", + "profile": "azure-hns", "lane": "core", - "purpose": "commit single small part", + "purpose": "staged after replacement", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/single.bin", - "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-3841a4d594c0\"", - "number": 1 - } - ], - "upload_id": "fixture-upload+/2b2c71a6ce04=" + "key": "object-tests/multipart/replaced.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -76794,7 +77449,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -76802,29 +77457,35 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/single.bin" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-3841a4d594c0\"" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" + } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -76833,15 +77494,80 @@ "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" + "data": "MDAwMDAx5" }, "framing": "chunked" } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "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 + } + }, + { + "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-hns/staged-after-whole-write", + "profile": "azure-hns", + "lane": "core", + "purpose": "staged after whole write", + "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" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -76849,7 +77575,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -76857,29 +77583,35 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/single.bin" + "value": "/fixture/object-tests/multipart/whole.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-3841a4d594c0\"1" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" + } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -76888,11 +77620,13 @@ "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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" }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" + "data": "" }, "framing": "chunked" } @@ -76910,46 +77644,36 @@ } }, { - "at": "/value/etag", + "at": "/value/committed", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-69ebdafc497f\"" + "is": "array_length", + "value": 0 } }, { - "at": "/value/version", - "optional": true, + "at": "/value/uncommitted", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/s3/commit-object-size-mismatch", - "profile": "s3", + "id": "operations/azure-hns/staged-committed-empty", + "profile": "azure-hns", "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": "staged committed empty", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "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=" + "key": "object-tests/multipart/staged.bin", + "kind": "committed", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -76961,7 +77685,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -76969,53 +77693,100 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-3841a4d594c0\"" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "4" + "value": "committed" } } ], - "allow_headers": [ - "content-type" - ], + "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": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" + "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-nothing", + "profile": "azure-hns", + "lane": "core", + "purpose": "staged committed nothing", + "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" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -77023,7 +77794,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -77031,49 +77802,50 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-3841a4d594c0\"1" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "4" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { "content-type": "application/xml", "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": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" + "data": "" }, "framing": "chunked" } @@ -77087,47 +77859,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": "InvalidRequest" + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/s3/commit-object-size", - "profile": "s3", + "id": "operations/azure-hns/staged-escaped-id", + "profile": "azure-hns", "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": "staged escaped id", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "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=" + "key": "object-tests/multipart/escaped.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -77139,7 +77904,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -77147,37 +77912,35 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/commit-object-size.bin" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-3841a4d594c0\"" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "3" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -77186,15 +77949,79 @@ "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" + "data": "+/8=3" }, "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/0/id_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "+/8=" + } + }, + { + "at": "/value/uncommitted/0/size", + "optional": false, + "rule": { + "is": "equal", + "value": 3 + } + }, + { + "at": "/value/uncommitted", + "optional": false, + "rule": { + "is": "array_length", + "value": 1 + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/staged-replacement", + "profile": "azure-hns", + "lane": "core", + "purpose": "staged replacement", + "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" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -77202,7 +78029,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -77210,37 +78037,35 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/commit-object-size.bin" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-3841a4d594c0\"1" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "3" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -77249,11 +78074,13 @@ "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" + "data": "MDAwMDAx5MDAwMDAy6MDAwMDAx5" }, "framing": "chunked" } @@ -77271,45 +78098,84 @@ } }, { - "at": "/value/etag", + "at": "/value/committed/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-69ebdafc497f\"" + "value": "MDAwMDAx" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/committed/0/size", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": 5 + } + }, + { + "at": "/value/committed/1/id_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" + } + }, + { + "at": "/value/committed/1/size", + "optional": false, + "rule": { + "is": "equal", + "value": 6 + } + }, + { + "at": "/value/committed", + "optional": false, + "rule": { + "is": "array_length", + "value": 2 + } + }, + { + "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", + "optional": false, + "rule": { + "is": "array_length", + "value": 1 } } ], "refusal": null }, { - "id": "operations/s3/commit-one-empty-part", - "profile": "s3", + "id": "operations/azure-hns/staged-uncommitted-only", + "profile": "azure-hns", "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": "staged uncommitted only", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/multipart/empty.bin", - "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-3841a4d594c0\"", - "number": 1 - } - ], - "upload_id": "fixture-upload+/2b2c71a6ce04=" + "key": "object-tests/multipart/staged.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -77321,7 +78187,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -77329,29 +78195,35 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-3841a4d594c0\"" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" + } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -77360,15 +78232,95 @@ "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" + "data": "MDAwMDAx5MDAwMDAy6" }, "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/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/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": [ + { + "alternatives": [ { "request": [ { @@ -77376,7 +78328,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -77384,29 +78336,35 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-3841a4d594c0\"1" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/2b2c71a6ce04=" + "value": "blocklist" + } + }, + { + "at": "/query/blocklisttype", + "optional": false, + "rule": { + "is": "equal", + "value": "uncommitted" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -77415,11 +78373,12 @@ "date": { "from": "now" }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" + "data": "MDAwMDAx5MDAwMDAy6" }, "framing": "chunked" } @@ -77437,45 +78396,68 @@ } }, { - "at": "/value/etag", + "at": "/value/committed", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/uncommitted/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-69ebdafc497f\"" + "value": "MDAwMDAx" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/uncommitted/0/size", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/commit-subset", + "id": "operations/s3/abort-after-commit", "profile": "s3", "lane": "core", - "purpose": "commit subset", + "purpose": "abort after 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-5945c592bad7\"", - "number": 1 - } - ], - "upload_id": "fixture-upload+/6ba3c5e480a2=" + "key": "object-tests/multipart/object.bin", + "op": "s3.abort_multipart", + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -77487,7 +78469,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -77495,15 +78477,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-5945c592bad7\"" + "is": "equal", + "value": "" } }, { @@ -77511,7 +78493,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/6ba3c5e480a2=" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -77520,21 +78502,50 @@ ], "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "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": [ + { + "alternatives": [ { "request": [ { @@ -77542,7 +78553,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -77550,15 +78561,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-5945c592bad7\"1" + "is": "equal", + "value": "" } }, { @@ -77566,7 +78577,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/6ba3c5e480a2=" + "value": "fixture-upload+/4d0d5ccc4993=" } } ], @@ -77575,17 +78586,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/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT" + "data": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -77599,53 +78609,130 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8631a8b6edf7\"" + "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/commit-unstaged-part", + "id": "operations/s3/abort", "profile": "s3", "lane": "core", - "purpose": "commit unstaged part", + "purpose": "abort", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", + "key": "object-tests/multipart/aborted.bin", + "op": "s3.abort_multipart", + "upload_id": "fixture-upload+/f85cf0cd3a3f=" + }, + "exchanges": [ + { + "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": "ok" + } + } + ], + "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-6d60d5bbaa47\"", - "number": 1 - }, { "etag": "\"fixture-db71b2c0257c\"", - "number": 3 + "number": 1 } ], - "upload_id": "fixture-upload+/276ca18046f9=" + "upload_id": "fixture-upload+/f85cf0cd3a3f=" }, "exchanges": [ { @@ -77665,7 +78752,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/aborted.bin" } }, { @@ -77673,7 +78760,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"3\"fixture-db71b2c0257c\"" + "value": "1\"fixture-db71b2c0257c\"" } }, { @@ -77681,7 +78768,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/f85cf0cd3a3f=" } } ], @@ -77690,7 +78777,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -77699,7 +78786,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidPartFixture error" + "data": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -77719,7 +78806,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/aborted.bin" } }, { @@ -77727,7 +78814,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-db71b2c0257c\"3" + "value": "\"fixture-db71b2c0257c\"1" } }, { @@ -77735,7 +78822,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/f85cf0cd3a3f=" } } ], @@ -77744,7 +78831,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -77753,7 +78840,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidPartFixture error" + "data": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -77775,7 +78862,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -77783,34 +78870,31 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidPart" + "value": "NoSuchUpload" } } ], "refusal": null }, { - "id": "operations/s3/commit-wrong-etag", + "id": "operations/s3/commit-lost-the-race-to-create", "profile": "s3", "lane": "core", - "purpose": "commit wrong etag", + "purpose": "commit lost the race to create", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", + "if_none_match": "*", + "key": "object-tests/multipart/guarded.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-db71b2c0257c\"", + "etag": "\"fixture-cd3c4834c1cd\"", "number": 1 - }, - { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 } ], - "upload_id": "fixture-upload+/276ca18046f9=" + "upload_id": "fixture-upload+/9cd6f716dbf9=" }, "exchanges": [ { @@ -77830,7 +78914,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -77838,7 +78922,15 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-db71b2c0257c\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-cd3c4834c1cd\"" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -77846,7 +78938,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -77855,7 +78947,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -77864,7 +78956,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidPartFixture error" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } @@ -77884,7 +78976,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -77892,7 +78984,15 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-db71b2c0257c\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-cd3c4834c1cd\"1" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -77900,7 +79000,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -77909,7 +79009,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -77918,7 +79018,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidPartFixture error" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } @@ -77940,7 +79040,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 412 } }, { @@ -77948,34 +79048,32 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidPart" + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3/commit", + "id": "operations/s3/commit-conditional-conflict", "profile": "s3", "lane": "core", - "purpose": "commit", + "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": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], + "origin": "transient", "call": { - "key": "object-tests/multipart/object.bin", + "if_none_match": "*", + "key": "object-tests/multipart/guarded.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-cd3c4834c1cd\"", "number": 1 - }, - { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 } ], - "upload_id": "fixture-upload+/276ca18046f9=" + "upload_id": "fixture-upload+/9cd6f716dbf9=" }, "exchanges": [ { @@ -77995,7 +79093,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -78003,7 +79101,15 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-cd3c4834c1cd\"" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -78011,7 +79117,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -78020,17 +79126,16 @@ ], "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "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" } @@ -78050,7 +79155,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -78058,7 +79163,15 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-cd3c4834c1cd\"1" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -78066,7 +79179,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -78075,17 +79188,16 @@ ], "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "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" } @@ -78099,56 +79211,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ae1b6d1d32ce\"" + "value": 409 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "ConditionalRequestConflict" } } ], "refusal": null }, { - "id": "operations/s3/commit-200-internal-error", + "id": "operations/s3/commit-nothing", "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", + "purpose": "commit nothing", "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" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "origin": "transient", "call": { - "key": "object-tests/multipart/object.bin", + "key": "object-tests/multipart/guarded.bin", "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-6d60d5bbaa47\"", - "number": 1 - }, - { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 - } - ], - "upload_id": "fixture-upload+/276ca18046f9=" + "parts": [], + "upload_id": "fixture-upload+/9cd6f716dbf9=" }, "exchanges": [ { @@ -78168,7 +79265,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -78176,7 +79273,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "" } }, { @@ -78184,7 +79281,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -78193,7 +79290,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -78202,7 +79299,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nMalformedXMLFixture error" }, "framing": "chunked" } @@ -78222,7 +79319,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -78230,7 +79327,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "" } }, { @@ -78238,7 +79335,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -78247,7 +79344,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -78256,15 +79353,11 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nMalformedXMLFixture error" }, "framing": "chunked" } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -78280,23 +79373,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { - "at": "/body_text", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "is": "equal", + "value": "fixture-upload+/9cd6f716dbf9=" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "" } } ], @@ -78305,7 +79398,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -78314,11 +79407,115 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nMalformedXMLFixture 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": "one_of", + "values": [ + "MalformedXML", + "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": "parts" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + "MalformedXML", + "InvalidRequest" + ] + } + } + ] + }, + { + "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": [ + { + "alternatives": [ { "request": [ { @@ -78342,7 +79539,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "2\"fixture-32b70ae425ac\"1\"fixture-6d60d5bbaa47\"" } }, { @@ -78359,7 +79556,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -78368,16 +79565,11 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nInvalidPartOrderFixture error" }, "framing": "chunked" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -78401,7 +79593,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "\"fixture-32b70ae425ac\"2\"fixture-6d60d5bbaa47\"1" } }, { @@ -78418,7 +79610,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -78427,11 +79619,109 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "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": "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": [ { "request": [ { @@ -78447,7 +79737,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/small.bin" } }, { @@ -78455,7 +79745,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "1\"fixture-7bce379c0d8f\"2\"fixture-32b70ae425ac\"" } }, { @@ -78463,7 +79753,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/cd2fdba21d3f=" } } ], @@ -78472,7 +79762,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -78481,16 +79771,11 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nEntityTooSmallFixture error" }, "framing": "chunked" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -78506,7 +79791,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/small.bin" } }, { @@ -78514,7 +79799,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "\"fixture-7bce379c0d8f\"1\"fixture-32b70ae425ac\"2" } }, { @@ -78522,7 +79807,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/cd2fdba21d3f=" } } ], @@ -78531,7 +79816,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -78540,11 +79825,65 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nEntityTooSmallFixture 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": "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": [ { "request": [ { @@ -78560,7 +79899,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -78568,66 +79907,15 @@ "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 - }, - { - "alternatives": [ - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "POST" + "value": "1\"fixture-cd3c4834c1cd\"" } }, { - "at": "/path", + "at": "/headers/if-match", "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-db71b2c0257c\"" } }, { @@ -78635,7 +79923,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -78644,7 +79932,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -78653,7 +79941,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } @@ -78673,7 +79961,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/guarded.bin" } }, { @@ -78681,7 +79969,15 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-cd3c4834c1cd\"1" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" } }, { @@ -78689,7 +79985,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/9cd6f716dbf9=" } } ], @@ -78698,7 +79994,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -78707,14 +80003,62 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } } - ], - "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": "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": [ { @@ -78732,7 +80076,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/single.bin" } }, { @@ -78740,7 +80084,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-3841a4d594c0\"" } }, { @@ -78748,7 +80092,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/2b2c71a6ce04=" } } ], @@ -78762,11 +80106,12 @@ "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } @@ -78786,7 +80131,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/single.bin" } }, { @@ -78794,7 +80139,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-3841a4d594c0\"1" } }, { @@ -78802,7 +80147,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/2b2c71a6ce04=" } } ], @@ -78816,17 +80161,17 @@ "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": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -78835,39 +80180,50 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/code", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "\"fixture-69ebdafc497f\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/complete-multipart-200-error", + "id": "operations/s3/commit-object-size-mismatch", "profile": "s3", "lane": "core", - "purpose": "complete multipart 200 error", + "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_CompleteMultipartUpload.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "origin": "transient", "call": { - "key": "object", + "key": "object-tests/multipart/commit-object-size-mismatch.bin", + "object_size": 4, "op": "s3.complete_multipart", "parts": [ { - "etag": "\"part\"", + "etag": "\"fixture-3841a4d594c0\"", "number": 1 } ], - "upload_id": "upload+/=" + "upload_id": "fixture-upload+/2b2c71a6ce04=" }, "exchanges": [ { @@ -78887,7 +80243,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin" + } + }, + { + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "1\"fixture-3841a4d594c0\"" } }, { @@ -78895,15 +80259,15 @@ "optional": false, "rule": { "is": "equal", - "value": "upload+/=" + "value": "fixture-upload+/2b2c71a6ce04=" } }, { - "at": "/body_text", + "at": "/headers/x-amz-mp-object-size", "optional": false, "rule": { - "is": "xml", - "value": "1\"part\"" + "is": "equal", + "value": "4" } } ], @@ -78912,19 +80276,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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=" + "encoding": "utf8", + "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" }, "framing": "chunked" } @@ -78944,7 +80305,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin" + } + }, + { + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-3841a4d594c0\"1" } }, { @@ -78952,15 +80321,15 @@ "optional": false, "rule": { "is": "equal", - "value": "upload+/=" + "value": "fixture-upload+/2b2c71a6ce04=" } }, { - "at": "/body_text", + "at": "/headers/x-amz-mp-object-size", "optional": false, "rule": { - "is": "xml", - "value": "\"part\"1" + "is": "equal", + "value": "4" } } ], @@ -78969,19 +80338,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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=" + "encoding": "utf8", + "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" }, "framing": "chunked" } @@ -78998,39 +80364,44 @@ "value": "error" } }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 400 + } + }, { "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "InvalidPart" + "value": "InvalidRequest" } } ], "refusal": null }, { - "id": "operations/s3/commit-key-question", + "id": "operations/s3/commit-object-size", "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"question?mark.txt\"", + "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/keys/question?mark.txt", + "key": "object-tests/multipart/commit-object-size.bin", + "object_size": 3, "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-3841a4d594c0\"", "number": 1 - }, - { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 } ], - "upload_id": "fixture-upload+/276ca18046f9=" + "upload_id": "fixture-upload+/2b2c71a6ce04=" }, "exchanges": [ { @@ -79050,7 +80421,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/multipart/commit-object-size.bin" } }, { @@ -79058,7 +80429,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-3841a4d594c0\"" } }, { @@ -79066,7 +80437,15 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/2b2c71a6ce04=" + } + }, + { + "at": "/headers/x-amz-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "3" } } ], @@ -79085,7 +80464,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "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" } @@ -79105,7 +80484,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/multipart/commit-object-size.bin" } }, { @@ -79113,7 +80492,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-3841a4d594c0\"1" } }, { @@ -79121,7 +80500,15 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/2b2c71a6ce04=" + } + }, + { + "at": "/headers/x-amz-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "3" } } ], @@ -79140,7 +80527,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "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" } @@ -79162,7 +80549,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ae1b6d1d32ce\"" + "value": "\"fixture-69ebdafc497f\"" } }, { @@ -79180,27 +80567,23 @@ "refusal": null }, { - "id": "operations/s3/commit-key-hash", + "id": "operations/s3/commit-one-empty-part", "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"hash#tag.txt\"", + "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/keys/hash#tag.txt", + "key": "object-tests/multipart/empty.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-3841a4d594c0\"", "number": 1 - }, - { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 } ], - "upload_id": "fixture-upload+/276ca18046f9=" + "upload_id": "fixture-upload+/2b2c71a6ce04=" }, "exchanges": [ { @@ -79220,7 +80603,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { @@ -79228,7 +80611,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-3841a4d594c0\"" } }, { @@ -79236,7 +80619,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/2b2c71a6ce04=" } } ], @@ -79255,7 +80638,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } @@ -79275,7 +80658,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { @@ -79283,7 +80666,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-3841a4d594c0\"1" } }, { @@ -79291,7 +80674,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/2b2c71a6ce04=" } } ], @@ -79310,7 +80693,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } @@ -79332,7 +80715,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ae1b6d1d32ce\"" + "value": "\"fixture-69ebdafc497f\"" } }, { @@ -79350,27 +80733,23 @@ "refusal": null }, { - "id": "operations/s3/commit-key-percent", + "id": "operations/s3/commit-subset", "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"percent%20.txt\"", + "purpose": "commit subset", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/percent%20.txt", + "key": "object-tests/multipart/replaced.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-5945c592bad7\"", "number": 1 - }, - { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 } ], - "upload_id": "fixture-upload+/276ca18046f9=" + "upload_id": "fixture-upload+/6ba3c5e480a2=" }, "exchanges": [ { @@ -79390,7 +80769,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -79398,7 +80777,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-5945c592bad7\"" } }, { @@ -79406,7 +80785,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/6ba3c5e480a2=" } } ], @@ -79425,7 +80804,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT" }, "framing": "chunked" } @@ -79445,7 +80824,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -79453,7 +80832,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-5945c592bad7\"1" } }, { @@ -79461,7 +80840,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/6ba3c5e480a2=" } } ], @@ -79480,7 +80859,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT" }, "framing": "chunked" } @@ -79502,7 +80881,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ae1b6d1d32ce\"" + "value": "\"fixture-8631a8b6edf7\"" } }, { @@ -79520,15 +80899,15 @@ "refusal": null }, { - "id": "operations/s3/commit-key-plus", + "id": "operations/s3/commit-unstaged-part", "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"plus+plus.txt\"", + "purpose": "commit unstaged part", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/plus+plus.txt", + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { @@ -79536,8 +80915,8 @@ "number": 1 }, { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 + "etag": "\"fixture-db71b2c0257c\"", + "number": 3 } ], "upload_id": "fixture-upload+/276ca18046f9=" @@ -79560,7 +80939,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -79568,7 +80947,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-6d60d5bbaa47\"3\"fixture-db71b2c0257c\"" } }, { @@ -79585,17 +80964,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": "\nInvalidPartFixture error" }, "framing": "chunked" } @@ -79615,7 +80993,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -79623,7 +81001,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-db71b2c0257c\"3" } }, { @@ -79640,17 +81018,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": "\nInvalidPartFixture error" }, "framing": "chunked" } @@ -79664,45 +81041,42 @@ "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": "InvalidPart" } } ], "refusal": null }, { - "id": "operations/s3/commit-key-space", + "id": "operations/s3/commit-wrong-etag", "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"space name.txt\"", + "purpose": "commit wrong etag", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/space name.txt", + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-db71b2c0257c\"", "number": 1 }, { @@ -79730,7 +81104,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -79738,7 +81112,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" + "value": "1\"fixture-db71b2c0257c\"2\"fixture-32b70ae425ac\"" } }, { @@ -79755,17 +81129,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/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInvalidPartFixture error" }, "framing": "chunked" } @@ -79785,7 +81158,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -79793,7 +81166,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + "value": "\"fixture-db71b2c0257c\"1\"fixture-32b70ae425ac\"2" } }, { @@ -79810,17 +81183,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/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInvalidPartFixture error" }, "framing": "chunked" } @@ -79834,41 +81206,38 @@ "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": "InvalidPart" } } ], "refusal": null }, { - "id": "operations/s3/commit-key-non-ascii", + "id": "operations/s3/commit", "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"café/雪.txt\"", + "purpose": "commit", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/café/雪.txt", + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { @@ -79900,7 +81269,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -79935,7 +81304,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -79955,7 +81324,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -79990,177 +81359,7 @@ }, "body": { "encoding": "utf8", - "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"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-ae1b6d1d32ce\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/commit-key-double-slash", - "profile": "s3", - "lane": "core", - "purpose": "commit, 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": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-6d60d5bbaa47\"", - "number": 1 - }, - { - "etag": "\"fixture-32b70ae425ac\"", - "number": 2 - } - ], - "upload_id": "fixture-upload+/276ca18046f9=" - }, - "exchanges": [ - { - "alternatives": [ - { - "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": "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" - }, - "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" - } - }, - { - "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" + "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -80200,15 +81399,18 @@ "refusal": null }, { - "id": "operations/s3/commit-key-trailing-slash", + "id": "operations/s3/commit-200-internal-error", "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"trailing-slash/\"", + "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", "call": { - "key": "object-tests/keys/trailing-slash/", + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { @@ -80240,7 +81442,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -80270,12 +81472,11 @@ "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" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } @@ -80295,7 +81496,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -80325,63 +81526,17 @@ "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" + "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-ae1b6d1d32ce\"" - } }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/delete-accepted", - "profile": "s3", - "lane": "core", - "purpose": "delete accepted", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "call": { - "key": "object-tests/remove/present.txt", - "op": "delete" - }, - "exchanges": [ { "alternatives": [ { @@ -80391,7 +81546,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80399,15 +81554,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "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=" } } ], @@ -80416,49 +81579,20 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "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": [ { @@ -80466,7 +81600,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80474,15 +81608,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -80491,47 +81633,23 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/delete-accepted-key-hash", - "profile": "s3", - "lane": "core", - "purpose": "delete accepted, 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": "delete" - }, - "exchanges": [ + ], + "optional": true + }, { "alternatives": [ { @@ -80541,7 +81659,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80549,15 +81667,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "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=" } } ], @@ -80566,49 +81692,20 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "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": [ { @@ -80616,7 +81713,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80624,15 +81721,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -80641,47 +81746,23 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -80691,7 +81772,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80699,15 +81780,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "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=" } } ], @@ -80716,49 +81805,20 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "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": [ { @@ -80766,7 +81826,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80774,15 +81834,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -80791,47 +81859,23 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -80841,7 +81885,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80849,15 +81893,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "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=" } } ], @@ -80866,49 +81918,20 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/delete-accepted-key-double-slash", - "profile": "s3", - "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": [ { @@ -80916,7 +81939,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80924,15 +81947,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -80941,47 +81972,23 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] - } - ], - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -80991,7 +81998,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -80999,15 +82006,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "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=" } } ], @@ -81016,49 +82031,20 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "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": [ { @@ -81066,7 +82052,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81074,15 +82060,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests-deleted" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81091,18 +82085,22 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "empty" - } + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -81111,27 +82109,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3/delete-many", + "id": "operations/s3/complete-multipart-200-error", "profile": "s3", "lane": "core", - "purpose": "Delete several objects in one request and report each result", + "purpose": "complete multipart 200 error", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html" ], + "origin": "transient", "call": { - "keys": [ - "object-tests/batch/a.txt", - "object-tests/batch/b.txt", - "object-tests/batch/absent.txt" + "key": "object", + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"part\"", + "number": 1 + } ], - "op": "delete_many" + "upload_id": "upload+/=" }, "exchanges": [ { @@ -81151,7 +82161,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "upload+/=" } }, { @@ -81159,23 +82177,64 @@ "optional": false, "rule": { "is": "xml", - "value": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + "value": "1\"part\"" } + } + ], + "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" + } + }, + { + "request": [ { - "at": "/query/delete", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "POST" } }, { - "at": "/headers/x-amz-checksum-crc64nvme", + "at": "/path", "optional": false, "rule": { - "is": "matches", - "pattern": "[A-Za-z0-9+/]{11}=" + "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" } } ], @@ -81189,11 +82248,14 @@ "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": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4=" }, "framing": "chunked" } @@ -81207,44 +82269,42 @@ "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", - "object-tests/batch/absent.txt" - ] + "value": "error" } }, { - "at": "/value/errors", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": [] + "value": "InvalidPart" } } ], "refusal": null }, { - "id": "operations/s3/delete-slow-down", + "id": "operations/s3/commit-key-question", "profile": "s3", "lane": "core", - "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries", + "purpose": "commit, with the key \"question?mark.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/remove/present.txt", - "op": "delete" + "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": [ { @@ -81256,7 +82316,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81264,15 +82324,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.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": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81281,24 +82349,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": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -81306,7 +82371,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81314,15 +82379,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81331,23 +82404,79 @@ ], "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" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=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-ae1b6d1d32ce\"" + } }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/commit-key-hash", + "profile": "s3", + "lane": "core", + "purpose": "commit, 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": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-6d60d5bbaa47\"", + "number": 1 + }, + { + "etag": "\"fixture-32b70ae425ac\"", + "number": 2 + } + ], + "upload_id": "fixture-upload+/276ca18046f9=" + }, + "exchanges": [ { "alternatives": [ { @@ -81357,7 +82486,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81365,15 +82494,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/keys/hash#tag.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": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81382,25 +82519,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": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -81408,7 +82541,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81416,15 +82549,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81433,74 +82574,79 @@ ], "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" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } } - ], - "optional": true + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } }, { - "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/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-ae1b6d1d32ce\"" + } }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/commit-key-percent", + "profile": "s3", + "lane": "core", + "purpose": "commit, 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": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-6d60d5bbaa47\"", + "number": 1 + }, + { + "etag": "\"fixture-32b70ae425ac\"", + "number": 2 + } + ], + "upload_id": "fixture-upload+/276ca18046f9=" + }, + "exchanges": [ { "alternatives": [ { @@ -81510,7 +82656,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81518,15 +82664,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/present.txt" + "value": "/fixture/object-tests/keys/percent%20.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": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81535,67 +82689,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": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "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/delete-bucket-missing", - "profile": "s3", - "lane": "core", - "purpose": "delete bucket missing", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "call": { - "key": "object.txt", - "op": "delete" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -81603,7 +82711,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81611,15 +82719,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81628,16 +82744,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": "\nNoSuchBucketFixture error" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -81651,40 +82768,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-ae1b6d1d32ce\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NoSuchBucket" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/delete-if-match-current", + "id": "operations/s3/commit-key-plus", "profile": "s3", "lane": "core", - "purpose": "delete if match current", + "purpose": "commit, with the key \"plus+plus.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-6c30b210f0a8\"", - "key": "object-tests/remove/conditional.txt", - "op": "delete" + "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": [ { @@ -81696,7 +82826,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81704,23 +82834,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/conditional.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" } }, { - "at": "/headers/if-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81729,49 +82859,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": "\nhttps://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } - } - ] - } - ], - "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": [ { @@ -81779,7 +82881,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81787,15 +82889,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/absent.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81804,17 +82914,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": "\nhttps://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } } ] @@ -81828,22 +82940,51 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-ae1b6d1d32ce\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/s3/delete-precondition-failed", + "id": "operations/s3/commit-key-space", "profile": "s3", "lane": "core", - "purpose": "delete precondition failed", + "purpose": "commit, with the key \"space name.txt\"", "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/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": [ { @@ -81855,7 +82996,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81863,23 +83004,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/conditional.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" } }, { - "at": "/headers/if-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81888,66 +83029,21 @@ ], "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": "\nhttps://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "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": [ { @@ -81955,7 +83051,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -81963,15 +83059,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/remove/absent.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -81980,16 +83084,17 @@ ], "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": "\nhttps://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -82003,39 +83108,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 403 + "value": "\"fixture-ae1b6d1d32ce\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidAccessKeyId" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/get-before-commit", + "id": "operations/s3/commit-key-non-ascii", "profile": "s3", "lane": "core", - "purpose": "get before commit", + "purpose": "commit, with the key \"café/雪.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", - "op": "get" + "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": [ { @@ -82047,7 +83166,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -82055,15 +83174,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/keys/café/雪.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": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -82072,16 +83199,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": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -82093,7 +83221,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -82101,23 +83229,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -82126,16 +83254,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": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -82149,39 +83278,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-ae1b6d1d32ce\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NoSuchKey" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/get-bucket-missing", + "id": "operations/s3/commit-key-double-slash", "profile": "s3", "lane": "core", - "purpose": "get bucket missing", + "purpose": "commit, with the key \"double//slash.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object.txt", - "op": "get" + "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": [ { @@ -82193,7 +83336,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -82201,15 +83344,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/keys/double//slash.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": "" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -82218,16 +83369,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": "\nNoSuchBucketFixture error" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -82239,7 +83391,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -82247,23 +83399,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -82272,16 +83424,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": "\nNoSuchBucketFixture error" + "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -82295,42 +83448,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-ae1b6d1d32ce\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NoSuchBucket" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/get-committed-tail", + "id": "operations/s3/commit-key-trailing-slash", "profile": "s3", "lane": "core", - "purpose": "get committed tail", + "purpose": "commit, with the key \"trailing-slash/\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", - "op": "get", - "range": { - "suffix": 10 - } + "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": [ { @@ -82342,7 +83506,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -82350,23 +83514,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\"" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "bytes=-10" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -82375,146 +83539,74 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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": "\nhttps://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } }, { "request": [ { - "at": "/path", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "POST" } }, { - "at": "/body_base64", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { - "at": "/headers/range", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "bytes=-10" + "is": "xml", + "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2" } }, { - "at": "/method", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "fixture-upload+/276ca18046f9=" } } ], - "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": 206, + "status": 200, "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": "\nhttps://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } } ] @@ -82537,22 +83629,6 @@ "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, @@ -82563,29 +83639,21 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "Y2RlZnNlY29uZA==" - } } ], "refusal": null }, { - "id": "operations/s3/get-empty", + "id": "operations/s3/delete-accepted", "profile": "s3", "lane": "core", - "purpose": "get empty", + "purpose": "delete accepted", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/write/empty.bin", - "op": "get" + "key": "object-tests/remove/present.txt", + "op": "delete" }, "exchanges": [ { @@ -82597,7 +83665,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -82605,7 +83673,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -82622,13 +83690,11 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { - "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-7d64e1430626\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -82636,7 +83702,37 @@ "data": "" } } - }, + } + ] + } + ], + "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": [ { @@ -82644,7 +83740,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -82652,7 +83748,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -82662,122 +83758,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "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": [ @@ -82785,23 +83765,49 @@ ], "allow_query": [], "response": { - "status": 416, + "status": 204, "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" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/delete-accepted-key-hash", + "profile": "s3", + "lane": "core", + "purpose": "delete accepted, 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": "delete" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -82809,7 +83815,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -82817,7 +83823,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -82827,14 +83833,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" - } } ], "allow_headers": [ @@ -82842,13 +83840,11 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { - "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-7d64e1430626\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -82868,65 +83864,21 @@ "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 - } - }, - { - "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/get-if-match-current", + "id": "operations/s3/delete-accepted-key-percent", "profile": "s3", "lane": "core", - "purpose": "get if match current", + "purpose": "delete accepted, with the key \"percent%20.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-ad03f2ab332a\"", - "key": "object-tests/read/object.txt", - "op": "get" + "key": "object-tests/keys/percent%20.txt", + "op": "delete" }, "exchanges": [ { @@ -82938,7 +83890,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -82946,7 +83898,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -82956,14 +83908,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" - } } ], "allow_headers": [ @@ -82971,21 +83915,49 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "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" + "data": "" } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "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": [ { @@ -82993,7 +83965,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83001,7 +83973,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -83011,22 +83983,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" - } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } } ], "allow_headers": [ @@ -83034,19 +83990,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 204, "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" + "data": "" } } } @@ -83061,65 +84014,21 @@ "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, - "" - ] - } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } } ], "refusal": null }, { - "id": "operations/s3/get-if-none-match-other", + "id": "operations/s3/delete-accepted-key-space", "profile": "s3", "lane": "core", - "purpose": "get if none match other", + "purpose": "delete accepted, with the key \"space name.txt\"", "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" + "key": "object-tests/keys/space name.txt", + "op": "delete" }, "exchanges": [ { @@ -83131,7 +84040,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83139,7 +84048,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -83149,14 +84058,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" - } } ], "allow_headers": [ @@ -83164,21 +84065,49 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "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" + "data": "" } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "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": [ { @@ -83186,7 +84115,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83194,7 +84123,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -83204,22 +84133,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-none-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": [ @@ -83227,19 +84140,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 204, "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" + "data": "" } } } @@ -83254,64 +84164,21 @@ "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, - "" - ] - } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } } ], "refusal": null }, { - "id": "operations/s3/get-key-with-hash", + "id": "operations/s3/delete-accepted-key-double-slash", "profile": "s3", "lane": "core", - "purpose": "get key with hash", + "purpose": "delete accepted, with the key \"double//slash.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/names/hash#tag.txt", - "op": "get" + "key": "object-tests/keys/double//slash.txt", + "op": "delete" }, "exchanges": [ { @@ -83323,7 +84190,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83331,7 +84198,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/hash#tag.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -83348,21 +84215,49 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "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==" + "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": [ { @@ -83370,7 +84265,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83378,7 +84273,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/hash#tag.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -83388,14 +84283,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } } ], "allow_headers": [ @@ -83403,19 +84290,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 204, "headers": { - "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" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } } @@ -83430,64 +84314,21 @@ "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==" - } } ], "refusal": null }, { - "id": "operations/s3/get-key-with-percent", + "id": "operations/s3/delete-bucket", "profile": "s3", "lane": "core", - "purpose": "get key with percent", + "purpose": "Delete an empty bucket", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html" ], "call": { - "key": "object-tests/names/percent%20.txt", - "op": "get" + "bucket": "object-tests-deleted", + "op": "s3.delete_bucket" }, "exchanges": [ { @@ -83499,7 +84340,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83507,7 +84348,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/percent%20.txt" + "value": "/object-tests-deleted" } }, { @@ -83524,21 +84365,51 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "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==" + "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": [ { @@ -83546,7 +84417,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -83554,11 +84425,19 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/percent%20.txt" + "value": "/fixture" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + } + }, + { + "at": "/query/delete", "optional": false, "rule": { "is": "equal", @@ -83566,11 +84445,11 @@ } }, { - "at": "/headers/range", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "pattern": "[A-Za-z0-9+/]{11}=" } } ], @@ -83579,20 +84458,18 @@ ], "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": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + }, + "framing": "chunked" } } ] @@ -83608,62 +84485,40 @@ } }, { - "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", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": "binary/octet-stream" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" + "value": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ] } }, { - "at": "/value/body_base64", + "at": "/value/errors", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": [] } } ], "refusal": null }, { - "id": "operations/s3/get-key-with-plus", + "id": "operations/s3/delete-slow-down", "profile": "s3", "lane": "core", - "purpose": "get key with plus", + "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/names/plus+plus.txt", - "op": "get" + "key": "object-tests/remove/present.txt", + "op": "delete" }, "exchanges": [ { @@ -83675,7 +84530,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83683,7 +84538,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/plus+plus.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -83700,21 +84555,24 @@ ], "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" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -83722,7 +84580,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83730,7 +84588,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/plus+plus.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -83740,13 +84598,56 @@ "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": "/headers/range", + "at": "/method", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "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": "" } } ], @@ -83755,93 +84656,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" + } }, "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, - "" - ] - } + ], + "optional": true }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/get-key-with-space", - "profile": "s3", - "lane": "core", - "purpose": "get key with space", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "call": { - "key": "object-tests/names/space name.txt", - "op": "get" - }, - "exchanges": [ { "alternatives": [ { @@ -83851,7 +84682,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83859,7 +84690,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/space name.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -83876,21 +84707,25 @@ ], "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" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -83898,7 +84733,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -83906,7 +84741,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/space name.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -83916,13 +84751,56 @@ "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": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "DELETE" + } }, { - "at": "/headers/range", + "at": "/path", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "/fixture/object-tests/remove/present.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } } ], @@ -83931,23 +84809,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-6c30b210f0a8\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -83956,66 +84833,39 @@ "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 + "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": "MQ==" + "value": "SlowDown" } } ], "refusal": null }, { - "id": "operations/s3/get-key-with-question", + "id": "operations/s3/delete-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "get key question", + "purpose": "delete bucket missing", "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", - "op": "get" + "key": "object.txt", + "op": "delete" }, "exchanges": [ { @@ -84027,7 +84877,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -84035,7 +84885,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a?b" + "value": "/fixture/object.txt" } }, { @@ -84045,39 +84895,74 @@ "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_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "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": [ { "request": [ { @@ -84085,7 +84970,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -84093,7 +84978,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a?b" + "value": "/fixture/object-tests/remove/conditional.txt" } }, { @@ -84105,43 +84990,29 @@ } }, { - "at": "/headers/content-type", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] - } - }, - { - "at": "/headers/range", + "at": "/headers/if-match", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "\"fixture-6c30b210f0a8\"" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 204, "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" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "" } } } @@ -84156,29 +85027,21 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "aGVsbG8=" - } } ], "refusal": null }, { - "id": "operations/s3/get-key-with-non-ascii", + "id": "operations/s3/delete-missing", "profile": "s3", "lane": "core", - "purpose": "get key unicode", + "purpose": "delete missing", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "café/雪", - "op": "get" + "key": "object-tests/remove/absent.txt", + "op": "delete" }, "exchanges": [ { @@ -84190,7 +85053,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -84198,7 +85061,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/café/雪" + "value": "/fixture/object-tests/remove/absent.txt" } }, { @@ -84208,39 +85071,57 @@ "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_headers": [ + "content-type" + ], "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-amz-request-id": "fixture-request-id" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "" } } - }, + } + ] + } + ], + "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": [ { "request": [ { @@ -84248,7 +85129,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -84256,7 +85137,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/café/雪" + "value": "/fixture/object-tests/remove/conditional.txt" } }, { @@ -84268,44 +85149,123 @@ } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/headers/if-match", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "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": "/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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "DELETE" } }, { - "at": "/headers/range", + "at": "/path", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "/fixture/object-tests/remove/absent.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 403, "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nInvalidAccessKeyIdFixture error" + }, + "framing": "chunked" } } ] @@ -84317,30 +85277,38 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": 403 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidAccessKeyId" } } ], "refusal": null }, { - "id": "operations/s3/get-key-with-separators", + "id": "operations/s3/get-before-commit", "profile": "s3", "lane": "core", - "purpose": "get key separators", + "purpose": "get before commit", "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/multipart/object.bin", "op": "get" }, "exchanges": [ @@ -84361,7 +85329,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a//b/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -84371,37 +85339,25 @@ "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_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" } }, { @@ -84419,7 +85375,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a//b/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -84430,18 +85386,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, @@ -84451,24 +85395,23 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 404, "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" } } ] @@ -84480,30 +85423,38 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": 404 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "NoSuchKey" } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-empty-value", + "id": "operations/s3/get-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "get metadata empty value", + "purpose": "get bucket missing", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/empty-value.txt", + "key": "object.txt", "op": "get" }, "exchanges": [ @@ -84524,7 +85475,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object.txt" } }, { @@ -84541,20 +85492,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nNoSuchBucketFixture error" + }, + "framing": "chunked" } }, { @@ -84572,7 +85521,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object.txt" } }, { @@ -84597,21 +85546,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 404, "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": "" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nNoSuchBucketFixture error" + }, + "framing": "chunked" } } ] @@ -84623,76 +85569,42 @@ "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": 404 } }, { - "at": "/value/metadata", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": { - "empty": "" - } + "value": "NoSuchBucket" } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-hyphen-name", + "id": "operations/s3/get-committed-tail", "profile": "s3", "lane": "core", - "purpose": "get metadata hyphen name", + "purpose": "get committed tail", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/hyphen-name.txt", - "op": "get" + "key": "object-tests/multipart/object.bin", + "op": "get", + "range": { + "suffix": 10 + } }, "exchanges": [ { @@ -84712,7 +85624,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/hyphen-name.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -84722,6 +85634,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-10" + } } ], "allow_headers": [ @@ -84729,57 +85649,127 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { + "content-range": "bytes 5242876-5242885/5242886", "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" + "etag": "\"fixture-ae1b6d1d32ce\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "Y2RlZnNlY29uZA==" } } }, { "request": [ { - "at": "/method", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/path", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/hyphen-name.txt" + "value": "" } }, { - "at": "/body_base64", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "bytes=-10" } }, { - "at": "/headers/range", + "at": "/method", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "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/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" ], @@ -84787,18 +85777,17 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-0/1", + "content-length": "10", + "content-range": "bytes 5242876-5242885/5242886", "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" + "etag": "\"fixture-ae1b6d1d32ce\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "MQ==" + "encoding": "empty" } } } @@ -84819,7 +85808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-ae1b6d1d32ce\"" } }, { @@ -84827,7 +85816,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 10 } }, { @@ -84854,32 +85843,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "not-valid": "1" - } + "value": "Y2RlZnNlY29uZA==" } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-punctuation-name", + "id": "operations/s3/get-empty", "profile": "s3", "lane": "core", - "purpose": "Report a metadata name that holds any character of an HTTP token.", + "purpose": "get empty", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/punctuation-name.txt", + "key": "object-tests/write/empty.bin", "op": "get" }, "exchanges": [ @@ -84900,7 +85879,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/punctuation-name.txt" + "value": "/fixture/object-tests/write/empty.bin" } }, { @@ -84923,13 +85902,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-1a!#$%&'*+.^_`|~b": "1" + "etag": "\"fixture-7d64e1430626\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } }, @@ -84948,7 +85926,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/punctuation-name.txt" + "value": "/fixture/object-tests/write/empty.bin" } }, { @@ -84968,25 +85946,188 @@ } } ], + "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": 206, + "status": 416, + "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" + }, + "framing": "chunked" + } + }, + { + "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-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-1a!#$%&'*+.^_`|~b": "1" + "etag": "\"fixture-7d64e1430626\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } } @@ -85007,7 +86148,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-7d64e1430626\"" } }, { @@ -85015,7 +86156,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 0 } }, { @@ -85042,32 +86183,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "1a!#$%&'*+.^_`|~b": "1" - } + "value": "" } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-non-ascii-value", + "id": "operations/s3/get-if-match-current", "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": "get if match current", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/non-ascii.txt", + "if_match": "\"fixture-ad03f2ab332a\"", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -85088,7 +86220,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -85098,6 +86230,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-ad03f2ab332a\"" + } } ], "allow_headers": [ @@ -85111,13 +86251,12 @@ "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?=" + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -85136,7 +86275,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -85147,6 +86286,14 @@ "value": "" } }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-ad03f2ab332a\"" + } + }, { "at": "/headers/range", "optional": false, @@ -85163,18 +86310,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-6c30b210f0a8\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?=" + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -85195,7 +86341,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-ad03f2ab332a\"" } }, { @@ -85203,7 +86349,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { @@ -85230,32 +86376,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "value": "café" - } + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-outside-latin-1", + "id": "operations/s3/get-if-none-match-other", "profile": "s3", "lane": "core", - "purpose": "Decode a base64 RFC 2047 encoded word, which S3 returns for text that is mostly outside ASCII.", + "purpose": "get if none match other", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/outside-latin-1.txt", + "if_none_match": "\"fixture-db71b2c0257c\"", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -85276,7 +86413,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/outside-latin-1.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -85286,6 +86423,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" + } } ], "allow_headers": [ @@ -85299,13 +86444,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-value": "=?UTF-8?B?6Zuq?=" + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -85324,7 +86468,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/outside-latin-1.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -85335,6 +86479,14 @@ "value": "" } }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" + } + }, { "at": "/headers/range", "optional": false, @@ -85351,18 +86503,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-6c30b210f0a8\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-value": "=?UTF-8?B?6Zuq?=" + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -85383,7 +86534,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-ad03f2ab332a\"" } }, { @@ -85391,7 +86542,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { @@ -85418,32 +86569,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "value": "雪" - } + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-split-encoded-words", + "id": "operations/s3/get-key-with-hash", "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": "get key with hash", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/split-encoded-words.txt", + "key": "object-tests/names/hash#tag.txt", "op": "get" }, "exchanges": [ @@ -85464,7 +86605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/split-encoded-words.txt" + "value": "/fixture/object-tests/names/hash#tag.txt" } }, { @@ -85488,8 +86629,7 @@ "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", @@ -85512,7 +86652,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/split-encoded-words.txt" + "value": "/fixture/object-tests/names/hash#tag.txt" } }, { @@ -85545,8 +86685,7 @@ "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", @@ -85608,30 +86747,20 @@ "is": "equal", "value": "MQ==" } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪" - } - } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-malformed-encoded-word", + "id": "operations/s3/get-key-with-percent", "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.", + "purpose": "get key with percent", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/malformed-encoded-word.txt", + "key": "object-tests/names/percent%20.txt", "op": "get" }, "exchanges": [ @@ -85652,7 +86781,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt" + "value": "/fixture/object-tests/names/percent%20.txt" } }, { @@ -85676,8 +86805,7 @@ "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", @@ -85700,7 +86828,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt" + "value": "/fixture/object-tests/names/percent%20.txt" } }, { @@ -85733,8 +86861,7 @@ "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", @@ -85796,30 +86923,20 @@ "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", + "id": "operations/s3/get-key-with-plus", "profile": "s3", "lane": "core", - "purpose": "get metadata replaced", + "purpose": "get key with plus", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/replaced.txt", + "key": "object-tests/names/plus+plus.txt", "op": "get" }, "exchanges": [ @@ -85840,7 +86957,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/names/plus+plus.txt" } }, { @@ -85863,12 +86980,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-ea4c238956b1\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "Mg==" + "data": "MQ==" } } }, @@ -85887,7 +87004,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/names/plus+plus.txt" } }, { @@ -85919,12 +87036,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-ea4c238956b1\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "Mg==" + "data": "MQ==" } } } @@ -85945,7 +87062,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ea4c238956b1\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -85980,22 +87097,22 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3/get-metadata", + "id": "operations/s3/get-key-with-space", "profile": "s3", "lane": "core", - "purpose": "get metadata", + "purpose": "get key with space", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/object.txt", + "key": "object-tests/names/space name.txt", "op": "get" }, "exchanges": [ @@ -86016,7 +87133,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/names/space name.txt" } }, { @@ -86040,9 +87157,7 @@ "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", @@ -86065,7 +87180,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/names/space name.txt" } }, { @@ -86098,9 +87213,7 @@ "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", @@ -86162,31 +87275,20 @@ "is": "equal", "value": "MQ==" } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "name": "value", - "second": "2" - } - } } ], "refusal": null }, { - "id": "operations/s3/get-metadata-ignores-unknown-headers", + "id": "operations/s3/get-key-with-question", "profile": "s3", "lane": "core", - "purpose": "Surface user metadata; unknown headers must not become metadata.", + "purpose": "get key question", "sources": [ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" ], "call": { - "key": "object", + "key": "a?b", "op": "get" }, "exchanges": [ @@ -86207,7 +87309,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/a?b" } }, { @@ -86242,9 +87344,7 @@ }, "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" + "x-amz-request-id": "fixture-request-id" }, "body": { "encoding": "base64", @@ -86267,7 +87367,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/a?b" } }, { @@ -86311,9 +87411,7 @@ }, "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" + "x-amz-request-id": "fixture-request-id" }, "body": { "encoding": "base64", @@ -86340,30 +87438,20 @@ "is": "equal", "value": "aGVsbG8=" } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "author": "Ada" - } - } } ], "refusal": null }, { - "id": "operations/s3/get-missing", + "id": "operations/s3/get-key-with-non-ascii", "profile": "s3", "lane": "core", - "purpose": "get missing", + "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/read/absent.txt", + "key": "café/雪", "op": "get" }, "exchanges": [ @@ -86384,7 +87472,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/café/雪" } }, { @@ -86394,25 +87482,37 @@ "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": 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" }, "body": { - "encoding": "utf8", - "data": "\nNoSuchKeyFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "aGVsbG8=" + } } }, { @@ -86430,7 +87530,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/café/雪" } }, { @@ -86441,6 +87541,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, @@ -86450,23 +87562,24 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "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": "\nNoSuchKeyFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "aGVsbG8=" + } } } ] @@ -86478,39 +87591,30 @@ "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": "NoSuchKey" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3/get-not-modified", + "id": "operations/s3/get-key-with-separators", "profile": "s3", "lane": "core", - "purpose": "get not modified", + "purpose": "get key separators", "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-ad03f2ab332a\"", - "key": "object-tests/read/object.txt", + "key": "a//b/", "op": "get" }, "exchanges": [ @@ -86531,7 +87635,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/a//b/" } }, { @@ -86543,29 +87647,34 @@ } }, { - "at": "/headers/if-none-match", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 304, + "status": 200, "headers": { + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"" + "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": "aGVsbG8=" } } }, @@ -86584,7 +87693,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/a//b/" } }, { @@ -86596,11 +87705,15 @@ } }, { - "at": "/headers/if-none-match", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -86612,21 +87725,23 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 304, + "status": 206, "headers": { + "content-range": "bytes 0-4/5", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"" + "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": "aGVsbG8=" } } } @@ -86639,31 +87754,30 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": 304 + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3/get-precondition-failed", + "id": "operations/s3/get-metadata-empty-value", "profile": "s3", "lane": "core", - "purpose": "get precondition failed", + "purpose": "get metadata empty value", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-db71b2c0257c\"", - "key": "object-tests/read/object.txt", + "key": "object-tests/metadata/empty-value.txt", "op": "get" }, "exchanges": [ @@ -86684,7 +87798,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -86694,14 +87808,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" - } } ], "allow_headers": [ @@ -86709,18 +87815,20 @@ ], "allow_query": [], "response": { - "status": 412, + "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-empty": "" }, "body": { - "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } }, { @@ -86738,7 +87846,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -86749,14 +87857,6 @@ "value": "" } }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" - } - }, { "at": "/headers/range", "optional": false, @@ -86771,18 +87871,21 @@ ], "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-empty": "" }, "body": { - "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } } ] @@ -86794,43 +87897,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": "PreconditionFailed" + "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": { + "empty": "" + } } } ], "refusal": null }, { - "id": "operations/s3/get-range-inverted", + "id": "operations/s3/get-metadata-hyphen-name", "profile": "s3", "lane": "core", - "purpose": "get range inverted", + "purpose": "get metadata hyphen name", "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/metadata/hyphen-name.txt", + "op": "get" }, "exchanges": [ { @@ -86850,7 +87986,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/hyphen-name.txt" } }, { @@ -86860,13 +87996,61 @@ "is": "equal", "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/range", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "bytes=6-1" + "value": "GET" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "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,}" } } ], @@ -86875,18 +88059,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-ad03f2ab332a\"", - "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-not-valid": "1" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } } @@ -86907,7 +88093,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -86915,7 +88101,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -86942,52 +88128,33 @@ "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": ".+" + "value": "MQ==" } }, { - "at": "/parameter", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "range" + "value": { + "not-valid": "1" + } } } ], - "decline_permitted": true + "refusal": null }, { - "id": "operations/s3/get-range-not-satisfiable", + "id": "operations/s3/get-metadata-punctuation-name", "profile": "s3", "lane": "core", - "purpose": "get range not satisfiable", + "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/read/object.txt", - "op": "get", - "range": { - "start": 40 - } + "key": "object-tests/metadata/punctuation-name.txt", + "op": "get" }, "exchanges": [ { @@ -87007,7 +88174,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/punctuation-name.txt" } }, { @@ -87017,14 +88184,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=40-" - } } ], "allow_headers": [ @@ -87032,18 +88191,20 @@ ], "allow_query": [], "response": { - "status": 416, + "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-1a!#$%&'*+.^_`|~b": "1" }, "body": { - "encoding": "utf8", - "data": "\nInvalidRangeFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } }, { @@ -87061,7 +88222,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/punctuation-name.txt" } }, { @@ -87077,7 +88238,7 @@ "optional": false, "rule": { "is": "matches", - "pattern": "bytes=40-[1-9][0-9]{2,}" + "pattern": "bytes=0-[1-9][0-9]{2,}" } } ], @@ -87086,18 +88247,21 @@ ], "allow_query": [], "response": { - "status": 416, + "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-1a!#$%&'*+.^_`|~b": "1" }, "body": { - "encoding": "utf8", - "data": "\nInvalidRangeFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } } ] @@ -87109,43 +88273,76 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 416 + "value": "\"fixture-6c30b210f0a8\"" } }, { - "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/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/get-range-past-the-end", + "id": "operations/s3/get-metadata-non-ascii-value", "profile": "s3", "lane": "core", - "purpose": "get range past the end", + "purpose": "A general-purpose bucket returns a value outside ASCII as an RFC 2047 encoded word. Decode it, so é reads back as é.", "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/metadata/non-ascii.txt", + "op": "get" }, "exchanges": [ { @@ -87165,7 +88362,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/non-ascii.txt" } }, { @@ -87175,14 +88372,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=28-63" - } } ], "allow_headers": [ @@ -87190,99 +88379,22 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 28-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "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?Q?caf=C3=A9?=" }, "body": { "encoding": "base64", - "data": "Y3Q=" + "data": "MQ==" } } - } - ] - } - ], - "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": 2 - } - }, - { - "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": "Y3Q=" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/get-range-single-byte", - "profile": "s3", - "lane": "core", - "purpose": "get range single byte", - "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 - } - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -87298,7 +88410,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/non-ascii.txt" } }, { @@ -87313,8 +88425,8 @@ "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "bytes=0-0" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } } ], @@ -87325,17 +88437,18 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-0/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "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?Q?caf=C3=A9?=" }, "body": { "encoding": "base64", - "data": "MA==" + "data": "MQ==" } } } @@ -87356,7 +88469,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -87391,27 +88504,33 @@ "optional": false, "rule": { "is": "equal", - "value": "MA==" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "value": "café" + } } } ], "refusal": null }, { - "id": "operations/s3/get-range", + "id": "operations/s3/get-metadata-outside-latin-1", "profile": "s3", "lane": "core", - "purpose": "get range", + "purpose": "Decode a base64 RFC 2047 encoded word, which S3 returns for text that is mostly outside ASCII.", "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 - } + "key": "object-tests/metadata/outside-latin-1.txt", + "op": "get" }, "exchanges": [ { @@ -87431,7 +88550,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/outside-latin-1.txt" } }, { @@ -87441,13 +88560,61 @@ "is": "equal", "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?B?6Zuq?=" }, + "body": { + "encoding": "base64", + "data": "MQ==" + } + } + }, + { + "request": [ { - "at": "/headers/range", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "bytes=2-5" + "value": "GET" + } + }, + { + "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": "" + } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } } ], @@ -87458,17 +88625,18 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 2-5/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "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?6Zuq?=" }, "body": { "encoding": "base64", - "data": "MjM0NQ==" + "data": "MQ==" } } } @@ -87489,7 +88657,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -87497,7 +88665,7 @@ "optional": false, "rule": { "is": "equal", - "value": 4 + "value": 1 } }, { @@ -87524,26 +88692,33 @@ "optional": false, "rule": { "is": "equal", - "value": "MjM0NQ==" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "value": "雪" + } } } ], "refusal": null }, { - "id": "operations/s3/get-range-open", + "id": "operations/s3/get-metadata-split-encoded-words", "profile": "s3", "lane": "core", - "purpose": "get range open", + "purpose": "S3 returns a long value as several RFC 2047 encoded words, separated by spaces. Decode each and join them without the spaces.", "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 - } + "key": "object-tests/metadata/split-encoded-words.txt", + "op": "get" }, "exchanges": [ { @@ -87563,7 +88738,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/metadata/split-encoded-words.txt" } }, { @@ -87573,45 +88748,26 @@ "is": "equal", "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" - ] - } } ], - "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": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "fixture-request-id" + "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?= =?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?=" }, "body": { "encoding": "base64", - "data": "bG8=" + "data": "MQ==" } } }, @@ -87630,7 +88786,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/metadata/split-encoded-words.txt" } }, { @@ -87641,44 +88797,34 @@ "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,}" + "pattern": "bytes=0-[1-9][0-9]{2,}" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 3-4/5", - "content-type": "application/octet-stream", + "content-range": "bytes 0-0/1", + "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "fixture-request-id" + "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?= =?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?=" }, "body": { "encoding": "base64", - "data": "bG8=" + "data": "MQ==" } } } @@ -87694,27 +88840,72 @@ "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": "bG8=" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪" + } } } ], "refusal": null }, { - "id": "operations/s3/get-replaced", + "id": "operations/s3/get-metadata-malformed-encoded-word", "profile": "s3", "lane": "core", - "purpose": "get replaced", + "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/multipart/replaced.bin", + "key": "object-tests/metadata/malformed-encoded-word.txt", "op": "get" }, "exchanges": [ @@ -87735,7 +88926,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt" } }, { @@ -87758,12 +88949,13 @@ "date": { "from": "now" }, - "etag": "\"fixture-8631a8b6edf7\"", - "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?Q?caf=ZZ?=" }, "body": { "encoding": "base64", - "data": "Yg==" + "data": "MQ==" } } }, @@ -87782,7 +88974,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt" } }, { @@ -87814,12 +89006,13 @@ "date": { "from": "now" }, - "etag": "\"fixture-8631a8b6edf7\"", - "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?Q?caf=ZZ?=" }, "body": { "encoding": "base64", - "data": "Yg==" + "data": "MQ==" } } } @@ -87840,7 +89033,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8631a8b6edf7\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -87875,22 +89068,32 @@ "optional": false, "rule": { "is": "equal", - "value": "Yg==" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "value": "=?UTF-8?Q?caf=ZZ?=" + } } } ], "refusal": null }, { - "id": "operations/s3/get-single-part", + "id": "operations/s3/get-metadata-replaced", "profile": "s3", "lane": "core", - "purpose": "get single part", + "purpose": "get metadata replaced", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/single.bin", + "key": "object-tests/metadata/replaced.txt", "op": "get" }, "exchanges": [ @@ -87911,7 +89114,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/single.bin" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -87934,12 +89137,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-69ebdafc497f\"", + "etag": "\"fixture-ea4c238956b1\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "b25seQ==" + "data": "Mg==" } } }, @@ -87958,7 +89161,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/single.bin" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -87985,17 +89188,17 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-3/4", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-69ebdafc497f\"", + "etag": "\"fixture-ea4c238956b1\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "b25seQ==" + "data": "Mg==" } } } @@ -88016,7 +89219,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-69ebdafc497f\"" + "value": "\"fixture-ea4c238956b1\"" } }, { @@ -88024,7 +89227,7 @@ "optional": false, "rule": { "is": "equal", - "value": 4 + "value": 1 } }, { @@ -88051,26 +89254,23 @@ "optional": false, "rule": { "is": "equal", - "value": "b25seQ==" + "value": "Mg==" } } ], "refusal": null }, { - "id": "operations/s3/get-suffix-longer-than-object", + "id": "operations/s3/get-metadata", "profile": "s3", "lane": "core", - "purpose": "get suffix longer than object", + "purpose": "get metadata", "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/metadata/object.txt", + "op": "get" }, "exchanges": [ { @@ -88090,7 +89290,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -88100,14 +89300,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-100" - } } ], "allow_headers": [ @@ -88115,127 +89307,58 @@ ], "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\"", - "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-name": "value", + "x-amz-meta-second": "2" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } }, { "request": [ { - "at": "/path", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "GET" } }, { - "at": "/body_base64", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "/fixture/object-tests/metadata/object.txt" } }, { - "at": "/headers/range", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "bytes=-100" + "value": "" } }, { - "at": "/method", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "HEAD" + "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/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" ], @@ -88243,17 +89366,19 @@ "response": { "status": 206, "headers": { - "content-length": "30", - "content-range": "bytes 0-29/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "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-name": "value", + "x-amz-meta-second": "2" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "MQ==" } } } @@ -88274,7 +89399,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -88282,7 +89407,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -88309,26 +89434,34 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "name": "value", + "second": "2" + } } } ], "refusal": null }, { - "id": "operations/s3/get-suffix", + "id": "operations/s3/get-metadata-ignores-unknown-headers", "profile": "s3", "lane": "core", - "purpose": "get suffix", + "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/read/object.txt", - "op": "get", - "range": { - "suffix": 6 - } + "key": "object", + "op": "get" }, "exchanges": [ { @@ -88348,7 +89481,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -88360,43 +89493,55 @@ } }, { - "at": "/headers/range", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "bytes=-6" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 24-29/30", - "content-type": "binary/octet-stream", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "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": "b2JqZWN0" + "data": "aGVsbG8=" } } }, { "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": "/fixture/object" } }, { @@ -88408,110 +89553,45 @@ } }, { - "at": "/headers/range", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "bytes=-6" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { - "at": "/method", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "HEAD" + "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/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_headers": [], "allow_query": [], "response": { "status": 206, "headers": { - "content-length": "6", - "content-range": "bytes 24-29/30", - "content-type": "binary/octet-stream", + "content-range": "bytes 0-4/5", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "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": "empty" + "encoding": "base64", + "data": "aGVsbG8=" } } } @@ -88528,61 +89608,36 @@ } }, { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" - } - }, - { - "at": "/value/size", - "optional": false, - "rule": { - "is": "equal", - "value": 6 - } - }, - { - "at": "/value/content_type", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "binary/octet-stream" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "aGVsbG8=" } }, { - "at": "/value/body_base64", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "b2JqZWN0" + "value": { + "author": "Ada" + } } } ], "refusal": null }, { - "id": "operations/s3/get-unauthenticated", + "id": "operations/s3/get-missing", "profile": "s3", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "get missing", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/read/object.txt", + "key": "object-tests/read/absent.txt", "op": "get" }, "exchanges": [ @@ -88603,7 +89658,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/read/absent.txt" } }, { @@ -88620,7 +89675,7 @@ ], "allow_query": [], "response": { - "status": 403, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -88629,7 +89684,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidAccessKeyIdFixture error" + "data": "\nNoSuchKeyFixture error" }, "framing": "chunked" } @@ -88649,7 +89704,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/read/absent.txt" } }, { @@ -88674,7 +89729,7 @@ ], "allow_query": [], "response": { - "status": 403, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -88683,7 +89738,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidAccessKeyIdFixture error" + "data": "\nNoSuchKeyFixture error" }, "framing": "chunked" } @@ -88705,7 +89760,7 @@ "optional": false, "rule": { "is": "equal", - "value": 403 + "value": 404 } }, { @@ -88713,21 +89768,22 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidAccessKeyId" + "value": "NoSuchKey" } } ], "refusal": null }, { - "id": "operations/s3/get-whole", + "id": "operations/s3/get-not-modified", "profile": "s3", "lane": "core", - "purpose": "get whole", + "purpose": "get not modified", "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" }, @@ -88759,6 +89815,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-ad03f2ab332a\"" + } } ], "allow_headers": [ @@ -88766,18 +89830,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 304, "headers": { - "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "etag": "\"fixture-ad03f2ab332a\"" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } }, @@ -88807,6 +89869,14 @@ "value": "" } }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-ad03f2ab332a\"" + } + }, { "at": "/headers/range", "optional": false, @@ -88821,19 +89891,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 304, "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" + "etag": "\"fixture-ad03f2ab332a\"" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -88846,65 +89913,31 @@ "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": "/status", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": 304 } } ], "refusal": null }, { - "id": "operations/s3/get-xml-looking", + "id": "operations/s3/get-precondition-failed", "profile": "s3", "lane": "core", - "purpose": "get xml looking", + "purpose": "get precondition failed", "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_match": "\"fixture-db71b2c0257c\"", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -88925,7 +89958,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -88937,35 +89970,31 @@ } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/headers/if-match", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 412, "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" + } }, "body": { - "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" - } + "encoding": "utf8", + "data": "\nPreconditionFailedFixture error" + }, + "framing": "chunked" } }, { @@ -88983,7 +90012,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -88995,15 +90024,11 @@ } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/headers/if-match", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" } }, { @@ -89015,24 +90040,23 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 412, "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" + } }, "body": { - "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" - } + "encoding": "utf8", + "data": "\nPreconditionFailedFixture error" + }, + "framing": "chunked" } } ] @@ -89044,32 +90068,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + "value": 412 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3/get-noise-tolerance", + "id": "operations/s3/get-range-inverted", "profile": "s3", "lane": "core", - "purpose": "get noise tolerance", + "purpose": "get range inverted", "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" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "end": 2, + "start": 6 + } }, "exchanges": [ { @@ -89089,66 +90124,7 @@ "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": "\"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", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -89159,45 +90135,32 @@ "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,}" + "is": "equal", + "value": "bytes=6-1" } } ], - "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": "binary/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" + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -89213,29 +90176,92 @@ "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, + "" + ] + } + }, { "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "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/get-version", + "id": "operations/s3/get-range-not-satisfiable", "profile": "s3", "lane": "core", - "purpose": "get version", + "purpose": "get range not satisfiable", "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", + "key": "object-tests/read/object.txt", "op": "get", - "version": "opaque+/version=" + "range": { + "start": 40 + } }, "exchanges": [ { @@ -89255,7 +90281,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -89267,44 +90293,31 @@ } }, { - "at": "/query/versionId", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "opaque+/version=" - } - }, - { - "at": "/headers/content-type", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "value": "bytes=40-" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 416, "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=" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nInvalidRangeFixture error" + }, + "framing": "chunked" } }, { @@ -89322,7 +90335,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -89333,54 +90346,32 @@ "value": "" } }, - { - "at": "/query/versionId", - "optional": false, - "rule": { - "is": "equal", - "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,}" + "pattern": "bytes=40-[1-9][0-9]{2,}" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 416, "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=" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nInvalidRangeFixture error" + }, + "framing": "chunked" } } ] @@ -89392,40 +90383,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/version", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "opaque+/version=" + "value": 416 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "InvalidRange" } } ], "refusal": null }, { - "id": "operations/s3/get-temporary-redirect", + "id": "operations/s3/get-range-past-the-end", "profile": "s3", "lane": "core", - "purpose": "Report a 307 TemporaryRedirect as an error", + "purpose": "get range past the end", "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" + "op": "get", + "range": { + "end": 64, + "start": 28 + } }, "exchanges": [ { @@ -89455,6 +90449,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=28-63" + } } ], "allow_headers": [ @@ -89462,21 +90464,99 @@ ], "allow_query": [], "response": { - "status": 307, + "status": 206, "headers": { - "content-type": "application/xml", + "content-range": "bytes 28-29/30", + "content-type": "binary/octet-stream", "date": { "from": "now" }, - "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt" + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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" + "encoding": "base64", + "data": "Y3Q=" + } } - }, + } + ] + } + ], + "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": 2 + } + }, + { + "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": "Y3Q=" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/get-range-single-byte", + "profile": "s3", + "lane": "core", + "purpose": "get range single byte", + "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 + } + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -89507,8 +90587,8 @@ "at": "/headers/range", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "bytes=0-0" } } ], @@ -89517,19 +90597,20 @@ ], "allow_query": [], "response": { - "status": 307, + "status": 206, "headers": { - "content-type": "application/xml", + "content-range": "bytes 0-0/30", + "content-type": "binary/octet-stream", "date": { "from": "now" }, - "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt" + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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" + "encoding": "base64", + "data": "MA==" + } } } ] @@ -89541,39 +90622,70 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 307 + "value": "\"fixture-ad03f2ab332a\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "TemporaryRedirect" + "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-wrong-region", + "id": "operations/s3/get-range", "profile": "s3", "lane": "core", - "purpose": "Report a 301 PermanentRedirect from an endpoint in another region as an error", + "purpose": "get range", "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" + "op": "get", + "range": { + "end": 6, + "start": 2 + } }, "exchanges": [ { @@ -89603,6 +90715,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=2-5" + } } ], "allow_headers": [ @@ -89610,74 +90730,20 @@ ], "allow_query": [], "response": { - "status": 301, + "status": 206, "headers": { - "content-type": "application/xml", + "content-range": "bytes 2-5/30", + "content-type": "binary/octet-stream", "date": { "from": "now" }, - "x-amz-bucket-region": "eu-central-1" + "etag": "\"fixture-ad03f2ab332a\"", + "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": "MjM0NQ==" } - ], - "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" } } ] @@ -89689,41 +90755,69 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 301 + "value": "\"fixture-ad03f2ab332a\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "PermanentRedirect" + "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-body-cut-short", + "id": "operations/s3/get-range-open", "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": "get range open", "sources": [ - "https://www.rfc-editor.org/rfc/rfc9112#section-8", - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" ], - "origin": "transient", "call": { - "key": "object-tests/read/object.txt", - "op": "get" + "key": "object", + "op": "get", + "range": { + "start": 3 + } }, "exchanges": [ { @@ -89743,7 +90837,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -89753,27 +90847,46 @@ "is": "equal", "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" + ] + } } ], - "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-ad03f2ab332a\"", - "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" - }, - "truncate_body_after": 15 + "data": "bG8=" + } } }, { @@ -89791,7 +90904,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -89802,39 +90915,83 @@ "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,}" + "pattern": "bytes=3-[1-9][0-9]{2,}" } } ], - "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-ad03f2ab332a\"", - "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" - }, - "truncate_body_after": 15 + "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/s3/get-replaced", + "profile": "s3", + "lane": "core", + "purpose": "get replaced", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "key": "object-tests/multipart/replaced.bin", + "op": "get" + }, + "exchanges": [ { "alternatives": [ { @@ -89852,7 +91009,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -89865,7 +91022,6 @@ } ], "allow_headers": [ - "content-type", "content-type" ], "allow_query": [], @@ -89876,12 +91032,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", + "etag": "\"fixture-8631a8b6edf7\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "Yg==" } } }, @@ -89900,7 +91056,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -89921,27 +91077,99 @@ } ], "allow_headers": [ - "content-type", "content-type" ], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 0-29/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", + "etag": "\"fixture-8631a8b6edf7\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "Yg==" } } - }, + } + ] + } + ], + "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": [ { @@ -89957,7 +91185,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/single.bin" } }, { @@ -89967,82 +91195,156 @@ "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", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, { - "at": "/headers/range", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "bytes=15-" + "value": "/fixture/object-tests/multipart/single.bin" } }, { - "at": "/headers/if-match", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "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": 206, "headers": { - "content-range": "bytes 15-29/30", + "content-range": "bytes 0-3/4", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", + "etag": "\"fixture-69ebdafc497f\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "Y3QtdGVzdHMtb2JqZWN0" + "data": "b25seQ==" } } } - ], - "optional": true + ] } ], "expect": [ { "at": "/outcome", "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-69ebdafc497f\"" + } + }, + { + "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": [ - "error", - "ok" + null, + "" ] } }, { "at": "/value/body_base64", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "b25seQ==" } } ], "refusal": null }, { - "id": "operations/s3/get-slow-down", + "id": "operations/s3/get-suffix-longer-than-object", "profile": "s3", "lane": "core", - "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries", + "purpose": "get suffix longer than 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" + "op": "get", + "range": { + "suffix": 100 + } }, "exchanges": [ { @@ -90072,6 +91374,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-100" + } } ], "allow_headers": [ @@ -90079,76 +91389,222 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } }, { "request": [ { - "at": "/method", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "/fixture/object-tests/read/object.txt" } }, { - "at": "/path", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "" } }, { - "at": "/body_base64", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "bytes=-100" } }, { - "at": "/headers/range", + "at": "/method", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "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": 503, + "status": 206, "headers": { - "content-type": "application/xml", + "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": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "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", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } + } + ], + "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": [ { @@ -90176,6 +91632,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-6" + } } ], "allow_headers": [ @@ -90183,77 +91647,219 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 206, "headers": { - "content-type": "application/xml", + "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": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "b2JqZWN0" + } } }, { "request": [ { - "at": "/method", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "/fixture/object-tests/read/object.txt" } }, { - "at": "/path", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "" } }, { - "at": "/body_base64", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "bytes=-6" } }, { - "at": "/headers/range", + "at": "/method", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "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": 503, + "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-ad03f2ab332a\"", + "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-ad03f2ab332a\"" + } + }, + { + "at": "/value/size", + "optional": false, + "rule": { + "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/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": [ { @@ -90288,7 +91894,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 403, "headers": { "content-type": "application/xml", "date": { @@ -90297,7 +91903,7 @@ }, "body": { "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nInvalidAccessKeyIdFixture error" }, "framing": "chunked" } @@ -90342,7 +91948,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 403, "headers": { "content-type": "application/xml", "date": { @@ -90351,14 +91957,55 @@ }, "body": { "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nInvalidAccessKeyIdFixture error" }, "framing": "chunked" } } - ], - "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": "InvalidAccessKeyId" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/get-whole", + "profile": "s3", + "lane": "core", + "purpose": "get whole", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "key": "object-tests/read/object.txt", + "op": "get" + }, + "exchanges": [ { "alternatives": [ { @@ -90393,18 +92040,19 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } }, { @@ -90447,23 +92095,93 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "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/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/get-xml-looking", + "profile": "s3", + "lane": "core", + "purpose": "get xml looking", + "sources": [ + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" + ], + "call": { + "key": "object", + "op": "get" + }, + "exchanges": [ { "alternatives": [ { @@ -90481,7 +92199,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -90491,25 +92209,37 @@ "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": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + } } }, { @@ -90527,7 +92257,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -90539,36 +92269,83 @@ } }, { - "at": "/headers/range", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } + "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": 503, + "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-amz-request-id": "fixture-request-id" }, "body": { - "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + } } } - ], - "optional": true + ] + } + ], + "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": [ { @@ -90586,7 +92363,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -90596,25 +92373,38 @@ "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": 503, + "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-amz-request-id": "another-id", + "x-fixture-unknown": "ignored" }, "body": { - "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "aGVsbG8=" + } } }, { @@ -90632,7 +92422,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -90643,6 +92433,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, @@ -90652,27 +92454,28 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 503, + "status": 206, "headers": { - "content-type": "application/xml", + "content-range": "bytes 0-4/5", + "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": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "aGVsbG8=" + } } } - ], - "optional": true + ] } ], "expect": [ @@ -90681,40 +92484,32 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 503 + "value": "ok" } }, { - "at": "/code", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "SlowDown" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3/get-if-unmodified-since-past", + "id": "operations/s3/get-version", "profile": "s3", "lane": "core", - "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", + "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": { - "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", - "key": "object-tests/read/object.txt", - "op": "get" + "key": "object", + "op": "get", + "version": "opaque+/version=" }, "exchanges": [ { @@ -90734,7 +92529,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -90746,31 +92541,44 @@ } }, { - "at": "/headers/if-unmodified-since", + "at": "/query/versionId", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "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": 412, + "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": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "aGVsbG8=" + } } }, { @@ -90788,7 +92596,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -90800,39 +92608,53 @@ } }, { - "at": "/headers/range", + "at": "/query/versionId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "opaque+/version=" } }, { - "at": "/headers/if-unmodified-since", + "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": "Sat, 01 Jan 2000 00:00:00 GMT" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "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", + "x-amz-version-id": "opaque+/version=" }, "body": { - "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "aGVsbG8=" + } } } ] @@ -90844,38 +92666,38 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "opaque+/version=" } }, { - "at": "/code", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3/get-if-modified-since-future", + "id": "operations/s3/get-temporary-redirect", "profile": "s3", "lane": "core", - "purpose": "Read an object when If-Modified-Since names a future date", + "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": { - "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT", "key": "object-tests/read/object.txt", "op": "get" }, @@ -90907,14 +92729,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-modified-since", - "optional": false, - "rule": { - "is": "equal", - "value": "Fri, 01 Jan 2100 00:00:00 GMT" - } } ], "allow_headers": [ @@ -90922,19 +92736,19 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 307, "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" + "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt" }, "body": { - "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } + "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" } }, { @@ -90970,14 +92784,6 @@ "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" - } } ], "allow_headers": [ @@ -90985,20 +92791,19 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 307, "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" + "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt" }, "body": { - "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } + "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" } } ] @@ -91010,65 +92815,37 @@ "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 + "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": 307 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "TemporaryRedirect" } } ], "refusal": null }, { - "id": "operations/s3/get-if-modified-since-past", + "id": "operations/s3/get-wrong-region", "profile": "s3", "lane": "core", - "purpose": "Read an object modified since a past date", + "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_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT", "key": "object-tests/read/object.txt", "op": "get" }, @@ -91100,14 +92877,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-modified-since", - "optional": false, - "rule": { - "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" - } } ], "allow_headers": [ @@ -91115,19 +92884,19 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 301, "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" + "x-amz-bucket-region": "eu-central-1" }, "body": { - "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } + "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" } }, { @@ -91163,14 +92932,6 @@ "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" - } } ], "allow_headers": [ @@ -91178,20 +92939,19 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 301, "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" + "x-amz-bucket-region": "eu-central-1" }, "body": { - "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } + "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" } } ] @@ -91203,63 +92963,38 @@ "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 + "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": 301 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "PermanentRedirect" } } ], "refusal": null }, { - "id": "operations/s3/get-content-encoding-gzip", + "id": "operations/s3/get-body-cut-short", "profile": "s3", "lane": "core", - "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them", + "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/read/object.txt", "op": "get" @@ -91301,7 +93036,6 @@ "response": { "status": 200, "headers": { - "content-encoding": "gzip", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -91311,8 +93045,9 @@ }, "body": { "encoding": "base64", - "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" - } + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + }, + "truncate_body_after": 15 } }, { @@ -91357,8 +93092,7 @@ "response": { "status": 206, "headers": { - "content-encoding": "gzip", - "content-range": "bytes 0-41/42", + "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -91368,89 +93102,13 @@ }, "body": { "encoding": "base64", - "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" - } + "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-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": [ { @@ -91481,16 +93139,14 @@ } ], "allow_headers": [ + "content-type", "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", + "content-type": "binary/octet-stream", "date": { "from": "now" }, @@ -91539,17 +93195,15 @@ } ], "allow_headers": [ + "content-type", "content-type" ], "allow_query": [], "response": { "status": 206, "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": "binary/octet-stream", "date": { "from": "now" }, @@ -91561,104 +93215,7 @@ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } - } - ] - } - ], - "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": [ { @@ -91666,7 +93223,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -91674,7 +93231,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -91684,30 +93241,45 @@ "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\"" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-length": "5242886", + "content-range": "bytes 15-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ae1b6d1d32ce\"", + "etag": "\"fixture-ad03f2ab332a\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "" + "data": "Y3QtdGVzdHMtb2JqZWN0" } } } - ] + ], + "optional": true } ], "expect": [ @@ -91715,59 +93287,36 @@ "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" + "is": "one_of", + "values": [ + "error", + "ok" + ] } }, { - "at": "/value/version", + "at": "/value/body_base64", "optional": true, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3/head-metadata", + "id": "operations/s3/get-slow-down", "profile": "s3", "lane": "core", - "purpose": "head metadata", + "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/object.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -91779,7 +93328,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -91787,7 +93336,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -91804,100 +93353,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 503, "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": "\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/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": [ { @@ -91905,7 +93374,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -91913,7 +93382,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -91923,6 +93392,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" + } } ], "allow_headers": [ @@ -91930,7 +93407,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 503, "headers": { "content-type": "application/xml", "date": { @@ -91938,47 +93415,14 @@ } }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "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": 404 - } - } - ], - "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": [ { @@ -91988,7 +93432,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92013,87 +93457,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 503, "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": "\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-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": [ { @@ -92101,7 +93478,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92119,6 +93496,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" + } } ], "allow_headers": [ @@ -92126,113 +93511,233 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 503, "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-ad03f2ab332a\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ + ], + "optional": true + }, { - "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" - } + "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": 503, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nSlowDownPlease 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/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": 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/content_disposition", - "optional": false, - "rule": { - "is": "equal", - "value": "attachment; filename=\"report.txt\"" - } + "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": 503, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nSlowDownPlease 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/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": 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/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": [ { @@ -92242,7 +93747,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92260,13 +93765,59 @@ "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" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, { - "at": "/headers/if-unmodified-since", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "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,}" } } ], @@ -92275,53 +93826,23 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 503, "headers": { + "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "empty" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "error" - } + ], + "optional": true }, - { - "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": [ { @@ -92331,7 +93852,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92339,7 +93860,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/classes/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -92356,22 +93877,76 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 503, "headers": { - "content-length": "5", + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-etag\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-storage-class": "STANDARD_IA" + } }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "\nSlowDownPlease 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/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": 503, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -92380,31 +93955,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/storage_class", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "STANDARD_IA" + "value": 503 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "SlowDown" } } ], "refusal": null }, { - "id": "operations/s3/head-bucket", + "id": "operations/s3/get-if-unmodified-since-past", "profile": "s3", "lane": "core", - "purpose": "Confirm that a bucket exists", + "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "bucket": "fixture", - "op": "s3.head_bucket" + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -92416,7 +94000,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92424,7 +94008,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -92434,6 +94018,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-unmodified-since", + "optional": false, + "rule": { + "is": "equal", + "value": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [ @@ -92441,48 +94033,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 412, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "x-amz-bucket-region": "eu-central-1" + } }, "body": { - "encoding": "empty" - } + "encoding": "utf8", + "data": "\nPreconditionFailedFixture error" + }, + "framing": "chunked" } - } - ] - } - ], - "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": [ { @@ -92490,7 +94054,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92498,7 +94062,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests-absent" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -92508,6 +94072,22 @@ "is": "equal", "value": "" } + }, + { + "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": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [ @@ -92515,15 +94095,18 @@ ], "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" } } ] @@ -92543,23 +94126,32 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3/head-key-question", + "id": "operations/s3/get-if-modified-since-future", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"question?mark.txt\"", + "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/keys/question?mark.txt", - "op": "head" + "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -92571,7 +94163,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92579,7 +94171,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -92589,6 +94181,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-modified-since", + "optional": false, + "rule": { + "is": "equal", + "value": "Fri, 01 Jan 2100 00:00:00 GMT" + } } ], "allow_headers": [ @@ -92598,7 +94198,6 @@ "response": { "status": 200, "headers": { - "content-length": "30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -92608,7 +94207,71 @@ }, "body": { "encoding": "base64", - "data": "" + "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": "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" + } + } + ], + "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" } } } @@ -92658,21 +94321,30 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } ], "refusal": null }, { - "id": "operations/s3/head-key-hash", + "id": "operations/s3/get-if-modified-since-past", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"hash#tag.txt\"", + "purpose": "Read an object modified since a past date", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/hash#tag.txt", - "op": "head" + "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -92684,7 +94356,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92692,7 +94364,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -92702,6 +94374,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-modified-since", + "optional": false, + "rule": { + "is": "equal", + "value": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [ @@ -92711,7 +94391,6 @@ "response": { "status": 200, "headers": { - "content-length": "30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -92721,7 +94400,71 @@ }, "body": { "encoding": "base64", - "data": "" + "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": "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" + } + } + ], + "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" } } } @@ -92771,21 +94514,29 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } ], "refusal": null }, { - "id": "operations/s3/head-key-percent", + "id": "operations/s3/get-content-encoding-gzip", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"percent%20.txt\"", + "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/keys/percent%20.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -92797,7 +94548,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92805,7 +94556,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -92824,7 +94575,7 @@ "response": { "status": 200, "headers": { - "content-length": "30", + "content-encoding": "gzip", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -92834,7 +94585,64 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + } + } + }, + { + "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": 206, + "headers": { + "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": "base64", + "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } } } @@ -92863,7 +94671,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 42 } }, { @@ -92884,21 +94692,37 @@ "" ] } + }, + { + "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/head-key-plus", + "id": "operations/s3/get-content-properties", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"plus+plus.txt\"", + "purpose": "Return the stored content properties from a GET", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/plus+plus.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -92910,7 +94734,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -92918,7 +94742,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -92937,8 +94761,10 @@ "response": { "status": 200, "headers": { - "content-length": "30", - "content-type": "binary/octet-stream", + "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" }, @@ -92947,7 +94773,66 @@ }, "body": { "encoding": "base64", - "data": "" + "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": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 206, + "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", + "date": { + "from": "now" + }, + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + }, + "body": { + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -92979,14 +94864,6 @@ "value": 30 } }, - { - "at": "/value/content_type", - "optional": false, - "rule": { - "is": "equal", - "value": "binary/octet-stream" - } - }, { "at": "/value/version", "optional": true, @@ -92997,20 +94874,60 @@ "" ] } + }, + { + "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-key-space", + "id": "operations/s3/head-committed", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"space name.txt\"", + "purpose": "head committed", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/space name.txt", + "key": "object-tests/multipart/object.bin", "op": "head" }, "exchanges": [ @@ -93031,7 +94948,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -93050,12 +94967,12 @@ "response": { "status": 200, "headers": { - "content-length": "30", + "content-length": "5242886", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", + "etag": "\"fixture-ae1b6d1d32ce\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -93081,7 +94998,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "value": "\"fixture-ae1b6d1d32ce\"" } }, { @@ -93089,7 +95006,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 5242886 } }, { @@ -93115,15 +95032,15 @@ "refusal": null }, { - "id": "operations/s3/head-key-non-ascii", + "id": "operations/s3/head-metadata", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"café/雪.txt\"", + "purpose": "head metadata", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/café/雪.txt", + "key": "object-tests/metadata/object.txt", "op": "head" }, "exchanges": [ @@ -93144,7 +95061,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -93163,13 +95080,15 @@ "response": { "status": 200, "headers": { - "content-length": "30", + "content-length": "1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ad03f2ab332a\"", - "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-name": "value", + "x-amz-meta-second": "2" }, "body": { "encoding": "base64", @@ -93194,7 +95113,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ad03f2ab332a\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -93202,7 +95121,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -93223,20 +95142,31 @@ "" ] } - } - ], + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "name": "value", + "second": "2" + } + } + } + ], "refusal": null }, { - "id": "operations/s3/head-key-double-slash", + "id": "operations/s3/head-missing", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"double//slash.txt\"", + "purpose": "head missing", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/double//slash.txt", + "key": "object-tests/read/absent.txt", "op": "head" }, "exchanges": [ @@ -93257,7 +95187,90 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/read/absent.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 404, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "base64", + "data": "" + } + } + } + ] + } + ], + "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", + "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": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -93341,15 +95354,15 @@ "refusal": null }, { - "id": "operations/s3/head-key-trailing-slash", + "id": "operations/s3/head-content-properties", "profile": "s3", "lane": "core", - "purpose": "head, with the key \"trailing-slash/\"", + "purpose": "Return the stored content properties from a HEAD", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/trailing-slash/", + "key": "object-tests/read/object.txt", "op": "head" }, "exchanges": [ @@ -93370,7 +95383,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -93389,8 +95402,11 @@ "response": { "status": 200, "headers": { + "cache-control": "max-age=3600", + "content-disposition": "attachment; filename=\"report.txt\"", + "content-language": "nl-NL", "content-length": "30", - "content-type": "binary/octet-stream", + "content-type": "text/plain; charset=utf-8", "date": { "from": "now" }, @@ -93431,14 +95447,6 @@ "value": 30 } }, - { - "at": "/value/content_type", - "optional": false, - "rule": { - "is": "equal", - "value": "binary/octet-stream" - } - }, { "at": "/value/version", "optional": true, @@ -93449,22 +95457,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/s3/list-bad-marker", + "id": "operations/s3/head-if-unmodified-since-past", "profile": "s3", "lane": "core", - "purpose": "Report S3's 400 InvalidArgument for a continuation token it did not issue", + "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": { - "continuation_token": "fixture-marker+/ce6f21ae951d=", - "op": "list_page", - "prefix": "object-tests/board/" + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "head" }, "exchanges": [ { @@ -93476,7 +95516,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -93484,7 +95524,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -93496,27 +95536,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/if-unmodified-since", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/ce6f21ae951d=" + "value": "Sat, 01 Jan 2000 00:00:00 GMT" } } ], @@ -93525,20 +95549,55 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { - "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "utf8", - "data": "\nInvalidArgumentFixture error" - }, - "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": [ { @@ -93546,7 +95605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -93554,7 +95613,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/classes/object.txt" } }, { @@ -93564,38 +95623,6 @@ "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=" - } - }, - { - "at": "/query/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" - } } ], "allow_headers": [ @@ -93603,18 +95630,19 @@ ], "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", + "x-amz-storage-class": "STANDARD_IA" }, "body": { - "encoding": "utf8", - "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-tokenNQMNJ1VWXJVB4568Xe4ibV4/CeMc0lPl/vnTn1PlV2EEGNHZ+ST6o8IyEOh1TYXGMx01Jf1TkbwfTtRpHhsL/Tjn/tA=" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -93626,39 +95654,31 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 400 + "value": "ok" } }, { - "at": "/code", + "at": "/value/storage_class", "optional": false, "rule": { "is": "equal", - "value": "InvalidArgument" + "value": "STANDARD_IA" } } ], "refusal": null }, { - "id": "operations/s3/list-bucket-missing", + "id": "operations/s3/head-bucket", "profile": "s3", "lane": "core", - "purpose": "Report 404 NoSuchBucket for a bucket that does not exist", + "purpose": "Confirm that a bucket exists", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html" ], "call": { - "op": "list_page", - "prefix": "" + "bucket": "fixture", + "op": "s3.head_bucket" }, "exchanges": [ { @@ -93670,7 +95690,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -93688,22 +95708,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", - "optional": true, - "rule": { - "is": "equal", - "value": "" - } } ], "allow_headers": [ @@ -93711,20 +95715,48 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-amz-bucket-region": "eu-central-1" }, "body": { - "encoding": "utf8", - "data": "\nNoSuchBucketFixture error" - }, - "framing": "chunked" + "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": [ { @@ -93732,7 +95764,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -93740,7 +95772,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/object-tests-absent" } }, { @@ -93750,30 +95782,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", - "optional": true, - "rule": { - "is": "equal", - "value": "" - } - }, - { - "at": "/query/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" - } } ], "allow_headers": [ @@ -93783,16 +95791,13 @@ "response": { "status": 404, "headers": { - "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "utf8", - "data": "\nNoSuchBucketThe specified bucket does not existno-such-bucket-object-testsD3APHS8Y67RT769N4yxkwV/1e8tBe6qQpZ/nVXK6SoorCzIGPjfs539Nq5RPVrfpF9lCuc/OPebqgIzKjrXkTAgalEM=" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -93814,30 +95819,21 @@ "is": "equal", "value": 404 } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "NoSuchBucket" - } } ], "refusal": null }, { - "id": "operations/s3/list-delimited", + "id": "operations/s3/head-key-question", "profile": "s3", "lane": "core", - "purpose": "Send the delimiter, and report the keys it groups as common prefixes, not as entries", + "purpose": "head, with the key \"question?mark.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/board/" + "key": "object-tests/keys/question?mark.txt", + "op": "head" }, "exchanges": [ { @@ -93849,7 +95845,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -93857,7 +95853,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -93867,30 +95863,6 @@ "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": "/" - } } ], "allow_headers": [ @@ -93900,19 +95872,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": "\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": "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-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": [ { @@ -93920,7 +95958,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -93928,7 +95966,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -93938,38 +95976,6 @@ "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/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" - } } ], "allow_headers": [ @@ -93979,17 +95985,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": "\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": "" + } } } ] @@ -94005,31 +96012,31 @@ } }, { - "at": "/value/entries/0/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "\"fixture-ad03f2ab332a\"" } }, { - "at": "/value/entries/0/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 30 } }, { - "at": "/value/entries/0/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-1d83e6eb69df\"" + "value": "binary/octet-stream" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -94038,55 +96045,111 @@ "" ] } - }, + } + ], + "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": [ { - "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": "/fixture/object-tests/keys/percent%20.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 200, + "headers": { + "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": "base64", + "data": "" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/0/is_current_version", - "optional": true, + "at": "/outcome", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - false - ] + "is": "equal", + "value": "ok" } }, { - "at": "/value/entries/1/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "\"fixture-ad03f2ab332a\"" } }, { - "at": "/value/entries/1/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 30 } }, { - "at": "/value/entries/1/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4d347fee6a7b\"" + "value": "binary/octet-stream" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -94095,75 +96158,134 @@ "" ] } - }, + } + ], + "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": [ { - "at": "/value/entries/1/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": "/fixture/object-tests/keys/plus+plus.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 200, + "headers": { + "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": "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": "ok" } }, { - "at": "/value/entries", + "at": "/value/etag", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "is": "equal", + "value": "\"fixture-ad03f2ab332a\"" } }, { - "at": "/value/prefixes/0", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/" + "value": 30 } }, { - "at": "/value/prefixes", + "at": "/value/content_type", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "binary/octet-stream" } }, { - "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-empty", + "id": "operations/s3/head-key-space", "profile": "s3", "lane": "core", - "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token", + "purpose": "head, with the key \"space name.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "op": "list_page", - "prefix": "object-tests/nothing/" + "key": "object-tests/keys/space name.txt", + "op": "head" }, "exchanges": [ { @@ -94175,7 +96297,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -94183,7 +96305,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -94193,22 +96315,6 @@ "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/nothing/" - } } ], "allow_headers": [ @@ -94218,19 +96324,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": "\nfixtureobject-tests/nothing/01000false" - }, - "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": [ { @@ -94238,7 +96410,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -94246,7 +96418,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -94256,30 +96428,6 @@ "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/nothing/" - } - }, - { - "at": "/query/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" - } } ], "allow_headers": [ @@ -94289,17 +96437,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": "\nfixtureobject-tests/nothing/01000urlfalse" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -94315,43 +96464,54 @@ } }, { - "at": "/value/entries", + "at": "/value/etag", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "\"fixture-ad03f2ab332a\"" } }, { - "at": "/value/prefixes", + "at": "/value/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 30 } }, { - "at": "/value/continuation_token", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "binary/octet-stream" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/list-all-empty", + "id": "operations/s3/head-key-double-slash", "profile": "s3", "lane": "core", - "purpose": "Report an empty bucket as an empty listing", + "purpose": "head, with the key \"double//slash.txt\"", "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": "" + "key": "object-tests/keys/double//slash.txt", + "op": "head" }, "exchanges": [ { @@ -94363,7 +96523,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -94371,7 +96531,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -94381,56 +96541,94 @@ "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" + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 200, + "headers": { + "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": "base64", - "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg==" - }, - "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-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": [ { @@ -94438,7 +96636,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -94446,7 +96644,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -94456,62 +96654,27 @@ "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": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "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": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+" - }, - "framing": "chunked" + "data": "" + } } } ] @@ -94527,27 +96690,55 @@ } }, { - "at": "/value/keys", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": [] + "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-xml-escaped", + "id": "operations/s3/list-bad-marker", "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": "Report S3's 400 InvalidArgument for a continuation token it did not issue", "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": "" + "continuation_token": "fixture-marker+/ce6f21ae951d=", + "op": "list_page", + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -94588,41 +96779,36 @@ }, { "at": "/query/prefix", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "" + "value": "object-tests/board/" } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/query/continuation-token", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "equal", + "value": "fixture-marker+/ce6f21ae951d=" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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=" + "encoding": "utf8", + "data": "\nInvalidArgumentFixture error" }, "framing": "chunked" } @@ -94663,22 +96849,18 @@ }, { "at": "/query/prefix", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "" + "value": "object-tests/board/" } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/query/continuation-token", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "equal", + "value": "fixture-marker+/ce6f21ae951d=" } }, { @@ -94690,22 +96872,21 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEtleT5hJTI2YjwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48S2V5PmMlM0NkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg==" + "encoding": "utf8", + "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-tokenNQMNJ1VWXJVB4568Xe4ibV4/CeMc0lPl/vnTn1PlV2EEGNHZ+ST6o8IyEOh1TYXGMx01Jf1TkbwfTtRpHhsL/Tjn/tA=" }, "framing": "chunked" } @@ -94719,34 +96900,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/keys", + "at": "/status", "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" + "data": "\nNoSuchBucketFixture error" }, "framing": "chunked" } @@ -94850,10 +97035,10 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/names/" + "value": "" } }, { @@ -94870,17 +97055,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/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" + "data": "\nNoSuchBucketThe specified bucket does not existno-such-bucket-object-testsD3APHS8Y67RT769N4yxkwV/1e8tBe6qQpZ/nVXK6SoorCzIGPjfs539Nq5RPVrfpF9lCuc/OPebqgIzKjrXkTAgalEM=" }, "framing": "chunked" } @@ -94894,617 +97078,39 @@ "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": "object-tests/names/space name.txt" - } - }, - { - "at": "/value/entries/9/size", - "optional": false, - "rule": { - "is": "equal", - "value": 1 + "value": "error" } }, { - "at": "/value/entries/9/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" - } - }, - { - "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", - "optional": false, - "rule": { - "is": "array_length", - "value": 10 - } - }, - { - "at": "/value/prefixes", - "optional": false, - "rule": { - "is": "array_length", - "value": 0 + "value": 404 } }, { - "at": "/value/continuation_token", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "NoSuchBucket" } } ], "refusal": null }, { - "id": "operations/s3/list-first-page", + "id": "operations/s3/list-delimited", "profile": "s3", "lane": "core", - "purpose": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token", + "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": { + "delimiter": "/", "op": "list_page", - "page_size": 2, "prefix": "object-tests/board/" }, "exchanges": [ @@ -95553,11 +97159,11 @@ } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } } ], @@ -95576,7 +97182,7 @@ }, "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" + "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" } @@ -95624,11 +97230,11 @@ } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { @@ -95655,7 +97261,7 @@ }, "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" + "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" } @@ -95734,7 +97340,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/c.txt" + "value": "object-tests/board/z.txt" } }, { @@ -95742,7 +97348,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -95750,7 +97356,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-a1cfb9bcbc61\"" + "value": "\"fixture-4d347fee6a7b\"" } }, { @@ -95794,12 +97400,20 @@ "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": 0 + "value": 1 } }, { @@ -95807,23 +97421,23 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/e389f71e4c3c=" + "value": "" } } ], "refusal": null }, { - "id": "operations/s3/list-buckets", + "id": "operations/s3/list-empty", "profile": "s3", "lane": "core", - "purpose": "List the buckets whose names start with a prefix", + "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "op": "s3.list_buckets", - "prefix": "object-tests-listed-" + "op": "list_page", + "prefix": "object-tests/nothing/" }, "exchanges": [ { @@ -95843,7 +97457,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture" } }, { @@ -95854,12 +97468,20 @@ "value": "" } }, + { + "at": "/query/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, { "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "object-tests-listed-" + "value": "object-tests/nothing/" } } ], @@ -95873,58 +97495,16 @@ "content-type": "application/xml", "date": { "from": "now" - } + }, + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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-" + "data": "\nfixtureobject-tests/nothing/01000false" }, "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": "operations/s3/list-service-unavailable", - "profile": "s3", - "lane": "core", - "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries", - "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" - ], - "origin": "transient", - "call": { - "op": "list_page", - "page_size": 2, - "prefix": "object-tests/board/" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -95964,15 +97544,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/nothing/" } }, { - "at": "/query/max-keys", + "at": "/query/encoding-type", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "url" } } ], @@ -95981,712 +97561,73 @@ ], "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" - } - }, - { - "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/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": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 503, - "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" + "data": "\nfixtureobject-tests/nothing/01000urlfalse" }, "framing": "chunked" } } ] - }, + } + ], + "expect": [ { - "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/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": [ - "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": "/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/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": [ - "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" - } - } - ], - "optional": true + "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" - } - }, - { - "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" - } - } - ], - "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": "/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/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": [ - "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" - } - } - ], - "optional": true + "at": "/value/entries", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } }, { - "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/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": [ - "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": "/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/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": [ - "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" - } - } - ], - "optional": true + "at": "/value/prefixes", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } }, { - "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/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": [ - "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": "/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/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": [ - "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" - } - } - ], - "optional": true - }, + "at": "/value/continuation_token", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/list-all-empty", + "profile": "s3", + "lane": "core", + "purpose": "Report an empty bucket as an empty listing", + "sources": [ + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html" + ], + "call": { + "op": "list", + "prefix": "" + }, + "exchanges": [ { "alternatives": [ { @@ -96725,36 +97666,41 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "" } }, { - "at": "/query/max-keys", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "2" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } } ], - "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": "\nServiceUnavailablePlease reduce your request rate.fixture" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg==" }, "framing": "chunked" } @@ -96795,18 +97741,22 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "" } }, { - "at": "/query/max-keys", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "2" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -96818,27 +97768,27 @@ } } ], - "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": "\nServiceUnavailablePlease reduce your request rate.fixture" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -96847,40 +97797,31 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 503 + "value": "ok" } }, { - "at": "/code", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "ServiceUnavailable" + "value": [] } } ], "refusal": null }, { - "id": "operations/s3/list-key-equal-to-prefix-delimited", + "id": "operations/s3/list-xml-escaped", "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": "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": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/exact" + "op": "list", + "prefix": "" }, "exchanges": [ { @@ -96921,24 +97862,26 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "" } }, { - "at": "/query/delimiter", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "/" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -96947,11 +97890,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": "\nfixtureobject-tests/exact21000/falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxLZXk+YSZhbXA7YjwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48S2V5PmMmbHQ7ZDwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4=" }, "framing": "chunked" } @@ -96992,18 +97937,22 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "" } }, { - "at": "/query/delimiter", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "/" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -97015,9 +97964,7 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -97026,11 +97973,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": "\nfixtureobject-tests/exact21000/urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEtleT5hJTI2YjwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48S2V5PmMlM0NkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg==" }, "framing": "chunked" } @@ -97048,108 +97997,30 @@ } }, { - "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/keys", "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": [ + "a&b", + "c\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" + "data": "\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" } @@ -97256,7 +98127,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/names/" } }, { @@ -97283,7 +98154,7 @@ }, "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": "\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" } @@ -97305,7 +98176,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/names/100%-name.txt" } }, { @@ -97362,7 +98233,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact/child" + "value": "object-tests/names/a&b.txt" } }, { @@ -97415,458 +98286,31 @@ } }, { - "at": "/value/entries", + "at": "/value/entries/2/key", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "is": "equal", + "value": "object-tests/names/back\\slash.txt" } }, { - "at": "/value/prefixes", + "at": "/value/entries/2/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 1 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-6c30b210f0a8\"" } - } - ], - "refusal": null - }, - { - "id": "operations/s3/list-max-keys-zero", - "profile": "s3", - "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": "/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/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "0" - } - } - ], - "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" - }, - "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/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "0" - } - }, - { - "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" - }, - "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/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": [ - { - "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/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": [ - "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/fixture-marker+/e389f71e4c3c=12falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD" - }, - "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/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" - } - } - ], - "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/1Wq36E269xkU5vpIr/uygMR7VLsOKyVtFFrZWipPwts7vqVlbsEy3gO3B+OwtpoKO55bImoZ/vlKYSYk9sDrkkYTFp1MK3Yy/pV5VyzD7p/s=12urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD" - }, - "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-4d347fee6a7b\"" - } - }, - { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -97877,7 +98321,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/2/version", "optional": true, "rule": { "is": "one_of", @@ -97888,7 +98332,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/2/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -97899,220 +98343,15 @@ } }, { - "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", - "profile": "s3", - "lane": "core", - "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": { - "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/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": [ - "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/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" - } - }, - { - "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/order/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" - } - }, - { - "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/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" - } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/entries/0/key", + "at": "/value/entries/3/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "object-tests/names/café.txt" } }, { - "at": "/value/entries/0/size", + "at": "/value/entries/3/size", "optional": false, "rule": { "is": "equal", @@ -98120,7 +98359,7 @@ } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/3/etag", "optional": false, "rule": { "is": "equal", @@ -98128,7 +98367,7 @@ } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/3/snapshot", "optional": true, "rule": { "is": "one_of", @@ -98139,7 +98378,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/3/version", "optional": true, "rule": { "is": "one_of", @@ -98150,7 +98389,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/3/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -98161,15 +98400,15 @@ } }, { - "at": "/value/entries/1/key", + "at": "/value/entries/4/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/names/ctrl\u0001.txt" } }, { - "at": "/value/entries/1/size", + "at": "/value/entries/4/size", "optional": false, "rule": { "is": "equal", @@ -98177,7 +98416,7 @@ } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/4/etag", "optional": false, "rule": { "is": "equal", @@ -98185,7 +98424,7 @@ } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/4/snapshot", "optional": true, "rule": { "is": "one_of", @@ -98196,7 +98435,7 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/4/version", "optional": true, "rule": { "is": "one_of", @@ -98207,7 +98446,7 @@ } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/4/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -98218,15 +98457,15 @@ } }, { - "at": "/value/entries/2/key", + "at": "/value/entries/5/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a-b" + "value": "object-tests/names/hash#tag.txt" } }, { - "at": "/value/entries/2/size", + "at": "/value/entries/5/size", "optional": false, "rule": { "is": "equal", @@ -98234,7 +98473,7 @@ } }, { - "at": "/value/entries/2/etag", + "at": "/value/entries/5/etag", "optional": false, "rule": { "is": "equal", @@ -98242,7 +98481,7 @@ } }, { - "at": "/value/entries/2/snapshot", + "at": "/value/entries/5/snapshot", "optional": true, "rule": { "is": "one_of", @@ -98253,7 +98492,7 @@ } }, { - "at": "/value/entries/2/version", + "at": "/value/entries/5/version", "optional": true, "rule": { "is": "one_of", @@ -98264,7 +98503,7 @@ } }, { - "at": "/value/entries/2/is_current_version", + "at": "/value/entries/5/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -98275,15 +98514,15 @@ } }, { - "at": "/value/entries/3/key", + "at": "/value/entries/6/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a.txt" + "value": "object-tests/names/percent%20.txt" } }, { - "at": "/value/entries/3/size", + "at": "/value/entries/6/size", "optional": false, "rule": { "is": "equal", @@ -98291,7 +98530,7 @@ } }, { - "at": "/value/entries/3/etag", + "at": "/value/entries/6/etag", "optional": false, "rule": { "is": "equal", @@ -98299,7 +98538,7 @@ } }, { - "at": "/value/entries/3/snapshot", + "at": "/value/entries/6/snapshot", "optional": true, "rule": { "is": "one_of", @@ -98310,7 +98549,7 @@ } }, { - "at": "/value/entries/3/version", + "at": "/value/entries/6/version", "optional": true, "rule": { "is": "one_of", @@ -98321,7 +98560,7 @@ } }, { - "at": "/value/entries/3/is_current_version", + "at": "/value/entries/6/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -98332,15 +98571,15 @@ } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/7/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a0" + "value": "object-tests/names/plus+plus.txt" } }, { - "at": "/value/entries/4/size", + "at": "/value/entries/7/size", "optional": false, "rule": { "is": "equal", @@ -98348,7 +98587,7 @@ } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/7/etag", "optional": false, "rule": { "is": "equal", @@ -98356,7 +98595,7 @@ } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/7/snapshot", "optional": true, "rule": { "is": "one_of", @@ -98367,7 +98606,7 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/7/version", "optional": true, "rule": { "is": "one_of", @@ -98378,7 +98617,7 @@ } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/7/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -98389,15 +98628,15 @@ } }, { - "at": "/value/entries/5/key", + "at": "/value/entries/8/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "value": "object-tests/names/q?mark.txt" } }, { - "at": "/value/entries/5/size", + "at": "/value/entries/8/size", "optional": false, "rule": { "is": "equal", @@ -98405,7 +98644,7 @@ } }, { - "at": "/value/entries/5/etag", + "at": "/value/entries/8/etag", "optional": false, "rule": { "is": "equal", @@ -98413,7 +98652,7 @@ } }, { - "at": "/value/entries/5/snapshot", + "at": "/value/entries/8/snapshot", "optional": true, "rule": { "is": "one_of", @@ -98424,7 +98663,7 @@ } }, { - "at": "/value/entries/5/version", + "at": "/value/entries/8/version", "optional": true, "rule": { "is": "one_of", @@ -98435,7 +98674,7 @@ } }, { - "at": "/value/entries/5/is_current_version", + "at": "/value/entries/8/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -98446,15 +98685,15 @@ } }, { - "at": "/value/entries/6/key", + "at": "/value/entries/9/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/é" + "value": "object-tests/names/space name.txt" } }, { - "at": "/value/entries/6/size", + "at": "/value/entries/9/size", "optional": false, "rule": { "is": "equal", @@ -98462,7 +98701,7 @@ } }, { - "at": "/value/entries/6/etag", + "at": "/value/entries/9/etag", "optional": false, "rule": { "is": "equal", @@ -98470,7 +98709,7 @@ } }, { - "at": "/value/entries/6/snapshot", + "at": "/value/entries/9/snapshot", "optional": true, "rule": { "is": "one_of", @@ -98481,7 +98720,7 @@ } }, { - "at": "/value/entries/6/version", + "at": "/value/entries/9/version", "optional": true, "rule": { "is": "one_of", @@ -98492,7 +98731,7 @@ } }, { - "at": "/value/entries/6/is_current_version", + "at": "/value/entries/9/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -98507,15 +98746,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 7 - } - }, - { - "at": "/value/prefixes/0", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/order/a/" + "value": 10 } }, { @@ -98523,7 +98754,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 0 } }, { @@ -98538,16 +98769,17 @@ "refusal": null }, { - "id": "operations/s3/list-order", + "id": "operations/s3/list-first-page", "profile": "s3", "lane": "core", - "purpose": "Report the entries in the order S3 sends them, without sorting them again", + "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", - "prefix": "object-tests/order/" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -98591,7 +98823,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } } ], @@ -98610,7 +98850,7 @@ }, "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" + "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" } @@ -98654,7 +98894,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -98681,7 +98929,7 @@ }, "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": "\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" } @@ -98703,7 +98951,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "object-tests/board/a.txt" } }, { @@ -98711,7 +98959,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 8 } }, { @@ -98719,7 +98967,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-1d83e6eb69df\"" } }, { @@ -98760,7 +99008,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/board/nested/c.txt" } }, { @@ -98776,7 +99024,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-a1cfb9bcbc61\"" } }, { @@ -98813,387 +99061,142 @@ } }, { - "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", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/order/a.txt" + "is": "array_length", + "value": 2 } }, { - "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-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": "fixture-marker+/e389f71e4c3c=" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/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": [ { - "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": "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": "/value/entries/4/size", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "ok" } }, { - "at": "/value/entries/4/etag", + "at": "/value/buckets", "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 + "value": [ + "object-tests-listed-a", + "object-tests-listed-b" ] } - }, - { - "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-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/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": [ + } + ], + "refusal": null + }, + { + "id": "operations/s3/list-service-unavailable", + "profile": "s3", + "lane": "core", + "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries", + "sources": [ + "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" + ], + "origin": "transient", + "call": { + "op": "list_page", + "page_size": 2, + "prefix": "object-tests/board/" + }, + "exchanges": [ { "alternatives": [ { @@ -99237,6 +99240,14 @@ "is": "equal", "value": "object-tests/board/" } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } } ], "allow_headers": [ @@ -99244,17 +99255,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": "\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": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -99301,6 +99311,14 @@ "value": "object-tests/board/" } }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, { "at": "/query/encoding-type", "optional": false, @@ -99315,244 +99333,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": "\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": "\nServiceUnavailablePlease reduce your request rate.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/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/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-a1cfb9bcbc61\"" - } - }, - { - "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/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-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/list-prefix-without-slash", - "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/", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "call": { - "op": "list_page", - "prefix": "object-tests/boa" - }, - "exchanges": [ { "alternatives": [ { @@ -99594,7 +99390,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } } ], @@ -99603,17 +99407,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": "\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" + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -99657,7 +99460,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -99674,245 +99485,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": "\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" + "data": "\nServiceUnavailablePlease reduce your request rate.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/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/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-a1cfb9bcbc61\"" - } - }, - { - "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/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-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 - } + ], + "optional": true }, - { - "at": "/value/continuation_token", - "optional": false, - "rule": { - "is": "equal", - "value": "" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/list-separator-keys-delimited", - "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", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "call": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/separators/" - }, - "exchanges": [ { "alternatives": [ { @@ -99954,15 +99543,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "2" } } ], @@ -99971,17 +99560,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": "\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": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -100025,15 +99613,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "2" } }, { @@ -100050,219 +99638,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": "\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/" + "data": "\nServiceUnavailablePlease reduce your request rate.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/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 - } + ], + "optional": true }, - { - "at": "/value/continuation_token", - "optional": false, - "rule": { - "is": "equal", - "value": "" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/list-separator-keys", - "profile": "s3", - "lane": "core", - "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/separators/" - }, - "exchanges": [ { "alternatives": [ { @@ -100304,7 +99696,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } } ], @@ -100313,17 +99713,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": "\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" + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -100367,7 +99766,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -100384,594 +99791,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": "\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": "\nServiceUnavailablePlease reduce your request rate.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/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, - "" - ] - } + ], + "optional": true }, - { - "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/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/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, - "" - ] - } - }, - { - "at": "/value/entries/5/is_current_version", - "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": "" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/list-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": { - "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/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/" - } - } - ], - "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" - } - }, - { - "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/" - } - }, - { - "at": "/query/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 403, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - } - }, - "body": { - "encoding": "utf8", - "data": "\nInvalidAccessKeyIdThe AWS Access Key Id you provided does not exist in our records.not-a-tokenD3AWMCZ2CJYZX2K4iNmdT7uJWoHQA6IHwWhIKos452Xw9yuRP9vkj83JKvDa5ZUSTJ5lBFHsh3LIS/1DkVBgdHG6g50=" - }, - "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/list-all-pages", - "profile": "s3", - "lane": "core", - "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": { - "op": "list", - "page_size": 1, - "prefix": "object-tests/board/" - }, - "exchanges": [ { "alternatives": [ { @@ -101021,7 +99857,7 @@ "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "2" } } ], @@ -101030,17 +99866,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": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD" + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -101092,7 +99927,7 @@ "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "2" } }, { @@ -101109,22 +99944,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": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD" + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -101175,15 +100010,7 @@ "optional": false, "rule": { "is": "equal", - "value": "1" - } - }, - { - "at": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/a11ba9e5001=" + "value": "2" } } ], @@ -101192,17 +100019,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": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11trueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD" + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -101254,15 +100080,7 @@ "optional": false, "rule": { "is": "equal", - "value": "1" - } - }, - { - "at": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/a11ba9e5001=" + "value": "2" } }, { @@ -101279,23 +100097,66 @@ ], "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": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD" + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" }, "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": "ServiceUnavailable" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/list-key-equal-to-prefix-delimited", + "profile": "s3", + "lane": "core", + "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": { + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/exact" + }, + "exchanges": [ { "alternatives": [ { @@ -101337,23 +100198,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/exact" } }, { - "at": "/query/continuation-token", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" + "value": "/" } } ], @@ -101372,7 +100225,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD" + "data": "\nfixtureobject-tests/exact21000/falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" }, "framing": "chunked" } @@ -101416,23 +100269,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/exact" } }, { - "at": "/query/continuation-token", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" + "value": "/" } }, { @@ -101459,7 +100304,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD" + "data": "\nfixtureobject-tests/exact21000/urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" }, "framing": "chunked" } @@ -101477,31 +100322,108 @@ } }, { - "at": "/value/keys", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": [ - "object-tests/board/a.txt", - "object-tests/board/nested/c.txt", - "object-tests/board/z.txt" + "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-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", + "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/s3/list-entry-properties", + "id": "operations/s3/list-key-equal-to-prefix", "profile": "s3", "lane": "core", - "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class", + "purpose": "Report a key that equals the prefix as an entry", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { "op": "list_page", - "prefix": "object-tests/properties/" + "prefix": "object-tests/exact" }, "exchanges": [ { @@ -101545,7 +100467,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/" + "value": "object-tests/exact" } } ], @@ -101564,7 +100486,7 @@ }, "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" + "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" } @@ -101608,7 +100530,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/" + "value": "object-tests/exact" } }, { @@ -101635,7 +100557,7 @@ }, "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" + "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" } @@ -101657,7 +100579,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/infrequent.txt" + "value": "object-tests/exact" } }, { @@ -101665,7 +100587,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -101673,23 +100595,7 @@ "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" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -101730,7 +100636,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/standard.txt" + "value": "object-tests/exact/child" } }, { @@ -101738,7 +100644,7 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 1 } }, { @@ -101746,23 +100652,7 @@ "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" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -101826,17 +100716,17 @@ "refusal": null }, { - "id": "operations/s3/list-checksum-algorithm", + "id": "operations/s3/list-max-keys-zero", "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": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated", "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/" + "page_size": 0, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -101880,7 +100770,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "0" } } ], @@ -101899,7 +100797,7 @@ }, "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" + "data": "\nfixtureobject-tests/board/00false" }, "framing": "chunked" } @@ -101943,7 +100841,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "0" } }, { @@ -101970,7 +100876,7 @@ }, "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" + "data": "\nfixtureobject-tests/board/00urlfalse" }, "framing": "chunked" } @@ -101987,142 +100893,12 @@ "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": 0 } }, { @@ -102145,17 +100921,18 @@ "refusal": null }, { - "id": "operations/s3/list-other-delimiter", + "id": "operations/s3/list-next-page", "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": "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": { - "delimiter": "-", + "continuation_token": "fixture-marker+/e389f71e4c3c=", "op": "list_page", - "prefix": "object-tests/dashes/" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -102199,15 +100976,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "-" + "value": "2" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/e389f71e4c3c=" } } ], @@ -102226,7 +101011,7 @@ }, "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-" + "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=12falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD" }, "framing": "chunked" } @@ -102270,15 +101055,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "-" + "value": "2" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/e389f71e4c3c=" } }, { @@ -102305,7 +101098,7 @@ }, "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-" + "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" } @@ -102327,7 +101120,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/b.txt" + "value": "object-tests/board/z.txt" } }, { @@ -102335,7 +101128,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -102343,7 +101136,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-646173680000\"" + "value": "\"fixture-4d347fee6a7b\"" } }, { @@ -102387,20 +101180,12 @@ "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 + "value": 0 } }, { @@ -102415,17 +101200,17 @@ "refusal": null }, { - "id": "operations/s3/list-prefix-special-characters", + "id": "operations/s3/list-order-delimited", "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": "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": { "delimiter": "/", "op": "list_page", - "prefix": "object-tests/odd a+b&c=d%é/" + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -102469,7 +101254,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" + "value": "object-tests/order/" } }, { @@ -102496,7 +101281,7 @@ }, "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+/" + "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" } @@ -102540,7 +101325,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" + "value": "object-tests/order/" } }, { @@ -102575,7 +101360,7 @@ }, "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": "\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" } @@ -102597,7 +101382,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/x.txt" + "value": "object-tests/order/A" } }, { @@ -102613,7 +101398,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6f6464200000\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -102649,12 +101434,354 @@ ] } }, + { + "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": 1 + "value": 7 } }, { @@ -102662,7 +101789,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/sub dir+/" + "value": "object-tests/order/a/" } }, { @@ -102685,17 +101812,16 @@ "refusal": null }, { - "id": "operations/s3/list-fetch-owner", + "id": "operations/s3/list-order", "profile": "s3", "lane": "core", - "purpose": "Ask for owners with fetch-owner=true, and report each listed object's owner ID", + "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": { - "fetch_owner": true, "op": "list_page", - "prefix": "object-tests/owner/" + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -102739,15 +101865,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/owner/" - } - }, - { - "at": "/query/fetch-owner", - "optional": false, - "rule": { - "is": "equal", - "value": "true" + "value": "object-tests/order/" } } ], @@ -102766,7 +101884,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD" + "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" } @@ -102810,15 +101928,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/owner/" - } - }, - { - "at": "/query/fetch-owner", - "optional": false, - "rule": { - "is": "equal", - "value": "true" + "value": "object-tests/order/" } }, { @@ -102845,7 +101955,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD" + "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" } @@ -102867,7 +101977,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/owner/a.txt" + "value": "object-tests/order/A" } }, { @@ -102883,19 +101993,68 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6f776e650000\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { - "at": "/value/entries/0/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/1/key", "optional": false, "rule": { "is": "equal", - "value": "fixture-owner-id" + "value": "object-tests/order/a" } }, { - "at": "/value/entries/0/snapshot", + "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", @@ -102906,7 +102065,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -102917,7 +102076,349 @@ } }, { - "at": "/value/entries/0/is_current_version", + "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/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-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/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", @@ -102932,7 +102433,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 8 } }, { @@ -102955,16 +102456,16 @@ "refusal": null }, { - "id": "operations/s3/list-over-1000", + "id": "operations/s3/list-page", "profile": "s3", "lane": "core", - "purpose": "List more keys than the service's default page of 1,000 by following the continuation token", + "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", - "prefix": "object-tests/many/" + "op": "list_page", + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -103008,153 +102509,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" - } - } - ], - "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/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" - } - }, - { - "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/many/" - } - }, - { - "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/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" - } - } - ] - }, - { - "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/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=" + "value": "object-tests/board/" } } ], @@ -103173,7 +102528,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD" + "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" } @@ -103217,15 +102572,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" - } - }, - { - "at": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/3a4e1000=" + "value": "object-tests/board/" } }, { @@ -103252,7 +102599,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD" + "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" } @@ -103270,1198 +102617,64 @@ } }, { - "at": "/value/keys", + "at": "/value/entries/0/key", "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": "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, + "" ] } - } - ], - "refusal": null - }, - { - "id": "operations/s3/list-start-after", - "profile": "s3", - "lane": "core", - "purpose": "Send start-after, and list only the keys after it", - "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" - }, - "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/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/start-after", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/board/a.txt" - } - } - ], - "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/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" - } - }, - { - "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/board/" - } - }, - { - "at": "/query/start-after", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/board/a.txt" - } - }, - { - "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/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" - } - } - ] - } - ], - "expect": [ + "at": "/value/entries/0/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { - "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/entries/0/key", + "at": "/value/entries/1/key", "optional": false, "rule": { "is": "equal", @@ -104469,7 +102682,7 @@ } }, { - "at": "/value/entries/0/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", @@ -104477,15 +102690,15 @@ } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-626f61720001\"" + "value": "\"fixture-a1cfb9bcbc61\"" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -104496,7 +102709,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -104507,7 +102720,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -104518,7 +102731,7 @@ } }, { - "at": "/value/entries/1/key", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", @@ -104526,7 +102739,7 @@ } }, { - "at": "/value/entries/1/size", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", @@ -104534,15 +102747,15 @@ } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-626f61720002\"" + "value": "\"fixture-4d347fee6a7b\"" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -104553,7 +102766,7 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/2/version", "optional": true, "rule": { "is": "one_of", @@ -104564,7 +102777,7 @@ } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/2/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -104579,7 +102792,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 2 + "value": 3 } }, { @@ -104602,18 +102815,16 @@ "refusal": null }, { - "id": "operations/s3/list-start-after-delimited", + "id": "operations/s3/list-prefix-without-slash", "profile": "s3", "lane": "core", - "purpose": "Send a start-after that names no key; it skips the keys and common prefixes up to it", + "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": { - "delimiter": "/", "op": "list_page", - "prefix": "object-tests/board/", - "start_after": "object-tests/board/b" + "prefix": "object-tests/boa" }, "exchanges": [ { @@ -104657,23 +102868,7 @@ "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": "object-tests/boa" } } ], @@ -104692,7 +102887,7 @@ }, "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/" + "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" } @@ -104736,23 +102931,7 @@ "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": "object-tests/boa" } }, { @@ -104779,7 +102958,7 @@ }, "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/" + "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" } @@ -104801,7 +102980,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "object-tests/board/a.txt" } }, { @@ -104809,7 +102988,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 8 } }, { @@ -104817,7 +102996,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-626f61720002\"" + "value": "\"fixture-1d83e6eb69df\"" } }, { @@ -104854,19 +103033,125 @@ } }, { - "at": "/value/entries", + "at": "/value/entries/1/key", "optional": false, "rule": { - "is": "array_length", + "is": "equal", + "value": "object-tests/board/nested/c.txt" + } + }, + { + "at": "/value/entries/1/size", + "optional": false, + "rule": { + "is": "equal", "value": 1 } }, { - "at": "/value/prefixes/0", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/" + "value": "\"fixture-a1cfb9bcbc61\"" + } + }, + { + "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/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-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 } }, { @@ -104874,7 +103159,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 0 } }, { @@ -104889,18 +103174,17 @@ "refusal": null }, { - "id": "operations/s3/list-truncated-without-token", + "id": "operations/s3/list-separator-keys-delimited", "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": "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" ], - "origin": "constructed", "call": { - "op": "list", - "page_size": 2, - "prefix": "object-tests/board/" + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -104944,15 +103228,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/separators/" } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } } ], @@ -104971,7 +103255,7 @@ }, "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" + "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" } @@ -105015,15 +103299,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/separators/" } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { @@ -105050,7 +103334,7 @@ }, "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" + "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" } @@ -105064,25 +103348,193 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "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/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", + "optional": false, + "rule": { + "is": "equal", + "value": "" } } ], "refusal": null }, { - "id": "operations/s3/list-encoding-ignored", + "id": "operations/s3/list-separator-keys", "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": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored", "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/" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -105126,7 +103578,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/percent/" + "value": "object-tests/separators/" } } ], @@ -105145,7 +103597,7 @@ }, "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" + "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" } @@ -105189,7 +103641,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/percent/" + "value": "object-tests/separators/" } }, { @@ -105216,7 +103668,7 @@ }, "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" + "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" } @@ -105238,7 +103690,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/percent/%zz.txt" + "value": "object-tests/separators/..leading" } }, { @@ -105254,7 +103706,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-706572000000\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -105295,7 +103747,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/percent/100%-off.txt" + "value": "object-tests/separators/a.b/c" } }, { @@ -105303,7 +103755,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -105311,7 +103763,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-706572000001\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -105352,7 +103804,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/percent/50%" + "value": "object-tests/separators/dot." } }, { @@ -105360,7 +103812,7 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 1 } }, { @@ -105368,7 +103820,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-706572000002\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -105404,12 +103856,183 @@ ] } }, + { + "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/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/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, + "" + ] + } + }, + { + "at": "/value/entries/5/is_current_version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + false + ] + } + }, { "at": "/value/entries", "optional": false, "rule": { "is": "array_length", - "value": 3 + "value": 6 } }, { @@ -105432,17 +104055,16 @@ "refusal": null }, { - "id": "operations/s3/put-bucket-missing", + "id": "operations/s3/list-unauthenticated", "profile": "s3", "lane": "core", - "purpose": "put bucket missing", + "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.txt", - "op": "put" + "op": "list_page", + "prefix": "object-tests/" }, "exchanges": [ { @@ -105454,7 +104076,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -105462,7 +104084,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture" } }, { @@ -105470,7 +104092,23 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "" + } + }, + { + "at": "/query/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/" } } ], @@ -105479,7 +104117,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 403, "headers": { "content-type": "application/xml", "date": { @@ -105488,58 +104126,11 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchBucketFixture error" + "data": "\nInvalidAccessKeyIdFixture 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/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": [ { @@ -105547,7 +104138,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -105555,7 +104146,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture" } }, { @@ -105565,6 +104156,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/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } } ], "allow_headers": [ @@ -105572,18 +104187,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 403, "headers": { + "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": "\nInvalidAccessKeyIdThe AWS Access Key Id you provided does not exist in our records.not-a-tokenD3AWMCZ2CJYZX2K4iNmdT7uJWoHQA6IHwWhIKos452Xw9yuRP9vkj83JKvDa5ZUSTJ5lBFHsh3LIS/1DkVBgdHG6g50=" + }, + "framing": "chunked" } } ] @@ -105595,43 +104210,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-7d64e1430626\"" + "value": 403 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidAccessKeyId" } } ], "refusal": null }, { - "id": "operations/s3/put-created", + "id": "operations/s3/list-all-pages", "profile": "s3", "lane": "core", - "purpose": "put created", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/write/object.txt", - "op": "put" + "op": "list", + "page_size": 1, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -105643,7 +104255,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -105651,7 +104263,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -105659,7 +104271,31 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "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" } } ], @@ -105670,68 +104306,19 @@ "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": "base64", - "data": "" - } + "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" } - } - ] - } - ], - "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": [ { @@ -105739,7 +104326,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -105747,7 +104334,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture" } }, { @@ -105755,103 +104342,39 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } - } - ], - "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": "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": [ - { - "request": [ { - "at": "/method", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "2" } }, { - "at": "/path", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "object-tests/board/" } }, { - "at": "/body_base64", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "1" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" } } ], @@ -105862,66 +104385,21 @@ "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": "base64", - "data": "" - } + "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-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": [ { @@ -105931,7 +104409,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -105939,7 +104417,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture" } }, { @@ -105947,103 +104425,39 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } - } - ], - "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": "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": [ { - "at": "/method", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "2" } }, { - "at": "/path", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "object-tests/board/" } }, { - "at": "/body_base64", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "1" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/a11ba9e5001=" } } ], @@ -106054,68 +104468,19 @@ "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": "base64", - "data": "" - } + "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" } - } - ] - } - ], - "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": [ + }, { "request": [ { @@ -106123,7 +104488,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -106131,7 +104496,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture" } }, { @@ -106139,103 +104504,47 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } - } - ], - "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": "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": [ { - "at": "/method", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "2" } }, { - "at": "/path", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "object-tests/board/" } }, { - "at": "/body_base64", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "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" } } ], @@ -106246,66 +104555,21 @@ "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": "base64", - "data": "" - } + "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-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": [ { @@ -106315,7 +104579,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -106323,7 +104587,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture" } }, { @@ -106331,103 +104595,39 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } - } - ], - "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": "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": [ { - "at": "/method", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "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": "MDEyMzQ1Njc4OQ==" + "value": "1" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/a11ba9e5002=" } } ], @@ -106438,68 +104638,19 @@ "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": "base64", - "data": "" - } + "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" } - } - ] - } - ], - "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": [ { @@ -106507,7 +104658,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -106519,104 +104670,51 @@ } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "eu-central-1" + "is": "equal", + "value": "" } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 409, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" + }, + { + "at": "/query/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, - "body": { - "encoding": "utf8", - "data": "\nBucketAlreadyOwnedByYouFixture error" + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/" + } }, - "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": "operations/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", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "1" } }, { - "at": "/path", + "at": "/query/continuation-token", "optional": false, "rule": { "is": "equal", - "value": "/object-tests-created" + "value": "fixture-marker+/a11ba9e5002=" } }, { - "at": "/body_text", + "at": "/query/encoding-type", "optional": false, "rule": { - "is": "xml", - "value": "eu-central-1" + "is": "equal", + "value": "url" } } ], @@ -106627,14 +104725,17 @@ "response": { "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "location": "/object-tests-created" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" - } + "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" } } ] @@ -106648,22 +104749,33 @@ "is": "equal", "value": "ok" } + }, + { + "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/copy-missing-source", + "id": "operations/s3/list-entry-properties", "profile": "s3", "lane": "core", - "purpose": "Refuse a copy whose source does not exist", + "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class", "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/absent.txt" + "op": "list_page", + "prefix": "object-tests/properties/" }, "exchanges": [ { @@ -106675,7 +104787,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -106683,7 +104795,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -106695,11 +104807,19 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/list-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt" + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/properties/" } } ], @@ -106708,16 +104828,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/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" } @@ -106729,7 +104850,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -106737,7 +104858,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/absent.txt" + "value": "/fixture" } }, { @@ -106747,6 +104868,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/properties/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } } ], "allow_headers": [ @@ -106754,15 +104899,19 @@ ], "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": "empty" - } + "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" } } ] @@ -106774,43 +104923,194 @@ "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/properties/infrequent.txt" } }, { - "at": "/code", + "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": [ - "NoSuchKey", + 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", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } } ], "refusal": null }, { - "id": "operations/s3/copy", + "id": "operations/s3/list-checksum-algorithm", "profile": "s3", "lane": "core", - "purpose": "Copy an object to another key in the same bucket", + "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": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + "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/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "op": "list_page", + "prefix": "object-tests/checksum-listing/" }, "exchanges": [ { @@ -106822,7 +105122,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -106830,7 +105130,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -106842,11 +105142,19 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/list-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/checksum-listing/" } } ], @@ -106860,12 +105168,14 @@ "content-type": "application/xml", "date": { "from": "now" - } + }, + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - } + "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" } }, { @@ -106875,7 +105185,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -106883,7 +105193,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture" } }, { @@ -106893,65 +105203,30 @@ "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/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"" - } - } - } - ] + "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" + } } ], "allow_headers": [ @@ -106961,16 +105236,17 @@ "response": { "status": 200, "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": "\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" } } ] @@ -106986,31 +105262,174 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "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/copy-200-internal-error", + "id": "operations/s3/list-other-delimiter", "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", + "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": [ - "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" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "origin": "transient", "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "delimiter": "-", + "op": "list_page", + "prefix": "object-tests/dashes/" }, "exchanges": [ { @@ -107022,7 +105441,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107030,7 +105449,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -107042,11 +105461,27 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/list-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/dashes/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "-" } } ], @@ -107060,11 +105495,12 @@ "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": "\nfixtureobject-tests/dashes/21000-falseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-" }, "framing": "chunked" } @@ -107076,7 +105512,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -107084,7 +105520,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture" } }, { @@ -107094,123 +105530,37 @@ "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/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/list-type", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "2" } }, { - "at": "/path", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "object-tests/dashes/" } }, { - "at": "/body_base64", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "-" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/encoding-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "url" } } ], @@ -107224,18 +105574,134 @@ "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": "\nfixtureobject-tests/dashes/21000-urlfalseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-" }, "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/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/list-prefix-special-characters", + "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", + "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": [ { @@ -107245,7 +105711,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107253,7 +105719,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -107265,11 +105731,27 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/list-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "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": "/" } } ], @@ -107283,20 +105765,16 @@ "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": "\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" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -107304,7 +105782,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107312,7 +105790,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -107324,11 +105802,35 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/list-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "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": "/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" } } ], @@ -107342,18 +105844,134 @@ "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": "\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" } } - ], - "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/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/list-fetch-owner", + "profile": "s3", + "lane": "core", + "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": { + "fetch_owner": true, + "op": "list_page", + "prefix": "object-tests/owner/" + }, + "exchanges": [ { "alternatives": [ { @@ -107363,7 +105981,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107371,7 +105989,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -107383,11 +106001,27 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/list-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "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" } } ], @@ -107401,20 +106035,16 @@ "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": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD" }, "framing": "chunked" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -107422,7 +106052,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107430,7 +106060,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -107442,11 +106072,35 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/list-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "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" } } ], @@ -107460,17 +106114,17 @@ "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": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -107479,33 +106133,112 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/code", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "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/put-with-unknown-storage-class", + "id": "operations/s3/list-over-1000", "profile": "s3", "lane": "core", - "purpose": "Refuse a storage class that S3 does not have", + "purpose": "List more keys than the service's default page of 1,000 by following the continuation token", "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" + "op": "list", + "prefix": "object-tests/many/" }, "exchanges": [ { @@ -107517,7 +106250,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107525,7 +106258,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/classes/object.txt" + "value": "/fixture" } }, { @@ -107533,15 +106266,23 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "" } }, { - "at": "/headers/x-amz-storage-class", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "WARM" + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/many/" } } ], @@ -107550,68 +106291,21 @@ ], "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": "\nInvalidStorageClassFixture error" + "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": "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": [ { @@ -107619,7 +106313,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107627,7 +106321,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/classes/object.txt" + "value": "/fixture" } }, { @@ -107635,15 +106329,31 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "" } }, { - "at": "/headers/x-amz-storage-class", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "STANDARD_IA" + "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" } } ], @@ -107654,50 +106364,21 @@ "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": "\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" - } - } - ], - "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": [ { @@ -107707,7 +106388,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -107715,7 +106396,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture" } }, { @@ -107723,214 +106404,31 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" - } - }, - { - "at": "/headers/content-md5", - "optional": false, - "rule": { - "is": "equal", - "value": "XUFAKrxLKna5cZ2REBfFkg==" - } - } - ], - "allow_headers": [ - "content-type" - ], - "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": "" - } - } - } - ] - } - ], - "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": [ - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "PUT" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/fixture/object" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "aGVsbG8=" - } - }, - { - "at": "/headers/content-md5", - "optional": false, - "rule": { - "is": "equal", - "value": "K9opmNmw7hl9oUKgRH9nJQ==" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 400, - "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": "\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": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "PUT" + "value": "" } }, { - "at": "/path", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/checksums/crc32.txt" + "value": "2" } }, { - "at": "/body_base64", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "Y2hlY2tzdW0K" + "value": "object-tests/many/" } }, { - "at": "/headers/x-amz-checksum-crc32", + "at": "/query/continuation-token", "optional": false, "rule": { "is": "equal", - "value": "ItMTFg==" - } - }, - { - "at": "/headers/x-amz-sdk-checksum-algorithm", - "optional": true, - "rule": { - "is": "equal", - "value": "CRC32" + "value": "fixture-marker+/3a4e1000=" } } ], @@ -107940,327 +106438,20 @@ "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": "/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": [ - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "PUT" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/fixture/object-tests/checksums/two.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "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" - ] - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" - } + }, + "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" + "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD" }, "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": [ - { - "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-amz-tagging", - "optional": false, - "rule": { - "is": "equal", - "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/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": [ { @@ -108276,7 +106467,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture" } }, { @@ -108288,116 +106479,35 @@ } }, { - "at": "/query/tagging", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 200, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" + "value": "2" } }, - "body": { - "encoding": "utf8", - "data": "\nprojectobject-tests" - }, - "framing": "chunked" - } - } - ] - } - ], - "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/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": [ { - "at": "/method", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "object-tests/many/" } }, { - "at": "/path", + "at": "/query/continuation-token", "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-marker+/3a4e1000=" } }, { - "at": "/query/tagging", + "at": "/query/encoding-type", "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/headers/x-amz-checksum-crc64nvme", - "optional": false, - "rule": { - "is": "matches", - "pattern": "[A-Za-z0-9+/]{11}=" + "value": "url" } } ], @@ -108407,350 +106517,21 @@ "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": "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": [ - { - "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==" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 500, "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": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD" }, "framing": "chunked" } } ] - }, - { - "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==" - } - } - ], - "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": "/fixture/object-tests/write/object.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - } - ], - "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": "/fixture/object-tests/write/object.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - } - ], - "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": "/fixture/object-tests/write/object.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - } - ], - "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": "/fixture/object-tests/write/object.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - } - ], - "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": [ @@ -108759,149 +106540,1034 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 500 + "value": "ok" } }, { - "at": "/code", + "at": "/value/keys", "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": "/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/content-encoding", - "optional": false, - "rule": { - "is": "equal", - "value": "gzip" - } - } - ], - "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": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } + "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/put-content-properties", + "id": "operations/s3/list-start-after", "profile": "s3", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "purpose": "Send start-after, and list only the keys after it", "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" + "op": "list_page", + "prefix": "object-tests/board/", + "start_after": "object-tests/board/a.txt" }, "exchanges": [ { @@ -108913,7 +107579,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -108921,7 +107587,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -108929,39 +107595,31 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - }, - { - "at": "/headers/content-type", - "optional": false, - "rule": { - "is": "equal", - "value": "text/plain; charset=utf-8" + "value": "" } }, { - "at": "/headers/content-language", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "nl-NL" + "value": "2" } }, { - "at": "/headers/content-disposition", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "value": "object-tests/board/" } }, { - "at": "/headers/cache-control", + "at": "/query/start-after", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "object-tests/board/a.txt" } } ], @@ -108972,69 +107630,19 @@ "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": "base64", - "data": "" - } + "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-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": [ + }, { "request": [ { @@ -109042,7 +107650,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -109050,7 +107658,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -109058,15 +107666,39 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" + "value": "" } }, { - "at": "/headers/if-match", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/" + } + }, + { + "at": "/query/start-after", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/a.txt" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" } } ], @@ -109077,16 +107709,17 @@ "response": { "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-01da46aa1994\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" } } ] @@ -109102,15 +107735,99 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-01da46aa1994\"" + "value": "object-tests/board/nested/c.txt" } }, { - "at": "/value/version", + "at": "/value/entries/0/size", + "optional": false, + "rule": { + "is": "equal", + "value": 1 + } + }, + { + "at": "/value/entries/0/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-626f61720001\"" + } + }, + { + "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-626f61720002\"" + } + }, + { + "at": "/value/entries/1/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -109119,23 +107836,58 @@ "" ] } + }, + { + "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/put-if-none-match-missing", + "id": "operations/s3/list-start-after-delimited", "profile": "s3", "lane": "core", - "purpose": "put if none match missing", + "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": { - "body_base64": "ZnJlc2g=", - "if_none_match": "*", - "key": "object-tests/write/fresh.txt", - "op": "put" + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/board/", + "start_after": "object-tests/board/b" }, "exchanges": [ { @@ -109147,7 +107899,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -109155,7 +107907,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/fresh.txt" + "value": "/fixture" } }, { @@ -109163,111 +107915,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ZnJlc2g=" + "value": "" } }, { - "at": "/headers/if-none-match", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "2" } - } - ], - "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": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-891ed8521bb8\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "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": [ - { - "alternatives": [ - { - "request": [ { - "at": "/method", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "object-tests/board/" } }, { - "at": "/path", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/start-after", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "object-tests/board/b" } } ], @@ -109278,68 +107958,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" }, "body": { - "encoding": "base64", - "data": "" - } + "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" } - } - ] - } - ], - "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": [ + }, { "request": [ { @@ -109347,7 +107978,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -109355,7 +107986,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture" } }, { @@ -109363,7 +107994,47 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "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" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" } } ], @@ -109372,16 +108043,17 @@ ], "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": "\nKeyTooLongErrorFixture error" + "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" } @@ -109395,185 +108067,114 @@ "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/board/z.txt" } }, { - "at": "/code", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": "KeyTooLongError" + "value": 2 } - } - ], - "refusal": [ + }, { - "at": "/outcome", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "refused" + "value": "\"fixture-626f61720002\"" } }, { - "at": "/kind", - "optional": false, + "at": "/value/entries/0/snapshot", + "optional": true, "rule": { - "is": "matches", - "pattern": ".+" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/parameter", - "optional": false, + "at": "/value/entries/0/version", + "optional": true, "rule": { - "is": "equal", - "value": "key" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/status", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { - "is": "equal", - "value": 400 + "is": "one_of", + "values": [ + null, + false + ] } }, { - "at": "/code", - "optional": true, + "at": "/value/entries", + "optional": false, "rule": { - "is": "equal", - "value": "KeyTooLongError" + "is": "array_length", + "value": 1 } - } - ] - }, - { - "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": [ - { - "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": "/outcome", + "at": "/value/prefixes/0", "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "object-tests/board/nested/" } }, { - "at": "/status", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": 412 + "is": "array_length", + "value": 1 } }, { - "at": "/code", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "" } } ], "refusal": null }, { - "id": "operations/s3/put-conditional-conflict", + "id": "operations/s3/list-truncated-without-token", "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", + "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": "transient", + "origin": "constructed", "call": { - "body_base64": "YW5vdGhlciBvYmplY3Q=", - "if_none_match": "*", - "key": "object-tests/write/object.txt", - "op": "put" + "op": "list", + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -109585,7 +108186,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -109593,7 +108194,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -109601,73 +108202,31 @@ "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" - } - } - ] - }, - { - "alternatives": [ - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "PUT" + "value": "" } }, { - "at": "/path", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "2" } }, { - "at": "/body_base64", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "object-tests/board/" } }, { - "at": "/headers/if-none-match", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "2" } } ], @@ -109676,25 +108235,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": "\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" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -109702,7 +108257,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -109710,7 +108265,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -109718,74 +108273,39 @@ "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" - } - } - ], - "optional": true - }, - { - "alternatives": [ - { - "request": [ { - "at": "/method", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "2" } }, { - "at": "/path", + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "object-tests/board/" } }, { - "at": "/body_base64", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "2" } }, { - "at": "/headers/if-none-match", + "at": "/query/encoding-type", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "url" } } ], @@ -109794,23 +108314,51 @@ ], "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": "\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" } } - ], - "optional": true - }, + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "error" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/list-encoding-ignored", + "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", + "sources": [ + "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/percent/" + }, + "exchanges": [ { "alternatives": [ { @@ -109820,7 +108368,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -109828,7 +108376,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -109836,15 +108384,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "" } }, { - "at": "/headers/if-none-match", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/percent/" } } ], @@ -109853,25 +108409,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": "\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" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -109879,7 +108431,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -109887,7 +108439,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture" } }, { @@ -109895,15 +108447,31 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "" } }, { - "at": "/headers/if-none-match", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/percent/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" } } ], @@ -109912,22 +108480,22 @@ ], "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": "\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" } } - ], - "optional": true + ] } ], "expect": [ @@ -109936,123 +108504,46 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": 409 + "value": "object-tests/percent/%zz.txt" } }, { - "at": "/code", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": "ConditionalRequestConflict" + "value": 1 } - } - ], - "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": [ - { - "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", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "\"fixture-706572000000\"" } }, { - "at": "/value/etag", - "optional": false, + "at": "/value/entries/0/snapshot", + "optional": true, "rule": { - "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/value/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -110061,24 +108552,170 @@ "" ] } - } - ], - "refusal": 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/put-metadata-hyphen-name", + "id": "operations/s3/put-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "put metadata hyphen name", + "purpose": "put bucket missing", "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" - }, + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object.txt", "op": "put" }, "exchanges": [ @@ -110099,7 +108736,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/hyphen-name.txt" + "value": "/fixture/object.txt" } }, { @@ -110107,15 +108744,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-amz-meta-not-valid", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } } ], @@ -110124,18 +108753,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "\nNoSuchBucketFixture error" + }, + "framing": "chunked" } } ] @@ -110147,46 +108776,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": 404 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "NoSuchBucket" } } ], "refusal": null }, { - "id": "operations/s3/put-metadata-names-differ-in-case", + "id": "operations/s3/put-created-empty", "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.", + "purpose": "put created empty", "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" - }, + "body_base64": "", + "key": "object-tests/write/empty.bin", "op": "put" }, "exchanges": [ @@ -110207,7 +108829,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/names-differ-in-case.txt" + "value": "/fixture/object-tests/write/empty.bin" } }, { @@ -110215,24 +108837,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-amz-meta-dup", - "optional": false, - "rule": { - "is": "one_of", - "values": [ - [ - "one", - "two" - ], - [ - "two", - "one" - ] - ] + "value": "" } } ], @@ -110246,7 +108851,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-7d64e1430626\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -110264,51 +108869,42 @@ "optional": false, "rule": { "is": "equal", - "value": "refused" - } - } - ], - "refusal": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "refused" + "value": "ok" } }, { - "at": "/kind", + "at": "/value/etag", "optional": false, "rule": { - "is": "matches", - "pattern": ".+" + "is": "equal", + "value": "\"fixture-7d64e1430626\"" } }, { - "at": "/parameter", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "metadata" + "is": "one_of", + "values": [ + null, + "" + ] } } - ] + ], + "refusal": null }, { - "id": "operations/s3/put-metadata-punctuation-name", + "id": "operations/s3/put-created", "profile": "s3", "lane": "core", - "purpose": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.", + "purpose": "put created", "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" - }, + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -110329,7 +108925,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/punctuation-name.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110337,15 +108933,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110359,7 +108947,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-fbe0ab688a03\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -110385,7 +108973,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-fbe0ab688a03\"" } }, { @@ -110403,16 +108991,16 @@ "refusal": null }, { - "id": "operations/s3/put-metadata-replaced", + "id": "operations/s3/put-created-key-question", "profile": "s3", "lane": "core", - "purpose": "put metadata replaced", + "purpose": "put created, 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", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/question?mark.txt", "op": "put" }, "exchanges": [ @@ -110433,7 +109021,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -110441,7 +109029,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110455,7 +109043,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-ea4c238956b1\"", + "etag": "\"fixture-fbe0ab688a03\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -110481,7 +109069,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ea4c238956b1\"" + "value": "\"fixture-fbe0ab688a03\"" } }, { @@ -110499,20 +109087,16 @@ "refusal": null }, { - "id": "operations/s3/put-metadata", + "id": "operations/s3/put-created-key-hash", "profile": "s3", "lane": "core", - "purpose": "put metadata", + "purpose": "put created, with the key \"hash#tag.txt\"", "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" - }, + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/hash#tag.txt", "op": "put" }, "exchanges": [ @@ -110533,7 +109117,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -110541,23 +109125,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-amz-meta-name", - "optional": false, - "rule": { - "is": "equal", - "value": "value" - } - }, - { - "at": "/headers/x-amz-meta-second", - "optional": false, - "rule": { - "is": "equal", - "value": "2" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110571,7 +109139,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-fbe0ab688a03\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -110597,7 +109165,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-fbe0ab688a03\"" } }, { @@ -110615,16 +109183,16 @@ "refusal": null }, { - "id": "operations/s3/put-overwrite", + "id": "operations/s3/put-created-key-percent", "profile": "s3", "lane": "core", - "purpose": "put overwrite", + "purpose": "put created, with the key \"percent%20.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "body_base64": "b3ZlcndyaXR0ZW4=", - "key": "object-tests/write/object.txt", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/percent%20.txt", "op": "put" }, "exchanges": [ @@ -110645,7 +109213,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -110653,7 +109221,7 @@ "optional": false, "rule": { "is": "equal", - "value": "b3ZlcndyaXR0ZW4=" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110667,7 +109235,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-a62b555324ac\"", + "etag": "\"fixture-fbe0ab688a03\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -110693,7 +109261,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-a62b555324ac\"" + "value": "\"fixture-fbe0ab688a03\"" } }, { @@ -110711,17 +109279,16 @@ "refusal": null }, { - "id": "operations/s3/put-precondition-failed", + "id": "operations/s3/put-created-key-plus", "profile": "s3", "lane": "core", - "purpose": "put precondition failed", + "purpose": "put created, with the key \"plus+plus.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", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/plus+plus.txt", "op": "put" }, "exchanges": [ @@ -110742,7 +109309,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -110750,15 +109317,7 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110767,18 +109326,18 @@ ], "allow_query": [], "response": { - "status": 412, + "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": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -110790,39 +109349,42 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-fbe0ab688a03\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "PreconditionFailed" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/put-unauthenticated", + "id": "operations/s3/put-created-key-space", "profile": "s3", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "put created, with the key \"space name.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object-tests/write/object.txt", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/space name.txt", "op": "put" }, "exchanges": [ @@ -110843,7 +109405,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -110851,7 +109413,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110860,18 +109422,18 @@ ], "allow_query": [], "response": { - "status": 403, + "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": "\nInvalidAccessKeyIdFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -110883,42 +109445,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 403 + "value": "\"fixture-fbe0ab688a03\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidAccessKeyId" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/stage-after-abort", + "id": "operations/s3/put-created-key-non-ascii", "profile": "s3", "lane": "core", - "purpose": "stage after abort", + "purpose": "put created, with the key \"café/雪.txt\"", "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=" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/café/雪.txt", + "op": "put" }, "exchanges": [ { @@ -110938,7 +109501,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/aborted.bin" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -110946,23 +109509,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/f85cf0cd3a3f=" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110971,18 +109518,18 @@ ], "allow_query": [], "response": { - "status": 404, + "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": "\nNoSuchUploadFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -110994,42 +109541,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-fbe0ab688a03\"" } }, { - "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", + "id": "operations/s3/put-created-key-double-slash", "profile": "s3", "lane": "core", - "purpose": "stage last", + "purpose": "put created, with the key \"double//slash.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=" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/double//slash.txt", + "op": "put" }, "exchanges": [ { @@ -111049,7 +109597,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -111057,23 +109605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -111087,7 +109619,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-32b70ae425ac\"", + "etag": "\"fixture-fbe0ab688a03\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -111113,26 +109645,35 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-32b70ae425ac\"" + "value": "\"fixture-fbe0ab688a03\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/stage-part-10000", + "id": "operations/s3/put-created-key-trailing-slash", "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.", + "purpose": "put created, with the key \"trailing-slash/\"", "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=" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/trailing-slash/", + "op": "put" }, "exchanges": [ { @@ -111152,7 +109693,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -111160,23 +109701,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "10000" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -111190,7 +109715,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-32b70ae425ac\"", + "etag": "\"fixture-fbe0ab688a03\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -111216,26 +109741,35 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-32b70ae425ac\"" + "value": "\"fixture-fbe0ab688a03\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/stage-part-10001", + "id": "operations/s3/create-bucket-owned", "profile": "s3", "lane": "core", - "purpose": "stage part 10001", + "purpose": "Refuse to create a bucket that the account already owns", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html" ], "call": { - "body_base64": "eA==", - "key": "object-tests/multipart/object.bin", - "op": "s3.upload_part", - "part_number": 10001, - "upload_id": "fixture-upload+/276ca18046f9=" + "bucket": "fixture", + "location": "eu-central-1", + "op": "s3.create_bucket" }, "exchanges": [ { @@ -111255,31 +109789,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "eA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "10001" + "value": "/fixture" } }, { - "at": "/query/uploadId", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "xml", + "value": "eu-central-1" } } ], @@ -111288,7 +109806,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 409, "headers": { "content-type": "application/xml", "date": { @@ -111297,7 +109815,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidArgumentFixture error" + "data": "\nBucketAlreadyOwnedByYouFixture error" }, "framing": "chunked" } @@ -111319,7 +109837,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 409 } }, { @@ -111327,67 +109845,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidArgument" + "value": "BucketAlreadyOwnedByYou" } } ], - "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/stage-part-zero", + "id": "operations/s3/create-bucket", "profile": "s3", "lane": "core", - "purpose": "stage part zero", + "purpose": "Create a bucket in the region of the endpoint", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html" ], "call": { - "body_base64": "eA==", - "key": "object-tests/multipart/object.bin", - "op": "s3.upload_part", - "part_number": 0, - "upload_id": "fixture-upload+/276ca18046f9=" + "bucket": "object-tests-created", + "location": "eu-central-1", + "op": "s3.create_bucket" }, "exchanges": [ { @@ -111407,31 +109882,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "eA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "0" + "value": "/object-tests-created" } }, { - "at": "/query/uploadId", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "xml", + "value": "eu-central-1" } } ], @@ -111440,18 +109899,16 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" - } + }, + "location": "/object-tests-created" }, "body": { - "encoding": "utf8", - "data": "\nInvalidArgumentFixture error" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -111463,83 +109920,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": "InvalidArgument" + "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": "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/stage-unknown-upload", + "id": "operations/s3/copy-missing-source", "profile": "s3", "lane": "core", - "purpose": "stage unknown upload", + "purpose": "Refuse a copy whose source does not exist", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" ], "call": { - "body_base64": "eA==", - "key": "object-tests/multipart/object.bin", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/4d0d5ccc4993=" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/absent.txt" }, "exchanges": [ { @@ -111559,7 +109957,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -111567,23 +109965,15 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/4d0d5ccc4993=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt" } } ], @@ -111601,60 +109991,11 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchUploadFixture error" + "data": "\nNoSuchKeyFixture 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", - "profile": "s3", - "lane": "core", - "purpose": "stage", - "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=" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -111662,7 +110003,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -111670,7 +110011,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/object-tests/copy/absent.txt" } }, { @@ -111678,23 +110019,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "" } } ], @@ -111703,17 +110028,14 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { "date": { "from": "now" - }, - "etag": "\"fixture-6d60d5bbaa47\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -111726,34 +110048,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "value": 404 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "NoSuchKey", + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/stage-key-question", + "id": "operations/s3/copy", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"question?mark.txt\"", + "purpose": "Copy an object to another key in the same bucket", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" ], "call": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/question?mark.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -111773,7 +110104,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -111781,23 +110112,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -111808,59 +110131,17 @@ "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": "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-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": [ { @@ -111868,7 +110149,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -111876,7 +110157,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -111884,24 +110165,67 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } - }, + } + ], + "then": [ { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" - } + "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": [ @@ -111911,15 +110235,15 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -111940,26 +110264,25 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/s3/stage-key-percent", + "id": "operations/s3/copy-source-version", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"percent%20.txt\"", + "purpose": "Copy an earlier version of an object, named by versionId in x-amz-copy-source", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" ], "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/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "source_version": "fixture-version-1" }, "exchanges": [ { @@ -111979,7 +110302,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -111987,23 +110310,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt\\?versionId=fixture-version-1" } } ], @@ -112014,59 +110329,17 @@ "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": "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-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": [ + }, { "request": [ { @@ -112074,7 +110347,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -112082,7 +110355,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -112090,24 +110363,75 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { - "at": "/query/partNumber", + "at": "/query/versionId", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "fixture-version-1" } - }, + } + ], + "then": [ { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" - } + "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": [ @@ -112117,15 +110441,15 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -112140,32 +110464,25 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" - } } ], "refusal": null }, { - "id": "operations/s3/stage-key-space", + "id": "operations/s3/copy-200-internal-error", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"space name.txt\"", + "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": [ - "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", "call": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/space name.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -112185,7 +110502,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -112193,26 +110510,124 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { - "at": "/query/partNumber", + "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" + } + }, + { + "request": [ + { + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "HEAD" } }, { - "at": "/query/uploadId", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" ], @@ -112220,57 +110635,20 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } ] - } - ], - "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-non-ascii", - "profile": "s3", - "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+/276ca18046f9=" - }, - "exchanges": [ { "alternatives": [ { @@ -112288,7 +110666,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -112296,23 +110674,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -112323,57 +110693,21 @@ "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": "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-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": [ { @@ -112391,7 +110725,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -112399,23 +110733,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -112426,57 +110752,21 @@ "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": "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-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": [ { @@ -112494,7 +110784,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -112502,23 +110792,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -112529,57 +110811,21 @@ "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": "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-6d60d5bbaa47\"" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/stage-empty-part", - "profile": "s3", - "lane": "core", - "purpose": "Stage an empty part, which S3 takes", - "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=" - }, - "exchanges": [ { "alternatives": [ { @@ -112597,7 +110843,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -112609,19 +110855,11 @@ } }, { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" - } - }, - { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -112632,55 +110870,21 @@ "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": "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-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": [ { @@ -112690,7 +110894,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -112698,7 +110902,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/aborted.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -112710,11 +110914,11 @@ } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/f85cf0cd3a3f=" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -112723,7 +110927,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -112732,12 +110936,13 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchUploadFixture error" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -112749,37 +110954,33 @@ "value": "error" } }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 404 - } - }, { "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "NoSuchUpload" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3/staged-replacement", + "id": "operations/s3/copy-replace-metadata", "profile": "s3", "lane": "core", - "purpose": "staged replacement", + "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/multipart/replaced.bin", - "op": "s3.list_parts", - "upload_id": "fixture-upload+/6ba3c5e480a2=" + "content_type": "text/plain", + "key": "object-tests/copy/target.txt", + "metadata": { + "colour": "blue" + }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -112791,7 +110992,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -112799,7 +111000,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -112811,11 +111012,35 @@ } }, { - "at": "/query/uploadId", + "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": "fixture-upload+/6ba3c5e480a2=" + "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" } } ], @@ -112829,103 +111054,14 @@ "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" + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + } } - } - ] - } - ], - "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": [ { @@ -112933,7 +111069,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -112941,7 +111077,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/object-tests/copy/source.txt" } }, { @@ -112951,14 +111087,89 @@ "is": "equal", "value": "" } - }, + } + ], + "then": [ { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/4d0d5ccc4993=" - } + "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": [ @@ -112966,18 +111177,18 @@ ], "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": "utf8", - "data": "\nNoSuchUploadFixture error" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -112989,40 +111200,27 @@ "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/staged", + "id": "operations/s3/copy-replace-tags", "profile": "s3", "lane": "core", - "purpose": "staged", + "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/multipart/object.bin", - "op": "s3.list_parts", - "upload_id": "fixture-upload+/276ca18046f9=" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "tags": { + "project": "copied" + } }, "exchanges": [ { @@ -113034,7 +111232,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -113042,7 +111240,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -113054,15 +111252,31 @@ } }, { - "at": "/query/uploadId", + "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": "fixture-upload+/276ca18046f9=" + "value": "REPLACE" } - } - ], - "allow_headers": [ + }, + { + "at": "/headers/x-amz-tagging", + "optional": false, + "rule": { + "is": "equal", + "value": "project=copied" + } + } + ], + "allow_headers": [ "content-type" ], "allow_query": [], @@ -113072,14 +111286,133 @@ "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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } }, - "framing": "chunked" + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" + ], + "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" + } } } ] @@ -113093,77 +111426,23 @@ "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", + "id": "operations/s3/copy-storage-class", "profile": "s3", "lane": "core", - "purpose": "start bucket missing", + "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.bin", - "op": "s3.create_multipart" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "storage_class": "STANDARD_IA" }, "exchanges": [ { @@ -113175,7 +111454,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -113183,7 +111462,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -113195,11 +111474,19 @@ } }, { - "at": "/query/uploads", + "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": "" + "value": "STANDARD_IA" } } ], @@ -113208,7 +111495,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -113217,9 +111504,121 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchBucketFixture error" + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } }, - "framing": "chunked" + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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": 200, + "headers": { + "content-length": "5", + "date": { + "from": "now" + }, + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + }, + "body": { + "encoding": "empty" + } } } ] @@ -113231,39 +111630,25 @@ "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" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3/start-unauthenticated", + "id": "operations/s3/copy-source-if-match", "profile": "s3", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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/multipart/object.bin", - "op": "s3.create_multipart" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -113275,7 +111660,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -113283,7 +111668,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -113295,11 +111680,19 @@ } }, { - "at": "/query/uploads", + "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": "" + "value": "\"fixture-etag\"" } } ], @@ -113308,7 +111701,7 @@ ], "allow_query": [], "response": { - "status": 403, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -113317,57 +111710,10 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidAccessKeyIdFixture error" - }, - "framing": "chunked" + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + } } - } - ] - } - ], - "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": [ { @@ -113375,7 +111721,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "HEAD" } }, { @@ -113383,7 +111729,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/object-tests/copy/source.txt" } }, { @@ -113393,14 +111739,73 @@ "is": "equal", "value": "" } - }, + } + ], + "then": [ { - "at": "/query/uploads", - "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" + } + }, + { + "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": [ @@ -113410,16 +111815,16 @@ "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": "utf8", - "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -113433,33 +111838,23 @@ "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", + "id": "operations/s3/copy-source-if-match-failed", + "profile": "s3", "lane": "core", - "purpose": "put metadata non ascii value", + "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": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" ], "call": { - "body_base64": "MQ==", - "key": "object-tests/metadata/non-ascii.txt", - "metadata": { - "value": "café" - }, - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-0123456789ab\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -113479,7 +111874,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -113487,26 +111882,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-ms-meta-value", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "one_of", - "values": [ - "café", - "café" - ] + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-amz-copy-source-if-match", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "\"fixture-0123456789ab\"" } } ], @@ -113515,17 +111907,131 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "InvalidMetadata" + } }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" + "data": "\nPreconditionFailedFixture error" + }, + "framing": "chunked" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" + ], + "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" } } } @@ -113546,7 +112052,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 412 } }, { @@ -113554,68 +112060,25 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidMetadata" + "value": "PreconditionFailed" } } ], - "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" - } - } - ] + "refusal": null }, { - "id": "operations/azure-hns/put-metadata-non-ascii-value", - "profile": "azure-hns", + "id": "operations/s3/copy-source-if-none-match-failed", + "profile": "s3", "lane": "core", - "purpose": "put metadata non ascii value", + "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": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" ], "call": { - "body_base64": "MQ==", - "key": "object-tests/metadata/non-ascii.txt", - "metadata": { - "value": "café" - }, - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_none_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -113635,7 +112098,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -113643,26 +112106,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-ms-meta-value", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "one_of", - "values": [ - "café", - "café" - ] + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-amz-copy-source-if-none-match", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "\"fixture-etag\"" } } ], @@ -113671,111 +112131,20 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "InvalidMetadata" + } }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" - } + "data": "\nPreconditionFailedFixture 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": "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": [ { @@ -113783,7 +112152,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -113791,7 +112160,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -113799,16 +112168,76 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } - }, + } + ], + "then": [ { - "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=)\\?=" - } + "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": [ @@ -113818,15 +112247,15 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -113839,71 +112268,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "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/put-metadata-value-edge-whitespace", + "id": "operations/s3/copy-source-if-modified-since", "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.", + "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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/value-edge-whitespace.txt", - "metadata": { - "value": "\ta " - }, - "op": "put" + "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": [ { @@ -113923,7 +112322,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-edge-whitespace.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -113931,15 +112330,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-amz-meta-value", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { "is": "matches", - "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?=" + "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" } } ], @@ -113950,96 +112357,17 @@ "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": "\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/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": [ { @@ -114047,7 +112375,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -114055,7 +112383,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-encoded-word-text.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -114063,16 +112391,75 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } - }, + } + ], + "then": [ { - "at": "/headers/x-amz-meta-value", - "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)\\?=" - } + "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": [ @@ -114082,15 +112469,15 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -114105,69 +112492,23 @@ "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" - } - } - ] + "refusal": null }, { - "id": "operations/s3/put-metadata-value-not-an-encoded-word", + "id": "operations/s3/copy-source-if-unmodified-since-failed", "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.", + "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": { - "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" + "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": [ { @@ -114187,7 +112528,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-not-an-encoded-word.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -114195,15 +112536,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-amz-meta-value", + "at": "/headers/x-amz-copy-source", "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": "/?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" } } ], @@ -114212,73 +112561,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 412, "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": "\nPreconditionFailedFixture error" + }, + "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": [ { @@ -114286,7 +112582,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -114294,7 +112590,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-control-characters.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -114302,16 +112598,76 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } - }, + } + ], + "then": [ { - "at": "/headers/x-amz-meta-value", - "optional": false, - "rule": { - "is": "matches", - "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?=" - } + "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": [ @@ -114321,15 +112677,15 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -114342,71 +112698,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "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/put-metadata-value-line-break", + "id": "operations/s3/copy-across-buckets", "profile": "s3", "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": "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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/value-line-break.txt", - "metadata": { - "value": "a\r\nb" - }, - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_bucket": "source", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -114426,7 +112752,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-line-break.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -114434,15 +112760,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-amz-meta-value", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { "is": "matches", - "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?=" + "pattern": "/?source/object-tests/copy/source\\.txt" } } ], @@ -114453,77 +112779,17 @@ "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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" } } - } - ] - } - ], - "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": [ { @@ -114531,7 +112797,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -114539,7 +112805,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-with-tab.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -114547,16 +112813,67 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } - }, + } + ], + "then": [ { - "at": "/headers/x-amz-meta-value", - "optional": false, - "rule": { - "is": "matches", - "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?=" - } + "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": [ @@ -114566,15 +112883,15 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -114589,44 +112906,22 @@ "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", + "id": "operations/s3/copy-source-key-encoded", "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.", + "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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/outside-latin-1.txt", - "metadata": { - "value": "雪" - }, - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/a b+c%é?#.txt" }, "exchanges": [ { @@ -114646,7 +112941,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/outside-latin-1.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -114654,18 +112949,122 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-amz-meta-value", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { "is": "matches", - "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?=" + "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/a b+c%é?#.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" ], @@ -114673,15 +113072,15 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -114696,66 +113095,22 @@ "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" - } - } - ] + "refusal": null }, { - "id": "operations/s3-express/abort-after-commit", - "profile": "s3-express", + "id": "operations/s3/copy-onto-itself", + "profile": "s3", "lane": "core", - "purpose": "abort after commit", + "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": { - "key": "object-tests/multipart/object.bin", - "op": "s3.abort_multipart", - "upload_id": "fixture-upload+/c60fb1e2e00d=" + "key": "object-tests/copy/source.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -114767,7 +113122,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -114775,11 +113130,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/copy/source.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -114787,26 +113142,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/x-amz-copy-source", "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" + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -114815,24 +113155,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidRequestFixture error" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -114840,7 +113176,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "HEAD" } }, { @@ -114848,7 +113184,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/copy/source.txt" } }, { @@ -114858,38 +113194,66 @@ "is": "equal", "value": "" } - }, - { - "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" - } - }, + } + ], + "then": [ { - "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}" - } + "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": [ @@ -114897,16 +113261,17 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { + "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" } } } @@ -114919,24 +113284,43 @@ "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": "InvalidRequest" } } ], "refusal": null }, { - "id": "operations/s3-express/abort-unknown-upload", - "profile": "s3-express", + "id": "operations/s3/copy-onto-itself-replace-metadata", + "profile": "s3", "lane": "core", - "purpose": "abort unknown upload", + "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": { - "key": "object-tests/multipart/object.bin", - "op": "s3.abort_multipart", - "upload_id": "fixture-upload+/4d0d5ccc4993=" + "key": "object-tests/copy/source.txt", + "metadata": { + "colour": "blue" + }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -114948,7 +113332,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -114956,11 +113340,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/copy/source.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -114968,26 +113352,27 @@ } }, { - "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/authorization", + "at": "/headers/x-amz-metadata-directive", "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": "REPLACE" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-amz-meta-colour", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "blue" } } ], @@ -114998,22 +113383,17 @@ "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" - }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" } } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -115021,7 +113401,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "HEAD" } }, { @@ -115029,7 +113409,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/copy/source.txt" } }, { @@ -115039,38 +113419,81 @@ "is": "equal", "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" - } - }, + } + ], + "then": [ { - "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}" - } + "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": [ @@ -115078,18 +113501,18 @@ ], "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": "utf8", - "data": "\nNoSuchUploadFixture error" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -115101,40 +113524,25 @@ "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", - "profile": "s3-express", + "id": "operations/s3/put-with-unknown-storage-class", + "profile": "s3", "lane": "core", - "purpose": "abort", + "purpose": "Refuse a storage class that S3 does not have", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/multipart/aborted.bin", - "op": "s3.abort_multipart", - "upload_id": "fixture-upload+/4bef2cd6d025=" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/classes/object.txt", + "op": "put", + "storage_class": "WARM" }, "exchanges": [ { @@ -115146,7 +113554,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -115154,38 +113562,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/classes/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-storage-class", "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": "WARM" } } ], @@ -115194,22 +113587,66 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidStorageClassFixture 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": 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": [ { @@ -115219,7 +113656,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -115227,7 +113664,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/aborted.bin" + "value": "/fixture/object-tests/classes/object.txt" } }, { @@ -115235,39 +113672,15 @@ "optional": false, "rule": { "is": "equal", - "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" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-amz-storage-class", "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": "STANDARD_IA" } } ], @@ -115276,16 +113689,16 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" }, + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -115305,23 +113718,21 @@ "refusal": null }, { - "id": "operations/s3-express/commit-after-abort", - "profile": "s3-express", + "id": "operations/s3/put-with-md5", + "profile": "s3", "lane": "core", - "purpose": "commit after abort", + "purpose": "Carry a declared transactional MD5 without substituting a payload or stored-property hash.", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/multipart/aborted.bin", - "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-db71b2c0257c\"", - "number": 1 - } - ], - "upload_id": "fixture-upload+/4bef2cd6d025=" + "body_base64": "aGVsbG8=", + "checksum": { + "algorithm": "md5", + "value_base64": "XUFAKrxLKna5cZ2REBfFkg==" + }, + "key": "object", + "op": "put" }, "exchanges": [ { @@ -115333,7 +113744,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -115341,38 +113752,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "aGVsbG8=" } }, { - "at": "/headers/host", + "at": "/headers/content-md5", "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": "XUFAKrxLKna5cZ2REBfFkg==" } } ], @@ -115383,20 +113779,53 @@ "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" - }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "encoding": "base64", + "data": "" } } } ] + } + ], + "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": [ { @@ -115406,7 +113835,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -115414,47 +113843,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/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+/4bef2cd6d025=" + "value": "/fixture/object" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "aGVsbG8=" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/content-md5", "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": "K9opmNmw7hl9oUKgRH9nJQ==" } } ], @@ -115463,20 +113868,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": "NoSuchUploadFixture error" + "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": [ { @@ -115484,7 +113935,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -115492,47 +113943,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/aborted.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-db71b2c0257c\"1" + "value": "/fixture/object-tests/checksums/crc32.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4bef2cd6d025=" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-checksum-crc32", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "ItMTFg==" } }, { - "at": "/headers/x-amz-s3session-token", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "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": "CRC32" } } ], @@ -115546,13 +113981,14 @@ "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": "NoSuchUploadFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -115564,47 +114000,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 200 + "value": "\"fixture-636b73750000\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NoSuchUpload" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/commit-lost-the-race-to-create", - "profile": "s3-express", + "id": "operations/s3/put-two-checksums", + "profile": "s3", "lane": "core", - "purpose": "commit lost the race to create", + "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": { - "if_none_match": "*", - "key": "object-tests/multipart/guarded.bin", - "op": "s3.complete_multipart", - "parts": [ + "body_base64": "Y2hlY2tzdW0K", + "checksums": [ { - "etag": "\"fixture-201c9ed6f636\"", - "number": 1 + "algorithm": "crc32", + "value_base64": "ItMTFg==" + }, + { + "algorithm": "sha256", + "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" } ], - "upload_id": "fixture-upload+/c7be505aec65=" + "key": "object-tests/checksums/two.txt", + "op": "put" }, "exchanges": [ { @@ -115616,7 +114058,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -115624,38 +114066,42 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/checksums/two.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-checksum-crc32", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "ItMTFg==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-checksum-sha256", "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": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" } }, { - "at": "/headers/x-amz-s3session-token", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "absent" + "is": "one_of", + "values": [ + "CRC32", + "SHA256" + ] } } ], @@ -115664,22 +114110,109 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture" }, - "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": 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": [ { @@ -115689,7 +114222,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -115697,55 +114230,23 @@ "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": "*" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-amz-tagging", "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": "project=object-tests" } } ], @@ -115759,15 +114260,44 @@ "date": { "from": "now" }, + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "PreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "empty" + } } - }, + } + ] + } + ], + "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": [ { @@ -115775,7 +114305,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -115783,55 +114313,23 @@ "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-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "/fixture/object-tests/tags/object.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": "/query/tagging", "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": "" } } ], @@ -115842,14 +114340,14 @@ "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": "PreconditionFailedFixture error" + "data": "\nprojectobject-tests" }, "framing": "chunked" } @@ -115863,41 +114361,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 200 + "value": "ok" } }, { - "at": "/code", + "at": "/value/tags", "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": { + "project": "object-tests" + } } } ], "refusal": null }, { - "id": "operations/s3-express/commit-nothing", - "profile": "s3-express", + "id": "operations/s3/put-tagging", + "profile": "s3", "lane": "core", - "purpose": "commit nothing", + "purpose": "Replace the tags of an object", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html" ], "call": { - "key": "object-tests/multipart/guarded.bin", - "op": "s3.complete_multipart", - "parts": [], - "upload_id": "fixture-upload+/c7be505aec65=" + "key": "object-tests/tags/object.txt", + "op": "s3.put_tagging", + "tags": { + "project": "object-tests" + } }, "exchanges": [ { @@ -115909,7 +114402,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -115917,38 +114410,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/query/session", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "projectobject-tests" } }, { - "at": "/headers/host", + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-checksum-crc64nvme", "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" + "pattern": "[A-Za-z0-9+/]{11}=" } } ], @@ -115959,20 +114445,45 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml" + "date": { + "from": "now" + } }, "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/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": [ { @@ -115982,7 +114493,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -115990,47 +114501,65 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "MDEyMzQ1Njc4OQ==" + } + } + ], + "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" + } + } + ] + }, + { + "alternatives": [ + { + "request": [ { - "at": "/headers/host", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "PUT" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/authorization", + "at": "/body_base64", "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": "MDEyMzQ1Njc4OQ==" } } ], @@ -116039,7 +114568,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -116048,11 +114577,16 @@ }, "body": { "encoding": "utf8", - "data": "\nMalformedXMLFixture error" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" }, "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -116060,7 +114594,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -116068,47 +114602,66 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "MDEyMzQ1Njc4OQ==" } + } + ], + "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": "/headers/host", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "PUT" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/authorization", + "at": "/body_base64", "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": "MDEyMzQ1Njc4OQ==" } } ], @@ -116117,7 +114670,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -116126,11 +114679,16 @@ }, "body": { "encoding": "utf8", - "data": "\nMalformedXMLFixture error" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" }, "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -116138,7 +114696,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -116146,15 +114704,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": "/fixture/object-tests/write/object.txt" } }, { @@ -116162,31 +114712,58 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" + } + } + ], + "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": "/headers/host", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "PUT" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/authorization", + "at": "/body_base64", "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": "MDEyMzQ1Njc4OQ==" } } ], @@ -116195,7 +114772,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -116204,12 +114781,13 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidRequestYou must specify at least one part" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" }, "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -116226,89 +114804,141 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 500 } }, { "at": "/code", "optional": false, "rule": { - "is": "one_of", - "values": [ - "MalformedXML", - "InvalidRequest" - ] + "is": "equal", + "value": "InternalError" } } ], - "refusal": [ + "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": "/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/content-encoding", + "optional": false, + "rule": { + "is": "equal", + "value": "gzip" + } + } + ], + "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": "refused" - } - }, - { - "at": "/kind", - "optional": false, - "rule": { - "is": "matches", - "pattern": ".+" + "value": "ok" } }, { - "at": "/parameter", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "parts" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 + "value": "\"fixture-fbe0ab688a03\"" } }, { - "at": "/code", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", "values": [ - "MalformedXML", - "InvalidRequest" + null, + "" ] } } - ] + ], + "refusal": null }, { - "id": "operations/s3-express/commit-out-of-order", - "profile": "s3-express", + "id": "operations/s3/put-content-properties", + "profile": "s3", "lane": "core", - "purpose": "commit out of order", + "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": { - "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=" + "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": [ { @@ -116320,7 +114950,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -116328,38 +114958,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/host", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "text/plain; charset=utf-8" } }, { - "at": "/headers/authorization", + "at": "/headers/content-language", "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": "nl-NL" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/content-disposition", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "attachment; filename=\"report.txt\"" + } + }, + { + "at": "/headers/cache-control", + "optional": false, + "rule": { + "is": "equal", + "value": "max-age=3600" } } ], @@ -116370,20 +115009,67 @@ "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -116393,7 +115079,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -116401,47 +115087,128 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "2\"fixture-ec2738a0b15a\"1\"fixture-9aff617fcdf8\"" + "is": "equal", + "value": "cmVwbGFjZWQ=" } }, { - "at": "/query/uploadId", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "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": "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": [ { - "at": "/headers/host", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "PUT" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "/fixture/object-tests/write/fresh.txt" } }, { - "at": "/headers/authorization", + "at": "/body_base64", "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": "ZnJlc2g=" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } } ], @@ -116450,20 +115217,70 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" - } + }, + "etag": "\"fixture-891ed8521bb8\"", + "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" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-891ed8521bb8\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "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": [ + { + "alternatives": [ { "request": [ { @@ -116471,7 +115288,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -116479,47 +115296,111 @@ "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": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "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": "/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": [ + { + "request": [ { - "at": "/headers/host", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "PUT" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { - "at": "/headers/authorization", + "at": "/body_base64", "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": "MQ==" } } ], @@ -116537,7 +115418,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidPartOrderFixture error" + "data": "\nKeyTooLongErrorFixture error" }, "framing": "chunked" } @@ -116567,7 +115448,7 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidPartOrder" + "value": "KeyTooLongError" } } ], @@ -116593,7 +115474,7 @@ "optional": false, "rule": { "is": "equal", - "value": "parts" + "value": "key" } }, { @@ -116609,33 +115490,24 @@ "optional": true, "rule": { "is": "equal", - "value": "InvalidPartOrder" + "value": "KeyTooLongError" } } ] }, { - "id": "operations/s3-express/commit-part-too-small", - "profile": "s3-express", + "id": "operations/s3/put-lost-the-race-to-create", + "profile": "s3", "lane": "core", - "purpose": "commit part too small", + "purpose": "put lost the race to create", "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=" + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_none_match": "*", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -116647,7 +115519,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -116655,38 +115527,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/host", + "at": "/headers/if-none-match", "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": "*" } } ], @@ -116695,22 +115552,67 @@ ], "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" } } ] + } + ], + "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-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": [ { "alternatives": [ { @@ -116720,7 +115622,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -116728,47 +115630,23 @@ "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\"" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/09837ae2020c=" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/if-none-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": "*" } } ], @@ -116777,20 +115655,24 @@ ], "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": "EntityTooSmallFixture error" + "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": [ { @@ -116798,7 +115680,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -116806,47 +115688,23 @@ "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" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/09837ae2020c=" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/if-none-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": "*" } } ], @@ -116855,72 +115713,23 @@ ], "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": "EntityTooSmallFixture error" + "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" } } - ] - } - ], - "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": "EntityTooSmall" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/commit-precondition-failed", - "profile": "s3-express", - "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-201c9ed6f636\"", - "number": 1 - } - ], - "upload_id": "fixture-upload+/c7be505aec65=" - }, - "exchanges": [ { "alternatives": [ { @@ -116930,7 +115739,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -116938,38 +115747,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/host", + "at": "/headers/if-none-match", "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": "*" } } ], @@ -116978,21 +115772,22 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 409, "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": "\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" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -117003,7 +115798,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117011,55 +115806,23 @@ "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=" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/if-none-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": "*" } } ], @@ -117068,20 +115831,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": "PreconditionFailedFixture error" + "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": [ { @@ -117089,7 +115857,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117097,55 +115865,82 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-201c9ed6f636\"1" + "is": "equal", + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/if-match", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "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/uploadId", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "PUT" } }, { - "at": "/headers/host", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/authorization", + "at": "/headers/if-none-match", "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": "*" } } ], @@ -117154,21 +115949,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": "PreconditionFailedFixture error" + "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": [ @@ -117185,7 +115981,7 @@ "optional": false, "rule": { "is": "equal", - "value": 200 + "value": 409 } }, { @@ -117193,42 +115989,39 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "ConditionalRequestConflict" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-single-small-part", - "profile": "s3-express", + "id": "operations/s3/put-metadata-empty-value", + "profile": "s3", "lane": "core", - "purpose": "commit single small part", + "purpose": "put metadata empty value", "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": [ - { + "body_base64": "MQ==", + "key": "object-tests/metadata/empty-value.txt", + "metadata": { + "empty": "" + }, + "op": "put" + }, + "exchanges": [ + { + "alternatives": [ + { "request": [ { "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -117236,38 +116029,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MQ==" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-meta-empty", "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": "" } } ], @@ -117278,20 +116056,69 @@ "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -117301,7 +116128,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117309,47 +116136,140 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/fixture/object-tests/metadata/hyphen-name.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-db1e44387ca0\"" + "is": "equal", + "value": "MQ==" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-meta-not-valid", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "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": "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "PUT" } }, { - "at": "/headers/host", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "/fixture/object-tests/metadata/names-differ-in-case.txt" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "MQ==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-meta-dup", "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": "one_of", + "values": [ + [ + "one", + "two" + ], + [ + "two", + "one" + ] + ] } } ], @@ -117363,15 +116283,74 @@ "date": { "from": "now" }, + "etag": "\"fixture-6c30b210f0a8\"", "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" - }, - "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-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": [ { @@ -117379,7 +116358,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117387,47 +116366,119 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/fixture/object-tests/metadata/punctuation-name.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-db1e44387ca0\"1" + "is": "equal", + "value": "MQ==" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "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": "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-replaced", + "profile": "s3", + "lane": "core", + "purpose": "put metadata replaced", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "body_base64": "Mg==", + "key": "object-tests/metadata/replaced.txt", + "op": "put" + }, + "exchanges": [ + { + "alternatives": [ + { + "request": [ { - "at": "/headers/host", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "PUT" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { - "at": "/headers/authorization", + "at": "/body_base64", "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": "Mg==" } } ], @@ -117441,13 +116492,13 @@ "date": { "from": "now" }, + "etag": "\"fixture-ea4c238956b1\"", "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" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -117467,7 +116518,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" + "value": "\"fixture-ea4c238956b1\"" } }, { @@ -117485,24 +116536,21 @@ "refusal": null }, { - "id": "operations/s3-express/commit-object-size-mismatch", - "profile": "s3-express", + "id": "operations/s3/put-metadata", + "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", + "purpose": "put metadata", "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=" + "body_base64": "MQ==", + "key": "object-tests/metadata/object.txt", + "metadata": { + "name": "value", + "second": "2" + }, + "op": "put" }, "exchanges": [ { @@ -117514,7 +116562,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -117522,38 +116570,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/metadata/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MQ==" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-meta-name", "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}" + "value": "value" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-amz-meta-second", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "2" } } ], @@ -117564,20 +116605,66 @@ "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -117587,7 +116674,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117595,55 +116682,120 @@ "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\"" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "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": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-a62b555324ac\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "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": [ + { + "alternatives": [ + { + "request": [ { - "at": "/headers/host", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "PUT" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/authorization", + "at": "/body_base64", "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": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "4" + "value": "\"fixture-db71b2c0257c\"" } } ], @@ -117652,7 +116804,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -117661,11 +116813,58 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" + "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/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": [ { "request": [ { @@ -117673,7 +116872,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117681,55 +116880,15 @@ "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" - } - }, - { - "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}" + "value": "/fixture/object-tests/write/object.txt" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "4" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } } ], @@ -117738,7 +116897,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 403, "headers": { "content-type": "application/xml", "date": { @@ -117747,7 +116906,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" + "data": "\nInvalidAccessKeyIdFixture error" }, "framing": "chunked" } @@ -117769,7 +116928,7 @@ "optional": false, "rule": { "is": "equal", - "value": 200 + "value": 403 } }, { @@ -117777,31 +116936,26 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidRequest" + "value": "InvalidAccessKeyId" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-object-size", - "profile": "s3-express", + "id": "operations/s3/stage-after-abort", + "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", + "purpose": "stage after abort", "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=" + "body_base64": "eA==", + "key": "object-tests/multipart/aborted.bin", + "op": "s3.upload_part", + "part_number": 2, + "upload_id": "fixture-upload+/f85cf0cd3a3f=" }, "exchanges": [ { @@ -117813,7 +116967,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -117821,38 +116975,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/aborted.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "eA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "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}" + "value": "2" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "fixture-upload+/f85cf0cd3a3f=" } } ], @@ -117861,22 +117008,67 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "\nNoSuchUploadFixture 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": "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": [ { @@ -117886,7 +117078,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117894,55 +117086,31 @@ "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\"" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/partNumber", "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": "2" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "3" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -117956,15 +117124,56 @@ "date": { "from": "now" }, + "etag": "\"fixture-32b70ae425ac\"", "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" + "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-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": [ { "request": [ { @@ -117972,7 +117181,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -117980,55 +117189,31 @@ "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=" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/partNumber", "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": "10000" } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "3" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -118042,13 +117227,13 @@ "date": { "from": "now" }, + "etag": "\"fixture-32b70ae425ac\"", "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" + "encoding": "base64", + "data": "" + } } } ] @@ -118068,41 +117253,26 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-32b70ae425ac\"" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-one-empty-part", - "profile": "s3-express", + "id": "operations/s3/stage-part-10001", + "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": "stage part 10001", "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=" + "body_base64": "eA==", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 10001, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -118114,7 +117284,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -118122,38 +117292,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "eA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "10001" } }, { - "at": "/headers/authorization", + "at": "/query/uploadId", "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" + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -118162,22 +117325,108 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidArgumentFixture 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": 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-part-zero", + "profile": "s3", + "lane": "core", + "purpose": "stage part zero", + "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=" + }, + "exchanges": [ { "alternatives": [ { @@ -118187,7 +117436,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -118195,47 +117444,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/empty.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "1\"fixture-db1e44387ca0\"" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "eA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "0" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } } ], @@ -118244,20 +117477,110 @@ ], "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": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" + "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": [ { @@ -118265,7 +117588,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -118273,47 +117596,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/empty.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-db1e44387ca0\"1" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "eA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/4d0d5ccc4993=" } } ], @@ -118322,16 +117629,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/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" + "data": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -118345,49 +117652,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" + "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-express/commit-subset", - "profile": "s3-express", + "id": "operations/s3/stage", + "profile": "s3", "lane": "core", - "purpose": "commit subset", + "purpose": "stage", "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=" + "body_base64": "cGFydA==", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -118399,7 +117699,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -118407,38 +117707,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "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}" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -118449,20 +117742,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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -118472,7 +117802,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -118480,47 +117810,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "1\"fixture-09ac5e35935f\"" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/3cc68ed16e61=" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } } ], @@ -118534,15 +117848,56 @@ "date": { "from": "now" }, + "etag": "\"fixture-6d60d5bbaa47\"", "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" - }, - "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": [ { "request": [ { @@ -118550,7 +117905,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -118558,47 +117913,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-09ac5e35935f\"1" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/3cc68ed16e61=" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } } ], @@ -118612,13 +117951,13 @@ "date": { "from": "now" }, + "etag": "\"fixture-6d60d5bbaa47\"", "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" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -118638,45 +117977,26 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-eef5a071f9f6\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-6d60d5bbaa47\"" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-unstaged-part", - "profile": "s3-express", + "id": "operations/s3/stage-key-percent", + "profile": "s3", "lane": "core", - "purpose": "commit unstaged part", + "purpose": "stage, with the key \"percent%20.txt\"", "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=" + "body_base64": "cGFydA==", + "key": "object-tests/keys/percent%20.txt", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -118688,7 +118008,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -118696,38 +118016,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "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}" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -118738,20 +118051,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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -118761,7 +118111,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -118769,47 +118119,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"3\"fixture-db71b2c0257c\"" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } } ], @@ -118818,20 +118152,61 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\nInvalidPartOrderFixture error" - }, - "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": [ { @@ -118839,7 +118214,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -118847,47 +118222,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-db71b2c0257c\"3" + "value": "/fixture/object-tests/keys/space name.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } } ], @@ -118896,18 +118255,18 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\nInvalidPartOrderFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -118919,50 +118278,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": "InvalidPartOrder" + "value": "\"fixture-6d60d5bbaa47\"" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-wrong-etag", - "profile": "s3-express", + "id": "operations/s3/stage-key-non-ascii", + "profile": "s3", "lane": "core", - "purpose": "commit wrong etag", + "purpose": "stage, with the key \"café/雪.txt\"", "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=" + "body_base64": "cGFydA==", + "key": "object-tests/keys/café/雪.txt", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -118974,7 +118317,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -118982,38 +118325,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "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}" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -119024,20 +118360,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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -119047,7 +118420,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -119055,47 +118428,31 @@ "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": "/fixture/object-tests/keys/double//slash.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } } ], @@ -119109,15 +118466,56 @@ "date": { "from": "now" }, + "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "InvalidPartFixture error" - }, - "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": [ { @@ -119125,7 +118523,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -119133,47 +118531,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-db71b2c0257c\"1\"fixture-ec2738a0b15a\"2" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "cGFydA==" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } } ], @@ -119187,13 +118569,13 @@ "date": { "from": "now" }, + "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "InvalidPartFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -119205,50 +118587,34 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 200 + "value": "ok" } }, { - "at": "/code", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "InvalidPart" + "value": "\"fixture-6d60d5bbaa47\"" } } ], "refusal": null }, { - "id": "operations/s3-express/commit", - "profile": "s3-express", + "id": "operations/s3/stage-empty-part", + "profile": "s3", "lane": "core", - "purpose": "commit", + "purpose": "Stage an empty part, which S3 takes", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { + "body_base64": "", "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=" + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -119260,7 +118626,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -119268,11 +118634,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -119280,26 +118646,19 @@ } }, { - "at": "/headers/host", + "at": "/query/partNumber", "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}" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -119310,20 +118669,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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -119333,7 +118729,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -119341,93 +118737,23 @@ "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}" + "value": "/fixture/object-tests/multipart/object.bin" } - } - ], - "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", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "" } }, { - "at": "/path", + "at": "/query/partNumber", "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": "1" } }, { @@ -119435,31 +118761,15 @@ "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" + "value": "fixture-upload+/276ca18046f9=" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-copy-source", "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": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -119470,16 +118780,15 @@ "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": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" - }, - "framing": "chunked" + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + } } } ] @@ -119499,45 +118808,30 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-key-question", - "profile": "s3-express", + "id": "operations/s3/stage-copy-range", + "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"question?mark.txt\"", + "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": { - "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=" + "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": [ { @@ -119549,7 +118843,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -119557,11 +118851,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -119569,76 +118863,11 @@ } }, { - "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", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "value": "1" } }, { @@ -119646,31 +118875,23 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/276ca18046f9=" } }, { - "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/x-amz-copy-source-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-2" } } ], @@ -119681,18 +118902,62 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" - }, - "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": [ { @@ -119700,7 +118965,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -119708,47 +118973,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "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": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "1" } }, { - "at": "/headers/host", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "fixture-upload+/276ca18046f9=" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "fixture-session-token" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-copy-source-range", "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": "bytes=0-9" } } ], @@ -119757,16 +119022,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": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInvalidArgumentFixture error" }, "framing": "chunked" } @@ -119780,53 +119045,44 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "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-express/commit-key-hash", - "profile": "s3-express", + "id": "operations/s3/stage-copy-200-internal-error", + "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"hash#tag.txt\"", + "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", "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=" + "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": [ { @@ -119838,7 +119094,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -119846,11 +119102,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -119858,26 +119114,27 @@ } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/authorization", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } }, { - "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" } } ], @@ -119888,16 +119145,16 @@ "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" } } ] @@ -119911,7 +119168,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -119919,47 +119176,39 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "fixture-upload+/276ca18046f9=" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-copy-source", "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": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -119970,18 +119219,23 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -119989,7 +119243,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -119997,47 +119251,39 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "fixture-upload+/276ca18046f9=" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-copy-source", "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": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -120048,76 +119294,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": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "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-ec4f3b9bcac2\"" - } + ], + "optional": true }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/commit-key-percent", - "profile": "s3-express", - "lane": "core", - "purpose": "commit, 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": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-9aff617fcdf8\"", - "number": 1 - }, - { - "etag": "\"fixture-ec2738a0b15a\"", - "number": 2 - } - ], - "upload_id": "fixture-upload+/c60fb1e2e00d=" - }, - "exchanges": [ { "alternatives": [ { @@ -120127,7 +119318,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -120135,11 +119326,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -120147,26 +119338,27 @@ } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/authorization", + "at": "/query/uploadId", "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-upload+/276ca18046f9=" } }, { - "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" } } ], @@ -120177,19 +119369,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": [ @@ -120200,7 +119393,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -120208,47 +119401,39 @@ "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": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "fixture-upload+/276ca18046f9=" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-copy-source", "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": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -120259,18 +119444,23 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -120278,7 +119468,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -120286,47 +119476,39 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { - "at": "/headers/host", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "1" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "fixture-upload+/276ca18046f9=" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-copy-source", "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": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -120337,19 +119519,20 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -120358,53 +119541,32 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-key-plus", - "profile": "s3-express", + "id": "operations/s3/staged-after-abort", + "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"plus+plus.txt\"", + "purpose": "staged after abort", "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/multipart/aborted.bin", + "op": "s3.list_parts", + "upload_id": "fixture-upload+/f85cf0cd3a3f=" }, "exchanges": [ { @@ -120424,11 +119586,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/aborted.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -120436,26 +119598,11 @@ } }, { - "at": "/headers/host", + "at": "/query/uploadId", "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": "fixture-upload+/f85cf0cd3a3f=" } } ], @@ -120464,22 +119611,65 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "\nNoSuchUploadFixture 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": "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": [ { @@ -120489,7 +119679,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -120497,47 +119687,23 @@ "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\"" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { - "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": "/query/uploadId", "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-upload+/6ba3c5e480a2=" } } ], @@ -120548,6 +119714,7 @@ "response": { "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, @@ -120555,11 +119722,98 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "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": [ { @@ -120567,7 +119821,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -120575,47 +119829,23 @@ "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=" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "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": "/query/uploadId", "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-upload+/4d0d5ccc4993=" } } ], @@ -120624,16 +119854,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/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -120647,53 +119877,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "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-express/commit-key-space", - "profile": "s3-express", + "id": "operations/s3/staged", + "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"space name.txt\"", + "purpose": "staged", "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/multipart/object.bin", + "op": "s3.list_parts", + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -120713,11 +119930,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -120725,26 +119942,11 @@ } }, { - "at": "/headers/host", + "at": "/query/uploadId", "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": "fixture-upload+/276ca18046f9=" } } ], @@ -120755,20 +119957,103 @@ "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" + "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" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "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": [ { @@ -120786,47 +120071,23 @@ "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\"" - } - }, - { - "at": "/query/uploadId", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "/fixture/object.bin" } }, { - "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": "/query/uploads", "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": "" } } ], @@ -120835,20 +120096,66 @@ ], "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/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "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/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": [ { @@ -120864,47 +120171,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.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=" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "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": "/query/uploads", "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": "" } } ], @@ -120913,16 +120196,16 @@ ], "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" + } }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInvalidAccessKeyIdFixture error" }, "framing": "chunked" } @@ -120936,53 +120219,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "value": 403 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidAccessKeyId" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-key-non-ascii", - "profile": "s3-express", + "id": "operations/s3/start", + "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"café/雪.txt\"", + "purpose": "start", "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/multipart/object.bin", + "op": "s3.create_multipart" }, "exchanges": [ { @@ -120994,7 +120263,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -121002,11 +120271,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/fixture/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -121014,26 +120283,11 @@ } }, { - "at": "/headers/host", + "at": "/query/uploads", "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": "" } } ], @@ -121044,20 +120298,58 @@ "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "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é" }, + "op": "put" + }, + "exchanges": [ { "alternatives": [ { @@ -121067,7 +120359,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -121075,47 +120367,34 @@ "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": "/fixture/object-tests/metadata/non-ascii.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "MQ==" } }, { - "at": "/headers/host", + "at": "/headers/x-ms-meta-value", "optional": false, "rule": { - "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "is": "one_of", + "values": [ + "café", + "café" + ] } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-ms-blob-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": "BlockBlob" } } ], @@ -121124,20 +120403,111 @@ ], "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-error-code": "InvalidMetadata" }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" - }, - "framing": "chunked" + "data": "InvalidMetadataFixture 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": "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": [ { @@ -121145,7 +120515,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -121153,47 +120523,34 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "value": "/fixture/object-tests/metadata/non-ascii.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "MQ==" } }, { - "at": "/headers/host", + "at": "/headers/x-ms-meta-value", "optional": false, "rule": { - "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "is": "one_of", + "values": [ + "café", + "café" + ] } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-ms-blob-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": "BlockBlob" } } ], @@ -121202,18 +120559,18 @@ ], "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-error-code": "InvalidMetadata" }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" - }, - "framing": "chunked" + "data": "InvalidMetadataFixture error" + } } } ] @@ -121225,53 +120582,84 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "value": 400 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/s3-express/commit-key-double-slash", - "profile": "s3-express", + "id": "operations/s3/put-metadata-non-ascii-value", + "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"double//slash.txt\"", + "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": { - "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=" + "body_base64": "MQ==", + "key": "object-tests/metadata/non-ascii.txt", + "metadata": { + "value": "café" + }, + "op": "put" }, "exchanges": [ { @@ -121283,7 +120671,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -121291,38 +120679,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" - } - }, - { - "at": "/query/session", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "value": "/fixture/object-tests/metadata/non-ascii.txt" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "MQ==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-meta-value", "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" + "pattern": "café|=\\?(?i:utf-8)\\?(?:(?i:q)\\?caf=(?i:c3)=(?i:a9)|(?i:b)\\?Y2Fmw6k=)\\?=" } } ], @@ -121333,20 +120706,94 @@ "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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 " }, + "op": "put" + }, + "exchanges": [ { "alternatives": [ { @@ -121356,7 +120803,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -121364,47 +120811,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" - } - }, - { - "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" + "value": "/fixture/object-tests/metadata/value-edge-whitespace.txt" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "MQ==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-meta-value", "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": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?=" } } ], @@ -121418,15 +120841,93 @@ "date": { "from": "now" }, + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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": "" + } } - }, + } + ] + } + ], + "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": [ { @@ -121434,7 +120935,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -121442,47 +120943,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.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" + "value": "/fixture/object-tests/metadata/value-encoded-word-text.txt" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "MQ==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-meta-value", "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": "=\\?(?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)\\?=" } } ], @@ -121496,13 +120973,13 @@ "date": { "from": "now" }, + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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": "" + } } } ] @@ -121522,7 +120999,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -121537,30 +121014,48 @@ } } ], - "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/commit-key-trailing-slash", - "profile": "s3-express", + "id": "operations/s3/put-metadata-value-not-an-encoded-word", + "profile": "s3", "lane": "core", - "purpose": "commit, with the key \"trailing-slash/\"", + "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": { - "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=" + "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": [ { @@ -121572,7 +121067,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -121580,38 +121075,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" - } - }, - { - "at": "/query/session", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "value": "/fixture/object-tests/metadata/value-not-an-encoded-word.txt" } }, { - "at": "/headers/host", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "MQ==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-meta-value", "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" + "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==)\\?=" } } ], @@ -121622,20 +121102,69 @@ "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_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-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": [ { @@ -121645,7 +121174,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -121653,47 +121182,155 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/metadata/value-control-characters.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "is": "equal", + "value": "MQ==" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-meta-value", + "optional": false, + "rule": { + "is": "matches", + "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?=" + } + } + ], + "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": "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-line-break", + "profile": "s3", + "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.", + "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" + }, + "exchanges": [ + { + "alternatives": [ + { + "request": [ + { + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "PUT" } }, { - "at": "/headers/host", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "/fixture/object-tests/metadata/value-line-break.txt" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "MQ==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-meta-value", "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": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?=" } } ], @@ -121707,15 +121344,74 @@ "date": { "from": "now" }, + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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": "" + } } - }, + } + ] + } + ], + "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": [ { @@ -121723,7 +121419,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "PUT" } }, { @@ -121731,47 +121427,130 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/metadata/value-with-tab.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "is": "equal", + "value": "MQ==" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-meta-value", + "optional": false, + "rule": { + "is": "matches", + "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?=" + } + } + ], + "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": "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": [ + { + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "PUT" } }, { - "at": "/headers/host", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "/fixture/object-tests/metadata/outside-latin-1.txt" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "MQ==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-meta-value", "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": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?=" } } ], @@ -121785,13 +121564,13 @@ "date": { "from": "now" }, + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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": "" + } } } ] @@ -121811,7 +121590,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -121826,32 +121605,44 @@ } } ], - "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/commit-200-internal-error", + "id": "operations/s3-express/abort-after-commit", "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": "abort after commit", "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" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "origin": "transient", "call": { "key": "object-tests/multipart/object.bin", - "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-9aff617fcdf8\"", - "number": 1 - }, - { - "etag": "\"fixture-ec2738a0b15a\"", - "number": 2 - } - ], + "op": "s3.abort_multipart", "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ @@ -121937,7 +121728,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -121949,11 +121740,11 @@ } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "is": "equal", + "value": "" } }, { @@ -121994,20 +121785,50 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/abort-unknown-upload", + "profile": "s3-express", + "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": [ + { + "alternatives": [ { "request": [ { @@ -122015,7 +121836,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -122023,23 +121844,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": "" } }, { @@ -122051,19 +121864,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" } } ], @@ -122074,16 +121886,16 @@ "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 + } } } ] @@ -122097,7 +121909,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -122109,11 +121921,11 @@ } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "is": "equal", + "value": "" } }, { @@ -122121,7 +121933,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/4d0d5ccc4993=" } }, { @@ -122154,7 +121966,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -122163,11 +121975,58 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "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-express/abort", + "profile": "s3-express", + "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+/4bef2cd6d025=" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -122175,7 +122034,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -122183,23 +122042,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": "" } }, { @@ -122211,19 +122062,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" } } ], @@ -122234,20 +122084,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": [ @@ -122258,7 +122107,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -122266,15 +122115,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/aborted.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "is": "equal", + "value": "" } }, { @@ -122282,7 +122131,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/4bef2cd6d025=" } }, { @@ -122315,20 +122164,56 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/commit-after-abort", + "profile": "s3-express", + "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+/4bef2cd6d025=" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -122336,7 +122221,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -122344,23 +122229,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": "" } }, { @@ -122372,19 +122249,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" } } ], @@ -122395,20 +122271,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": [ @@ -122427,7 +122302,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/aborted.bin" } }, { @@ -122435,7 +122310,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "value": "1\"fixture-db71b2c0257c\"" } }, { @@ -122443,7 +122318,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/4bef2cd6d025=" } }, { @@ -122478,14 +122353,14 @@ "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": "NoSuchUploadFixture error" }, "framing": "chunked" } @@ -122505,7 +122380,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/aborted.bin" } }, { @@ -122513,7 +122388,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "value": "\"fixture-db71b2c0257c\"1" } }, { @@ -122521,7 +122396,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/4bef2cd6d025=" } }, { @@ -122556,21 +122431,70 @@ "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": "NoSuchUploadFixture error" }, "framing": "chunked" } } - ], - "optional": true + ] + } + ], + "expect": [ + { + "at": "/outcome", + "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" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/commit-lost-the-race-to-create", + "profile": "s3-express", + "lane": "core", + "purpose": "commit lost the race to create", + "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=" + }, + "exchanges": [ { "alternatives": [ { @@ -122580,7 +122504,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -122588,23 +122512,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": "" } }, { @@ -122615,98 +122531,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": 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": "/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" + "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" } } ], @@ -122717,20 +122554,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": [ @@ -122749,7 +122585,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/guarded.bin" } }, { @@ -122757,7 +122593,15 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "value": "1\"fixture-201c9ed6f636\"" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -122765,7 +122609,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/c7be505aec65=" } }, { @@ -122800,14 +122644,14 @@ "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": "PreconditionFailedFixture error" }, "framing": "chunked" } @@ -122827,7 +122671,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/guarded.bin" } }, { @@ -122835,7 +122679,15 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "value": "\"fixture-201c9ed6f636\"1" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -122843,7 +122695,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/c7be505aec65=" } }, { @@ -122878,20 +122730,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": "PreconditionFailedFixture error" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -122903,36 +122754,38 @@ "value": "error" } }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 200 + } + }, { "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3-express/complete-multipart-200-error", + "id": "operations/s3-express/commit-nothing", "profile": "s3-express", "lane": "core", - "purpose": "complete multipart 200 error", + "purpose": "commit nothing", "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", + "key": "object-tests/multipart/guarded.bin", "op": "s3.complete_multipart", - "parts": [ - { - "etag": "\"part\"", - "number": 1 - } - ], - "upload_id": "upload+/=" + "parts": [], + "upload_id": "fixture-upload+/c7be505aec65=" }, "exchanges": [ { @@ -123025,23 +122878,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/multipart/guarded.bin" } }, { - "at": "/query/uploadId", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "upload+/=" + "is": "xml", + "value": "" } }, { - "at": "/body_text", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "xml", - "value": "1\"part\"" + "is": "equal", + "value": "fixture-upload+/c7be505aec65=" } }, { @@ -123074,19 +122927,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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=" + "encoding": "utf8", + "data": "\nMalformedXMLFixture error" }, "framing": "chunked" } @@ -123106,7 +122956,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/multipart/guarded.bin" + } + }, + { + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "" } }, { @@ -123114,15 +122972,85 @@ "optional": false, "rule": { "is": "equal", - "value": "upload+/=" + "value": "fixture-upload+/c7be505aec65=" } }, { - "at": "/body_text", + "at": "/headers/host", "optional": false, "rule": { - "is": "xml", - "value": "\"part\"1" + "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": "\nMalformedXMLFixture 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": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c7be505aec65=" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -123155,19 +123083,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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=" + "encoding": "utf8", + "data": "\nInvalidRequestYou must specify at least one part" }, "framing": "chunked" } @@ -123185,27 +123110,93 @@ } }, { - "at": "/code", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "InvalidPart" + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "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-express/delete-accepted", + "id": "operations/s3-express/commit-out-of-order", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted", + "purpose": "commit out of order", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/remove/present.txt", - "op": "delete" + "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": [ { @@ -123290,7 +123281,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -123298,15 +123289,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "2\"fixture-ec2738a0b15a\"1\"fixture-9aff617fcdf8\"" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -123339,49 +123338,20 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 400, "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": "\nInvalidPartOrderFixture error" + }, + "framing": "chunked" } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/delete-accepted-key-question", - "profile": "s3-express", - "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": [ { @@ -123389,7 +123359,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -123397,88 +123367,23 @@ "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" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/path", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "is": "xml", + "value": "\"fixture-ec2738a0b15a\"2\"fixture-9aff617fcdf8\"1" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -123511,17 +123416,18 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 400, "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": "\nInvalidPartOrderFixture error" + }, + "framing": "chunked" } } ] @@ -123533,23 +123439,91 @@ "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": "InvalidPartOrder" } } ], - "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": "equal", + "value": "InvalidPartOrder" + } + } + ] }, { - "id": "operations/s3-express/delete-accepted-key-hash", + "id": "operations/s3-express/commit-part-too-small", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"hash#tag.txt\"", + "purpose": "commit part too small", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/hash#tag.txt", - "op": "delete" + "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": [ { @@ -123634,7 +123608,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -123642,15 +123616,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/multipart/small.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "1\"fixture-132cb4a5de9d\"2\"fixture-2cab82eb728e\"" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/09837ae2020c=" } }, { @@ -123683,7 +123665,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -123691,41 +123673,12 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "EntityTooSmallFixture error" + }, + "framing": "chunked" } - } - ] - } - ], - "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": [ { @@ -123733,7 +123686,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -123741,88 +123694,23 @@ "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" + "value": "/object-tests/multipart/small.bin" } }, { - "at": "/path", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "is": "xml", + "value": "\"fixture-132cb4a5de9d\"1\"fixture-2cab82eb728e\"2" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/09837ae2020c=" } }, { @@ -123855,7 +123743,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -123863,9 +123751,10 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "EntityTooSmallFixture error" + }, + "framing": "chunked" } } ] @@ -123877,23 +123766,47 @@ "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": "EntityTooSmall" } } ], "refusal": null }, { - "id": "operations/s3-express/delete-accepted-key-plus", + "id": "operations/s3-express/commit-precondition-failed", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"plus+plus.txt\"", + "purpose": "commit precondition failed", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/plus+plus.txt", - "op": "delete" + "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": [ { @@ -123978,7 +123891,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -123986,15 +123899,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/multipart/guarded.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "1\"fixture-201c9ed6f636\"" + } + }, + { + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-db71b2c0257c\"" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c7be505aec65=" } }, { @@ -124027,7 +123956,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -124035,41 +123964,12 @@ "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" - } - } - ], - "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": [ { @@ -124077,7 +123977,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -124085,88 +123985,31 @@ "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" + "value": "/object-tests/multipart/guarded.bin" } - } - ], - "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": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "DELETE" + "is": "xml", + "value": "\"fixture-201c9ed6f636\"1" } }, { - "at": "/path", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "\"fixture-db71b2c0257c\"" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/c7be505aec65=" } }, { @@ -124199,7 +124042,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -124207,9 +124050,10 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "PreconditionFailedFixture error" + }, + "framing": "chunked" } } ] @@ -124221,23 +124065,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-express/delete-accepted-key-non-ascii", + "id": "operations/s3-express/commit-single-small-part", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"café/雪.txt\"", + "purpose": "commit single small part", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/café/雪.txt", - "op": "delete" + "key": "object-tests/multipart/single.bin", + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-db1e44387ca0\"", + "number": 1 + } + ], + "upload_id": "fixture-upload+/b39780854a14=" }, "exchanges": [ { @@ -124322,7 +124189,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -124330,15 +124197,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "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": "" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -124371,7 +124246,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -124379,41 +124254,12 @@ "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" } - } - ] - } - ], - "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": [ { @@ -124421,7 +124267,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -124429,88 +124275,23 @@ "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" + "value": "/object-tests/multipart/single.bin" } }, { - "at": "/path", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "is": "xml", + "value": "\"fixture-db1e44387ca0\"1" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -124543,7 +124324,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -124551,9 +124332,10 @@ "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" } } ] @@ -124567,21 +124349,48 @@ "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/delete-accepted-key-trailing-slash", + "id": "operations/s3-express/commit-object-size-mismatch", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"trailing-slash/\"", + "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/keys/trailing-slash/", - "op": "delete" + "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=" }, "exchanges": [ { @@ -124666,7 +124475,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -124674,15 +124483,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "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": "" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -124708,6 +124525,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-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "4" + } } ], "allow_headers": [ @@ -124715,53 +124540,20 @@ ], "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": "\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-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": [ { @@ -124769,7 +124561,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -124777,15 +124569,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/commit-object-size-mismatch.bin" } }, { - "at": "/query/session", + "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=" } }, { @@ -124796,114 +124596,31 @@ "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": "/headers/x-amz-mp-object-size", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "4" } } ], - "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": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" - } - }, - { - "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" ], @@ -124911,16 +124628,16 @@ "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": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } } ] @@ -124932,44 +124649,47 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/deleted", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": [ - "object-tests/batch/a.txt", - "object-tests/batch/b.txt", - "object-tests/batch/absent.txt" - ] + "value": 200 } }, { - "at": "/value/errors", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": [] + "value": "InvalidRequest" } } ], "refusal": null }, { - "id": "operations/s3-express/delete-slow-down", + "id": "operations/s3-express/commit-object-size", "profile": "s3-express", "lane": "core", - "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries", + "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/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/multipart/commit-object-size.bin", + "object_size": 3, + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-db1e44387ca0\"", + "number": 1 + } + ], + "upload_id": "fixture-upload+/b39780854a14=" }, "exchanges": [ { @@ -125054,7 +124774,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -125062,15 +124782,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/object-tests/multipart/commit-object-size.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": "" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -125096,79 +124824,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": 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": "/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", + "at": "/headers/x-amz-mp-object-size", "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": "3" } } ], @@ -125177,25 +124839,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" + "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": [ { @@ -125203,7 +124860,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -125211,15 +124868,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/object-tests/multipart/commit-object-size.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=" } }, { @@ -125245,6 +124910,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-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "3" + } } ], "allow_headers": [ @@ -125252,23 +124925,74 @@ ], "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" + "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": [ { @@ -125278,7 +125002,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -125286,11 +125010,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -125306,19 +125030,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" } } ], @@ -125327,22 +125050,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": [ @@ -125353,7 +125075,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -125361,15 +125083,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.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": "" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -125402,25 +125132,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" + "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -125428,7 +125153,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -125436,15 +125161,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.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": "" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -125477,22 +125210,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": "\nSlowDownPlease reduce your request rate.fixture" + "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -125501,40 +125233,49 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 503 + "value": "\"fixture-0841fa5d9c5c\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "SlowDown" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/delete-if-match-current", + "id": "operations/s3-express/commit-subset", "profile": "s3-express", "lane": "core", - "purpose": "delete if match current", + "purpose": "commit subset", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-137dbea0e0a1\"", - "key": "object-tests/remove/conditional.txt", - "op": "delete" + "key": "object-tests/multipart/replaced.bin", + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-09ac5e35935f\"", + "number": 1 + } + ], + "upload_id": "fixture-upload+/3cc68ed16e61=" }, "exchanges": [ { @@ -125619,7 +125360,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -125627,23 +125368,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/conditional.txt" + "value": "/object-tests/multipart/replaced.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-09ac5e35935f\"" } }, { - "at": "/headers/if-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-137dbea0e0a1\"" + "value": "fixture-upload+/3cc68ed16e61=" } }, { @@ -125676,7 +125417,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -125684,41 +125425,12 @@ "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" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/delete-missing", - "profile": "s3-express", - "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": [ { @@ -125726,7 +125438,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -125734,88 +125446,23 @@ "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" + "value": "/object-tests/multipart/replaced.bin" } }, { - "at": "/path", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "/object-tests/remove/absent.txt" + "is": "xml", + "value": "\"fixture-09ac5e35935f\"1" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/3cc68ed16e61=" } }, { @@ -125848,7 +125495,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -125856,9 +125503,10 @@ "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" } } ] @@ -125872,22 +125520,51 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-eef5a071f9f6\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } } ], "refusal": null }, { - "id": "operations/s3-express/delete-precondition-failed", + "id": "operations/s3-express/commit-unstaged-part", "profile": "s3-express", "lane": "core", - "purpose": "delete precondition failed", + "purpose": "commit unstaged part", "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/multipart/object.bin", + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-9aff617fcdf8\"", + "number": 1 + }, + { + "etag": "\"fixture-db71b2c0257c\"", + "number": 3 + } + ], + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -125972,7 +125649,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -125980,23 +125657,101 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/conditional.txt" + "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": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { - "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/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": "\nInvalidPartOrderFixture error" + }, + "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-db71b2c0257c\"3" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -126029,7 +125784,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -126038,7 +125793,7 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "\nInvalidPartOrderFixture error" }, "framing": "chunked" } @@ -126060,7 +125815,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 400 } }, { @@ -126068,23 +125823,34 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "InvalidPartOrder" } } ], "refusal": null }, { - "id": "operations/s3-express/get-before-commit", + "id": "operations/s3-express/commit-wrong-etag", "profile": "s3-express", "lane": "core", - "purpose": "get before commit", + "purpose": "commit wrong etag", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { "key": "object-tests/multipart/object.bin", - "op": "get" + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-db71b2c0257c\"", + "number": 1 + }, + { + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 + } + ], + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -126169,7 +125935,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -126181,11 +125947,19 @@ } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "1\"fixture-db71b2c0257c\"2\"fixture-ec2738a0b15a\"" + } + }, + { + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -126218,16 +125992,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": "\nNoSuchKeyFixture error" + "data": "InvalidPartFixture error" }, "framing": "chunked" } @@ -126239,7 +126013,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -126251,19 +126025,19 @@ } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-db71b2c0257c\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -126296,16 +126070,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": "\nNoSuchKeyFixture error" + "data": "InvalidPartFixture error" }, "framing": "chunked" } @@ -126327,7 +126101,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 200 } }, { @@ -126335,26 +126109,34 @@ "optional": false, "rule": { "is": "equal", - "value": "NoSuchKey" + "value": "InvalidPart" } } ], "refusal": null }, { - "id": "operations/s3-express/get-committed-tail", + "id": "operations/s3-express/commit", "profile": "s3-express", "lane": "core", - "purpose": "get committed tail", + "purpose": "commit", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { "key": "object-tests/multipart/object.bin", - "op": "get", - "range": { - "suffix": 10 - } + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-9aff617fcdf8\"", + "number": 1 + }, + { + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 + } + ], + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -126439,7 +126221,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -126451,19 +126233,19 @@ } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "bytes=-10" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -126496,24 +126278,30 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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==" - } + "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, @@ -126523,19 +126311,19 @@ } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/method", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -126561,108 +126349,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=-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": [ @@ -126670,20 +126356,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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" - } + "encoding": "utf8", + "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } } ] @@ -126706,22 +126390,6 @@ "value": "\"fixture-ec4f3b9bcac2\"" } }, - { - "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, @@ -126732,29 +126400,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "Y2RlZnNlY29uZA==" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-empty", + "id": "operations/s3-express/commit-key-question", "profile": "s3-express", "lane": "core", - "purpose": "get empty", + "purpose": "commit, with the key \"question?mark.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/write/empty.bin", - "op": "get" + "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": [ { @@ -126839,7 +126510,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -126847,15 +126518,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/empty.bin" + "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": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -126890,17 +126569,16 @@ "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": "" - } + "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" } }, { @@ -126910,7 +126588,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -126918,23 +126596,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/empty.bin" + "value": "/object-tests/keys/question?mark.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -126962,109 +126640,21 @@ } } ], - "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": 200, "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": "\nInvalidRangeEmpty object0" + "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -127086,23 +126676,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-de1997e62b9b\"" - } - }, - { - "at": "/value/size", - "optional": false, - "rule": { - "is": "equal", - "value": 0 - } - }, - { - "at": "/value/content_type", - "optional": false, - "rule": { - "is": "equal", - "value": "binary/octet-stream" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -127115,30 +126689,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-if-match-current", + "id": "operations/s3-express/commit-key-hash", "profile": "s3-express", "lane": "core", - "purpose": "get if match current", + "purpose": "commit, with the key \"hash#tag.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-672b31e65569\"", - "key": "object-tests/read/object.txt", - "op": "get" + "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": [ { @@ -127223,7 +126799,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -127231,23 +126807,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/keys/hash#tag.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { - "at": "/headers/if-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -127282,17 +126858,16 @@ "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" - } + "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" } }, { @@ -127302,7 +126877,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -127310,31 +126885,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/keys/hash#tag.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/if-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" - } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -127367,20 +126934,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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" - } + "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" } } ] @@ -127400,23 +126965,7 @@ "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" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -127429,30 +126978,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-if-none-match-other", + "id": "operations/s3-express/commit-key-percent", "profile": "s3-express", "lane": "core", - "purpose": "get if none match other", + "purpose": "commit, with the key \"percent%20.txt\"", "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" + "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": [ { @@ -127537,7 +127088,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -127545,23 +127096,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/keys/percent%20.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { - "at": "/headers/if-none-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -127596,17 +127147,16 @@ "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" - } + "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" } }, { @@ -127616,7 +127166,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -127624,31 +127174,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/keys/percent%20.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/if-none-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" - } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -127681,20 +127223,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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" - } + "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" } } ] @@ -127714,23 +127254,7 @@ "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" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -127743,29 +127267,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-hash", + "id": "operations/s3-express/commit-key-plus", "profile": "s3-express", "lane": "core", - "purpose": "get key with hash", + "purpose": "commit, with the key \"plus+plus.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/names/hash#tag.txt", - "op": "get" + "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": [ { @@ -127850,7 +127377,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -127858,15 +127385,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/hash#tag.txt" + "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": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -127901,17 +127436,16 @@ "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": "base64", - "data": "MQ==" - } + "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" } }, { @@ -127921,7 +127455,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -127929,23 +127463,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/hash#tag.txt" + "value": "/object-tests/keys/plus+plus.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -127978,20 +127512,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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": "base64", - "data": "MQ==" - } + "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" } } ] @@ -128011,23 +127543,7 @@ "optional": false, "rule": { "is": "equal", - "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" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -128040,29 +127556,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-percent", + "id": "operations/s3-express/commit-key-space", "profile": "s3-express", "lane": "core", - "purpose": "get key with percent", + "purpose": "commit, with the key \"space name.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/names/percent%20.txt", - "op": "get" + "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": [ { @@ -128147,7 +127666,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -128155,15 +127674,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/percent%20.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": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -128198,17 +127725,16 @@ "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": "base64", - "data": "MQ==" - } + "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" } }, { @@ -128218,7 +127744,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -128226,23 +127752,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/percent%20.txt" + "value": "/object-tests/keys/space name.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -128275,20 +127801,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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": "base64", - "data": "MQ==" - } + "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" } } ] @@ -128308,23 +127832,7 @@ "optional": false, "rule": { "is": "equal", - "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" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -128337,29 +127845,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-plus", + "id": "operations/s3-express/commit-key-non-ascii", "profile": "s3-express", "lane": "core", - "purpose": "get key with plus", + "purpose": "commit, with the key \"café/雪.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/names/plus+plus.txt", - "op": "get" + "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": [ { @@ -128444,7 +127955,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -128452,15 +127963,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/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": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -128495,17 +128014,16 @@ "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": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } }, { @@ -128515,7 +128033,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -128523,23 +128041,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/plus+plus.txt" + "value": "/object-tests/keys/café/雪.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -128572,20 +128090,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } } ] @@ -128605,23 +128121,7 @@ "optional": false, "rule": { "is": "equal", - "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" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -128634,29 +128134,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-space", + "id": "operations/s3-express/commit-key-double-slash", "profile": "s3-express", "lane": "core", - "purpose": "get key with space", + "purpose": "commit, with the key \"double//slash.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/names/space name.txt", - "op": "get" + "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": [ { @@ -128741,7 +128244,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -128749,94 +128252,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/space name.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-type": "binary/octet-stream", - "date": { - "from": "now" - }, - "etag": "\"fixture-d614f09fca44\"", - "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" + "value": "/object-tests/keys/double//slash.txt" } }, { - "at": "/path", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "/object-tests/names/space name.txt" + "is": "xml", + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -128869,20 +128301,96 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "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": "base64", - "data": "MQ==" + "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" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "POST" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/keys/double//slash.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": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } } ] @@ -128902,23 +128410,7 @@ "optional": false, "rule": { "is": "equal", - "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" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -128931,29 +128423,32 @@ "" ] } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" - } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-question", + "id": "operations/s3-express/commit-key-trailing-slash", "profile": "s3-express", "lane": "core", - "purpose": "get key question", + "purpose": "commit, 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": "a?b", - "op": "get" + "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": [ { @@ -129038,7 +128533,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129046,27 +128541,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/a?b" + "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\"" } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/query/uploadId", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -129094,23 +128585,23 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "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" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } }, { @@ -129120,7 +128611,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129128,35 +128619,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/a?b" + "value": "/object-tests/keys/trailing-slash/" } }, { - "at": "/body_base64", + "at": "/body_text", "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" - ] + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -129184,24 +128663,23 @@ } } ], - "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", "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": "aGVsbG8=" - } + "encoding": "utf8", + "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" } } ] @@ -129217,27 +128695,52 @@ } }, { - "at": "/value/body_base64", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "\"fixture-ec4f3b9bcac2\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-non-ascii", + "id": "operations/s3-express/commit-200-internal-error", "profile": "s3-express", "lane": "core", - "purpose": "get key unicode", + "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://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" + "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": "café/雪", - "op": "get" + "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": [ { @@ -129322,7 +128825,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129330,27 +128833,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/café/雪" + "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\"" } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/query/uploadId", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -129378,23 +128877,23 @@ } } ], - "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } }, { @@ -129404,7 +128903,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129412,35 +128911,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/café/雪" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "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" - ] + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -129468,62 +128955,27 @@ } } ], - "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "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/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "aGVsbG8=" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/get-key-with-separators", - "profile": "s3-express", - "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": [ { @@ -129533,7 +128985,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129541,15 +128993,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "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=" } }, { @@ -129561,18 +129021,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}" } } ], @@ -129583,22 +129044,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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -129606,7 +129063,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129614,27 +129071,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/a//b/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/query/uploadId", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -129662,25 +129115,30 @@ } } ], - "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -129688,7 +129146,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129696,35 +129154,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/a//b/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "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" - ] + "is": "xml", + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -129752,64 +129198,25 @@ } } ], - "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" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "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/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": [ { @@ -129817,7 +129224,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129825,15 +129232,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "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=" } }, { @@ -129845,18 +129260,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}" } } ], @@ -129867,19 +129283,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": [ @@ -129890,7 +129307,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129898,15 +129315,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/empty-value.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": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -129941,18 +129366,16 @@ "response": { "status": 200, "headers": { - "content-type": "binary/octet-stream", + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-e6096f6fd1ec\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-empty": "" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } }, { @@ -129962,7 +129385,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -129970,23 +129393,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/empty-value.txt" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -130019,102 +129442,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-e6096f6fd1ec\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-empty": "" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "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-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": "" - } + ], + "optional": true }, - { - "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": [ { @@ -130124,7 +129468,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -130132,15 +129476,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "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=" } }, { @@ -130151,19 +129503,98 @@ "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}" + } + } + ], + "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": "/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", "optional": false, "rule": { - "is": "absent" + "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}" } } ], @@ -130174,19 +129605,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": [ @@ -130197,7 +129629,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -130205,15 +129637,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/hyphen-name.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": "" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -130248,18 +129688,16 @@ "response": { "status": 200, "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-not-valid": "1" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } }, { @@ -130269,7 +129707,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -130277,23 +129715,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/hyphen-name.txt" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { - "at": "/headers/range", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -130326,24 +129764,22 @@ ], "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-adae183ea4af\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-not-valid": "1" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -130352,74 +129788,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, - "" - ] - } - }, - { - "at": "/value/metadata/not-valid", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-punctuation-name", + "id": "operations/s3-express/complete-multipart-200-error", "profile": "s3-express", "lane": "core", - "purpose": "Report a metadata name that holds any character of an HTTP token.", + "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": { - "key": "object-tests/metadata/punctuation-name.txt", - "op": "get" + "key": "object", + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"part\"", + "number": 1 + } + ], + "upload_id": "upload+/=" }, "exchanges": [ { @@ -130504,7 +129905,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -130512,15 +129913,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/punctuation-name.txt" + "value": "/object" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "upload+/=" + } + }, + { + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "1\"part\"" } }, { @@ -130555,18 +129964,19 @@ "response": { "status": 200, "headers": { - "content-type": "binary/octet-stream", + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-adae183ea4af\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-1a!#$%&'*+.^_`|~b": "1" + "x-amz-request-id": "fixture-request-id" }, "body": { "encoding": "base64", - "data": "MQ==" - } + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4=" + }, + "framing": "chunked" } }, { @@ -130576,7 +129986,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -130584,23 +129994,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/punctuation-name.txt" + "value": "/object" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "upload+/=" } }, { - "at": "/headers/range", + "at": "/body_text", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "xml", + "value": "\"part\"1" } }, { @@ -130633,21 +130043,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-adae183ea4af\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-1a!#$%&'*+.^_`|~b": "1" + "x-amz-request-id": "fixture-request-id" }, "body": { "encoding": "base64", - "data": "MQ==" - } + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4=" + }, + "framing": "chunked" } } ] @@ -130659,76 +130069,31 @@ "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==" + "value": "error" } }, { - "at": "/value/metadata", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": { - "1a!#$%&'*+.^_`|~b": "1" - } + "value": "InvalidPart" } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-non-ascii-value", + "id": "operations/s3-express/delete-accepted", "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": "delete accepted", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/non-ascii.txt", - "op": "get" + "key": "object-tests/remove/present.txt", + "op": "delete" }, "exchanges": [ { @@ -130813,7 +130178,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -130821,7 +130186,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/non-ascii.txt" + "value": "/object-tests/remove/present.txt" } }, { @@ -130862,22 +130227,49 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { - "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?Q?caf=C3=A9?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/delete-accepted-key-question", + "profile": "s3-express", + "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": [ { @@ -130893,11 +130285,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/non-ascii.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -130905,11 +130297,76 @@ } }, { - "at": "/headers/range", + "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": "bytes=0-[1-9][0-9]{2,}" + "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/question?mark.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -130942,20 +130399,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 204, "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?Q?caf=C3=A9?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } } @@ -130970,79 +130423,21 @@ "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", + "id": "operations/s3-express/delete-accepted-key-hash", "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.", + "purpose": "delete accepted, with the key \"hash#tag.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/outside-latin-1.txt", - "op": "get" + "key": "object-tests/keys/hash#tag.txt", + "op": "delete" }, "exchanges": [ { @@ -131127,7 +130522,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -131135,7 +130530,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/outside-latin-1.txt" + "value": "/object-tests/keys/hash#tag.txt" } }, { @@ -131176,22 +130571,49 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { - "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?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } - }, + } + ] + } + ], + "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": [ { @@ -131207,11 +130629,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/outside-latin-1.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -131219,11 +130641,76 @@ } }, { - "at": "/headers/range", + "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": "bytes=0-[1-9][0-9]{2,}" + "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": "" } }, { @@ -131256,20 +130743,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 204, "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?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } } @@ -131284,79 +130767,21 @@ "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/get-metadata-split-encoded-words", + "id": "operations/s3-express/delete-accepted-key-plus", "profile": "s3-express", "lane": "core", - "purpose": "Decode a long metadata value that a directory bucket returns as one encoded word", + "purpose": "delete accepted, with the key \"plus+plus.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/split-encoded-words.txt", - "op": "get" + "key": "object-tests/keys/plus+plus.txt", + "op": "delete" }, "exchanges": [ { @@ -131441,7 +130866,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -131449,7 +130874,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/split-encoded-words.txt" + "value": "/object-tests/keys/plus+plus.txt" } }, { @@ -131490,22 +130915,49 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "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?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "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": [ { @@ -131521,11 +130973,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/split-encoded-words.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -131533,11 +130985,76 @@ } }, { - "at": "/headers/range", + "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": "bytes=0-[1-9][0-9]{2,}" + "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": "" } }, { @@ -131570,20 +131087,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 204, "headers": { - "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?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } } @@ -131598,74 +131111,21 @@ "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/get-metadata-malformed-encoded-word", + "id": "operations/s3-express/delete-accepted-key-non-ascii", "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.", + "purpose": "delete accepted, with the key \"café/雪.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/malformed-encoded-word.txt", - "op": "get" + "key": "object-tests/keys/café/雪.txt", + "op": "delete" }, "exchanges": [ { @@ -131750,7 +131210,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -131758,7 +131218,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/malformed-encoded-word.txt" + "value": "/object-tests/keys/café/雪.txt" } }, { @@ -131799,22 +131259,49 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { - "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?Q?caf=ZZ?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "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": [ { @@ -131830,11 +131317,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/malformed-encoded-word.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -131842,11 +131329,76 @@ } }, { - "at": "/headers/range", + "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": "bytes=0-[1-9][0-9]{2,}" + "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": "" } }, { @@ -131879,20 +131431,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 204, "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?Q?caf=ZZ?=" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } } @@ -131907,74 +131455,21 @@ "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/get-metadata-replaced", + "id": "operations/s3-express/delete-accepted-key-trailing-slash", "profile": "s3-express", "lane": "core", - "purpose": "get metadata replaced", + "purpose": "delete accepted, with the key \"trailing-slash/\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/replaced.txt", - "op": "get" + "key": "object-tests/keys/trailing-slash/", + "op": "delete" }, "exchanges": [ { @@ -132059,7 +131554,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -132067,7 +131562,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/replaced.txt" + "value": "/object-tests/keys/trailing-slash/" } }, { @@ -132108,21 +131603,53 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "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": "Mg==" + "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": [ { @@ -132138,25 +131665,17 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/replaced.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, @@ -132166,40 +131685,129 @@ } }, { - "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": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + } + }, + { + "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_query": [], "response": { - "status": 206, + "status": 200, "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" + "content-type": "application/xml" }, "body": { - "encoding": "base64", - "data": "Mg==" + "encoding": "utf8", + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + }, + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 } } } @@ -132216,62 +131824,40 @@ } }, { - "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", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": "binary/octet-stream" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" + "value": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ] } }, { - "at": "/value/body_base64", + "at": "/value/errors", "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": [] } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata", + "id": "operations/s3-express/delete-slow-down", "profile": "s3-express", "lane": "core", - "purpose": "get metadata", + "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/object.txt", - "op": "get" + "key": "object-tests/remove/present.txt", + "op": "delete" }, "exchanges": [ { @@ -132356,7 +131942,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -132364,7 +131950,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/object.txt" + "value": "/object-tests/remove/present.txt" } }, { @@ -132405,23 +131991,24 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 503, "headers": { - "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" + } }, "body": { - "encoding": "base64", - "data": "MQ==" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -132429,7 +132016,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -132437,7 +132024,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/object.txt" + "value": "/object-tests/remove/present.txt" } }, { @@ -132448,14 +132035,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } - }, { "at": "/headers/host", "optional": false, @@ -132486,111 +132065,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-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": "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-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" - } + ], + "optional": true }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/get-metadata-ignores-unknown-headers", - "profile": "s3-express", - "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": [ { @@ -132600,7 +132091,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -132608,11 +132099,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/remove/present.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -132628,18 +132119,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}" } } ], @@ -132648,21 +132140,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": [ @@ -132673,7 +132166,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -132681,7 +132174,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/remove/present.txt" } }, { @@ -132692,18 +132185,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, @@ -132729,27 +132210,30 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 503, "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-meta-author": "Ada", - "x-amz-request-id": "fixture-request-id", - "x-unrelated": "not metadata" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -132757,7 +132241,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -132765,7 +132249,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/remove/present.txt" } }, { @@ -132777,23 +132261,78 @@ } }, { - "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/range", + "at": "/headers/x-amz-s3session-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-session-token" + } + }, + { + "at": "/headers/authorization", "optional": false, "rule": { "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "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" + } + } + ], + "optional": true + }, + { + "alternatives": [ + { + "request": [ + { + "at": "/method", + "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": "" } }, { @@ -132821,29 +132360,27 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 503, "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-meta-author": "Ada", - "x-amz-request-id": "fixture-request-id", - "x-unrelated": "not metadata" + } }, "body": { - "encoding": "base64", - "data": "aGVsbG8=" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -132852,41 +132389,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": 503 } }, { - "at": "/value/metadata", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": { - "author": "Ada" - } + "value": "SlowDown" } } ], "refusal": null }, { - "id": "operations/s3-express/get-missing", + "id": "operations/s3-express/delete-if-match-current", "profile": "s3-express", "lane": "core", - "purpose": "get missing", + "purpose": "delete if match current", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/read/absent.txt", - "op": "get" + "if_match": "\"fixture-137dbea0e0a1\"", + "key": "object-tests/remove/conditional.txt", + "op": "delete" }, "exchanges": [ { @@ -132971,7 +132507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -132979,7 +132515,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/absent.txt" + "value": "/object-tests/remove/conditional.txt" } }, { @@ -132991,81 +132527,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": 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": "GET" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/read/absent.txt" - } - }, - { - "at": "/body_base64", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "value": "\"fixture-137dbea0e0a1\"" } }, { @@ -133098,18 +132564,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": "\nNoSuchKeyFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -133121,40 +132586,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": "NoSuchKey" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3-express/get-not-modified", + "id": "operations/s3-express/delete-missing", "profile": "s3-express", "lane": "core", - "purpose": "get not modified", + "purpose": "delete missing", "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" + "key": "object-tests/remove/absent.txt", + "op": "delete" }, "exchanges": [ { @@ -133239,7 +132687,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -133247,7 +132695,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/remove/absent.txt" } }, { @@ -133258,14 +132706,6 @@ "value": "" } }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-672b31e65569\"" - } - }, { "at": "/headers/host", "optional": false, @@ -133296,19 +132736,50 @@ ], "allow_query": [], "response": { - "status": 304, + "status": 204, "headers": { "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"" + "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-express/delete-precondition-failed", + "profile": "s3-express", + "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": [ { "request": [ { @@ -133324,11 +132795,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -133336,19 +132807,84 @@ } }, { - "at": "/headers/if-none-match", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" } }, { - "at": "/headers/range", + "at": "/headers/authorization", "optional": false, "rule": { "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "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/remove/conditional.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" } }, { @@ -133381,17 +132917,18 @@ ], "allow_query": [], "response": { - "status": 304, + "status": 412, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-672b31e65569\"" + } }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "\nPreconditionFailedFixture error" + }, + "framing": "chunked" } } ] @@ -133411,23 +132948,30 @@ "optional": false, "rule": { "is": "equal", - "value": 304 + "value": 412 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3-express/get-precondition-failed", + "id": "operations/s3-express/get-before-commit", "profile": "s3-express", "lane": "core", - "purpose": "get precondition failed", + "purpose": "get before commit", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-db71b2c0257c\"", - "key": "object-tests/read/object.txt", + "key": "object-tests/multipart/object.bin", "op": "get" }, "exchanges": [ @@ -133521,7 +133065,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -133532,14 +133076,6 @@ "value": "" } }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" - } - }, { "at": "/headers/host", "optional": false, @@ -133570,7 +133106,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -133579,7 +133115,7 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "\nNoSuchKeyFixture error" }, "framing": "chunked" } @@ -133599,7 +133135,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -133610,14 +133146,6 @@ "value": "" } }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" - } - }, { "at": "/headers/range", "optional": false, @@ -133656,7 +133184,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -133665,7 +133193,7 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "\nNoSuchKeyFixture error" }, "framing": "chunked" } @@ -133687,7 +133215,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 404 } }, { @@ -133695,26 +133223,25 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "NoSuchKey" } } ], "refusal": null }, { - "id": "operations/s3-express/get-range-inverted", + "id": "operations/s3-express/get-committed-tail", "profile": "s3-express", "lane": "core", - "purpose": "get range inverted", + "purpose": "get committed tail", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/read/object.txt", + "key": "object-tests/multipart/object.bin", "op": "get", "range": { - "end": 2, - "start": 6 + "suffix": 10 } }, "exchanges": [ @@ -133808,7 +133335,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -133824,7 +133351,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=6-1" + "value": "bytes=-10" } }, { @@ -133857,18 +133384,193 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { + "content-range": "bytes 5242876-5242885/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": "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" } } } @@ -133889,7 +133591,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -133897,7 +133599,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 10 } }, { @@ -133924,52 +133626,23 @@ "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": "Y2RlZnNlY29uZA==" } } ], - "decline_permitted": true + "refusal": null }, { - "id": "operations/s3-express/get-range-not-satisfiable", + "id": "operations/s3-express/get-empty", "profile": "s3-express", "lane": "core", - "purpose": "get range not satisfiable", + "purpose": "get empty", "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/write/empty.bin", + "op": "get" }, "exchanges": [ { @@ -134062,7 +133735,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/write/empty.bin" } }, { @@ -134073,14 +133746,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=40-" - } - }, { "at": "/headers/host", "optional": false, @@ -134111,18 +133776,19 @@ ], "allow_query": [], "response": { - "status": 416, + "status": 200, "headers": { - "content-type": "application/xml", + "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": "\nInvalidRangeFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } }, { @@ -134140,7 +133806,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/write/empty.bin" } }, { @@ -134156,7 +133822,7 @@ "optional": false, "rule": { "is": "matches", - "pattern": "bytes=40-[1-9][0-9]{2,}" + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -134184,6 +133850,91 @@ } } ], + "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" ], @@ -134191,14 +133942,17 @@ "response": { "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": "\nInvalidRangeFixture error" + "data": "\nInvalidRangeEmpty object0" }, "framing": "chunked" } @@ -134212,43 +133966,67 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 416 + "value": "\"fixture-de1997e62b9b\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidRange" + "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/get-range-past-the-end", + "id": "operations/s3-express/get-if-match-current", "profile": "s3-express", "lane": "core", - "purpose": "get range past the end", + "purpose": "get if match current", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { + "if_match": "\"fixture-672b31e65569\"", "key": "object-tests/read/object.txt", - "op": "get", - "range": { - "end": 64, - "start": 28 - } + "op": "get" }, "exchanges": [ { @@ -134353,11 +134131,11 @@ } }, { - "at": "/headers/range", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "bytes=28-63" + "value": "\"fixture-672b31e65569\"" } }, { @@ -134390,9 +134168,8 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 28-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -134402,87 +134179,10 @@ }, "body": { "encoding": "base64", - "data": "Y3Q=" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } - } - ] - } - ], - "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": 2 - } - }, - { - "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": "Y3Q=" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/get-range-single-byte", - "profile": "s3-express", - "lane": "core", - "purpose": "get range single byte", - "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 - } - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -134498,11 +134198,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -134510,84 +134210,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": "GET" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/read/object.txt" - } - }, - { - "at": "/body_base64", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-672b31e65569\"" } }, { "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "bytes=0-0" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -134622,7 +134257,7 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-0/30", + "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -134632,7 +134267,7 @@ }, "body": { "encoding": "base64", - "data": "MA==" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -134661,7 +134296,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { @@ -134688,27 +134323,24 @@ "optional": false, "rule": { "is": "equal", - "value": "MA==" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/get-range", + "id": "operations/s3-express/get-if-none-match-other", "profile": "s3-express", "lane": "core", - "purpose": "get range", + "purpose": "get if none match other", "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", - "range": { - "end": 6, - "start": 2 - } + "op": "get" }, "exchanges": [ { @@ -134813,11 +134445,98 @@ } }, { - "at": "/headers/range", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "bytes=2-5" + "value": "\"fixture-db71b2c0257c\"" + } + }, + { + "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-none-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,}" } }, { @@ -134852,7 +134571,7 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 2-5/30", + "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -134862,7 +134581,7 @@ }, "body": { "encoding": "base64", - "data": "MjM0NQ==" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -134891,7 +134610,7 @@ "optional": false, "rule": { "is": "equal", - "value": 4 + "value": 30 } }, { @@ -134918,26 +134637,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MjM0NQ==" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/get-range-open", + "id": "operations/s3-express/get-key-with-hash", "profile": "s3-express", "lane": "core", - "purpose": "get range open", + "purpose": "get key with hash", "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 - } + "key": "object-tests/names/hash#tag.txt", + "op": "get" }, "exchanges": [ { @@ -135030,7 +134746,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/names/hash#tag.txt" } }, { @@ -135041,26 +134757,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, @@ -135086,23 +134782,23 @@ } } ], - "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": "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-84af5210cfd9\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "bG8=" + "data": "MQ==" } } }, @@ -135121,7 +134817,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/names/hash#tag.txt" } }, { @@ -135132,24 +134828,12 @@ "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,}" + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -135177,23 +134861,24 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 3-4/5", - "content-type": "application/octet-stream", + "content-range": "bytes 0-0/1", + "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-84af5210cfd9\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "bG8=" + "data": "MQ==" } } } @@ -135209,27 +134894,62 @@ "value": "ok" } }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "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" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "bG8=" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-replaced", + "id": "operations/s3-express/get-key-with-percent", "profile": "s3-express", "lane": "core", - "purpose": "get replaced", + "purpose": "get key with percent", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/replaced.bin", + "key": "object-tests/names/percent%20.txt", "op": "get" }, "exchanges": [ @@ -135323,7 +135043,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" + "value": "/object-tests/names/percent%20.txt" } }, { @@ -135370,12 +135090,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-eef5a071f9f6\"", + "etag": "\"fixture-a16607f00956\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "Yg==" + "data": "MQ==" } } }, @@ -135394,7 +135114,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" + "value": "/object-tests/names/percent%20.txt" } }, { @@ -135450,12 +135170,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-eef5a071f9f6\"", + "etag": "\"fixture-a16607f00956\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "Yg==" + "data": "MQ==" } } } @@ -135476,7 +135196,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-eef5a071f9f6\"" + "value": "\"fixture-a16607f00956\"" } }, { @@ -135511,22 +135231,22 @@ "optional": false, "rule": { "is": "equal", - "value": "Yg==" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-single-part", + "id": "operations/s3-express/get-key-with-plus", "profile": "s3-express", "lane": "core", - "purpose": "get single part", + "purpose": "get key with plus", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/single.bin", + "key": "object-tests/names/plus+plus.txt", "op": "get" }, "exchanges": [ @@ -135620,7 +135340,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/object-tests/names/plus+plus.txt" } }, { @@ -135667,12 +135387,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-0841fa5d9c5c\"", + "etag": "\"fixture-1b1e630ad692\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "b25seQ==" + "data": "MQ==" } } }, @@ -135691,7 +135411,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/object-tests/names/plus+plus.txt" } }, { @@ -135742,17 +135462,17 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-3/4", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-0841fa5d9c5c\"", + "etag": "\"fixture-1b1e630ad692\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "b25seQ==" + "data": "MQ==" } } } @@ -135773,7 +135493,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" + "value": "\"fixture-1b1e630ad692\"" } }, { @@ -135781,7 +135501,7 @@ "optional": false, "rule": { "is": "equal", - "value": 4 + "value": 1 } }, { @@ -135808,26 +135528,23 @@ "optional": false, "rule": { "is": "equal", - "value": "b25seQ==" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-suffix-longer-than-object", + "id": "operations/s3-express/get-key-with-space", "profile": "s3-express", "lane": "core", - "purpose": "get suffix longer than object", + "purpose": "get key with space", "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/names/space name.txt", + "op": "get" }, "exchanges": [ { @@ -135920,7 +135637,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/names/space name.txt" } }, { @@ -135931,14 +135648,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-100" - } - }, { "at": "/headers/host", "optional": false, @@ -135969,30 +135678,37 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-d614f09fca44\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } }, { "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } + }, { "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/names/space name.txt" } }, { @@ -136004,11 +135720,11 @@ } }, { - "at": "/method", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "HEAD" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -136034,108 +135750,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": [ @@ -136145,17 +135759,17 @@ "response": { "status": 206, "headers": { - "content-length": "30", - "content-range": "bytes 0-29/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-d614f09fca44\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "MQ==" } } } @@ -136176,7 +135790,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-d614f09fca44\"" } }, { @@ -136184,7 +135798,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -136211,26 +135825,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-suffix", + "id": "operations/s3-express/get-key-with-question", "profile": "s3-express", "lane": "core", - "purpose": "get suffix", + "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/read/object.txt", - "op": "get", - "range": { - "suffix": 6 - } + "key": "a?b", + "op": "get" }, "exchanges": [ { @@ -136323,7 +135934,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/a?b" } }, { @@ -136335,11 +135946,15 @@ } }, { - "at": "/headers/range", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "bytes=-6" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -136367,35 +135982,41 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 24-29/30", - "content-type": "binary/octet-stream", + "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": "b2JqZWN0" + "data": "aGVsbG8=" } } }, { "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } + }, { "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/a?b" } }, { @@ -136407,11 +136028,23 @@ } }, { - "at": "/method", + "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": "HEAD" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -136437,128 +136070,25 @@ "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_headers": [], "allow_query": [], "response": { "status": 206, "headers": { - "content-length": "6", - "content-range": "bytes 24-29/30", - "content-type": "binary/octet-stream", + "content-range": "bytes 0-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": "empty" + "encoding": "base64", + "data": "aGVsbG8=" } } } @@ -136574,62 +136104,27 @@ "value": "ok" } }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-672b31e65569\"" - } - }, - { - "at": "/value/size", - "optional": false, - "rule": { - "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" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-whole", + "id": "operations/s3-express/get-key-with-non-ascii", "profile": "s3-express", "lane": "core", - "purpose": "get whole", + "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/read/object.txt", + "key": "café/雪", "op": "get" }, "exchanges": [ @@ -136723,7 +136218,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/café/雪" } }, { @@ -136734,6 +136229,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, @@ -136759,23 +136266,22 @@ } } ], - "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-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": "aGVsbG8=" } } }, @@ -136794,7 +136300,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/café/雪" } }, { @@ -136805,6 +136311,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, @@ -136838,24 +136356,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 0-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": "aGVsbG8=" } } } @@ -136871,63 +136388,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": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-session-expired", + "id": "operations/s3-express/get-key-with-separators", "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": "get key separators", "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/read/object.txt", + "key": "a//b/", "op": "get" }, "exchanges": [ @@ -136998,7 +136479,7 @@ }, "body_time": { "text": "SESSION_EXPIRATION", - "offset_seconds": -60 + "offset_seconds": 300 } } } @@ -137021,11 +136502,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/a//b/" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -137033,76 +136514,15 @@ } }, { - "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-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, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -137118,7 +136538,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token-2" + "value": "fixture-session-token" } }, { @@ -137126,27 +136546,26 @@ "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}" } } ], - "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-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": "aGVsbG8=" } } }, @@ -137165,7 +136584,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/a//b/" } }, { @@ -137176,6 +136595,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, @@ -137197,7 +136628,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token-2" + "value": "fixture-session-token" } }, { @@ -137205,28 +136636,27 @@ "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}" } } ], - "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 0-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": "aGVsbG8=" } } } @@ -137242,62 +136672,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": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-xml-looking", + "id": "operations/s3-express/get-metadata-empty-value", "profile": "s3-express", "lane": "core", - "purpose": "get xml looking", + "purpose": "get metadata empty value", "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", + "key": "object-tests/metadata/empty-value.txt", "op": "get" }, "exchanges": [ @@ -137391,7 +136786,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/metadata/empty-value.txt" } }, { @@ -137402,18 +136797,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, @@ -137439,22 +136822,24 @@ } } ], - "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\"", + "etag": "\"fixture-e6096f6fd1ec\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "fixture-request-id" + "x-amz-meta-empty": "" }, "body": { "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + "data": "MQ==" } } }, @@ -137473,7 +136858,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/metadata/empty-value.txt" } }, { @@ -137484,18 +136869,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, @@ -137529,23 +136902,25 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 0-32/33", - "content-type": "application/octet-stream", + "content-range": "bytes 0-0/1", + "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-e6096f6fd1ec\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "fixture-request-id" + "x-amz-meta-empty": "" }, "body": { "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + "data": "MQ==" } } } @@ -137561,28 +136936,70 @@ "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": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-noise-tolerance", + "id": "operations/s3-express/get-metadata-hyphen-name", "profile": "s3-express", "lane": "core", - "purpose": "get noise tolerance", + "purpose": "get metadata hyphen name", "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", + "key": "object-tests/metadata/hyphen-name.txt", "op": "get" }, "exchanges": [ @@ -137676,7 +137093,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/metadata/hyphen-name.txt" } }, { @@ -137687,18 +137104,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, @@ -137724,23 +137129,24 @@ } } ], - "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": "\"a-different-etag\"", + "etag": "\"fixture-adae183ea4af\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "another-id", - "x-fixture-unknown": "ignored" + "x-amz-meta-not-valid": "1" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "MQ==" } } }, @@ -137759,7 +137165,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/metadata/hyphen-name.txt" } }, { @@ -137770,18 +137176,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, @@ -137815,24 +137209,25 @@ } } ], - "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-0/1", + "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"a-different-etag\"", + "etag": "\"fixture-adae183ea4af\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "another-id", - "x-fixture-unknown": "ignored" + "x-amz-meta-not-valid": "1" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "MQ==" } } } @@ -137848,29 +137243,70 @@ "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": "aGVsbG8=" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-body-cut-short", + "id": "operations/s3-express/get-metadata-punctuation-name", "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": "Report a metadata name that holds any character of an HTTP token.", "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", + "key": "object-tests/metadata/punctuation-name.txt", "op": "get" }, "exchanges": [ @@ -137964,7 +137400,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/punctuation-name.txt" } }, { @@ -138011,14 +137447,14 @@ "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", - "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-1a!#$%&'*+.^_`|~b": "1" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - }, - "truncate_body_after": 15 + "data": "MQ==" + } } }, { @@ -138036,7 +137472,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/punctuation-name.txt" } }, { @@ -138087,23 +137523,102 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-29/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", - "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-1a!#$%&'*+.^_`|~b": "1" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - }, - "truncate_body_after": 15 + "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": "equal", + "value": { + "1a!#$%&'*+.^_`|~b": "1" + } + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/get-metadata-non-ascii-value", + "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.", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "key": "object-tests/metadata/non-ascii.txt", + "op": "get" + }, + "exchanges": [ { "alternatives": [ { @@ -138121,11 +137636,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -138141,43 +137656,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": [ { @@ -138193,7 +137709,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/non-ascii.txt" } }, { @@ -138204,14 +137720,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } - }, { "at": "/headers/host", "optional": false, @@ -138238,24 +137746,23 @@ } ], "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-672b31e65569\"", - "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=C3=A9?=" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } }, @@ -138274,7 +137781,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/non-ascii.txt" } }, { @@ -138288,77 +137795,141 @@ { "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": "bytes=15-" + "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" } }, { - "at": "/headers/if-match", + "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "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": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 15-29/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", - "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=C3=A9?=" }, "body": { "encoding": "base64", - "data": "Y3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } } - ], - "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": [ - "error", - "ok" + null, + "" ] } }, { "at": "/value/body_base64", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "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-slow-down", + "id": "operations/s3-express/get-metadata-outside-latin-1", "profile": "s3-express", "lane": "core", - "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries", + "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": [ - "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", + "key": "object-tests/metadata/outside-latin-1.txt", "op": "get" }, "exchanges": [ @@ -138452,7 +138023,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/outside-latin-1.txt" } }, { @@ -138493,18 +138064,20 @@ ], "allow_query": [], "response": { - "status": 503, + "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-value": "=?UTF-8?B?6Zuq?=" }, "body": { - "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } }, { @@ -138522,7 +138095,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/outside-latin-1.txt" } }, { @@ -138571,22 +138144,109 @@ ], "allow_query": [], "response": { - "status": 503, + "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-value": "=?UTF-8?B?6Zuq?=" }, "body": { - "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "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/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/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": [ { @@ -138604,11 +138264,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -138623,98 +138283,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": "\nSlowDownPlease 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": "/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" + "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" } } ], @@ -138723,22 +138304,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": [ @@ -138757,7 +138337,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/split-encoded-words.txt" } }, { @@ -138798,18 +138378,20 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } }, { @@ -138827,7 +138409,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/split-encoded-words.txt" } }, { @@ -138876,23 +138458,104 @@ ], "allow_query": [], "response": { - "status": 503, + "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?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?=" }, "body": { - "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "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-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/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": [ { @@ -138910,11 +138573,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -138930,19 +138593,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" } } ], @@ -138951,20 +138613,24 @@ ], "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 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -138980,7 +138646,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/malformed-encoded-word.txt" } }, { @@ -138991,14 +138657,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } - }, { "at": "/headers/host", "optional": false, @@ -139029,25 +138687,22 @@ ], "allow_query": [], "response": { - "status": 503, + "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-value": "=?UTF-8?Q?caf=ZZ?=" }, "body": { - "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -139063,7 +138718,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/malformed-encoded-word.txt" } }, { @@ -139074,6 +138729,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" + } + }, { "at": "/headers/host", "optional": false, @@ -139104,20 +138767,106 @@ ], "allow_query": [], "response": { - "status": 503, + "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-value": "=?UTF-8?Q?caf=ZZ?=" }, "body": { - "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "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/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/get-metadata-replaced", + "profile": "s3-express", + "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": [ { "request": [ { @@ -139133,25 +138882,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, @@ -139161,19 +138902,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" } } ], @@ -139182,22 +138922,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": [ @@ -139216,7 +138955,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/replaced.txt" } }, { @@ -139257,18 +138996,19 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 200, "headers": { - "content-type": "application/xml", + "content-type": "binary/octet-stream", "date": { "from": "now" - } + }, + "etag": "\"fixture-8ff37996a1a3\"", + "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": "Mg==" + } } }, { @@ -139286,7 +139026,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/replaced.txt" } }, { @@ -139335,22 +139075,23 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 206, "headers": { - "content-type": "application/xml", + "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": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "Mg==" + } } } - ], - "optional": true + ] } ], "expect": [ @@ -139359,39 +139100,65 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 503 + "value": "\"fixture-8ff37996a1a3\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "SlowDown" + "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/get-if-unmodified-since-past", + "id": "operations/s3-express/get-metadata", "profile": "s3-express", "lane": "core", - "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", + "purpose": "get metadata", "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", + "key": "object-tests/metadata/object.txt", "op": "get" }, "exchanges": [ @@ -139485,7 +139252,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/object.txt" } }, { @@ -139519,14 +139286,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": [ @@ -139534,18 +139293,21 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 200, "headers": { - "content-type": "application/xml", + "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": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } }, { @@ -139563,7 +139325,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/metadata/object.txt" } }, { @@ -139605,14 +139367,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": [ @@ -139620,18 +139374,22 @@ ], "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-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": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } } ] @@ -139643,39 +139401,81 @@ "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", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "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/get-if-modified-since-future", + "id": "operations/s3-express/get-metadata-ignores-unknown-headers", "profile": "s3-express", "lane": "core", - "purpose": "Read an object when If-Modified-Since names a future date", + "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": { - "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT", - "key": "object-tests/read/object.txt", + "key": "object", "op": "get" }, "exchanges": [ @@ -139769,7 +139569,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -139780,6 +139580,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, @@ -139803,33 +139615,26 @@ "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": [ - "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-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-meta-author": "Ada", + "x-amz-request-id": "fixture-request-id", + "x-unrelated": "not metadata" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "aGVsbG8=" } } }, @@ -139848,7 +139653,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -139859,6 +139664,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, @@ -139890,34 +139707,27 @@ "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 0-29/30", - "content-type": "binary/octet-stream", + "content-range": "bytes 0-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-meta-author": "Ada", + "x-amz-request-id": "fixture-request-id", + "x-unrelated": "not metadata" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "aGVsbG8=" } } } @@ -139934,62 +139744,36 @@ } }, { - "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", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "binary/octet-stream" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "aGVsbG8=" } }, { - "at": "/value/body_base64", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": { + "author": "Ada" + } } } ], "refusal": null }, { - "id": "operations/s3-express/get-if-modified-since-past", + "id": "operations/s3-express/get-missing", "profile": "s3-express", "lane": "core", - "purpose": "Read an object modified since a past date", + "purpose": "get missing", "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", + "key": "object-tests/read/absent.txt", "op": "get" }, "exchanges": [ @@ -140083,7 +139867,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/read/absent.txt" } }, { @@ -140117,14 +139901,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": [ @@ -140132,19 +139908,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" } }, { @@ -140162,7 +139937,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/read/absent.txt" } }, { @@ -140204,14 +139979,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": [ @@ -140219,20 +139986,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 404, "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": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" } } ] @@ -140244,64 +140009,38 @@ "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 + "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": 404 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "NoSuchKey" } } ], "refusal": null }, { - "id": "operations/s3-express/get-content-properties", + "id": "operations/s3-express/get-not-modified", "profile": "s3-express", "lane": "core", - "purpose": "Return the stored content properties from a GET", + "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" }, @@ -140365,14 +140104,11 @@ "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" + "content-type": "application/xml" }, "body": { "encoding": "utf8", - "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, "body_time": { "text": "SESSION_EXPIRATION", @@ -140410,6 +140146,14 @@ "value": "" } }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-672b31e65569\"" + } + }, { "at": "/headers/host", "optional": false, @@ -140440,21 +140184,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 304, "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-672b31e65569\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "etag": "\"fixture-672b31e65569\"" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } }, @@ -140484,6 +140223,14 @@ "value": "" } }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-672b31e65569\"" + } + }, { "at": "/headers/range", "optional": false, @@ -140522,22 +140269,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 304, "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", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "etag": "\"fixture-672b31e65569\"" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -140550,90 +140291,32 @@ "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": 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" + "value": 304 } } ], "refusal": null }, { - "id": "operations/s3-express/head-committed", + "id": "operations/s3-express/get-precondition-failed", "profile": "s3-express", "lane": "core", - "purpose": "head committed", + "purpose": "get precondition failed", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", - "op": "head" + "if_match": "\"fixture-db71b2c0257c\"", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -140718,7 +140401,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -140726,7 +140409,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/read/object.txt" } }, { @@ -140737,6 +140420,14 @@ "value": "" } }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" + } + }, { "at": "/headers/host", "optional": false, @@ -140767,20 +140458,104 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 412, "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": "\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" } } ] @@ -140792,58 +140567,43 @@ "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": 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-express/head-metadata", + "id": "operations/s3-express/get-range-inverted", "profile": "s3-express", "lane": "core", - "purpose": "head metadata", + "purpose": "get range inverted", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/object.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "end": 2, + "start": 6 + } }, "exchanges": [ { @@ -140928,7 +140688,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -140936,7 +140696,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/object.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -140947,6 +140707,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=6-1" + } + }, { "at": "/headers/host", "optional": false, @@ -140979,19 +140747,16 @@ "response": { "status": 200, "headers": { - "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" + "etag": "\"fixture-672b31e65569\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -141012,7 +140777,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ee657e36119d\"" + "value": "\"fixture-672b31e65569\"" } }, { @@ -141020,7 +140785,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { @@ -141043,35 +140808,56 @@ } }, { - "at": "/value/metadata/name", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "value" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } + } + ], + "refusal": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "refused" } }, { - "at": "/value/metadata/second", + "at": "/kind", + "optional": false, + "rule": { + "is": "matches", + "pattern": ".+" + } + }, + { + "at": "/parameter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "range" } } ], - "refusal": null + "decline_permitted": true }, { - "id": "operations/s3-express/head-missing", + "id": "operations/s3-express/get-range-not-satisfiable", "profile": "s3-express", "lane": "core", - "purpose": "head missing", + "purpose": "get range not satisfiable", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/read/absent.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "start": 40 + } }, "exchanges": [ { @@ -141156,7 +140942,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -141164,7 +140950,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/absent.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -141175,6 +140961,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=40-" + } + }, { "at": "/headers/host", "optional": false, @@ -141205,7 +140999,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 416, "headers": { "content-type": "application/xml", "date": { @@ -141213,49 +141007,12 @@ } }, "body": { - "encoding": "base64", - "data": "" - } + "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": 404 - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/head", - "profile": "s3-express", - "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": [ + }, { "request": [ { @@ -141271,11 +141028,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -141283,76 +141040,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": "HEAD" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/read/object.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "pattern": "bytes=40-[1-9][0-9]{2,}" } }, { @@ -141385,20 +141077,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 416, "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": "\nInvalidRangeFixture error" + }, + "framing": "chunked" } } ] @@ -141410,58 +141100,43 @@ "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": 30 + "value": 416 } }, { - "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": "InvalidRange" } } ], "refusal": null }, { - "id": "operations/s3-express/head-content-properties", + "id": "operations/s3-express/get-range-past-the-end", "profile": "s3-express", "lane": "core", - "purpose": "Return the stored content properties from a HEAD", + "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": "head" + "op": "get", + "range": { + "end": 64, + "start": 28 + } }, "exchanges": [ { @@ -141523,14 +141198,11 @@ "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" + "content-type": "application/xml" }, "body": { "encoding": "utf8", - "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, "body_time": { "text": "SESSION_EXPIRATION", @@ -141549,7 +141221,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -141568,6 +141240,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=28-63" + } + }, { "at": "/headers/host", "optional": false, @@ -141598,13 +141278,10 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "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-range": "bytes 28-29/30", + "content-type": "binary/octet-stream", "date": { "from": "now" }, @@ -141613,7 +141290,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "Y3Q=" } } } @@ -141642,18 +141319,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": 2 } }, { @@ -141661,48 +141327,46 @@ "optional": false, "rule": { "is": "equal", - "value": "text/plain; charset=utf-8" - } - }, - { - "at": "/value/content_language", - "optional": false, - "rule": { - "is": "equal", - "value": "nl-NL" + "value": "binary/octet-stream" } }, { - "at": "/value/content_disposition", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/value/cache_control", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "Y3Q=" } } ], "refusal": null }, { - "id": "operations/s3-express/head-if-unmodified-since-past", + "id": "operations/s3-express/get-range-single-byte", "profile": "s3-express", "lane": "core", - "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since", + "purpose": "get range single byte", "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" + "op": "get", + "range": { + "end": 1, + "start": 0 + } }, "exchanges": [ { @@ -141787,7 +141451,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -141806,6 +141470,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=0-0" + } + }, { "at": "/headers/host", "optional": false, @@ -141829,14 +141501,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": [ @@ -141844,14 +141508,19 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 206, "headers": { + "content-range": "bytes 0-0/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" + "encoding": "base64", + "data": "MA==" } } } @@ -141864,31 +141533,70 @@ "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": "/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-express/head-key-question", + "id": "operations/s3-express/get-range", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"question?mark.txt\"", + "purpose": "get range", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/question?mark.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "end": 6, + "start": 2 + } }, "exchanges": [ { @@ -141973,7 +141681,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -141981,7 +141689,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -141992,6 +141700,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=2-5" + } + }, { "at": "/headers/host", "optional": false, @@ -142022,9 +141738,9 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-length": "30", + "content-range": "bytes 2-5/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -142034,7 +141750,7 @@ }, "body": { "encoding": "base64", - "data": "" + "data": "MjM0NQ==" } } } @@ -142063,7 +141779,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 4 } }, { @@ -142084,21 +141800,32 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MjM0NQ==" + } } ], "refusal": null }, { - "id": "operations/s3-express/head-key-hash", + "id": "operations/s3-express/get-range-open", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"hash#tag.txt\"", + "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": { - "key": "object-tests/keys/hash#tag.txt", - "op": "head" + "key": "object", + "op": "get", + "range": { + "start": 3 + } }, "exchanges": [ { @@ -142183,7 +141910,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -142191,7 +141918,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object" } }, { @@ -142202,6 +141929,26 @@ "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, @@ -142227,24 +141974,114 @@ } } ], - "allow_headers": [ - "content-type" + "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", + "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": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-length": "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": "" + "data": "bG8=" } } } @@ -142261,54 +142098,27 @@ } }, { - "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", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "binary/octet-stream" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "bG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/head-key-percent", + "id": "operations/s3-express/get-replaced", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"percent%20.txt\"", + "purpose": "get replaced", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/percent%20.txt", - "op": "head" + "key": "object-tests/multipart/replaced.bin", + "op": "get" }, "exchanges": [ { @@ -142393,7 +142203,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -142401,7 +142211,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/multipart/replaced.bin" } }, { @@ -142444,85 +142254,19 @@ "response": { "status": 200, "headers": { - "content-length": "30", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-eef5a071f9f6\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "" + "data": "Yg==" } } - } - ] - } - ], - "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-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": [ { @@ -142538,11 +142282,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/replaced.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -142550,76 +142294,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": "HEAD" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -142652,19 +142331,19 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-length": "30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-eef5a071f9f6\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "" + "data": "Yg==" } } } @@ -142685,7 +142364,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-eef5a071f9f6\"" } }, { @@ -142693,7 +142372,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -142714,21 +142393,29 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "Yg==" + } } ], "refusal": null }, { - "id": "operations/s3-express/head-key-space", + "id": "operations/s3-express/get-single-part", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"space name.txt\"", + "purpose": "get single part", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/space name.txt", - "op": "head" + "key": "object-tests/multipart/single.bin", + "op": "get" }, "exchanges": [ { @@ -142813,7 +142500,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -142821,7 +142508,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/object-tests/multipart/single.bin" } }, { @@ -142864,17 +142551,96 @@ "response": { "status": 200, "headers": { - "content-length": "30", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-0841fa5d9c5c\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "" + "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\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + }, + "body": { + "encoding": "base64", + "data": "b25seQ==" } } } @@ -142895,7 +142661,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-0841fa5d9c5c\"" } }, { @@ -142903,7 +142669,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 4 } }, { @@ -142924,21 +142690,32 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "b25seQ==" + } } ], "refusal": null }, { - "id": "operations/s3-express/head-key-non-ascii", + "id": "operations/s3-express/get-suffix-longer-than-object", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"café/雪.txt\"", + "purpose": "get suffix longer than object", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/café/雪.txt", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "suffix": 100 + } }, "exchanges": [ { @@ -143023,7 +142800,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -143031,7 +142808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -143042,6 +142819,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-100" + } + }, { "at": "/headers/host", "optional": false, @@ -143072,9 +142857,9 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-length": "30", + "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -143084,150 +142869,28 @@ }, "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-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": [ + }, { "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" - } - }, { "at": "/path", "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/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, @@ -143236,22 +142899,6 @@ "value": "HEAD" } }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/keys/double//slash.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" - } - }, { "at": "/headers/host", "optional": false, @@ -143275,6 +142922,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": [ @@ -143282,9 +143031,10 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { "content-length": "30", + "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -143293,8 +143043,7 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -143344,21 +143093,32 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } ], "refusal": null }, { - "id": "operations/s3-express/head-key-trailing-slash", + "id": "operations/s3-express/get-suffix", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"trailing-slash/\"", + "purpose": "get suffix", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/trailing-slash/", - "op": "head" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "suffix": 6 + } }, "exchanges": [ { @@ -143443,7 +143203,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -143451,7 +143211,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/object-tests/read/object.txt" } }, { @@ -143462,6 +143222,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-6" + } + }, { "at": "/headers/host", "optional": false, @@ -143492,9 +143260,9 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-length": "30", + "content-range": "bytes 24-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -143504,7 +143272,181 @@ }, "body": { "encoding": "base64", - "data": "" + "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" } } } @@ -143533,7 +143475,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 6 } }, { @@ -143554,22 +143496,29 @@ "" ] } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "b2JqZWN0" + } } ], "refusal": null }, { - "id": "operations/s3-express/list-bad-marker", + "id": "operations/s3-express/get-whole", "profile": "s3-express", "lane": "core", - "purpose": "Report S3's 400 InvalidArgument for a continuation token it did not issue", + "purpose": "get whole", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "continuation_token": "fixture-marker+/ce6f21ae951d=", - "op": "list_page", - "prefix": "object-tests/board/" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -143662,7 +143611,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -143673,30 +143622,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/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/ce6f21ae951d=" - } - }, { "at": "/headers/host", "optional": false, @@ -143727,18 +143652,19 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\nInvalidArgumentFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } }, { @@ -143756,7 +143682,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -143768,27 +143694,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/range", "optional": false, "rule": { - "is": "equal", - "value": "fixture-marker+/ce6f21ae951d=" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -143814,14 +143724,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": [ @@ -143829,18 +143731,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-672b31e65569\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-token01516607970001a08269f32e0c1ad876480f0641WZg5FiuD0" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } } ] @@ -143852,40 +143756,67 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidArgument" + "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/list-delimited", + "id": "operations/s3-express/get-session-expired", "profile": "s3-express", "lane": "core", - "purpose": "Send the delimiter, and report the keys it groups as common prefixes, not as entries", + "purpose": "Renew a session whose Expiration has passed before using it: ask CreateSession again, and sign the GET with the second session", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], + "origin": "constructed", "call": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/board/" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -143955,7 +143886,7 @@ }, "body_time": { "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "offset_seconds": -60 } } } @@ -143982,7 +143913,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -143990,27 +143921,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-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": "object-tests/board/" + "value": "GET" } }, { - "at": "/query/delimiter", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -144026,7 +144006,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "fixture-session-token-2" } }, { @@ -144034,7 +144014,7 @@ "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}" } } ], @@ -144045,15 +144025,16 @@ "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": "\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/" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -144072,7 +144053,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -144084,27 +144065,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/delimiter", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "/" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -144120,7 +144085,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "fixture-session-token-2" } }, { @@ -144128,15 +144093,7 @@ "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" + "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key-2/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}" } } ], @@ -144145,17 +144102,19 @@ ], "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-672b31e65569\"", "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-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT/object-tests/board/nested/" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -144172,99 +144131,31 @@ } }, { - "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", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/1/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 30 } }, { - "at": "/value/entries/1/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ca40e4206a8d\"" - } - }, - { - "at": "/value/entries/1/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "binary/octet-stream" } }, { - "at": "/value/entries/1/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -144275,62 +144166,27 @@ } }, { - "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", + "at": "/value/body_base64", "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 + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/list-empty", + "id": "operations/s3-express/get-xml-looking", "profile": "s3-express", "lane": "core", - "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token", + "purpose": "get xml looking", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" ], "call": { - "op": "list_page", - "prefix": "object-tests/nothing/" + "key": "object", + "op": "get" }, "exchanges": [ { @@ -144423,7 +144279,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object" } }, { @@ -144435,19 +144291,15 @@ } }, { - "at": "/query/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "object-tests/nothing/" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -144475,22 +144327,22 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "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/nothing/01000false" + "encoding": "base64", + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } }, @@ -144509,7 +144361,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object" } }, { @@ -144521,19 +144373,23 @@ } }, { - "at": "/query/list-type", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "2" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { - "at": "/query/prefix", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/nothing/" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -144559,32 +144415,25 @@ "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_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" }, - "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/01000urlfalse" + "encoding": "base64", + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } } @@ -144601,43 +144450,28 @@ } }, { - "at": "/value/continuation_token", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/value/entries", - "optional": false, - "rule": { - "is": "array_length", - "value": 0 - } - }, - { - "at": "/value/prefixes", - "optional": false, - "rule": { - "is": "array_length", - "value": 0 + "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } ], "refusal": null }, { - "id": "operations/s3-express/list-all-empty", + "id": "operations/s3-express/get-noise-tolerance", "profile": "s3-express", "lane": "core", - "purpose": "Report an empty bucket as an empty listing", + "purpose": "get noise tolerance", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" ], + "origin": "constructed", "call": { - "op": "list", - "prefix": "" + "key": "object", + "op": "get" }, "exchanges": [ { @@ -144730,7 +144564,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object" } }, { @@ -144741,22 +144575,6 @@ "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, @@ -144799,17 +144617,18 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"a-different-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "fixture-request-id" + "x-amz-request-id": "another-id", + "x-fixture-unknown": "ignored" }, "body": { "encoding": "base64", - "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg==" + "data": "aGVsbG8=" } } }, @@ -144828,7 +144647,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object" } }, { @@ -144840,24 +144659,8 @@ } }, { - "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, + "at": "/headers/content-type", + "optional": true, "rule": { "is": "one_of", "values": [ @@ -144868,11 +144671,11 @@ } }, { - "at": "/query/encoding-type", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "url" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -144903,19 +144706,21 @@ "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\"", + "etag": "\"a-different-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "fixture-request-id" + "x-amz-request-id": "another-id", + "x-fixture-unknown": "ignored" }, "body": { "encoding": "base64", - "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+" + "data": "aGVsbG8=" } } } @@ -144932,27 +144737,29 @@ } }, { - "at": "/value/keys", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": [] + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/list-xml-escaped", + "id": "operations/s3-express/get-body-cut-short", "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", + "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html" + "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": { - "op": "list", - "prefix": "" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -145045,7 +144852,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -145056,34 +144863,6 @@ "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, @@ -145109,23 +144888,25 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 200, "headers": { - "content-type": "application/xml", + "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": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxFVGFnPiZxdW90O2ZpeHR1cmUmcXVvdDs8L0VUYWc+PEtleT5hJmFtcDtiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyZsdDtkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4=" - } + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + }, + "truncate_body_after": 15 } }, { @@ -145143,7 +144924,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -145155,39 +144936,11 @@ } }, { - "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", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "url" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -145215,64 +144968,30 @@ } } ], - "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-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": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48S2V5PmElMjZiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyUzQ2Q8L0tleT48TGFzdE1vZGlmaWVkPjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWjwvTGFzdE1vZGlmaWVkPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg==" - } + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + }, + "truncate_body_after": 15 } } ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } }, - { - "at": "/value/keys", - "optional": false, - "rule": { - "is": "equal", - "value": [ - "a&b", - "c\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" - }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -145363,7 +145081,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -145375,19 +145093,11 @@ } }, { - "at": "/query/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/names/" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -145416,21 +145126,24 @@ } ], "allow_headers": [ + "content-type", "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-672b31e65569\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -145449,7 +145162,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -145461,694 +145174,80 @@ } }, { - "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, - "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=15-" } }, { - "at": "/query/encoding-type", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "\"fixture-672b31e65569\"" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-type": "application/xml", + "content-range": "bytes 15-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": "\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" + "encoding": "base64", + "data": "Y3QtdGVzdHMtb2JqZWN0" } } } - ] + ], + "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/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, - "" + "error", + "ok" ] } }, { - "at": "/value/entries/9/is_current_version", + "at": "/value/body_base64", "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 + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/list-first-page", + "id": "operations/s3-express/get-slow-down", "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 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": { - "op": "list_page", - "page_size": 2, - "prefix": "object-tests/board/" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -146241,7 +145340,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -146252,30 +145351,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, @@ -146306,18 +145381,18 @@ ], "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": "\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": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -146335,7 +145410,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -146347,27 +145422,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -146393,14 +145452,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": [ @@ -146408,257 +145459,18 @@ ], "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": "\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" - } - } - } - ] - } - ], - "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/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/continuation_token", - "optional": false, - "rule": { - "is": "equal", - "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/list-service-unavailable", - "profile": "s3-express", - "lane": "core", - "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries", - "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" - ], - "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": "/" - } - }, - { - "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 - } + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } ] @@ -146680,7 +145492,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -146691,30 +145503,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, @@ -146754,7 +145542,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -146774,7 +145562,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -146786,27 +145574,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -146832,14 +145604,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": [ @@ -146856,12 +145620,13 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -146880,7 +145645,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -146891,30 +145656,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, @@ -146954,7 +145695,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -146974,7 +145715,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -146986,27 +145727,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -147032,14 +145757,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": [ @@ -147056,7 +145773,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -147081,7 +145798,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -147092,30 +145809,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, @@ -147155,7 +145848,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -147175,7 +145868,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -147187,27 +145880,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -147233,14 +145910,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": [ @@ -147257,7 +145926,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -147282,7 +145951,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -147293,30 +145962,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, @@ -147356,7 +146001,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -147376,7 +146021,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -147388,27 +146033,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -147434,14 +146063,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": [ @@ -147458,7 +146079,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -147483,7 +146104,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -147494,30 +146115,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, @@ -147557,7 +146154,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "framing": "chunked" } @@ -147577,7 +146174,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -147589,27 +146186,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -147635,14 +146216,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": [ @@ -147659,14 +146232,57 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nSlowDownPlease reduce your request rate.fixture" }, "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-express/get-if-unmodified-since-past", + "profile": "s3-express", + "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": [ { @@ -147688,7 +146304,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -147696,27 +146312,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": "GET" } }, { - "at": "/query/max-keys", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/object-tests/read/object.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -147742,6 +146407,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": [ @@ -147749,7 +146422,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -147758,7 +146431,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } @@ -147778,7 +146451,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -147790,27 +146463,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -147838,11 +146495,11 @@ } }, { - "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" } } ], @@ -147851,7 +146508,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -147860,13 +146517,12 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -147883,7 +146539,7 @@ "optional": false, "rule": { "is": "equal", - "value": 503 + "value": 412 } }, { @@ -147891,24 +146547,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ServiceUnavailable" + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3-express/list-max-keys-zero", + "id": "operations/s3-express/get-if-modified-since-future", "profile": "s3-express", "lane": "core", - "purpose": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated", + "purpose": "Read an object when If-Modified-Since names a future date", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "op": "list_page", - "page_size": 0, - "prefix": "object-tests/board/" + "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -148001,7 +146657,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -148012,30 +146668,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": "0" - } - }, { "at": "/headers/host", "optional": false, @@ -148059,6 +146691,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": [ @@ -148068,15 +146708,16 @@ "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": "\nfixtureobject-tests/board/00false" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -148095,7 +146736,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -148107,27 +146748,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": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "0" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -148155,11 +146780,11 @@ } }, { - "at": "/query/encoding-type", + "at": "/headers/if-modified-since", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "Fri, 01 Jan 2100 00:00:00 GMT" } } ], @@ -148168,17 +146793,19 @@ ], "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-672b31e65569\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "\nfixtureobject-tests/board/00urlfalse" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -148195,45 +146822,63 @@ } }, { - "at": "/value/continuation_token", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries", + "at": "/value/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 30 } }, { - "at": "/value/prefixes", + "at": "/value/content_type", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "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/list-next-page", + "id": "operations/s3-express/get-if-modified-since-past", "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": "Read an object modified since a past date", "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/" + "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -148326,7 +146971,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -148337,38 +146982,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": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/88ab99096baf=" - } - }, { "at": "/headers/host", "optional": false, @@ -148392,6 +147005,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": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [ @@ -148401,15 +147022,16 @@ "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": "\nfixtureobject-tests/board/fixture-marker+/88ab99096baf=12falseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -148428,7 +147050,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -148440,35 +147062,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/continuation-token", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "fixture-marker+/88ab99096baf=" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -148496,11 +147094,11 @@ } }, { - "at": "/query/encoding-type", + "at": "/headers/if-modified-since", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "Sat, 01 Jan 2000 00:00:00 GMT" } } ], @@ -148509,17 +147107,19 @@ ], "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-672b31e65569\"", "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" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -148536,42 +147136,31 @@ } }, { - "at": "/value/entries/0/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/0/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 30 } }, { - "at": "/value/entries/0/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ca40e4206a8d\"" - } - }, - { - "at": "/value/entries/0/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "binary/octet-stream" } }, { - "at": "/value/entries/0/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -148582,55 +147171,27 @@ } }, { - "at": "/value/entries/0/is_current_version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - false - ] - } - }, - { - "at": "/value/continuation_token", + "at": "/value/body_base64", "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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/list-order-delimited", + "id": "operations/s3-express/get-content-properties", "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": "Return the stored content properties from a GET", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/order/" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -148692,11 +147253,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", @@ -148723,7 +147287,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -148734,30 +147298,6 @@ "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, @@ -148790,15 +147330,19 @@ "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-672b31e65569\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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/" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -148817,7 +147361,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -148829,31 +147373,15 @@ } }, { - "at": "/query/list-type", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{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", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", @@ -148875,14 +147403,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": [ @@ -148890,17 +147410,22 @@ ], "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-672b31e65569\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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/" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -148917,42 +147442,23 @@ } }, { - "at": "/value/entries/0/key", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/order/a" - } - }, - { - "at": "/value/entries/0/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/0/etag", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-67e7081fe36a\"" - } - }, - { - "at": "/value/entries/0/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": 30 } }, { - "at": "/value/entries/0/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -148963,224 +147469,246 @@ } }, { - "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", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } }, { - "at": "/value/entries/1/etag", + "at": "/value/content_type", "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 - ] + "value": "text/plain; charset=utf-8" } }, { - "at": "/value/entries/2/key", + "at": "/value/content_language", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a0" + "value": "nl-NL" } }, { - "at": "/value/entries/2/size", + "at": "/value/content_disposition", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "attachment; filename=\"report.txt\"" } }, { - "at": "/value/entries/2/etag", + "at": "/value/cache_control", "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 - ] + "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": [ { - "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": "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/3/size", - "optional": false, - "rule": { - "is": "equal", - "value": 1 - } - }, + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/multipart/object.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-length": "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": "" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/3/etag", + "at": "/outcome", "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 - ] + "value": "ok" } }, { - "at": "/value/entries/4/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { - "at": "/value/entries/4/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 5242886 } }, { - "at": "/value/entries/4/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-a19aa03709bc\"" - } - }, - { - "at": "/value/entries/4/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "binary/octet-stream" } }, { - "at": "/value/entries/4/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -149189,85 +147717,194 @@ "" ] } - }, - { - "at": "/value/entries/4/is_current_version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - false - ] - } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/head-metadata", + "profile": "s3-express", + "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": [ { - "at": "/value/entries/5/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": "/" + } + }, + { + "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/5/size", - "optional": false, - "rule": { - "is": "equal", - "value": 1 - } - }, + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/metadata/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": 200, + "headers": { + "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": "base64", + "data": "" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/5/etag", + "at": "/outcome", "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 - ] + "value": "ok" } }, { - "at": "/value/entries/6/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "value": "\"fixture-ee657e36119d\"" } }, { - "at": "/value/entries/6/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", @@ -149275,26 +147912,15 @@ } }, { - "at": "/value/entries/6/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-58bd4a8a6eb3\"" - } - }, - { - "at": "/value/entries/6/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "binary/octet-stream" } }, { - "at": "/value/entries/6/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -149305,62 +147931,35 @@ } }, { - "at": "/value/entries/6/is_current_version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - false - ] - } - }, - { - "at": "/value/prefixes/0", + "at": "/value/metadata/name", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a/" + "value": "value" } }, { - "at": "/value/continuation_token", + "at": "/value/metadata/second", "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": "2" } } ], "refusal": null }, { - "id": "operations/s3-express/list-order", + "id": "operations/s3-express/head-missing", "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": "head missing", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "op": "list_page", - "prefix": "object-tests/order/" + "key": "object-tests/read/absent.txt", + "op": "head" }, "exchanges": [ { @@ -149445,7 +148044,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -149453,7 +148052,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/absent.txt" } }, { @@ -149464,22 +148063,6 @@ "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, @@ -149510,20 +148093,57 @@ ], "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/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" + "encoding": "base64", + "data": "" } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "error" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 404 + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/head", + "profile": "s3-express", + "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": [ { "request": [ { @@ -149543,7 +148163,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -149551,19 +148171,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/order/" + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/read/object.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -149589,14 +148266,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": [ @@ -149606,15 +148275,17 @@ "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": "\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" + "encoding": "base64", + "data": "" } } } @@ -149631,42 +148302,31 @@ } }, { - "at": "/value/entries/0/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/0/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { - "at": "/value/entries/0/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-67e7081fe36a\"" - } - }, - { - "at": "/value/entries/0/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "binary/octet-stream" } }, { - "at": "/value/entries/0/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -149675,340 +148335,206 @@ "" ] } - }, - { - "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\"" - } - }, + } + ], + "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": [ { - "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": "/" + } + }, + { + "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": { + "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 + } + } + } + ] }, { - "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-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 - ] - } - }, + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "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": 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", + "date": { + "from": "now" + }, + "etag": "\"fixture-672b31e65569\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + }, + "body": { + "encoding": "base64", + "data": "" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/6/key", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a-b" + "value": "ok" } }, { - "at": "/value/entries/6/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/6/etag", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-62a88dc05318\"" - } - }, - { - "at": "/value/entries/6/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": 30 } }, { - "at": "/value/entries/6/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -150019,112 +148545,52 @@ } }, { - "at": "/value/entries/6/is_current_version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - false - ] - } - }, - { - "at": "/value/entries/7/key", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "value": "text/plain; charset=utf-8" } }, { - "at": "/value/entries/7/size", + "at": "/value/content_language", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "nl-NL" } }, { - "at": "/value/entries/7/etag", + "at": "/value/content_disposition", "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 - ] + "value": "attachment; filename=\"report.txt\"" } }, { - "at": "/value/continuation_token", + "at": "/value/cache_control", "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 + "value": "max-age=3600" } } ], "refusal": null }, { - "id": "operations/s3-express/list-other-delimiter", + "id": "operations/s3-express/head-if-unmodified-since-past", "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": "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": { - "delimiter": "-", - "op": "list_page", - "prefix": "object-tests/board/" + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "head" }, "exchanges": [ { @@ -150209,7 +148675,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -150217,7 +148683,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { @@ -150228,30 +148694,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/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "-" - } - }, { "at": "/headers/host", "optional": false, @@ -150275,6 +148717,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": [ @@ -150282,20 +148732,55 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 412, "headers": { - "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "utf8", - "data": "\nInvalidRequestFixture error" - }, - "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-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": [ { @@ -150315,7 +148800,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -150323,27 +148808,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": "HEAD" } }, { - "at": "/query/delimiter", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "-" + "value": "/object-tests/keys/question?mark.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -150369,14 +148903,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": [ @@ -150384,18 +148910,20 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\nInvalidRequestThis bucket only supports '/' as a delimiter01a36c7dc10001a08269f29d0c1a80c2547f97e2NIAczpdqY" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -150407,80 +148935,58 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "InvalidRequest" - } - } - ], - "refusal": [ - { - "at": "/outcome", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "refused" - } - }, - { - "at": "/kind", - "optional": false, - "rule": { - "is": "matches", - "pattern": ".+" + "value": 30 } }, { - "at": "/parameter", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "delimiter" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 + "value": "binary/octet-stream" } }, { - "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/head-key-hash", "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": "head, with the key \"hash#tag.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "op": "list_page", - "prefix": "object-tests/board/" + "key": "object-tests/keys/hash#tag.txt", + "op": "head" }, "exchanges": [ { @@ -150565,93 +149071,7 @@ "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": "/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/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" - } - } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -150659,7 +149079,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/hash#tag.txt" } }, { @@ -150670,22 +149090,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": "/headers/host", "optional": false, @@ -150709,14 +149113,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": [ @@ -150726,15 +149122,17 @@ "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": "\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": "" } } } @@ -150751,156 +149149,31 @@ } }, { - "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", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/2/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 30 } }, { - "at": "/value/entries/2/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ca40e4206a8d\"" - } - }, - { - "at": "/value/entries/2/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "binary/octet-stream" } }, { - "at": "/value/entries/2/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -150909,56 +149182,21 @@ "" ] } - }, - { - "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/head-key-percent", "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": "head, with the key \"percent%20.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "op": "list_page", - "prefix": "object-tests/boa" + "key": "object-tests/keys/percent%20.txt", + "op": "head" }, "exchanges": [ { @@ -151043,7 +149281,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -151051,7 +149289,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/percent%20.txt" } }, { @@ -151062,22 +149300,6 @@ "value": "" } }, - { - "at": "/query/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/boa" - } - }, { "at": "/headers/host", "optional": false, @@ -151108,40 +149330,107 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\nInvalidRequestFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + } + ] + } + ], + "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-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": "/body_base64", + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/" + } + }, + { + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -151149,19 +149438,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": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/keys/plus+plus.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -151187,14 +149533,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": [ @@ -151202,18 +149540,20 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\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" + "encoding": "base64", + "data": "" + } } } ] @@ -151225,81 +149565,58 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "InvalidRequest" - } - } - ], - "refusal": [ - { - "at": "/outcome", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "refused" - } - }, - { - "at": "/kind", - "optional": false, - "rule": { - "is": "matches", - "pattern": ".+" + "value": 30 } }, { - "at": "/parameter", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "prefix" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 + "value": "binary/octet-stream" } }, { - "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/head-key-space", "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": "head, with the key \"space name.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/separators/" + "key": "object-tests/keys/space name.txt", + "op": "head" }, "exchanges": [ { @@ -151384,7 +149701,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -151392,7 +149709,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/space name.txt" } }, { @@ -151403,30 +149720,6 @@ "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": "/" - } - }, { "at": "/headers/host", "optional": false, @@ -151459,18 +149752,85 @@ "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": "\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": "" } } - }, + } + ] + } + ], + "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": [ { @@ -151490,7 +149850,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -151498,27 +149858,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": "HEAD" } }, { - "at": "/query/delimiter", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/café/雪.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -151544,14 +149953,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": [ @@ -151561,15 +149962,17 @@ "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": "\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": "" } } } @@ -151586,31 +149989,31 @@ } }, { - "at": "/value/entries/0/key", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/..leading" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/0/size", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { - "at": "/value/entries/0/etag", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-42aa4973e21e\"" + "value": "binary/octet-stream" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -151619,66 +150022,208 @@ "" ] } - }, + } + ], + "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": [ { - "at": "/value/entries/0/version", - "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": "/" + } + }, + { + "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/is_current_version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - false - ] - } - }, + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/keys/double//slash.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/1/key", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/dot." + "value": "ok" } }, { - "at": "/value/entries/1/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/entries/1/etag", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9282c60ce573\"" + "value": 30 } }, { - "at": "/value/entries/1/snapshot", - "optional": true, + "at": "/value/content_type", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "binary/octet-stream" } }, { - "at": "/value/entries/1/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -151687,88 +150232,232 @@ "" ] } - }, + } + ], + "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": [ { - "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": "/" + } + }, + { + "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/prefixes/0", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/separators/space /" - } - }, + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/keys/trailing-slash/" + } + }, + { + "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/prefixes/1", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/a.b/" + "value": "ok" } }, { - "at": "/value/prefixes/2", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/trailing/" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/prefixes/3", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/double/" + "value": 30 } }, { - "at": "/value/continuation_token", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/value/entries", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 + "value": "binary/octet-stream" } }, { - "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/list-bad-marker", "profile": "s3-express", "lane": "core", - "purpose": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored", + "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": { + "continuation_token": "fixture-marker+/ce6f21ae951d=", "op": "list_page", - "prefix": "object-tests/separators/" + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -151885,7 +150574,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/ce6f21ae951d=" } }, { @@ -151918,18 +150615,18 @@ ], "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/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" - } + "data": "\nInvalidArgumentFixture error" + }, + "framing": "chunked" } }, { @@ -151971,7 +150668,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/ce6f21ae951d=" } }, { @@ -152012,18 +150717,18 @@ ], "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/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" - } + "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-token01516607970001a08269f32e0c1ad876480f0641WZg5FiuD0" + }, + "framing": "chunked" } } ] @@ -152035,206 +150740,351 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/entries/0/key", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/separators/..leading" + "value": "error" } }, { - "at": "/value/entries/0/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 400 } }, { - "at": "/value/entries/0/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-42aa4973e21e\"" + "value": "InvalidArgument" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-delimited", + "profile": "s3-express", + "lane": "core", + "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": { + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/board/" + }, + "exchanges": [ { - "at": "/value/entries/0/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": "/" + } + }, + { + "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, - "" - ] - } - }, - { - "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 - } - }, + "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/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": 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/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/" + } + } + }, + { + "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/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}" + } + }, + { + "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/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": "/value/entries/2/etag", + "at": "/outcome", "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 - ] + "value": "ok" } }, { - "at": "/value/entries/3/key", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/a.b/c" + "value": "object-tests/board/z.txt" } }, { - "at": "/value/entries/3/size", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { - "at": "/value/entries/3/etag", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3103883be81f\"" + "value": "\"fixture-7d1b875717fa\"" } }, { - "at": "/value/entries/3/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -152245,7 +151095,7 @@ } }, { - "at": "/value/entries/3/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -152256,7 +151106,7 @@ } }, { - "at": "/value/entries/3/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -152267,31 +151117,31 @@ } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/1/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/trailing/" + "value": "object-tests/board/a.txt" } }, { - "at": "/value/entries/4/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 8 } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9122241c6748\"" + "value": "\"fixture-ca40e4206a8d\"" } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -152302,7 +151152,7 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -152313,7 +151163,7 @@ } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -152324,60 +151174,11 @@ } }, { - "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/prefixes/0", "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 - ] + "value": "object-tests/board/nested/" } }, { @@ -152393,7 +151194,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 6 + "value": 2 } }, { @@ -152401,24 +151202,23 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 1 } } ], "refusal": null }, { - "id": "operations/s3-express/list-all-pages", + "id": "operations/s3-express/list-empty", "profile": "s3-express", "lane": "core", - "purpose": "Follow each page's continuation token until a page is not truncated", + "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_size": 1, - "prefix": "object-tests/board/" + "op": "list_page", + "prefix": "object-tests/nothing/" }, "exchanges": [ { @@ -152535,15 +151335,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/nothing/" } }, { @@ -152586,7 +151378,7 @@ }, "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" + "data": "\nfixtureobject-tests/nothing/01000false" } } }, @@ -152629,23 +151421,7 @@ "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" + "value": "object-tests/nothing/" } }, { @@ -152671,6 +151447,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": [ @@ -152688,12 +151472,62 @@ }, "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" + "data": "\nfixtureobject-tests/nothing/01000urlfalse" } } } ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/continuation_token", + "optional": false, + "rule": { + "is": "equal", + "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/list-all-empty", + "profile": "s3-express", + "lane": "core", + "purpose": "Report an empty bucket as an empty listing", + "sources": [ + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html" + ], + "call": { + "op": "list", + "prefix": "" + }, + "exchanges": [ { "alternatives": [ { @@ -152715,7 +151549,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -152723,35 +151557,104 @@ } }, { - "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": "GET" } }, { - "at": "/query/max-keys", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "/" } }, { - "at": "/query/continuation-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5001=" + "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" + ] } }, { @@ -152779,9 +151682,7 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -152790,11 +151691,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": "\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" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg==" } } }, @@ -152834,26 +151737,22 @@ }, { "at": "/query/prefix", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/continuation-token", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "fixture-marker+/a11ba9e5001=" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -152889,9 +151788,7 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -152900,16 +151797,52 @@ "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/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" + "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": [ { @@ -152931,45 +151864,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": "1" - } - }, - { - "at": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" - } - }, { "at": "/headers/host", "optional": false, @@ -152979,19 +151880,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" } } ], @@ -153002,18 +151902,22 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "content-type": "application/xml" }, "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" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + }, + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -153050,34 +151954,22 @@ }, { "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, + "optional": true, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" + "value": "" } }, { - "at": "/query/encoding-type", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "url" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -153105,9 +151997,7 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, @@ -153116,56 +152006,16 @@ "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/fixture-marker+/a11ba9e5002=11urlfalseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxFVGFnPiZxdW90O2ZpeHR1cmUmcXVvdDs8L0VUYWc+PEtleT5hJmFtcDtiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyZsdDtkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4=" } } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "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": [ + }, { "request": [ { @@ -153185,13 +152035,49 @@ } }, { - "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": 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" + } + }, { "at": "/headers/host", "optional": false, @@ -153201,38 +152087,39 @@ } }, { - "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" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "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": "\nNoSuchBucketFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48S2V5PmElMjZiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyUzQ2Q8L0tleT48TGFzdE1vZGlmaWVkPjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWjwvTGFzdE1vZGlmaWVkPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg==" + } } } ] @@ -153244,39 +152131,34 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 404 + "value": "ok" } }, { - "at": "/code", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "NoSuchBucket" + "value": [ + "a&b", + "c\nfixtureobject-tests/properties/11000falseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" + "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" } } }, @@ -153467,43 +152349,43 @@ } }, { - "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/names/" } }, { - "at": "/headers/authorization", + "at": "/headers/host", "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": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" } }, { - "at": "/query/list-type", + "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "fixture-session-token" } }, { - "at": "/query/prefix", + "at": "/headers/authorization", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/properties/" + "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}" } }, { @@ -153530,7 +152412,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/properties/11000urlfalseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" + "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" } } } @@ -153551,7 +152433,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/a.txt" + "value": "object-tests/names/back\\slash.txt" } }, { @@ -153559,7 +152441,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -153567,23 +152449,7 @@ "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" + "value": "\"fixture-36534817118e\"" } }, { @@ -153620,44 +152486,557 @@ } }, { - "at": "/value/entries", + "at": "/value/entries/1/key", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "object-tests/names/q?mark.txt" } }, { - "at": "/value/prefixes", + "at": "/value/entries/1/size", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 1 } }, { - "at": "/value/continuation_token", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-10822d0eb6a7\"" } - } - ], - "refusal": null + }, + { + "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-checksum-algorithm", + "id": "operations/s3-express/list-first-page", "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": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token", "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/" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -153774,7 +153153,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -153817,7 +153204,7 @@ }, "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": "\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" } } }, @@ -153860,15 +153247,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/" + "value": "object-tests/board/" } }, { - "at": "/query/encoding-type", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "2" } }, { @@ -153894,6 +153281,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": [ @@ -153911,7 +153306,7 @@ }, "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" + "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" } } } @@ -153932,7 +153327,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/crc32.txt" + "value": "object-tests/board/z.txt" } }, { @@ -153940,7 +153335,7 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 2 } }, { @@ -153948,15 +153343,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-636b736c0000\"" - } - }, - { - "at": "/value/entries/0/checksum_algorithm", - "optional": false, - "rule": { - "is": "equal", - "value": "CRC32" + "value": "\"fixture-7d1b875717fa\"" } }, { @@ -153997,7 +153384,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/none.txt" + "value": "object-tests/board/nested/c.txt" } }, { @@ -154005,7 +153392,7 @@ "optional": false, "rule": { "is": "equal", - "value": 4 + "value": 1 } }, { @@ -154013,15 +153400,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-636b736c0001\"" - } - }, - { - "at": "/value/entries/1/checksum_algorithm", - "optional": false, - "rule": { - "is": "equal", - "value": "CRC64NVME" + "value": "\"fixture-d9b959b4d7a6\"" } }, { @@ -154058,44 +153437,45 @@ } }, { - "at": "/value/entries", + "at": "/value/continuation_token", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "is": "equal", + "value": "fixture-marker+/88ab99096baf=" } }, { - "at": "/value/prefixes", + "at": "/value/entries", "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 2 } }, { - "at": "/value/continuation_token", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/s3-express/list-fetch-owner", + "id": "operations/s3-express/list-service-unavailable", "profile": "s3-express", "lane": "core", - "purpose": "Ask for owners with fetch-owner=true, and report each listed object's owner ID", + "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": { - "fetch_owner": true, "op": "list_page", - "prefix": "object-tests/owner/" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -154200,51 +153580,51 @@ } }, { - "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/board/" } }, { - "at": "/headers/authorization", + "at": "/query/max-keys", "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": "2" } }, { - "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/owner/" + "value": "fixture-session-token" } }, { - "at": "/query/fetch-owner", + "at": "/headers/authorization", "optional": false, "rule": { - "is": "equal", - "value": "true" + "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}" } } ], @@ -154253,18 +153633,18 @@ ], "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": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE" - } + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -154293,6 +153673,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, @@ -154317,6 +153721,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": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + } + ], + "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" + } + } + ] + }, + { + "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, @@ -154330,23 +153792,39 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/owner/" + "value": "object-tests/board/" } }, { - "at": "/query/fetch-owner", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "true" + "value": "2" } }, { - "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/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}" } } ], @@ -154355,139 +153833,20 @@ ], "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": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE" - } + "data": "\nServiceUnavailablePlease reduce your request rate.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/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": [ { @@ -154507,13 +153866,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, @@ -154522,19 +153905,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" } } ], @@ -154543,21 +153935,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": "\nServiceUnavailablePlease reduce your request rate.fixture" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -154600,7 +153993,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -154633,18 +154034,18 @@ ], "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": "\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" - } + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -154686,15 +154087,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" + "value": "object-tests/board/" } }, { - "at": "/query/encoding-type", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "2" } }, { @@ -154720,6 +154121,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": [ @@ -154727,21 +154136,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": "\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": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -154784,15 +154194,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" + "value": "object-tests/board/" } }, { - "at": "/query/continuation-token", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/3a4e1000=" + "value": "2" } }, { @@ -154825,18 +154235,18 @@ ], "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": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" - } + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -154878,23 +154288,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" - } - }, - { - "at": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/3a4e1000=" + "value": "object-tests/board/" } }, { - "at": "/query/encoding-type", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "2" } }, { @@ -154920,9 +154322,634 @@ "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": [ + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + } + ], + "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" + } + } + ], + "optional": true + }, + { + "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": "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": 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" + } + }, + { + "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": 503, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nServiceUnavailablePlease 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": "/" + } + }, + { + "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" + } + }, + { + "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" + } + }, + { + "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": 503, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "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": "ServiceUnavailable" + } + } + ], + "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": [], @@ -154937,7 +154964,109 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" + "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" } } } @@ -154954,300 +155083,7059 @@ } }, { - "at": "/value/keys", + "at": "/value/continuation_token", "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", + "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/list-next-page", + "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", + "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/" + }, + "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": "2" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/88ab99096baf=" + } + }, + { + "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/fixture-marker+/88ab99096baf=12falseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" + } + } + }, + { + "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": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/88ab99096baf=" + } + }, + { + "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/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" + } + }, + { + "at": "/value/entries/0/size", + "optional": false, + "rule": { + "is": "equal", + "value": 8 + } + }, + { + "at": "/value/entries/0/etag", + "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 + ] + } + }, + { + "at": "/value/continuation_token", + "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 + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-order-delimited", + "profile": "s3-express", + "lane": "core", + "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": { + "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": "/" + } + }, + { + "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/order/" + } + }, + { + "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": 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/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/" + } + } + }, + { + "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/order/" + } + }, + { + "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}" + } + }, + { + "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/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/" + } + } + } + ] + } + ], + "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-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 + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-order", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "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": "/" + } + }, + { + "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/order/" + } + }, + { + "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/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" + } + } + }, + { + "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/order/" + } + }, + { + "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/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" + } + } + } + ] + } + ], + "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-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-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", + "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/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/list-other-delimiter", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "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": "/" + } + }, + { + "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/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" + } + }, + { + "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}" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 400, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nInvalidRequestThis bucket only supports '/' as a delimiter01a36c7dc10001a08269f29d0c1a80c2547f97e2NIAczpdqY" + }, + "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": "delimiter" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "InvalidRequest" + } + } + ] + }, + { + "id": "operations/s3-express/list-page", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "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": "/" + } + }, + { + "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": "/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/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" + } + } + }, + { + "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": "/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/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" + } + } + } + ] + } + ], + "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/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", + "values": [ + null, + "" + ] + } + }, + { + "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", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "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": "/" + } + }, + { + "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/boa" + } + }, + { + "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" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/boa" + } + }, + { + "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": 400, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "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" + }, + "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": "prefix" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "InvalidRequest" + } + } + ] + }, + { + "id": "operations/s3-express/list-separator-keys-delimited", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "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": "/" + } + }, + { + "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/separators/" + } + }, + { + "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": 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/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/" + } + } + }, + { + "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/separators/" + } + }, + { + "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}" + } + }, + { + "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/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/" + } + } + } + ] + } + ], + "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/" + } + }, + { + "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": 4 + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-separator-keys", + "profile": "s3-express", + "lane": "core", + "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/separators/" + }, + "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/separators/" + } + }, + { + "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/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" + } + } + }, + { + "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/separators/" + } + }, + { + "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/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" + } + } + } + ] + } + ], + "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/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, + "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", + "profile": "s3-express", + "lane": "core", + "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": { + "op": "list", + "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": "/" + } + }, + { + "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": "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": "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/fixture-marker+/a11ba9e5001=11trueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" + } + } + }, + { + "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": "1" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + }, + { + "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/fixture-marker+/a11ba9e5001=11urltrueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" + } + } + } + ] + }, + { + "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": "1" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/a11ba9e5001=" + } + }, + { + "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/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11trueCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" + } + } + }, + { + "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": "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, + "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/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" + } + } + } + ] + }, + { + "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": "1" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/a11ba9e5002=" + } + }, + { + "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/fixture-marker+/a11ba9e5002=11falseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT" + } + } + }, + { + "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": "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" + } + }, + { + "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/fixture-marker+/a11ba9e5002=11urlfalseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT" + } + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "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": [ + { + "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": 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" + } + } + ], + "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": [ + { + "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": "/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/properties/" + } + } + ], + "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/11000falseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" + } + } + }, + { + "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": "/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/properties/" + } + }, + { + "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/properties/11000urlfalseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" + } + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "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 + } + }, + { + "at": "/value/continuation_token", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-checksum-algorithm", + "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", + "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_page", + "prefix": "object-tests/checksum-listing/" + }, + "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/checksum-listing/" + } + }, + { + "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/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" + } + } + }, + { + "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/checksum-listing/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + }, + { + "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/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" + } + } + } + ] + } + ], + "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 + } + }, + { + "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", + "profile": "s3-express", + "lane": "core", + "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": { + "fetch_owner": true, + "op": "list_page", + "prefix": "object-tests/owner/" + }, + "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": "/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" + } + } + ], + "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/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE" + } + } + }, + { + "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": "/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": "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/many/" + } + }, + { + "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/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" + } + } + }, + { + "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/many/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + }, + { + "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/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" + } + } + } + ] + }, + { + "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/many/" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/3a4e1000=" + } + }, + { + "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/many/fixture-marker+/3a4e1000=11000falseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" + } + } + }, + { + "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/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" + } + }, + { + "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/many/fixture-marker+/3a4e1000=11000urlfalseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-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": [ + "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", @@ -155967,17 +162855,2667 @@ "refusal": null }, { - "id": "operations/s3-express/list-prefix-special-characters", + "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": [ + { + "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": "/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/odd a+b&c=d%é/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" + } + } + ], + "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/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+/" + } + } + }, + { + "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": "/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/odd a+b&c=d%é/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" + } + }, + { + "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/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/" + } + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "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 + } + }, + { + "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", + "profile": "s3-express", + "lane": "core", + "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": { + "op": "list_page", + "prefix": "object-tests/board/", + "start_after": "object-tests/board/a.txt" + }, + "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": "/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/board/" + } + }, + { + "at": "/query/start-after", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/a.txt" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 501, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nNotSupportedFixture 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": "/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/board/" + } + }, + { + "at": "/query/start-after", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/a.txt" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 501, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nNotSupportedFixture error" + }, + "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": "NotSupported" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-truncated-without-token", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "origin": "constructed", + "call": { + "op": "list", + "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": "/" + } + }, + { + "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": "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": 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/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" + } + } + }, + { + "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": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + }, + { + "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/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" + } + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "error" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-encoding-ignored", + "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", + "sources": [ + "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/percent/" + }, + "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/percent/" + } + }, + { + "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/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" + } + } + }, + { + "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/percent/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + }, + { + "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/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" + } + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "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", + "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-express/put-created-empty", + "profile": "s3-express", + "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", + "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/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": { + "date": { + "from": "now" + }, + "etag": "\"fixture-de1997e62b9b\"", + "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-de1997e62b9b\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-created", + "profile": "s3-express", + "lane": "core", + "purpose": "put created", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "body_base64": "MDEyMzQ1Njc4OQ==", + "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" + } + }, + { + "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" + } + }, + { + "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-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\"" + } + }, + { + "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": [ + { + "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/keys/question?mark.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" + } + }, + { + "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-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\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-created-key-hash", + "profile": "s3-express", + "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": [ + { + "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/keys/hash#tag.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" + } + }, + { + "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-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\"" + } + }, + { + "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": [ + { + "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/keys/percent%20.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" + } + }, + { + "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-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\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-created-key-plus", + "profile": "s3-express", + "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": [ + { + "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/keys/plus+plus.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" + } + }, + { + "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-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\"" + } + }, + { + "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": "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": "put created, with the key \"space name.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/odd a+b&c=d%é/" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/space name.txt", + "op": "put" }, "exchanges": [ { @@ -156062,7 +165600,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -156070,7 +165608,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/space name.txt" } }, { @@ -156078,7 +165616,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -156104,29 +165642,125 @@ "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-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\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-created-key-non-ascii", + "profile": "s3-express", + "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, { - "at": "/query/list-type", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { - "at": "/query/prefix", + "at": "/query/session", "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" + "value": "" } }, { - "at": "/query/delimiter", + "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" } } ], @@ -156137,18 +165771,22 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "content-type": "application/xml" }, "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+/" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + }, + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -156156,7 +165794,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -156164,7 +165802,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/café/雪.txt" } }, { @@ -156172,7 +165810,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -156198,37 +165836,199 @@ "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-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\"" + } + }, + { + "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": [ { - "at": "/query/list-type", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "GET" } }, { - "at": "/query/prefix", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" + "value": "/" } }, { - "at": "/query/delimiter", + "at": "/query/session", "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" + } + } + ], + "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/keys/double//slash.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" + } + }, + { + "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}" } } ], @@ -156239,16 +166039,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/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": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -156264,42 +166065,15 @@ } }, { - "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", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6f6464200000\"" - } - }, - { - "at": "/value/entries/0/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-68e2c5df0cb2\"" } }, { - "at": "/value/entries/0/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -156308,65 +166082,22 @@ "" ] } - }, - { - "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/put-created-key-trailing-slash", "profile": "s3-express", "lane": "core", - "purpose": "Report the NotSupported error that a directory bucket answers to start-after", + "purpose": "put created, with the key \"trailing-slash/\"", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/trailing-slash/", + "op": "put" }, "exchanges": [ { @@ -156451,7 +166182,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -156459,7 +166190,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/trailing-slash/" } }, { @@ -156467,7 +166198,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -156493,29 +166224,133 @@ "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-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\"" + } + }, + { + "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": [ { - "at": "/query/list-type", + "at": "/method", "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/copy/target.txt" } }, { - "at": "/query/start-after", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "" + } + }, + { + "at": "/headers/x-amz-copy-source", + "optional": false, + "rule": { + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.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" } } ], @@ -156524,7 +166359,7 @@ ], "allow_query": [], "response": { - "status": 501, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -156533,7 +166368,200 @@ }, "body": { "encoding": "utf8", - "data": "\nNotSupportedFixture error" + "data": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/absent.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/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": { + "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 + } + }, + { + "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": [ + { + "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" } @@ -156545,7 +166573,201 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.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/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/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", + "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" } }, { @@ -156553,7 +166775,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/copy/target.txt" } }, { @@ -156565,19 +166787,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" } }, { @@ -156585,39 +166807,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/board/" - } - }, - { - "at": "/query/start-after", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/board/a.txt" + "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" } } ], @@ -156626,7 +166823,7 @@ ], "allow_query": [], "response": { - "status": 501, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -156635,59 +166832,11 @@ }, "body": { "encoding": "utf8", - "data": "\nNotSupportedFixture 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": 501 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "NotSupported" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/list-truncated-without-token", - "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", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "origin": "constructed", - "call": { - "op": "list", - "page_size": 2, - "prefix": "object-tests/board/" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -156695,7 +166844,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -156703,11 +166852,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/copy/source.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -156738,6 +166887,89 @@ } } ], + "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" ], @@ -156745,15 +166977,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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" - }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "encoding": "empty" } } } @@ -156768,7 +167000,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -156776,7 +167008,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/copy/target.txt" } }, { @@ -156788,27 +167020,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": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "2" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { @@ -156820,19 +167036,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" } } ], @@ -156846,15 +167061,20 @@ "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -156862,7 +167082,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -156870,7 +167090,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/copy/target.txt" } }, { @@ -156882,35 +167102,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": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "url" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { @@ -156922,19 +167118,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" } } ], @@ -156948,45 +167143,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/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" - } + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "error" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/list-encoding-ignored", - "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", - "sources": [ - "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/percent/" - }, - "exchanges": [ + ], + "optional": true + }, { "alternatives": [ { @@ -156996,7 +167164,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -157004,17 +167172,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, @@ -157046,19 +167222,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": [ @@ -157069,7 +167246,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -157077,7 +167254,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/copy/target.txt" } }, { @@ -157089,19 +167266,11 @@ } }, { - "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/percent/" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { @@ -157113,19 +167282,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" } } ], @@ -157139,15 +167307,20 @@ "content-type": "application/xml", "date": { "from": "now" - }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "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" - } + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -157155,7 +167328,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -157163,7 +167336,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/copy/target.txt" } }, { @@ -157175,27 +167348,11 @@ } }, { - "at": "/query/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" - } - }, - { - "at": "/query/prefix", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/percent/" - } - }, - { - "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" } }, { @@ -157207,19 +167364,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" } } ], @@ -157233,16 +167389,17 @@ "content-type": "application/xml", "date": { "from": "now" - }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "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" - } + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -157251,219 +167408,36 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "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", - "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 + "value": "error" } }, { - "at": "/value/continuation_token", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3-express/put-created-empty", + "id": "operations/s3-express/copy-replace-metadata", "profile": "s3-express", "lane": "core", - "purpose": "put created empty", + "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": { - "body_base64": "", - "key": "object-tests/write/empty.bin", - "op": "put" + "content_type": "text/plain", + "key": "object-tests/copy/target.txt", + "metadata": { + "colour": "blue" + }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -157475,7 +167449,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -157483,17 +167457,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, @@ -157516,6 +167498,30 @@ "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": [ @@ -157525,22 +167531,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": [ { @@ -157548,7 +167550,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -157556,7 +167558,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/empty.bin" + "value": "/object-tests/copy/source.txt" } }, { @@ -157576,22 +167578,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" ], @@ -157599,17 +167707,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-de1997e62b9b\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -157623,41 +167730,23 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-de1997e62b9b\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } } ], "refusal": null }, { - "id": "operations/s3-express/put-created", + "id": "operations/s3-express/copy-source-if-match", "profile": "s3-express", "lane": "core", - "purpose": "put created", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -157669,7 +167758,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -157677,17 +167766,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, @@ -157710,6 +167807,14 @@ "rule": { "is": "absent" } + }, + { + "at": "/headers/x-amz-copy-source-if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-etag\"" + } } ], "allow_headers": [ @@ -157719,22 +167824,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": [ { @@ -157742,7 +167843,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -157750,7 +167851,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -157758,7 +167859,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -157770,22 +167871,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-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" ], @@ -157793,17 +167984,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -157817,41 +168007,23 @@ "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", + "id": "operations/s3-express/copy-source-if-match-failed", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"question?mark.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/question?mark.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-0123456789ab\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -157863,7 +168035,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -157871,17 +168043,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, @@ -157904,6 +168084,14 @@ "rule": { "is": "absent" } + }, + { + "at": "/headers/x-amz-copy-source-if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-0123456789ab\"" + } } ], "allow_headers": [ @@ -157911,24 +168099,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": [ { @@ -157936,7 +168120,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -157944,7 +168128,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -157952,7 +168136,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -157964,22 +168148,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-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" ], @@ -157987,17 +168261,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -158009,43 +168282,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "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/put-created-key-hash", + "id": "operations/s3-express/copy-source-if-none-match-failed", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"hash#tag.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/hash#tag.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_none_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -158057,7 +168328,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -158065,17 +168336,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, @@ -158098,6 +168377,14 @@ "rule": { "is": "absent" } + }, + { + "at": "/headers/x-amz-copy-source-if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-etag\"" + } } ], "allow_headers": [ @@ -158105,24 +168392,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": [ { @@ -158130,7 +168413,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -158138,7 +168421,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -158146,7 +168429,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -158158,22 +168441,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" ], @@ -158181,17 +168554,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -158203,43 +168575,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "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/put-created-key-percent", + "id": "operations/s3-express/copy-source-if-modified-since", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"percent%20.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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/percent%20.txt", - "op": "put" + "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": [ { @@ -158251,7 +168621,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -158259,17 +168629,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, @@ -158292,6 +168670,14 @@ "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": [ @@ -158301,22 +168687,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": [ { @@ -158324,7 +168706,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -158332,7 +168714,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -158340,7 +168722,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -158352,22 +168734,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" ], @@ -158375,17 +168847,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -158399,41 +168870,23 @@ "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-plus", + "id": "operations/s3-express/copy-source-if-unmodified-since-failed", "profile": "s3-express", "lane": "core", - "purpose": "put created, 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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/plus+plus.txt", - "op": "put" + "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": [ { @@ -158445,7 +168898,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -158453,17 +168906,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, @@ -158486,6 +168947,14 @@ "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": [ @@ -158493,24 +168962,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": [ { @@ -158518,7 +168983,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -158526,7 +168991,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -158534,7 +168999,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -158546,22 +169011,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-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" ], @@ -158569,17 +169124,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -158591,43 +169145,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "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/put-created-key-space", + "id": "operations/s3-express/copy-source-key-encoded", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"space name.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/space name.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/a b+c%é?#.txt" }, "exchanges": [ { @@ -158639,7 +169190,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -158647,17 +169198,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, @@ -158689,22 +169248,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": [ { @@ -158712,7 +169267,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -158720,7 +169275,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/object-tests/copy/a b+c%é?#.txt" } }, { @@ -158728,7 +169283,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -158740,22 +169295,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/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": [ "content-type" ], @@ -158763,17 +169400,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -158787,41 +169423,22 @@ "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-non-ascii", + "id": "operations/s3-express/copy-onto-itself", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"café/雪.txt\"", + "purpose": "Copy an object onto itself without changing it. A directory bucket accepts it, where a general-purpose bucket 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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/café/雪.txt", - "op": "put" + "key": "object-tests/copy/source.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -158833,7 +169450,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -158841,17 +169458,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, @@ -158883,22 +169508,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": [ { @@ -158906,7 +169527,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -158914,7 +169535,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -158922,7 +169543,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -158934,22 +169555,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/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" ], @@ -158957,17 +169660,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -158981,41 +169683,25 @@ "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", + "id": "operations/s3-express/copy-onto-itself-replace-metadata", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"double//slash.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/double//slash.txt", - "op": "put" + "key": "object-tests/copy/source.txt", + "metadata": { + "colour": "blue" + }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -159027,7 +169713,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -159035,17 +169721,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, @@ -159068,6 +169762,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": [ @@ -159077,22 +169787,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": [ { @@ -159100,7 +169806,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -159108,7 +169814,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -159116,7 +169822,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -159128,22 +169834,120 @@ } }, { - "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/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": [ "content-type" ], @@ -159151,17 +169955,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -159175,40 +169978,25 @@ "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-trailing-slash", + "id": "operations/s3-express/put-with-md5", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"trailing-slash/\"", + "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" ], "call": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/trailing-slash/", + "body_base64": "aGVsbG8=", + "checksum": { + "algorithm": "md5", + "value_base64": "XUFAKrxLKna5cZ2REBfFkg==" + }, + "key": "object", "op": "put" }, "exchanges": [ @@ -159302,7 +170090,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/object" } }, { @@ -159310,7 +170098,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "aGVsbG8=" + } + }, + { + "at": "/headers/content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "XUFAKrxLKna5cZ2REBfFkg==" } }, { @@ -159343,17 +170139,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 501, "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": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture" }, "framing": "chunked" } @@ -159367,43 +170162,44 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "value": 501 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "NotImplemented" } } ], "refusal": null }, { - "id": "operations/s3-express/copy-missing-source", + "id": "operations/s3-express/put-md5-mismatch", "profile": "s3-express", "lane": "core", - "purpose": "Refuse a copy whose source does not exist", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/absent.txt" + "body_base64": "aGVsbG8=", + "checksum": { + "algorithm": "md5", + "value_base64": "K9opmNmw7hl9oUKgRH9nJQ==" + }, + "key": "object", + "op": "put" }, "exchanges": [ { @@ -159415,7 +170211,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -159423,25 +170219,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/absent\\.txt" - } - }, { "at": "/headers/host", "optional": false, @@ -159471,20 +170259,24 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - } + "content-type": "application/xml" }, "body": { "encoding": "utf8", - "data": "\nNoSuchKeyFixture error" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -159492,7 +170284,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -159500,7 +170292,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/absent.txt" + "value": "/object" } }, { @@ -159508,7 +170300,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "aGVsbG8=" + } + }, + { + "at": "/headers/content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "K9opmNmw7hl9oUKgRH9nJQ==" } }, { @@ -159520,18 +170320,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}" } } ], @@ -159540,15 +170341,18 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 501, "headers": { + "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "empty" - } + "encoding": "utf8", + "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture" + }, + "framing": "chunked" } } ] @@ -159568,35 +170372,36 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 501 } }, { "at": "/code", "optional": false, "rule": { - "is": "one_of", - "values": [ - "NoSuchKey", - "" - ] + "is": "equal", + "value": "NotImplemented" } } ], "refusal": null }, { - "id": "operations/s3-express/copy", + "id": "operations/s3-express/put-with-crc32", "profile": "s3-express", "lane": "core", - "purpose": "Copy an object to another key in the same bucket", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc32", + "value_base64": "ItMTFg==" + }, + "key": "object-tests/checksums/crc32.txt", + "op": "put" }, "exchanges": [ { @@ -159608,7 +170413,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -159616,25 +170421,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, @@ -159666,18 +170463,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" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -159685,7 +170486,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -159693,7 +170494,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/object-tests/checksums/crc32.txt" } }, { @@ -159701,114 +170502,48 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-checksum-crc32", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "ItMTFg==" } }, { - "at": "/headers/authorization", + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC32" + } + }, + { + "at": "/headers/host", "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--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" } }, { "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "fixture-session-token" } - } - ], - "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" - } - } - ] + "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": [ @@ -159818,16 +170553,18 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -159847,27 +170584,45 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "value": "\"fixture-636b73750000\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/copy-200-internal-error", + "id": "operations/s3-express/put-two-checksums", "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", + "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://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_PutObject.html" ], - "origin": "transient", "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.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": [ { @@ -159879,7 +170634,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -159887,25 +170642,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, @@ -159937,18 +170684,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": [ { @@ -159956,7 +170707,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -159964,7 +170715,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/object-tests/checksums/two.txt" } }, { @@ -159972,179 +170723,50 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-checksum-crc32", "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": "ItMTFg==" } - } - ], - "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" - ], - "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": "/headers/x-amz-checksum-sha256", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" } }, { - "at": "/path", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "equal", - "value": "/object-tests/copy/target.txt" + "is": "one_of", + "values": [ + "CRC32", + "SHA256" + ] } }, { - "at": "/body_base64", + "at": "/headers/host", "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": "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" } }, { @@ -160152,14 +170774,7 @@ "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" + "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}" } } ], @@ -160168,7 +170783,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -160177,14 +170792,98 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture" }, "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": "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-express/put-internal-error", + "profile": "s3-express", + "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": [ { @@ -160194,7 +170893,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -160202,25 +170901,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, @@ -160252,20 +170943,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": [ @@ -160284,7 +170974,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -160292,15 +170982,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==" } }, { @@ -160312,18 +170994,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}" } } ], @@ -160332,7 +171015,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -160341,13 +171024,12 @@ }, "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 + ] }, { "alternatives": [ @@ -160366,7 +171048,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -160374,15 +171056,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==" } }, { @@ -160394,18 +171068,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}" } } ], @@ -160414,7 +171089,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -160423,7 +171098,7 @@ }, "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" } @@ -160448,7 +171123,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -160456,15 +171131,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==" } }, { @@ -160476,18 +171143,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}" } } ], @@ -160496,7 +171164,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -160505,53 +171173,14 @@ }, "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": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "InternalError" - } - } - ], - "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": [ { @@ -160561,7 +171190,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -160569,15 +171198,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/write/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -160589,18 +171218,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}" } } ], @@ -160609,21 +171239,22 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 500, "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.fixture" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -160642,7 +171273,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/write/object.txt" } }, { @@ -160650,15 +171281,82 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "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/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==" } }, { @@ -160691,7 +171389,7 @@ ], "allow_query": [], "response": { - "status": 501, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -160700,12 +171398,13 @@ }, "body": { "encoding": "utf8", - "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" }, "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -160722,7 +171421,7 @@ "optional": false, "rule": { "is": "equal", - "value": 501 + "value": 500 } }, { @@ -160730,27 +171429,24 @@ "optional": false, "rule": { "is": "equal", - "value": "NotImplemented" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3-express/put-md5-mismatch", + "id": "operations/s3-express/put-content-encoding-gzip", "profile": "s3-express", "lane": "core", - "purpose": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not", + "purpose": "Report the refusal of Content-Encoding: gzip by a directory bucket", "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": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", + "content_encoding": "gzip", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -160844,7 +171540,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/write/object.txt" } }, { @@ -160852,15 +171548,7 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" - } - }, - { - "at": "/headers/content-md5", - "optional": false, - "rule": { - "is": "equal", - "value": "K9opmNmw7hl9oUKgRH9nJQ==" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { @@ -160886,6 +171574,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-encoding", + "optional": false, + "rule": { + "is": "equal", + "value": "gzip" + } } ], "allow_headers": [ @@ -160893,7 +171589,7 @@ ], "allow_query": [], "response": { - "status": 501, + "status": 415, "headers": { "content-type": "application/xml", "date": { @@ -160902,7 +171598,7 @@ }, "body": { "encoding": "utf8", - "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture" + "data": "\nUnsupportedMediaTypeThis bucket does not support content-encoding: gzip. Only AWS-CHUNKED is supported.fixture" }, "framing": "chunked" } @@ -160924,7 +171620,7 @@ "optional": false, "rule": { "is": "equal", - "value": 501 + "value": 415 } }, { @@ -160932,27 +171628,27 @@ "optional": false, "rule": { "is": "equal", - "value": "NotImplemented" + "value": "UnsupportedMediaType" } } ], "refusal": null }, { - "id": "operations/s3-express/put-with-crc32", + "id": "operations/s3-express/put-content-properties", "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": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", "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": "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": [ @@ -161046,7 +171742,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/checksums/crc32.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -161054,23 +171750,7 @@ "optional": false, "rule": { "is": "equal", - "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" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -161096,6 +171776,38 @@ "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": [ @@ -161108,9 +171820,8 @@ "date": { "from": "now" }, - "etag": "\"fixture-636b73750000\"", - "x-amz-checksum-crc32": "ItMTFg==", - "x-amz-checksum-type": "FULL_OBJECT" + "etag": "\"fixture-68e2c5df0cb2\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", @@ -161136,7 +171847,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-636b73750000\"" + "value": "\"fixture-68e2c5df0cb2\"" } }, { @@ -161154,26 +171865,17 @@ "refusal": null }, { - "id": "operations/s3-express/put-two-checksums", + "id": "operations/s3-express/put-if-match-current", "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 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", - "checksums": [ - { - "algorithm": "crc32", - "value_base64": "ItMTFg==" - }, - { - "algorithm": "sha256", - "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" - } - ], - "key": "object-tests/checksums/two.txt", + "body_base64": "cmVwbGFjZWQ=", + "if_match": "\"fixture-68e2c5df0cb2\"", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -161267,7 +171969,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/checksums/two.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -161275,34 +171977,15 @@ "optional": false, "rule": { "is": "equal", - "value": "Y2hlY2tzdW0K" - } - }, - { - "at": "/headers/x-amz-checksum-crc32", - "optional": false, - "rule": { - "is": "equal", - "value": "ItMTFg==" + "value": "cmVwbGFjZWQ=" } }, { - "at": "/headers/x-amz-checksum-sha256", + "at": "/headers/if-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": "\"fixture-68e2c5df0cb2\"" } }, { @@ -161335,16 +172018,17 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" - } + }, + "etag": "\"fixture-b4f27b379d0b\"", + "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" } @@ -161358,81 +172042,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": "checksums" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 + "value": "\"fixture-b4f27b379d0b\"" } }, { - "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-if-none-match-missing", "profile": "s3-express", "lane": "core", - "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries", + "purpose": "put if none match missing", "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": "ZnJlc2g=", + "if_none_match": "*", + "key": "object-tests/write/fresh.txt", "op": "put" }, "exchanges": [ @@ -161526,7 +172172,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/write/fresh.txt" } }, { @@ -161534,7 +172180,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "ZnJlc2g=" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -161567,22 +172221,69 @@ ], "allow_query": [], "response": { - "status": 500, + "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": "\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-fb6dd447625d\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-key-1024", + "profile": "s3-express", + "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": [ { "alternatives": [ { @@ -161592,7 +172293,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -161600,15 +172301,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": "" } }, { @@ -161620,19 +172321,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" } } ], @@ -161641,22 +172341,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": [ @@ -161675,7 +172374,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -161683,7 +172382,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "MQ==" } }, { @@ -161716,23 +172415,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" } } - ], - "optional": true + ] + } + ], + "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": [ { @@ -161742,7 +172487,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -161750,15 +172495,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": "" } }, { @@ -161769,95 +172514,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" } } ], @@ -161866,22 +172535,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": [ @@ -161900,7 +172568,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -161908,7 +172576,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "MQ==" } }, { @@ -161941,7 +172609,7 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -161950,13 +172618,12 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" + "data": "\nKeyTooLongErrorFixture error" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -161973,7 +172640,7 @@ "optional": false, "rule": { "is": "equal", - "value": 500 + "value": 400 } }, { @@ -161981,23 +172648,64 @@ "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "KeyTooLongError" } } ], - "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": "key" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "KeyTooLongError" + } + } + ] }, { - "id": "operations/s3-express/put-content-encoding-gzip", + "id": "operations/s3-express/put-lost-the-race-to-create", "profile": "s3-express", "lane": "core", - "purpose": "Report the refusal of Content-Encoding: gzip by a directory bucket", + "purpose": "put lost the race to create", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", - "content_encoding": "gzip", + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_none_match": "*", "key": "object-tests/write/object.txt", "op": "put" }, @@ -162100,7 +172808,15 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "YW5vdGhlciBvYmplY3Q=" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -162126,14 +172842,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": [ @@ -162141,7 +172849,7 @@ ], "allow_query": [], "response": { - "status": 415, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -162150,7 +172858,7 @@ }, "body": { "encoding": "utf8", - "data": "\nUnsupportedMediaTypeThis bucket does not support content-encoding: gzip. Only AWS-CHUNKED is supported.fixture" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } @@ -162172,7 +172880,7 @@ "optional": false, "rule": { "is": "equal", - "value": 415 + "value": 412 } }, { @@ -162180,27 +172888,26 @@ "optional": false, "rule": { "is": "equal", - "value": "UnsupportedMediaType" + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3-express/put-content-properties", + "id": "operations/s3-express/put-metadata-empty-value", "profile": "s3-express", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "purpose": "put metadata empty value", "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/empty-value.txt", + "metadata": { + "empty": "" + }, "op": "put" }, "exchanges": [ @@ -162294,7 +173001,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/metadata/empty-value.txt" } }, { @@ -162302,7 +173009,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "MQ==" + } + }, + { + "at": "/headers/x-amz-meta-empty", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -162328,38 +173043,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": [ @@ -162372,7 +173055,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-e6096f6fd1ec\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -162399,7 +173082,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "value": "\"fixture-e6096f6fd1ec\"" } }, { @@ -162417,17 +173100,19 @@ "refusal": null }, { - "id": "operations/s3-express/put-if-match-current", + "id": "operations/s3-express/put-metadata-hyphen-name", "profile": "s3-express", "lane": "core", - "purpose": "put if match current", + "purpose": "put metadata hyphen name", "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/hyphen-name.txt", + "metadata": { + "not-valid": "1" + }, "op": "put" }, "exchanges": [ @@ -162521,7 +173206,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/metadata/hyphen-name.txt" } }, { @@ -162529,15 +173214,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" + "value": "MQ==" } }, { - "at": "/headers/if-match", + "at": "/headers/x-amz-meta-not-valid", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "value": "1" } }, { @@ -162575,7 +173260,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-b4f27b379d0b\"", + "etag": "\"fixture-adae183ea4af\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -162602,7 +173287,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b4f27b379d0b\"" + "value": "\"fixture-adae183ea4af\"" } }, { @@ -162620,17 +173305,20 @@ "refusal": null }, { - "id": "operations/s3-express/put-if-none-match-missing", + "id": "operations/s3-express/put-metadata-names-differ-in-case", "profile": "s3-express", "lane": "core", - "purpose": "put if none match missing", + "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": "ZnJlc2g=", - "if_none_match": "*", - "key": "object-tests/write/fresh.txt", + "body_base64": "MQ==", + "key": "object-tests/metadata/names-differ-in-case.txt", + "metadata": { + "DUP": "two", + "dup": "one" + }, "op": "put" }, "exchanges": [ @@ -162724,7 +173412,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/fresh.txt" + "value": "/object-tests/metadata/names-differ-in-case.txt" } }, { @@ -162732,15 +173420,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ZnJlc2g=" + "value": "MQ==" } }, { - "at": "/headers/if-none-match", + "at": "/headers/x-amz-meta-dup", "optional": false, "rule": { - "is": "equal", - "value": "*" + "is": "one_of", + "values": [ + [ + "one", + "two" + ], + [ + "two", + "one" + ] + ] } }, { @@ -162773,17 +173470,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-fb6dd447625d\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "\nInvalidArgumentFixture error" }, "framing": "chunked" } @@ -162797,42 +173493,83 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fb6dd447625d\"" + "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-key-1024", + "id": "operations/s3-express/put-metadata-punctuation-name", "profile": "s3-express", "lane": "core", - "purpose": "put key 1024", + "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/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "key": "object-tests/metadata/punctuation-name.txt", + "metadata": { + "1a!#$%&'*+.^_`|~b": "1" + }, "op": "put" }, "exchanges": [ @@ -162926,7 +173663,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/object-tests/metadata/punctuation-name.txt" } }, { @@ -162937,6 +173674,14 @@ "value": "MQ==" } }, + { + "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b", + "optional": false, + "rule": { + "is": "equal", + "value": "1" + } + }, { "at": "/headers/host", "optional": false, @@ -162972,7 +173717,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-ab08da38e9fe\"", + "etag": "\"fixture-adae183ea4af\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -162999,7 +173744,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ab08da38e9fe\"" + "value": "\"fixture-adae183ea4af\"" } }, { @@ -163017,16 +173762,19 @@ "refusal": null }, { - "id": "operations/s3-express/put-key-1025", + "id": "operations/s3-express/put-metadata-non-ascii-value", "profile": "s3-express", "lane": "core", - "purpose": "put key 1025", + "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/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "key": "object-tests/metadata/non-ascii.txt", + "metadata": { + "value": "café" + }, "op": "put" }, "exchanges": [ @@ -163120,7 +173868,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/object-tests/metadata/non-ascii.txt" } }, { @@ -163131,6 +173879,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, @@ -163161,16 +173917,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" } @@ -163184,23 +173941,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, + "" + ] } } ], @@ -163226,7 +173986,7 @@ "optional": false, "rule": { "is": "equal", - "value": "key" + "value": "metadata" } }, { @@ -163242,23 +174002,25 @@ "optional": true, "rule": { "is": "equal", - "value": "KeyTooLongError" + "value": "InvalidRequest" } } ] }, { - "id": "operations/s3-express/put-lost-the-race-to-create", + "id": "operations/s3-express/put-metadata-value-edge-whitespace", "profile": "s3-express", "lane": "core", - "purpose": "put lost the race to create", + "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": "YW5vdGhlciBvYmplY3Q=", - "if_none_match": "*", - "key": "object-tests/write/object.txt", + "body_base64": "MQ==", + "key": "object-tests/metadata/value-edge-whitespace.txt", + "metadata": { + "value": "\ta " + }, "op": "put" }, "exchanges": [ @@ -163352,7 +174114,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/metadata/value-edge-whitespace.txt" } }, { @@ -163360,15 +174122,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": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?=" } }, { @@ -163401,16 +174163,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" } @@ -163424,41 +174187,69 @@ "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", + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": [ + { + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "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-empty-value", + "id": "operations/s3-express/put-metadata-value-encoded-word-text", "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. 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": "MQ==", - "key": "object-tests/metadata/empty-value.txt", + "key": "object-tests/metadata/value-encoded-word-text.txt", "metadata": { - "empty": "" + "value": "=?UTF-8?Q?caf=C3=A9?=" }, "op": "put" }, @@ -163553,7 +174344,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/empty-value.txt" + "value": "/object-tests/metadata/value-encoded-word-text.txt" } }, { @@ -163565,11 +174356,11 @@ } }, { - "at": "/headers/x-amz-meta-empty", + "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)\\?=" } }, { @@ -163607,7 +174398,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-e6096f6fd1ec\"", + "etag": "\"fixture-ee657e36119d\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -163634,7 +174425,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-e6096f6fd1ec\"" + "value": "\"fixture-ee657e36119d\"" } }, { @@ -163652,18 +174443,18 @@ "refusal": null }, { - "id": "operations/s3-express/put-metadata-hyphen-name", + "id": "operations/s3-express/put-metadata-value-not-an-encoded-word", "profile": "s3-express", "lane": "core", - "purpose": "put metadata hyphen name", + "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/hyphen-name.txt", + "key": "object-tests/metadata/value-not-an-encoded-word.txt", "metadata": { - "not-valid": "1" + "value": "a=?b?=c x=?UTF-8?Q?caf=C3=A9?=y" }, "op": "put" }, @@ -163758,7 +174549,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/hyphen-name.txt" + "value": "/object-tests/metadata/value-not-an-encoded-word.txt" } }, { @@ -163770,11 +174561,11 @@ } }, { - "at": "/headers/x-amz-meta-not-valid", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { - "is": "equal", - "value": "1" + "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==)\\?=" } }, { @@ -163812,7 +174603,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-adae183ea4af\"", + "etag": "\"fixture-ee657e36119d\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -163839,7 +174630,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-adae183ea4af\"" + "value": "\"fixture-ee657e36119d\"" } }, { @@ -163857,19 +174648,18 @@ "refusal": null }, { - "id": "operations/s3-express/put-metadata-names-differ-in-case", + "id": "operations/s3-express/put-metadata-value-control-characters", "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": "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/names-differ-in-case.txt", + "key": "object-tests/metadata/value-control-characters.txt", "metadata": { - "DUP": "two", - "dup": "one" + "value": "a\u0000bc" }, "op": "put" }, @@ -163964,7 +174754,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/names-differ-in-case.txt" + "value": "/object-tests/metadata/value-control-characters.txt" } }, { @@ -163976,20 +174766,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:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?=" } }, { @@ -164022,16 +174803,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" } @@ -164045,23 +174827,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, + "" + ] } } ], @@ -164089,38 +174874,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-line-break", "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": "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/punctuation-name.txt", + "key": "object-tests/metadata/value-line-break.txt", "metadata": { - "1a!#$%&'*+.^_`|~b": "1" + "value": "a\r\nb" }, "op": "put" }, @@ -164215,7 +174984,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/punctuation-name.txt" + "value": "/object-tests/metadata/value-line-break.txt" } }, { @@ -164227,11 +174996,11 @@ } }, { - "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { - "is": "equal", - "value": "1" + "is": "matches", + "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?=" } }, { @@ -164269,7 +175038,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-adae183ea4af\"", + "etag": "\"fixture-ee657e36119d\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -164296,7 +175065,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-adae183ea4af\"" + "value": "\"fixture-ee657e36119d\"" } }, { @@ -164311,21 +175080,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-non-ascii-value", + "id": "operations/s3-express/put-metadata-value-with-tab", "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": "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/non-ascii.txt", + "key": "object-tests/metadata/value-with-tab.txt", "metadata": { - "value": "café" + "value": "a\tb" }, "op": "put" }, @@ -164420,7 +175214,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/non-ascii.txt" + "value": "/object-tests/metadata/value-with-tab.txt" } }, { @@ -164436,7 +175230,7 @@ "optional": false, "rule": { "is": "matches", - "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?caf=(?i:c3)=(?i:a9)|(?i:b)\\?Y2Fmw6k=)\\?=" + "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?=" } }, { @@ -164516,62 +175310,21 @@ } } ], - "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-value-edge-whitespace", + "id": "operations/s3-express/put-metadata-outside-latin-1", "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": "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/value-edge-whitespace.txt", + "key": "object-tests/metadata/outside-latin-1.txt", "metadata": { - "value": "\ta " + "value": "雪" }, "op": "put" }, @@ -164666,7 +175419,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/value-edge-whitespace.txt" + "value": "/object-tests/metadata/outside-latin-1.txt" } }, { @@ -164682,7 +175435,7 @@ "optional": false, "rule": { "is": "matches", - "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?=" + "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?=" } }, { @@ -164786,228 +175539,36 @@ "is": "equal", "value": "metadata" } - } - ] - }, - { - "id": "operations/s3-express/put-metadata-value-encoded-word-text", - "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.", - "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": [ - { - "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/metadata/value-encoded-word-text.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-amz-meta-value", - "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)\\?=" - } - }, - { - "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-ee657e36119d\"", - "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, + "at": "/status", + "optional": true, "rule": { "is": "equal", - "value": "\"fixture-ee657e36119d\"" + "value": 400 } }, { - "at": "/value/version", + "at": "/code", "optional": true, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidRequest" } } - ], - "refusal": null + ] }, { - "id": "operations/s3-express/put-metadata-value-not-an-encoded-word", + "id": "operations/s3-express/put-metadata-replaced", "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 metadata replaced", "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": "Mg==", + "key": "object-tests/metadata/replaced.txt", "op": "put" }, "exchanges": [ @@ -165101,7 +175662,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/value-not-an-encoded-word.txt" + "value": "/object-tests/metadata/replaced.txt" } }, { @@ -165109,15 +175670,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": "Mg==" } }, { @@ -165155,7 +175708,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-ee657e36119d\"", + "etag": "\"fixture-8ff37996a1a3\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -165182,7 +175735,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ee657e36119d\"" + "value": "\"fixture-8ff37996a1a3\"" } }, { @@ -165200,18 +175753,19 @@ "refusal": null }, { - "id": "operations/s3-express/put-metadata-value-control-characters", + "id": "operations/s3-express/put-metadata", "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 metadata", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { "body_base64": "MQ==", - "key": "object-tests/metadata/value-control-characters.txt", + "key": "object-tests/metadata/object.txt", "metadata": { - "value": "a\u0000bc" + "name": "value", + "second": "2" }, "op": "put" }, @@ -165306,7 +175860,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/value-control-characters.txt" + "value": "/object-tests/metadata/object.txt" } }, { @@ -165318,11 +175872,19 @@ } }, { - "at": "/headers/x-amz-meta-value", + "at": "/headers/x-amz-meta-name", "optional": false, "rule": { - "is": "matches", - "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?=" + "is": "equal", + "value": "value" + } + }, + { + "at": "/headers/x-amz-meta-second", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -165402,47 +175964,19 @@ } } ], - "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-line-break", + "id": "operations/s3-express/put-overwrite", "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": "put overwrite", "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" - }, + "body_base64": "b3ZlcndyaXR0ZW4=", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -165536,7 +176070,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/value-line-break.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -165544,15 +176078,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)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?=" + "value": "b3ZlcndyaXR0ZW4=" } }, { @@ -165590,7 +176116,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-ee657e36119d\"", + "etag": "\"fixture-411516c7564c\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -165617,7 +176143,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ee657e36119d\"" + "value": "\"fixture-411516c7564c\"" } }, { @@ -165632,47 +176158,20 @@ } } ], - "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-with-tab", + "id": "operations/s3-express/put-precondition-failed", "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": "put precondition failed", "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" - }, + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-db71b2c0257c\"", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -165766,7 +176265,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/value-with-tab.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -165774,15 +176273,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": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?=" + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" } }, { @@ -165815,17 +176314,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" } @@ -165839,46 +176337,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ee657e36119d\"" + "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/put-metadata-outside-latin-1", + "id": "operations/s3-express/stage-after-abort", "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": "stage after abort", "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": "eA==", + "key": "object-tests/multipart/aborted.bin", + "op": "s3.upload_part", + "part_number": 2, + "upload_id": "fixture-upload+/4bef2cd6d025=" }, "exchanges": [ { @@ -165971,7 +176465,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/outside-latin-1.txt" + "value": "/object-tests/multipart/aborted.bin" } }, { @@ -165979,15 +176473,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)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?=" + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/4bef2cd6d025=" } }, { @@ -166020,17 +176522,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" } @@ -166044,84 +176545,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-ee657e36119d\"" - } - }, - { - "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" + "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": "InvalidRequest" + "value": "NoSuchUpload" } } - ] + ], + "refusal": null }, { - "id": "operations/s3-express/put-metadata-replaced", + "id": "operations/s3-express/stage-last", "profile": "s3-express", "lane": "core", - "purpose": "put metadata replaced", + "purpose": "stage last", "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": "c2Vjb25k", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 2, + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -166214,7 +176673,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/replaced.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -166222,7 +176681,23 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "c2Vjb25k" + } + }, + { + "at": "/query/partNumber", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -166260,7 +176735,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-8ff37996a1a3\"", + "etag": "\"fixture-ec2738a0b15a\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -166287,39 +176762,26 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ff37996a1a3\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-ec2738a0b15a\"" } } ], "refusal": null }, { - "id": "operations/s3-express/put-metadata", + "id": "operations/s3-express/stage-part-10000", "profile": "s3-express", "lane": "core", - "purpose": "put metadata", + "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/object.txt", - "metadata": { - "name": "value", - "second": "2" - }, - "op": "put" + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 10000, + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -166412,7 +176874,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/object.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -166420,23 +176882,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-amz-meta-name", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "value" + "value": "10000" } }, { - "at": "/headers/x-amz-meta-second", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -166474,7 +176936,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-ee657e36119d\"", + "etag": "\"fixture-ec2738a0b15a\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -166501,35 +176963,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-overwrite", + "id": "operations/s3-express/stage-part-10001", "profile": "s3-express", "lane": "core", - "purpose": "put overwrite", + "purpose": "stage part 10001", "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": 10001, + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -166622,7 +177075,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -166630,7 +177083,23 @@ "optional": false, "rule": { "is": "equal", - "value": "b3ZlcndyaXR0ZW4=" + "value": "eA==" + } + }, + { + "at": "/query/partNumber", + "optional": false, + "rule": { + "is": "equal", + "value": "10001" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -166663,17 +177132,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-411516c7564c\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "\nInvalidArgumentFixture error" }, "framing": "chunked" } @@ -166687,44 +177155,83 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-411516c7564c\"" + "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-precondition-failed", + "id": "operations/s3-express/stage-part-zero", "profile": "s3-express", "lane": "core", - "purpose": "put precondition failed", + "purpose": "stage part zero", "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" + "body_base64": "eA==", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 0, + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -166817,7 +177324,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -166825,15 +177332,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "eA==" } }, { - "at": "/headers/if-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "0" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -166866,7 +177381,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -166875,7 +177390,7 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "\nInvalidArgumentFixture error" }, "framing": "chunked" } @@ -166897,7 +177412,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 400 } }, { @@ -166905,26 +177420,67 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "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/stage-after-abort", + "id": "operations/s3-express/stage-unknown-upload", "profile": "s3-express", "lane": "core", - "purpose": "stage after abort", + "purpose": "stage unknown upload", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { "body_base64": "eA==", - "key": "object-tests/multipart/aborted.bin", + "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+/4d0d5ccc4993=" }, "exchanges": [ { @@ -167017,7 +177573,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/aborted.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -167033,7 +177589,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "1" } }, { @@ -167041,7 +177597,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4bef2cd6d025=" + "value": "fixture-upload+/4d0d5ccc4993=" } }, { @@ -167120,18 +177676,18 @@ "refusal": null }, { - "id": "operations/s3-express/stage-last", + "id": "operations/s3-express/stage", "profile": "s3-express", "lane": "core", - "purpose": "stage last", + "purpose": "stage", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "body_base64": "c2Vjb25k", + "body_base64": "cGFydA==", "key": "object-tests/multipart/object.bin", "op": "s3.upload_part", - "part_number": 2, + "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ @@ -167233,7 +177789,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "cGFydA==" } }, { @@ -167241,7 +177797,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "1" } }, { @@ -167287,7 +177843,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-ec2738a0b15a\"", + "etag": "\"fixture-9aff617fcdf8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -167314,25 +177870,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-question", "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 \"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": 10000, + "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ @@ -167426,7 +177982,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/question?mark.txt" } }, { @@ -167434,7 +177990,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "cGFydA==" } }, { @@ -167442,7 +177998,7 @@ "optional": false, "rule": { "is": "equal", - "value": "10000" + "value": "1" } }, { @@ -167488,7 +178044,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-ec2738a0b15a\"", + "etag": "\"fixture-9aff617fcdf8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -167515,25 +178071,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-hash", "profile": "s3-express", "lane": "core", - "purpose": "stage part 10001", + "purpose": "stage, with the key \"hash#tag.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/hash#tag.txt", "op": "s3.upload_part", - "part_number": 10001, + "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ @@ -167627,7 +178183,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/hash#tag.txt" } }, { @@ -167635,7 +178191,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" + "value": "cGFydA==" } }, { @@ -167643,7 +178199,7 @@ "optional": false, "rule": { "is": "equal", - "value": "10001" + "value": "1" } }, { @@ -167684,16 +178240,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" } @@ -167707,82 +178264,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-percent", "profile": "s3-express", "lane": "core", - "purpose": "stage part zero", + "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": 0, + "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ @@ -167876,7 +178384,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/percent%20.txt" } }, { @@ -167884,7 +178392,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" + "value": "cGFydA==" } }, { @@ -167892,7 +178400,7 @@ "optional": false, "rule": { "is": "equal", - "value": "0" + "value": "1" } }, { @@ -167933,16 +178441,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" } @@ -167956,83 +178465,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-plus", "profile": "s3-express", "lane": "core", - "purpose": "stage unknown upload", + "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": 1, - "upload_id": "fixture-upload+/4d0d5ccc4993=" + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -168125,7 +178585,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/plus+plus.txt" } }, { @@ -168133,7 +178593,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" + "value": "cGFydA==" } }, { @@ -168149,7 +178609,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4d0d5ccc4993=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -168182,16 +178642,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" } @@ -168205,39 +178666,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-space", "profile": "s3-express", "lane": "core", - "purpose": "stage", + "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/multipart/object.bin", + "key": "object-tests/keys/space name.txt", "op": "s3.upload_part", "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" @@ -168333,7 +178786,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/space name.txt" } }, { @@ -168429,16 +178882,16 @@ "refusal": null }, { - "id": "operations/s3-express/stage-key-question", + "id": "operations/s3-express/stage-key-non-ascii", "profile": "s3-express", "lane": "core", - "purpose": "stage, with the key \"question?mark.txt\"", + "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/question?mark.txt", + "key": "object-tests/keys/café/雪.txt", "op": "s3.upload_part", "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" @@ -168534,7 +178987,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/keys/café/雪.txt" } }, { @@ -168630,16 +179083,16 @@ "refusal": null }, { - "id": "operations/s3-express/stage-key-hash", + "id": "operations/s3-express/stage-key-double-slash", "profile": "s3-express", "lane": "core", - "purpose": "stage, with the key \"hash#tag.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/hash#tag.txt", + "key": "object-tests/keys/double//slash.txt", "op": "s3.upload_part", "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" @@ -168735,7 +179188,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/keys/double//slash.txt" } }, { @@ -168831,16 +179284,16 @@ "refusal": null }, { - "id": "operations/s3-express/stage-key-percent", + "id": "operations/s3-express/stage-key-trailing-slash", "profile": "s3-express", "lane": "core", - "purpose": "stage, with the key \"percent%20.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/percent%20.txt", + "key": "object-tests/keys/trailing-slash/", "op": "s3.upload_part", "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" @@ -168936,7 +179389,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/keys/trailing-slash/" } }, { @@ -169032,16 +179485,16 @@ "refusal": null }, { - "id": "operations/s3-express/stage-key-plus", + "id": "operations/s3-express/stage-empty-part", "profile": "s3-express", "lane": "core", - "purpose": "stage, with the key \"plus+plus.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/plus+plus.txt", + "body_base64": "", + "key": "object-tests/multipart/object.bin", "op": "s3.upload_part", "part_number": 1, "upload_id": "fixture-upload+/c60fb1e2e00d=" @@ -169137,7 +179590,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -169145,7 +179598,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { @@ -169233,18 +179686,18 @@ "refusal": null }, { - "id": "operations/s3-express/stage-key-space", + "id": "operations/s3-express/stage-copy", "profile": "s3-express", "lane": "core", - "purpose": "stage, with the key \"space name.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/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", "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ @@ -169257,7 +179710,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -169265,17 +179718,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, @@ -169284,6 +179753,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, @@ -169293,10 +179769,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" } } ], @@ -169307,20 +179784,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": [ { @@ -169338,7 +179856,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -169346,7 +179864,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { @@ -169377,8 +179895,7 @@ "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { - "is": "equal", - "value": "fixture-session-token" + "is": "absent" } }, { @@ -169386,7 +179903,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" } } ], @@ -169397,15 +179930,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" } @@ -169427,25 +179959,29 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9aff617fcdf8\"" + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/s3-express/stage-key-non-ascii", + "id": "operations/s3-express/stage-copy-range-beyond-source", "profile": "s3-express", "lane": "core", - "purpose": "stage, with the key \"café/雪.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/café/雪.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": [ @@ -169458,7 +179994,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -169466,11 +180002,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -169478,116 +180014,58 @@ } }, { - "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/partNumber", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "1" } }, { - "at": "/path", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { - "at": "/body_base64", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" } }, { - "at": "/query/partNumber", + "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { - "is": "equal", - "value": "1" + "is": "absent" } }, { - "at": "/query/uploadId", + "at": "/headers/authorization", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "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/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/x-amz-copy-source-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-9" } } ], @@ -169598,15 +180076,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" } @@ -169628,25 +180105,27 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9aff617fcdf8\"" + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/s3-express/stage-key-double-slash", + "id": "operations/s3-express/stage-copy-200-internal-error", "profile": "s3-express", "lane": "core", - "purpose": "stage, with the key \"double//slash.txt\"", + "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", "call": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/double//slash.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": [ @@ -169659,7 +180138,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -169667,17 +180146,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, @@ -169686,6 +180181,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, @@ -169695,10 +180197,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" } } ], @@ -169709,16 +180212,16 @@ "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" } } ] @@ -169740,7 +180243,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -169748,7 +180251,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { @@ -169779,8 +180282,7 @@ "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { - "is": "equal", - "value": "fixture-session-token" + "is": "absent" } }, { @@ -169788,7 +180290,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" } } ], @@ -169799,58 +180309,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-trailing-slash", - "profile": "s3-express", - "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+/c60fb1e2e00d=" - }, - "exchanges": [ { "alternatives": [ { @@ -169860,7 +180333,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -169868,17 +180341,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, @@ -169887,6 +180376,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, @@ -169896,10 +180392,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" } } ], @@ -169910,19 +180407,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": [ @@ -169941,7 +180439,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/object-tests/multipart/object.bin" } }, { @@ -169949,7 +180447,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { @@ -169980,8 +180478,7 @@ "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { - "is": "equal", - "value": "fixture-session-token" + "is": "absent" } }, { @@ -169989,7 +180486,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" } } ], @@ -170000,58 +180505,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-empty-part", - "profile": "s3-express", - "lane": "core", - "purpose": "Stage an empty part, which S3 takes", - "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=" - }, - "exchanges": [ { "alternatives": [ { @@ -170061,7 +180529,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -170069,17 +180537,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, @@ -170088,6 +180572,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, @@ -170097,10 +180588,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" } } ], @@ -170111,19 +180603,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": [ @@ -170181,8 +180674,7 @@ "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { - "is": "equal", - "value": "fixture-session-token" + "is": "absent" } }, { @@ -170190,7 +180682,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" } } ], @@ -170201,20 +180701,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": [ @@ -170223,15 +180723,15 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9aff617fcdf8\"" + "value": "InternalError" } } ], From 3f8a16c5abb66d0cf5913fea70130c74756608c3 Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 09:29:11 +0200 Subject: [PATCH 03/10] Move bucket and container cases to management.json. management.json holds the 22 bucket and container cases, renamed management//, and four new ones: PutBucketVersioning, GetBucketVersioning with versioning on and never turned on, and an S3 Express directory bucket's CreateBucket. All 26 were verified live. Co-Authored-By: Claude Opus 5.5 (1M context) --- README.md | 3 +- cases/management.json | 2640 +++++++++++++++++++++++++++++++++++++++++ cases/operations.json | 2197 ++-------------------------------- tests/grading.rs | 7 +- 4 files changed, 2752 insertions(+), 2095 deletions(-) create mode 100644 cases/management.json diff --git a/README.md b/README.md index 428155d..d8bd6f1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ 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 | 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 4315c23..9a5b45f 100644 --- a/cases/operations.json +++ b/cases/operations.json @@ -28,8 +28,6 @@ "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/container-properties": "Read the properties of a container", - "operations/azure-hns/container-properties-absent": "Report a missing container when reading its properties", "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", @@ -43,9 +41,6 @@ "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-container": "Create a container", - "operations/azure-hns/create-container-exists": "Refuse to create a container that exists", - "operations/azure-hns/create-container-invalid-name": "Refuse a container name with capitals and an underscore", "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\"", @@ -56,8 +51,6 @@ "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": "Delete a container", - "operations/azure-hns/delete-container-absent": "Report a missing container on delete", "operations/azure-hns/delete-container-missing": "delete container missing", "operations/azure-hns/delete-current-version": "delete current version", "operations/azure-hns/delete-if-match-current": "delete if match current", @@ -166,7 +159,6 @@ "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", - "operations/azure-hns/list-containers": "List the containers whose names start with a prefix", "operations/azure-hns/list-delimited": "list delimited", "operations/azure-hns/list-empty": "list empty", "operations/azure-hns/list-encoded-names": "list encoded names", @@ -304,8 +296,6 @@ "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/container-properties": "Read the properties of a container", - "operations/azure/container-properties-absent": "Report a missing container when reading its properties", "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", @@ -320,9 +310,6 @@ "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-container": "Create a container", - "operations/azure/create-container-exists": "Refuse to create a container that exists", - "operations/azure/create-container-invalid-name": "Refuse a container name with capitals and an underscore", "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\"", @@ -333,8 +320,6 @@ "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": "Delete a container", - "operations/azure/delete-container-absent": "Report a missing container on delete", "operations/azure/delete-container-missing": "delete container missing", "operations/azure/delete-current-version": "delete current version", "operations/azure/delete-if-match-current": "delete if match current", @@ -443,7 +428,6 @@ "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", - "operations/azure/list-containers": "List the containers whose names start with a prefix", "operations/azure/list-delimited": "list delimited", "operations/azure/list-empty": "list empty", "operations/azure/list-encoded-names": "list encoded names", @@ -802,8 +786,6 @@ "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/create-bucket": "Create a bucket in the region of the endpoint", - "operations/s3/create-bucket-owned": "Refuse to create a bucket that the account already owns", "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\"", @@ -813,7 +795,6 @@ "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": "Delete an empty bucket", "operations/s3/delete-bucket-missing": "delete bucket missing", "operations/s3/delete-if-match-current": "delete if match current", "operations/s3/delete-many": "Delete several objects in one request and report each result", @@ -873,8 +854,6 @@ "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": "Confirm that a bucket exists", - "operations/s3/head-bucket-missing": "Report a bucket that does not exist", "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", @@ -893,7 +872,6 @@ "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", - "operations/s3/list-buckets": "List the buckets whose names start with a prefix", "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", @@ -6959,744 +6937,6 @@ ], "refusal": null }, - { - "id": "operations/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": "operations/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": "operations/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": "operations/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": "operations/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": "operations/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": "operations/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": "operations/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": "operations/azure/get-current-version-of-deleted-object", "profile": "azure", @@ -43798,744 +43038,6 @@ ], "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", - "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": "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": "/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/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": "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", - "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-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": "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", - "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": "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": "/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": "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", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, { "id": "operations/azure-hns/get-current-version-of-deleted-object", "profile": "azure-hns", @@ -84094,90 +82596,15 @@ "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": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/delete-accepted-key-double-slash", + "id": "operations/s3/delete-accepted-key-non-ascii", "profile": "s3", "lane": "core", - "purpose": "delete accepted, with the key \"double//slash.txt\"", + "purpose": "delete accepted, with the key \"café/雪.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/double//slash.txt", + "key": "object-tests/keys/café/雪.txt", "op": "delete" }, "exchanges": [ @@ -84198,7 +82625,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -84244,15 +82671,15 @@ "refusal": null }, { - "id": "operations/s3/delete-accepted-key-trailing-slash", + "id": "operations/s3/delete-accepted-key-double-slash", "profile": "s3", "lane": "core", - "purpose": "delete accepted, with the key \"trailing-slash/\"", + "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/trailing-slash/", + "key": "object-tests/keys/double//slash.txt", "op": "delete" }, "exchanges": [ @@ -84273,7 +82700,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -84319,16 +82746,16 @@ "refusal": null }, { - "id": "operations/s3/delete-bucket", + "id": "operations/s3/delete-accepted-key-trailing-slash", "profile": "s3", "lane": "core", - "purpose": "Delete an empty bucket", + "purpose": "delete accepted, with the key \"trailing-slash/\"", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "bucket": "object-tests-deleted", - "op": "s3.delete_bucket" + "key": "object-tests/keys/trailing-slash/", + "op": "delete" }, "exchanges": [ { @@ -84348,7 +82775,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests-deleted" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -84369,10 +82796,12 @@ "headers": { "date": { "from": "now" - } + }, + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -95577,247 +94006,92 @@ "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": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "HEAD" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/fixture/object-tests/classes/object.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" - } - } - ], - "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", - "x-amz-storage-class": "STANDARD_IA" - }, - "body": { - "encoding": "empty" - } - } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/storage_class", - "optional": false, - "rule": { - "is": "equal", - "value": "STANDARD_IA" - } - } - ], - "refusal": null - }, - { - "id": "operations/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": "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", - "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 + "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/fixture/object-tests/classes/object.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + } + ], + "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", + "x-amz-storage-class": "STANDARD_IA" + }, + "body": { + "encoding": "empty" + } + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/storage_class", + "optional": false, + "rule": { + "is": "equal", + "value": "STANDARD_IA" } } ], @@ -99087,101 +97361,6 @@ ], "refusal": null }, - { - "id": "operations/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": "operations/s3/list-service-unavailable", "profile": "s3", @@ -109758,174 +107937,6 @@ ], "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": [ - { - "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": "operations/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": "operations/s3/copy-missing-source", "profile": "s3", diff --git a/tests/grading.rs b/tests/grading.rs index fa288f3..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(); From ef1811e1f27c04582108c1ef32092a78ebb4b780 Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 10:07:31 +0200 Subject: [PATCH 04/10] Grade batches, checksums, error kinds and ranges that no case covered. Two request rules in Rust, blob_batch and body_checksum, grade an Azure Blob Batch part by part and a checksum header against the body. 90 new cases cover batch failures and limits, computed checksums, properties on commits and multipart starts, tag limits and encoding, error kinds and served ranges; 37 cases gain stricter checks. All were verified live. The S3 profiles accept an aws-chunked body with a trailing checksum. Co-Authored-By: Claude Opus 5.5 (1M context) --- cases/operations.json | 100988 +++++++++++++++++++++++++-------------- src/checks.rs | 28 +- src/lib.rs | 1 + src/model.rs | 36 + src/request_rules.rs | 330 + 5 files changed, 65685 insertions(+), 35698 deletions(-) create mode 100644 src/request_rules.rs diff --git a/cases/operations.json b/cases/operations.json index 9a5b45f..fa2f6b2 100644 --- a/cases/operations.json +++ b/cases/operations.json @@ -7,7 +7,8 @@ "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", + "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", @@ -28,6 +29,7 @@ "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", @@ -51,14 +53,21 @@ "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", + "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-missing": "delete missing", + "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, not by position: Azure may answer the parts in any order", + "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, which a multipart reader should accept", + "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-without-content-id": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", + "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", @@ -75,7 +84,7 @@ "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", + "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", @@ -101,8 +110,8 @@ "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", - "operations/azure-hns/get-missing-code-in-body": "get missing, with the error code only in the XML body", + "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", @@ -110,10 +119,12 @@ "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": "get range past the end", + "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", @@ -130,8 +141,10 @@ "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", @@ -144,7 +157,7 @@ "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", + "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", @@ -158,7 +171,7 @@ "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", + "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", @@ -189,9 +202,10 @@ "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", + "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-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-crc64-mismatch": "put crc64 mismatch", "operations/azure-hns/put-created": "put created", "operations/azure-hns/put-created-empty": "put created empty", @@ -275,7 +289,8 @@ "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", + "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", @@ -296,6 +311,8 @@ "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", @@ -320,14 +337,21 @@ "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", + "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-missing": "delete missing", + "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, not by position: Azure may answer the parts in any order", + "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, which a multipart reader should accept", + "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-without-content-id": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", + "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", @@ -344,7 +368,7 @@ "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", + "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", @@ -370,8 +394,8 @@ "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", - "operations/azure/get-missing-code-in-body": "get missing, with the error code only in the XML body", + "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", @@ -379,10 +403,12 @@ "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": "get range past the end", + "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", @@ -392,6 +418,7 @@ "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", @@ -399,8 +426,10 @@ "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", @@ -413,7 +442,7 @@ "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", + "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", @@ -427,7 +456,7 @@ "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", + "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", @@ -458,9 +487,10 @@ "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", + "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-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-crc64-mismatch": "put crc64 mismatch", "operations/azure/put-created": "put created", "operations/azure/put-created-empty": "put created empty", @@ -503,9 +533,19 @@ "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-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-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", @@ -588,6 +628,9 @@ "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", @@ -598,7 +641,9 @@ "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", @@ -618,15 +663,17 @@ "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", + "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": "get range past the end", + "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", @@ -649,11 +696,11 @@ "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": "head missing", + "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", + "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", @@ -677,8 +724,14 @@ "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-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-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\"", @@ -714,7 +767,11 @@ "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", @@ -742,6 +799,7 @@ "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", @@ -795,23 +853,28 @@ "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", + "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", + "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", @@ -831,15 +894,17 @@ "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", + "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": "get range past the end", + "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", @@ -847,6 +912,7 @@ "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", @@ -854,6 +920,7 @@ "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", @@ -866,12 +933,12 @@ "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": "head missing", + "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", + "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", @@ -899,10 +966,16 @@ "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", + "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-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-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\"", @@ -915,6 +988,7 @@ "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", @@ -937,12 +1011,25 @@ "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-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-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", @@ -969,8 +1056,11 @@ "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", - "operations/s3/start-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately." + "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": { @@ -1135,7 +1225,7 @@ "optional": true, "rule": { "is": "matches", - "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD" + "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD|STREAMING-UNSIGNED-PAYLOAD-TRAILER" } }, { @@ -1196,7 +1286,7 @@ "optional": true, "rule": { "is": "matches", - "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD" + "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD|STREAMING-UNSIGNED-PAYLOAD-TRAILER" } }, { @@ -1240,7 +1330,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" ], @@ -1333,6 +1423,14 @@ "is": "equal", "value": "ContainerNotFound" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" + } } ], "refusal": null @@ -3683,16 +3781,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": [ { @@ -3704,7 +3816,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -3712,28 +3824,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", @@ -3752,21 +3909,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": [ { @@ -3778,7 +3962,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -3786,28 +3970,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", @@ -3826,21 +4031,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": [ { @@ -3852,7 +4086,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "PUT" } }, { @@ -3860,28 +4094,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", @@ -3900,20 +4155,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": [ @@ -3934,7 +4205,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/remove/present.txt" } }, { @@ -3979,15 +4250,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": [ @@ -4008,7 +4279,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -4053,15 +4324,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": [ @@ -4082,7 +4353,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -4127,15 +4398,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": [ @@ -4156,7 +4427,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -4201,15 +4472,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": [ @@ -4230,7 +4501,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -4275,15 +4546,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": [ @@ -4304,7 +4575,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -4349,20 +4620,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": [ { @@ -4374,7 +4641,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -4382,39 +4649,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": "" } } ], @@ -4423,16 +4666,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": "" + } } } ] @@ -4446,46 +4689,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": [ @@ -4506,7 +4723,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -4516,30 +4733,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": "" } } } @@ -4552,38 +4761,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": [ @@ -4604,7 +4797,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -4619,17 +4812,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": "" } } } @@ -4642,41 +4835,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": [ { @@ -4688,7 +4867,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -4696,86 +4875,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": [ { @@ -4785,7 +5007,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -4793,87 +5015,137 @@ "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, not by position: Azure may answer the parts in any order", + "sources": [ + "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch" + ], + "origin": "constructed", + "call": { + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" + ], + "op": "delete_many" + }, + "exchanges": [ { "alternatives": [ { @@ -4883,7 +5155,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -4891,86 +5163,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\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\r\n--batchresponse_fixture--" + }, + "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -4979,40 +5238,53 @@ "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, which a multipart reader should accept", "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", "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": [ { @@ -5024,7 +5296,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5032,41 +5304,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\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\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" } } ] @@ -5078,39 +5379,53 @@ "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": "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": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", "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", "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": [ { @@ -5122,7 +5437,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5130,33 +5445,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\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\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" } } ] @@ -5168,40 +5520,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt" + ] } }, { - "at": "/code", + "at": "/value/errors", "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": [ + { + "code": "BlobNotFound", + "key": "object-tests/batch/absent.txt", + "status": 404 + } + ] } } ], "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", "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": [ { @@ -5213,7 +5578,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5221,88 +5586,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": [ { @@ -5312,7 +5663,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5320,71 +5671,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": [ { @@ -5394,7 +5749,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5402,80 +5757,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": [ { @@ -5485,7 +5835,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5493,91 +5843,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": [ { @@ -5587,7 +5921,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5595,185 +5929,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 - } - }, - { - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -5783,7 +6007,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5791,126 +6015,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": [ @@ -5927,7 +6099,7 @@ "optional": false, "rule": { "is": "equal", - "value": 403 + "value": 503 } }, { @@ -5935,24 +6107,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": [ { @@ -5964,7 +6392,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -5972,106 +6400,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" + } + ] } } ], @@ -6080,595 +7466,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" } } ] @@ -6684,113 +7491,7713 @@ } }, { - "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-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==" + } + } } ] } @@ -6809,7 +15216,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-be8efdb79010\"" + "value": "\"fixture-9abbc5e374ca\"" } }, { @@ -6817,7 +15224,7 @@ "optional": false, "rule": { "is": "equal", - "value": 11 + "value": 1 } }, { @@ -6828,12 +15235,20 @@ "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.7848460Z" + "value": "2024-01-01T00:00:00.7035036Z" } }, { @@ -6841,22 +15256,33 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3RzZWNvbmQ=" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "name": "value", + "second": "2" + } } } ], "refusal": null }, { - "id": "operations/azure/get-container-missing", + "id": "operations/azure/get-metadata-ignores-unknown-headers", "profile": "azure", "lane": "core", - "purpose": "get container 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": { - "key": "object.txt", + "key": "object", "op": "get" }, "exchanges": [ @@ -6877,7 +15303,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object" } }, { @@ -6892,17 +15318,28 @@ "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": "ContainerNotFound" + "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": "utf8", - "data": "ContainerNotFoundFixture error" + "encoding": "base64", + "data": "aGVsbG8=" } } } @@ -6915,40 +15352,41 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "aGVsbG8=" } }, { - "at": "/code", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": { + "author": "Ada" + } } } ], "refusal": null }, { - "id": "operations/azure/get-current-version-of-deleted-object", + "id": "operations/azure/get-missing", "profile": "azure", "lane": "core", - "purpose": "get current version of deleted object", + "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/versions-mtydohr2/deleted.txt", - "op": "get", - "version": "2024-01-01T00:00:00.3127057Z" + "key": "object-tests/read/absent.txt", + "op": "get" }, "exchanges": [ { @@ -6968,7 +15406,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt" + "value": "/fixture/object-tests/read/absent.txt" } }, { @@ -6978,36 +15416,22 @@ "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, + "status": 404, "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": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "ZzI=" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -7020,70 +15444,49 @@ "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" + "value": "error" } }, { - "at": "/value/content_md5_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "4cgEiIU9hqudbez+MNiTDw==" + "value": 404 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.3127057Z" + "value": "BlobNotFound" } }, { - "at": "/value/body_base64", + "at": "/kind", "optional": false, "rule": { "is": "equal", - "value": "ZzI=" + "value": "not_found" } } ], "refusal": null }, { - "id": "operations/azure/get-current-version", + "id": "operations/azure/get-missing-code-in-body", "profile": "azure", "lane": "core", - "purpose": "get current version", + "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": { - "key": "object-tests/versions-mtydohr2/object.txt", + "key": "object-tests/read/absent.txt", "op": "get" }, "exchanges": [ @@ -7104,7 +15507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object-tests/read/absent.txt" } }, { @@ -7119,25 +15522,16 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { - "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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=" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -7150,72 +15544,48 @@ "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" + "value": "error" } }, { - "at": "/value/content_md5_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "GyZ2GcSBLMRu4oF0eITKUA==" + "value": 404 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.3326281Z" + "value": "BlobNotFound" } }, { - "at": "/value/body_base64", + "at": "/kind", "optional": false, "rule": { "is": "equal", - "value": "djI=" + "value": "not_found" } } ], "refusal": null }, { - "id": "operations/azure/get-deleted-snapshot", + "id": "operations/azure/get-not-modified", "profile": "azure", "lane": "core", - "purpose": "get deleted snapshot", + "purpose": "get not modified", "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" + "if_none_match": "\"fixture-16c44f0af72d\"", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -7235,7 +15605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -7247,28 +15617,27 @@ } }, { - "at": "/query/snapshot", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.8085866Z" + "value": "\"fixture-16c44f0af72d\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 304, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -7289,7 +15658,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 304 } }, { @@ -7297,22 +15666,23 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/get-deleted-versioned-object", + "id": "operations/azure/get-precondition-failed", "profile": "azure", "lane": "core", - "purpose": "get deleted versioned object", + "purpose": "get precondition failed", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/versions-mtydohr2/deleted.txt", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -7333,7 +15703,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -7343,22 +15713,30 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-088e5dc109cf\"" + } } ], "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": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -7379,7 +15757,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 } }, { @@ -7387,23 +15765,24 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/get-duplicate-id", + "id": "operations/azure/get-previous-version-of-deleted-object", "profile": "azure", "lane": "core", - "purpose": "get duplicate id", + "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/multipart/duplicate.bin", - "op": "get" + "key": "object-tests/versions-mtydohr2/deleted.txt", + "op": "get", + "version": "2024-01-01T00:00:00.0160641Z" }, "exchanges": [ { @@ -7423,7 +15802,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/duplicate.bin" + "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt" } }, { @@ -7433,6 +15812,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/versionid", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.0160641Z" + } } ], "allow_headers": [], @@ -7440,22 +15827,21 @@ "response": { "status": 200, "headers": { + "content-md5": "ASCk+RlqX5659SPzH5FNpw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-3792ba4cfc79\"", + "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-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-version-id": "2024-01-01T00:00:00.0160641Z" }, "body": { "encoding": "base64", - "data": "c2FtZXNhbWU=" + "data": "ZzE=" } } } @@ -7476,7 +15862,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3792ba4cfc79\"" + "value": "\"fixture-3f26f9cf7bbe\"" } }, { @@ -7484,7 +15870,7 @@ "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 2 } }, { @@ -7495,12 +15881,20 @@ "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.6153683Z" + "value": "2024-01-01T00:00:00.0160641Z" } }, { @@ -7508,23 +15902,24 @@ "optional": false, "rule": { "is": "equal", - "value": "c2FtZXNhbWU=" + "value": "ZzE=" } } ], "refusal": null }, { - "id": "operations/azure/get-empty", + "id": "operations/azure/get-previous-version", "profile": "azure", "lane": "core", - "purpose": "get empty", + "purpose": "get previous version", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/write/empty.bin", - "op": "get" + "key": "object-tests/versions-mtydohr2/object.txt", + "op": "get", + "version": "2024-01-01T00:00:00.2318906Z" }, "exchanges": [ { @@ -7544,7 +15939,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture/object-tests/versions-mtydohr2/object.txt" } }, { @@ -7554,6 +15949,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/query/versionid", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.2318906Z" + } } ], "allow_headers": [], @@ -7561,23 +15964,21 @@ "response": { "status": 200, "headers": { - "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ee13937a1c94\"", + "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-lease-state": "available", - "x-ms-lease-status": "unlocked", "x-ms-server-encrypted": "true", - "x-ms-version-id": "2024-01-01T00:00:00.7573734Z" + "x-ms-version-id": "2024-01-01T00:00:00.2318906Z" }, "body": { "encoding": "base64", - "data": "" + "data": "djE=" } } } @@ -7598,7 +15999,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ee13937a1c94\"" + "value": "\"fixture-5769a0807b46\"" } }, { @@ -7606,7 +16007,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 2 } }, { @@ -7622,7 +16023,7 @@ "optional": false, "rule": { "is": "equal", - "value": "1B2M2Y8AsgTpgAmY7PhCfg==" + "value": "ZlTHNMyrj0QP8IJetEPcfw==" } }, { @@ -7630,7 +16031,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7573734Z" + "value": "2024-01-01T00:00:00.2318906Z" } }, { @@ -7638,24 +16039,27 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "djE=" } } ], "refusal": null }, { - "id": "operations/azure/get-if-match-current", + "id": "operations/azure/get-range-inverted", "profile": "azure", "lane": "core", - "purpose": "get if match current", + "purpose": "get range inverted", "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" + "op": "get", + "range": { + "end": 2, + "start": 6 + } }, "exchanges": [ { @@ -7687,11 +16091,71 @@ } }, { - "at": "/headers/if-match", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "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" } } ], @@ -7781,20 +16245,49 @@ } } ], - "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/get-if-none-match-other", + "id": "operations/azure/get-range-empty", "profile": "azure", "lane": "core", - "purpose": "get if none match other", + "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": { - "if_none_match": "\"fixture-088e5dc109cf\"", "key": "object-tests/read/object.txt", - "op": "get" + "op": "get", + "range": { + "end": 5, + "start": 5 + } }, "exchanges": [ { @@ -7826,11 +16319,71 @@ } }, { - "at": "/headers/if-none-match", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "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" } } ], @@ -7920,19 +16473,48 @@ } } ], - "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/get-key-with-hash", + "id": "operations/azure/get-range-not-satisfiable", "profile": "azure", "lane": "core", - "purpose": "get key with hash", + "purpose": "get range not satisfiable", "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" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "start": 40 + } }, "exchanges": [ { @@ -7952,7 +16534,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/hash#tag.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -7962,30 +16544,84 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=40-" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 416, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", - "content-type": "application/octet-stream", + "content-range": "bytes */30", + "content-type": "application/xml", "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" + "x-ms-error-code": "InvalidRange" }, "body": { - "encoding": "base64", - "data": "MQ==" + "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" } } } @@ -7998,71 +16634,43 @@ "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==" + "value": "error" } }, { - "at": "/value/version", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9185620Z" + "value": 416 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "InvalidRange" } } ], "refusal": null }, { - "id": "operations/azure/get-key-with-percent", + "id": "operations/azure/get-range-past-the-end", "profile": "azure", "lane": "core", - "purpose": "get key with percent", + "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/names/percent%20.txt", - "op": "get" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "end": 64, + "start": 28 + } }, "exchanges": [ { @@ -8082,7 +16690,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/percent%20.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -8092,30 +16700,98 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=28-63" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-range": "bytes 28-29/30", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-a88830604904\"", + "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.5807236Z" + "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" }, "body": { "encoding": "base64", - "data": "MQ==" + "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=" } } } @@ -8136,7 +16812,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-a88830604904\"" + "value": "\"fixture-16c44f0af72d\"" } }, { @@ -8144,7 +16820,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -8156,43 +16832,47 @@ } }, { - "at": "/value/content_md5_base64", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "2024-01-01T00:00:00.7556278Z" } }, { - "at": "/value/version", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.5807236Z" + "value": "Y3Q=" } }, { - "at": "/value/body_base64", + "at": "/value/content_range", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "bytes 28-29/30" } } ], "refusal": null }, { - "id": "operations/azure/get-key-with-plus", + "id": "operations/azure/get-range-single-byte", "profile": "azure", "lane": "core", - "purpose": "get key with plus", + "purpose": "get range single byte", "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" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "end": 1, + "start": 0 + } }, "exchanges": [ { @@ -8212,7 +16892,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/names/plus+plus.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -8222,30 +16902,98 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=0-0" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-range": "bytes 0-0/30", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-3d8677cc8a95\"", + "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.8000075Z" + "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" }, "body": { "encoding": "base64", - "data": "MQ==" + "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==" } } } @@ -8266,7 +17014,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3d8677cc8a95\"" + "value": "\"fixture-16c44f0af72d\"" } }, { @@ -8285,20 +17033,12 @@ "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" + "value": "2024-01-01T00:00:00.7556278Z" } }, { @@ -8306,23 +17046,27 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "MA==" } } ], "refusal": null }, { - "id": "operations/azure/get-key-with-space", + "id": "operations/azure/get-range", "profile": "azure", "lane": "core", - "purpose": "get key space", + "purpose": "get range", "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": "a b", - "op": "get" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "end": 6, + "start": 2 + } }, "exchanges": [ { @@ -8342,7 +17086,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a b" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -8352,31 +17096,98 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=2-5" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { + "content-range": "bytes 2-5/30", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "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-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.7556278Z" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "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==" } } } @@ -8385,11 +17196,43 @@ ], "expect": [ { - "at": "/outcome", + "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": "ok" + "value": "application/octet-stream" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.7556278Z" } }, { @@ -8397,23 +17240,26 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "MjM0NQ==" } } ], "refusal": null }, { - "id": "operations/azure/get-key-with-question", + "id": "operations/azure/get-range-open", "profile": "azure", "lane": "core", - "purpose": "get key question", + "purpose": "get range open", "sources": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob" ], "call": { - "key": "a?b", - "op": "get" + "key": "object", + "op": "get", + "range": { + "start": 3 + } }, "exchanges": [ { @@ -8433,7 +17279,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a?b" + "value": "/fixture/object" } }, { @@ -8443,13 +17289,22 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=3-" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { + "content-range": "bytes 3-4/5", "content-type": "application/octet-stream", "date": { "from": "now" @@ -8467,48 +17322,10 @@ }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "bG8=" } } - } - ] - } - ], - "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": [ { @@ -8524,7 +17341,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/café/雪" + "value": "/fixture/object" } }, { @@ -8534,13 +17351,22 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=3-" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { + "content-range": "bytes 3-4/5", "content-type": "application/octet-stream", "date": { "from": "now" @@ -8558,7 +17384,7 @@ }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "bG8=" } } } @@ -8579,22 +17405,22 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "bG8=" } } ], "refusal": null }, { - "id": "operations/azure/get-key-with-separators", + "id": "operations/azure/get-reordered", "profile": "azure", "lane": "core", - "purpose": "get key separators", + "purpose": "get reordered", "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": "a//b/", + "key": "object-tests/multipart/reordered.bin", "op": "get" }, "exchanges": [ @@ -8615,7 +17441,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/a//b/" + "value": "/fixture/object-tests/multipart/reordered.bin" } }, { @@ -8636,20 +17462,18 @@ "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "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-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.2664276Z" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "c2Vjb25kZmlyc3Q=" } } } @@ -8665,27 +17489,59 @@ "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": "aGVsbG8=" + "value": "c2Vjb25kZmlyc3Q=" } } ], "refusal": null }, { - "id": "operations/azure/get-metadata-empty-value", + "id": "operations/azure/get-replacement", "profile": "azure", "lane": "core", - "purpose": "get metadata empty value", + "purpose": "get replacement", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/metadata/empty-value.txt", + "key": "object-tests/multipart/replaced.bin", "op": "get" }, "exchanges": [ @@ -8706,7 +17562,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -8723,24 +17579,22 @@ "response": { "status": 200, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-333d95b64818\"", + "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-meta-empty": "", "x-ms-server-encrypted": "true", - "x-ms-version-id": "2024-01-01T00:00:00.9480929Z" + "x-ms-version-id": "2024-01-01T00:00:00.5387802Z" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "RklSU1Q=" } } } @@ -8761,7 +17615,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-333d95b64818\"" + "value": "\"fixture-2184b3e6c2c3\"" } }, { @@ -8769,7 +17623,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 5 } }, { @@ -8780,20 +17634,12 @@ "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" + "value": "2024-01-01T00:00:00.5387802Z" } }, { @@ -8801,34 +17647,24 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "empty": "" - } + "value": "RklSU1Q=" } } ], "refusal": null }, { - "id": "operations/azure/get-metadata-of-snapshot", + "id": "operations/azure/get-snapshot", "profile": "azure", "lane": "core", - "purpose": "get metadata of snapshot", + "purpose": "get snapshot", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/metadata/snapshotted.txt", + "key": "object-tests/snapshots/object.txt", "op": "get", - "snapshot": "2024-01-01T00:00:00.1300046Z" + "snapshot": "2024-01-01T00:00:00.7351568Z" }, "exchanges": [ { @@ -8848,7 +17684,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/snapshotted.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -8864,7 +17700,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1300046Z" + "value": "2024-01-01T00:00:00.7351568Z" } } ], @@ -8873,21 +17709,20 @@ "response": { "status": 200, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "+XxdKZQb+xsv2rCHSQargg==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-b4e7f3b8fb36\"", + "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-meta-name": "value", "x-ms-server-encrypted": "true" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "b25l" } } } @@ -8908,7 +17743,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b4e7f3b8fb36\"" + "value": "\"fixture-e3698635ab53\"" } }, { @@ -8916,7 +17751,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 3 } }, { @@ -8932,7 +17767,7 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "+XxdKZQb+xsv2rCHSQargg==" } }, { @@ -8951,32 +17786,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "name": "value" - } + "value": "b25l" } } ], "refusal": null }, { - "id": "operations/azure/get-metadata-replaced", + "id": "operations/azure/get-staged-only", "profile": "azure", "lane": "core", - "purpose": "get metadata replaced", + "purpose": "get staged only", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/metadata/replaced.txt", + "key": "object-tests/multipart/staged.bin", "op": "get" }, "exchanges": [ @@ -8997,7 +17822,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -9012,25 +17837,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { - "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "Mg==" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -9043,71 +17860,42 @@ "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==" + "value": "error" } }, { - "at": "/value/version", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7487600Z" + "value": 404 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure/get-metadata", + "id": "operations/azure/get-suffix-longer-than-object", "profile": "azure", "lane": "core", - "purpose": "get metadata", + "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/metadata/object.txt", - "op": "get" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "suffix": 100 + } }, "exchanges": [ { @@ -9127,7 +17915,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -9137,6 +17925,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-100" + } } ], "allow_headers": [], @@ -9144,25 +17940,83 @@ "response": { "status": 200, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-9abbc5e374ca\"", + "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-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-version-id": "2024-01-01T00:00:00.7556278Z" }, "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": "/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" } } } @@ -9183,7 +18037,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9abbc5e374ca\"" + "value": "\"fixture-16c44f0af72d\"" } }, { @@ -9191,7 +18045,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { @@ -9207,7 +18061,7 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -9215,7 +18069,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7035036Z" + "value": "2024-01-01T00:00:00.7556278Z" } }, { @@ -9223,34 +18077,52 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } + } + ], + "refusal": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "refused" } }, { - "at": "/value/metadata", + "at": "/kind", + "optional": false, + "rule": { + "is": "matches", + "pattern": ".+" + } + }, + { + "at": "/parameter", "optional": false, "rule": { "is": "equal", - "value": { - "name": "value", - "second": "2" - } + "value": "range" } } ], - "refusal": null + "decline_permitted": true }, { - "id": "operations/azure/get-metadata-ignores-unknown-headers", + "id": "operations/azure/get-suffix", "profile": "azure", "lane": "core", - "purpose": "Surface user metadata; unknown headers must not become metadata.", + "purpose": "get suffix", "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" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "suffix": 6 + } }, "exchanges": [ { @@ -9270,7 +18142,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -9280,6 +18152,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-6" + } } ], "allow_headers": [], @@ -9287,77 +18167,26 @@ "response": { "status": 200, "headers": { + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "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-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" + "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } - } - ] - } - ], - "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", - "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": [ { @@ -9373,7 +18202,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -9383,22 +18212,38 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-6" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -9411,41 +18256,96 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-16c44f0af72d\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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 + "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-missing-code-in-body", + "id": "operations/azure/get-unauthenticated", "profile": "azure", "lane": "core", - "purpose": "get missing, with the error code only in the XML body", + "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", - "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": { - "key": "object-tests/read/absent.txt", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -9466,7 +18366,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -9481,16 +18381,17 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 401, "headers": { "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "InvalidAuthenticationInfo" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -9511,7 +18412,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 401 } }, { @@ -9519,24 +18420,24 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure/get-not-modified", + "id": "operations/azure/get-unknown-snapshot", "profile": "azure", "lane": "core", - "purpose": "get not modified", + "purpose": "get unknown snapshot", "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" + "key": "object-tests/snapshots/object.txt", + "op": "get", + "snapshot": "2024-01-01T00:00:00.4364169Z" }, "exchanges": [ { @@ -9556,7 +18457,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -9568,27 +18469,28 @@ } }, { - "at": "/headers/if-none-match", + "at": "/query/snapshot", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "value": "2024-01-01T00:00:00.4364169Z" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 304, + "status": 404, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -9609,7 +18511,7 @@ "optional": false, "rule": { "is": "equal", - "value": 304 + "value": 404 } }, { @@ -9617,24 +18519,24 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure/get-precondition-failed", + "id": "operations/azure/get-unknown-version", "profile": "azure", "lane": "core", - "purpose": "get precondition failed", + "purpose": "get unknown version", "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" + "key": "object-tests/versions-mtydohr2/object.txt", + "op": "get", + "version": "2024-01-01T00:00:00.4364169Z" }, "exchanges": [ { @@ -9654,7 +18556,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/versions-mtydohr2/object.txt" } }, { @@ -9666,28 +18568,28 @@ } }, { - "at": "/headers/if-match", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "2024-01-01T00:00:00.4364169Z" } } ], "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" } } } @@ -9708,7 +18610,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 404 } }, { @@ -9716,24 +18618,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure/get-previous-version-of-deleted-object", + "id": "operations/azure/get-whole", "profile": "azure", "lane": "core", - "purpose": "get previous version of deleted object", + "purpose": "get whole", "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" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -9753,7 +18654,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -9763,14 +18664,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/versionid", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.0160641Z" - } } ], "allow_headers": [], @@ -9778,21 +18671,23 @@ "response": { "status": 200, "headers": { - "content-md5": "ASCk+RlqX5659SPzH5FNpw==", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-3f26f9cf7bbe\"", + "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.0160641Z" + "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" }, "body": { "encoding": "base64", - "data": "ZzE=" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -9813,7 +18708,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3f26f9cf7bbe\"" + "value": "\"fixture-16c44f0af72d\"" } }, { @@ -9821,7 +18716,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 30 } }, { @@ -9837,7 +18732,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ASCk+RlqX5659SPzH5FNpw==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -9845,7 +18740,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.0160641Z" + "value": "2024-01-01T00:00:00.7556278Z" } }, { @@ -9853,24 +18748,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ZzE=" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/azure/get-previous-version", + "id": "operations/azure/get-xml-looking", "profile": "azure", "lane": "core", - "purpose": "get previous version", + "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": { - "key": "object-tests/versions-mtydohr2/object.txt", - "op": "get", - "version": "2024-01-01T00:00:00.2318906Z" + "key": "object", + "op": "get" }, "exchanges": [ { @@ -9890,7 +18784,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object" } }, { @@ -9900,14 +18794,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/versionid", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.2318906Z" - } } ], "allow_headers": [], @@ -9915,21 +18801,24 @@ "response": { "status": 200, "headers": { - "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-5769a0807b46\"", + "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-id": "2024-01-01T00:00:00.2318906Z" + "x-ms-version": "2023-11-03" }, "body": { "encoding": "base64", - "data": "djE=" + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } } @@ -9945,72 +18834,29 @@ "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=" + "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } ], "refusal": null }, { - "id": "operations/azure/get-range-inverted", + "id": "operations/azure/get-noise-tolerance", "profile": "azure", "lane": "core", - "purpose": "get range inverted", + "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": { - "key": "object-tests/read/object.txt", - "op": "get", - "range": { - "end": 2, - "start": 6 - } + "key": "object", + "op": "get" }, "exchanges": [ { @@ -10030,7 +18876,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object" } }, { @@ -10040,14 +18886,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=6-1" - } } ], "allow_headers": [], @@ -10055,26 +18893,68 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-16c44f0af72d\"", + "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-id": "2024-01-01T00:00:00.7556278Z" + "x-ms-version": "2023-11-03" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "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": [ { @@ -10100,14 +18980,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=6-1" - } } ], "allow_headers": [], @@ -10132,116 +19004,68 @@ "body": { "encoding": "base64", "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-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": "" + } + } + ], + "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": [ { @@ -10273,25 +19097,40 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=40-" + "value": "bytes=15-" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-16c44f0af72d\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 416, + "status": 206, "headers": { - "content-range": "bytes */30", - "content-type": "application/xml", + "content-range": "bytes 15-29/30", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "InvalidRange" + "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": "utf8", - "data": "InvalidRangeFixture error" + "encoding": "base64", + "data": "Y3QtdGVzdHMtb2JqZWN0" } } }, @@ -10326,29 +19165,45 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=40-" + "value": "bytes=15-" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-16c44f0af72d\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 416, + "status": 206, "headers": { - "content-range": "bytes */30", - "content-type": "application/xml", + "content-range": "bytes 15-29/30", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "InvalidRange" + "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": "utf8", - "data": "InvalidRangeFixture error" + "encoding": "base64", + "data": "Y3QtdGVzdHMtb2JqZWN0" } } } - ] + ], + "optional": true } ], "expect": [ @@ -10356,44 +19211,37 @@ "at": "/outcome", "optional": false, "rule": { - "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 416 + "is": "one_of", + "values": [ + "error", + "ok" + ] } }, { - "at": "/code", - "optional": false, + "at": "/value/body_base64", + "optional": true, "rule": { "is": "equal", - "value": "InvalidRange" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/azure/get-range-past-the-end", + "id": "operations/azure/get-server-busy", "profile": "azure", "lane": "core", - "purpose": "get range past the end", + "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": { "key": "object-tests/read/object.txt", - "op": "get", - "range": { - "end": 64, - "start": 28 - } + "op": "get" }, "exchanges": [ { @@ -10423,41 +19271,29 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=28-63" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "Y3Q=" + "encoding": "utf8", + "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request." } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -10483,113 +19319,28 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=28-63" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "Y3Q=" + "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" - } - }, - { - "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" - } + ], + "optional": true }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "Y3Q=" - } - } - ], - "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": [ { @@ -10617,41 +19368,30 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=0-0" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "MA==" + "encoding": "utf8", + "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request." } } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -10677,113 +19417,28 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=0-0" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "MA==" + "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" - } - }, - { - "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" - } + ], + "optional": true }, - { - "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": [ { @@ -10811,41 +19466,30 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=2-5" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 503, "headers": { - "content-range": "bytes 2-5/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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "MjM0NQ==" + "encoding": "utf8", + "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request." } } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -10871,42 +19515,27 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=2-5" - } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 503, "headers": { - "content-range": "bytes 2-5/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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "MjM0NQ==" + "encoding": "utf8", + "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request." } } } - ] + ], + "optional": true } ], "expect": [ @@ -10915,66 +19544,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": 4 - } - }, - { - "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": 503 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MjM0NQ==" + "value": "ServerBusy" } } ], "refusal": null }, { - "id": "operations/azure/get-range-open", + "id": "operations/azure/get-if-unmodified-since-past", "profile": "azure", "lane": "core", - "purpose": "get range open", + "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", "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 - } + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -10994,7 +19597,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -11006,41 +19609,78 @@ } }, { - "at": "/headers/range", + "at": "/headers/if-unmodified-since", "optional": false, "rule": { "is": "equal", - "value": "bytes=3-" + "value": "Sat, 01 Jan 2000 00:00:00 GMT" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 412, "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-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": "ConditionNotMet" }, "body": { - "encoding": "base64", - "data": "bG8=" + "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": [ { @@ -11056,7 +19696,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -11068,38 +19708,26 @@ } }, { - "at": "/headers/x-ms-range", + "at": "/headers/if-modified-since", "optional": false, "rule": { "is": "equal", - "value": "bytes=3-" + "value": "Fri, 01 Jan 2100 00:00:00 GMT" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 304, "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" + "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "base64", - "data": "bG8=" + "encoding": "empty" } } } @@ -11112,30 +19740,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/body_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "bG8=" + "value": 304 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/get-reordered", + "id": "operations/azure/get-if-modified-since-past", "profile": "azure", "lane": "core", - "purpose": "get reordered", + "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/reordered.bin", + "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -11156,7 +19793,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/reordered.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -11166,6 +19803,14 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-modified-since", + "optional": false, + "rule": { + "is": "equal", + "value": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [], @@ -11173,22 +19818,23 @@ "response": { "status": 200, "headers": { + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-8d8ae06ceb7d\"", + "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.2664276Z" + "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" }, "body": { "encoding": "base64", - "data": "c2Vjb25kZmlyc3Q=" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -11209,7 +19855,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8d8ae06ceb7d\"" + "value": "\"fixture-16c44f0af72d\"" } }, { @@ -11217,7 +19863,7 @@ "optional": false, "rule": { "is": "equal", - "value": 11 + "value": 30 } }, { @@ -11228,12 +19874,20 @@ "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.2664276Z" + "value": "2024-01-01T00:00:00.7556278Z" } }, { @@ -11241,22 +19895,22 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25kZmlyc3Q=" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/azure/get-replacement", + "id": "operations/azure/get-content-encoding-gzip", "profile": "azure", "lane": "core", - "purpose": "get replacement", + "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/replaced.bin", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -11277,7 +19931,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -11294,22 +19948,24 @@ "response": { "status": 200, "headers": { + "content-encoding": "gzip", + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-2184b3e6c2c3\"", + "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.5387802Z" + "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" }, "body": { "encoding": "base64", - "data": "RklSU1Q=" + "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } } } @@ -11330,7 +19986,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-2184b3e6c2c3\"" + "value": "\"fixture-16c44f0af72d\"" } }, { @@ -11338,7 +19994,7 @@ "optional": false, "rule": { "is": "equal", - "value": 5 + "value": 42 } }, { @@ -11349,12 +20005,20 @@ "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.5387802Z" + "value": "2024-01-01T00:00:00.7556278Z" } }, { @@ -11362,24 +20026,31 @@ "optional": false, "rule": { "is": "equal", - "value": "RklSU1Q=" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + } + }, + { + "at": "/value/content_encoding", + "optional": false, + "rule": { + "is": "equal", + "value": "gzip" } } ], "refusal": null }, { - "id": "operations/azure/get-snapshot", + "id": "operations/azure/get-content-properties", "profile": "azure", "lane": "core", - "purpose": "get snapshot", + "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/snapshots/object.txt", - "op": "get", - "snapshot": "2024-01-01T00:00:00.7351568Z" + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -11399,7 +20070,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -11409,14 +20080,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/query/snapshot", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.7351568Z" - } } ], "allow_headers": [], @@ -11424,20 +20087,26 @@ "response": { "status": 200, "headers": { - "content-md5": "+XxdKZQb+xsv2rCHSQargg==", - "content-type": "application/octet-stream", + "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-e3698635ab53\"", + "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-server-encrypted": "true" + "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": "b25l" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -11458,7 +20127,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-e3698635ab53\"" + "value": "\"fixture-16c44f0af72d\"" } }, { @@ -11466,7 +20135,31 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "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" } }, { @@ -11474,49 +20167,46 @@ "optional": false, "rule": { "is": "equal", - "value": "application/octet-stream" + "value": "text/plain; charset=utf-8" } }, { - "at": "/value/content_md5_base64", + "at": "/value/content_language", "optional": false, "rule": { "is": "equal", - "value": "+XxdKZQb+xsv2rCHSQargg==" + "value": "nl-NL" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/content_disposition", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "attachment; filename=\"report.txt\"" } }, { - "at": "/value/body_base64", + "at": "/value/cache_control", "optional": false, "rule": { "is": "equal", - "value": "b25l" + "value": "max-age=3600" } } ], "refusal": null }, { - "id": "operations/azure/get-staged-only", + "id": "operations/azure/get-with-staged-blocks", "profile": "azure", "lane": "core", - "purpose": "get staged only", + "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/staged.bin", + "key": "object-tests/multipart/pending.bin", "op": "get" }, "exchanges": [ @@ -11537,7 +20227,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { @@ -11552,17 +20242,24 @@ "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-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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "Zmlyc3RzZWNvbmQ=" } } } @@ -11575,42 +20272,63 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-9c5ca12bcfc9\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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/get-suffix-longer-than-object", + "id": "operations/azure/head-committed-declaring-md5", "profile": "azure", "lane": "core", - "purpose": "get suffix longer than object", + "purpose": "head committed declaring md5", "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 - } + "key": "object-tests/hashes/committed.bin", + "op": "head" }, "exchanges": [ { @@ -11622,67 +20340,7 @@ "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" + "value": "HEAD" } }, { @@ -11690,7 +20348,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/hashes/committed.bin" } }, { @@ -11700,14 +20358,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-100" - } } ], "allow_headers": [], @@ -11715,23 +20365,24 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-length": "13", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-16c44f0af72d\"", + "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.7556278Z" + "x-ms-version-id": "2024-01-01T00:00:00.2802899Z" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -11752,7 +20403,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "value": "\"fixture-39ee25525bc6\"" } }, { @@ -11760,7 +20411,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 13 } }, { @@ -11776,7 +20427,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { @@ -11784,60 +20435,23 @@ "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.2802899Z" } } ], - "decline_permitted": true + "refusal": null }, { - "id": "operations/azure/get-suffix", + "id": "operations/azure/head-committed", "profile": "azure", "lane": "core", - "purpose": "get suffix", + "purpose": "head committed", "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 - } + "key": "object-tests/multipart/committed.bin", + "op": "head" }, "exchanges": [ { @@ -11849,7 +20463,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -11857,7 +20471,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { @@ -11867,14 +20481,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-6" - } } ], "allow_headers": [], @@ -11882,26 +20488,88 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-length": "11", "content-type": "application/octet-stream", "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-version-id": "2024-01-01T00:00:00.7848460Z" }, "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-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": [ { @@ -11909,7 +20577,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -11917,7 +20585,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -11927,14 +20595,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/x-ms-range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-6" - } } ], "allow_headers": [], @@ -11942,23 +20602,26 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-length": "1", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "content-type": "application/octet-stream", "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-meta-name": "value", + "x-ms-meta-second": "2", "x-ms-server-encrypted": "true", - "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" + "x-ms-version-id": "2024-01-01T00:00:00.7035036Z" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -11979,7 +20642,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "value": "\"fixture-9abbc5e374ca\"" } }, { @@ -11987,7 +20650,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -12003,7 +20666,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -12011,57 +20674,34 @@ "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": ".+" + "value": "2024-01-01T00:00:00.7035036Z" } }, { - "at": "/parameter", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "range" + "value": { + "name": "value", + "second": "2" + } } } ], - "decline_permitted": true + "refusal": null }, { - "id": "operations/azure/get-unauthenticated", + "id": "operations/azure/head-missing", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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/object.txt", - "op": "get" + "key": "object-tests/read/absent.txt", + "op": "head" }, "exchanges": [ { @@ -12073,7 +20713,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12081,7 +20721,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/read/absent.txt" } }, { @@ -12096,17 +20736,16 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 401, + "status": 404, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "utf8", - "data": "InvalidAuthenticationInfoFixture error" + "encoding": "base64", + "data": "" } } } @@ -12127,7 +20766,7 @@ "optional": false, "rule": { "is": "equal", - "value": 401 + "value": 404 } }, { @@ -12135,24 +20774,32 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "BlobNotFound" + } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "not_found" } } ], "refusal": null }, { - "id": "operations/azure/get-unknown-snapshot", + "id": "operations/azure/head-previous-version", "profile": "azure", "lane": "core", - "purpose": "get unknown snapshot", + "purpose": "head previous version", "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" + "key": "object-tests/versions-mtydohr2/object.txt", + "op": "head", + "version": "2024-01-01T00:00:00.2318906Z" }, "exchanges": [ { @@ -12164,7 +20811,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12172,7 +20819,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/versions-mtydohr2/object.txt" } }, { @@ -12184,28 +20831,35 @@ } }, { - "at": "/query/snapshot", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.4364169Z" + "value": "2024-01-01T00:00:00.2318906Z" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", + "content-length": "2", + "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -12218,40 +20872,64 @@ "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/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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/get-unknown-version", + "id": "operations/azure/head-snapshot", "profile": "azure", "lane": "core", - "purpose": "get unknown version", + "purpose": "head snapshot", "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" + "key": "object-tests/snapshots/object.txt", + "op": "head", + "snapshot": "2024-01-01T00:00:00.7351568Z" }, "exchanges": [ { @@ -12263,7 +20941,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12271,7 +20949,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -12283,28 +20961,34 @@ } }, { - "at": "/query/versionid", + "at": "/query/snapshot", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.4364169Z" + "value": "2024-01-01T00:00:00.7351568Z" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", + "content-length": "3", + "content-md5": "+XxdKZQb+xsv2rCHSQargg==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -12317,39 +21001,66 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-e3698635ab53\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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/get-whole", + "id": "operations/azure/head-written-with-crc64", "profile": "azure", "lane": "core", - "purpose": "get whole", + "purpose": "head written with crc64", "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/hashes/crc64.txt", + "op": "head" }, "exchanges": [ { @@ -12361,7 +21072,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12369,7 +21080,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/hashes/crc64.txt" } }, { @@ -12386,23 +21097,24 @@ "response": { "status": 200, "headers": { - "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-length": "13", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-16c44f0af72d\"", + "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.7556278Z" + "x-ms-version-id": "2024-01-01T00:00:00.1153123Z" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -12423,7 +21135,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "value": "\"fixture-90cfcb93036b\"" } }, { @@ -12431,7 +21143,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 13 } }, { @@ -12447,7 +21159,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { @@ -12455,31 +21167,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.1153123Z" } } ], "refusal": null }, { - "id": "operations/azure/get-xml-looking", + "id": "operations/azure/head-written-with-md5", "profile": "azure", "lane": "core", - "purpose": "get xml looking", + "purpose": "head written with md5", "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" + "key": "object-tests/hashes/md5.txt", + "op": "head" }, "exchanges": [ { @@ -12491,7 +21195,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12499,7 +21203,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/hashes/md5.txt" } }, { @@ -12516,24 +21220,24 @@ "response": { "status": 200, "headers": { + "content-length": "13", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "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-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.7803759Z" }, "body": { "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + "data": "" } } } @@ -12550,28 +21254,59 @@ } }, { - "at": "/value/body_base64", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" + "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/get-noise-tolerance", + "id": "operations/azure/head", "profile": "azure", "lane": "core", - "purpose": "get noise tolerance", + "purpose": "head", "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" + "key": "object-tests/read/object.txt", + "op": "head" }, "exchanges": [ { @@ -12583,7 +21318,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12591,7 +21326,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -12608,25 +21343,24 @@ "response": { "status": 200, "headers": { + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"a-different-etag\"", + "etag": "\"fixture-16c44f0af72d\"", "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.7556278Z" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "" } } } @@ -12643,29 +21377,59 @@ } }, { - "at": "/value/body_base64", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "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/get-body-cut-short", + "id": "operations/azure/head-key-question", "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": "head, with the key \"question?mark.txt\"", "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" + "key": "object-tests/keys/question?mark.txt", + "op": "head" }, "exchanges": [ { @@ -12677,7 +21441,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12685,7 +21449,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -12702,6 +21466,7 @@ "response": { "status": 200, "headers": { + "content-length": "30", "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { @@ -12718,13 +21483,78 @@ }, "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-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": [ { @@ -12734,7 +21564,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12742,7 +21572,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -12754,13 +21584,12 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, "headers": { + "content-length": "30", "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { @@ -12777,148 +21606,11 @@ }, "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" + "data": "" } } } - ], - "optional": true + ] } ], "expect": [ @@ -12926,37 +21618,64 @@ "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-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/get-server-busy", + "id": "operations/azure/head-key-percent", "profile": "azure", "lane": "core", - "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries", + "purpose": "head, with the key \"percent%20.txt\"", "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" + "key": "object-tests/keys/percent%20.txt", + "op": "head" }, "exchanges": [ { @@ -12968,7 +21687,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -12976,7 +21695,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -12991,218 +21710,97 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 503, + "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": "ServerBusy" + "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": "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" + } }, { - "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/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-16c44f0af72d\"" + } }, { - "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/size", + "optional": false, + "rule": { + "is": "equal", + "value": 30 + } }, { - "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/content_type", + "optional": false, + "rule": { + "is": "equal", + "value": "application/octet-stream" + } }, { - "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/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": [ { @@ -13212,7 +21810,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -13220,7 +21818,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -13235,64 +21833,95 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 503, + "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": "ServerBusy" + "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": "utf8", - "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request." + "encoding": "base64", + "data": "" } } } - ], - "optional": true + ] } ], "expect": [ { - "at": "/outcome", + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "\"fixture-16c44f0af72d\"" } }, { - "at": "/status", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": 503 + "value": 30 } }, { - "at": "/code", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "ServerBusy" + "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/get-if-unmodified-since-past", + "id": "operations/azure/head-key-space", "profile": "azure", "lane": "core", - "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", + "purpose": "head, with the key \"space name.txt\"", "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" + "key": "object-tests/keys/space name.txt", + "op": "head" }, "exchanges": [ { @@ -13304,7 +21933,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -13312,7 +21941,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -13322,30 +21951,31 @@ "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, + "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-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": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -13358,40 +21988,63 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-16c44f0af72d\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "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/get-if-modified-since-future", + "id": "operations/azure/head-key-non-ascii", "profile": "azure", "lane": "core", - "purpose": "Report 304 when If-Modified-Since names a future date, which Azure does not ignore", + "purpose": "head, with the key \"café/雪.txt\"", "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" + "key": "object-tests/keys/café/雪.txt", + "op": "head" }, "exchanges": [ { @@ -13403,7 +22056,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -13411,7 +22064,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -13421,28 +22074,31 @@ "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, + "status": 200, "headers": { + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "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": "empty" + "encoding": "base64", + "data": "" } } } @@ -13455,40 +22111,63 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 304 + "value": "\"fixture-16c44f0af72d\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "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/get-if-modified-since-past", + "id": "operations/azure/head-key-double-slash", "profile": "azure", "lane": "core", - "purpose": "Read an object modified since a past date", + "purpose": "head, with the key \"double//slash.txt\"", "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" + "key": "object-tests/keys/double//slash.txt", + "op": "head" }, "exchanges": [ { @@ -13500,7 +22179,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -13508,7 +22187,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -13518,14 +22197,6 @@ "is": "equal", "value": "" } - }, - { - "at": "/headers/if-modified-since", - "optional": false, - "rule": { - "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" - } } ], "allow_headers": [], @@ -13533,6 +22204,7 @@ "response": { "status": 200, "headers": { + "content-length": "30", "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { @@ -13549,7 +22221,7 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -13604,29 +22276,21 @@ "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", + "id": "operations/azure/head-key-trailing-slash", "profile": "azure", "lane": "core", - "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them", + "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/read/object.txt", - "op": "get" + "key": "object-tests/keys/trailing-slash/", + "op": "head" }, "exchanges": [ { @@ -13638,7 +22302,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -13646,7 +22310,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -13663,8 +22327,8 @@ "response": { "status": 200, "headers": { - "content-encoding": "gzip", - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" @@ -13680,7 +22344,7 @@ }, "body": { "encoding": "base64", - "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "data": "" } } } @@ -13709,7 +22373,7 @@ "optional": false, "rule": { "is": "equal", - "value": 42 + "value": 30 } }, { @@ -13725,7 +22389,7 @@ "optional": false, "rule": { "is": "equal", - "value": "CVsDGvNMZH4SPA4MSLswrA==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -13735,37 +22399,21 @@ "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", + "id": "operations/azure/head-content-properties", "profile": "azure", "lane": "core", - "purpose": "Return the stored content properties from a GET", + "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": "get" + "op": "head" }, "exchanges": [ { @@ -13777,7 +22425,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -13805,6 +22453,7 @@ "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": { @@ -13821,7 +22470,7 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -13869,14 +22518,6 @@ "value": "2024-01-01T00:00:00.7556278Z" } }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" - } - }, { "at": "/value/content_type", "optional": false, @@ -13913,16 +22554,17 @@ "refusal": null }, { - "id": "operations/azure/get-with-staged-blocks", + "id": "operations/azure/head-if-unmodified-since-past", "profile": "azure", "lane": "core", - "purpose": "get with staged blocks", + "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": { - "key": "object-tests/multipart/pending.bin", - "op": "get" + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "head" }, "exchanges": [ { @@ -13934,7 +22576,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -13942,7 +22584,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -13952,29 +22594,28 @@ "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": 200, + "status": 412, "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-error-code": "ConditionNotMet" }, "body": { - "encoding": "base64", - "data": "Zmlyc3RzZWNvbmQ=" + "encoding": "empty" } } } @@ -13987,62 +22628,38 @@ "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" + "value": "error" } }, { - "at": "/value/version", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6314295Z" + "value": 412 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3RzZWNvbmQ=" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/head-committed-declaring-md5", + "id": "operations/azure/head-copy-status", "profile": "azure", "lane": "core", - "purpose": "head committed declaring md5", + "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": { - "key": "object-tests/hashes/committed.bin", + "key": "object-tests/copy/target.txt", "op": "head" }, "exchanges": [ @@ -14063,7 +22680,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/committed.bin" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -14080,24 +22697,26 @@ "response": { "status": 200, "headers": { - "content-length": "13", - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-length": "5", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-39ee25525bc6\"", + "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", - "x-ms-version-id": "2024-01-01T00:00:00.2802899Z" + "x-ms-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -14114,58 +22733,34 @@ } }, { - "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", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "success" } }, { - "at": "/value/version", + "at": "/value/copy_id", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2802899Z" + "value": "fixture-copy-id" } } ], "refusal": null }, { - "id": "operations/azure/head-committed", + "id": "operations/azure/head-access-tier", "profile": "azure", "lane": "core", - "purpose": "head committed", + "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/multipart/committed.bin", + "key": "object-tests/read/object.txt", "op": "head" }, "exchanges": [ @@ -14186,7 +22781,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -14203,19 +22798,21 @@ "response": { "status": 200, "headers": { - "content-length": "11", + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-be8efdb79010\"", + "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.7848460Z" + "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" }, "body": { "encoding": "base64", @@ -14236,51 +22833,27 @@ } }, { - "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", + "at": "/value/access_tier", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7848460Z" + "value": "Cool" } } ], "refusal": null }, { - "id": "operations/azure/head-metadata", + "id": "operations/azure/list-after-delete-with-versions", "profile": "azure", "lane": "core", - "purpose": "head metadata", + "purpose": "list after delete with versions", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/metadata/object.txt", - "op": "head" + "op": "list_page", + "prefix": "object-tests/versions-mtydohr2/deleted.txt" }, "exchanges": [ { @@ -14292,7 +22865,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -14300,7 +22873,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture" } }, { @@ -14310,6 +22883,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/versions-mtydohr2/deleted.txt" + } } ], "allow_headers": [], @@ -14317,27 +22914,18 @@ "response": { "status": 200, "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" + "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "object-tests/versions-mtydohr2/deleted.txt" + }, + "framing": "chunked" } } ] @@ -14353,70 +22941,44 @@ } }, { - "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", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "is": "array_length", + "value": 0 } }, { - "at": "/value/version", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.7035036Z" + "is": "array_length", + "value": 0 } }, { - "at": "/value/metadata", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": { - "name": "value", - "second": "2" - } + "value": "" } } ], "refusal": null }, { - "id": "operations/azure/head-missing", + "id": "operations/azure/list-bad-marker", "profile": "azure", "lane": "core", - "purpose": "head missing", + "purpose": "list bad marker", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/read/absent.txt", - "op": "head" + "continuation_token": "fixture-marker+/1d52c72a655f=", + "op": "list_page", + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -14428,7 +22990,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -14436,7 +22998,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture" } }, { @@ -14446,21 +23008,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/marker", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/1d52c72a655f=" + } } ], "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": "InvalidQueryParameterValue" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidQueryParameterValueFixture error" } } } @@ -14481,7 +23076,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -14489,24 +23084,27 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure/head-previous-version", + "id": "operations/azure/list-bad-marker-code-in-body", "profile": "azure", "lane": "core", - "purpose": "head previous version", + "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": { - "key": "object-tests/versions-mtydohr2/object.txt", - "op": "head", - "version": "2024-01-01T00:00:00.2318906Z" + "continuation_token": "fixture-marker+/1d52c72a655f=", + "op": "list_page", + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -14518,7 +23116,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -14526,7 +23124,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture" } }, { @@ -14538,35 +23136,51 @@ } }, { - "at": "/query/versionid", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2318906Z" + "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": 200, + "status": 400, "headers": { - "content-length": "2", - "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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": "" + "encoding": "utf8", + "data": "InvalidQueryParameterValueFixture error" } } } @@ -14579,64 +23193,39 @@ "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" + "value": "error" } }, { - "at": "/value/content_md5_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "ZlTHNMyrj0QP8IJetEPcfw==" + "value": 400 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2318906Z" + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure/head-snapshot", + "id": "operations/azure/list-container-missing", "profile": "azure", "lane": "core", - "purpose": "head snapshot", + "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/snapshots/object.txt", - "op": "head", - "snapshot": "2024-01-01T00:00:00.7351568Z" + "op": "list_page", + "prefix": "" }, "exchanges": [ { @@ -14648,7 +23237,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -14656,7 +23245,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture" } }, { @@ -14668,34 +23257,44 @@ } }, { - "at": "/query/snapshot", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7351568Z" + "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, + "status": 404, "headers": { - "content-length": "3", - "content-md5": "+XxdKZQb+xsv2rCHSQargg==", - "content-type": "application/octet-stream", + "content-type": "application/xml", "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-error-code": "ContainerNotFound" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ContainerNotFoundFixture error" } } } @@ -14708,66 +23307,48 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-e3698635ab53\"" + "value": "error" } }, { - "at": "/value/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 404 } }, { - "at": "/value/content_type", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "application/octet-stream" + "value": "ContainerNotFound" } }, { - "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, - "" - ] + "value": "container_not_found" } } ], "refusal": null }, { - "id": "operations/azure/head-written-with-crc64", + "id": "operations/azure/list-delimited", "profile": "azure", "lane": "core", - "purpose": "head written with crc64", + "purpose": "list delimited", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/hashes/crc64.txt", - "op": "head" + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -14779,7 +23360,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -14787,7 +23368,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64.txt" + "value": "/fixture" } }, { @@ -14797,6 +23378,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/board/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" + } } ], "allow_headers": [], @@ -14804,25 +23417,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-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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" } } ] @@ -14838,59 +23444,170 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-90cfcb93036b\"" + "value": "object-tests/board/a.txt" } }, { - "at": "/value/size", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 8 } }, { - "at": "/value/content_type", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "application/octet-stream" + "value": "fixture-704c5ddfc8cb" } }, { - "at": "/value/content_md5_base64", + "at": "/value/entries/0/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/0/version", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "2024-01-01T00:00:00.9908400Z" } }, { - "at": "/value/version", + "at": "/value/entries/0/is_current_version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1153123Z" + "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/head-written-with-md5", + "id": "operations/azure/list-other-delimiter", "profile": "azure", "lane": "core", - "purpose": "head written with md5", + "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": { - "key": "object-tests/hashes/md5.txt", - "op": "head" + "delimiter": "-", + "op": "list_page", + "prefix": "object-tests/dashes/" }, "exchanges": [ { @@ -14902,7 +23619,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -14910,7 +23627,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5.txt" + "value": "/fixture" } }, { @@ -14920,6 +23637,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/dashes/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "-" + } } ], "allow_headers": [], @@ -14927,25 +23676,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-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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" } } ] @@ -14961,59 +23703,83 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-494ad7275bf7\"" + "value": "object-tests/dashes/b.txt" } }, { - "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-704c5ddfc8cb" } }, { - "at": "/value/content_md5_base64", + "at": "/value/entries/0/version", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "2024-01-01T00:00:00.9908400Z" } }, { - "at": "/value/version", + "at": "/value/entries", + "optional": false, + "rule": { + "is": "array_length", + "value": 1 + } + }, + { + "at": "/value/prefixes/0", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7803759Z" + "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/head", + "id": "operations/azure/list-empty", "profile": "azure", "lane": "core", - "purpose": "head", + "purpose": "list empty", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/read/object.txt", - "op": "head" + "op": "list_page", + "prefix": "object-tests/nothing/" }, "exchanges": [ { @@ -15025,7 +23791,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -15033,7 +23799,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture" } }, { @@ -15043,6 +23809,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/nothing/" + } } ], "allow_headers": [], @@ -15050,25 +23840,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-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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "object-tests/nothing/" + }, + "framing": "chunked" } } ] @@ -15084,59 +23867,43 @@ } }, { - "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", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "application/octet-stream" + "is": "array_length", + "value": 0 } }, { - "at": "/value/content_md5_base64", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "is": "array_length", + "value": 0 } }, { - "at": "/value/version", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7556278Z" + "value": "" } } ], "refusal": null }, { - "id": "operations/azure/head-key-question", + "id": "operations/azure/list-all-empty", "profile": "azure", "lane": "core", - "purpose": "head, with the key \"question?mark.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/question?mark.txt", - "op": "head" + "op": "list", + "prefix": "" }, "exchanges": [ { @@ -15148,7 +23915,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -15156,7 +23923,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture" } }, { @@ -15166,6 +23933,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": true, + "rule": { + "is": "equal", + "value": "" + } } ], "allow_headers": [], @@ -15173,25 +23964,26 @@ "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-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-request-id": "fixture-request-id", + "x-ms-request-server-encrypted": "true", "x-ms-server-encrypted": "true", - "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" + "x-ms-version": "2023-11-03" }, "body": { "encoding": "base64", - "data": "" - } + "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+" + }, + "framing": "chunked" } } ] @@ -15207,59 +23999,27 @@ } }, { - "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", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7556278Z" + "value": [] } } ], "refusal": null }, { - "id": "operations/azure/head-key-hash", + "id": "operations/azure/list-encoded-names", "profile": "azure", "lane": "core", - "purpose": "head, with the key \"hash#tag.txt\"", + "purpose": "list encoded names", "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" + "op": "list_page", + "prefix": "object-tests/names/" }, "exchanges": [ { @@ -15271,7 +24031,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -15279,7 +24039,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture" } }, { @@ -15289,6 +24049,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/names/" + } } ], "allow_headers": [], @@ -15296,25 +24080,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-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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" } } ] @@ -15330,59 +24107,515 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "value": "object-tests/names/100%-￾-name.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-b0016e7eea41" } }, { - "at": "/value/content_md5_base64", + "at": "/value/entries/0/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/0/version", "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "2024-01-01T00:00:00.6773769Z" } }, { - "at": "/value/version", + "at": "/value/entries/0/is_current_version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7556278Z" + "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/head-key-percent", + "id": "operations/azure/list-xml-escaped", "profile": "azure", "lane": "core", - "purpose": "head, with the key \"percent%20.txt\"", + "purpose": "list xml escaped", "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/percent%20.txt", - "op": "head" + "op": "list", + "prefix": "" }, "exchanges": [ { @@ -15394,7 +24627,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -15402,7 +24635,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture" } }, { @@ -15412,6 +24645,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": true, + "rule": { + "is": "equal", + "value": "" + } } ], "allow_headers": [], @@ -15419,25 +24676,26 @@ "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-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-request-id": "fixture-request-id", + "x-ms-request-server-encrypted": "true", "x-ms-server-encrypted": "true", - "x-ms-version-id": "2024-01-01T00:00:00.7556278Z" + "x-ms-version": "2023-11-03" }, "body": { "encoding": "base64", - "data": "" - } + "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YSZhbXA7YjwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+YyZsdDtkPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4=" + }, + "framing": "chunked" } } ] @@ -15453,59 +24711,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", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7556278Z" + "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" } } ] @@ -15576,59 +24831,162 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "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-704c5ddfc8cb" } }, { - "at": "/value/content_md5_base64", + "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": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "is": "array_length", + "value": 0 } }, { - "at": "/value/version", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7556278Z" + "value": "fixture-marker+/c42f89fa82e8=" } } ], "refusal": null }, { - "id": "operations/azure/head-key-space", + "id": "operations/azure/list-page-size-one", "profile": "azure", "lane": "core", - "purpose": "head, with the key \"space name.txt\"", + "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": { - "key": "object-tests/keys/space name.txt", - "op": "head" + "op": "list_page", + "page_size": 1, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -15640,7 +24998,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -15648,7 +25006,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture" } }, { @@ -15658,6 +25016,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/board/" + } + }, + { + "at": "/query/maxresults", + "optional": false, + "rule": { + "is": "equal", + "value": "1" + } } ], "allow_headers": [], @@ -15665,25 +25055,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-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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "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" } } ] @@ -15699,59 +25082,105 @@ } }, { - "at": "/value/etag", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16c44f0af72d\"" + "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-704c5ddfc8cb" } }, { - "at": "/value/content_md5_base64", + "at": "/value/entries/0/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/0/version", "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" + "value": "2024-01-01T00:00:00.9908400Z" } }, { - "at": "/value/version", + "at": "/value/entries/0/is_current_version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7556278Z" + "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/head-key-non-ascii", + "id": "operations/azure/list-operation-timed-out", "profile": "azure", "lane": "core", - "purpose": "head, with the key \"café/雪.txt\"", + "purpose": "Report a 500 OperationTimedOut 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/keys/café/雪.txt", - "op": "head" + "op": "list_page", + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -15763,7 +25192,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -15771,7 +25200,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture" } }, { @@ -15781,102 +25210,59 @@ "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": 200, + "status": 500, "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": "OperationTimedOut" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "OperationTimedOutThe operation could not be completed within the permitted time." } } } ] - } - ], - "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": [ { @@ -15886,7 +25272,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -15894,7 +25280,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture" } }, { @@ -15904,102 +25290,60 @@ "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": 200, + "status": 500, "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": "OperationTimedOut" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "OperationTimedOutThe operation could not be completed within the permitted time." } } } - ] - } - ], - "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==" - } + ], + "optional": true }, - { - "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": [ { @@ -16009,7 +25353,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -16017,7 +25361,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture" } }, { @@ -16027,102 +25371,60 @@ "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": 200, + "status": 500, "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": "OperationTimedOut" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "OperationTimedOutThe operation could not be completed within the permitted time." } } } - ] - } - ], - "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==" - } + ], + "optional": true }, - { - "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": [ { @@ -16132,7 +25434,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -16140,7 +25442,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture" } }, { @@ -16150,130 +25452,60 @@ "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": 200, + "status": 500, "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\"", - "last-modified": "Mon, 01 Jan 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": "OperationTimedOut" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "OperationTimedOutThe operation could not be completed within the permitted time." } } } - ] - } - ], - "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\"" - } + ], + "optional": true }, - { - "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": [ { @@ -16283,7 +25515,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -16291,7 +25523,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture" } }, { @@ -16303,73 +25535,58 @@ } }, { - "at": "/headers/if-unmodified-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/" + } + }, + { + "at": "/query/maxresults", + "optional": false, + "rule": { + "is": "equal", + "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": "empty" + "encoding": "utf8", + "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/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": [ { @@ -16379,7 +25596,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -16387,7 +25604,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture" } }, { @@ -16397,37 +25614,59 @@ "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": 200, + "status": 500, "headers": { - "content-length": "5", - "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-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" + "x-ms-error-code": "OperationTimedOut" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "OperationTimedOutThe operation could not be completed within the permitted time." } } } - ] + ], + "optional": true } ], "expect": [ @@ -16436,39 +25675,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/copy_status", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "success" + "value": 500 } }, { - "at": "/value/copy_id", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "fixture-copy-id" + "value": "OperationTimedOut" } } ], "refusal": null }, { - "id": "operations/azure/list-after-delete-with-versions", + "id": "operations/azure/list-key-equal-to-prefix-delimited", "profile": "azure", "lane": "core", - "purpose": "list after delete with versions", + "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/versions-mtydohr2/deleted.txt" + "prefix": "object-tests/exact" }, "exchanges": [ { @@ -16520,7 +25760,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/versions-mtydohr2/deleted.txt" + "value": "object-tests/exact" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" } } ], @@ -16538,7 +25786,7 @@ }, "body": { "encoding": "utf8", - "data": "object-tests/versions-mtydohr2/deleted.txt" + "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" } @@ -16555,12 +25803,79 @@ "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": 0 + "value": 1 + } + }, + { + "at": "/value/prefixes/0", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/exact/" } }, { @@ -16568,7 +25883,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 1 } }, { @@ -16583,17 +25898,16 @@ "refusal": null }, { - "id": "operations/azure/list-bad-marker", + "id": "operations/azure/list-key-equal-to-prefix", "profile": "azure", "lane": "core", - "purpose": "list bad marker", + "purpose": "list key equal to prefix", "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/" + "prefix": "object-tests/exact" }, "exchanges": [ { @@ -16645,33 +25959,27 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/marker", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/1d52c72a655f=" + "value": "object-tests/exact" } } ], "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/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" } } ] @@ -16679,47 +25987,169 @@ ], "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-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": "error" + "value": "fixture-bc7e3365fd2c" } }, { - "at": "/status", + "at": "/value/entries/1/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/1/version", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "2024-01-01T00:00:00.1462797Z" } }, { - "at": "/code", + "at": "/value/entries/1/is_current_version", "optional": false, "rule": { "is": "equal", - "value": "InvalidQueryParameterValue" + "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-bad-marker-code-in-body", + "id": "operations/azure/list-many-segments", "profile": "azure", "lane": "core", - "purpose": "list bad marker, with the error code only in the XML body", + "purpose": "list many segments", "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/" + "prefix": "object-tests/s/" }, "exchanges": [ { @@ -16771,32 +26201,27 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/marker", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/1d52c72a655f=" + "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/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" } } ] @@ -16808,39 +26233,107 @@ "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/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/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/0/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidQueryParameterValue" + "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-container-missing", + "id": "operations/azure/list-max-keys-zero", "profile": "azure", "lane": "core", - "purpose": "list container missing", + "purpose": "list max keys zero", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { "op": "list_page", - "prefix": "" + "page_size": 0, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -16889,27 +26382,35 @@ }, { "at": "/query/prefix", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "" + "value": "object-tests/board/" + } + }, + { + "at": "/query/maxresults", + "optional": false, + "rule": { + "is": "equal", + "value": "0" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "x-ms-error-code": "OutOfRangeQueryParameterValue" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "OutOfRangeQueryParameterValueFixture error" } } } @@ -16930,7 +26431,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -16938,24 +26439,67 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "OutOfRangeQueryParameterValue" } } ], - "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": "page_size" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "OutOfRangeQueryParameterValue" + } + } + ] }, { - "id": "operations/azure/list-delimited", + "id": "operations/azure/list-metadata", "profile": "azure", "lane": "core", - "purpose": "list delimited", + "purpose": "list metadata", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "delimiter": "/", + "include": [ + "metadata" + ], "op": "list_page", - "prefix": "object-tests/board/" + "prefix": "object-tests/metadata-listed/" }, "exchanges": [ { @@ -17007,15 +26551,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/metadata-listed/" } }, { - "at": "/query/delimiter", + "at": "/query/include", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "metadata" } } ], @@ -17033,7 +26577,7 @@ }, "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": "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" } @@ -17055,7 +26599,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "object-tests/metadata-listed/plain.txt" } }, { @@ -17063,7 +26607,7 @@ "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 1 } }, { @@ -17071,7 +26615,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-704c5ddfc8cb" + "value": "fixture-9a0b44f4b9e9" } }, { @@ -17090,7 +26634,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9908400Z" + "value": "2024-01-01T00:00:00.4469276Z" } }, { @@ -17106,7 +26650,7 @@ "optional": false, "rule": { "is": "equal", - "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -17114,7 +26658,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "object-tests/metadata-listed/shadowed.txt" } }, { @@ -17122,7 +26666,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -17130,7 +26674,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-b905747bf74f" + "value": "fixture-cd8bb50852bd" } }, { @@ -17149,7 +26693,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.3834597Z" + "value": "2024-01-01T00:00:00.9968398Z" } }, { @@ -17165,7 +26709,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Je0by0I7C3IA9IX8X/ccjg==" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { @@ -17177,44 +26721,58 @@ } }, { - "at": "/value/prefixes/0", + "at": "/value/prefixes", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/" + "value": "" } }, { - "at": "/value/prefixes", + "at": "/value/entries/0/metadata", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": { + "label": "c" + } } }, { - "at": "/value/continuation_token", + "at": "/value/entries/1/metadata", "optional": false, "rule": { "is": "equal", - "value": "" + "value": { + "Metadata": "x", + "label": "b" + } } } ], "refusal": null }, { - "id": "operations/azure/list-other-delimiter", + "id": "operations/azure/list-next-page", "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": "list next page", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "delimiter": "-", + "continuation_token": "fixture-marker+/c42f89fa82e8=", "op": "list_page", - "prefix": "object-tests/dashes/" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -17266,15 +26824,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/maxresults", "optional": false, "rule": { "is": "equal", - "value": "-" + "value": "2" + } + }, + { + "at": "/query/marker", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/c42f89fa82e8=" } } ], @@ -17292,7 +26858,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": "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" } @@ -17314,7 +26880,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/b.txt" + "value": "object-tests/board/z.txt" } }, { @@ -17322,7 +26888,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -17330,7 +26896,18 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-704c5ddfc8cb" + "value": "fixture-b905747bf74f" + } + }, + { + "at": "/value/entries/0/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } }, { @@ -17338,33 +26915,41 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9908400Z" + "value": "2024-01-01T00:00:00.3834597Z" } }, { - "at": "/value/entries", + "at": "/value/entries/0/is_current_version", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": true } }, { - "at": "/value/prefixes/0", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/a-" + "value": "Je0by0I7C3IA9IX8X/ccjg==" } }, { - "at": "/value/prefixes", + "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, @@ -17377,16 +26962,17 @@ "refusal": null }, { - "id": "operations/azure/list-empty", + "id": "operations/azure/list-pagination", "profile": "azure", "lane": "core", - "purpose": "list empty", + "purpose": "list pagination", "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": { - "op": "list_page", - "prefix": "object-tests/nothing/" + "op": "list", + "page_size": 1, + "prefix": "" }, "exchanges": [ { @@ -17435,10 +27021,116 @@ }, { "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": "object-tests/nothing/" + "value": "1" } } ], @@ -17451,12 +27143,20 @@ "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": "utf8", - "data": "object-tests/nothing/" + "encoding": "base64", + "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+c2Vjb25kPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4=" }, "framing": "chunked" } @@ -17474,43 +27174,31 @@ } }, { - "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", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "" + "value": [ + "first", + "second" + ] } } ], "refusal": null }, { - "id": "operations/azure/list-all-empty", + "id": "operations/azure/list-order-delimited", "profile": "azure", "lane": "core", - "purpose": "list empty", + "purpose": "list order delimited", "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": "" + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -17559,10 +27247,18 @@ }, { "at": "/query/prefix", - "optional": true, + "optional": false, "rule": { "is": "equal", - "value": "" + "value": "object-tests/order/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" } } ], @@ -17575,20 +27271,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/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" } @@ -17606,27 +27294,464 @@ } }, { - "at": "/value/keys", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": [] + "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-encoded-names", + "id": "operations/azure/list-order", "profile": "azure", "lane": "core", - "purpose": "list encoded names", + "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/names/" + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -17678,7 +27803,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/" + "value": "object-tests/order/" } } ], @@ -17696,7 +27821,7 @@ }, "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" + "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" } @@ -17718,7 +27843,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/100%-￾-name.txt" + "value": "object-tests/order/A" } }, { @@ -17734,7 +27859,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-b0016e7eea41" + "value": "fixture-b1567b296bf4" } }, { @@ -17753,7 +27878,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6773769Z" + "value": "2024-01-01T00:00:00.6802950Z" } }, { @@ -17777,7 +27902,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/a&b.txt" + "value": "object-tests/order/a" } }, { @@ -17793,7 +27918,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-e0cf2e36cfe6" + "value": "fixture-522bf336fec0" } }, { @@ -17812,7 +27937,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9293679Z" + "value": "2024-01-01T00:00:00.6196984Z" } }, { @@ -17836,7 +27961,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/back/slash.txt" + "value": "object-tests/order/a-b" } }, { @@ -17852,7 +27977,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-fb1ea388bc8f" + "value": "fixture-ffd1d6ff8b0f" } }, { @@ -17871,7 +27996,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.8649025Z" + "value": "2024-01-01T00:00:00.7288701Z" } }, { @@ -17895,7 +28020,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/café.txt" + "value": "object-tests/order/a.txt" } }, { @@ -17911,7 +28036,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-4dfcbd136b00" + "value": "fixture-1b029c6aa2e9" } }, { @@ -17930,7 +28055,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.0714249Z" + "value": "2024-01-01T00:00:00.2739144Z" } }, { @@ -17954,7 +28079,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/hash#tag.txt" + "value": "object-tests/order/a/b" } }, { @@ -17970,7 +28095,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-a7996d03132f" + "value": "fixture-8a57ec6c4492" } }, { @@ -17989,7 +28114,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9185620Z" + "value": "2024-01-01T00:00:00.2584945Z" } }, { @@ -18013,7 +28138,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/percent%20.txt" + "value": "object-tests/order/a0" } }, { @@ -18029,7 +28154,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-5e82da751e9c" + "value": "fixture-238f35f044af" } }, { @@ -18048,7 +28173,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.5807236Z" + "value": "2024-01-01T00:00:00.7594151Z" } }, { @@ -18072,7 +28197,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/plus+plus.txt" + "value": "object-tests/order/b" } }, { @@ -18088,7 +28213,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-7dc03e94613e" + "value": "fixture-91f7dfa02cf5" } }, { @@ -18107,7 +28232,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.8000075Z" + "value": "2024-01-01T00:00:00.4152572Z" } }, { @@ -18131,7 +28256,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/q?mark.txt" + "value": "object-tests/order/é" } }, { @@ -18147,7 +28272,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-91f727e79436" + "value": "fixture-e8b6d1d5f3fb" } }, { @@ -18166,7 +28291,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.3314072Z" + "value": "2024-01-01T00:00:00.1938992Z" } }, { @@ -18213,10 +28338,10 @@ "refusal": null }, { - "id": "operations/azure/list-xml-escaped", + "id": "operations/azure/list-all-order", "profile": "azure", "lane": "core", - "purpose": "list xml escaped", + "purpose": "list order", "sources": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs" ], @@ -18300,7 +28425,7 @@ }, "body": { "encoding": "base64", - "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YSZhbXA7YjwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+YyZsdDtkPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4=" + "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+" }, "framing": "chunked" } @@ -18323,8 +28448,8 @@ "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=" + "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" } @@ -18555,12 +28671,71 @@ "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": 2 + "value": 3 } }, { @@ -18576,24 +28751,23 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/c42f89fa82e8=" + "value": "" } } ], "refusal": null }, { - "id": "operations/azure/list-page-size-one", + "id": "operations/azure/list-prefix-without-slash", "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.", + "purpose": "list prefix without slash", "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/" + "prefix": "object-tests/boa" }, "exchanges": [ { @@ -18645,15 +28819,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/maxresults", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/boa" } } ], @@ -18671,7 +28837,7 @@ }, "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=" + "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" } @@ -18748,574 +28914,162 @@ } }, { - "at": "/value/entries", + "at": "/value/entries/1/key", "optional": false, "rule": { - "is": "array_length", + "is": "equal", + "value": "object-tests/board/nested/c.txt" + } + }, + { + "at": "/value/entries/1/size", + "optional": false, + "rule": { + "is": "equal", "value": 1 } }, { - "at": "/value/prefixes", + "at": "/value/entries/1/etag", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "fixture-48ff0e151ab7" } }, { - "at": "/value/continuation_token", + "at": "/value/entries/1/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/1/version", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/c42f89fa82e8=" + "value": "2024-01-01T00:00:00.7881326Z" } - } - ], - "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." - } - } - } - ] + "at": "/value/entries/1/is_current_version", + "optional": false, + "rule": { + "is": "equal", + "value": 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 + "at": "/value/entries/1/content_md5_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "SooI8J03tzeVZJA4QItfMw==" + } }, { - "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 + "at": "/value/entries/2/key", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/z.txt" + } }, { - "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 + "at": "/value/entries/2/size", + "optional": false, + "rule": { + "is": "equal", + "value": 2 + } }, { - "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 + "at": "/value/entries/2/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-b905747bf74f" + } }, { - "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": "/value/entries/2/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, { - "at": "/outcome", + "at": "/value/entries/2/version", "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "2024-01-01T00:00:00.3834597Z" } }, { - "at": "/status", + "at": "/value/entries/2/is_current_version", "optional": false, "rule": { "is": "equal", - "value": 500 + "value": true } }, { - "at": "/code", + "at": "/value/entries/2/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "OperationTimedOut" + "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-key-equal-to-prefix-delimited", + "id": "operations/azure/list-separator-keys-delimited", "profile": "azure", "lane": "core", - "purpose": "list key equal to prefix delimited", + "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/exact" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -19367,7 +29121,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/separators/" } }, { @@ -19393,7 +29147,7 @@ }, "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/" + "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" } @@ -19415,7 +29169,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/separators/..leading" } }, { @@ -19431,7 +29185,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-aad9350ee314" + "value": "fixture-99f23038e5ea" } }, { @@ -19450,7 +29204,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9097158Z" + "value": "2024-01-01T00:00:00.1857029Z" } }, { @@ -19469,12 +29223,71 @@ "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": 1 + "value": 2 } }, { @@ -19482,7 +29295,31 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact/" + "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/" } }, { @@ -19490,7 +29327,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 4 } }, { @@ -19505,16 +29342,16 @@ "refusal": null }, { - "id": "operations/azure/list-key-equal-to-prefix", + "id": "operations/azure/list-separator-keys", "profile": "azure", "lane": "core", - "purpose": "list key equal to prefix", + "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/exact" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -19566,7 +29403,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/separators/" } } ], @@ -19584,7 +29421,7 @@ }, "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" + "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" } @@ -19594,23 +29431,200 @@ ], "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/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": "ok" + "value": true } }, { - "at": "/value/entries/0/key", + "at": "/value/entries/2/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "xMpCOKC5I4INzFCab3WEmw==" } }, { - "at": "/value/entries/0/size", + "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", @@ -19618,15 +29632,15 @@ } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/3/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-aad9350ee314" + "value": "fixture-32b8d82fce87" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/3/snapshot", "optional": true, "rule": { "is": "one_of", @@ -19637,15 +29651,15 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/3/version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.9097158Z" + "value": "2024-01-01T00:00:00.9957719Z" } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/3/is_current_version", "optional": false, "rule": { "is": "equal", @@ -19653,7 +29667,7 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/3/content_md5_base64", "optional": false, "rule": { "is": "equal", @@ -19661,15 +29675,15 @@ } }, { - "at": "/value/entries/1/key", + "at": "/value/entries/4/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact/child" + "value": "object-tests/separators/space /x" } }, { - "at": "/value/entries/1/size", + "at": "/value/entries/4/size", "optional": false, "rule": { "is": "equal", @@ -19677,15 +29691,15 @@ } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/4/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-bc7e3365fd2c" + "value": "fixture-0b64e32539cd" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/4/snapshot", "optional": true, "rule": { "is": "one_of", @@ -19696,15 +29710,15 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/4/version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1462797Z" + "value": "2024-01-01T00:00:00.8166959Z" } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/4/is_current_version", "optional": false, "rule": { "is": "equal", @@ -19712,7 +29726,66 @@ } }, { - "at": "/value/entries/1/content_md5_base64", + "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", @@ -19724,7 +29797,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 2 + "value": 6 } }, { @@ -19747,16 +29820,19 @@ "refusal": null }, { - "id": "operations/azure/list-many-segments", + "id": "operations/azure/list-snapshots-after-delete", "profile": "azure", "lane": "core", - "purpose": "list many segments", + "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/s/" + "prefix": "object-tests/snapshots-all/" }, "exchanges": [ { @@ -19808,7 +29884,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/s/" + "value": "object-tests/snapshots-all/" + } + }, + { + "at": "/query/include", + "optional": false, + "rule": { + "is": "equal", + "value": "snapshots" } } ], @@ -19826,7 +29910,7 @@ }, "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" + "data": "object-tests/snapshots-all/" }, "framing": "chunked" } @@ -19843,71 +29927,12 @@ "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 + "value": 0 } }, { @@ -19930,17 +29955,19 @@ "refusal": null }, { - "id": "operations/azure/list-max-keys-zero", + "id": "operations/azure/list-snapshots-after-snapshots-deleted", "profile": "azure", "lane": "core", - "purpose": "list max keys zero", + "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", - "page_size": 0, - "prefix": "object-tests/board/" + "prefix": "object-tests/snapshots-only/" }, "exchanges": [ { @@ -19992,33 +30019,35 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/snapshots-only/" } }, { - "at": "/query/maxresults", + "at": "/query/include", "optional": false, "rule": { "is": "equal", - "value": "0" + "value": "snapshots" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "OutOfRangeQueryParameterValue" + "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": "OutOfRangeQueryParameterValueFixture error" - } + "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" } } ] @@ -20030,83 +30059,110 @@ "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": "OutOfRangeQueryParameterValue" + "value": 4 } - } - ], - "refusal": [ + }, { - "at": "/outcome", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "refused" + "value": "fixture-493478beeeaf" } }, { - "at": "/kind", + "at": "/value/entries/0/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/0/version", "optional": false, "rule": { - "is": "matches", - "pattern": ".+" + "is": "equal", + "value": "2024-01-01T00:00:00.6170785Z" } }, { - "at": "/parameter", + "at": "/value/entries/0/is_current_version", "optional": false, "rule": { "is": "equal", - "value": "page_size" + "value": true } }, { - "at": "/status", - "optional": true, + "at": "/value/entries/0/content_md5_base64", + "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "TYtghPPRZ7dsrGaiKpG+Ag==" } }, { - "at": "/code", - "optional": true, + "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": "OutOfRangeQueryParameterValue" + "value": "" } } - ] + ], + "refusal": null }, { - "id": "operations/azure/list-metadata", + "id": "operations/azure/list-snapshots-and-versions", "profile": "azure", "lane": "core", - "purpose": "list metadata", + "purpose": "list snapshots and versions", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { "include": [ - "metadata" + "snapshots", + "versions" ], "op": "list_page", - "prefix": "object-tests/metadata-listed/" + "prefix": "object-tests/snapshots/" }, "exchanges": [ { @@ -20158,7 +30214,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/metadata-listed/" + "value": "object-tests/snapshots/" } }, { @@ -20166,7 +30222,7 @@ "optional": false, "rule": { "is": "equal", - "value": "metadata" + "value": "snapshots,versions" } } ], @@ -20184,7 +30240,7 @@ }, "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" + "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" } @@ -20206,7 +30262,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/metadata-listed/plain.txt" + "value": "object-tests/snapshots/object.txt" } }, { @@ -20214,7 +30270,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 3 } }, { @@ -20222,7 +30278,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-9a0b44f4b9e9" + "value": "fixture-7adbbe4768f3" } }, { @@ -20241,15 +30297,18 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.4469276Z" + "value": "2024-01-01T00:00:00.4877091Z" } }, { "at": "/value/entries/0/is_current_version", - "optional": false, + "optional": true, "rule": { - "is": "equal", - "value": true + "is": "one_of", + "values": [ + null, + false + ] } }, { @@ -20257,7 +30316,7 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "+XxdKZQb+xsv2rCHSQargg==" } }, { @@ -20265,7 +30324,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/metadata-listed/shadowed.txt" + "value": "object-tests/snapshots/object.txt" } }, { @@ -20273,7 +30332,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 3 } }, { @@ -20281,11 +30340,19 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-cd8bb50852bd" + "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", @@ -20296,90 +30363,186 @@ } }, { - "at": "/value/entries/1/version", + "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": "2024-01-01T00:00:00.9968398Z" + "value": "+XxdKZQb+xsv2rCHSQargg==" } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", - "value": true + "value": "object-tests/snapshots/object.txt" } }, { - "at": "/value/entries/1/content_md5_base64", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": 3 } }, { - "at": "/value/entries", + "at": "/value/entries/2/etag", "optional": false, "rule": { - "is": "array_length", - "value": 2 + "is": "equal", + "value": "fixture-7adbbe4768f3" } }, { - "at": "/value/prefixes", + "at": "/value/entries/2/snapshot", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/2/version", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "2024-01-01T00:00:00.8746441Z" } }, { - "at": "/value/continuation_token", + "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": "" + "value": "+XxdKZQb+xsv2rCHSQargg==" } }, { - "at": "/value/entries/0/metadata", + "at": "/value/entries/3/key", "optional": false, "rule": { "is": "equal", - "value": { - "label": "c" - } + "value": "object-tests/snapshots/object.txt" } }, { - "at": "/value/entries/1/metadata", + "at": "/value/entries/3/size", "optional": false, "rule": { "is": "equal", - "value": { - "Metadata": "x", - "label": "b" - } + "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-next-page", + "id": "operations/azure/list-snapshots", "profile": "azure", "lane": "core", - "purpose": "list next page", + "purpose": "list snapshots", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "continuation_token": "fixture-marker+/c42f89fa82e8=", + "include": [ + "snapshots" + ], "op": "list_page", - "page_size": 2, - "prefix": "object-tests/board/" + "prefix": "object-tests/snapshots/" }, "exchanges": [ { @@ -20431,23 +30594,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/maxresults", - "optional": false, - "rule": { - "is": "equal", - "value": "2" + "value": "object-tests/snapshots/" } }, { - "at": "/query/marker", + "at": "/query/include", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/c42f89fa82e8=" + "value": "snapshots" } } ], @@ -20465,7 +30620,7 @@ }, "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" + "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" } @@ -20487,7 +30642,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "object-tests/snapshots/object.txt" } }, { @@ -20495,7 +30650,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 3 } }, { @@ -20503,11 +30658,19 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-b905747bf74f" + "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", @@ -20518,15 +30681,69 @@ } }, { - "at": "/value/entries/0/version", + "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": "2024-01-01T00:00:00.3834597Z" + "value": "+XxdKZQb+xsv2rCHSQargg==" } }, { - "at": "/value/entries/0/is_current_version", + "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", @@ -20534,11 +30751,11 @@ } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/entries/1/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "Je0by0I7C3IA9IX8X/ccjg==" + "value": "uKn3Fdu2T9XFbneDxoIKYQ==" } }, { @@ -20546,7 +30763,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 2 } }, { @@ -20569,17 +30786,16 @@ "refusal": null }, { - "id": "operations/azure/list-pagination", + "id": "operations/azure/list-staged-only", "profile": "azure", "lane": "core", - "purpose": "list pagination", + "purpose": "list staged only", "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": "" + "op": "list_page", + "prefix": "object-tests/multipart/staged.bin" }, "exchanges": [ { @@ -20628,18 +30844,10 @@ }, { "at": "/query/prefix", - "optional": true, - "rule": { - "is": "equal", - "value": "" - } - }, - { - "at": "/query/maxresults", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "object-tests/multipart/staged.bin" } } ], @@ -20652,26 +30860,68 @@ "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==" + "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": [ { @@ -20716,56 +30966,30 @@ "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" + "value": "object-tests/" } } ], "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-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": "InvalidAuthenticationInfo" }, "body": { - "encoding": "base64", - "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+c2Vjb25kPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4=" - }, - "framing": "chunked" + "encoding": "utf8", + "data": "InvalidAuthenticationInfoFixture error" + } } } ] @@ -20777,35 +31001,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/keys", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": [ - "first", - "second" - ] + "value": 401 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure/list-order-delimited", + "id": "operations/azure/list-versions-of-deleted-object", "profile": "azure", "lane": "core", - "purpose": "list order delimited", + "purpose": "list versions of deleted object", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "delimiter": "/", + "include": [ + "versions" + ], "op": "list_page", - "prefix": "object-tests/order/" + "prefix": "object-tests/versions-mtydohr2/deleted.txt" }, "exchanges": [ { @@ -20857,15 +31088,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/versions-mtydohr2/deleted.txt" } }, { - "at": "/query/delimiter", + "at": "/query/include", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "versions" } } ], @@ -20883,7 +31114,7 @@ }, "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" + "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" } @@ -20905,7 +31136,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "object-tests/versions-mtydohr2/deleted.txt" } }, { @@ -20913,7 +31144,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -20921,7 +31152,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-b1567b296bf4" + "value": "fixture-3b1602b981e9" } }, { @@ -20940,15 +31171,18 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6802950Z" + "value": "2024-01-01T00:00:00.0160641Z" } }, { "at": "/value/entries/0/is_current_version", - "optional": false, + "optional": true, "rule": { - "is": "equal", - "value": true + "is": "one_of", + "values": [ + null, + false + ] } }, { @@ -20956,7 +31190,7 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "ASCk+RlqX5659SPzH5FNpw==" } }, { @@ -20964,7 +31198,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/versions-mtydohr2/deleted.txt" } }, { @@ -20972,7 +31206,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -20980,7 +31214,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-522bf336fec0" + "value": "fixture-629d3a175535" } }, { @@ -20999,287 +31233,54 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6196984Z" + "value": "2024-01-01T00:00:00.3127057Z" } }, { "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, - "" + false ] } }, { - "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", + "at": "/value/entries/1/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "4cgEiIU9hqudbez+MNiTDw==" } }, { - "at": "/value/entries/6/key", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/é" + "value": "object-tests/versions-mtydohr2/deleted.txt" } }, { - "at": "/value/entries/6/size", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { - "at": "/value/entries/6/etag", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-e8b6d1d5f3fb" + "value": "fixture-4de1996d2b4b" } }, { - "at": "/value/entries/6/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -21290,27 +31291,30 @@ } }, { - "at": "/value/entries/6/version", + "at": "/value/entries/2/version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1938992Z" + "value": "2024-01-01T00:00:00.0760252Z" } }, { - "at": "/value/entries/6/is_current_version", - "optional": false, + "at": "/value/entries/2/is_current_version", + "optional": true, "rule": { - "is": "equal", - "value": true + "is": "one_of", + "values": [ + null, + false + ] } }, { - "at": "/value/entries/6/content_md5_base64", + "at": "/value/entries/2/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "ip/X39qAKSH9xAefmlKM6A==" } }, { @@ -21318,15 +31322,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 7 - } - }, - { - "at": "/value/prefixes/0", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/order/a/" + "value": 3 } }, { @@ -21334,7 +31330,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 0 } }, { @@ -21349,16 +31345,19 @@ "refusal": null }, { - "id": "operations/azure/list-order", + "id": "operations/azure/list-versions", "profile": "azure", "lane": "core", - "purpose": "list order", + "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/order/" + "prefix": "object-tests/versions-mtydohr2/" }, "exchanges": [ { @@ -21410,7 +31409,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/versions-mtydohr2/" + } + }, + { + "at": "/query/include", + "optional": false, + "rule": { + "is": "equal", + "value": "versions" } } ], @@ -21428,7 +31435,7 @@ }, "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": "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" } @@ -21450,7 +31457,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "object-tests/versions-mtydohr2/object.txt" } }, { @@ -21458,7 +31465,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -21466,7 +31473,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-b1567b296bf4" + "value": "fixture-9dc9ff8bf513" } }, { @@ -21485,15 +31492,18 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6802950Z" + "value": "2024-01-01T00:00:00.2318906Z" } }, { "at": "/value/entries/0/is_current_version", - "optional": false, + "optional": true, "rule": { - "is": "equal", - "value": true + "is": "one_of", + "values": [ + null, + false + ] } }, { @@ -21501,7 +31511,7 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "ZlTHNMyrj0QP8IJetEPcfw==" } }, { @@ -21509,7 +31519,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/versions-mtydohr2/object.txt" } }, { @@ -21517,7 +31527,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -21525,7 +31535,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-522bf336fec0" + "value": "fixture-9e3bb87be41c" } }, { @@ -21544,7 +31554,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6196984Z" + "value": "2024-01-01T00:00:00.3326281Z" } }, { @@ -21560,94 +31570,159 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" - } - }, - { - "at": "/value/entries/2/key", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/order/a-b" + "value": "GyZ2GcSBLMRu4oF0eITKUA==" } }, { - "at": "/value/entries/2/size", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": 1 + "is": "array_length", + "value": 2 } }, { - "at": "/value/entries/2/etag", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": "fixture-ffd1d6ff8b0f" - } - }, - { - "at": "/value/entries/2/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "array_length", + "value": 0 } }, { - "at": "/value/entries/2/version", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7288701Z" + "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": [ { - "at": "/value/entries/2/is_current_version", - "optional": false, - "rule": { - "is": "equal", - "value": 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/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": "/value/entries/2/content_md5_base64", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "ok" } }, { - "at": "/value/entries/3/key", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a.txt" + "value": "object-tests/hashes/committed.bin" } }, { - "at": "/value/entries/3/size", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 13 } }, { - "at": "/value/entries/3/etag", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-1b029c6aa2e9" + "value": "fixture-879f71a2d23b" } }, { - "at": "/value/entries/3/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -21658,15 +31733,15 @@ } }, { - "at": "/value/entries/3/version", + "at": "/value/entries/0/version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2739144Z" + "value": "2024-01-01T00:00:00.2802899Z" } }, { - "at": "/value/entries/3/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": false, "rule": { "is": "equal", @@ -21674,39 +31749,39 @@ } }, { - "at": "/value/entries/3/content_md5_base64", + "at": "/value/entries/0/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/1/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a/b" + "value": "object-tests/hashes/crc64.txt" } }, { - "at": "/value/entries/4/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 13 } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-8a57ec6c4492" + "value": "fixture-c55cf5f18aae" } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -21717,15 +31792,15 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/1/version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2584945Z" + "value": "2024-01-01T00:00:00.1153123Z" } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": false, "rule": { "is": "equal", @@ -21733,98 +31808,47 @@ } }, { - "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", + "at": "/value/entries/1/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": true + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { - "at": "/value/entries/5/content_md5_base64", + "at": "/value/entries/1/content_crc64_base64", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "9XBvAwWoR9o=" } }, { - "at": "/value/entries/6/key", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "value": "object-tests/hashes/md5.txt" } }, { - "at": "/value/entries/6/size", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 13 } }, { - "at": "/value/entries/6/etag", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-91f7dfa02cf5" + "value": "fixture-1f199b777f07" } }, { - "at": "/value/entries/6/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -21835,15 +31859,15 @@ } }, { - "at": "/value/entries/6/version", + "at": "/value/entries/2/version", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.4152572Z" + "value": "2024-01-01T00:00:00.7803759Z" } }, { - "at": "/value/entries/6/is_current_version", + "at": "/value/entries/2/is_current_version", "optional": false, "rule": { "is": "equal", @@ -21851,110 +31875,165 @@ } }, { - "at": "/value/entries/6/content_md5_base64", + "at": "/value/entries/2/content_md5_base64", "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { - "at": "/value/entries/7/key", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/order/é" + "is": "array_length", + "value": 3 } }, { - "at": "/value/entries/7/size", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": 1 + "is": "array_length", + "value": 0 } }, { - "at": "/value/entries/7/etag", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "fixture-e8b6d1d5f3fb" + "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": [ { - "at": "/value/entries/7/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.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/7/version", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.1938992Z" + "value": "error" } }, { - "at": "/value/entries/7/is_current_version", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": true + "value": 404 } }, { - "at": "/value/entries/7/content_md5_base64", + "at": "/code", "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 + "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-order", + "id": "operations/azure/put-crc64-mismatch", "profile": "azure", "lane": "core", - "purpose": "list order", + "purpose": "put crc64 mismatch", "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": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "azure_crc64", + "value_base64": "khqMBK+EUSA=" + }, + "key": "object-tests/hashes/crc64-mismatch.txt", + "op": "put" }, "exchanges": [ { @@ -21966,7 +32045,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -21974,7 +32053,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/hashes/crc64-mismatch.txt" } }, { @@ -21982,59 +32061,43 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/query/restype", + "at": "/headers/x-ms-content-crc64", "optional": false, "rule": { "is": "equal", - "value": "container" + "value": "khqMBK+EUSA=" } }, { - "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": 400, "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-error-code": "Crc64Mismatch" }, "body": { - "encoding": "base64", - "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+" - }, - "framing": "chunked" + "encoding": "utf8", + "data": "Crc64MismatchFixture error" + } } } ] @@ -22046,34 +32109,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/keys", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": [ - "a", - "z" - ] + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "Crc64Mismatch" } } ], "refusal": null }, { - "id": "operations/azure/list-page", + "id": "operations/azure/put-created-empty", "profile": "azure", "lane": "core", - "purpose": "list page", + "purpose": "put created empty", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "op": "list_page", - "prefix": "object-tests/board/" + "body_base64": "", + "key": "object-tests/write/empty.bin", + "op": "put" }, "exchanges": [ { @@ -22085,7 +32154,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -22093,7 +32162,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/write/empty.bin" } }, { @@ -22105,47 +32174,35 @@ } }, { - "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-blob-type", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", + "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-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": "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" + "encoding": "base64", + "data": "" + } } } ] @@ -22161,220 +32218,456 @@ } }, { - "at": "/value/entries/0/key", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/board/a.txt" - } - }, - { - "at": "/value/entries/0/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 8 + "value": "\"fixture-ee13937a1c94\"" } }, { - "at": "/value/entries/0/etag", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "fixture-704c5ddfc8cb" - } - }, - { - "at": "/value/entries/0/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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": [ { - "at": "/value/entries/0/version", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.9908400Z" - } - }, + "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": "/value/entries/0/is_current_version", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": true + "value": "ok" } }, { - "at": "/value/entries/0/content_md5_base64", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "JdVa0oOqQAr0ZMdtcTwHrQ==" + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/entries/1/key", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/c.txt" + "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": [ { - "at": "/value/entries/1/size", - "optional": false, - "rule": { - "is": "equal", - "value": 1 - } - }, + "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": "/value/entries/1/etag", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "fixture-48ff0e151ab7" - } - }, - { - "at": "/value/entries/1/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "ok" } }, { - "at": "/value/entries/1/version", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7881326Z" + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": true + "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": [ { - "at": "/value/entries/1/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "SooI8J03tzeVZJA4QItfMw==" - } - }, + "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": "/value/entries/2/key", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "ok" } }, { - "at": "/value/entries/2/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/entries/2/etag", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "fixture-b905747bf74f" - } - }, - { - "at": "/value/entries/2/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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": [ { - "at": "/value/entries/2/version", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.3834597Z" - } - }, + "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": "/value/entries/2/is_current_version", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": true + "value": "ok" } }, { - "at": "/value/entries/2/content_md5_base64", + "at": "/value/etag", "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 + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/continuation_token", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "2024-01-01T00:00:00.2084665Z" } } ], "refusal": null }, { - "id": "operations/azure/list-prefix-without-slash", + "id": "operations/azure/put-created-key-plus", "profile": "azure", "lane": "core", - "purpose": "list prefix without slash", + "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": { - "op": "list_page", - "prefix": "object-tests/boa" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/plus+plus.txt", + "op": "put" }, "exchanges": [ { @@ -22386,7 +32679,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -22394,7 +32687,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -22402,51 +32695,39 @@ "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" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/prefix", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "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-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-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": "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" + "encoding": "base64", + "data": "" + } } } ] @@ -22462,221 +32743,36 @@ } }, { - "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", + "at": "/value/etag", "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 + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/continuation_token", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "2024-01-01T00:00:00.2084665Z" } } ], "refusal": null }, { - "id": "operations/azure/list-separator-keys-delimited", + "id": "operations/azure/put-created-key-space", "profile": "azure", "lane": "core", - "purpose": "list separator keys delimited", + "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": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/separators/" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/space name.txt", + "op": "put" }, "exchanges": [ { @@ -22688,7 +32784,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -22696,7 +32792,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -22704,59 +32800,39 @@ "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/" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/delimiter", + "at": "/headers/x-ms-blob-type", "optional": false, "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-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-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": "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" + "encoding": "base64", + "data": "" + } } } ] @@ -22772,193 +32848,36 @@ } }, { - "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", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/trailing/" - } - }, - { - "at": "/value/prefixes", - "optional": false, - "rule": { - "is": "array_length", - "value": 4 + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/continuation_token", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "2024-01-01T00:00:00.2084665Z" } } ], "refusal": null }, { - "id": "operations/azure/list-separator-keys", + "id": "operations/azure/put-created-key-non-ascii", "profile": "azure", "lane": "core", - "purpose": "list separator keys", + "purpose": "put created, 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/separators/" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/café/雪.txt", + "op": "put" }, "exchanges": [ { @@ -22970,7 +32889,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -22978,7 +32897,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -22986,51 +32905,39 @@ "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" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/prefix", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "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-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-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": "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" + "encoding": "base64", + "data": "" + } } } ] @@ -23046,400 +32953,141 @@ } }, { - "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", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6886650Z" + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/entries/5/is_current_version", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": true + "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": [ { - "at": "/value/entries/5/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" - } - }, + "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": "/value/entries", + "at": "/outcome", "optional": false, "rule": { - "is": "array_length", - "value": 6 + "is": "equal", + "value": "ok" } }, { - "at": "/value/prefixes", + "at": "/value/etag", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/value/continuation_token", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "2024-01-01T00:00:00.2084665Z" } } ], "refusal": null }, { - "id": "operations/azure/list-snapshots-after-delete", + "id": "operations/azure/put-created-key-trailing-slash", "profile": "azure", "lane": "core", - "purpose": "list snapshots after delete", + "purpose": "put created, with the key \"trailing-slash/\"", "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/" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/trailing-slash/", + "op": "put" }, "exchanges": [ { @@ -23451,7 +33099,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -23459,7 +33107,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -23467,59 +33115,138 @@ "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": 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": "/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/snapshots-all/" + "value": "/fixture/object-tests/copy/target.txt" } }, { - "at": "/query/include", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "snapshots" + "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": 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": "BlobNotFound" }, "body": { "encoding": "utf8", - "data": "object-tests/snapshots-all/" - }, - "framing": "chunked" + "data": "BlobNotFoundFixture error" + } } } ] @@ -23531,50 +33258,40 @@ "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": 404 } }, { - "at": "/value/continuation_token", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure/list-snapshots-after-snapshots-deleted", + "id": "operations/azure/copy", "profile": "azure", "lane": "core", - "purpose": "list snapshots after snapshots deleted", + "purpose": "Copy an object to another key in the same container", "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": { - "include": [ - "snapshots" - ], - "op": "list_page", - "prefix": "object-tests/snapshots-only/" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -23586,7 +33303,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -23594,7 +33311,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -23606,55 +33323,133 @@ } }, { - "at": "/query/restype", + "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": "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/snapshots-only/" + "value": "" } }, { - "at": "/query/include", + "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": "snapshots" + "value": "blue" } } ], "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/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" + "encoding": "empty" + } } } ] @@ -23670,106 +33465,29 @@ } }, { - "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", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/list-snapshots-and-versions", + "id": "operations/azure/copy-source-if-match", "profile": "azure", "lane": "core", - "purpose": "list snapshots and versions", + "purpose": "Copy a blob only if the source still has this ETag, named in x-ms-source-if-match", "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": { - "include": [ - "snapshots", - "versions" - ], - "op": "list_page", - "prefix": "object-tests/snapshots/" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -23781,7 +33499,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -23789,7 +33507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -23801,55 +33519,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/x-ms-source-if-match", "optional": false, "rule": { "is": "equal", - "value": "container" + "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": "/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/snapshots/" + "value": "" } }, { - "at": "/query/include", + "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": "snapshots,versions" + "value": "\"fixture-0123456789ab\"" } } ], "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": "SourceConditionNotMet" }, "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" + "data": "SourceConditionNotMetFixture error" + } } } ] @@ -23861,295 +33662,450 @@ "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 + "value": "error" } }, { - "at": "/value/entries/1/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "fixture-7adbbe4768f3" + "value": 412 } }, { - "at": "/value/entries/1/snapshot", + "at": "/code", "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 - ] + "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": [ { - "at": "/value/entries/1/content_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "+XxdKZQb+xsv2rCHSQargg==" - } - }, + "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": "/value/entries/2/key", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/snapshots/object.txt" + "value": "error" } }, { - "at": "/value/entries/2/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 412 } }, { - "at": "/value/entries/2/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "fixture-7adbbe4768f3" + "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": [ { - "at": "/value/entries/2/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/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": "/value/entries/2/version", + "at": "/outcome", "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 - ] + "value": "error" } }, { - "at": "/value/entries/2/content_md5_base64", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "+XxdKZQb+xsv2rCHSQargg==" + "value": 409 } }, { - "at": "/value/entries/3/key", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "object-tests/snapshots/object.txt" + "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": [ { - "at": "/value/entries/3/size", - "optional": false, - "rule": { - "is": "equal", - "value": 3 - } - }, + "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" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/3/etag", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "fixture-222f410e528f" - } - }, - { - "at": "/value/entries/3/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "ok" } }, { - "at": "/value/entries/3/version", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.6268993Z" + "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/entries/3/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/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": "/value/entries/3/content_md5_base64", + "at": "/outcome", "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": "ok" } }, { - "at": "/value/continuation_token", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/list-snapshots", + "id": "operations/azure/copy-source-key-encoded", "profile": "azure", "lane": "core", - "purpose": "list snapshots", + "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": { - "include": [ - "snapshots" - ], - "op": "list_page", - "prefix": "object-tests/snapshots/" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/a b+c%é?#.txt" }, "exchanges": [ { @@ -24161,7 +34117,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -24169,7 +34125,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -24181,55 +34137,30 @@ } }, { - "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", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "snapshots" + "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/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" + "encoding": "empty" + } } } ] @@ -24245,164 +34176,29 @@ } }, { - "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", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/list-staged-only", + "id": "operations/azure/copy-source-version", "profile": "azure", "lane": "core", - "purpose": "list staged only", + "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": { - "op": "list_page", - "prefix": "object-tests/multipart/staged.bin" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "source_version": "2024-01-01T00:00:00.0000000Z" }, "exchanges": [ { @@ -24414,7 +34210,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -24422,7 +34218,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -24434,47 +34230,30 @@ } }, { - "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/multipart/staged.bin" + "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": 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/multipart/staged.bin" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -24490,43 +34269,29 @@ } }, { - "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", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/list-unauthenticated", + "id": "operations/azure/copy-sync", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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": [ - "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-from-url" ], "call": { - "op": "list_page", - "prefix": "object-tests/" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "sync": true }, "exchanges": [ { @@ -24538,7 +34303,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -24546,7 +34311,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -24558,44 +34323,39 @@ } }, { - "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-requires-sync", "optional": false, "rule": { "is": "equal", - "value": "object-tests/" + "value": "true" } } ], - "allow_headers": [], + "allow_headers": [ + "x-ms-copy-source-authorization" + ], "allow_query": [], "response": { - "status": 401, + "status": 202, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "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": "InvalidAuthenticationInfoFixture error" + "encoding": "empty" } } } @@ -24608,42 +34368,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 401 + "value": "ok" } }, { - "at": "/code", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "success" } } ], "refusal": null }, { - "id": "operations/azure/list-versions-of-deleted-object", + "id": "operations/azure/copy-pending", "profile": "azure", "lane": "core", - "purpose": "list versions of deleted object", + "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": [ - "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" ], + "origin": "transient", "call": { - "include": [ - "versions" - ], - "op": "list_page", - "prefix": "object-tests/versions-mtydohr2/deleted.txt" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -24655,7 +34406,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -24663,7 +34414,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -24675,55 +34426,30 @@ } }, { - "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", + "at": "/headers/x-ms-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "versions" + "is": "matches", + "pattern": "https?://[^/]+/fixture/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": "pending" }, "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" + "encoding": "empty" + } } } ] @@ -24739,232 +34465,36 @@ } }, { - "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", + "at": "/value/copy_status", "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 + "value": "pending" } }, { - "at": "/value/continuation_token", + "at": "/value/copy_id", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-copy-id" } } ], "refusal": null }, { - "id": "operations/azure/list-versions", + "id": "operations/azure/put-from-url", "profile": "azure", "lane": "core", - "purpose": "list versions", + "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": [ - "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-from-url" ], "call": { - "include": [ - "versions" - ], - "op": "list_page", - "prefix": "object-tests/versions-mtydohr2/" + "key": "object-tests/copy/target.txt", + "op": "azure.put_from_url", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -24976,7 +34506,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -24984,7 +34514,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -24996,55 +34526,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/versions-mtydohr2/" + "is": "matches", + "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" } }, { - "at": "/query/include", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "versions" + "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": { - "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-request-server-encrypted": "true" }, "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" + "encoding": "empty" + } } } ] @@ -25060,164 +34575,29 @@ } }, { - "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", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/azure/list-written-with-hashes", + "id": "operations/azure/abort-copy", "profile": "azure", "lane": "core", - "purpose": "list written with hashes", + "purpose": "Abort a pending copy by its copy ID, with x-ms-copy-action: abort", "sources": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" + "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob" ], + "origin": "transient", "call": { - "op": "list_page", - "prefix": "object-tests/hashes/" + "copy_id": "fixture-copy-id", + "key": "object-tests/copy/target.txt", + "op": "azure.abort_copy" }, "exchanges": [ { @@ -25229,7 +34609,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -25237,7 +34617,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -25249,285 +34629,185 @@ } }, { - "at": "/query/restype", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "container" + "value": "copy" } }, { - "at": "/query/comp", + "at": "/query/copyid", "optional": false, "rule": { "is": "equal", - "value": "list" + "value": "fixture-copy-id" } }, { - "at": "/query/prefix", + "at": "/headers/x-ms-copy-action", "optional": false, "rule": { "is": "equal", - "value": "object-tests/hashes/" + "value": "abort" } } ], "allow_headers": [], "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", - "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 - } - }, + } + }, + "body": { + "encoding": "empty" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/2/etag", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "fixture-1f199b777f07" - } - }, - { - "at": "/value/entries/2/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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": [ { - "at": "/value/entries/2/version", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.7803759Z" - } - }, + "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/2/is_current_version", + "at": "/outcome", "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": 409 } }, { - "at": "/value/continuation_token", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "NoPendingCopyOperation" } } ], "refusal": null }, { - "id": "operations/azure/put-container-missing", + "id": "operations/azure/get-page-ranges", "profile": "azure", "lane": "core", - "purpose": "put container missing", + "purpose": "List the written ranges of a page 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-page-ranges" ], "call": { - "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object.txt", - "op": "put" + "key": "object-tests/pages/object.vhd", + "op": "azure.get_page_ranges" }, "exchanges": [ { @@ -25539,7 +34819,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -25547,7 +34827,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -25555,35 +34835,36 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "pagelist" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "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-ms-blob-content-length": "1024" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" - } + "data": "0511" + }, + "framing": "chunked" } } ] @@ -25595,44 +34876,38 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 404 + "value": "ok" } }, { - "at": "/code", + "at": "/value/ranges", "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": [ + { + "end": 512, + "start": 0 + } + ] } } ], "refusal": null }, { - "id": "operations/azure/put-crc64-mismatch", + "id": "operations/azure/upload-pages-unaligned", "profile": "azure", "lane": "core", - "purpose": "put crc64 mismatch", + "purpose": "Refuse a page write that does not start on a 512-byte boundary", "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-page" ], "call": { - "body_base64": "ZGVjbGFyZWQtYm9keQ==", - "checksum": { - "algorithm": "azure_crc64", - "value_base64": "khqMBK+EUSA=" - }, - "key": "object-tests/hashes/crc64-mismatch.txt", - "op": "put" + "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", + "key": "object-tests/pages/object.vhd", + "offset": 1, + "op": "azure.upload_pages" }, "exchanges": [ { @@ -25652,7 +34927,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64-mismatch.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -25660,29 +34935,35 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" + "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" } }, { - "at": "/headers/x-ms-content-crc64", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "khqMBK+EUSA=" + "value": "page" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-page-write", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "update" + } + }, + { + "at": "/headers/x-ms-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=1-512" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 400, @@ -25691,11 +34972,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "Crc64Mismatch" + "x-ms-error-code": "InvalidHeaderValue" }, "body": { "encoding": "utf8", - "data": "Crc64MismatchFixture error" + "data": "InvalidHeaderValueFixture error" } } } @@ -25724,24 +35005,25 @@ "optional": false, "rule": { "is": "equal", - "value": "Crc64Mismatch" + "value": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure/put-created-empty", + "id": "operations/azure/upload-pages", "profile": "azure", "lane": "core", - "purpose": "put created empty", + "purpose": "Write the first page of a page 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/put-page" ], "call": { - "body_base64": "", - "key": "object-tests/write/empty.bin", - "op": "put" + "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", + "key": "object-tests/pages/object.vhd", + "offset": 0, + "op": "azure.upload_pages" }, "exchanges": [ { @@ -25761,7 +35043,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -25769,38 +35051,49 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==", "date": { "from": "now" }, - "etag": "\"fixture-ee13937a1c94\"", + "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-ms-version-id": "2024-01-01T00:00:00.7573734Z" + "x-ms-blob-sequence-number": "0", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -25815,38 +35108,22 @@ "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", + "id": "operations/azure/create-page", "profile": "azure", "lane": "core", - "purpose": "put created", + "purpose": "Create a page blob of 1,024 bytes", "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/pages/object.vhd", + "op": "azure.create_page", + "size": 1024 }, "exchanges": [ { @@ -25866,7 +35143,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/pages/object.vhd" } }, { @@ -25874,7 +35151,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -25882,30 +35159,32 @@ "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "PageBlob" + } + }, + { + "at": "/headers/x-ms-blob-content-length", + "optional": false, + "rule": { + "is": "equal", + "value": "1024" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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-ms-version-id": "2024-01-01T00:00:00.2084665Z" + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -25920,38 +35199,22 @@ "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", + "id": "operations/azure/append-block-to-block-blob", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"question?mark.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/question?mark.txt", - "op": "put" + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -25971,7 +35234,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -25979,38 +35242,32 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "appendblock" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 409, "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": "InvalidBlobType" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidBlobTypeFixture error" } } } @@ -26023,40 +35280,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b9991ef94e3d\"" + "value": 409 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2084665Z" + "value": "InvalidBlobType" } } ], "refusal": null }, { - "id": "operations/azure/put-created-key-hash", + "id": "operations/azure/append-block-at-wrong-position", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"hash#tag.txt\"", + "purpose": "Refuse an append whose position condition does not match the blob length", "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/hash#tag.txt", - "op": "put" + "append_position": 0, + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -26076,7 +35334,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -26084,38 +35342,40 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "appendblock" + } + }, + { + "at": "/headers/x-ms-blob-condition-appendpos", + "optional": false, + "rule": { + "is": "equal", + "value": "0" } } ], - "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": "AppendPositionConditionNotMet" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "AppendPositionConditionNotMetFixture error" } } } @@ -26128,40 +35388,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": "AppendPositionConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/put-created-key-percent", + "id": "operations/azure/append-block", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"percent%20.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/percent%20.txt", - "op": "put" + "body_base64": "c2Vjb25k", + "key": "object-tests/append/object.log", + "op": "azure.append_block" }, "exchanges": [ { @@ -26181,7 +35441,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -26189,38 +35449,34 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "appendblock" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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-ms-version-id": "2024-01-01T00:00:00.2084665Z" + "x-ms-blob-append-offset": "5", + "x-ms-blob-committed-block-count": "2", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -26237,36 +35493,35 @@ } }, { - "at": "/value/etag", + "at": "/value/append_offset", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b9991ef94e3d\"" + "value": 5 } }, { - "at": "/value/version", + "at": "/value/committed_block_count", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2084665Z" + "value": 2 } } ], "refusal": null }, { - "id": "operations/azure/put-created-key-plus", + "id": "operations/azure/create-append", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"plus+plus.txt\"", + "purpose": "Create an empty append 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/put-blob" ], "call": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/plus+plus.txt", - "op": "put" + "key": "object-tests/append/object.log", + "op": "azure.create_append" }, "exchanges": [ { @@ -26286,7 +35541,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/append/object.log" } }, { @@ -26294,7 +35549,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -26302,30 +35557,24 @@ "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "AppendBlob" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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-ms-version-id": "2024-01-01T00:00:00.2084665Z" + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -26340,37 +35589,22 @@ "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", + "id": "operations/azure/put-leased-if-match-without-lease-id", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"space name.txt\"", + "purpose": "Refuse a write to 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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/space name.txt", + "body_base64": "c2Vjb25k", + "if_match": "\"fixture-etag\"", + "key": "object-tests/leases/object.txt", "op": "put" }, "exchanges": [ @@ -26391,7 +35625,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -26399,7 +35633,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { @@ -26409,28 +35643,30 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-etag\"" + } } ], - "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": "LeaseIdMissing" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "LeaseIdMissingFixture error" } } } @@ -26443,39 +35679,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": "LeaseIdMissing" } } ], "refusal": null }, { - "id": "operations/azure/put-created-key-non-ascii", + "id": "operations/azure/put-leased-with-lease-id", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"café/雪.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/café/雪.txt", + "body_base64": "c2Vjb25k", + "key": "object-tests/leases/object.txt", + "lease_id": "11111111-2222-3333-4444-555555555555", "op": "put" }, "exchanges": [ @@ -26496,7 +35733,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -26504,7 +35741,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { @@ -26514,28 +35751,30 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-lease-id", + "optional": false, + "rule": { + "is": "equal", + "value": "11111111-2222-3333-4444-555555555555" + } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 201, "headers": { - "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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-ms-version-id": "2024-01-01T00:00:00.2084665Z" + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -26550,37 +35789,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-double-slash", + "id": "operations/azure/put-leased-without-lease-id", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"double//slash.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/double//slash.txt", + "body_base64": "c2Vjb25k", + "key": "object-tests/leases/object.txt", "op": "put" }, "exchanges": [ @@ -26601,7 +35824,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -26609,7 +35832,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "c2Vjb25k" } }, { @@ -26621,26 +35844,20 @@ } } ], - "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": "LeaseIdMissing" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "LeaseIdMissingFixture error" } } } @@ -26653,40 +35870,41 @@ "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": "LeaseIdMissing" } } ], "refusal": null }, { - "id": "operations/azure/put-created-key-trailing-slash", + "id": "operations/azure/lease-break", "profile": "azure", "lane": "core", - "purpose": "put created, with the key \"trailing-slash/\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/trailing-slash/", - "op": "put" + "action": "break", + "break_period": 0, + "key": "object-tests/leases/object.txt", + "op": "azure.lease" }, "exchanges": [ { @@ -26706,7 +35924,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -26714,38 +35932,48 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 202, "headers": { - "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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-ms-version-id": "2024-01-01T00:00:00.2084665Z" + "x-ms-lease-time": "0" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -26760,38 +35988,23 @@ "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", + "id": "operations/azure/lease-release", "profile": "azure", "lane": "core", - "purpose": "Refuse a copy whose source does not exist", + "purpose": "Release a lease", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/absent.txt" + "action": "release", + "key": "object-tests/leases/object.txt", + "lease_id": "11111111-2222-3333-4444-555555555555", + "op": "azure.lease" }, "exchanges": [ { @@ -26811,7 +36024,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -26823,28 +36036,43 @@ } }, { - "at": "/headers/x-ms-copy-source", + "at": "/query/comp", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/absent\\.txt" + "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": 404, + "status": 200, "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" }, "body": { - "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "empty" } } } @@ -26857,40 +36085,26 @@ "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/copy", + "id": "operations/azure/lease-acquire-leased", "profile": "azure", "lane": "core", - "purpose": "Copy an object to another key in the same container", + "purpose": "Refuse a second lease while another lease holds the object", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "action": "acquire", + "duration": 15, + "key": "object-tests/leases/object.txt", + "op": "azure.lease", + "proposed_lease_id": "66666666-7777-8888-9999-000000000000" }, "exchanges": [ { @@ -26910,7 +36124,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -26922,29 +36136,52 @@ } }, { - "at": "/headers/x-ms-copy-source", + "at": "/query/comp", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "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": 202, + "status": 409, "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": "LeaseAlreadyPresent" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "LeaseAlreadyPresentFixture error" } } } @@ -26957,35 +36194,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/copy_status", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "success" + "value": 409 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "LeaseAlreadyPresent" } } ], "refusal": null }, { - "id": "operations/azure/copy-replace-metadata", + "id": "operations/azure/lease-acquire", "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", + "purpose": "Acquire a lease on an object with a proposed lease ID", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob" ], "call": { - "key": "object-tests/copy/target.txt", - "metadata": { - "colour": "blue" - }, - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "action": "acquire", + "duration": 15, + "key": "object-tests/leases/object.txt", + "op": "azure.lease", + "proposed_lease_id": "11111111-2222-3333-4444-555555555555" }, "exchanges": [ { @@ -27005,7 +36249,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/leases/object.txt" } }, { @@ -27017,34 +36261,49 @@ } }, { - "at": "/headers/x-ms-copy-source", + "at": "/query/comp", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "equal", + "value": "lease" } }, { - "at": "/headers/x-ms-meta-colour", + "at": "/headers/x-ms-lease-action", "optional": false, "rule": { "is": "equal", - "value": "blue" + "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": 202, + "status": 201, "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" + "x-ms-lease-id": "11111111-2222-3333-4444-555555555555" }, "body": { "encoding": "empty" @@ -27064,29 +36323,31 @@ } }, { - "at": "/value/copy_status", + "at": "/value/lease_id", "optional": false, "rule": { "is": "equal", - "value": "success" + "value": "11111111-2222-3333-4444-555555555555" } } ], "refusal": null }, { - "id": "operations/azure/copy-source-if-match", + "id": "operations/azure/put-with-tags", "profile": "azure", "lane": "core", - "purpose": "Copy a blob only if the source still has this ETag, named in x-ms-source-if-match", + "purpose": "Write an object with tags", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_if_match": "\"fixture-etag\"", - "source_key": "object-tests/copy/source.txt" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/tags/object.txt", + "op": "put", + "tags": { + "project": "object-tests" + } }, "exchanges": [ { @@ -27106,7 +36367,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -27114,38 +36375,37 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/x-ms-copy-source", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "equal", + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-source-if-match", + "at": "/headers/x-ms-tags", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "value": "project=object-tests" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 202, + "status": 201, "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" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "empty" @@ -27163,31 +36423,25 @@ "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", + "id": "operations/azure/put-with-tags-special-characters", "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", + "purpose": "Write a blob with an index tag that holds a space and each of + - = . _ : /, percent-encoded in x-ms-tags", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_if_match": "\"fixture-0123456789ab\"", - "source_key": "object-tests/copy/source.txt" + "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": [ { @@ -27207,7 +36461,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -27215,40 +36469,43 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/x-ms-copy-source", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "equal", + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-source-if-match", + "at": "/headers/x-ms-tags", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-0123456789ab\"" + "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": 412, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "SourceConditionNotMet" + "etag": "\"fixture-etag\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "SourceConditionNotMetFixture error" + "encoding": "empty" } } } @@ -27261,41 +36518,23 @@ "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" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure/copy-source-if-unmodified-since-failed", + "id": "operations/azure/get-tags", "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", + "purpose": "Read the tags of an object", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags" ], "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" + "key": "object-tests/tags/object.txt", + "op": "azure.get_tags" }, "exchanges": [ { @@ -27307,7 +36546,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -27315,7 +36554,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -27327,36 +36566,27 @@ } }, { - "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", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "Mon, 01 Jan 2024 00:00:00 GMT" + "value": "tags" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "SourceConditionNotMet" + } }, "body": { "encoding": "utf8", - "data": "SourceConditionNotMetFixture error" + "data": "projectobject-tests" } } } @@ -27369,41 +36599,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 412 + "value": "ok" } }, { - "at": "/code", + "at": "/value/tags", "optional": false, "rule": { "is": "equal", - "value": "SourceConditionNotMet" + "value": { + "project": "object-tests" + } } } ], "refusal": null }, { - "id": "operations/azure/copy-if-none-match-exists", + "id": "operations/azure/get-tags-none", "profile": "azure", "lane": "core", - "purpose": "Report a copy with If-None-Match: * onto a blob that exists as a failed condition on the destination", + "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/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags" ], "call": { - "if_none_match": "*", - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "key": "object-tests/tags/object.txt", + "op": "azure.get_tags" }, "exchanges": [ { @@ -27415,7 +36637,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -27423,7 +36645,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -27435,36 +36657,27 @@ } }, { - "at": "/headers/x-ms-copy-source", - "optional": false, - "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" - } - }, - { - "at": "/headers/if-none-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "tags" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 409, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "BlobAlreadyExists" + } }, "body": { "encoding": "utf8", - "data": "BlobAlreadyExistsFixture error" + "data": "" } } } @@ -27477,41 +36690,34 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 409 + "value": "ok" } }, { - "at": "/code", + "at": "/value/tags", "optional": false, "rule": { "is": "equal", - "value": "BlobAlreadyExists" + "value": {} } } ], "refusal": null }, { - "id": "operations/azure/copy-across-containers", + "id": "operations/azure/set-tags", "profile": "azure", "lane": "core", - "purpose": "Copy a blob from another container of the same account, which x-ms-copy-source names in its URL", + "purpose": "Replace the tags of an object", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_container": "source", - "source_key": "object-tests/copy/source.txt" + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": { + "project": "object-tests" + } }, "exchanges": [ { @@ -27531,38 +36737,45 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "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/x-ms-copy-source", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/source/object-tests/copy/source\\.txt" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], "allow_headers": [], "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" + } }, "body": { "encoding": "empty" @@ -27580,31 +36793,33 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/copy_status", - "optional": false, - "rule": { - "is": "equal", - "value": "success" - } } ], "refusal": null }, { - "id": "operations/azure/copy-tier", + "id": "operations/azure/set-tags-10-tags", "profile": "azure", "lane": "core", - "purpose": "Copy a blob into another access tier, named in x-ms-access-tier", + "purpose": "Set 10 tags, the most an object takes", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt", - "tier": "Cool" + "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": [ { @@ -27624,46 +36839,45 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9" } }, { - "at": "/headers/x-ms-copy-source", + "at": "/query/comp", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "equal", + "value": "tags" } }, { - "at": "/headers/x-ms-access-tier", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "Cool" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], "allow_headers": [], "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" + } }, "body": { "encoding": "empty" @@ -27681,30 +36895,34 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/copy_status", - "optional": false, - "rule": { - "is": "equal", - "value": "success" - } } ], "refusal": null }, { - "id": "operations/azure/copy-source-key-encoded", + "id": "operations/azure/set-tags-11-tags", "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 /", + "purpose": "Report 11 tags, one more than an object takes, as an error. A client may refuse them", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/a b+c%é?#.txt" + "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": [ { @@ -27724,41 +36942,51 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.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/x-ms-copy-source", + "at": "/headers/content-type", "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" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 202, + "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-copy-id": "fixture-copy-id", - "x-ms-copy-status": "success" + "x-ms-error-code": "TagsTooLarge" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "TagsTooLargeFixture error" } } } @@ -27771,33 +36999,83 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/copy_status", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "success" + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "TagsTooLarge" } } ], - "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": "TagsTooLarge" + } + } + ] }, { - "id": "operations/azure/copy-source-version", + "id": "operations/azure/set-tags-key-128", "profile": "azure", "lane": "core", - "purpose": "Copy an earlier version of a blob, named by versionid in the x-ms-copy-source URL", + "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/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt", - "source_version": "2024-01-01T00:00:00.0000000Z" + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": { + "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v" + } }, "exchanges": [ { @@ -27817,38 +37095,45 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkv" + } + }, + { + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "tags" } }, { - "at": "/headers/x-ms-copy-source", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt\\?versionid=2024-01-01T00(?:%3[Aa]|:)00(?:%3[Aa]|:)00\\.0000000Z" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], "allow_headers": [], "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" + } }, "body": { "encoding": "empty" @@ -27866,31 +37151,24 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/copy_status", - "optional": false, - "rule": { - "is": "equal", - "value": "success" - } } ], "refusal": null }, { - "id": "operations/azure/copy-sync", + "id": "operations/azure/set-tags-key-129", "profile": "azure", "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", + "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://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt", - "sync": true + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": { + "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v" + } }, "exchanges": [ { @@ -27910,51 +37188,51 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.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": "/headers/x-ms-copy-source", + "at": "/query/comp", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "equal", + "value": "tags" } }, { - "at": "/headers/x-ms-requires-sync", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "true" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], - "allow_headers": [ - "x-ms-copy-source-authorization" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 202, + "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-copy-id": "fixture-copy-id", - "x-ms-copy-status": "success" + "x-ms-error-code": "TagsTooLarge" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "TagsTooLargeFixture error" } } } @@ -27967,33 +37245,83 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/copy_status", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "success" + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "TagsTooLarge" } } ], - "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": "TagsTooLarge" + } + } + ] }, { - "id": "operations/azure/copy-pending", + "id": "operations/azure/set-tags-value-256", "profile": "azure", "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", + "purpose": "Set a tag whose value has 256 characters, the longest a value may be", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], - "origin": "transient", "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": { + "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" + } }, "exchanges": [ { @@ -28013,38 +37341,45 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.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/x-ms-copy-source", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], "allow_headers": [], "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": "pending" + } }, "body": { "encoding": "empty" @@ -28062,38 +37397,24 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/copy_status", - "optional": false, - "rule": { - "is": "equal", - "value": "pending" - } - }, - { - "at": "/value/copy_id", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-copy-id" - } } ], "refusal": null }, { - "id": "operations/azure/put-from-url", + "id": "operations/azure/set-tags-value-257", "profile": "azure", "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", + "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://learn.microsoft.com/en-us/rest/api/storageservices/put-blob-from-url" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "azure.put_from_url", - "source_key": "object-tests/copy/source.txt" + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": { + "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" + } }, "exchanges": [ { @@ -28113,51 +37434,51 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "kvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" } }, { - "at": "/headers/x-ms-copy-source", + "at": "/query/comp", "optional": false, "rule": { - "is": "matches", - "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt" + "is": "equal", + "value": "tags" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], - "allow_headers": [ - "x-ms-copy-source-authorization", - "x-ms-copy-source-blob-properties" - ], + "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" + "x-ms-error-code": "TagsTooLarge" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "TagsTooLargeFixture error" } } } @@ -28170,33 +37491,83 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "TagsTooLarge" } } ], - "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": "TagsTooLarge" + } + } + ] }, { - "id": "operations/azure/abort-copy", + "id": "operations/azure/set-tags-special-characters", "profile": "azure", "lane": "core", - "purpose": "Abort a pending copy by its copy ID, with x-ms-copy-action: abort", + "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/abort-copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], - "origin": "transient", "call": { - "copy_id": "fixture-copy-id", - "key": "object-tests/copy/target.txt", - "op": "azure.abort_copy" + "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": [ { @@ -28216,15 +37587,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "a b+c-d=e.f_g:h/ik l+m-n=o.p_q:r/s" } }, { @@ -28232,23 +37603,18 @@ "optional": false, "rule": { "is": "equal", - "value": "copy" - } - }, - { - "at": "/query/copyid", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-copy-id" + "value": "tags" } }, { - "at": "/headers/x-ms-copy-action", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "abort" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], @@ -28282,17 +37648,19 @@ "refusal": null }, { - "id": "operations/azure/abort-copy-finished", + "id": "operations/azure/set-tags-invalid-character", "profile": "azure", "lane": "core", - "purpose": "Report an abort of a copy that has finished as an error, 409 NoPendingCopyOperation", + "purpose": "Report a blob index tag key with @, which Azure does not allow, as an error. A client may refuse it", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "copy_id": "fixture-copy-id", - "key": "object-tests/copy/target.txt", - "op": "azure.abort_copy" + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": { + "a@b": "c" + } }, "exchanges": [ { @@ -28312,15 +37680,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "a@bc" } }, { @@ -28328,40 +37696,35 @@ "optional": false, "rule": { "is": "equal", - "value": "copy" - } - }, - { - "at": "/query/copyid", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-copy-id" + "value": "tags" } }, { - "at": "/headers/x-ms-copy-action", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "abort" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 409, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "NoPendingCopyOperation" + "x-ms-error-code": "InvalidTag" }, "body": { "encoding": "utf8", - "data": "NoPendingCopyOperationFixture error" + "data": "InvalidTagFixture error" } } } @@ -28382,7 +37745,7 @@ "optional": false, "rule": { "is": "equal", - "value": 409 + "value": 400 } }, { @@ -28390,23 +37753,66 @@ "optional": false, "rule": { "is": "equal", - "value": "NoPendingCopyOperation" + "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-page-ranges", + "id": "operations/azure/put-with-tier", "profile": "azure", "lane": "core", - "purpose": "List the written ranges of a page blob", + "purpose": "Write an object straight into the Cool access tier", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-page-ranges" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" ], "call": { - "key": "object-tests/pages/object.vhd", - "op": "azure.get_page_ranges" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/tiers/object.txt", + "op": "put", + "tier": "Cool" }, "exchanges": [ { @@ -28418,7 +37824,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -28426,7 +37832,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -28434,36 +37840,41 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "pagelist" + "value": "BlockBlob" + } + }, + { + "at": "/headers/x-ms-access-tier", + "optional": false, + "rule": { + "is": "equal", + "value": "Cool" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 201, "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-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "0511" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -28477,36 +37888,22 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/ranges", - "optional": false, - "rule": { - "is": "equal", - "value": [ - { - "end": 512, - "start": 0 - } - ] - } } ], "refusal": null }, { - "id": "operations/azure/upload-pages-unaligned", + "id": "operations/azure/set-tier-unknown", "profile": "azure", "lane": "core", - "purpose": "Refuse a page write that does not start on a 512-byte boundary", + "purpose": "Refuse an access tier the service does not have", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier" ], "call": { - "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", - "key": "object-tests/pages/object.vhd", - "offset": 1, - "op": "azure.upload_pages" + "key": "object-tests/tiers/object.txt", + "op": "azure.set_tier", + "tier": "Warm" }, "exchanges": [ { @@ -28526,7 +37923,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -28534,7 +37931,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" + "value": "" } }, { @@ -28542,23 +37939,15 @@ "optional": false, "rule": { "is": "equal", - "value": "page" - } - }, - { - "at": "/headers/x-ms-page-write", - "optional": false, - "rule": { - "is": "equal", - "value": "update" + "value": "tier" } }, { - "at": "/headers/x-ms-range", + "at": "/headers/x-ms-access-tier", "optional": false, "rule": { "is": "equal", - "value": "bytes=1-512" + "value": "Warm" } } ], @@ -28611,18 +38000,17 @@ "refusal": null }, { - "id": "operations/azure/upload-pages", + "id": "operations/azure/set-tier-cool", "profile": "azure", "lane": "core", - "purpose": "Write the first page of a page blob", + "purpose": "Move an object to the Cool access tier", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier" ], "call": { - "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=", - "key": "object-tests/pages/object.vhd", - "offset": 0, - "op": "azure.upload_pages" + "key": "object-tests/tiers/object.txt", + "op": "azure.set_tier", + "tier": "Cool" }, "exchanges": [ { @@ -28642,7 +38030,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "value": "/fixture/object-tests/tiers/object.txt" } }, { @@ -28650,7 +38038,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=" + "value": "" } }, { @@ -28658,38 +38046,114 @@ "optional": false, "rule": { "is": "equal", - "value": "page" + "value": "tier" } }, { - "at": "/headers/x-ms-page-write", + "at": "/headers/x-ms-access-tier", "optional": false, "rule": { "is": "equal", - "value": "update" + "value": "Cool" + } + } + ], + "allow_headers": [], + "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": "operations/azure/set-tier-rehydrate", + "profile": "azure", + "lane": "core", + "purpose": "Report a tier change that Azure accepts with 202, as it does when an archived blob starts to rehydrate, as a success", + "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": "Hot" + }, + "exchanges": [ + { + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "PUT" } }, { - "at": "/headers/x-ms-range", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "bytes=0-511" + "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": "Hot" } } ], "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" + } }, "body": { "encoding": "empty" @@ -28712,17 +38176,19 @@ "refusal": null }, { - "id": "operations/azure/create-page", + "id": "operations/azure/put-internal-error", "profile": "azure", "lane": "core", - "purpose": "Create a page blob of 1,024 bytes", + "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" + "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/pages/object.vhd", - "op": "azure.create_page", - "size": 1024 + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -28742,7 +38208,65 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/pages/object.vhd" + "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." + } + } + } + ] + }, + { + "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" } }, { @@ -28750,7 +38274,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -28758,64 +38282,32 @@ "optional": false, "rule": { "is": "equal", - "value": "PageBlob" - } - }, - { - "at": "/headers/x-ms-blob-content-length", - "optional": false, - "rule": { - "is": "equal", - "value": "1024" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 201, + "status": 500, "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": "InternalError" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "InternalErrorThe server encountered an internal error. Please retry the request." } } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/append-block-to-block-blob", - "profile": "azure", - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -28833,7 +38325,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -28841,81 +38333,40 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "appendblock" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 409, + "status": 500, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlobType" + "x-ms-error-code": "InternalError" }, "body": { "encoding": "utf8", - "data": "InvalidBlobTypeFixture 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": 409 - } + ], + "optional": true }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "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": [ { "alternatives": [ { @@ -28933,7 +38384,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -28941,88 +38392,40 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "appendblock" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-blob-condition-appendpos", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "0" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 412, + "status": 500, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "AppendPositionConditionNotMet" + "x-ms-error-code": "InternalError" }, "body": { "encoding": "utf8", - "data": "AppendPositionConditionNotMetFixture 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": 412 - } + ], + "optional": true }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "AppendPositionConditionNotMet" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/append-block", - "profile": "azure", - "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": [ { "alternatives": [ { @@ -29040,7 +38443,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29048,81 +38451,40 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "appendblock" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 201, + "status": 500, "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" + "x-ms-error-code": "InternalError" }, "body": { - "encoding": "empty" + "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/append_offset", - "optional": false, - "rule": { - "is": "equal", - "value": 5 - } + ], + "optional": true }, - { - "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": [ { "alternatives": [ { @@ -29140,7 +38502,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/append/object.log" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29148,7 +38510,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -29156,28 +38518,31 @@ "optional": false, "rule": { "is": "equal", - "value": "AppendBlob" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 201, + "status": 500, "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": "InternalError" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "InternalErrorThe server encountered an internal error. Please retry the request." } } } - ] + ], + "optional": true } ], "expect": [ @@ -29186,24 +38551,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 500 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/azure/put-leased-if-match-without-lease-id", + "id": "operations/azure/put-if-unmodified-since-past", "profile": "azure", "lane": "core", - "purpose": "Refuse a write to a leased object whose If-Match holds but that names no lease ID", + "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since", "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", + "body_base64": "MDEyMzQ1Njc4OQ==", + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -29224,7 +38605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29232,7 +38613,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -29244,15 +38625,17 @@ } }, { - "at": "/headers/if-match", + "at": "/headers/if-unmodified-since", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "value": "Sat, 01 Jan 2000 00:00:00 GMT" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 412, @@ -29261,11 +38644,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "LeaseIdMissingFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -29294,24 +38677,24 @@ "optional": false, "rule": { "is": "equal", - "value": "LeaseIdMissing" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/put-leased-with-lease-id", + "id": "operations/azure/put-content-encoding-gzip", "profile": "azure", "lane": "core", - "purpose": "Write to a leased object with its lease ID", + "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged", "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", + "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", + "content_encoding": "gzip", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -29332,7 +38715,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29340,7 +38723,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { @@ -29352,62 +38735,37 @@ } }, { - "at": "/headers/x-ms-lease-id", + "at": "/headers/x-ms-blob-content-encoding", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": "gzip" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 201, "headers": { + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-b9991ef94e3d\"", "last-modified": "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", + "x-ms-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.2084665Z" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/put-leased-without-lease-id", - "profile": "azure", - "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": [ { @@ -29423,7 +38781,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29431,7 +38789,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { @@ -29441,22 +38799,36 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/content-encoding", + "optional": false, + "rule": { + "is": "equal", + "value": "gzip" + } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "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": "utf8", - "data": "LeaseIdMissingFixture error" + "encoding": "base64", + "data": "" } } } @@ -29469,41 +38841,44 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-b9991ef94e3d\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "LeaseIdMissing" + "value": "2024-01-01T00:00:00.2084665Z" } } ], "refusal": null }, { - "id": "operations/azure/lease-break", + "id": "operations/azure/put-content-properties", "profile": "azure", "lane": "core", - "purpose": "Break a lease at once", + "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", "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" + "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": [ { @@ -29523,7 +38898,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29531,83 +38906,73 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "lease" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-lease-action", + "at": "/headers/x-ms-blob-content-type", "optional": false, "rule": { "is": "equal", - "value": "break" + "value": "text/plain; charset=utf-8" } }, { - "at": "/headers/x-ms-lease-break-period", + "at": "/headers/x-ms-blob-content-language", "optional": false, "rule": { "is": "equal", - "value": "0" + "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": { + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-b9991ef94e3d\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-ms-lease-time": "0" + "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": "empty" + "encoding": "base64", + "data": "" } } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/lease-release", - "profile": "azure", - "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": [ - { - "alternatives": [ + }, { "request": [ { @@ -29623,7 +38988,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29631,47 +38996,70 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "lease" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-lease-action", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "release" + "value": "text/plain; charset=utf-8" } }, { - "at": "/headers/x-ms-lease-id", + "at": "/headers/content-language", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "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": 200, + "status": 201, "headers": { + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "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": "empty" + "encoding": "base64", + "data": "" } } } @@ -29686,24 +39074,39 @@ "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/lease-acquire-leased", + "id": "operations/azure/put-content-type-edge-spaces", "profile": "azure", "lane": "core", - "purpose": "Refuse a second lease while another lease holds the object", + "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://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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "content_type": " text/plain ", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -29723,7 +39126,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29731,108 +39134,49 @@ "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" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-lease-duration", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "15" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-proposed-lease-id", + "at": "/headers/x-ms-blob-content-type", "optional": false, "rule": { "is": "equal", - "value": "66666666-7777-8888-9999-000000000000" + "value": "text/plain" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "x-ms-error-code": "LeaseAlreadyPresent" + "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": "utf8", - "data": "LeaseAlreadyPresentFixture error" + "encoding": "base64", + "data": "" } } - } - ] - } - ], - "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": "LeaseAlreadyPresent" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/lease-acquire", - "profile": "azure", - "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": [ - { - "alternatives": [ + }, { "request": [ { @@ -29848,7 +39192,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -29856,56 +39200,46 @@ "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" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-ms-lease-duration", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "15" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-proposed-lease-id", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": "text/plain" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 201, "headers": { + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-b9991ef94e3d\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-ms-lease-id": "11111111-2222-3333-4444-555555555555" + "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": "empty" + "encoding": "base64", + "data": "" } } } @@ -29922,31 +39256,61 @@ } }, { - "at": "/value/lease_id", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "11111111-2222-3333-4444-555555555555" + "value": "\"fixture-b9991ef94e3d\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.2084665Z" } } ], - "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" + } + } + ] }, { - "id": "operations/azure/put-with-tags", + "id": "operations/azure/put-first-version", "profile": "azure", "lane": "core", - "purpose": "Write an object with tags", + "purpose": "put first version", "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" - } + "body_base64": "djE=", + "key": "object-tests/versions-mtydohr2/object.txt", + "op": "put" }, "exchanges": [ { @@ -29966,7 +39330,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/versions-mtydohr2/object.txt" } }, { @@ -29974,7 +39338,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "djE=" } }, { @@ -29984,30 +39348,28 @@ "is": "equal", "value": "BlockBlob" } - }, - { - "at": "/headers/x-ms-tags", - "optional": false, - "rule": { - "is": "equal", - "value": "project=object-tests" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 201, "headers": { + "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-5769a0807b46\"", "last-modified": "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", + "x-ms-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.2318906Z" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -30022,21 +39384,39 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-5769a0807b46\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.2318906Z" + } } ], "refusal": null }, { - "id": "operations/azure/get-tags", + "id": "operations/azure/put-if-match-current", "profile": "azure", "lane": "core", - "purpose": "Read the tags of an object", + "purpose": "put if match current", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-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.get_tags" + "body_base64": "cmVwbGFjZWQ=", + "if_match": "\"fixture-b9991ef94e3d\"", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -30048,7 +39428,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -30056,7 +39436,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -30064,31 +39444,46 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cmVwbGFjZWQ=" } }, { - "at": "/query/comp", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "tags" + "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-type": "application/xml", + "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", "date": { "from": "now" - } + }, + "etag": "\"fixture-3e075954b24b\"", + "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.3814952Z" }, "body": { - "encoding": "utf8", - "data": "projectobject-tests" + "encoding": "base64", + "data": "" } } } @@ -30105,32 +39500,37 @@ } }, { - "at": "/value/tags", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": { - "project": "object-tests" - } + "value": "\"fixture-3e075954b24b\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.3814952Z" } } ], "refusal": null }, { - "id": "operations/azure/set-tags", + "id": "operations/azure/put-if-none-match-missing", "profile": "azure", "lane": "core", - "purpose": "Replace the tags of an object", + "purpose": "put if none match missing", "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" - } + "body_base64": "ZnJlc2g=", + "if_none_match": "*", + "key": "object-tests/write/fresh.txt", + "op": "put" }, "exchanges": [ { @@ -30150,48 +39550,54 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/write/fresh.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "projectobject-tests" + "is": "equal", + "value": "ZnJlc2g=" } }, { - "at": "/query/comp", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "tags" + "value": "*" } }, { - "at": "/headers/content-type", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/xml; charset=UTF-8" - ] + "is": "equal", + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 204, + "status": 201, "headers": { + "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", "date": { "from": "now" - } + }, + "etag": "\"fixture-0445b9b5a1dd\"", + "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.2457093Z" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -30206,23 +39612,38 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-0445b9b5a1dd\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.2457093Z" + } } ], "refusal": null }, { - "id": "operations/azure/put-with-tier", + "id": "operations/azure/put-key-1024", "profile": "azure", "lane": "core", - "purpose": "Write an object straight into the Cool access tier", + "purpose": "put key 1024", "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" + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "op": "put" }, "exchanges": [ { @@ -30242,7 +39663,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -30250,7 +39671,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "MQ==" } }, { @@ -30260,30 +39681,28 @@ "is": "equal", "value": "BlockBlob" } - }, - { - "at": "/headers/x-ms-access-tier", - "optional": false, - "rule": { - "is": "equal", - "value": "Cool" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 201, "headers": { + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-cf057aba568d\"", "last-modified": "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", + "x-ms-request-server-encrypted": "true", + "x-ms-version-id": "2024-01-01T00:00:00.8738118Z" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -30298,22 +39717,38 @@ "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/set-tier-unknown", + "id": "operations/azure/put-key-1025", "profile": "azure", "lane": "core", - "purpose": "Refuse an access tier the service does not have", + "purpose": "put key 1025", "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" + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "op": "put" }, "exchanges": [ { @@ -30333,7 +39768,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -30341,27 +39776,21 @@ "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "tier" + "value": "MQ==" } }, { - "at": "/headers/x-ms-access-tier", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "Warm" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 400, @@ -30370,11 +39799,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "InvalidHeaderValue" + "x-ms-error-code": "OutOfRangeInput" }, "body": { "encoding": "utf8", - "data": "InvalidHeaderValueFixture error" + "data": "OutOfRangeInputFixture error" } } } @@ -30403,24 +39832,65 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidHeaderValue" + "value": "OutOfRangeInput" } } ], - "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": "key" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "OutOfRangeInput" + } + } + ] }, { - "id": "operations/azure/set-tier-cool", + "id": "operations/azure/put-key-under-object", "profile": "azure", "lane": "core", - "purpose": "Move an object to the Cool access tier", + "purpose": "put key under object", "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" + "body_base64": "MQ==", + "key": "object-tests/order/a/b", + "op": "put" }, "exchanges": [ { @@ -30440,7 +39910,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/order/a/b" } }, { @@ -30448,37 +39918,38 @@ "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "tier" + "value": "MQ==" } }, { - "at": "/headers/x-ms-access-tier", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "Cool" + "value": "BlockBlob" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "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" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -30493,22 +39964,37 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-17ced520f182\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.2584945Z" + } } ], "refusal": null }, { - "id": "operations/azure/put-internal-error", + "id": "operations/azure/put-lost-the-race-to-create", "profile": "azure", "lane": "core", - "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries", + "purpose": "put lost the race to create", "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==", + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_none_match": "*", "key": "object-tests/write/object.txt", "op": "put" }, @@ -30538,7 +40024,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "YW5vdGhlciBvYmplY3Q=" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -30555,22 +40049,69 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 409, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "x-ms-error-code": "BlobAlreadyExists" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "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/put-md5-mismatch", + "profile": "azure", + "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": [ { "alternatives": [ { @@ -30588,7 +40129,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/hashes/md5-mismatch.txt" } }, { @@ -30596,66 +40137,15 @@ "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 - }, - { - "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" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/body_base64", + "at": "/headers/content-md5", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "eV8yArF8trw9S3cdjGyerw==" } }, { @@ -30672,23 +40162,68 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "x-ms-error-code": "Md5Mismatch" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "data": "Md5MismatchFixture 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": "Md5Mismatch" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/put-metadata-empty-value", + "profile": "azure", + "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": [ { @@ -30706,7 +40241,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -30714,7 +40249,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "MQ==" + } + }, + { + "at": "/headers/x-ms-meta-empty", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -30731,23 +40274,72 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "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": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "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-333d95b64818\"" + } + }, + { + "at": "/value/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.9480929Z" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/put-metadata-invalid-name", + "profile": "azure", + "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": [ { "alternatives": [ { @@ -30765,7 +40357,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/metadata/invalid-name.txt" } }, { @@ -30773,7 +40365,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "MQ==" + } + }, + { + "at": "/headers/x-ms-meta-not-valid", + "optional": false, + "rule": { + "is": "equal", + "value": "1" } }, { @@ -30790,23 +40390,106 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "x-ms-error-code": "InvalidMetadata" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "data": "InvalidMetadataFixture 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": "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/put-metadata-replaced", + "profile": "azure", + "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": [ { @@ -30824,7 +40507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -30832,7 +40515,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "Mg==" } }, { @@ -30849,22 +40532,25 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", "date": { "from": "now" }, - "x-ms-error-code": "InternalError" + "etag": "\"fixture-37b036d8c13f\"", + "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.7487600Z" }, "body": { - "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "encoding": "base64", + "data": "" } } } - ], - "optional": true + ] } ], "expect": [ @@ -30873,40 +40559,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 500 + "value": "\"fixture-37b036d8c13f\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "2024-01-01T00:00:00.7487600Z" } } ], "refusal": null }, { - "id": "operations/azure/put-if-unmodified-since-past", + "id": "operations/azure/put-metadata", "profile": "azure", "lane": "core", - "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since", + "purpose": "put metadata", "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", + "body_base64": "MQ==", + "key": "object-tests/metadata/object.txt", + "metadata": { + "name": "value", + "second": "2" + }, "op": "put" }, "exchanges": [ @@ -30927,7 +40616,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -30935,23 +40624,31 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "MQ==" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-meta-name", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "value" } }, { - "at": "/headers/if-unmodified-since", + "at": "/headers/x-ms-meta-second", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "2" + } + }, + { + "at": "/headers/x-ms-blob-type", + "optional": false, + "rule": { + "is": "equal", + "value": "BlockBlob" } } ], @@ -30960,17 +40657,21 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "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" }, "body": { - "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -30983,40 +40684,42 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-9abbc5e374ca\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "2024-01-01T00:00:00.7035036Z" } } ], "refusal": null }, { - "id": "operations/azure/put-content-encoding-gzip", + "id": "operations/azure/put-metadata-identifier-name", "profile": "azure", "lane": "core", - "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged", + "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": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", - "content_encoding": "gzip", - "key": "object-tests/write/object.txt", + "body_base64": "MQ==", + "key": "object-tests/metadata/identifier-name.txt", + "metadata": { + "_a1": "1" + }, "op": "put" }, "exchanges": [ @@ -31037,7 +40740,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/metadata/identifier-name.txt" } }, { @@ -31045,23 +40748,23 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "MQ==" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/x-ms-meta-_a1", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "1" } }, { - "at": "/headers/x-ms-blob-content-encoding", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "value": "BlockBlob" } } ], @@ -31072,22 +40775,69 @@ "response": { "status": 201, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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.2084665Z" + "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/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": [ { @@ -31103,7 +40853,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -31111,7 +40861,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "dHdv" } }, { @@ -31121,14 +40871,6 @@ "is": "equal", "value": "BlockBlob" } - }, - { - "at": "/headers/content-encoding", - "optional": false, - "rule": { - "is": "equal", - "value": "gzip" - } } ], "allow_headers": [ @@ -31138,15 +40880,15 @@ "response": { "status": 201, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", + "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "etag": "\"fixture-937c89bb7b5c\"", "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-version-id": "2024-01-01T00:00:00.6268993Z" }, "body": { "encoding": "base64", @@ -31171,7 +40913,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b9991ef94e3d\"" + "value": "\"fixture-937c89bb7b5c\"" } }, { @@ -31179,26 +40921,22 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2084665Z" + "value": "2024-01-01T00:00:00.6268993Z" } } ], "refusal": null }, { - "id": "operations/azure/put-content-properties", + "id": "operations/azure/put-overwrite", "profile": "azure", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "purpose": "put overwrite", "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", + "body_base64": "b3ZlcndyaXR0ZW4=", "key": "object-tests/write/object.txt", "op": "put" }, @@ -31228,7 +40966,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "b3ZlcndyaXR0ZW4=" } }, { @@ -31238,38 +40976,6 @@ "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": [ @@ -31279,22 +40985,70 @@ "response": { "status": 201, "headers": { - "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", + "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==", "date": { "from": "now" }, - "etag": "\"fixture-b9991ef94e3d\"", + "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.2084665Z" + "x-ms-version-id": "2024-01-01T00:00:00.7758823Z" }, "body": { "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": [ { "request": [ { @@ -31318,47 +41072,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": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-ms-blob-content-disposition", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "value": "\"fixture-088e5dc109cf\"" } }, { - "at": "/headers/cache-control", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "BlockBlob" } } ], @@ -31367,21 +41097,17 @@ ], "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" } } } @@ -31394,39 +41120,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-first-version", + "id": "operations/azure/put-precondition-failed-code-in-body", "profile": "azure", "lane": "core", - "purpose": "put first version", + "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" + "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": "djE=", - "key": "object-tests/versions-mtydohr2/object.txt", + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -31447,7 +41177,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31455,7 +41185,15 @@ "optional": false, "rule": { "is": "equal", - "value": "djE=" + "value": "YW5vdGhlciBvYmplY3Q=" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-088e5dc109cf\"" } }, { @@ -31472,21 +41210,16 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 412, "headers": { - "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", + "content-type": "application/xml", "date": { "from": "now" - }, - "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": "base64", - "data": "" + "encoding": "utf8", + "data": "ConditionNotMetFixture error" } } } @@ -31499,40 +41232,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5769a0807b46\"" + "value": 412 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2318906Z" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/put-if-match-current", + "id": "operations/azure/put-refused", "profile": "azure", "lane": "core", - "purpose": "put if match current", + "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": "cmVwbGFjZWQ=", - "if_match": "\"fixture-b9991ef94e3d\"", - "key": "object-tests/write/object.txt", + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object.txt", "op": "put" }, "exchanges": [ @@ -31553,7 +41285,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object.txt" } }, { @@ -31561,15 +41293,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-b9991ef94e3d\"" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } }, { @@ -31586,21 +41310,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 403, "headers": { - "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-3e075954b24b\"", - "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.3814952Z" + "x-ms-error-code": "AuthorizationPermissionMismatch" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "AuthorizationPermissionMismatchFixture error" } } } @@ -31613,40 +41333,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3e075954b24b\"" + "value": 403 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.3814952Z" + "value": "AuthorizationPermissionMismatch" } } ], "refusal": null }, { - "id": "operations/azure/put-if-none-match-missing", + "id": "operations/azure/put-second-version", "profile": "azure", "lane": "core", - "purpose": "put if none match missing", + "purpose": "put second version", "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", + "body_base64": "djI=", + "key": "object-tests/versions-mtydohr2/object.txt", "op": "put" }, "exchanges": [ @@ -31667,7 +41386,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/fresh.txt" + "value": "/fixture/object-tests/versions-mtydohr2/object.txt" } }, { @@ -31675,15 +41394,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ZnJlc2g=" - } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" + "value": "djI=" } }, { @@ -31702,15 +41413,15 @@ "response": { "status": 201, "headers": { - "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", + "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", "date": { "from": "now" }, - "etag": "\"fixture-0445b9b5a1dd\"", + "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.2457093Z" + "x-ms-version-id": "2024-01-01T00:00:00.3326281Z" }, "body": { "encoding": "base64", @@ -31735,7 +41446,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0445b9b5a1dd\"" + "value": "\"fixture-4768de772705\"" } }, { @@ -31743,23 +41454,23 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2457093Z" + "value": "2024-01-01T00:00:00.3326281Z" } } ], "refusal": null }, { - "id": "operations/azure/put-key-1024", + "id": "operations/azure/put-unauthenticated", "profile": "azure", "lane": "core", - "purpose": "put key 1024", + "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": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -31780,7 +41491,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -31788,7 +41499,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } }, { @@ -31805,21 +41516,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 401, "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": "InvalidAuthenticationInfo" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -31832,39 +41539,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-cf057aba568d\"" + "value": 401 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.8738118Z" + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure/put-key-1025", + "id": "operations/azure/put-with-crc64", "profile": "azure", "lane": "core", - "purpose": "put key 1025", + "purpose": "put with crc64", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "azure_crc64", + "value_base64": "9XBvAwWoR9o=" + }, + "key": "object-tests/hashes/crc64.txt", "op": "put" }, "exchanges": [ @@ -31885,7 +41596,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/hashes/crc64.txt" } }, { @@ -31893,7 +41604,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "ZGVjbGFyZWQtYm9keQ==" + } + }, + { + "at": "/headers/x-ms-content-crc64", + "optional": false, + "rule": { + "is": "equal", + "value": "9XBvAwWoR9o=" } }, { @@ -31910,17 +41629,21 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, - "x-ms-error-code": "OutOfRangeInput" + "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": "utf8", - "data": "OutOfRangeInputFixture error" + "encoding": "base64", + "data": "" } } } @@ -31933,80 +41656,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-90cfcb93036b\"" } }, { - "at": "/code", + "at": "/value/version", "optional": false, "rule": { "is": "equal", - "value": "OutOfRangeInput" + "value": "2024-01-01T00:00:00.1153123Z" } } ], - "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": false, - "rule": { - "is": "equal", - "value": 400 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "OutOfRangeInput" - } - } - ] + "refusal": null }, { - "id": "operations/azure/put-key-under-object", + "id": "operations/azure/put-with-md5", "profile": "azure", "lane": "core", - "purpose": "put key under object", + "purpose": "put with md5", "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", + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "md5", + "value_base64": "N6YZkbg+Lyfxtskwn8iRCg==" + }, + "key": "object-tests/hashes/md5.txt", "op": "put" }, "exchanges": [ @@ -32027,7 +41713,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/order/a/b" + "value": "/fixture/object-tests/hashes/md5.txt" } }, { @@ -32035,7 +41721,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "ZGVjbGFyZWQtYm9keQ==" + } + }, + { + "at": "/headers/content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { @@ -32054,15 +41748,15 @@ "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, - "etag": "\"fixture-17ced520f182\"", + "etag": "\"fixture-494ad7275bf7\"", "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-version-id": "2024-01-01T00:00:00.7803759Z" }, "body": { "encoding": "base64", @@ -32087,7 +41781,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-17ced520f182\"" + "value": "\"fixture-494ad7275bf7\"" } }, { @@ -32095,25 +41789,23 @@ "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.2584945Z" + "value": "2024-01-01T00:00:00.7803759Z" } } ], "refusal": null }, { - "id": "operations/azure/put-lost-the-race-to-create", + "id": "operations/azure/snapshot", "profile": "azure", "lane": "core", - "purpose": "put lost the race to create", + "purpose": "snapshot", "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" + "key": "object-tests/snapshots/object.txt", + "op": "azure.snapshot" }, "exchanges": [ { @@ -32133,7 +41825,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -32141,23 +41833,15 @@ "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": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "snapshot" } } ], @@ -32166,17 +41850,21 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobAlreadyExists" + "etag": "\"fixture-e3698635ab53\"", + "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": "false", + "x-ms-snapshot": "2024-01-01T00:00:00.7351568Z", + "x-ms-version-id": "2024-01-01T00:00:00.8746441Z" }, "body": { - "encoding": "utf8", - "data": "BlobAlreadyExistsFixture error" + "encoding": "base64", + "data": "" } } } @@ -32189,44 +41877,33 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 409 + "value": "ok" } }, { - "at": "/code", + "at": "/value/snapshot", "optional": false, "rule": { "is": "equal", - "value": "BlobAlreadyExists" + "value": "2024-01-01T00:00:00.7351568Z" } } ], "refusal": null }, { - "id": "operations/azure/put-md5-mismatch", + "id": "operations/azure/stage-empty", "profile": "azure", "lane": "core", - "purpose": "put md5 mismatch", + "purpose": "stage empty", "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" + "block_id_base64": "MDAwMDAz", + "body_base64": "", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -32246,7 +41923,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5-mismatch.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -32254,23 +41931,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" + "value": "" } }, { - "at": "/headers/content-md5", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "eV8yArF8trw9S3cdjGyerw==" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "MDAwMDAz" } } ], @@ -32285,11 +41962,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "Md5Mismatch" + "x-ms-error-code": "InvalidHeaderValue" }, "body": { "encoding": "utf8", - "data": "Md5MismatchFixture error" + "data": "InvalidHeaderValueFixture error" } } } @@ -32318,27 +41995,25 @@ "optional": false, "rule": { "is": "equal", - "value": "Md5Mismatch" + "value": "InvalidHeaderValue" } } ], "refusal": null }, { - "id": "operations/azure/put-metadata-empty-value", + "id": "operations/azure/stage-escaped-id", "profile": "azure", "lane": "core", - "purpose": "put metadata empty value", + "purpose": "stage escaped id", "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" + "block_id_base64": "+/8=", + "body_base64": "b25l", + "key": "object-tests/multipart/escaped.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -32358,7 +42033,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { @@ -32366,23 +42041,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "b25l" } }, { - "at": "/headers/x-ms-meta-empty", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "+/8=" } } ], @@ -32393,15 +42068,12 @@ "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "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" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -32423,38 +42095,31 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-333d95b64818\"" - } - }, - { - "at": "/value/version", - "optional": false, + "optional": true, "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.9480929Z" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-metadata-invalid-name", + "id": "operations/azure/stage-id-too-long", "profile": "azure", "lane": "core", - "purpose": "put metadata invalid name", + "purpose": "stage id too long", "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" + "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -32474,7 +42139,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/invalid-name.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -32482,23 +42147,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "dGhpcmQ=" } }, { - "at": "/headers/x-ms-meta-not-valid", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=" } } ], @@ -32513,11 +42178,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "InvalidMetadata" + "x-ms-error-code": "OutOfRangeInput" }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" + "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes." } } } @@ -32546,7 +42211,7 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidMetadata" + "value": "OutOfRangeInput" } } ], @@ -32572,7 +42237,7 @@ "optional": false, "rule": { "is": "equal", - "value": "metadata" + "value": "block_id_base64" } }, { @@ -32588,23 +42253,24 @@ "optional": true, "rule": { "is": "equal", - "value": "InvalidMetadata" + "value": "OutOfRangeInput" } } ] }, { - "id": "operations/azure/put-metadata-replaced", + "id": "operations/azure/stage-mixed-length-id", "profile": "azure", "lane": "core", - "purpose": "put metadata replaced", + "purpose": "stage mixed length id", "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" + "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -32624,7 +42290,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -32632,15 +42298,23 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "dGhpcmQ=" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" } } ], @@ -32649,21 +42323,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 400, "headers": { - "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-37b036d8c13f\"", - "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.7487600Z" + "x-ms-error-code": "InvalidBlobOrBlock" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidBlobOrBlockFixture error" } } } @@ -32676,44 +42346,44 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-37b036d8c13f\"" + "value": 400 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7487600Z" + "value": "InvalidBlobOrBlock" } } ], "refusal": null }, { - "id": "operations/azure/put-metadata", + "id": "operations/azure/stage-mixed-length-id-code-in-body", "profile": "azure", "lane": "core", - "purpose": "put 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": { - "body_base64": "MQ==", - "key": "object-tests/metadata/object.txt", - "metadata": { - "name": "value", - "second": "2" - }, - "op": "put" + "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", + "body_base64": "dGhpcmQ=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -32733,7 +42403,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -32741,31 +42411,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-ms-meta-name", - "optional": false, - "rule": { - "is": "equal", - "value": "value" + "value": "dGhpcmQ=" } }, { - "at": "/headers/x-ms-meta-second", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" } } ], @@ -32774,21 +42436,16 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 400, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "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" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidBlobOrBlockFixture error" } } } @@ -32801,43 +42458,41 @@ "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/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7035036Z" + "value": "InvalidBlobOrBlock" } } ], "refusal": null }, { - "id": "operations/azure/put-metadata-identifier-name", + "id": "operations/azure/stage-unauthenticated", "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.", + "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": "MQ==", - "key": "object-tests/metadata/identifier-name.txt", - "metadata": { - "_a1": "1" - }, - "op": "put" + "block_id_base64": "MDAwMDAx", + "body_base64": "Zmlyc3Q=", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -32857,7 +42512,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/identifier-name.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -32865,23 +42520,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "Zmlyc3Q=" } }, { - "at": "/headers/x-ms-meta-_a1", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "MDAwMDAx" } } ], @@ -32890,21 +42545,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 401, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "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": "InvalidAuthenticationInfo" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -32917,40 +42568,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9abbc5e374ca\"" + "value": 401 } }, { - "at": "/value/version", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "2024-01-01T00:00:00.7035036Z" + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure/put-over-snapshotted", + "id": "operations/azure/stage", "profile": "azure", "lane": "core", - "purpose": "put over snapshotted", + "purpose": "stage", "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" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -32970,7 +42622,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -32978,15 +42630,23 @@ "optional": false, "rule": { "is": "equal", - "value": "dHdv" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -32997,15 +42657,12 @@ "response": { "status": 201, "headers": { - "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==", "date": { "from": "now" }, - "etag": "\"fixture-937c89bb7b5c\"", "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.6268993Z" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -33027,35 +42684,31 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-937c89bb7b5c\"" - } - }, - { - "at": "/value/version", - "optional": false, + "optional": true, "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.6268993Z" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-overwrite", + "id": "operations/azure/stage-id-64-bytes", "profile": "azure", "lane": "core", - "purpose": "put overwrite", + "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": { - "body_base64": "b3ZlcndyaXR0ZW4=", - "key": "object-tests/write/object.txt", - "op": "put" + "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==", + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/staged.bin", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33075,7 +42728,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -33083,15 +42736,23 @@ "optional": false, "rule": { "is": "equal", - "value": "b3ZlcndyaXR0ZW4=" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==" } } ], @@ -33102,15 +42763,12 @@ "response": { "status": 201, "headers": { - "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==", "date": { "from": "now" }, - "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" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -33132,36 +42790,31 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-cf4724500964\"" - } - }, - { - "at": "/value/version", - "optional": false, + "optional": true, "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.7758823Z" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-precondition-failed", + "id": "operations/azure/stage-key-question", "profile": "azure", "lane": "core", - "purpose": "put precondition failed", + "purpose": "stage, with the key \"question?mark.txt\"", "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" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/question?mark.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33181,7 +42834,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -33189,23 +42842,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "c2Vjb25k" } }, { - "at": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "MDAwMDAy" } } ], @@ -33214,17 +42867,18 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "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", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -33237,44 +42891,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 412 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "ConditionNotMet" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-precondition-failed-code-in-body", + "id": "operations/azure/stage-key-hash", "profile": "azure", "lane": "core", - "purpose": "put precondition failed, with the error code only in the XML body", + "purpose": "stage, with the key \"hash#tag.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": { - "body_base64": "YW5vdGhlciBvYmplY3Q=", - "if_match": "\"fixture-088e5dc109cf\"", - "key": "object-tests/write/object.txt", - "op": "put" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/hash#tag.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33294,7 +42940,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -33302,23 +42948,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "c2Vjb25k" } }, { - "at": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "MDAwMDAy" } } ], @@ -33327,16 +42973,18 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "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": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -33349,40 +42997,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 412 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "ConditionNotMet" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-refused", + "id": "operations/azure/stage-key-percent", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "stage, with the key \"percent%20.txt\"", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object.txt", - "op": "put" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/percent%20.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33402,7 +43046,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -33410,15 +43054,23 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -33427,17 +43079,18 @@ ], "allow_query": [], "response": { - "status": 403, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "AuthorizationPermissionMismatch" + "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": "AuthorizationPermissionMismatchFixture error" + "encoding": "base64", + "data": "" } } } @@ -33450,40 +43103,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 403 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "AuthorizationPermissionMismatch" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-second-version", + "id": "operations/azure/stage-key-plus", "profile": "azure", "lane": "core", - "purpose": "put second version", + "purpose": "stage, with the key \"plus+plus.txt\"", "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" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/plus+plus.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33503,7 +43152,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -33511,15 +43160,23 @@ "optional": false, "rule": { "is": "equal", - "value": "djI=" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -33530,15 +43187,12 @@ "response": { "status": 201, "headers": { - "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", "date": { "from": "now" }, - "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" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -33560,35 +43214,137 @@ }, { "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": [ + { + "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": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4768de772705\"" + "value": "ok" } }, { - "at": "/value/version", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.3326281Z" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-unauthenticated", + "id": "operations/azure/stage-key-non-ascii", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "stage, with the key \"café/雪.txt\"", "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" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/café/雪.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33608,7 +43364,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -33616,15 +43372,23 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "block" + } + }, + { + "at": "/query/blockid", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" } } ], @@ -33633,17 +43397,18 @@ ], "allow_query": [], "response": { - "status": 401, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "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": "InvalidAuthenticationInfoFixture error" + "encoding": "base64", + "data": "" } } } @@ -33656,44 +43421,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 401 + "value": "ok" } }, { - "at": "/code", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidAuthenticationInfo" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/put-with-crc64", + "id": "operations/azure/stage-key-double-slash", "profile": "azure", "lane": "core", - "purpose": "put with crc64", + "purpose": "stage, with the key \"double//slash.txt\"", "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" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/double//slash.txt", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33713,7 +43470,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -33721,23 +43478,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" + "value": "c2Vjb25k" } }, { - "at": "/headers/x-ms-content-crc64", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "9XBvAwWoR9o=" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "MDAwMDAy" } } ], @@ -33748,15 +43505,12 @@ "response": { "status": 201, "headers": { - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, - "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" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -33778,39 +43532,31 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-90cfcb93036b\"" - } - }, - { - "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/put-with-md5", + "id": "operations/azure/stage-key-trailing-slash", "profile": "azure", "lane": "core", - "purpose": "put with md5", + "purpose": "stage, with the key \"trailing-slash/\"", "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" + "block_id_base64": "MDAwMDAy", + "body_base64": "c2Vjb25k", + "key": "object-tests/keys/trailing-slash/", + "op": "azure.stage_block" }, "exchanges": [ { @@ -33830,7 +43576,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -33838,23 +43584,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" + "value": "c2Vjb25k" } }, { - "at": "/headers/content-md5", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "block" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/blockid", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "MDAwMDAy" } } ], @@ -33865,15 +43611,12 @@ "response": { "status": 201, "headers": { - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", "date": { "from": "now" }, - "etag": "\"fixture-494ad7275bf7\"", "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.7803759Z" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -33895,34 +43638,35 @@ }, { "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-494ad7275bf7\"" - } - }, - { - "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/snapshot", + "id": "operations/azure/stage-from-url", "profile": "azure", "lane": "core", - "purpose": "snapshot", + "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/snapshots/object.txt", - "op": "azure.snapshot" + "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": [ { @@ -33942,7 +43686,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -33958,12 +43702,37 @@ "optional": false, "rule": { "is": "equal", - "value": "snapshot" + "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" + "content-type", + "x-ms-copy-source-authorization" ], "allow_query": [], "response": { @@ -33972,12 +43741,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-e3698635ab53\"", "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": "false", - "x-ms-snapshot": "2024-01-01T00:00:00.7351568Z", - "x-ms-version-id": "2024-01-01T00:00:00.8746441Z" + "x-ms-request-server-encrypted": "true" }, "body": { "encoding": "base64", @@ -33998,29 +43764,31 @@ } }, { - "at": "/value/snapshot", - "optional": false, + "at": "/value/etag", + "optional": true, "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.7351568Z" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/stage-empty", + "id": "operations/azure/staged-absent", "profile": "azure", "lane": "core", - "purpose": "stage empty", + "purpose": "staged absent", "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/multipart/absent.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34032,7 +43800,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34040,7 +43808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/absent.bin" } }, { @@ -34056,34 +43824,32 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAz" + "value": "all" } } ], - "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" } } } @@ -34104,7 +43870,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -34112,25 +43878,27 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidHeaderValue" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure/stage-escaped-id", + "id": "operations/azure/staged-absent-code-in-body", "profile": "azure", "lane": "core", - "purpose": "stage escaped id", + "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": { - "block_id_base64": "+/8=", - "body_base64": "b25l", - "key": "object-tests/multipart/escaped.bin", - "op": "azure.stage_block" + "key": "object-tests/multipart/absent.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34142,7 +43910,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34150,7 +43918,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/multipart/absent.bin" } }, { @@ -34158,7 +43926,7 @@ "optional": false, "rule": { "is": "equal", - "value": "b25l" + "value": "" } }, { @@ -34166,35 +43934,31 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "+/8=" + "value": "all" } } ], - "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" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobNotFoundFixture error" } } } @@ -34207,36 +43971,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-too-long", + "id": "operations/azure/staged-after-commit", "profile": "azure", "lane": "core", - "purpose": "stage id too long", + "purpose": "staged after commit", "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/multipart/committed.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34248,7 +44016,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34256,7 +44024,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { @@ -34264,7 +44032,7 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" + "value": "" } }, { @@ -34272,35 +44040,36 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "OutOfRangeInput" + "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" }, "body": { "encoding": "utf8", - "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes." - } + "data": "MDAwMDAx5MDAwMDAy6" + }, + "framing": "chunked" } } ] @@ -34312,82 +44081,72 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/committed/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "MDAwMDAx" } }, { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "OutOfRangeInput" - } - } - ], - "refusal": [ - { - "at": "/outcome", + "at": "/value/committed/0/size", "optional": false, "rule": { "is": "equal", - "value": "refused" + "value": 5 } }, { - "at": "/kind", + "at": "/value/committed/1/id_base64", "optional": false, "rule": { - "is": "matches", - "pattern": ".+" + "is": "equal", + "value": "MDAwMDAy" } }, { - "at": "/parameter", + "at": "/value/committed/1/size", "optional": false, "rule": { "is": "equal", - "value": "block_id_base64" + "value": 6 } }, { - "at": "/status", - "optional": true, + "at": "/value/committed", + "optional": false, "rule": { - "is": "equal", - "value": 400 + "is": "array_length", + "value": 2 } }, { - "at": "/code", - "optional": true, + "at": "/value/uncommitted", + "optional": false, "rule": { - "is": "equal", - "value": "OutOfRangeInput" + "is": "array_length", + "value": 0 } } - ] + ], + "refusal": null }, { - "id": "operations/azure/stage-mixed-length-id", + "id": "operations/azure/staged-after-replacement", "profile": "azure", "lane": "core", - "purpose": "stage mixed length id", + "purpose": "staged after replacement", "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/multipart/replaced.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34399,7 +44158,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34407,7 +44166,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -34415,7 +44174,7 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" + "value": "" } }, { @@ -34423,35 +44182,36 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidBlobOrBlock" + "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": "utf8", - "data": "InvalidBlobOrBlockFixture error" - } + "data": "MDAwMDAx5" + }, + "framing": "chunked" } } ] @@ -34463,44 +44223,56 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/committed/0/id_base64", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "MDAwMDAx" } }, { - "at": "/code", + "at": "/value/committed/0/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidBlobOrBlock" + "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/stage-mixed-length-id-code-in-body", + "id": "operations/azure/staged-after-whole-write", "profile": "azure", "lane": "core", - "purpose": "stage mixed length id, with the error code only in the XML body", + "purpose": "staged after whole write", "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": { - "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy", - "body_base64": "dGhpcmQ=", - "key": "object-tests/multipart/staged.bin", - "op": "azure.stage_block" + "key": "object-tests/multipart/whole.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34512,7 +44284,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34520,7 +44292,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/whole.bin" } }, { @@ -34528,7 +44300,7 @@ "optional": false, "rule": { "is": "equal", - "value": "dGhpcmQ=" + "value": "" } }, { @@ -34536,34 +44308,36 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { "content-type": "application/xml", "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": "InvalidBlobOrBlockFixture error" - } + "data": "" + }, + "framing": "chunked" } } ] @@ -34575,41 +44349,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": "InvalidBlobOrBlock" + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/azure/stage-unauthenticated", + "id": "operations/azure/staged-committed-empty", "profile": "azure", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "staged committed empty", "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" + "kind": "committed", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34621,7 +44394,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34637,7 +44410,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "" } }, { @@ -34645,35 +44418,35 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAx" + "value": "committed" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 401, + "status": 200, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "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": "InvalidAuthenticationInfoFixture error" - } + "data": "" + }, + "framing": "chunked" } } ] @@ -34685,41 +44458,40 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/committed", "optional": false, "rule": { - "is": "equal", - "value": 401 + "is": "array_length", + "value": 0 } }, { - "at": "/code", + "at": "/value/uncommitted", "optional": false, "rule": { - "is": "equal", - "value": "InvalidAuthenticationInfo" + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/azure/stage", + "id": "operations/azure/staged-committed-nothing", "profile": "azure", "lane": "core", - "purpose": "stage", + "purpose": "staged committed nothing", "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/multipart/empty.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34731,7 +44503,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34739,7 +44511,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { @@ -34747,7 +44519,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -34755,36 +44527,36 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "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", - "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": "" + }, + "framing": "chunked" } } ] @@ -34800,32 +44572,36 @@ } }, { - "at": "/value/etag", - "optional": true, + "at": "/value/committed", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/uncommitted", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 } } ], "refusal": null }, { - "id": "operations/azure/stage-id-64-bytes", + "id": "operations/azure/staged-escaped-id", "profile": "azure", "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": "staged escaped id", "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/multipart/escaped.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34837,7 +44613,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34845,7 +44621,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { @@ -34853,7 +44629,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -34861,36 +44637,35 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "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", - "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": "+/8=3" + }, + "framing": "chunked" } } ] @@ -34906,32 +44681,52 @@ } }, { - "at": "/value/etag", - "optional": true, + "at": "/value/committed", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/uncommitted/0/id_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "+/8=" + } + }, + { + "at": "/value/uncommitted/0/size", + "optional": false, + "rule": { + "is": "equal", + "value": 3 + } + }, + { + "at": "/value/uncommitted", + "optional": false, + "rule": { + "is": "array_length", + "value": 1 } } ], "refusal": null }, { - "id": "operations/azure/stage-key-question", + "id": "operations/azure/staged-replacement", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"question?mark.txt\"", + "purpose": "staged replacement", "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/multipart/pending.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -34943,7 +44738,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -34951,7 +44746,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { @@ -34959,7 +44754,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -34967,36 +44762,36 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 200, "headers": { + "content-type": "application/xml", "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", - "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": "MDAwMDAx5MDAwMDAy6MDAwMDAx5" + }, + "framing": "chunked" } } ] @@ -35012,32 +44807,84 @@ } }, { - "at": "/value/etag", - "optional": true, + "at": "/value/committed/0/id_base64", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "MDAwMDAx" + } + }, + { + "at": "/value/committed/0/size", + "optional": false, + "rule": { + "is": "equal", + "value": 5 + } + }, + { + "at": "/value/committed/1/id_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDAwMDAy" + } + }, + { + "at": "/value/committed/1/size", + "optional": false, + "rule": { + "is": "equal", + "value": 6 + } + }, + { + "at": "/value/committed", + "optional": false, + "rule": { + "is": "array_length", + "value": 2 + } + }, + { + "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", + "optional": false, + "rule": { + "is": "array_length", + "value": 1 } } ], "refusal": null }, { - "id": "operations/azure/stage-key-hash", + "id": "operations/azure/staged-uncommitted-only", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"hash#tag.txt\"", + "purpose": "staged uncommitted only", "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" + "key": "object-tests/multipart/staged.bin", + "kind": "all", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -35049,7 +44896,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -35057,7 +44904,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -35065,7 +44912,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -35073,36 +44920,35 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "all" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "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", - "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": "MDAwMDAx5MDAwMDAy6" + }, + "framing": "chunked" } } ] @@ -35118,32 +44964,68 @@ } }, { - "at": "/value/etag", - "optional": true, + "at": "/value/committed", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/azure/stage-key-percent", + "id": "operations/azure/staged-uncommitted", "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"percent%20.txt\"", + "purpose": "staged uncommitted", "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" + "key": "object-tests/multipart/staged.bin", + "kind": "uncommitted", + "op": "azure.list_blocks" }, "exchanges": [ { @@ -35155,7 +45037,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -35163,7 +45045,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { @@ -35171,7 +45053,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -35179,36 +45061,35 @@ "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "blocklist" } }, { - "at": "/query/blockid", + "at": "/query/blocklisttype", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "uncommitted" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "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", - "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": "MDAwMDAx5MDAwMDAy6" + }, + "framing": "chunked" } } ] @@ -35224,32 +45105,68 @@ } }, { - "at": "/value/etag", - "optional": true, + "at": "/value/committed", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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/azure/stage-key-plus", - "profile": "azure", + "id": "operations/azure-hns/commit-container-missing", + "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"plus+plus.txt\"", + "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": { - "block_id_base64": "MDAwMDAy", - "body_base64": "c2Vjb25k", - "key": "object-tests/keys/plus+plus.txt", - "op": "azure.stage_block" + "blocks": [], + "key": "object.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -35269,31 +45186,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "c2Vjb25k" + "value": "/fixture/object.bin" } }, { - "at": "/query/comp", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "block" + "is": "xml", + "value": "" } }, { - "at": "/query/blockid", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "blocklist" } } ], @@ -35302,18 +45211,17 @@ ], "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": "ContainerNotFound" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ContainerNotFoundFixture error" } } } @@ -35326,36 +45234,54 @@ "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": "ContainerNotFound" + } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" } } ], "refusal": null }, { - "id": "operations/azure/stage-key-space", - "profile": "azure", + "id": "operations/azure-hns/commit-declaring-md5", + "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"space name.txt\"", + "purpose": "commit declaring md5", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "content_md5_base64": "N6YZkbg+Lyfxtskwn8iRCg==", + "key": "object-tests/hashes/committed.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -35375,31 +45301,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/hashes/committed.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "c2Vjb25k" + "is": "xml", + "value": "MDAwMDAx" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-content-md5", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { - "at": "/query/blockid", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "blocklist" } } ], @@ -35413,6 +45339,7 @@ "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" @@ -35437,6 +45364,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-9a581bc70e20\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -35450,18 +45385,26 @@ "refusal": null }, { - "id": "operations/azure/stage-key-non-ascii", - "profile": "azure", + "id": "operations/azure-hns/commit-duplicate-id", + "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"café/雪.txt\"", + "purpose": "commit duplicate id", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "key": "object-tests/multipart/duplicate.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -35481,15 +45424,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/multipart/duplicate.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "c2Vjb25k" + "is": "xml", + "value": "MDAwMDAxMDAwMDAx" } }, { @@ -35497,15 +45440,7 @@ "optional": false, "rule": { "is": "equal", - "value": "block" - } - }, - { - "at": "/query/blockid", - "optional": false, - "rule": { - "is": "equal", - "value": "MDAwMDAy" + "value": "blocklist" } } ], @@ -35519,6 +45454,7 @@ "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" @@ -35543,6 +45479,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-a8581b642c5f\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -35556,18 +45500,22 @@ "refusal": null }, { - "id": "operations/azure/stage-key-double-slash", - "profile": "azure", + "id": "operations/azure-hns/commit-escaped-id", + "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"double//slash.txt\"", + "purpose": "commit escaped id", "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" + "blocks": [ + { + "id_base64": "+/8=", + "kind": "latest" + } + ], + "key": "object-tests/multipart/escaped.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -35587,15 +45535,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/multipart/escaped.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "c2Vjb25k" + "is": "xml", + "value": "+/8=" } }, { @@ -35603,15 +45551,7 @@ "optional": false, "rule": { "is": "equal", - "value": "block" - } - }, - { - "at": "/query/blockid", - "optional": false, - "rule": { - "is": "equal", - "value": "MDAwMDAy" + "value": "blocklist" } } ], @@ -35625,6 +45565,7 @@ "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" @@ -35649,6 +45590,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-77b5e2317b8a\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -35662,18 +45611,23 @@ "refusal": null }, { - "id": "operations/azure/stage-key-trailing-slash", - "profile": "azure", + "id": "operations/azure-hns/commit-lost-the-race-to-create", + "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"trailing-slash/\"", + "purpose": "commit lost the race to create", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "if_none_match": "*", + "key": "object-tests/multipart/pending.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -35693,31 +45647,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "c2Vjb25k" + "is": "xml", + "value": "MDAwMDAx" } }, { - "at": "/query/comp", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "block" + "value": "*" } }, { - "at": "/query/blockid", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAy" + "value": "blocklist" } } ], @@ -35726,18 +45680,17 @@ ], "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": "BlobAlreadyExists" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobAlreadyExistsFixture error" } } } @@ -35750,40 +45703,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": 409 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "BlobAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure/stage-from-url", - "profile": "azure", + "id": "operations/azure-hns/commit-nothing", + "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", + "purpose": "commit nothing", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-block-from-url" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "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 - } + "blocks": [], + "key": "object-tests/multipart/empty.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -35803,15 +45756,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/multipart/empty.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "" } }, { @@ -35819,37 +45772,12 @@ "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" + "value": "blocklist" } } ], "allow_headers": [ - "content-type", - "x-ms-copy-source-authorization" + "content-type" ], "allow_query": [], "response": { @@ -35858,6 +45786,7 @@ "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" @@ -35882,6 +45811,14 @@ }, { "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-072bed78cc6a\"" + } + }, + { + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -35895,17 +45832,22 @@ "refusal": null }, { - "id": "operations/azure/staged-absent", - "profile": "azure", + "id": "operations/azure-hns/commit-over-whole-object", + "profile": "azure-hns", "lane": "core", - "purpose": "staged absent", + "purpose": "commit over whole object", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "key": "object-tests/multipart/over.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -35917,7 +45859,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -35925,15 +45867,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/absent.bin" + "value": "/fixture/object-tests/multipart/over.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAx" } }, { @@ -35943,30 +45885,26 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 404, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "etag": "\"fixture-7dc650e58291\"", + "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": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -35979,43 +45917,49 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-7dc650e58291\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "BlobNotFound" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-absent-code-in-body", - "profile": "azure", + "id": "operations/azure-hns/commit-precondition-failed", + "profile": "azure-hns", "lane": "core", - "purpose": "staged absent, with the error code only in the XML body", + "purpose": "commit precondition failed", "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": { - "key": "object-tests/multipart/absent.bin", - "kind": "all", - "op": "azure.list_blocks" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/multipart/pending.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36027,7 +45971,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36035,47 +45979,50 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/absent.bin" + "value": "/fixture/object-tests/multipart/pending.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAx" } }, { - "at": "/query/comp", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "\"fixture-088e5dc109cf\"" } }, { - "at": "/query/blocklisttype", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "all" + "value": "blocklist" } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 404, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -36096,7 +46043,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 } }, { @@ -36104,24 +46051,24 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure/staged-after-commit", - "profile": "azure", + "id": "operations/azure-hns/commit-refused", + "profile": "azure-hns", "lane": "core", - "purpose": "staged after commit", + "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/multipart/committed.bin", - "kind": "all", - "op": "azure.list_blocks" + "blocks": [], + "key": "object.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36133,7 +46080,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36141,15 +46088,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "" } }, { @@ -36159,34 +46106,25 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "ContainerNotFound" }, "body": { "encoding": "utf8", - "data": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "data": "ContainerNotFoundFixture error" + } } } ] @@ -36198,72 +46136,49 @@ "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": 404 } }, { - "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": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure/staged-after-replacement", - "profile": "azure", + "id": "operations/azure-hns/commit-reordered", + "profile": "azure-hns", "lane": "core", - "purpose": "staged after replacement", + "purpose": "commit reordered", "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" + "blocks": [ + { + "id_base64": "MDAwMDAy", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "key": "object-tests/multipart/reordered.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36275,7 +46190,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36283,15 +46198,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture/object-tests/multipart/reordered.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAyMDAwMDAx" } }, { @@ -36301,34 +46216,27 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-2184b3e6c2c3\"", + "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-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-ms-request-server-encrypted": "true" }, "body": { - "encoding": "utf8", - "data": "MDAwMDAx5" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -36344,52 +46252,44 @@ } }, { - "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 - } - }, - { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 1 + "value": "\"fixture-446301cfeaef\"" } }, { - "at": "/value/uncommitted", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-after-whole-write", - "profile": "azure", + "id": "operations/azure-hns/commit-replacement", + "profile": "azure-hns", "lane": "core", - "purpose": "staged after whole write", + "purpose": "commit replacement", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + } + ], + "key": "object-tests/multipart/replaced.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36401,7 +46301,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36409,15 +46309,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/whole.bin" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAx" } }, { @@ -36427,34 +46327,27 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-f439b54167cb\"", + "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": "" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -36470,36 +46363,48 @@ } }, { - "at": "/value/committed", + "at": "/value/etag", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "\"fixture-9c5e55ff559c\"" } }, { - "at": "/value/uncommitted", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure/staged-committed-empty", - "profile": "azure", + "id": "operations/azure-hns/commit-unstaged-id", + "profile": "azure-hns", "lane": "core", - "purpose": "staged committed empty", + "purpose": "commit unstaged id", "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", - "kind": "committed", - "op": "azure.list_blocks" + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36511,7 +46416,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36523,11 +46428,11 @@ } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDA5" } }, { @@ -36537,33 +46442,25 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "committed" - } } ], - "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": "" - }, - "framing": "chunked" + "data": "InvalidBlockListFixture error" + } } } ] @@ -36575,40 +46472,52 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/committed", + "at": "/status", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 400 } }, { - "at": "/value/uncommitted", + "at": "/code", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "InvalidBlockList" } } ], "refusal": null }, { - "id": "operations/azure/staged-committed-nothing", - "profile": "azure", + "id": "operations/azure-hns/commit-unstaged-id-code-in-body", + "profile": "azure-hns", "lane": "core", - "purpose": "staged committed nothing", + "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" + "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/empty.bin", - "kind": "all", - "op": "azure.list_blocks" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDA5", + "kind": "latest" + } + ], + "key": "object-tests/multipart/staged.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36620,7 +46529,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36628,15 +46537,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/multipart/staged.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDA5" } }, { @@ -36646,34 +46555,24 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "" - }, - "framing": "chunked" + "data": "InvalidBlockListFixture error" + } } } ] @@ -36685,40 +46584,49 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/committed", + "at": "/status", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": 400 } }, { - "at": "/value/uncommitted", + "at": "/code", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "InvalidBlockList" } } ], "refusal": null }, { - "id": "operations/azure/staged-escaped-id", - "profile": "azure", + "id": "operations/azure-hns/commit", + "profile": "azure-hns", "lane": "core", - "purpose": "staged escaped id", + "purpose": "commit", "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" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/multipart/committed.bin", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36730,7 +46638,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36738,15 +46646,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -36756,33 +46664,27 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "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": "+/8=3" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -36798,52 +46700,48 @@ } }, { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 0 - } - }, - { - "at": "/value/uncommitted/0/id_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "+/8=" - } - }, - { - "at": "/value/uncommitted/0/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 3 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "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-replacement", - "profile": "azure", + "id": "operations/azure-hns/commit-key-question", + "profile": "azure-hns", "lane": "core", - "purpose": "staged replacement", + "purpose": "commit, 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/multipart/pending.bin", - "kind": "all", - "op": "azure.list_blocks" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/question?mark.txt", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -36855,7 +46753,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36863,15 +46761,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -36881,127 +46779,84 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-9c5ca12bcfc9\"", + "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": "MDAwMDAx5MDAwMDAy6MDAwMDAx5" - }, - "framing": "chunked" - } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "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 - } - }, - { - "at": "/value/committed/1/id_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "MDAwMDAy" - } - }, - { - "at": "/value/committed/1/size", - "optional": false, - "rule": { - "is": "equal", - "value": 6 - } - }, - { - "at": "/value/committed", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 - } - }, + "encoding": "base64", + "data": "" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/uncommitted/0/id_base64", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "MDAwMDAx" + "value": "ok" } }, { - "at": "/value/uncommitted/0/size", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 5 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "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/commit-key-hash", + "profile": "azure-hns", "lane": "core", - "purpose": "staged uncommitted only", + "purpose": "commit, 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/multipart/staged.bin", - "kind": "all", - "op": "azure.list_blocks" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/hash#tag.txt", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -37013,7 +46868,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -37021,15 +46876,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37039,33 +46894,27 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "all" - } } ], - "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": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -37081,68 +46930,48 @@ } }, { - "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/etag", "optional": false, "rule": { "is": "equal", - "value": 6 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "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/commit-key-percent", + "profile": "azure-hns", "lane": "core", - "purpose": "staged uncommitted", + "purpose": "commit, 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/multipart/staged.bin", - "kind": "uncommitted", - "op": "azure.list_blocks" + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/percent%20.txt", + "op": "azure.commit_blocks" }, "exchanges": [ { @@ -37154,7 +46983,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -37162,15 +46991,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37180,33 +47009,27 @@ "is": "equal", "value": "blocklist" } - }, - { - "at": "/query/blocklisttype", - "optional": false, - "rule": { - "is": "equal", - "value": "uncommitted" - } } ], - "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": "MDAwMDAx5MDAwMDAy6" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -37222,67 +47045,47 @@ } }, { - "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/etag", "optional": false, "rule": { "is": "equal", - "value": 6 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "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-hns/commit-container-missing", + "id": "operations/azure-hns/commit-key-plus", "profile": "azure-hns", "lane": "core", - "purpose": "commit container missing", + "purpose": "commit, with the key \"plus+plus.txt\"", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "blocks": [], - "key": "object.bin", + "blocks": [ + { + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" + } + ], + "key": "object-tests/keys/plus+plus.txt", "op": "azure.commit_blocks" }, "exchanges": [ @@ -37303,7 +47106,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.bin" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -37311,7 +47114,7 @@ "optional": false, "rule": { "is": "xml", - "value": "" + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37328,17 +47131,19 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 201, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "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": "ContainerNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -37351,33 +47156,36 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-8ec031f3abfa\"" } }, { - "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-declaring-md5", + "id": "operations/azure-hns/commit-key-space", "profile": "azure-hns", "lane": "core", - "purpose": "commit declaring md5", + "purpose": "commit, with the key \"space name.txt\"", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], @@ -37386,10 +47194,13 @@ { "id_base64": "MDAwMDAx", "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" } ], - "content_md5_base64": "N6YZkbg+Lyfxtskwn8iRCg==", - "key": "object-tests/hashes/committed.bin", + "key": "object-tests/keys/space name.txt", "op": "azure.commit_blocks" }, "exchanges": [ @@ -37410,7 +47221,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/committed.bin" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -37418,15 +47229,7 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAx" - } - }, - { - "at": "/headers/x-ms-blob-content-md5", - "optional": false, - "rule": { - "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37448,7 +47251,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-9a581bc70e20\"", + "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" @@ -37476,7 +47279,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9a581bc70e20\"" + "value": "\"fixture-8ec031f3abfa\"" } }, { @@ -37494,10 +47297,10 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-duplicate-id", + "id": "operations/azure-hns/commit-key-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "commit duplicate id", + "purpose": "commit, with the key \"café/雪.txt\"", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], @@ -37508,11 +47311,11 @@ "kind": "latest" }, { - "id_base64": "MDAwMDAx", + "id_base64": "MDAwMDAy", "kind": "latest" } ], - "key": "object-tests/multipart/duplicate.bin", + "key": "object-tests/keys/café/雪.txt", "op": "azure.commit_blocks" }, "exchanges": [ @@ -37533,7 +47336,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/duplicate.bin" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -37541,7 +47344,7 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAxMDAwMDAx" + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37563,7 +47366,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-a8581b642c5f\"", + "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" @@ -37591,7 +47394,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-a8581b642c5f\"" + "value": "\"fixture-8ec031f3abfa\"" } }, { @@ -37609,21 +47412,25 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-escaped-id", + "id": "operations/azure-hns/commit-key-double-slash", "profile": "azure-hns", "lane": "core", - "purpose": "commit escaped id", + "purpose": "commit, 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": "+/8=", + "id_base64": "MDAwMDAx", + "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", "kind": "latest" } ], - "key": "object-tests/multipart/escaped.bin", + "key": "object-tests/keys/double//slash.txt", "op": "azure.commit_blocks" }, "exchanges": [ @@ -37644,7 +47451,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/escaped.bin" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -37652,7 +47459,7 @@ "optional": false, "rule": { "is": "xml", - "value": "+/8=" + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37674,7 +47481,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-77b5e2317b8a\"", + "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" @@ -37702,7 +47509,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-77b5e2317b8a\"" + "value": "\"fixture-8ec031f3abfa\"" } }, { @@ -37720,10 +47527,10 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-lost-the-race-to-create", + "id": "operations/azure-hns/commit-key-trailing-slash", "profile": "azure-hns", "lane": "core", - "purpose": "commit lost the race to create", + "purpose": "commit, with the key \"trailing-slash/\"", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], @@ -37732,10 +47539,13 @@ { "id_base64": "MDAwMDAx", "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" } ], - "if_none_match": "*", - "key": "object-tests/multipart/pending.bin", + "key": "object-tests/keys/trailing-slash/", "op": "azure.commit_blocks" }, "exchanges": [ @@ -37756,7 +47566,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -37764,15 +47574,7 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAx" - } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37789,17 +47591,17 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "BlobAlreadyExists" + "x-ms-error-code": "InvalidBlockList" }, "body": { "encoding": "utf8", - "data": "BlobAlreadyExistsFixture error" + "data": "InvalidBlockListFixture error" } } } @@ -37820,7 +47622,7 @@ "optional": false, "rule": { "is": "equal", - "value": 409 + "value": 400 } }, { @@ -37828,23 +47630,36 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobAlreadyExists" + "value": "InvalidBlockList" } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-nothing", + "id": "operations/azure-hns/commit-content-properties", "profile": "azure-hns", "lane": "core", - "purpose": "commit nothing", + "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": { - "blocks": [], - "key": "object-tests/multipart/empty.bin", + "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": [ @@ -37865,7 +47680,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/empty.bin" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { @@ -37873,7 +47688,7 @@ "optional": false, "rule": { "is": "xml", - "value": "" + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37883,6 +47698,38 @@ "is": "equal", "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": [ @@ -37895,7 +47742,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-072bed78cc6a\"", + "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" @@ -37923,7 +47770,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-072bed78cc6a\"" + "value": "\"fixture-8ec031f3abfa\"" } }, { @@ -37941,10 +47788,10 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-over-whole-object", + "id": "operations/azure-hns/commit-with-tier", "profile": "azure-hns", "lane": "core", - "purpose": "commit over whole object", + "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" ], @@ -37953,10 +47800,15 @@ { "id_base64": "MDAwMDAx", "kind": "latest" + }, + { + "id_base64": "MDAwMDAy", + "kind": "latest" } ], - "key": "object-tests/multipart/over.bin", - "op": "azure.commit_blocks" + "key": "object-tests/multipart/committed.bin", + "op": "azure.commit_blocks", + "tier": "Cool" }, "exchanges": [ { @@ -37976,7 +47828,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/over.bin" + "value": "/fixture/object-tests/multipart/committed.bin" } }, { @@ -37984,7 +47836,7 @@ "optional": false, "rule": { "is": "xml", - "value": "MDAwMDAx" + "value": "MDAwMDAxMDAwMDAy" } }, { @@ -37994,6 +47846,14 @@ "is": "equal", "value": "blocklist" } + }, + { + "at": "/headers/x-ms-access-tier", + "optional": false, + "rule": { + "is": "equal", + "value": "Cool" + } } ], "allow_headers": [ @@ -38006,7 +47866,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-7dc650e58291\"", + "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" @@ -38034,7 +47894,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-7dc650e58291\"" + "value": "\"fixture-8ec031f3abfa\"" } }, { @@ -38052,23 +47912,90 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-precondition-failed", + "id": "operations/azure-hns/delete-accepted", "profile": "azure-hns", "lane": "core", - "purpose": "commit precondition failed", + "purpose": "delete accepted", "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/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": 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" } - ], - "if_match": "\"fixture-088e5dc109cf\"", - "key": "object-tests/multipart/pending.bin", - "op": "azure.commit_blocks" + } + ], + "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": [ { @@ -38080,7 +48007,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "DELETE" } }, { @@ -38088,50 +48015,180 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/pending.bin" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAx" + "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-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": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "DELETE" } }, { - "at": "/headers/if-match", + "at": "/path", "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": 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", + "optional": false, + "rule": { + "is": "equal", + "value": "DELETE" + } + }, + { + "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": 412, + "status": 202, "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" + "encoding": "base64", + "data": "" } } } @@ -38144,40 +48201,171 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/delete-accepted-key-plus", + "profile": "azure-hns", + "lane": "core", + "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/plus+plus.txt", + "op": "delete" + }, + "exchanges": [ { - "at": "/status", + "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": [], + "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": 412 + "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": [ { - "at": "/code", + "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": [], + "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": "ConditionNotMet" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-refused", + "id": "operations/azure-hns/delete-accepted-key-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "delete accepted, with the key \"café/雪.txt\"", "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/keys/café/雪.txt", + "op": "delete" }, "exchanges": [ { @@ -38189,7 +48377,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "DELETE" } }, { @@ -38197,42 +48385,180 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.bin" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "" + "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", + "optional": false, + "rule": { + "is": "equal", + "value": "DELETE" } }, { - "at": "/query/comp", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "value": "/fixture/object-tests/keys/double//slash.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } } ], - "allow_headers": [ - "content-type" + "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-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": [ + { + "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": 404, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "x-ms-error-code": "InvalidUri" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "InvalidUriFixture error" } } } @@ -38253,7 +48579,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -38261,33 +48587,27 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "InvalidUri" } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-reordered", + "id": "operations/azure-hns/delete-many", "profile": "azure-hns", "lane": "core", - "purpose": "commit reordered", + "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": { - "blocks": [ - { - "id_base64": "MDAwMDAy", - "kind": "latest" - }, - { - "id_base64": "MDAwMDAx", - "kind": "latest" - } + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ], - "key": "object-tests/multipart/reordered.bin", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -38299,7 +48619,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -38307,15 +48627,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/reordered.bin" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAyMDAwMDAx" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -38323,29 +48651,46 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 202, "headers": { + "content-type": "multipart/mixed; boundary=batchresponse_fixture", "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": "" - } + "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" } } ] @@ -38361,21 +48706,27 @@ } }, { - "at": "/value/etag", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-446301cfeaef\"" + "value": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt" + ] } }, { - "at": "/value/version", - "optional": true, + "at": "/value/errors", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" + "is": "equal", + "value": [ + { + "code": "BlobNotFound", + "key": "object-tests/batch/absent.txt", + "status": 404 + } ] } } @@ -38383,22 +48734,20 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-replacement", + "id": "operations/azure-hns/delete-many-denied", "profile": "azure-hns", "lane": "core", - "purpose": "commit replacement", + "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": [ - "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": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - } + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ], - "key": "object-tests/multipart/replaced.bin", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -38410,7 +48759,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -38418,15 +48767,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAx" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -38434,29 +48791,46 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 202, "headers": { + "content-type": "multipart/mixed; boundary=batchresponse_fixture", "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-request-server-encrypted": "true" + } }, "body": { - "encoding": "base64", - "data": "" - } + "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" } } ] @@ -38472,21 +48846,34 @@ } }, { - "at": "/value/etag", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9c5e55ff559c\"" + "value": [] } }, { - "at": "/value/version", - "optional": true, + "at": "/value/errors", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" + "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 + } ] } } @@ -38494,26 +48881,21 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-unstaged-id", + "id": "operations/azure-hns/delete-many-answers-out-of-order", "profile": "azure-hns", "lane": "core", - "purpose": "commit unstaged id", + "purpose": "Match each part of a batch answer to its deletion by Content-ID, not by position: Azure may answer the parts in any 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/blob-batch" ], + "origin": "constructed", "call": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - }, - { - "id_base64": "MDAwMDA5", - "kind": "latest" - } + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ], - "key": "object-tests/multipart/staged.bin", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -38525,7 +48907,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -38533,15 +48915,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDA5" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -38549,27 +48939,46 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 202, "headers": { - "content-type": "application/xml", + "content-type": "multipart/mixed; boundary=batchresponse_fixture", "date": { "from": "now" - }, - "x-ms-error-code": "InvalidBlockList" + } }, "body": { "encoding": "utf8", - "data": "InvalidBlockListFixture error" - } + "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\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\r\n--batchresponse_fixture--" + }, + "framing": "chunked" } } ] @@ -38581,52 +48990,53 @@ "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" + ] } }, { - "at": "/code", + "at": "/value/errors", "optional": false, "rule": { "is": "equal", - "value": "InvalidBlockList" + "value": [ + { + "code": "BlobNotFound", + "key": "object-tests/batch/absent.txt", + "status": 404 + } + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-unstaged-id-code-in-body", + "id": "operations/azure-hns/delete-many-lf-line-endings", "profile": "azure-hns", "lane": "core", - "purpose": "commit unstaged id, with the error code only in the XML body", + "purpose": "Read a batch answer whose lines end in LF alone, which a multipart reader should accept", "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/blob-batch" ], "origin": "constructed", "call": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - }, - { - "id_base64": "MDAwMDA5", - "kind": "latest" - } + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ], - "key": "object-tests/multipart/staged.bin", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -38638,7 +49048,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -38646,15 +49056,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/staged.bin" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDA5" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -38662,26 +49080,46 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 202, "headers": { - "content-type": "application/xml", + "content-type": "multipart/mixed; boundary=batchresponse_fixture", "date": { "from": "now" } }, "body": { "encoding": "utf8", - "data": "InvalidBlockListFixture 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\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\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" } } ] @@ -38693,49 +49131,53 @@ "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" + ] } }, { - "at": "/code", + "at": "/value/errors", "optional": false, "rule": { "is": "equal", - "value": "InvalidBlockList" + "value": [ + { + "code": "BlobNotFound", + "key": "object-tests/batch/absent.txt", + "status": 404 + } + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/commit", + "id": "operations/azure-hns/delete-many-without-content-id", "profile": "azure-hns", "lane": "core", - "purpose": "commit", + "purpose": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", "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", "call": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - }, - { - "id_base64": "MDAwMDAy", - "kind": "latest" - } + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ], - "key": "object-tests/multipart/committed.bin", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -38747,7 +49189,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -38755,15 +49197,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/committed.bin" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -38771,29 +49221,46 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 202, "headers": { + "content-type": "multipart/mixed; boundary=batchresponse_fixture", "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": "" - } + "encoding": "utf8", + "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\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\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" } } ] @@ -38809,21 +49276,27 @@ } }, { - "at": "/value/etag", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt" + ] } }, { - "at": "/value/version", - "optional": true, + "at": "/value/errors", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" + "is": "equal", + "value": [ + { + "code": "BlobNotFound", + "key": "object-tests/batch/absent.txt", + "status": 404 + } ] } } @@ -38831,26 +49304,21 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-key-question", + "id": "operations/azure-hns/delete-many-server-busy", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"question?mark.txt\"", + "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", "call": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - }, - { - "id_base64": "MDAwMDAy", - "kind": "latest" - } + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" ], - "key": "object-tests/keys/question?mark.txt", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -38862,7 +49330,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -38870,15 +49338,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -38886,88 +49362,50 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ServerBusyFixture error" } } } ] - } - ], - "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": [ { @@ -38977,7 +49415,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -38985,15 +49423,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -39001,88 +49447,51 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ServerBusyFixture error" } } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" - } + ], + "optional": true }, - { - "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": [ { @@ -39092,7 +49501,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -39100,15 +49509,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -39116,88 +49533,51 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ServerBusyFixture error" } } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" - } + ], + "optional": true }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/commit-key-plus", - "profile": "azure-hns", - "lane": "core", - "purpose": "commit, 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" - }, - { - "id_base64": "MDAwMDAy", - "kind": "latest" - } - ], - "key": "object-tests/keys/plus+plus.txt", - "op": "azure.commit_blocks" - }, - "exchanges": [ { "alternatives": [ { @@ -39207,7 +49587,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -39215,15 +49595,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -39231,88 +49619,137 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ServerBusyFixture error" } } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } + ], + "optional": true }, { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" - } + "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/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/commit-key-space", - "profile": "azure-hns", - "lane": "core", - "purpose": "commit, 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": "MDAwMDAy", - "kind": "latest" - } - ], - "key": "object-tests/keys/space name.txt", - "op": "azure.commit_blocks" - }, - "exchanges": [ { "alternatives": [ { @@ -39322,7 +49759,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -39330,15 +49767,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -39346,32 +49791,50 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 503, "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": "ServerBusy" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ServerBusyFixture error" } } } - ] + ], + "optional": true } ], "expect": [ @@ -39380,52 +49843,296 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-8ec031f3abfa\"" + "value": 503 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "ServerBusy" } } ], "refusal": null }, { - "id": "operations/azure-hns/commit-key-non-ascii", + "id": "operations/azure-hns/delete-many-256", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"café/雪.txt\"", + "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": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - }, - { - "id_base64": "MDAwMDAy", - "kind": "latest" - } + "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" ], - "key": "object-tests/keys/café/雪.txt", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -39437,7 +50144,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -39445,15 +50152,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture" } }, { - "at": "/body_text", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" + } + }, + { + "at": "/query/restype", + "optional": false, + "rule": { + "is": "equal", + "value": "container" } }, { @@ -39461,59 +50176,2366 @@ "optional": false, "rule": { "is": "equal", - "value": "blocklist" + "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" + } + ] } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 201, + "status": 202, "headers": { + "content-type": "multipart/mixed; boundary=batchresponse_fixture", "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": "" - } + "encoding": "utf8", + "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/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 } - } - ] - } - ], - "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, - "" ] } } @@ -39521,26 +52543,274 @@ "refusal": null }, { - "id": "operations/azure-hns/commit-key-double-slash", + "id": "operations/azure-hns/delete-many-257", "profile": "azure-hns", "lane": "core", - "purpose": "commit, with the key \"double//slash.txt\"", + "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": { - "blocks": [ - { - "id_base64": "MDAwMDAx", - "kind": "latest" - }, - { - "id_base64": "MDAwMDAy", - "kind": "latest" - } + "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" ], - "key": "object-tests/keys/double//slash.txt", - "op": "azure.commit_blocks" + "op": "delete_many" }, "exchanges": [ { @@ -39552,7 +52822,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -39560,158 +52830,1086 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "value": "/fixture" } }, { - "at": "/query/comp", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "blocklist" + "is": "matches", + "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+" } - } - ], - "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": "/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-trailing-slash", - "profile": "azure-hns", - "lane": "core", - "purpose": "commit, 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/trailing-slash/", - "op": "azure.commit_blocks" - }, - "exchanges": [ - { - "alternatives": [ - { - "request": [ { - "at": "/method", + "at": "/query/restype", "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "container" } }, { - "at": "/path", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "MDAwMDAxMDAwMDAy" + "value": "batch" } }, { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "blocklist" + "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": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 202, "headers": { - "content-type": "application/xml", + "content-type": "multipart/mixed; boundary=batchresponse_fixture", "date": { "from": "now" - }, - "x-ms-error-code": "InvalidBlockList" + } }, "body": { "encoding": "utf8", - "data": "InvalidBlockListFixture error" - } + "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" } } ] @@ -39739,678 +53937,38 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidBlockList" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/delete-accepted", - "profile": "azure-hns", - "lane": "core", - "purpose": "delete accepted", - "sources": [ - "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" - ], - "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": 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": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "DELETE" - } - }, - { - "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": 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-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": [ - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "DELETE" - } - }, - { - "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": 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", - "optional": false, - "rule": { - "is": "equal", - "value": "DELETE" - } - }, - { - "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": 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-plus", - "profile": "azure-hns", - "lane": "core", - "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/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": [], - "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", - "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": [], - "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" + "value": "ExceedsMaxBatchRequestCount" } } ], - "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": [ - { - "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": [ + "refusal": [ { "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "refused" } - } - ], - "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", - "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": "/outcome", + "at": "/kind", "optional": false, "rule": { - "is": "equal", - "value": "ok" + "is": "matches", + "pattern": ".+" } - } - ], - "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": [ - { - "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": "/outcome", + "at": "/parameter", "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "keys" } }, { "at": "/status", - "optional": false, + "optional": true, "rule": { "is": "equal", "value": 400 @@ -40418,141 +53976,13 @@ }, { "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "InvalidUri" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure-hns/delete-many", - "profile": "azure-hns", - "lane": "core", - "purpose": "Delete several objects in one batch and report each result", - "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": "/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" - } - }, - { - "at": "/query/comp", - "optional": false, - "rule": { - "is": "equal", - "value": "batch" - } - } - ], - "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 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" - } - } - ] - } - ], - "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, + "optional": true, "rule": { "is": "equal", - "value": [ - { - "code": "BlobNotFound", - "key": "object-tests/batch/absent.txt", - "status": 404 - } - ] + "value": "ExceedsMaxBatchRequestCount" } } - ], - "refusal": null + ] }, { "id": "operations/azure-hns/delete-leased-if-match-without-lease-id", @@ -41183,7 +54613,7 @@ "id": "operations/azure-hns/delete-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "delete container missing", + "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" ], @@ -41263,278 +54693,294 @@ "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", - "optional": false, - "rule": { - "is": "equal", - "value": "DELETE" - } - }, - { - "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-2" - } - } - ], - "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-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": [ - { - "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-51797d9f787d\"" - } - } - ], - "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", - "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 + "value": "ContainerNotFound" + } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" + } + } + ], + "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", + "optional": false, + "rule": { + "is": "equal", + "value": "DELETE" + } + }, + { + "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-2" + } + } + ], + "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-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": [ + { + "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-51797d9f787d\"" + } + } + ], + "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. 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": "/code", + "at": "/kind", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "not_found" } } ], @@ -42952,7 +56398,7 @@ "id": "operations/azure-hns/get-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "get container missing", + "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" ], @@ -43034,6 +56480,110 @@ "is": "equal", "value": "ContainerNotFound" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/head-container-missing", + "profile": "azure-hns", + "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 @@ -43712,6 +57262,162 @@ ], "refusal": null }, + { + "id": "operations/azure-hns/get-range-of-empty-object", + "profile": "azure-hns", + "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-hns/get-if-match-current", "profile": "azure-hns", @@ -45379,7 +59085,7 @@ "id": "operations/azure-hns/get-missing", "profile": "azure-hns", "lane": "core", - "purpose": "get missing", + "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" ], @@ -45461,23 +59167,129 @@ "is": "equal", "value": "BlobNotFound" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "not_found" + } + } + ], + "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. 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-hns/get-missing-code-in-body", + "id": "operations/azure-hns/get-not-modified", "profile": "azure-hns", "lane": "core", - "purpose": "get missing, with the error code only in the XML body", + "purpose": "get not modified", "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": { - "key": "object-tests/read/absent.txt", + "if_none_match": "\"fixture-5295cdfd25ff\"", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -45498,7 +59310,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -45508,21 +59320,29 @@ "is": "equal", "value": "" } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-5295cdfd25ff\"" + } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 304, "headers": { - "content-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -45543,7 +59363,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 304 } }, { @@ -45551,22 +59371,22 @@ "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-not-modified", + "id": "operations/azure-hns/get-precondition-failed", "profile": "azure-hns", "lane": "core", - "purpose": "get not modified", + "purpose": "get precondition failed", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "if_none_match": "\"fixture-5295cdfd25ff\"", + "if_match": "\"fixture-088e5dc109cf\"", "key": "object-tests/read/object.txt", "op": "get" }, @@ -45600,27 +59420,28 @@ } }, { - "at": "/headers/if-none-match", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5295cdfd25ff\"" + "value": "\"fixture-088e5dc109cf\"" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 304, + "status": 412, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "ConditionNotMetFixture error" } } } @@ -45641,7 +59462,7 @@ "optional": false, "rule": { "is": "equal", - "value": 304 + "value": 412 } }, { @@ -45656,17 +59477,17 @@ "refusal": null }, { - "id": "operations/azure-hns/get-precondition-failed", + "id": "operations/azure-hns/get-previous-version-of-deleted-object", "profile": "azure-hns", "lane": "core", - "purpose": "get precondition failed", + "purpose": "get previous version of deleted object", "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" + "key": "object-tests/versions-mtypy4jp/deleted.txt", + "op": "get", + "version": "none-1" }, "exchanges": [ { @@ -45686,7 +59507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" } }, { @@ -45698,28 +59519,27 @@ } }, { - "at": "/headers/if-match", + "at": "/query/versionid", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "none-1" } } ], "allow_headers": [], "allow_query": [], "response": { - "status": 412, + "status": 400, "headers": { "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "ConditionNotMet" + } }, "body": { "encoding": "utf8", - "data": "ConditionNotMetFixture error" + "data": "InvalidQueryParameterValueFixture error" } } } @@ -45740,7 +59560,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 400 } }, { @@ -45748,22 +59568,22 @@ "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "InvalidQueryParameterValue" } } ], "refusal": null }, { - "id": "operations/azure-hns/get-previous-version-of-deleted-object", + "id": "operations/azure-hns/get-previous-version", "profile": "azure-hns", "lane": "core", - "purpose": "get previous version of deleted object", + "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/deleted.txt", + "key": "object-tests/versions-mtypy4jp/object.txt", "op": "get", "version": "none-1" }, @@ -45785,7 +59605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -45853,17 +59673,20 @@ "refusal": null }, { - "id": "operations/azure-hns/get-previous-version", + "id": "operations/azure-hns/get-range-inverted", "profile": "azure-hns", "lane": "core", - "purpose": "get previous version", + "purpose": "get range inverted", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/versions-mtypy4jp/object.txt", + "key": "object-tests/read/object.txt", "op": "get", - "version": "none-1" + "range": { + "end": 2, + "start": 6 + } }, "exchanges": [ { @@ -45883,7 +59706,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -45895,27 +59718,94 @@ } }, { - "at": "/query/versionid", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "none-1" + "value": "bytes=6-1" } } ], "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": "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": "utf8", - "data": "InvalidQueryParameterValueFixture error" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -45928,33 +59818,94 @@ "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": "InvalidQueryParameterValue" + "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-hns/get-range-inverted", + "id": "operations/azure-hns/get-range-empty", "profile": "azure-hns", "lane": "core", - "purpose": "get range inverted", + "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" ], @@ -45962,8 +59913,8 @@ "key": "object-tests/read/object.txt", "op": "get", "range": { - "end": 2, - "start": 6 + "end": 5, + "start": 5 } }, "exchanges": [ @@ -46000,7 +59951,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=6-1" + "value": "bytes=5-4" } } ], @@ -46059,7 +60010,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=6-1" + "value": "bytes=5-4" } } ], @@ -46338,7 +60289,7 @@ "id": "operations/azure-hns/get-range-past-the-end", "profile": "azure-hns", "lane": "core", - "purpose": "get range past the end", + "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" ], @@ -46525,6 +60476,14 @@ "is": "equal", "value": "Y3Q=" } + }, + { + "at": "/value/content_range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes 28-29/30" + } } ], "refusal": null @@ -50290,7 +64249,427 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4d04dba3441e\"" + "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/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "name": "value", + "second": "2" + } + } + } + ], + "refusal": null + }, + { + "id": "operations/azure-hns/head-missing", + "profile": "azure-hns", + "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-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", + "optional": false, + "rule": { + "is": "equal", + "value": "error" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 400 + } + } + ], + "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": "/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/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", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-bf462a2f52f2\"" } }, { @@ -50298,7 +64677,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 13 } }, { @@ -50314,7 +64693,7 @@ "optional": false, "rule": { "is": "equal", - "value": "xMpCOKC5I4INzFCab3WEmw==" + "value": "N6YZkbg+Lyfxtskwn8iRCg==" } }, { @@ -50327,31 +64706,20 @@ "" ] } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "name": "value", - "second": "2" - } - } } ], "refusal": null }, { - "id": "operations/azure-hns/head-missing", + "id": "operations/azure-hns/head-written-with-md5", "profile": "azure-hns", "lane": "core", - "purpose": "head missing", + "purpose": "head written with md5", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/read/absent.txt", + "key": "object-tests/hashes/md5.txt", "op": "head" }, "exchanges": [ @@ -50372,7 +64740,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/absent.txt" + "value": "/fixture/object-tests/hashes/md5.txt" } }, { @@ -50387,12 +64755,21 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { + "content-length": "13", + "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "base64", @@ -50409,129 +64786,66 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-15ae0acd3480\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": 13 } - } - ], - "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/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": 400 + "value": "N6YZkbg+Lyfxtskwn8iRCg==" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/head-snapshot", + "id": "operations/azure-hns/head", "profile": "azure-hns", "lane": "core", - "purpose": "head snapshot", + "purpose": "head", "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" + "key": "object-tests/read/object.txt", + "op": "head" }, "exchanges": [ { @@ -50551,7 +64865,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -50561,25 +64875,26 @@ "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, + "status": 200, "headers": { + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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", @@ -50596,38 +64911,65 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-5295cdfd25ff\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "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/head-written-with-crc64", + "id": "operations/azure-hns/head-key-question", "profile": "azure-hns", "lane": "core", - "purpose": "head written with crc64", + "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/hashes/crc64.txt", + "key": "object-tests/keys/question?mark.txt", "op": "head" }, "exchanges": [ @@ -50648,7 +64990,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -50665,13 +65007,13 @@ "response": { "status": 200, "headers": { - "content-length": "13", - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-bf462a2f52f2\"", + "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", @@ -50702,7 +65044,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf462a2f52f2\"" + "value": "\"fixture-5295cdfd25ff\"" } }, { @@ -50710,7 +65052,7 @@ "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 30 } }, { @@ -50726,7 +65068,7 @@ "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -50744,15 +65086,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head-written-with-md5", + "id": "operations/azure-hns/head-key-hash", "profile": "azure-hns", "lane": "core", - "purpose": "head written with md5", + "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/hashes/md5.txt", + "key": "object-tests/keys/hash#tag.txt", "op": "head" }, "exchanges": [ @@ -50773,7 +65115,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -50790,13 +65132,13 @@ "response": { "status": 200, "headers": { - "content-length": "13", - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-15ae0acd3480\"", + "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", @@ -50827,7 +65169,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-15ae0acd3480\"" + "value": "\"fixture-5295cdfd25ff\"" } }, { @@ -50835,7 +65177,7 @@ "optional": false, "rule": { "is": "equal", - "value": 13 + "value": 30 } }, { @@ -50851,7 +65193,7 @@ "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "H1VC0PNTmj+yaCRN4U931g==" } }, { @@ -50869,15 +65211,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head", + "id": "operations/azure-hns/head-key-percent", "profile": "azure-hns", "lane": "core", - "purpose": "head", + "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/read/object.txt", + "key": "object-tests/keys/percent%20.txt", "op": "head" }, "exchanges": [ @@ -50898,7 +65240,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -50994,15 +65336,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head-key-question", + "id": "operations/azure-hns/head-key-plus", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"question?mark.txt\"", + "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/question?mark.txt", + "key": "object-tests/keys/plus+plus.txt", "op": "head" }, "exchanges": [ @@ -51023,7 +65365,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -51119,15 +65461,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head-key-hash", + "id": "operations/azure-hns/head-key-space", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"hash#tag.txt\"", + "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/hash#tag.txt", + "key": "object-tests/keys/space name.txt", "op": "head" }, "exchanges": [ @@ -51148,7 +65490,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -51244,15 +65586,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head-key-percent", + "id": "operations/azure-hns/head-key-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"percent%20.txt\"", + "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/percent%20.txt", + "key": "object-tests/keys/café/雪.txt", "op": "head" }, "exchanges": [ @@ -51273,7 +65615,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -51369,15 +65711,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head-key-plus", + "id": "operations/azure-hns/head-key-double-slash", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"plus+plus.txt\"", + "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/plus+plus.txt", + "key": "object-tests/keys/double//slash.txt", "op": "head" }, "exchanges": [ @@ -51398,7 +65740,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -51494,15 +65836,15 @@ "refusal": null }, { - "id": "operations/azure-hns/head-key-space", + "id": "operations/azure-hns/head-key-trailing-slash", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"space name.txt\"", + "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/space name.txt", + "key": "object-tests/keys/trailing-slash/", "op": "head" }, "exchanges": [ @@ -51523,7 +65865,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -51538,25 +65880,15 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 200, + "status": 404, "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" + "x-ms-error-code": "BlobNotFound" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -51569,65 +65901,38 @@ "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 + "value": "error" } }, { - "at": "/value/content_type", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "application/octet-stream" + "value": 404 } }, { - "at": "/value/content_md5_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-key-non-ascii", + "id": "operations/azure-hns/head-content-properties", "profile": "azure-hns", "lane": "core", - "purpose": "head, with the key \"café/雪.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": { - "key": "object-tests/keys/café/雪.txt", + "key": "object-tests/read/object.txt", "op": "head" }, "exchanges": [ @@ -51648,7 +65953,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -51665,9 +65970,12 @@ "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": "application/octet-stream", + "content-type": "text/plain; charset=utf-8", "date": { "from": "now" }, @@ -51713,14 +66021,6 @@ "value": 30 } }, - { - "at": "/value/content_type", - "optional": false, - "rule": { - "is": "equal", - "value": "application/octet-stream" - } - }, { "at": "/value/content_md5_base64", "optional": false, @@ -51739,232 +66039,52 @@ "" ] } - } - ], - "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": "/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==" + "value": "text/plain; charset=utf-8" } }, { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "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", + "at": "/value/content_language", "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "nl-NL" } }, { - "at": "/status", + "at": "/value/content_disposition", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "attachment; filename=\"report.txt\"" } }, { - "at": "/code", + "at": "/value/cache_control", "optional": false, "rule": { "is": "equal", - "value": "BlobNotFound" + "value": "max-age=3600" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-content-properties", + "id": "operations/azure-hns/head-if-unmodified-since-past", "profile": "azure-hns", "lane": "core", - "purpose": "Return the stored content properties from a HEAD", + "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" }, @@ -51996,33 +66116,28 @@ "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": 200, + "status": 412, "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" + "x-ms-error-code": "ConditionNotMet" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -52035,90 +66150,38 @@ "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_md5_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "H1VC0PNTmj+yaCRN4U931g==" - } - }, - { - "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" + "value": "error" } }, { - "at": "/value/content_disposition", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "value": 412 } }, { - "at": "/value/cache_control", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-if-unmodified-since-past", + "id": "operations/azure-hns/head-copy-status", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since", + "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": { - "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", - "key": "object-tests/read/object.txt", + "key": "object-tests/copy/target.txt", "op": "head" }, "exchanges": [ @@ -52139,7 +66202,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/read/object.txt" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -52149,25 +66212,30 @@ "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, + "status": 200, "headers": { + "content-length": "5", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "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" @@ -52183,38 +66251,38 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/copy_status", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "success" } }, { - "at": "/code", + "at": "/value/copy_id", "optional": false, "rule": { "is": "equal", - "value": "ConditionNotMet" + "value": "fixture-copy-id" } } ], "refusal": null }, { - "id": "operations/azure-hns/head-copy-status", + "id": "operations/azure-hns/head-access-tier", "profile": "azure-hns", "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", + "purpose": "Report a blob's access tier, which Azure sends in x-ms-access-tier", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-properties" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "key": "object-tests/copy/target.txt", + "key": "object-tests/read/object.txt", "op": "head" }, "exchanges": [ @@ -52235,7 +66303,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/read/object.txt" } }, { @@ -52252,26 +66320,24 @@ "response": { "status": 200, "headers": { - "content-length": "5", + "content-length": "30", + "content-md5": "H1VC0PNTmj+yaCRN4U931g==", "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-16c44f0af72d\"", + "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-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" + "encoding": "base64", + "data": "" } } } @@ -52288,19 +66354,11 @@ } }, { - "at": "/value/copy_status", - "optional": false, - "rule": { - "is": "equal", - "value": "success" - } - }, - { - "at": "/value/copy_id", + "at": "/value/access_tier", "optional": false, "rule": { "is": "equal", - "value": "fixture-copy-id" + "value": "Cool" } } ], @@ -52682,7 +66740,7 @@ "id": "operations/azure-hns/list-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "list container missing", + "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" ], @@ -52788,6 +66846,14 @@ "is": "equal", "value": "ContainerNotFound" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" + } } ], "refusal": null @@ -65205,7 +79271,7 @@ "id": "operations/azure-hns/put-container-missing", "profile": "azure-hns", "lane": "core", - "purpose": "put container missing", + "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" ], @@ -65298,6 +79364,14 @@ "is": "equal", "value": "ContainerNotFound" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" + } } ], "refusal": null @@ -70528,22 +84602,132 @@ ], "allow_query": [], "response": { - "status": 500, + "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": "/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/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": [ + { + "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": "InternalError" + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "InternalErrorThe server encountered an internal error. Please retry the request." + "data": "ConditionNotMetFixture error" } } } - ], - "optional": true + ] } ], "expect": [ @@ -70560,7 +84744,7 @@ "optional": false, "rule": { "is": "equal", - "value": 500 + "value": 412 } }, { @@ -70568,23 +84752,23 @@ "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-if-unmodified-since-past", + "id": "operations/azure-hns/put-content-encoding-gzip", "profile": "azure-hns", "lane": "core", - "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since", + "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": "MDEyMzQ1Njc4OQ==", - "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", + "content_encoding": "gzip", "key": "object-tests/write/object.txt", "op": "put" }, @@ -70614,7 +84798,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { @@ -70626,11 +84810,11 @@ } }, { - "at": "/headers/if-unmodified-since", + "at": "/headers/x-ms-blob-content-encoding", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "gzip" } } ], @@ -70639,17 +84823,85 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "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": "utf8", - "data": "ConditionNotMetFixture error" + "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": "" } } } @@ -70662,39 +84914,45 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-bf139483d631\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "ConditionNotMet" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/put-content-encoding-gzip", + "id": "operations/azure-hns/put-content-properties", "profile": "azure-hns", "lane": "core", - "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged", + "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": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", - "content_encoding": "gzip", + "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" }, @@ -70724,7 +84982,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -70736,11 +84994,35 @@ } }, { - "at": "/headers/x-ms-blob-content-encoding", + "at": "/headers/x-ms-blob-content-type", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "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" } } ], @@ -70751,7 +85033,7 @@ "response": { "status": 201, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, @@ -70789,7 +85071,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -70801,11 +85083,35 @@ } }, { - "at": "/headers/content-encoding", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "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" } } ], @@ -70816,7 +85122,7 @@ "response": { "status": 201, "headers": { - "content-md5": "CVsDGvNMZH4SPA4MSLswrA==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, @@ -70866,19 +85172,16 @@ "refusal": null }, { - "id": "operations/azure-hns/put-content-properties", + "id": "operations/azure-hns/put-content-type-edge-spaces", "profile": "azure-hns", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "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==", - "cache_control": "max-age=3600", - "content_disposition": "attachment; filename=\"report.txt\"", - "content_language": "nl-NL", - "content_type": "text/plain; charset=utf-8", + "content_type": " text/plain ", "key": "object-tests/write/object.txt", "op": "put" }, @@ -70924,31 +85227,7 @@ "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" + "value": "text/plain" } } ], @@ -71013,31 +85292,7 @@ "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" + "value": "text/plain" } } ], @@ -71095,7 +85350,32 @@ } } ], - "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" + } + } + ] }, { "id": "operations/azure-hns/put-first-version", @@ -82880,6 +97160,15 @@ "is": "matches", "pattern": "[A-Za-z0-9+/]{11}=" } + }, + { + "at": "", + "optional": false, + "rule": { + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" + } } ], "allow_headers": [ @@ -82919,9 +97208,2258 @@ "rule": { "is": "equal", "value": [ - "object-tests/batch/a.txt", - "object-tests/batch/b.txt", - "object-tests/batch/absent.txt" + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" + ] + } + }, + { + "at": "/value/errors", + "optional": false, + "rule": { + "is": "equal", + "value": [] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/delete-many-errors", + "profile": "s3", + "lane": "core", + "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://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html" + ], + "origin": "transient", + "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": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + } + }, + { + "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": "", + "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" + } + } + ] + } + ], + "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/delete-many-1000", + "profile": "s3", + "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": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "POST" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/fixture" + } + }, + { + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "object-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" + } + }, + { + "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": "", + "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" + } + } + ] + } + ], + "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" ] } }, @@ -82936,6 +99474,1166 @@ ], "refusal": null }, + { + "id": "operations/s3/delete-many-1001", + "profile": "s3", + "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "POST" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/fixture" + } + }, + { + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "object-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.txtobject-tests/batch/many-1000.txt" + } + }, + { + "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": "", + "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" + } + } + ] + } + ], + "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": "MalformedXML" + } + } + ], + "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/delete-slow-down", "profile": "s3", @@ -83288,7 +100986,7 @@ "id": "operations/s3/delete-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "delete bucket missing", + "purpose": "delete 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" ], @@ -83372,6 +101070,14 @@ "is": "equal", "value": "NoSuchBucket" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" + } } ], "refusal": null @@ -83878,7 +101584,7 @@ "id": "operations/s3/get-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "get bucket missing", + "purpose": "get 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" ], @@ -83923,70 +101629,167 @@ "response": { "status": 404, "headers": { - "content-type": "application/xml", + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nNoSuchBucketFixture error" + }, + "framing": "chunked" + } + }, + { + "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": "" + } + }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" + } + } + ], + "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" + } + } + ] + } + ], + "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/head-bucket-missing", + "profile": "s3", + "lane": "core", + "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": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "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": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 404, + "headers": { "date": { "from": "now" } }, "body": { - "encoding": "utf8", - "data": "\nNoSuchBucketFixture error" - }, - "framing": "chunked" - } - }, - { - "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": "" - } - }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } + "encoding": "empty" } - ], - "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" } } ] @@ -84010,11 +101813,11 @@ } }, { - "at": "/code", + "at": "/kind", "optional": false, "rule": { "is": "equal", - "value": "NoSuchBucket" + "value": "missing" } } ], @@ -84618,6 +102421,111 @@ ], "refusal": null }, + { + "id": "operations/s3/get-range-of-empty-object", + "profile": "s3", + "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": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "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": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 416, + "headers": { + "content-range": "bytes */0", + "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-if-match-current", "profile": "s3", @@ -88061,7 +105969,7 @@ "id": "operations/s3/get-missing", "profile": "s3", "lane": "core", - "purpose": "get missing", + "purpose": "get missing. A client reports it as not_found: the object is absent", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], @@ -88199,6 +106107,14 @@ "is": "equal", "value": "NoSuchKey" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "not_found" + } } ], "refusal": null @@ -88452,20 +106368,124 @@ "value": "" } }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" - } - }, + { + "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", + "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,}" + "is": "equal", + "value": "bytes=6-1" } } ], @@ -88474,18 +106494,19 @@ ], "allow_query": [], "response": { - "status": 412, + "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": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } } ] @@ -88497,33 +106518,86 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-ad03f2ab332a\"" } }, { - "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/get-range-inverted", + "id": "operations/s3/get-range-empty", "profile": "s3", "lane": "core", - "purpose": "get range inverted", + "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" ], @@ -88531,8 +106605,8 @@ "key": "object-tests/read/object.txt", "op": "get", "range": { - "end": 2, - "start": 6 + "end": 5, + "start": 5 } }, "exchanges": [ @@ -88569,7 +106643,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=6-1" + "value": "bytes=5-4" } } ], @@ -88838,7 +106912,7 @@ "id": "operations/s3/get-range-past-the-end", "profile": "s3", "lane": "core", - "purpose": "get range past the end", + "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" ], @@ -88963,6 +107037,14 @@ "is": "equal", "value": "Y3Q=" } + }, + { + "at": "/value/content_range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes 28-29/30" + } } ], "refusal": null @@ -92511,11 +110593,175 @@ } }, { - "at": "/headers/if-unmodified-since", + "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" + } + }, + "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-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": [ + { + "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": [ + "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": "/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,}" + } + }, + { + "at": "/headers/if-modified-since", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "Fri, 01 Jan 2100 00:00:00 GMT" } } ], @@ -92524,18 +110770,20 @@ ], "allow_query": [], "response": { - "status": 412, + "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": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } } ] @@ -92547,38 +110795,65 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-ad03f2ab332a\"" } }, { - "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 }, { - "id": "operations/s3/get-if-modified-since-future", + "id": "operations/s3/get-if-modified-since-past", "profile": "s3", "lane": "core", - "purpose": "Read an object when If-Modified-Since names a future date", + "purpose": "Read an object modified since a past date", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT", + "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT", "key": "object-tests/read/object.txt", "op": "get" }, @@ -92616,7 +110891,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Fri, 01 Jan 2100 00:00:00 GMT" + "value": "Sat, 01 Jan 2000 00:00:00 GMT" } } ], @@ -92679,7 +110954,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Fri, 01 Jan 2100 00:00:00 GMT" + "value": "Sat, 01 Jan 2000 00:00:00 GMT" } } ], @@ -92763,15 +111038,15 @@ "refusal": null }, { - "id": "operations/s3/get-if-modified-since-past", + "id": "operations/s3/get-if-modified-since-unchanged", "profile": "s3", "lane": "core", - "purpose": "Read an object modified since a past date", + "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": { - "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "if_modified_since": "Mon, 01 Jan 2024 00:00:00 GMT", "key": "object-tests/read/object.txt", "op": "get" }, @@ -92809,7 +111084,160 @@ "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "Mon, 01 Jan 2024 00:00:00 GMT" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 304, + "headers": { + "date": { + "from": "now" + }, + "etag": "\"fixture-ad03f2ab332a\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + }, + "body": { + "encoding": "empty" + } + } + }, + { + "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,}" + } + }, + { + "at": "/headers/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": 304, + "headers": { + "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": "error" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 304 + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/get-if-modified-since-invalid", + "profile": "s3", + "lane": "core", + "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_modified_since": "not a date", + "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": "not a date" } } ], @@ -92872,7 +111300,7 @@ "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "not a date" } } ], @@ -92953,7 +111381,33 @@ } } ], - "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/get-content-encoding-gzip", @@ -93590,7 +112044,7 @@ "id": "operations/s3/head-missing", "profile": "s3", "lane": "core", - "purpose": "head missing", + "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" ], @@ -93665,6 +112119,17 @@ "is": "equal", "value": 404 } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "not_found", + "missing" + ] + } } ], "refusal": null @@ -95200,7 +113665,7 @@ "id": "operations/s3/list-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "Report 404 NoSuchBucket for a bucket that does not exist", + "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" ], @@ -95370,6 +113835,14 @@ "is": "equal", "value": "NoSuchBucket" } + }, + { + "at": "/kind", + "optional": false, + "rule": { + "is": "equal", + "value": "container_not_found" + } } ], "refusal": null @@ -97526,7 +115999,466 @@ "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/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": [ + "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": "/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/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": [ + "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" + } + } + ], + "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/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": [ + "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": "/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/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": [ + "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" + } + } + ], + "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/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": [ + "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": "/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/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": [ + "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" + } + } + ], + "optional": true }, { "alternatives": [ @@ -97833,7 +116765,50 @@ } ], "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": "ServiceUnavailable" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/list-key-equal-to-prefix-delimited", + "profile": "s3", + "lane": "core", + "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": { + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/exact" + }, + "exchanges": [ { "alternatives": [ { @@ -97875,15 +116850,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/exact" } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } } ], @@ -97892,16 +116867,17 @@ ], "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" + "data": "\nfixtureobject-tests/exact21000/falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" }, "framing": "chunked" } @@ -97945,15 +116921,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/exact" } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { @@ -97970,23 +116946,138 @@ ], "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" + "data": "\nfixtureobject-tests/exact21000/urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" }, "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/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-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", + "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/s3/list-key-equal-to-prefix", + "profile": "s3", + "lane": "core", + "purpose": "Report a key that equals the prefix as an entry", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "op": "list_page", + "prefix": "object-tests/exact" + }, + "exchanges": [ { "alternatives": [ { @@ -98028,15 +117119,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "2" + "value": "object-tests/exact" } } ], @@ -98045,16 +117128,17 @@ ], "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" + "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" } @@ -98098,15 +117182,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "2" + "value": "object-tests/exact" } }, { @@ -98123,23 +117199,188 @@ ], "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" + "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" } } - ], - "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/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-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/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/list-max-keys-zero", + "profile": "s3", + "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": [ { @@ -98189,7 +117430,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "0" } } ], @@ -98198,16 +117439,17 @@ ], "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" + "data": "\nfixtureobject-tests/board/00false" }, "framing": "chunked" } @@ -98259,7 +117501,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "0" } }, { @@ -98276,22 +117518,22 @@ ], "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" + "data": "\nfixtureobject-tests/board/00urlfalse" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -98300,40 +117542,49 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": 503 + "is": "array_length", + "value": 0 } }, { - "at": "/code", + "at": "/value/prefixes", + "optional": false, + "rule": { + "is": "array_length", + "value": 0 + } + }, + { + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "ServiceUnavailable" + "value": "" } } ], "refusal": null }, { - "id": "operations/s3/list-key-equal-to-prefix-delimited", + "id": "operations/s3/list-next-page", "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": "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": { - "delimiter": "/", + "continuation_token": "fixture-marker+/e389f71e4c3c=", "op": "list_page", - "prefix": "object-tests/exact" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -98377,15 +117628,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "2" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/e389f71e4c3c=" } } ], @@ -98404,7 +117663,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/exact21000/falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" + "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=12falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD" }, "framing": "chunked" } @@ -98448,15 +117707,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "2" + } + }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/e389f71e4c3c=" } }, { @@ -98483,7 +117750,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/exact21000/urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/" + "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" } @@ -98505,7 +117772,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/board/z.txt" } }, { @@ -98513,7 +117780,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -98521,7 +117788,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-4d347fee6a7b\"" } }, { @@ -98565,20 +117832,12 @@ "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 + "value": 0 } }, { @@ -98593,16 +117852,17 @@ "refusal": null }, { - "id": "operations/s3/list-key-equal-to-prefix", + "id": "operations/s3/list-order-delimited", "profile": "s3", "lane": "core", - "purpose": "Report a key that equals the prefix as an entry", + "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": { + "delimiter": "/", "op": "list_page", - "prefix": "object-tests/exact" + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -98646,7 +117906,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/order/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" } } ], @@ -98665,7 +117933,7 @@ }, "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" + "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" } @@ -98709,7 +117977,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/order/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" } }, { @@ -98736,7 +118012,7 @@ }, "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": "\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" } @@ -98758,7 +118034,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact" + "value": "object-tests/order/A" } }, { @@ -98815,7 +118091,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/exact/child" + "value": "object-tests/order/a" } }, { @@ -98867,12 +118143,305 @@ ] } }, + { + "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": 2 + "value": 7 + } + }, + { + "at": "/value/prefixes/0", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/order/a/" } }, { @@ -98880,7 +118449,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 1 } }, { @@ -98895,17 +118464,16 @@ "refusal": null }, { - "id": "operations/s3/list-max-keys-zero", + "id": "operations/s3/list-order", "profile": "s3", "lane": "core", - "purpose": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated", + "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": { "op": "list_page", - "page_size": 0, - "prefix": "object-tests/board/" + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -98949,15 +118517,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "0" + "value": "object-tests/order/" } } ], @@ -98976,7 +118536,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/00false" + "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" } @@ -99020,15 +118580,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "0" + "value": "object-tests/order/" } }, { @@ -99055,7 +118607,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/00urlfalse" + "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" } @@ -99072,12 +118624,468 @@ "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-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/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-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/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": 0 + "value": 8 } }, { @@ -99100,17 +119108,15 @@ "refusal": null }, { - "id": "operations/s3/list-next-page", + "id": "operations/s3/list-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", + "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": { - "continuation_token": "fixture-marker+/e389f71e4c3c=", "op": "list_page", - "page_size": 2, "prefix": "object-tests/board/" }, "exchanges": [ @@ -99157,22 +119163,6 @@ "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": [ @@ -99190,7 +119180,7 @@ }, "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": "\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" } @@ -99237,22 +119227,6 @@ "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, @@ -99277,7 +119251,7 @@ }, "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" + "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" } @@ -99290,12 +119264,126 @@ "at": "/outcome", "optional": false, "rule": { - "is": "equal", - "value": "ok" + "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/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-a1cfb9bcbc61\"" + } + }, + { + "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/0/key", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", @@ -99303,7 +119391,7 @@ } }, { - "at": "/value/entries/0/size", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", @@ -99311,7 +119399,7 @@ } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", @@ -99319,7 +119407,7 @@ } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -99330,7 +119418,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/2/version", "optional": true, "rule": { "is": "one_of", @@ -99341,7 +119429,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/2/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -99356,7 +119444,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 3 } }, { @@ -99379,17 +119467,16 @@ "refusal": null }, { - "id": "operations/s3/list-order-delimited", + "id": "operations/s3/list-prefix-without-slash", "profile": "s3", "lane": "core", - "purpose": "Report the entries and the common prefixes in the order S3 sends them, each list on its own", + "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": { - "delimiter": "/", "op": "list_page", - "prefix": "object-tests/order/" + "prefix": "object-tests/boa" }, "exchanges": [ { @@ -99433,15 +119520,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/boa" } } ], @@ -99460,7 +119539,7 @@ }, "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/" + "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" } @@ -99504,15 +119583,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/boa" } }, { @@ -99539,7 +119610,7 @@ }, "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/" + "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" } @@ -99561,7 +119632,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "object-tests/board/a.txt" } }, { @@ -99569,7 +119640,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 8 } }, { @@ -99577,7 +119648,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-1d83e6eb69df\"" } }, { @@ -99618,7 +119689,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/board/nested/c.txt" } }, { @@ -99634,7 +119705,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-a1cfb9bcbc61\"" } }, { @@ -99675,7 +119746,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a-b" + "value": "object-tests/board/z.txt" } }, { @@ -99683,7 +119754,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -99691,7 +119762,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-4d347fee6a7b\"" } }, { @@ -99728,72 +119799,220 @@ } }, { - "at": "/value/entries/3/key", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/order/a.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-6c30b210f0a8\"" - } - }, - { - "at": "/value/entries/3/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3/list-separator-keys-delimited", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/separators/" + }, + "exchanges": [ { - "at": "/value/entries/3/version", - "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" + } + }, + { + "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/separators/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" + } + } + ], + "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/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" + } + }, + { + "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/separators/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" + } + }, + { + "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/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" + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/3/is_current_version", - "optional": true, + "at": "/outcome", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - false - ] + "is": "equal", + "value": "ok" } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a0" + "value": "object-tests/separators/..leading" } }, { - "at": "/value/entries/4/size", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", @@ -99801,7 +120020,7 @@ } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", @@ -99809,7 +120028,7 @@ } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -99820,7 +120039,7 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -99831,7 +120050,7 @@ } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -99842,15 +120061,15 @@ } }, { - "at": "/value/entries/5/key", + "at": "/value/entries/1/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "value": "object-tests/separators/dot." } }, { - "at": "/value/entries/5/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", @@ -99858,7 +120077,7 @@ } }, { - "at": "/value/entries/5/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", @@ -99866,7 +120085,7 @@ } }, { - "at": "/value/entries/5/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -99877,7 +120096,7 @@ } }, { - "at": "/value/entries/5/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -99888,7 +120107,7 @@ } }, { - "at": "/value/entries/5/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -99899,76 +120118,43 @@ } }, { - "at": "/value/entries/6/key", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/order/é" + "is": "array_length", + "value": 2 } }, { - "at": "/value/entries/6/size", + "at": "/value/prefixes/0", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "object-tests/separators/a.b/" } }, { - "at": "/value/entries/6/etag", + "at": "/value/prefixes/1", "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 - ] + "value": "object-tests/separators/double/" } }, { - "at": "/value/entries", + "at": "/value/prefixes/2", "optional": false, "rule": { - "is": "array_length", - "value": 7 + "is": "equal", + "value": "object-tests/separators/space /" } }, { - "at": "/value/prefixes/0", + "at": "/value/prefixes/3", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a/" + "value": "object-tests/separators/trailing/" } }, { @@ -99976,7 +120162,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 4 } }, { @@ -99991,16 +120177,16 @@ "refusal": null }, { - "id": "operations/s3/list-order", + "id": "operations/s3/list-separator-keys", "profile": "s3", "lane": "core", - "purpose": "Report the entries in the order S3 sends them, without sorting them again", + "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/order/" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -100044,7 +120230,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/separators/" } } ], @@ -100063,7 +120249,7 @@ }, "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" + "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" } @@ -100107,7 +120293,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/separators/" } }, { @@ -100134,7 +120320,7 @@ }, "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": "\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" } @@ -100156,7 +120342,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "object-tests/separators/..leading" } }, { @@ -100213,7 +120399,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/separators/a.b/c" } }, { @@ -100270,7 +120456,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a-b" + "value": "object-tests/separators/dot." } }, { @@ -100327,7 +120513,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a.txt" + "value": "object-tests/separators/double//slash" } }, { @@ -100384,7 +120570,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a/b" + "value": "object-tests/separators/space /x" } }, { @@ -100441,7 +120627,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a0" + "value": "object-tests/separators/trailing/" } }, { @@ -100494,156 +120680,221 @@ } }, { - "at": "/value/entries/6/key", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/order/b" + "is": "array_length", + "value": 6 } }, { - "at": "/value/entries/6/size", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": 1 + "is": "array_length", + "value": 0 } }, { - "at": "/value/entries/6/etag", + "at": "/value/continuation_token", "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 - ] + "value": "" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3/list-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": { + "op": "list_page", + "prefix": "object-tests/" + }, + "exchanges": [ { - "at": "/value/entries/7/key", - "optional": false, - "rule": { - "is": "equal", - "value": "object-tests/order/é" - } - }, + "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/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/" + } + } + ], + "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" + } + }, + { + "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/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 403, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nInvalidAccessKeyIdThe AWS Access Key Id you provided does not exist in our records.not-a-tokenD3AWMCZ2CJYZX2K4iNmdT7uJWoHQA6IHwWhIKos452Xw9yuRP9vkj83JKvDa5ZUSTJ5lBFHsh3LIS/1DkVBgdHG6g50=" + }, + "framing": "chunked" + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/7/size", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "error" } }, { - "at": "/value/entries/7/etag", + "at": "/status", "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 + "value": 403 } }, { - "at": "/value/continuation_token", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "InvalidAccessKeyId" } } ], "refusal": null }, { - "id": "operations/s3/list-page", + "id": "operations/s3/list-all-pages", "profile": "s3", "lane": "core", - "purpose": "List a prefix with ListObjectsV2 (list-type=2), and report each entry's key, size and ETag, quotes included", + "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": { - "op": "list_page", + "op": "list", + "page_size": 1, "prefix": "object-tests/board/" }, "exchanges": [ @@ -100668,27 +120919,367 @@ } }, { - "at": "/body_base64", + "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" + } + } + ], + "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/fixture-marker+/a11ba9e5001=11trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD" + }, + "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/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "1" + } + }, + { + "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/fixture-marker+/a11ba9e5001=11urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD" + }, + "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/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": [ + "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/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11trueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD" + }, + "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/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" + } + } + ], + "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/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD" + }, + "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/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "object-tests/board/" } }, { - "at": "/query/list-type", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "1" } }, { - "at": "/query/prefix", + "at": "/query/continuation-token", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "fixture-marker+/a11ba9e5002=" } } ], @@ -100707,7 +121298,7 @@ }, "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": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD" }, "framing": "chunked" } @@ -100754,6 +121345,22 @@ "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, @@ -100778,7 +121385,7 @@ }, "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": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD" }, "framing": "chunked" } @@ -100796,214 +121403,31 @@ } }, { - "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/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-a1cfb9bcbc61\"" - } - }, - { - "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/z.txt" - } - }, - { - "at": "/value/entries/2/size", - "optional": false, - "rule": { - "is": "equal", - "value": 2 - } - }, - { - "at": "/value/entries/2/etag", + "at": "/value/keys", "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 + "value": [ + "object-tests/board/a.txt", + "object-tests/board/nested/c.txt", + "object-tests/board/z.txt" ] } - }, - { - "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/list-entry-properties", "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": "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/boa" + "prefix": "object-tests/properties/" }, "exchanges": [ { @@ -101047,7 +121471,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "value": "object-tests/properties/" } } ], @@ -101066,7 +121490,7 @@ }, "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" + "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" } @@ -101110,7 +121534,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "value": "object-tests/properties/" } }, { @@ -101137,7 +121561,7 @@ }, "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" + "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" } @@ -101159,7 +121583,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "object-tests/properties/infrequent.txt" } }, { @@ -101167,7 +121591,7 @@ "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 2 } }, { @@ -101175,7 +121599,23 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-1d83e6eb69df\"" + "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" } }, { @@ -101216,7 +121656,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/c.txt" + "value": "object-tests/properties/standard.txt" } }, { @@ -101224,7 +121664,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 3 } }, { @@ -101232,68 +121672,27 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-a1cfb9bcbc61\"" - } - }, - { - "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/z.txt" + "value": "\"fixture-5070726f0001\"" } }, { - "at": "/value/entries/2/size", + "at": "/value/entries/1/last_modified", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": "2024-02-03T04:05:06Z" } }, { - "at": "/value/entries/2/etag", + "at": "/value/entries/1/storage_class", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4d347fee6a7b\"" + "value": "STANDARD" } }, { - "at": "/value/entries/2/snapshot", + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -101304,7 +121703,7 @@ } }, { - "at": "/value/entries/2/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -101315,7 +121714,7 @@ } }, { - "at": "/value/entries/2/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -101330,7 +121729,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 3 + "value": 2 } }, { @@ -101353,17 +121752,17 @@ "refusal": null }, { - "id": "operations/s3/list-separator-keys-delimited", + "id": "operations/s3/list-checksum-algorithm", "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": "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": { - "delimiter": "/", "op": "list_page", - "prefix": "object-tests/separators/" + "prefix": "object-tests/checksum-listing/" }, "exchanges": [ { @@ -101407,15 +121806,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/checksum-listing/" } } ], @@ -101434,7 +121825,7 @@ }, "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": "\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" } @@ -101478,15 +121869,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/checksum-listing/" } }, { @@ -101513,7 +121896,7 @@ }, "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/" + "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" } @@ -101535,7 +121918,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/..leading" + "value": "object-tests/checksum-listing/crc32.txt" } }, { @@ -101543,7 +121926,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 3 } }, { @@ -101551,7 +121934,15 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-636b736c0000\"" + } + }, + { + "at": "/value/entries/0/checksum_algorithm", + "optional": false, + "rule": { + "is": "equal", + "value": "CRC32" } }, { @@ -101592,7 +121983,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/dot." + "value": "object-tests/checksum-listing/none.txt" } }, { @@ -101600,7 +121991,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 4 } }, { @@ -101608,7 +121999,15 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-636b736c0001\"" + } + }, + { + "at": "/value/entries/1/checksum_algorithm", + "optional": false, + "rule": { + "is": "equal", + "value": "CRC64NVME" } }, { @@ -101652,44 +122051,12 @@ "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 + "value": 0 } }, { @@ -101704,16 +122071,17 @@ "refusal": null }, { - "id": "operations/s3/list-separator-keys", + "id": "operations/s3/list-other-delimiter", "profile": "s3", "lane": "core", - "purpose": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored", + "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": { + "delimiter": "-", "op": "list_page", - "prefix": "object-tests/separators/" + "prefix": "object-tests/dashes/" }, "exchanges": [ { @@ -101757,7 +122125,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/dashes/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "-" } } ], @@ -101776,7 +122152,7 @@ }, "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" + "data": "\nfixtureobject-tests/dashes/21000-falseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-" }, "framing": "chunked" } @@ -101820,7 +122196,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/dashes/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "-" } }, { @@ -101847,7 +122231,7 @@ }, "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": "\nfixtureobject-tests/dashes/21000-urlfalseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-" }, "framing": "chunked" } @@ -101869,7 +122253,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/..leading" + "value": "object-tests/dashes/b.txt" } }, { @@ -101885,7 +122269,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": "\"fixture-646173680000\"" } }, { @@ -101922,296 +122306,19 @@ } }, { - "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/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/separators/trailing/" - } - }, - { - "at": "/value/entries/5/size", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", + "is": "array_length", "value": 1 } }, { - "at": "/value/entries/5/etag", + "at": "/value/prefixes/0", "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", - "optional": false, - "rule": { - "is": "array_length", - "value": 6 + "value": "object-tests/dashes/a-" } }, { @@ -102219,7 +122326,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 1 } }, { @@ -102234,16 +122341,17 @@ "refusal": null }, { - "id": "operations/s3/list-unauthenticated", + "id": "operations/s3/list-prefix-special-characters", "profile": "s3", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "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/" + "prefix": "object-tests/odd a+b&c=d%é/" }, "exchanges": [ { @@ -102287,7 +122395,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/" + "value": "object-tests/odd a+b&c=d%é/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" } } ], @@ -102296,16 +122412,17 @@ ], "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": "\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" } @@ -102349,7 +122466,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/" + "value": "object-tests/odd a+b&c=d%é/" + } + }, + { + "at": "/query/delimiter", + "optional": false, + "rule": { + "is": "equal", + "value": "/" } }, { @@ -102366,16 +122491,17 @@ ], "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": "\nInvalidAccessKeyIdThe AWS Access Key Id you provided does not exist in our records.not-a-tokenD3AWMCZ2CJYZX2K4iNmdT7uJWoHQA6IHwWhIKos452Xw9yuRP9vkj83JKvDa5ZUSTJ5lBFHsh3LIS/1DkVBgdHG6g50=" + "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" } @@ -102389,40 +122515,113 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/entries/0/key", "optional": false, "rule": { "is": "equal", - "value": 403 + "value": "object-tests/odd a+b&c=d%é/x.txt" } }, { - "at": "/code", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidAccessKeyId" + "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/list-all-pages", + "id": "operations/s3/list-fetch-owner", "profile": "s3", "lane": "core", - "purpose": "Follow each page's continuation token until a page is not truncated", + "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": { - "op": "list", - "page_size": 1, - "prefix": "object-tests/board/" + "fetch_owner": true, + "op": "list_page", + "prefix": "object-tests/owner/" }, "exchanges": [ { @@ -102466,15 +122665,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/owner/" } }, { - "at": "/query/max-keys", + "at": "/query/fetch-owner", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "true" } } ], @@ -102493,7 +122692,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD" + "data": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD" }, "framing": "chunked" } @@ -102537,15 +122736,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/owner/" } }, { - "at": "/query/max-keys", + "at": "/query/fetch-owner", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "true" } }, { @@ -102572,13 +122771,128 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD" + "data": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD" }, "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 + } + }, + { + "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": [ { @@ -102620,23 +122934,7 @@ "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=" + "value": "object-tests/many/" } } ], @@ -102655,7 +122953,7 @@ }, "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" + "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" } @@ -102699,23 +122997,7 @@ "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=" + "value": "object-tests/many/" } }, { @@ -102742,7 +123024,7 @@ }, "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" + "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" } @@ -102790,15 +123072,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/many/" } }, { @@ -102806,7 +123080,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" + "value": "fixture-marker+/3a4e1000=" } } ], @@ -102825,7 +123099,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD" + "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD" }, "framing": "chunked" } @@ -102869,15 +123143,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/many/" } }, { @@ -102885,7 +123151,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" + "value": "fixture-marker+/3a4e1000=" } }, { @@ -102912,7 +123178,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD" + "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD" }, "framing": "chunked" } @@ -102935,9 +123201,1007 @@ "rule": { "is": "equal", "value": [ - "object-tests/board/a.txt", - "object-tests/board/nested/c.txt", - "object-tests/board/z.txt" + "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" ] } } @@ -102945,16 +124209,17 @@ "refusal": null }, { - "id": "operations/s3/list-entry-properties", + "id": "operations/s3/list-start-after", "profile": "s3", "lane": "core", - "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class", + "purpose": "Send start-after, and list only the keys after it", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { "op": "list_page", - "prefix": "object-tests/properties/" + "prefix": "object-tests/board/", + "start_after": "object-tests/board/a.txt" }, "exchanges": [ { @@ -102998,7 +124263,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/start-after", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/a.txt" } } ], @@ -103017,7 +124290,7 @@ }, "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" + "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" } @@ -103061,7 +124334,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/start-after", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/board/a.txt" } }, { @@ -103088,7 +124369,7 @@ }, "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" + "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" } @@ -103110,7 +124391,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/infrequent.txt" + "value": "object-tests/board/nested/c.txt" } }, { @@ -103118,7 +124399,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -103126,23 +124407,7 @@ "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" + "value": "\"fixture-626f61720001\"" } }, { @@ -103183,7 +124448,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/standard.txt" + "value": "object-tests/board/z.txt" } }, { @@ -103191,7 +124456,7 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 2 } }, { @@ -103199,23 +124464,7 @@ "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" + "value": "\"fixture-626f61720002\"" } }, { @@ -103279,17 +124528,18 @@ "refusal": null }, { - "id": "operations/s3/list-checksum-algorithm", + "id": "operations/s3/list-start-after-delimited", "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": "Send a start-after that names no key; it skips the keys and common prefixes up to it", "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": { + "delimiter": "/", "op": "list_page", - "prefix": "object-tests/checksum-listing/" + "prefix": "object-tests/board/", + "start_after": "object-tests/board/b" }, "exchanges": [ { @@ -103333,7 +124583,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/" + "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" } } ], @@ -103352,7 +124618,7 @@ }, "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" + "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" } @@ -103396,7 +124662,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/" + "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" } }, { @@ -103423,7 +124705,7 @@ }, "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" + "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" } @@ -103445,7 +124727,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/crc32.txt" + "value": "object-tests/board/z.txt" } }, { @@ -103453,7 +124735,7 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 2 } }, { @@ -103461,15 +124743,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-636b736c0000\"" - } - }, - { - "at": "/value/entries/0/checksum_algorithm", - "optional": false, - "rule": { - "is": "equal", - "value": "CRC32" + "value": "\"fixture-626f61720002\"" } }, { @@ -103506,76 +124780,19 @@ } }, { - "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", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-636b736c0001\"" + "is": "array_length", + "value": 1 } }, { - "at": "/value/entries/1/checksum_algorithm", + "at": "/value/prefixes/0", "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": "object-tests/board/nested/" } }, { @@ -103583,7 +124800,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 1 } }, { @@ -103598,17 +124815,18 @@ "refusal": null }, { - "id": "operations/s3/list-other-delimiter", + "id": "operations/s3/list-truncated-without-token", "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": "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/dashes/" + "op": "list", + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -103652,15 +124870,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "-" + "value": "2" } } ], @@ -103679,7 +124897,7 @@ }, "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-" + "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" } @@ -103723,15 +124941,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/dashes/" + "value": "object-tests/board/" } }, { - "at": "/query/delimiter", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "-" + "value": "2" } }, { @@ -103758,7 +124976,7 @@ }, "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-" + "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" } @@ -103772,113 +124990,25 @@ "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-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": "" + "value": "error" } } ], "refusal": null }, { - "id": "operations/s3/list-prefix-special-characters", + "id": "operations/s3/list-encoding-ignored", "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": "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": { - "delimiter": "/", "op": "list_page", - "prefix": "object-tests/odd a+b&c=d%é/" + "prefix": "object-tests/percent/" }, "exchanges": [ { @@ -103922,15 +125052,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/percent/" } } ], @@ -103949,7 +125071,7 @@ }, "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+/" + "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" } @@ -103993,15 +125115,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/percent/" } }, { @@ -104028,7 +125142,7 @@ }, "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": "\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" } @@ -104050,7 +125164,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/x.txt" + "value": "object-tests/percent/%zz.txt" } }, { @@ -104066,7 +125180,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6f6464200000\"" + "value": "\"fixture-706572000000\"" } }, { @@ -104103,252 +125217,88 @@ } }, { - "at": "/value/entries", + "at": "/value/entries/1/key", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "object-tests/percent/100%-off.txt" } }, { - "at": "/value/prefixes/0", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/sub dir+/" + "value": 2 } }, { - "at": "/value/prefixes", + "at": "/value/entries/1/etag", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "\"fixture-706572000001\"" } }, { - "at": "/value/continuation_token", - "optional": false, + "at": "/value/entries/1/snapshot", + "optional": true, "rule": { - "is": "equal", - "value": "" + "is": "one_of", + "values": [ + null, + "" + ] } - } - ], - "refusal": null - }, - { - "id": "operations/s3/list-fetch-owner", - "profile": "s3", - "lane": "core", - "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": { - "fetch_owner": true, - "op": "list_page", - "prefix": "object-tests/owner/" - }, - "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/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" - } - } - ], - "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/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD" - }, - "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/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-idSTANDARD" - }, - "framing": "chunked" - } - } - ] - } - ], - "expect": [ + }, { - "at": "/outcome", - "optional": false, + "at": "/value/entries/1/version", + "optional": true, "rule": { - "is": "equal", - "value": "ok" + "is": "one_of", + "values": [ + null, + "" + ] } }, { - "at": "/value/entries/0/key", - "optional": false, + "at": "/value/entries/1/is_current_version", + "optional": true, "rule": { - "is": "equal", - "value": "object-tests/owner/a.txt" + "is": "one_of", + "values": [ + null, + false + ] } }, { - "at": "/value/entries/0/size", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "object-tests/percent/50%" } }, { - "at": "/value/entries/0/etag", + "at": "/value/entries/2/size", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6f776e650000\"" + "value": 3 } }, { - "at": "/value/entries/0/owner_id", + "at": "/value/entries/2/etag", "optional": false, "rule": { "is": "equal", - "value": "fixture-owner-id" + "value": "\"fixture-706572000002\"" } }, { - "at": "/value/entries/0/snapshot", + "at": "/value/entries/2/snapshot", "optional": true, "rule": { "is": "one_of", @@ -104359,7 +125309,7 @@ } }, { - "at": "/value/entries/0/version", + "at": "/value/entries/2/version", "optional": true, "rule": { "is": "one_of", @@ -104370,7 +125320,7 @@ } }, { - "at": "/value/entries/0/is_current_version", + "at": "/value/entries/2/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -104385,7 +125335,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 3 } }, { @@ -104408,16 +125358,17 @@ "refusal": null }, { - "id": "operations/s3/list-over-1000", + "id": "operations/s3/put-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "List more keys than the service's default page of 1,000 by following the continuation token", + "purpose": "put 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": { - "op": "list", - "prefix": "object-tests/many/" + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", + "key": "object.txt", + "op": "put" }, "exchanges": [ { @@ -104429,7 +125380,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -104437,7 +125388,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object.txt" } }, { @@ -104445,23 +125396,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/many/" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } } ], @@ -104470,21 +125405,75 @@ ], "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=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": "\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/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": [ { @@ -104492,7 +125481,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -104500,7 +125489,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/write/empty.bin" } }, { @@ -104510,30 +125499,6 @@ "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/many/" - } - }, - { - "at": "/query/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" - } } ], "allow_headers": [ @@ -104543,21 +125508,66 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, + "etag": "\"fixture-7d64e1430626\"", "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" - }, - "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-7d64e1430626\"" + } }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/put-created", + "profile": "s3", + "lane": "core", + "purpose": "put created", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/write/object.txt", + "op": "put" + }, + "exchanges": [ { "alternatives": [ { @@ -104567,7 +125577,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -104575,7 +125585,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -104583,31 +125593,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/many/" - } - }, - { - "at": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/3a4e1000=" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -104618,19 +125604,68 @@ "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/many/fixture-marker+/3a4e1000=11000falseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"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-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": [ { @@ -104638,7 +125673,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -104646,7 +125681,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -104654,39 +125689,103 @@ "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/query/list-type", - "optional": false, - "rule": { - "is": "equal", - "value": "2" + "value": "MDEyMzQ1Njc4OQ==" } + } + ], + "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": "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": [ + { + "request": [ { - "at": "/query/prefix", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" + "value": "PUT" } }, { - "at": "/query/continuation-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/3a4e1000=" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { - "at": "/query/encoding-type", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -104697,17 +125796,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/many/fixture-marker+/3a4e1000=11000urlfalseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -104719,1016 +125817,748 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-fbe0ab688a03\"" } }, { - "at": "/value/keys", - "optional": false, + "at": "/value/version", + "optional": true, "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" + "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": [ + { + "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==" + } + } + ], + "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": "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": [ + { + "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==" + } + } + ], + "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": "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": [ + { + "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==" + } + } + ], + "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": "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": [ + { + "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==" + } + } + ], + "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": "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": [ + { + "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==" + } + } + ], + "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": "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": [ + { + "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==" + } + } + ], + "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": "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": [ + { + "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/absent\\.txt" + } + } + ], + "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": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/absent.txt" + } + }, + { + "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 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "NoSuchKey", + "" ] } } @@ -105736,17 +126566,1375 @@ "refusal": null }, { - "id": "operations/s3/list-start-after", + "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": [ + { + "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"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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-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": [ + { + "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"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + }, + { + "at": "/query/versionId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-version-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\\?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": [ + "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/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", + "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" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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", + "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" + } + } + ], + "optional": true + }, + { + "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" + } + } + ], + "optional": true + }, + { + "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" + } + } + ], + "optional": true + }, + { + "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" + } + } + ], + "optional": true + }, + { + "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" + } + } + ], + "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/copy-replace-metadata", + "profile": "s3", + "lane": "core", + "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_CopyObject.html" + ], + "call": { + "content_type": "text/plain", + "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-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"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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": [ + "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/copy-replace-tags", + "profile": "s3", + "lane": "core", + "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": [ + "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", + "tags": { + "project": "copied" + } + }, + "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/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"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" + ], + "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/copy-storage-class", "profile": "s3", "lane": "core", - "purpose": "Send start-after, and list only the keys after it", + "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": { - "op": "list_page", - "prefix": "object-tests/board/", - "start_after": "object-tests/board/a.txt" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt", + "storage_class": "STANDARD_IA" }, "exchanges": [ { @@ -105758,7 +127946,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -105766,7 +127954,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -105778,30 +127966,134 @@ } }, { - "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-storage-class", "optional": false, "rule": { "is": "equal", - "value": "2" + "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"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" } }, { - "at": "/query/prefix", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "/object-tests/copy/source.txt" } }, { - "at": "/query/start-after", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "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/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" ], @@ -105809,19 +128101,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/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" + "encoding": "empty" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/copy-source-if-match", + "profile": "s3", + "lane": "core", + "purpose": "Copy an object only if the source still has this ETag, named in x-amz-copy-source-if-match", + "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-etag\"", + "source_key": "object-tests/copy/source.txt" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -105829,7 +128152,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -105837,7 +128160,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -105849,38 +128172,134 @@ } }, { - "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-copy-source-if-match", "optional": false, "rule": { "is": "equal", - "value": "2" + "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"" + } + } + }, + { + "request": [ { - "at": "/query/prefix", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "HEAD" } }, { - "at": "/query/start-after", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "/object-tests/copy/source.txt" } }, { - "at": "/query/encoding-type", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "url" + "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/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" ], @@ -105888,17 +128307,16 @@ "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/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" + "encoding": "empty" + } } } ] @@ -105912,161 +128330,677 @@ "is": "equal", "value": "ok" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3/copy-source-if-match-failed", + "profile": "s3", + "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": [ { - "at": "/value/entries/0/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-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" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" + ], + "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": "object-tests/board/nested/c.txt" + "value": "error" } }, { - "at": "/value/entries/0/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 412 } }, { - "at": "/value/entries/0/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-626f61720001\"" - } - }, - { - "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, - "" - ] + "value": "PreconditionFailed" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3/copy-source-if-none-match-failed", + "profile": "s3", + "lane": "core", + "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_CopyObject.html" + ], + "call": { + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_none_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" + }, + "exchanges": [ { - "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": "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" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" + ], + "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": "/value/entries/1/key", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "error" } }, { - "at": "/value/entries/1/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 412 } }, { - "at": "/value/entries/1/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-626f61720002\"" - } - }, - { - "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": "PreconditionFailed" } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3/copy-source-if-modified-since", + "profile": "s3", + "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": [ { - "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/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"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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/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" + ], + "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": "/value/continuation_token", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3/list-start-after-delimited", + "id": "operations/s3/copy-source-if-unmodified-since-failed", "profile": "s3", "lane": "core", - "purpose": "Send a start-after that names no key; it skips the keys and common prefixes up to it", + "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": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/board/", - "start_after": "object-tests/board/b" + "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": [ { @@ -106078,7 +129012,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -106086,7 +129020,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -106098,35 +129032,19 @@ } }, { - "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", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "/" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { - "at": "/query/start-after", + "at": "/headers/x-amz-copy-source-if-unmodified-since", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/b" + "value": "Mon, 01 Jan 2024 00:00:00 GMT" } } ], @@ -106135,17 +129053,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": "\nfixtureobject-tests/board/21000/falseobject-tests/board/bobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } @@ -106157,7 +129074,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -106165,7 +129082,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/object-tests/copy/source.txt" } }, { @@ -106175,46 +129092,74 @@ "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" - } - }, + } + ], + "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/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": [ @@ -106224,17 +129169,16 @@ "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/21000/urlfalseobject-tests/board/bobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -106246,114 +129190,41 @@ "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-626f61720002\"" - } - }, - { - "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/board/nested/" - } - }, - { - "at": "/value/prefixes", - "optional": false, - "rule": { - "is": "array_length", - "value": 1 + "value": 412 } }, { - "at": "/value/continuation_token", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3/list-truncated-without-token", + "id": "operations/s3/copy-across-buckets", "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": "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" ], - "origin": "constructed", "call": { - "op": "list", - "page_size": 2, - "prefix": "object-tests/board/" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_bucket": "source", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -106365,7 +129236,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -106373,7 +129244,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -106385,30 +129256,118 @@ } }, { - "at": "/query/list-type", + "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"" + } + } + }, + { + "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/board/" + "value": "/object-tests/copy/source.txt" } }, { - "at": "/query/max-keys", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "2" + "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/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" ], @@ -106416,19 +129375,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/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": "empty" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3/copy-source-key-encoded", + "profile": "s3", + "lane": "core", + "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": [ + "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/a b+c%é?#.txt" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -106436,7 +129425,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -106444,7 +129433,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/target.txt" } }, { @@ -106456,38 +129445,118 @@ } }, { - "at": "/query/list-type", + "at": "/headers/x-amz-copy-source", "optional": false, "rule": { - "is": "equal", - "value": "2" + "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": [ { - "at": "/query/prefix", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "HEAD" } }, { - "at": "/query/max-keys", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/object-tests/copy/a b+c%é?#.txt" } }, { - "at": "/query/encoding-type", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "url" + "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/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" ], @@ -106495,17 +129564,16 @@ "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/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": "empty" + } } } ] @@ -106517,25 +129585,24 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3/list-encoding-ignored", + "id": "operations/s3/copy-onto-itself", "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": "Report a copy of an object onto itself that changes nothing as an error. S3 answers 400 InvalidRequest", "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_CopyObject.html" ], - "origin": "constructed", "call": { - "op": "list_page", - "prefix": "object-tests/percent/" + "key": "object-tests/copy/source.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -106547,7 +129614,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -106555,7 +129622,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/fixture/object-tests/copy/source.txt" } }, { @@ -106567,19 +129634,11 @@ } }, { - "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/percent/" + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -106588,17 +129647,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/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" + "data": "\nInvalidRequestFixture error" }, "framing": "chunked" } @@ -106610,7 +129668,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -106618,7 +129676,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture" + "value": "/object-tests/copy/source.txt" } }, { @@ -106628,30 +129686,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/percent/" - } - }, + } + ], + "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": [ @@ -106661,17 +129755,16 @@ "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/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": "empty" + } } } ] @@ -106683,219 +129776,265 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "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%" + "value": "error" } }, { - "at": "/value/entries/2/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 400 } }, { - "at": "/value/entries/2/etag", + "at": "/code", "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": "InvalidRequest" } + } + ], + "refusal": null + }, + { + "id": "operations/s3/copy-onto-itself-replace-metadata", + "profile": "s3", + "lane": "core", + "purpose": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE", + "sources": [ + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + ], + "call": { + "key": "object-tests/copy/source.txt", + "metadata": { + "colour": "blue" }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" + }, + "exchanges": [ { - "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/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"" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "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": "/value/continuation_token", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3/put-bucket-missing", + "id": "operations/s3/put-with-unknown-storage-class", "profile": "s3", "lane": "core", - "purpose": "put bucket missing", + "purpose": "Refuse a storage class that S3 does not have", "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": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object.txt", - "op": "put" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/classes/object.txt", + "op": "put", + "storage_class": "WARM" }, "exchanges": [ { @@ -106915,7 +130054,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/classes/object.txt" } }, { @@ -106923,7 +130062,15 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "Zmlyc3Q=" + } + }, + { + "at": "/headers/x-amz-storage-class", + "optional": false, + "rule": { + "is": "equal", + "value": "WARM" } } ], @@ -106932,7 +130079,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -106941,7 +130088,7 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchBucketFixture error" + "data": "\nInvalidStorageClassFixture error" }, "framing": "chunked" } @@ -106963,7 +130110,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 400 } }, { @@ -106971,24 +130118,25 @@ "optional": false, "rule": { "is": "equal", - "value": "NoSuchBucket" + "value": "InvalidStorageClass" } } ], "refusal": null }, { - "id": "operations/s3/put-created-empty", + "id": "operations/s3/put-with-storage-class", "profile": "s3", "lane": "core", - "purpose": "put created empty", + "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": { - "body_base64": "", - "key": "object-tests/write/empty.bin", - "op": "put" + "body_base64": "Zmlyc3Q=", + "key": "object-tests/classes/object.txt", + "op": "put", + "storage_class": "STANDARD_IA" }, "exchanges": [ { @@ -107008,7 +130156,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/empty.bin" + "value": "/fixture/object-tests/classes/object.txt" } }, { @@ -107016,7 +130164,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" + } + }, + { + "at": "/headers/x-amz-storage-class", + "optional": false, + "rule": { + "is": "equal", + "value": "STANDARD_IA" } } ], @@ -107030,12 +130186,11 @@ "date": { "from": "now" }, - "etag": "\"fixture-7d64e1430626\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -107050,40 +130205,25 @@ "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", + "id": "operations/s3/put-with-md5", "profile": "s3", "lane": "core", - "purpose": "put created", + "purpose": "Carry a declared transactional MD5 without substituting a payload or stored-property hash.", "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": "aGVsbG8=", + "checksum": { + "algorithm": "md5", + "value_base64": "XUFAKrxLKna5cZ2REBfFkg==" + }, + "key": "object", "op": "put" }, "exchanges": [ @@ -107104,7 +130244,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object" } }, { @@ -107112,7 +130252,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "aGVsbG8=" + } + }, + { + "at": "/headers/content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "XUFAKrxLKna5cZ2REBfFkg==" } } ], @@ -107123,11 +130271,13 @@ "response": { "status": 200, "headers": { + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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", @@ -107146,40 +130296,25 @@ "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", + "id": "operations/s3/put-md5-mismatch", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"question?mark.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/question?mark.txt", + "body_base64": "aGVsbG8=", + "checksum": { + "algorithm": "md5", + "value_base64": "K9opmNmw7hl9oUKgRH9nJQ==" + }, + "key": "object", "op": "put" }, "exchanges": [ @@ -107200,7 +130335,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object" } }, { @@ -107208,7 +130343,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "aGVsbG8=" + } + }, + { + "at": "/headers/content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "K9opmNmw7hl9oUKgRH9nJQ==" } } ], @@ -107217,18 +130360,21 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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": "" - } + "encoding": "utf8", + "data": "\nBadDigestMD5 mismatch" + }, + "framing": "chunked" } } ] @@ -107240,42 +130386,35 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "BadDigest" } } ], "refusal": null }, { - "id": "operations/s3/put-created-key-hash", + "id": "operations/s3/put-with-crc32", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"hash#tag.txt\"", + "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": [ - "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": "crc32", + "value_base64": "ItMTFg==" + }, + "key": "object-tests/checksums/crc32.txt", "op": "put" }, "exchanges": [ @@ -107296,7 +130435,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/checksums/crc32.txt" } }, { @@ -107304,7 +130443,23 @@ "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-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC32" } } ], @@ -107318,8 +130473,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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", @@ -107344,7 +130500,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "\"fixture-636b73750000\"" } }, { @@ -107362,16 +130518,19 @@ "refusal": null }, { - "id": "operations/s3/put-created-key-percent", + "id": "operations/s3/put-computing-sha256", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"percent%20.txt\"", + "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": [ - "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": "sha256" + }, + "key": "object-tests/checksums/sha256.txt", "op": "put" }, "exchanges": [ @@ -107392,7 +130551,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/checksums/sha256.txt" } }, { @@ -107400,7 +130559,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "Y2hlY2tzdW0K" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "SHA256" + } + }, + { + "at": "/headers/x-amz-checksum-sha256", + "optional": false, + "rule": { + "is": "equal", + "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" } } ], @@ -107414,8 +130589,96 @@ "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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": "" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "PUT" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/fixture/object-tests/checksums/sha256.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGEyNTY6WUJXanArcXlWOVBZZENUTGtZSjlXTGV2ZWdpUlI4NmJUNDZqeGZ3ZXU5ST0NCg0K" + } + }, + { + "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": "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-sha256" + } + } + ], + "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", @@ -107440,7 +130703,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "\"fixture-636b73750000\"" } }, { @@ -107458,16 +130721,20 @@ "refusal": null }, { - "id": "operations/s3/put-created-key-plus", + "id": "operations/s3/put-with-sha256", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"plus+plus.txt\"", + "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": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/plus+plus.txt", + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "sha256", + "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" + }, + "key": "object-tests/checksums/sha256.txt", "op": "put" }, "exchanges": [ @@ -107488,7 +130755,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/checksums/sha256.txt" } }, { @@ -107496,7 +130763,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "Y2hlY2tzdW0K" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "SHA256" + } + }, + { + "at": "/headers/x-amz-checksum-sha256", + "optional": false, + "rule": { + "is": "equal", + "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" } } ], @@ -107510,8 +130793,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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", @@ -107536,7 +130820,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "\"fixture-636b73750000\"" } }, { @@ -107554,16 +130838,19 @@ "refusal": null }, { - "id": "operations/s3/put-created-key-space", + "id": "operations/s3/put-computing-sha1", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"space name.txt\"", + "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/keys/space name.txt", + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "sha1" + }, + "key": "object-tests/checksums/sha1.txt", "op": "put" }, "exchanges": [ @@ -107584,7 +130871,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/checksums/sha1.txt" } }, { @@ -107592,7 +130879,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "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=" } } ], @@ -107606,8 +130909,96 @@ "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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": "" + } + } + }, + { + "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": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGExOkxsMnZBZ0hkNndhS1l0WGdqYUdHVjZzc2Eraz0NCg0K" + } + }, + { + "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": "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", @@ -107632,7 +131023,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "\"fixture-636b73750000\"" } }, { @@ -107650,16 +131041,20 @@ "refusal": null }, { - "id": "operations/s3/put-created-key-non-ascii", + "id": "operations/s3/put-with-sha1", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"café/雪.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/café/雪.txt", + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "sha1", + "value_base64": "Ll2vAgHd6waKYtXgjaGGV6ssa+k=" + }, + "key": "object-tests/checksums/sha1.txt", "op": "put" }, "exchanges": [ @@ -107680,7 +131075,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/checksums/sha1.txt" } }, { @@ -107688,7 +131083,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "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=" } } ], @@ -107702,8 +131113,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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", @@ -107728,7 +131140,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "\"fixture-636b73750000\"" } }, { @@ -107746,16 +131158,19 @@ "refusal": null }, { - "id": "operations/s3/put-created-key-double-slash", + "id": "operations/s3/put-computing-crc64nvme", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"double//slash.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/double//slash.txt", + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc64nvme" + }, + "key": "object-tests/checksums/crc64nvme.txt", "op": "put" }, "exchanges": [ @@ -107776,7 +131191,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/checksums/crc64nvme.txt" } }, { @@ -107784,7 +131199,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "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=" } } ], @@ -107798,8 +131229,96 @@ "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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": "" + } + } + }, + { + "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": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmM2NG52bWU6WEdrTlFWSmlUTHc9DQoNCg==" + } + }, + { + "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": "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", @@ -107824,7 +131343,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "\"fixture-636b73750000\"" } }, { @@ -107842,16 +131361,20 @@ "refusal": null }, { - "id": "operations/s3/put-created-key-trailing-slash", + "id": "operations/s3/put-with-crc64nvme", "profile": "s3", "lane": "core", - "purpose": "put created, with the key \"trailing-slash/\"", + "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/trailing-slash/", + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc64nvme", + "value_base64": "XGkNQVJiTLw=" + }, + "key": "object-tests/checksums/crc64nvme.txt", "op": "put" }, "exchanges": [ @@ -107872,7 +131395,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/checksums/crc64nvme.txt" } }, { @@ -107880,7 +131403,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "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=" } } ], @@ -107894,8 +131433,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-fbe0ab688a03\"", - "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", @@ -107920,7 +131460,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "\"fixture-636b73750000\"" } }, { @@ -107938,17 +131478,20 @@ "refusal": null }, { - "id": "operations/s3/copy-missing-source", + "id": "operations/s3/put-computing-crc32c", "profile": "s3", "lane": "core", - "purpose": "Refuse a copy whose source does not exist", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/absent.txt" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc32c" + }, + "key": "object-tests/checksums/crc32c.txt", + "op": "put" }, "exchanges": [ { @@ -107968,7 +131511,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/checksums/crc32c.txt" } }, { @@ -107976,15 +131519,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC32C" + } + }, + { + "at": "/headers/x-amz-checksum-crc32c", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt" + "is": "equal", + "value": "6dErUA==" } } ], @@ -107993,18 +131544,19 @@ ], "allow_query": [], "response": { - "status": 404, + "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": "\nNoSuchKeyFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } }, { @@ -108014,7 +131566,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -108022,7 +131574,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/absent.txt" + "value": "/fixture/object-tests/checksums/crc32c.txt" } }, { @@ -108030,7 +131582,47 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "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" } } ], @@ -108039,14 +131631,18 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { "date": { "from": "now" - } + }, + "etag": "\"fixture-636b73750000\"", + "x-amz-checksum-crc32": "ItMTFg==", + "x-amz-checksum-type": "FULL_OBJECT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -108059,24 +131655,24 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-636b73750000\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { "is": "one_of", "values": [ - "NoSuchKey", + null, "" ] } @@ -108085,17 +131681,21 @@ "refusal": null }, { - "id": "operations/s3/copy", + "id": "operations/s3/put-with-crc32c", "profile": "s3", "lane": "core", - "purpose": "Copy an object to another key in the same bucket", + "purpose": "Send a CRC32C checksum that the caller gives, in x-amz-checksum-crc32c", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc32c", + "value_base64": "6dErUA==" + }, + "key": "object-tests/checksums/crc32c.txt", + "op": "put" }, "exchanges": [ { @@ -108115,7 +131715,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/checksums/crc32c.txt" } }, { @@ -108123,15 +131723,23 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC32C" + } + }, + { + "at": "/headers/x-amz-checksum-crc32c", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "6dErUA==" } } ], @@ -108142,17 +131750,72 @@ "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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + "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-computing-crc32", + "profile": "s3", + "lane": "core", + "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/API_PutObject.html" + ], + "call": { + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc32" + }, + "key": "object-tests/checksums/crc32.txt", + "op": "put" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -108160,7 +131823,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -108168,7 +131831,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/checksums/crc32.txt" } }, { @@ -108176,67 +131839,111 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC32" + } + }, + { + "at": "/headers/x-amz-checksum-crc32", + "optional": false, + "rule": { + "is": "equal", + "value": "ItMTFg==" } } ], - "then": [ + "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": [ { - "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"" - } - } - } - ] + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "PUT" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/fixture/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/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": [ @@ -108246,15 +131953,16 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" + "encoding": "base64", + "data": "" } } } @@ -108275,25 +131983,45 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "value": "\"fixture-636b73750000\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/copy-source-version", + "id": "operations/s3/put-two-checksums", "profile": "s3", "lane": "core", - "purpose": "Copy an earlier version of an object, named by versionId in x-amz-copy-source", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt", - "source_version": "fixture-version-1" + "body_base64": "Y2hlY2tzdW0K", + "checksums": [ + { + "algorithm": "crc32", + "value_base64": "ItMTFg==" + }, + { + "algorithm": "sha256", + "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" + } + ], + "key": "object-tests/checksums/two.txt", + "op": "put" }, "exchanges": [ { @@ -108313,7 +132041,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/checksums/two.txt" } }, { @@ -108321,15 +132049,34 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-checksum-crc32", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt\\?versionId=fixture-version-1" + "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" + ] } } ], @@ -108338,7 +132085,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -108347,10 +132094,102 @@ }, "body": { "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - } + "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": [ { @@ -108358,7 +132197,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -108366,7 +132205,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -108374,77 +132213,18 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { - "at": "/query/versionId", + "at": "/headers/x-amz-tagging", "optional": false, "rule": { "is": "equal", - "value": "fixture-version-1" + "value": "project=object-tests" } } ], - "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\\?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": [ "content-type" ], @@ -108452,7 +132232,6 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, @@ -108480,20 +132259,20 @@ "refusal": null }, { - "id": "operations/s3/copy-200-internal-error", + "id": "operations/s3/put-with-tags-special-characters", "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", + "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://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_PutObject.html" ], - "origin": "transient", "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "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": [ { @@ -108513,7 +132292,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -108521,124 +132300,18 @@ "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" - } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "HEAD" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "Zmlyc3Q=" } }, { - "at": "/body_base64", + "at": "/headers/x-amz-tagging", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "a%20b%2Bc-d%3De.f_g%3Ah%2Fi%40j=k%20l%2Bm-n%3Do.p_q%3Ar%2Fs%40t" } } ], - "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" ], @@ -108646,7 +132319,6 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, @@ -108659,7 +132331,33 @@ } } ] - }, + } + ], + "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": [ { @@ -108669,7 +132367,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -108677,7 +132375,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -108689,11 +132387,11 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/tagging", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "" } } ], @@ -108711,14 +132409,49 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "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": [ { @@ -108728,7 +132461,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -108736,7 +132469,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { @@ -108748,11 +132481,11 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/query/tagging", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "" } } ], @@ -108770,14 +132503,50 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\n" }, "framing": "chunked" } } - ], - "optional": true + ] + } + ], + "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": [ { @@ -108795,11 +132564,19 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "projectobject-tests" + } + }, + { + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", @@ -108807,11 +132584,20 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "[A-Za-z0-9+/]{11}=" + } + }, + { + "at": "", + "optional": false, + "rule": { + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" } } ], @@ -108822,21 +132608,55 @@ "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" + "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": [ { @@ -108854,11 +132674,19 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9" + } + }, + { + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", @@ -108866,11 +132694,20 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "[A-Za-z0-9+/]{11}=" + } + }, + { + "at": "", + "optional": false, + "rule": { + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" } } ], @@ -108881,21 +132718,56 @@ "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" + "encoding": "empty" + } } } - ], - "optional": true - }, + ] + } + ], + "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": [ { @@ -108913,11 +132785,19 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9tag10value10" + } + }, + { + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", @@ -108925,11 +132805,20 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "[A-Za-z0-9+/]{11}=" + } + }, + { + "at": "", + "optional": false, + "rule": { + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" } } ], @@ -108938,7 +132827,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -108947,13 +132836,12 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\nBadRequestFixture error" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -108965,33 +132853,80 @@ "value": "error" } }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 400 + } + }, { "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "BadRequest" } } ], - "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": "BadRequest" + } + } + ] }, { - "id": "operations/s3/copy-replace-metadata", + "id": "operations/s3/put-tagging-key-128", "profile": "s3", "lane": "core", - "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", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html" ], "call": { - "content_type": "text/plain", - "key": "object-tests/copy/target.txt", - "metadata": { - "colour": "blue" - }, - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "key": "object-tests/tags/object.txt", + "op": "s3.put_tagging", + "tags": { + "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v" + } }, "exchanges": [ { @@ -109011,47 +132946,40 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/body_text", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "xml", + "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkv" } }, { - "at": "/headers/x-amz-metadata-directive", + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", - "value": "REPLACE" + "value": "" } }, { - "at": "/headers/x-amz-meta-colour", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { - "is": "equal", - "value": "blue" + "is": "matches", + "pattern": "[A-Za-z0-9+/]{11}=" } }, { - "at": "/headers/content-type", + "at": "", "optional": false, "rule": { - "is": "equal", - "value": "text/plain" + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" } } ], @@ -109062,141 +132990,10 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" } }, - "body": { - "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - } - } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "HEAD" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/copy/source.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "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/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": [ - "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" } @@ -109218,19 +133015,18 @@ "refusal": null }, { - "id": "operations/s3/copy-replace-tags", + "id": "operations/s3/put-tagging-key-129", "profile": "s3", "lane": "core", - "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", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt", + "key": "object-tests/tags/object.txt", + "op": "s3.put_tagging", "tags": { - "project": "copied" + "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v" } }, "exchanges": [ @@ -109251,39 +133047,40 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.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": "/headers/x-amz-copy-source", + "at": "/query/tagging", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "" } }, { - "at": "/headers/x-amz-tagging-directive", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { - "is": "equal", - "value": "REPLACE" + "is": "matches", + "pattern": "[A-Za-z0-9+/]{11}=" } }, { - "at": "/headers/x-amz-tagging", + "at": "", "optional": false, "rule": { - "is": "equal", - "value": "project=copied" + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" } } ], @@ -109292,7 +133089,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -109301,110 +133098,151 @@ }, "body": { "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - } + "data": "\nInvalidTagFixture 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": "InvalidTag" + } + } + ], + "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/put-tagging-value-256", + "profile": "s3", + "lane": "core", + "purpose": "Set a tag whose value has 256 characters, the longest a value 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": { + "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" + } + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { - "at": "/method", + "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": "equal", - "value": "HEAD" + "is": "xml", + "value": "kvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" } }, { - "at": "/path", + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "" } }, { - "at": "/body_base64", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "matches", + "pattern": "[A-Za-z0-9+/]{11}=" } - } - ], - "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"" - } - } - } - ] + "at": "", + "optional": false, + "rule": { + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" + } } ], "allow_headers": [ @@ -109414,12 +133252,9 @@ "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" @@ -109442,18 +133277,19 @@ "refusal": null }, { - "id": "operations/s3/copy-storage-class", + "id": "operations/s3/put-tagging-value-257", "profile": "s3", "lane": "core", - "purpose": "Copy an object into another storage class, named in x-amz-storage-class", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt", - "storage_class": "STANDARD_IA" + "key": "object-tests/tags/object.txt", + "op": "s3.put_tagging", + "tags": { + "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" + } }, "exchanges": [ { @@ -109473,11 +133309,19 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "kvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" + } + }, + { + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", @@ -109485,19 +133329,20 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "[A-Za-z0-9+/]{11}=" } }, { - "at": "/headers/x-amz-storage-class", + "at": "", "optional": false, "rule": { - "is": "equal", - "value": "STANDARD_IA" + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" } } ], @@ -109506,7 +133351,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -109515,10 +133360,101 @@ }, "body": { "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - } + "data": "\nInvalidTagFixture 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": "InvalidTag" + } + } + ], + "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/put-tagging-special-characters", + "profile": "s3", + "lane": "core", + "purpose": "Set a tag with a space and each of + - = . _ : / @, which S3 allows, escaped as XML text", + "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-d=e.f_g:h/i@j": "k l+m-n=o.p_q:r/s@t" + } + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -109526,7 +133462,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -109534,83 +133470,41 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "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", "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/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"" - } - } - } - ] + "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": [ @@ -109620,12 +133514,9 @@ "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" @@ -109648,18 +133539,19 @@ "refusal": null }, { - "id": "operations/s3/copy-source-if-match", + "id": "operations/s3/put-tagging-invalid-character", "profile": "s3", "lane": "core", - "purpose": "Copy an object only if the source still has this ETag, named in x-amz-copy-source-if-match", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_if_match": "\"fixture-etag\"", - "source_key": "object-tests/copy/source.txt" + "key": "object-tests/tags/object.txt", + "op": "s3.put_tagging", + "tags": { + "a!b": "c" + } }, "exchanges": [ { @@ -109679,11 +133571,19 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "a!bc" + } + }, + { + "at": "/query/tagging", "optional": false, "rule": { "is": "equal", @@ -109691,19 +133591,20 @@ } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "[A-Za-z0-9+/]{11}=" } }, { - "at": "/headers/x-amz-copy-source-if-match", + "at": "", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-etag\"" + "is": "body_checksum", + "header": "x-amz-checksum-crc64nvme", + "algorithm": "crc64nvme" } } ], @@ -109712,7 +133613,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -109721,10 +133622,100 @@ }, "body": { "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - } + "data": "\nInvalidTagFixture 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": "InvalidTag" + } + } + ], + "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/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": [ { "request": [ { @@ -109732,7 +133723,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -109740,7 +133731,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -109748,126 +133739,31 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } } ], - "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" ], "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" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3/copy-source-if-match-failed", - "profile": "s3", - "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": [ { @@ -109885,7 +133781,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -109893,23 +133789,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" - } - }, - { - "at": "/headers/x-amz-copy-source-if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-0123456789ab\"" + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -109918,7 +133798,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -109927,11 +133807,16 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" }, "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -109939,7 +133824,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -109947,7 +133832,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -109955,143 +133840,32 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } } ], - "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" ], "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": "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/copy-source-if-none-match-failed", - "profile": "s3", - "lane": "core", - "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_CopyObject.html" - ], - "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_if_none_match": "\"fixture-etag\"", - "source_key": "object-tests/copy/source.txt" - }, - "exchanges": [ { "alternatives": [ { @@ -110109,7 +133883,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110117,23 +133891,58 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" + } + } + ], + "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": "/headers/x-amz-copy-source", + "at": "/method", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "PUT" } }, { - "at": "/headers/x-amz-copy-source-if-none-match", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "value": "/fixture/object-tests/write/object.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MDEyMzQ1Njc4OQ==" } } ], @@ -110142,7 +133951,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -110151,11 +133960,16 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" }, "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -110163,7 +133977,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -110171,7 +133985,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110179,98 +133993,31 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } } ], - "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" ], "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" } } - ] + ], + "optional": true } ], "expect": [ @@ -110287,7 +134034,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 500 } }, { @@ -110295,25 +134042,25 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3/copy-source-if-modified-since", + "id": "operations/s3/put-content-encoding-gzip", "profile": "s3", "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", + "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged", "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_if_modified_since": "Mon, 01 Jan 2024 00:00:00 GMT", - "source_key": "object-tests/copy/source.txt" + "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", + "content_encoding": "gzip", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -110333,7 +134080,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110341,138 +134088,18 @@ "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"" - } - } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "HEAD" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { - "at": "/body_base64", + "at": "/headers/content-encoding", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "gzip" } } ], - "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" ], @@ -110480,15 +134107,15 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-fbe0ab688a03\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -110503,23 +134130,45 @@ "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-source-if-unmodified-since-failed", + "id": "operations/s3/put-content-properties", "profile": "s3", "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", + "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", "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_if_unmodified_since": "Mon, 01 Jan 2024 00:00:00 GMT", - "source_key": "object-tests/copy/source.txt" + "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": [ { @@ -110539,7 +134188,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110547,23 +134196,39 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "text/plain; charset=utf-8" } }, { - "at": "/headers/x-amz-copy-source-if-unmodified-since", + "at": "/headers/content-language", "optional": false, "rule": { "is": "equal", - "value": "Mon, 01 Jan 2024 00:00:00 GMT" + "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" } } ], @@ -110572,20 +134237,71 @@ ], "allow_query": [], "response": { - "status": 412, + "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": "\nPreconditionFailedFixture error" - }, - "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": [ { @@ -110593,7 +134309,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -110601,7 +134317,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110609,76 +134325,16 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } - } - ], - "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" - } - } - ] + "at": "/headers/if-unmodified-since", + "optional": false, + "rule": { + "is": "equal", + "value": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [ @@ -110686,18 +134342,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 501, "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": "\nNotImplementedFixture error" + }, + "framing": "chunked" } } ] @@ -110717,7 +134373,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 501 } }, { @@ -110725,25 +134381,66 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "NotImplemented" } } ], - "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_unmodified_since" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 501 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "NotImplemented" + } + } + ] }, { - "id": "operations/s3/copy-across-buckets", + "id": "operations/s3/put-content-type-edge-spaces", "profile": "s3", "lane": "core", - "purpose": "Copy an object from another bucket, which x-amz-copy-source names before the key", + "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_CopyObject.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_bucket": "source", - "source_key": "object-tests/copy/source.txt" + "body_base64": "MDEyMzQ1Njc4OQ==", + "content_type": " text/plain ", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -110763,7 +134460,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110771,15 +134468,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "matches", - "pattern": "/?source/object-tests/copy/source\\.txt" + "is": "equal", + "value": "text/plain" } } ], @@ -110790,17 +134487,94 @@ "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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + "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": [ + { + "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" + } + } + ] + }, + { + "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": [ { "request": [ { @@ -110808,7 +134582,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -110816,7 +134590,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -110824,67 +134598,16 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "cmVwbGFjZWQ=" } - } - ], - "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"" - } - } - } - ] + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-fbe0ab688a03\"" + } } ], "allow_headers": [ @@ -110894,15 +134617,15 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-01da46aa1994\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -110917,22 +134640,42 @@ "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/copy-source-key-encoded", + "id": "operations/s3/put-if-none-match-missing", "profile": "s3", "lane": "core", - "purpose": "Copy from a key with a space, +, %, é, ? and #. x-amz-copy-source percent-encodes every byte of the key outside letters, digits, -._~ and /", + "purpose": "put if none match missing", "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/a b+c%é?#.txt" + "body_base64": "ZnJlc2g=", + "if_none_match": "*", + "key": "object-tests/write/fresh.txt", + "op": "put" }, "exchanges": [ { @@ -110952,7 +134695,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/target.txt" + "value": "/fixture/object-tests/write/fresh.txt" } }, { @@ -110960,15 +134703,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "ZnJlc2g=" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/if-none-match", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt" + "is": "equal", + "value": "*" } } ], @@ -110979,17 +134722,68 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" - } + }, + "etag": "\"fixture-891ed8521bb8\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + "encoding": "base64", + "data": "" } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-891ed8521bb8\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "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": [ + { + "alternatives": [ { "request": [ { @@ -110997,7 +134791,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -111005,7 +134799,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/a b+c%é?#.txt" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -111013,69 +134807,10 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MQ==" } } ], - "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" ], @@ -111083,15 +134818,15 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -111106,22 +134841,41 @@ "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/copy-onto-itself", + "id": "operations/s3/put-key-1025", "profile": "s3", "lane": "core", - "purpose": "Report a copy of an object onto itself that changes nothing as an error. S3 answers 400 InvalidRequest", + "purpose": "put key 1025", "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/source.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "op": "put" }, "exchanges": [ { @@ -111141,7 +134895,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/source.txt" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -111149,15 +134903,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": "MQ==" } } ], @@ -111175,11 +134921,100 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidRequestFixture error" + "data": "\nKeyTooLongErrorFixture 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": [ { @@ -111187,7 +135022,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -111195,7 +135030,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -111203,68 +135038,16 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "YW5vdGhlciBvYmplY3Q=" } - } - ], - "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" - } - } - ], - "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" - } - } - ] + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" + } } ], "allow_headers": [ @@ -111272,18 +135055,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 412, "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": "\nPreconditionFailedFixture error" + }, + "framing": "chunked" } } ] @@ -111303,7 +135086,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 412 } }, { @@ -111311,27 +135094,26 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidRequest" + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3/copy-onto-itself-replace-metadata", + "id": "operations/s3/put-conditional-conflict", "profile": "s3", "lane": "core", - "purpose": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE", + "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": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], + "origin": "transient", "call": { - "key": "object-tests/copy/source.txt", - "metadata": { - "colour": "blue" - }, - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_none_match": "*", + "key": "object-tests/write/object.txt", + "op": "put" }, "exchanges": [ { @@ -111351,7 +135133,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -111359,31 +135141,15 @@ "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" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-amz-meta-colour", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "blue" + "value": "*" } } ], @@ -111392,7 +135158,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 409, "headers": { "content-type": "application/xml", "date": { @@ -111401,10 +135167,15 @@ }, "body": { "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - } + "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": [ { @@ -111412,7 +135183,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -111420,7 +135191,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -111428,83 +135199,75 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "YW5vdGhlciBvYmplY3Q=" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } } ], - "then": [ + "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": [ { - "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"" - } - } - } - ] + "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": [ @@ -111512,50 +135275,23 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 409, "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": "\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" } } - ] - } - ], - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -111573,7 +135309,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/classes/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -111581,15 +135317,15 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-amz-storage-class", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "WARM" + "value": "*" } } ], @@ -111598,7 +135334,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 409, "headers": { "content-type": "application/xml", "date": { @@ -111607,57 +135343,14 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidStorageClassFixture error" + "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" } } - ] - } - ], - "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": "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": [ { @@ -111675,7 +135368,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/classes/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -111683,15 +135376,15 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-amz-storage-class", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "STANDARD_IA" + "value": "*" } } ], @@ -111700,52 +135393,23 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 409, "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": "\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" } } - ] - } - ], - "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==" + ], + "optional": true }, - "key": "object", - "op": "put" - }, - "exchanges": [ { "alternatives": [ { @@ -111763,7 +135427,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -111771,15 +135435,15 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/content-md5", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "XUFAKrxLKna5cZ2REBfFkg==" + "value": "*" } } ], @@ -111788,23 +135452,22 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 409, "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" + } }, "body": { - "encoding": "base64", - "data": "" - } + "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 } ], "expect": [ @@ -111813,27 +135476,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "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/put-md5-mismatch", + "id": "operations/s3/put-metadata-empty-value", "profile": "s3", "lane": "core", - "purpose": "Declared transactional MD5 must cover the exact body bytes; report service rejection of a mismatch.", + "purpose": "put metadata empty 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": "K9opmNmw7hl9oUKgRH9nJQ==" + "body_base64": "MQ==", + "key": "object-tests/metadata/empty-value.txt", + "metadata": { + "empty": "" }, - "key": "object", "op": "put" }, "exchanges": [ @@ -111854,7 +135532,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -111862,15 +135540,15 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "MQ==" } }, { - "at": "/headers/content-md5", + "at": "/headers/x-amz-meta-empty", "optional": false, "rule": { "is": "equal", - "value": "K9opmNmw7hl9oUKgRH9nJQ==" + "value": "" } } ], @@ -111879,21 +135557,18 @@ ], "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" + "etag": "\"fixture-6c30b210f0a8\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "\nBadDigestMD5 mismatch" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -111905,35 +135580,45 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/code", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "BadDigest" + "value": "\"fixture-6c30b210f0a8\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/put-with-crc32", + "id": "operations/s3/put-metadata-hyphen-name", "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", + "purpose": "put metadata hyphen name", "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==" + "body_base64": "MQ==", + "key": "object-tests/metadata/hyphen-name.txt", + "metadata": { + "not-valid": "1" }, - "key": "object-tests/checksums/crc32.txt", "op": "put" }, "exchanges": [ @@ -111954,7 +135639,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/checksums/crc32.txt" + "value": "/fixture/object-tests/metadata/hyphen-name.txt" } }, { @@ -111962,23 +135647,15 @@ "optional": false, "rule": { "is": "equal", - "value": "Y2hlY2tzdW0K" + "value": "MQ==" } }, { - "at": "/headers/x-amz-checksum-crc32", + "at": "/headers/x-amz-meta-not-valid", "optional": false, "rule": { "is": "equal", - "value": "ItMTFg==" - } - }, - { - "at": "/headers/x-amz-sdk-checksum-algorithm", - "optional": true, - "rule": { - "is": "equal", - "value": "CRC32" + "value": "1" } } ], @@ -111992,9 +135669,8 @@ "date": { "from": "now" }, - "etag": "\"fixture-636b73750000\"", - "x-amz-checksum-crc32": "ItMTFg==", - "x-amz-checksum-type": "FULL_OBJECT" + "etag": "\"fixture-6c30b210f0a8\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", @@ -112019,7 +135695,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-636b73750000\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -112037,26 +135713,20 @@ "refusal": null }, { - "id": "operations/s3/put-two-checksums", + "id": "operations/s3/put-metadata-names-differ-in-case", "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", + "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": [ - "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": "MQ==", + "key": "object-tests/metadata/names-differ-in-case.txt", + "metadata": { + "DUP": "two", + "dup": "one" + }, "op": "put" }, "exchanges": [ @@ -112077,7 +135747,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/checksums/two.txt" + "value": "/fixture/object-tests/metadata/names-differ-in-case.txt" } }, { @@ -112085,33 +135755,23 @@ "optional": false, "rule": { "is": "equal", - "value": "Y2hlY2tzdW0K" - } - }, - { - "at": "/headers/x-amz-checksum-crc32", - "optional": false, - "rule": { - "is": "equal", - "value": "ItMTFg==" + "value": "MQ==" } }, { - "at": "/headers/x-amz-checksum-sha256", + "at": "/headers/x-amz-meta-dup", "optional": false, - "rule": { - "is": "equal", - "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" - } - }, - { - "at": "/headers/x-amz-sdk-checksum-algorithm", - "optional": true, "rule": { "is": "one_of", "values": [ - "CRC32", - "SHA256" + [ + "one", + "two" + ], + [ + "two", + "one" + ] ] } } @@ -112121,18 +135781,18 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -112144,23 +135804,7 @@ "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" + "value": "refused" } } ], @@ -112186,42 +135830,26 @@ "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" + "value": "metadata" } } ] }, { - "id": "operations/s3/put-with-tags", + "id": "operations/s3/put-metadata-punctuation-name", "profile": "s3", "lane": "core", - "purpose": "Write an object with tags", + "purpose": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.", "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/tags/object.txt", - "op": "put", - "tags": { - "project": "object-tests" - } + "body_base64": "MQ==", + "key": "object-tests/metadata/punctuation-name.txt", + "metadata": { + "1a!#$%&'*+.^_`|~b": "1" + }, + "op": "put" }, "exchanges": [ { @@ -112241,7 +135869,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/metadata/punctuation-name.txt" } }, { @@ -112249,15 +135877,15 @@ "optional": false, "rule": { "is": "equal", - "value": "Zmlyc3Q=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-tagging", + "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b", "optional": false, "rule": { "is": "equal", - "value": "project=object-tests" + "value": "1" } } ], @@ -112271,11 +135899,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-etag\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -112290,21 +135919,41 @@ "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/get-tagging", + "id": "operations/s3/put-metadata-replaced", "profile": "s3", "lane": "core", - "purpose": "Read the tags of an object", + "purpose": "put metadata replaced", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/tags/object.txt", - "op": "s3.get_tagging" + "body_base64": "Mg==", + "key": "object-tests/metadata/replaced.txt", + "op": "put" }, "exchanges": [ { @@ -112316,7 +135965,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -112324,7 +135973,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -112332,15 +135981,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/query/tagging", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "value": "Mg==" } } ], @@ -112351,16 +135992,16 @@ "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": "\nprojectobject-tests" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -112376,32 +136017,43 @@ } }, { - "at": "/value/tags", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": { - "project": "object-tests" - } + "value": "\"fixture-ea4c238956b1\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/put-tagging", + "id": "operations/s3/put-metadata", "profile": "s3", "lane": "core", - "purpose": "Replace the tags of an object", + "purpose": "put metadata", "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" - } + "body_base64": "MQ==", + "key": "object-tests/metadata/object.txt", + "metadata": { + "name": "value", + "second": "2" + }, + "op": "put" }, "exchanges": [ { @@ -112421,31 +136073,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tags/object.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "projectobject-tests" + "is": "equal", + "value": "MQ==" } }, { - "at": "/query/tagging", + "at": "/headers/x-amz-meta-name", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "value" } }, { - "at": "/headers/x-amz-checksum-crc64nvme", + "at": "/headers/x-amz-meta-second", "optional": false, "rule": { - "is": "matches", - "pattern": "[A-Za-z0-9+/]{11}=" + "is": "equal", + "value": "2" } } ], @@ -112458,10 +136110,13 @@ "headers": { "date": { "from": "now" - } + }, + "etag": "\"fixture-6c30b210f0a8\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "" } } } @@ -112476,21 +136131,39 @@ "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-internal-error", + "id": "operations/s3/put-overwrite", "profile": "s3", "lane": "core", - "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries", + "purpose": "put overwrite", "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==", + "body_base64": "b3ZlcndyaXR0ZW4=", "key": "object-tests/write/object.txt", "op": "put" }, @@ -112520,7 +136193,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "b3ZlcndyaXR0ZW4=" } } ], @@ -112529,175 +136202,69 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" - } + }, + "etag": "\"fixture-a62b555324ac\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] - }, + } + ], + "expect": [ { - "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==" - } - } - ], - "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 + "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==" - } - } - ], - "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 + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-a62b555324ac\"" + } }, { - "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==" - } - } - ], - "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 - }, + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "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": [ { "alternatives": [ { @@ -112723,58 +136290,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - } - ], - "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": "/fixture/object-tests/write/object.txt" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/body_base64", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "\"fixture-db71b2c0257c\"" } } ], @@ -112783,7 +136307,7 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -112792,13 +136316,12 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -112815,7 +136338,7 @@ "optional": false, "rule": { "is": "equal", - "value": 500 + "value": 412 } }, { @@ -112823,23 +136346,22 @@ "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "PreconditionFailed" } } ], "refusal": null }, { - "id": "operations/s3/put-content-encoding-gzip", + "id": "operations/s3/put-unauthenticated", "profile": "s3", "lane": "core", - "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged", + "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": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", - "content_encoding": "gzip", + "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", "key": "object-tests/write/object.txt", "op": "put" }, @@ -112869,15 +136391,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" - } - }, - { - "at": "/headers/content-encoding", - "optional": false, - "rule": { - "is": "equal", - "value": "gzip" + "value": "bm90aGluZyBpcyBzdG9yZWQ=" } } ], @@ -112886,18 +136400,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 403, "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": "\nInvalidAccessKeyIdFixture error" + }, + "framing": "chunked" } } ] @@ -112909,47 +136423,42 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": 403 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidAccessKeyId" } } ], "refusal": null }, { - "id": "operations/s3/put-content-properties", + "id": "operations/s3/stage-after-abort", "profile": "s3", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "purpose": "stage after abort", "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" + "body_base64": "eA==", + "key": "object-tests/multipart/aborted.bin", + "op": "s3.upload_part", + "part_number": 2, + "upload_id": "fixture-upload+/f85cf0cd3a3f=" }, "exchanges": [ { @@ -112969,7 +136478,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/aborted.bin" } }, { @@ -112977,39 +136486,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" - } - }, - { - "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": "eA==" } }, { - "at": "/headers/content-disposition", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "value": "2" } }, { - "at": "/headers/cache-control", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "fixture-upload+/f85cf0cd3a3f=" } } ], @@ -113018,18 +136511,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" } } ] @@ -113041,44 +136534,42 @@ "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-if-match-current", + "id": "operations/s3/stage-last", "profile": "s3", "lane": "core", - "purpose": "put if match current", + "purpose": "stage last", "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" + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 2, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -113098,7 +136589,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -113106,15 +136597,23 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" + "value": "c2Vjb25k" + } + }, + { + "at": "/query/partNumber", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { - "at": "/headers/if-match", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-fbe0ab688a03\"" + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113128,7 +136627,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-01da46aa1994\"", + "etag": "\"fixture-32b70ae425ac\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -113154,36 +136653,26 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-01da46aa1994\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-32b70ae425ac\"" } } ], "refusal": null }, { - "id": "operations/s3/put-if-none-match-missing", + "id": "operations/s3/stage-part-10000", "profile": "s3", "lane": "core", - "purpose": "put if none match missing", + "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": "ZnJlc2g=", - "if_none_match": "*", - "key": "object-tests/write/fresh.txt", - "op": "put" + "body_base64": "c2Vjb25k", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 10000, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -113203,7 +136692,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/fresh.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -113211,15 +136700,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ZnJlc2g=" + "value": "c2Vjb25k" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "10000" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113233,7 +136730,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-891ed8521bb8\"", + "etag": "\"fixture-32b70ae425ac\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -113259,35 +136756,26 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-891ed8521bb8\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-32b70ae425ac\"" } } ], "refusal": null }, { - "id": "operations/s3/put-key-1024", + "id": "operations/s3/stage-part-10001", "profile": "s3", "lane": "core", - "purpose": "put key 1024", + "purpose": "stage part 10001", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", - "op": "put" + "body_base64": "eA==", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 10001, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -113307,7 +136795,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -113315,7 +136803,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "eA==" + } + }, + { + "at": "/query/partNumber", + "optional": false, + "rule": { + "is": "equal", + "value": "10001" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113324,18 +136828,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidArgumentFixture error" + }, + "framing": "chunked" } } ] @@ -113347,43 +136851,83 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "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/put-key-1025", + "id": "operations/s3/stage-part-zero", "profile": "s3", "lane": "core", - "purpose": "put key 1025", + "purpose": "stage part zero", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", - "op": "put" + "body_base64": "eA==", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 0, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -113403,7 +136947,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -113411,7 +136955,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "eA==" + } + }, + { + "at": "/query/partNumber", + "optional": false, + "rule": { + "is": "equal", + "value": "0" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113429,7 +136989,7 @@ }, "body": { "encoding": "utf8", - "data": "\nKeyTooLongErrorFixture error" + "data": "\nInvalidArgumentFixture error" }, "framing": "chunked" } @@ -113459,7 +137019,7 @@ "optional": false, "rule": { "is": "equal", - "value": "KeyTooLongError" + "value": "InvalidArgument" } } ], @@ -113485,7 +137045,7 @@ "optional": false, "rule": { "is": "equal", - "value": "key" + "value": "part_number" } }, { @@ -113501,24 +137061,25 @@ "optional": true, "rule": { "is": "equal", - "value": "KeyTooLongError" + "value": "InvalidArgument" } } ] }, { - "id": "operations/s3/put-lost-the-race-to-create", + "id": "operations/s3/stage-unknown-upload", "profile": "s3", "lane": "core", - "purpose": "put lost the race to create", + "purpose": "stage unknown upload", "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" + "body_base64": "eA==", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/4d0d5ccc4993=" }, "exchanges": [ { @@ -113538,7 +137099,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -113546,15 +137107,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "eA==" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/4d0d5ccc4993=" } } ], @@ -113563,7 +137132,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -113572,7 +137141,7 @@ }, "body": { "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" + "data": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -113594,7 +137163,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 404 } }, { @@ -113602,26 +137171,26 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "NoSuchUpload" } } ], "refusal": null }, { - "id": "operations/s3/put-conditional-conflict", + "id": "operations/s3/stage", "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", + "purpose": "stage", "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" + "body_base64": "cGFydA==", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -113641,7 +137210,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -113649,15 +137218,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "cGFydA==" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113666,22 +137243,59 @@ ], "allow_query": [], "response": { - "status": 409, + "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": "\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" + "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": [ { @@ -113699,7 +137313,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/question?mark.txt" } }, { @@ -113707,15 +137321,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "cGFydA==" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113724,23 +137346,59 @@ ], "allow_query": [], "response": { - "status": 409, + "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": "\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" + "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-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": [ { @@ -113758,7 +137416,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/hash#tag.txt" } }, { @@ -113766,15 +137424,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "cGFydA==" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113783,23 +137449,59 @@ ], "allow_query": [], "response": { - "status": 409, + "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": "\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" + "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-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": [ { @@ -113817,7 +137519,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/percent%20.txt" } }, { @@ -113825,15 +137527,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "cGFydA==" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113842,23 +137552,59 @@ ], "allow_query": [], "response": { - "status": 409, + "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": "\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" + "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-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": [ { @@ -113876,7 +137622,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/plus+plus.txt" } }, { @@ -113884,15 +137630,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "cGFydA==" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113901,23 +137655,59 @@ ], "allow_query": [], "response": { - "status": 409, + "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": "\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" + "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-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": [ { @@ -113935,7 +137725,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/keys/space name.txt" } }, { @@ -113943,15 +137733,23 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "cGFydA==" } }, { - "at": "/headers/if-none-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "*" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -113960,22 +137758,21 @@ ], "allow_query": [], "response": { - "status": 409, + "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": "\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" + "encoding": "base64", + "data": "" + } } } - ], - "optional": true + ] } ], "expect": [ @@ -113984,43 +137781,34 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 409 + "value": "ok" } }, { - "at": "/code", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "ConditionalRequestConflict" + "value": "\"fixture-6d60d5bbaa47\"" } } ], "refusal": null }, { - "id": "operations/s3/put-metadata-empty-value", + "id": "operations/s3/stage-key-non-ascii", "profile": "s3", "lane": "core", - "purpose": "put metadata empty value", + "purpose": "stage, with the key \"café/雪.txt\"", "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" + "body_base64": "cGFydA==", + "key": "object-tests/keys/café/雪.txt", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -114040,7 +137828,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object-tests/keys/café/雪.txt" } }, { @@ -114048,15 +137836,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "cGFydA==" } }, { - "at": "/headers/x-amz-meta-empty", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -114070,7 +137866,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -114096,38 +137892,26 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-6d60d5bbaa47\"" } } ], "refusal": null }, { - "id": "operations/s3/put-metadata-hyphen-name", + "id": "operations/s3/stage-key-double-slash", "profile": "s3", "lane": "core", - "purpose": "put metadata hyphen name", + "purpose": "stage, with the key \"double//slash.txt\"", "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" + "body_base64": "cGFydA==", + "key": "object-tests/keys/double//slash.txt", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -114147,7 +137931,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/hyphen-name.txt" + "value": "/fixture/object-tests/keys/double//slash.txt" } }, { @@ -114155,16 +137939,24 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "cGFydA==" } }, { - "at": "/headers/x-amz-meta-not-valid", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", "value": "1" } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" + } } ], "allow_headers": [ @@ -114177,7 +137969,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -114203,39 +137995,26 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-6d60d5bbaa47\"" } } ], "refusal": null }, { - "id": "operations/s3/put-metadata-names-differ-in-case", + "id": "operations/s3/stage-key-trailing-slash", "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.", + "purpose": "stage, with the key \"trailing-slash/\"", "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" + "body_base64": "cGFydA==", + "key": "object-tests/keys/trailing-slash/", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -114255,7 +138034,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/names-differ-in-case.txt" + "value": "/fixture/object-tests/keys/trailing-slash/" } }, { @@ -114263,24 +138042,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "cGFydA==" } }, { - "at": "/headers/x-amz-meta-dup", + "at": "/query/partNumber", "optional": false, "rule": { - "is": "one_of", - "values": [ - [ - "one", - "two" - ], - [ - "two", - "one" - ] - ] + "is": "equal", + "value": "1" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" } } ], @@ -114294,7 +138072,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -114312,52 +138090,34 @@ "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": ".+" + "value": "ok" } }, { - "at": "/parameter", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "metadata" + "value": "\"fixture-6d60d5bbaa47\"" } } - ] + ], + "refusal": null }, { - "id": "operations/s3/put-metadata-punctuation-name", + "id": "operations/s3/stage-empty-part", "profile": "s3", "lane": "core", - "purpose": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.", + "purpose": "Stage an empty part, which S3 takes", "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" + "body_base64": "", + "key": "object-tests/multipart/object.bin", + "op": "s3.upload_part", + "part_number": 1, + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -114377,7 +138137,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/punctuation-name.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -114385,16 +138145,24 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", "value": "1" } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/276ca18046f9=" + } } ], "allow_headers": [ @@ -114407,7 +138175,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", + "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -114433,35 +138201,140 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "PUT" + } + }, + { + "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/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" + } + } + ], + "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"" + } + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" } }, { - "at": "/value/version", - "optional": true, + "at": "/value/etag", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/s3/put-metadata-replaced", + "id": "operations/s3/stage-copy-range", "profile": "s3", "lane": "core", - "purpose": "put metadata replaced", + "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": { - "body_base64": "Mg==", - "key": "object-tests/metadata/replaced.txt", - "op": "put" + "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": [ { @@ -114481,7 +138354,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -114489,7 +138362,39 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "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" + } + }, + { + "at": "/headers/x-amz-copy-source-range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=0-2" } } ], @@ -114500,15 +138405,14 @@ "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": "base64", - "data": "" + "body": { + "encoding": "utf8", + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" } } } @@ -114529,39 +138433,30 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ea4c238956b1\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/s3/put-metadata", + "id": "operations/s3/stage-copy-range-beyond-source", "profile": "s3", "lane": "core", - "purpose": "put metadata", + "purpose": "Report a part copy whose range ends past the source as an error. S3 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": "MQ==", - "key": "object-tests/metadata/object.txt", - "metadata": { - "name": "value", - "second": "2" + "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 }, - "op": "put" + "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ { @@ -114581,7 +138476,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -114589,23 +138484,39 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "at": "/headers/x-amz-meta-name", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "value" + "value": "1" } }, { - "at": "/headers/x-amz-meta-second", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "fixture-upload+/276ca18046f9=" + } + }, + { + "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-9" } } ], @@ -114614,18 +138525,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidArgumentFixture error" + }, + "framing": "chunked" } } ] @@ -114637,43 +138548,44 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "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/put-overwrite", + "id": "operations/s3/stage-copy-200-internal-error", "profile": "s3", "lane": "core", - "purpose": "put overwrite", + "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", "call": { - "body_base64": "b3ZlcndyaXR0ZW4=", - "key": "object-tests/write/object.txt", - "op": "put" + "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": [ { @@ -114693,7 +138605,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -114701,7 +138613,31 @@ "optional": false, "rule": { "is": "equal", - "value": "b3ZlcndyaXR0ZW4=" + "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" } } ], @@ -114712,67 +138648,20 @@ "response": { "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-a62b555324ac\"", - "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-a62b555324ac\"" - } }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "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": [ { "alternatives": [ { @@ -114790,7 +138679,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -114798,15 +138687,31 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" + "value": "" } }, { - "at": "/headers/if-match", + "at": "/query/partNumber", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "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" } } ], @@ -114815,7 +138720,7 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -114824,56 +138729,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/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": [ { @@ -114891,7 +138754,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -114899,7 +138762,31 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "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" } } ], @@ -114908,7 +138795,7 @@ ], "allow_query": [], "response": { - "status": 403, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -114917,58 +138804,14 @@ }, "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 - } + ], + "optional": true }, - { - "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": [ { @@ -114986,7 +138829,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/aborted.bin" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -114994,7 +138837,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" + "value": "" } }, { @@ -115002,7 +138845,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "1" } }, { @@ -115010,7 +138853,15 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/f85cf0cd3a3f=" + "value": "fixture-upload+/276ca18046f9=" + } + }, + { + "at": "/headers/x-amz-copy-source", + "optional": false, + "rule": { + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } } ], @@ -115019,7 +138870,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -115028,58 +138879,14 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchUploadFixture 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": "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": [ { @@ -115105,7 +138912,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -115113,7 +138920,7 @@ "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "1" } }, { @@ -115123,6 +138930,14 @@ "is": "equal", "value": "fixture-upload+/276ca18046f9=" } + }, + { + "at": "/headers/x-amz-copy-source", + "optional": false, + "rule": { + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + } } ], "allow_headers": [ @@ -115132,57 +138947,21 @@ "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": "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-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": [ { @@ -115208,7 +138987,7 @@ "optional": false, "rule": { "is": "equal", - "value": "c2Vjb25k" + "value": "" } }, { @@ -115216,7 +138995,7 @@ "optional": false, "rule": { "is": "equal", - "value": "10000" + "value": "1" } }, { @@ -115226,6 +139005,14 @@ "is": "equal", "value": "fixture-upload+/276ca18046f9=" } + }, + { + "at": "/headers/x-amz-copy-source", + "optional": false, + "rule": { + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + } } ], "allow_headers": [ @@ -115235,19 +139022,20 @@ "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": "base64", - "data": "" - } + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + }, + "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -115256,34 +139044,32 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-32b70ae425ac\"" + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3/stage-part-10001", + "id": "operations/s3/staged-after-abort", "profile": "s3", "lane": "core", - "purpose": "stage part 10001", + "purpose": "staged after abort", "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=" + "key": "object-tests/multipart/aborted.bin", + "op": "s3.list_parts", + "upload_id": "fixture-upload+/f85cf0cd3a3f=" }, "exchanges": [ { @@ -115295,7 +139081,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -115303,7 +139089,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/aborted.bin" } }, { @@ -115311,15 +139097,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "10001" + "value": "" } }, { @@ -115327,7 +139105,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/f85cf0cd3a3f=" } } ], @@ -115336,7 +139114,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { "content-type": "application/xml", "date": { @@ -115345,7 +139123,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidArgumentFixture error" + "data": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -115367,7 +139145,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -115375,67 +139153,24 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidArgument" + "value": "NoSuchUpload" } } ], - "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/stage-part-zero", + "id": "operations/s3/staged-replacement", "profile": "s3", "lane": "core", - "purpose": "stage part zero", + "purpose": "staged replacement", "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/multipart/replaced.bin", + "op": "s3.list_parts", + "upload_id": "fixture-upload+/6ba3c5e480a2=" }, "exchanges": [ { @@ -115447,7 +139182,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -115455,7 +139190,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/multipart/replaced.bin" } }, { @@ -115463,15 +139198,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "0" + "value": "" } }, { @@ -115479,7 +139206,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture-upload+/6ba3c5e480a2=" } } ], @@ -115488,16 +139215,17 @@ ], "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": "\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" } @@ -115511,82 +139239,79 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/parts/0/number", "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 1 } }, { - "at": "/code", + "at": "/value/parts/0/size", "optional": false, "rule": { "is": "equal", - "value": "InvalidArgument" + "value": 1 } - } - ], - "refusal": [ + }, { - "at": "/outcome", + "at": "/value/parts/0/etag", "optional": false, "rule": { "is": "equal", - "value": "refused" + "value": "\"fixture-5945c592bad7\"" } }, { - "at": "/kind", + "at": "/value/parts/1/number", "optional": false, "rule": { - "is": "matches", - "pattern": ".+" + "is": "equal", + "value": 2 } }, { - "at": "/parameter", + "at": "/value/parts/1/size", "optional": false, "rule": { "is": "equal", - "value": "part_number" + "value": 6 } }, { - "at": "/status", - "optional": true, + "at": "/value/parts/1/etag", + "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "\"fixture-3c6b3668db13\"" } }, { - "at": "/code", - "optional": true, + "at": "/value/parts", + "optional": false, "rule": { - "is": "equal", - "value": "InvalidArgument" + "is": "array_length", + "value": 2 } } - ] + ], + "refusal": null }, { - "id": "operations/s3/stage-unknown-upload", + "id": "operations/s3/staged-unknown-upload", "profile": "s3", "lane": "core", - "purpose": "stage unknown upload", + "purpose": "staged 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, + "op": "s3.list_parts", "upload_id": "fixture-upload+/4d0d5ccc4993=" }, "exchanges": [ @@ -115599,7 +139324,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -115615,15 +139340,7 @@ "optional": false, "rule": { "is": "equal", - "value": "eA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { @@ -115686,18 +139403,16 @@ "refusal": null }, { - "id": "operations/s3/stage", + "id": "operations/s3/staged", "profile": "s3", "lane": "core", - "purpose": "stage", + "purpose": "staged", "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, + "op": "s3.list_parts", "upload_id": "fixture-upload+/276ca18046f9=" }, "exchanges": [ @@ -115710,7 +139425,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -115726,15 +139441,7 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { @@ -115753,16 +139460,17 @@ "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": "base64", - "data": "" - } + "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" } } ] @@ -115778,30 +139486,75 @@ } }, { - "at": "/value/etag", + "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/stage-key-question", + "id": "operations/s3/start-bucket-missing", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"question?mark.txt\"", + "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": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/question?mark.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "key": "object.bin", + "op": "s3.create_multipart" }, "exchanges": [ { @@ -115813,7 +139566,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -115821,7 +139574,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/question?mark.txt" + "value": "/fixture/object.bin" } }, { @@ -115829,23 +139582,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/uploads", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "" } } ], @@ -115854,18 +139599,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-6d60d5bbaa47\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "\nNoSuchBucketFixture error" + }, + "framing": "chunked" } } ] @@ -115877,34 +139622,47 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "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/stage-key-hash", + "id": "operations/s3/start-unauthenticated", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"hash#tag.txt\"", + "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": "cGFydA==", - "key": "object-tests/keys/hash#tag.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "key": "object-tests/multipart/object.bin", + "op": "s3.create_multipart" }, "exchanges": [ { @@ -115916,7 +139674,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -115924,7 +139682,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/hash#tag.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -115932,23 +139690,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/uploads", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "" } } ], @@ -115957,18 +139707,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 403, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-6d60d5bbaa47\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "\nInvalidAccessKeyIdFixture error" + }, + "framing": "chunked" } } ] @@ -115980,34 +139730,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "value": 403 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidAccessKeyId" } } ], "refusal": null }, { - "id": "operations/s3/stage-key-percent", + "id": "operations/s3/start", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"percent%20.txt\"", + "purpose": "start", "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/multipart/object.bin", + "op": "s3.create_multipart" }, "exchanges": [ { @@ -116019,7 +139774,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -116027,7 +139782,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/percent%20.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -116035,23 +139790,15 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/query/uploads", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "" } } ], @@ -116065,13 +139812,13 @@ "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=" + }, + "framing": "chunked" } } ] @@ -116087,30 +139834,31 @@ } }, { - "at": "/value/etag", + "at": "/value/upload_id", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "value": "fixture-upload+/276ca18046f9=" } } ], "refusal": null }, { - "id": "operations/s3/stage-key-plus", + "id": "operations/s3/start-content-properties", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"plus+plus.txt\"", + "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": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/plus+plus.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "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": [ { @@ -116122,7 +139870,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -116130,7 +139878,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/plus+plus.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -116138,23 +139886,47 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { - "at": "/query/partNumber", + "at": "/query/uploads", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "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" } } ], @@ -116168,13 +139940,13 @@ "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=" + }, + "framing": "chunked" } } ] @@ -116190,30 +139962,30 @@ } }, { - "at": "/value/etag", + "at": "/value/upload_id", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "value": "fixture-upload+/276ca18046f9=" } } ], "refusal": null }, { - "id": "operations/s3/stage-key-space", + "id": "operations/s3/start-with-tags", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"space name.txt\"", + "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": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/space name.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "key": "object-tests/multipart/object.bin", + "op": "s3.create_multipart", + "tags": { + "project": "object-tests" + } }, "exchanges": [ { @@ -116225,7 +139997,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -116233,7 +140005,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/space name.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -116241,23 +140013,23 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { - "at": "/query/partNumber", + "at": "/query/uploads", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-tagging", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "project=object-tests" } } ], @@ -116271,13 +140043,13 @@ "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=" + }, + "framing": "chunked" } } ] @@ -116293,30 +140065,28 @@ } }, { - "at": "/value/etag", + "at": "/value/upload_id", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "value": "fixture-upload+/276ca18046f9=" } } ], "refusal": null }, { - "id": "operations/s3/stage-key-non-ascii", + "id": "operations/s3/start-with-storage-class", "profile": "s3", "lane": "core", - "purpose": "stage, with the key \"café/雪.txt\"", + "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": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/café/雪.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "key": "object-tests/multipart/object.bin", + "op": "s3.create_multipart", + "storage_class": "STANDARD_IA" }, "exchanges": [ { @@ -116328,7 +140098,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -116336,7 +140106,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/café/雪.txt" + "value": "/fixture/object-tests/multipart/object.bin" } }, { @@ -116344,23 +140114,23 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "" } }, { - "at": "/query/partNumber", + "at": "/query/uploads", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-storage-class", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "STANDARD_IA" } } ], @@ -116374,13 +140144,13 @@ "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=" + }, + "framing": "chunked" } } ] @@ -116396,30 +140166,31 @@ } }, { - "at": "/value/etag", + "at": "/value/upload_id", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "value": "fixture-upload+/276ca18046f9=" } } ], "refusal": null }, { - "id": "operations/s3/stage-key-double-slash", - "profile": "s3", + "id": "operations/azure/put-metadata-non-ascii-value", + "profile": "azure", "lane": "core", - "purpose": "stage, with the key \"double//slash.txt\"", + "purpose": "put metadata non ascii value", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/double//slash.txt", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "body_base64": "MQ==", + "key": "object-tests/metadata/non-ascii.txt", + "metadata": { + "value": "café" + }, + "op": "put" }, "exchanges": [ { @@ -116439,7 +140210,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/double//slash.txt" + "value": "/fixture/object-tests/metadata/non-ascii.txt" } }, { @@ -116447,23 +140218,26 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "MQ==" } }, { - "at": "/query/partNumber", + "at": "/headers/x-ms-meta-value", "optional": false, "rule": { - "is": "equal", - "value": "1" + "is": "one_of", + "values": [ + "café", + "café" + ] } }, { - "at": "/query/uploadId", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "BlockBlob" } } ], @@ -116472,17 +140246,17 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "x-ms-error-code": "InvalidMetadata" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidMetadataFixture error" } } } @@ -116495,34 +140269,84 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "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/s3/stage-key-trailing-slash", - "profile": "s3", + "id": "operations/azure-hns/put-metadata-non-ascii-value", + "profile": "azure-hns", "lane": "core", - "purpose": "stage, with the key \"trailing-slash/\"", + "purpose": "put metadata non ascii value", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "cGFydA==", - "key": "object-tests/keys/trailing-slash/", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "body_base64": "MQ==", + "key": "object-tests/metadata/non-ascii.txt", + "metadata": { + "value": "café" + }, + "op": "put" }, "exchanges": [ { @@ -116542,7 +140366,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/keys/trailing-slash/" + "value": "/fixture/object-tests/metadata/non-ascii.txt" } }, { @@ -116550,23 +140374,26 @@ "optional": false, "rule": { "is": "equal", - "value": "cGFydA==" + "value": "MQ==" } }, { - "at": "/query/partNumber", + "at": "/headers/x-ms-meta-value", "optional": false, "rule": { - "is": "equal", - "value": "1" + "is": "one_of", + "values": [ + "café", + "café" + ] } }, { - "at": "/query/uploadId", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "BlockBlob" } } ], @@ -116575,17 +140402,17 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { + "content-type": "application/xml", "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "x-ms-error-code": "InvalidMetadata" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidMetadataFixture error" } } } @@ -116598,34 +140425,84 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "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/s3/stage-empty-part", + "id": "operations/s3/put-metadata-non-ascii-value", "profile": "s3", "lane": "core", - "purpose": "Stage an empty part, which S3 takes", + "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": "", - "key": "object-tests/multipart/object.bin", - "op": "s3.upload_part", - "part_number": 1, - "upload_id": "fixture-upload+/276ca18046f9=" + "body_base64": "MQ==", + "key": "object-tests/metadata/non-ascii.txt", + "metadata": { + "value": "café" + }, + "op": "put" }, "exchanges": [ { @@ -116645,7 +140522,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/non-ascii.txt" } }, { @@ -116653,23 +140530,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" - } - }, - { - "at": "/query/partNumber", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "MQ==" } }, { - "at": "/query/uploadId", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "is": "matches", + "pattern": "café|=\\?(?i:utf-8)\\?(?:(?i:q)\\?caf=(?i:c3)=(?i:a9)|(?i:b)\\?Y2Fmw6k=)\\?=" } } ], @@ -116683,7 +140552,7 @@ "date": { "from": "now" }, - "etag": "\"fixture-6d60d5bbaa47\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { @@ -116709,26 +140578,63 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6d60d5bbaa47\"" + "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/stage-copy", + "id": "operations/s3/put-metadata-value-edge-whitespace", "profile": "s3", "lane": "core", - "purpose": "Copy a whole object into a part of a multipart upload, with UploadPartCopy", + "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": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "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=" + "body_base64": "MQ==", + "key": "object-tests/metadata/value-edge-whitespace.txt", + "metadata": { + "value": "\ta " + }, + "op": "put" }, "exchanges": [ { @@ -116748,7 +140654,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/value-edge-whitespace.txt" } }, { @@ -116756,31 +140662,15 @@ "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=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?=" } } ], @@ -116791,14 +140681,15 @@ "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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + "encoding": "base64", + "data": "" } } } @@ -116819,30 +140710,63 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "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/stage-copy-range", + "id": "operations/s3/put-metadata-value-encoded-word-text", "profile": "s3", "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", + "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": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "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 + "body_base64": "MQ==", + "key": "object-tests/metadata/value-encoded-word-text.txt", + "metadata": { + "value": "=?UTF-8?Q?caf=C3=A9?=" }, - "upload_id": "fixture-upload+/276ca18046f9=" + "op": "put" }, "exchanges": [ { @@ -116862,7 +140786,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/value-encoded-word-text.txt" } }, { @@ -116870,39 +140794,15 @@ "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=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-meta-value", "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" + "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)\\?=" } } ], @@ -116913,14 +140813,15 @@ "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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + "encoding": "base64", + "data": "" } } } @@ -116941,30 +140842,63 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "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/stage-copy-range-beyond-source", + "id": "operations/s3/put-metadata-value-not-an-encoded-word", "profile": "s3", "lane": "core", - "purpose": "Report a part copy whose range ends past the source as an error. S3 answers 400 InvalidArgument", + "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": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "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 + "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" }, - "upload_id": "fixture-upload+/276ca18046f9=" + "op": "put" }, "exchanges": [ { @@ -116984,7 +140918,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/value-not-an-encoded-word.txt" } }, { @@ -116992,39 +140926,15 @@ "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=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-meta-value", "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-9" + "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==)\\?=" } } ], @@ -117033,18 +140943,18 @@ ], "allow_query": [], "response": { - "status": 400, + "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": "\nInvalidArgumentFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } ] @@ -117056,44 +140966,46 @@ "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", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidArgument" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3/stage-copy-200-internal-error", + "id": "operations/s3/put-metadata-value-control-characters", "profile": "s3", "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", + "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": [ - "https://repost.aws/knowledge-center/s3-resolve-200-internalerror", - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "origin": "transient", "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=" + "body_base64": "MQ==", + "key": "object-tests/metadata/value-control-characters.txt", + "metadata": { + "value": "a\u0000bc" + }, + "op": "put" }, "exchanges": [ { @@ -117113,7 +141025,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/value-control-characters.txt" } }, { @@ -117121,31 +141033,15 @@ "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=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?=" } } ], @@ -117156,20 +141052,94 @@ "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": "\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/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-line-break", + "profile": "s3", + "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.", + "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" + }, + "exchanges": [ { "alternatives": [ { @@ -117187,7 +141157,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/value-line-break.txt" } }, { @@ -117195,31 +141165,15 @@ "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=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?=" } } ], @@ -117230,21 +141184,75 @@ "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": "\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": "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": [ { @@ -117262,7 +141270,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/value-with-tab.txt" } }, { @@ -117270,31 +141278,15 @@ "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=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?=" } } ], @@ -117305,21 +141297,69 @@ "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": "\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-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": [ { @@ -117337,7 +141377,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/fixture/object-tests/metadata/outside-latin-1.txt" } }, { @@ -117345,31 +141385,15 @@ "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=" + "value": "MQ==" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/x-amz-meta-value", "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?=" } } ], @@ -117380,21 +141404,91 @@ "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": "\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-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-express/abort-after-commit", + "profile": "s3-express", + "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+/c60fb1e2e00d=" + }, + "exchanges": [ { "alternatives": [ { @@ -117404,7 +141498,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -117412,11 +141506,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", @@ -117424,27 +141518,26 @@ } }, { - "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-copy-source", + "at": "/headers/x-amz-s3session-token", "optional": false, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "absent" } } ], @@ -117455,20 +141548,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": [ @@ -117479,7 +141571,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "DELETE" } }, { @@ -117487,7 +141579,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -117499,27 +141591,35 @@ } }, { - "at": "/query/partNumber", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { - "at": "/query/uploadId", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" } }, { - "at": "/headers/x-amz-copy-source", + "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}" } } ], @@ -117528,22 +141628,20 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } - ], - "optional": true + ] } ], "expect": [ @@ -117552,32 +141650,24 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "InternalError" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3/staged-after-abort", - "profile": "s3", + "id": "operations/s3-express/abort-unknown-upload", + "profile": "s3-express", "lane": "core", - "purpose": "staged after abort", + "purpose": "abort unknown upload", "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=" + "key": "object-tests/multipart/object.bin", + "op": "s3.abort_multipart", + "upload_id": "fixture-upload+/4d0d5ccc4993=" }, "exchanges": [ { @@ -117597,11 +141687,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/aborted.bin" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -117609,11 +141699,26 @@ } }, { - "at": "/query/uploadId", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/f85cf0cd3a3f=" + "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" } } ], @@ -117622,65 +141727,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-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": [ { @@ -117690,7 +141752,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -117698,7 +141760,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/replaced.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -117714,7 +141776,31 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/6ba3c5e480a2=" + "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}" } } ], @@ -117723,17 +141809,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/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": "\nNoSuchUploadFixture error" }, "framing": "chunked" } @@ -117747,80 +141832,40 @@ "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 + "value": "error" } }, { - "at": "/value/parts/1/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 6 + "value": 404 } }, { - "at": "/value/parts/1/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3c6b3668db13\"" - } - }, - { - "at": "/value/parts", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 + "value": "NoSuchUpload" } } ], "refusal": null }, { - "id": "operations/s3/staged-unknown-upload", - "profile": "s3", + "id": "operations/s3-express/abort", + "profile": "s3-express", "lane": "core", - "purpose": "staged unknown upload", + "purpose": "abort", "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=" + "key": "object-tests/multipart/aborted.bin", + "op": "s3.abort_multipart", + "upload_id": "fixture-upload+/4bef2cd6d025=" }, "exchanges": [ { @@ -117840,11 +141885,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", @@ -117852,11 +141897,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" } } ], @@ -117865,65 +141925,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": [ { @@ -117933,7 +141950,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -117941,7 +141958,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/aborted.bin" } }, { @@ -117957,7 +141974,31 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "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}" } } ], @@ -117966,19 +142007,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": "\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" + "encoding": "base64", + "data": "" + } } } ] @@ -117992,77 +142031,28 @@ "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", + "id": "operations/s3-express/commit-after-abort", + "profile": "s3-express", "lane": "core", - "purpose": "start bucket missing", + "purpose": "commit after abort", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object.bin", - "op": "s3.create_multipart" + "key": "object-tests/multipart/aborted.bin", + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-db71b2c0257c\"", + "number": 1 + } + ], + "upload_id": "fixture-upload+/4bef2cd6d025=" }, "exchanges": [ { @@ -118074,7 +142064,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -118082,11 +142072,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.bin" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -118094,11 +142084,26 @@ } }, { - "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/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" } } ], @@ -118107,64 +142112,22 @@ ], "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/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": [ { @@ -118182,23 +142145,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "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": "" + "value": "fixture-upload+/4bef2cd6d025=" } }, { - "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}" } } ], @@ -118207,66 +142194,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": "NoSuchUploadFixture 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": [ { @@ -118282,23 +142223,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/multipart/object.bin" + "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": "" + "value": "fixture-upload+/4bef2cd6d025=" } }, { - "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}" } } ], @@ -118316,7 +142281,7 @@ }, "body": { "encoding": "utf8", - "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=" + "data": "NoSuchUploadFixture error" }, "framing": "chunked" } @@ -118330,35 +142295,47 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/upload_id", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/276ca18046f9=" + "value": 200 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "NoSuchUpload" } } ], "refusal": null }, { - "id": "operations/azure/put-metadata-non-ascii-value", - "profile": "azure", + "id": "operations/s3-express/commit-lost-the-race-to-create", + "profile": "s3-express", "lane": "core", - "purpose": "put metadata non ascii value", + "purpose": "commit lost the race to create", "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/non-ascii.txt", - "metadata": { - "value": "café" - }, - "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": [ { @@ -118370,7 +142347,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -118378,34 +142355,38 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "" } }, { - "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/authorization", "optional": false, "rule": { - "is": "equal", - "value": "BlockBlob" + "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" } } ], @@ -118414,109 +142395,22 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - }, - "x-ms-error-code": "InvalidMetadata" + "content-type": "application/xml" }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" + "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": "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": [ { @@ -118526,7 +142420,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -118534,34 +142428,55 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.txt" + "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": "MQ==" + "value": "*" } }, { - "at": "/headers/x-ms-meta-value", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "one_of", - "values": [ - "café", - "café" - ] + "is": "equal", + "value": "fixture-upload+/c7be505aec65=" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "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}" } } ], @@ -118570,111 +142485,20 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 200, "headers": { - "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidMetadata" + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" - } + "data": "PreconditionFailedFixture 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": "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": [ { @@ -118682,31 +142506,63 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "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-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c7be505aec65=" } }, { - "at": "/path", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/non-ascii.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-value", + "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}" } } ], @@ -118720,13 +142576,13 @@ "date": { "from": "now" }, - "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "PreconditionFailedFixture error" + }, + "framing": "chunked" } } ] @@ -118738,71 +142594,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "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": 200 } }, { - "at": "/parameter", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "metadata" + "value": "PreconditionFailed" } } - ] + ], + "refusal": null }, { - "id": "operations/s3/put-metadata-value-edge-whitespace", - "profile": "s3", + "id": "operations/s3-express/commit-nothing", + "profile": "s3-express", "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.", + "purpose": "commit nothing", "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 " - }, - "op": "put" + "key": "object-tests/multipart/guarded.bin", + "op": "s3.complete_multipart", + "parts": [], + "upload_id": "fixture-upload+/c7be505aec65=" }, "exchanges": [ { @@ -118814,7 +142640,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -118822,23 +142648,38 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-edge-whitespace.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)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?=" + "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" } } ], @@ -118849,94 +142690,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": [ - { - "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": [ { @@ -118946,7 +142713,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -118954,23 +142721,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-encoded-word-text.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": "MQ==" + "value": "fixture-upload+/c7be505aec65=" } }, { - "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}" } } ], @@ -118979,98 +142770,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nMalformedXMLFixture error" + }, + "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" - }, - "op": "put" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -119078,7 +142791,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -119086,23 +142799,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-not-an-encoded-word.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": "MQ==" + "value": "fixture-upload+/c7be505aec65=" } }, { - "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}" } } ], @@ -119111,73 +142848,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nMalformedXMLFixture error" + }, + "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": [ { @@ -119185,7 +142869,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -119193,7 +142877,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-control-characters.txt" + "value": "/object-tests/multipart/guarded.bin" + } + }, + { + "at": "/query/uploadId", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c7be505aec65=" } }, { @@ -119201,15 +142893,31 @@ "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/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}" } } ], @@ -119218,18 +142926,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidRequestYou must specify at least one part" + }, + "framing": "chunked" } } ] @@ -119241,25 +142949,25 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": 400 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { "is": "one_of", "values": [ - null, - "" + "MalformedXML", + "InvalidRequest" ] } } @@ -119286,26 +142994,52 @@ "optional": false, "rule": { "is": "equal", - "value": "metadata" + "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/put-metadata-value-line-break", - "profile": "s3", + "id": "operations/s3-express/commit-out-of-order", + "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": "commit out of order", "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" + "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": [ { @@ -119317,7 +143051,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -119325,23 +143059,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" } } ], @@ -119352,75 +143101,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": [ { @@ -119430,7 +143124,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -119438,23 +143132,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/value-with-tab.txt" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "2\"fixture-ec2738a0b15a\"1\"fixture-9aff617fcdf8\"" + } + }, + { + "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\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}" } } ], @@ -119463,73 +143181,20 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidPartOrderFixture error" + }, + "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": [ { @@ -119537,7 +143202,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "POST" } }, { @@ -119545,23 +143210,47 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/outside-latin-1.txt" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "\"fixture-ec2738a0b15a\"2\"fixture-9aff617fcdf8\"1" + } + }, + { + "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: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}" } } ], @@ -119570,18 +143259,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "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": "\nInvalidPartOrderFixture error" + }, + "framing": "chunked" } } ] @@ -119593,26 +143282,23 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6c30b210f0a8\"" + "value": 400 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidPartOrder" } } ], @@ -119638,23 +143324,49 @@ "optional": false, "rule": { "is": "equal", - "value": "metadata" + "value": "parts" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "InvalidPartOrder" } } ] }, { - "id": "operations/s3-express/abort-after-commit", + "id": "operations/s3-express/commit-part-too-small", "profile": "s3-express", "lane": "core", - "purpose": "abort after commit", + "purpose": "commit part too small", "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/multipart/small.bin", + "op": "s3.complete_multipart", + "parts": [ + { + "etag": "\"fixture-132cb4a5de9d\"", + "number": 1 + }, + { + "etag": "\"fixture-2cab82eb728e\"", + "number": 2 + } + ], + "upload_id": "fixture-upload+/09837ae2020c=" }, "exchanges": [ { @@ -119739,7 +143451,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -119747,15 +143459,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/small.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "1\"fixture-132cb4a5de9d\"2\"fixture-2cab82eb728e\"" } }, { @@ -119763,7 +143475,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/09837ae2020c=" } }, { @@ -119796,123 +143508,20 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "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-express/abort-unknown-upload", - "profile": "s3-express", - "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": [ - { - "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" + "data": "EntityTooSmallFixture error" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -119920,7 +143529,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -119928,15 +143537,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/small.bin" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "xml", + "value": "\"fixture-132cb4a5de9d\"1\"fixture-2cab82eb728e\"2" } }, { @@ -119944,7 +143553,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4d0d5ccc4993=" + "value": "fixture-upload+/09837ae2020c=" } }, { @@ -119977,16 +143586,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": "EntityTooSmallFixture error" }, "framing": "chunked" } @@ -120008,7 +143617,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 200 } }, { @@ -120016,24 +143625,31 @@ "optional": false, "rule": { "is": "equal", - "value": "NoSuchUpload" + "value": "EntityTooSmall" } } ], "refusal": null }, { - "id": "operations/s3-express/abort", + "id": "operations/s3-express/commit-precondition-failed", "profile": "s3-express", "lane": "core", - "purpose": "abort", + "purpose": "commit precondition failed", "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=" + "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": [ { @@ -120118,7 +143734,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -120126,15 +143742,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/aborted.bin" + "value": "/object-tests/multipart/guarded.bin" } }, { - "at": "/body_base64", + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "1\"fixture-201c9ed6f636\"" + } + }, + { + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "\"fixture-db71b2c0257c\"" } }, { @@ -120142,7 +143766,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4bef2cd6d025=" + "value": "fixture-upload+/c7be505aec65=" } }, { @@ -120175,7 +143799,7 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { "date": { "from": "now" @@ -120183,9 +143807,96 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" + "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": "\"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" } } ] @@ -120197,30 +143908,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-express/commit-after-abort", + "id": "operations/s3-express/commit-single-small-part", "profile": "s3-express", "lane": "core", - "purpose": "commit after abort", + "purpose": "commit single small part", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/aborted.bin", + "key": "object-tests/multipart/single.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-db71b2c0257c\"", + "etag": "\"fixture-db1e44387ca0\"", "number": 1 } ], - "upload_id": "fixture-upload+/4bef2cd6d025=" + "upload_id": "fixture-upload+/b39780854a14=" }, "exchanges": [ { @@ -120313,7 +144040,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/aborted.bin" + "value": "/object-tests/multipart/single.bin" } }, { @@ -120321,7 +144048,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-db71b2c0257c\"" + "value": "1\"fixture-db1e44387ca0\"" } }, { @@ -120329,7 +144056,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4bef2cd6d025=" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -120371,7 +144098,7 @@ }, "body": { "encoding": "utf8", - "data": "NoSuchUploadFixture error" + "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } @@ -120391,7 +144118,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/aborted.bin" + "value": "/object-tests/multipart/single.bin" } }, { @@ -120399,7 +144126,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-db71b2c0257c\"1" + "value": "\"fixture-db1e44387ca0\"1" } }, { @@ -120407,7 +144134,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/4bef2cd6d025=" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -120449,7 +144176,7 @@ }, "body": { "encoding": "utf8", - "data": "NoSuchUploadFixture error" + "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } @@ -120463,47 +144190,50 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 200 + "value": "\"fixture-0841fa5d9c5c\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NoSuchUpload" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/commit-lost-the-race-to-create", + "id": "operations/s3-express/commit-object-size-mismatch", "profile": "s3-express", "lane": "core", - "purpose": "commit lost the race to create", + "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": { - "if_none_match": "*", - "key": "object-tests/multipart/guarded.bin", + "key": "object-tests/multipart/commit-object-size-mismatch.bin", + "object_size": 4, "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-201c9ed6f636\"", + "etag": "\"fixture-db1e44387ca0\"", "number": 1 } ], - "upload_id": "fixture-upload+/c7be505aec65=" + "upload_id": "fixture-upload+/b39780854a14=" }, "exchanges": [ { @@ -120596,7 +144326,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" + "value": "/object-tests/multipart/commit-object-size-mismatch.bin" } }, { @@ -120604,15 +144334,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-201c9ed6f636\"" - } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" + "value": "1\"fixture-db1e44387ca0\"" } }, { @@ -120620,7 +144342,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -120646,6 +144368,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-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "4" + } } ], "allow_headers": [ @@ -120655,14 +144385,14 @@ "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": "PreconditionFailedFixture error" + "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" }, "framing": "chunked" } @@ -120682,7 +144412,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" + "value": "/object-tests/multipart/commit-object-size-mismatch.bin" } }, { @@ -120690,15 +144420,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-201c9ed6f636\"1" - } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" + "value": "\"fixture-db1e44387ca0\"1" } }, { @@ -120706,7 +144428,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -120732,6 +144454,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-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "4" + } } ], "allow_headers": [ @@ -120741,14 +144471,14 @@ "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": "PreconditionFailedFixture error" + "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" }, "framing": "chunked" } @@ -120778,25 +144508,31 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "InvalidRequest" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-nothing", + "id": "operations/s3-express/commit-object-size", "profile": "s3-express", "lane": "core", - "purpose": "commit nothing", + "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/guarded.bin", + "key": "object-tests/multipart/commit-object-size.bin", + "object_size": 3, "op": "s3.complete_multipart", - "parts": [], - "upload_id": "fixture-upload+/c7be505aec65=" + "parts": [ + { + "etag": "\"fixture-db1e44387ca0\"", + "number": 1 + } + ], + "upload_id": "fixture-upload+/b39780854a14=" }, "exchanges": [ { @@ -120889,85 +144625,7 @@ "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": "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": 400, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - } - }, - "body": { - "encoding": "utf8", - "data": "\nMalformedXMLFixture 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" + "value": "/object-tests/multipart/commit-object-size.bin" } }, { @@ -120975,7 +144633,7 @@ "optional": false, "rule": { "is": "xml", - "value": "" + "value": "1\"fixture-db1e44387ca0\"" } }, { @@ -120983,7 +144641,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -121009,6 +144667,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-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "3" + } } ], "allow_headers": [ @@ -121016,16 +144682,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": "\nMalformedXMLFixture error" + "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" } @@ -121045,23 +144711,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" + "value": "/object-tests/multipart/commit-object-size.bin" } }, { - "at": "/query/uploadId", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "is": "xml", + "value": "\"fixture-db1e44387ca0\"1" } }, { - "at": "/body_base64", + "at": "/query/uploadId", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -121087,6 +144753,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-mp-object-size", + "optional": false, + "rule": { + "is": "equal", + "value": "3" + } } ], "allow_headers": [ @@ -121094,16 +144768,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": "\nInvalidRequestYou must specify at least one part" + "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" } @@ -121117,97 +144791,49 @@ "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" - ] - } - } - ], - "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": "parts" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 + "value": "\"fixture-0841fa5d9c5c\"" } }, { - "at": "/code", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", "values": [ - "MalformedXML", - "InvalidRequest" + null, + "" ] } } - ] + ], + "refusal": null }, { - "id": "operations/s3-express/commit-out-of-order", + "id": "operations/s3-express/commit-one-empty-part", "profile": "s3-express", "lane": "core", - "purpose": "commit out of order", + "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/object.bin", + "key": "object-tests/multipart/empty.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-ec2738a0b15a\"", - "number": 2 - }, - { - "etag": "\"fixture-9aff617fcdf8\"", + "etag": "\"fixture-db1e44387ca0\"", "number": 1 } ], - "upload_id": "fixture-upload+/c60fb1e2e00d=" + "upload_id": "fixture-upload+/b39780854a14=" }, "exchanges": [ { @@ -121300,7 +144926,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/empty.bin" } }, { @@ -121308,7 +144934,7 @@ "optional": false, "rule": { "is": "xml", - "value": "2\"fixture-ec2738a0b15a\"1\"fixture-9aff617fcdf8\"" + "value": "1\"fixture-db1e44387ca0\"" } }, { @@ -121316,7 +144942,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -121349,16 +144975,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": "\nInvalidPartOrderFixture error" + "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } @@ -121378,7 +145004,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/multipart/empty.bin" } }, { @@ -121386,7 +145012,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-ec2738a0b15a\"2\"fixture-9aff617fcdf8\"1" + "value": "\"fixture-db1e44387ca0\"1" } }, { @@ -121394,7 +145020,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "fixture-upload+/b39780854a14=" } }, { @@ -121427,16 +145053,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": "\nInvalidPartOrderFixture error" + "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" }, "framing": "chunked" } @@ -121450,91 +145076,49 @@ "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": ".+" + "value": "ok" } }, { - "at": "/parameter", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "parts" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 + "value": "\"fixture-0841fa5d9c5c\"" } }, { - "at": "/code", + "at": "/value/version", "optional": true, "rule": { - "is": "equal", - "value": "InvalidPartOrder" + "is": "one_of", + "values": [ + null, + "" + ] } } - ] + ], + "refusal": null }, { - "id": "operations/s3-express/commit-part-too-small", + "id": "operations/s3-express/commit-subset", "profile": "s3-express", "lane": "core", - "purpose": "commit part too small", + "purpose": "commit subset", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/small.bin", + "key": "object-tests/multipart/replaced.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-132cb4a5de9d\"", + "etag": "\"fixture-09ac5e35935f\"", "number": 1 - }, - { - "etag": "\"fixture-2cab82eb728e\"", - "number": 2 } ], - "upload_id": "fixture-upload+/09837ae2020c=" + "upload_id": "fixture-upload+/3cc68ed16e61=" }, "exchanges": [ { @@ -121627,7 +145211,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/small.bin" + "value": "/object-tests/multipart/replaced.bin" } }, { @@ -121635,7 +145219,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-132cb4a5de9d\"2\"fixture-2cab82eb728e\"" + "value": "1\"fixture-09ac5e35935f\"" } }, { @@ -121643,7 +145227,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/09837ae2020c=" + "value": "fixture-upload+/3cc68ed16e61=" } }, { @@ -121685,7 +145269,7 @@ }, "body": { "encoding": "utf8", - "data": "EntityTooSmallFixture error" + "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT" }, "framing": "chunked" } @@ -121705,7 +145289,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/small.bin" + "value": "/object-tests/multipart/replaced.bin" } }, { @@ -121713,7 +145297,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-132cb4a5de9d\"1\"fixture-2cab82eb728e\"2" + "value": "\"fixture-09ac5e35935f\"1" } }, { @@ -121721,7 +145305,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/09837ae2020c=" + "value": "fixture-upload+/3cc68ed16e61=" } }, { @@ -121763,7 +145347,7 @@ }, "body": { "encoding": "utf8", - "data": "EntityTooSmallFixture error" + "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT" }, "framing": "chunked" } @@ -121777,47 +145361,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 200 + "value": "\"fixture-eef5a071f9f6\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "EntityTooSmall" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/commit-precondition-failed", + "id": "operations/s3-express/commit-unstaged-part", "profile": "s3-express", "lane": "core", - "purpose": "commit precondition failed", + "purpose": "commit unstaged part", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-db71b2c0257c\"", - "key": "object-tests/multipart/guarded.bin", + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-201c9ed6f636\"", + "etag": "\"fixture-9aff617fcdf8\"", "number": 1 + }, + { + "etag": "\"fixture-db71b2c0257c\"", + "number": 3 } ], - "upload_id": "fixture-upload+/c7be505aec65=" + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -121910,7 +145500,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -121918,15 +145508,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-201c9ed6f636\"" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "1\"fixture-9aff617fcdf8\"3\"fixture-db71b2c0257c\"" } }, { @@ -121934,7 +145516,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -121967,16 +145549,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": "PreconditionFailedFixture error" + "data": "\nInvalidPartOrderFixture error" }, "framing": "chunked" } @@ -121996,7 +145578,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/guarded.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -122004,15 +145586,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-201c9ed6f636\"1" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "\"fixture-9aff617fcdf8\"1\"fixture-db71b2c0257c\"3" } }, { @@ -122020,7 +145594,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c7be505aec65=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -122053,16 +145627,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": "PreconditionFailedFixture error" + "data": "\nInvalidPartOrderFixture error" }, "framing": "chunked" } @@ -122084,7 +145658,7 @@ "optional": false, "rule": { "is": "equal", - "value": 200 + "value": 400 } }, { @@ -122092,30 +145666,34 @@ "optional": false, "rule": { "is": "equal", - "value": "PreconditionFailed" + "value": "InvalidPartOrder" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-single-small-part", + "id": "operations/s3-express/commit-wrong-etag", "profile": "s3-express", "lane": "core", - "purpose": "commit single small part", + "purpose": "commit wrong etag", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/single.bin", + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-db1e44387ca0\"", + "etag": "\"fixture-db71b2c0257c\"", "number": 1 + }, + { + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 } ], - "upload_id": "fixture-upload+/b39780854a14=" + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -122208,7 +145786,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -122216,7 +145794,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-db1e44387ca0\"" + "value": "1\"fixture-db71b2c0257c\"2\"fixture-ec2738a0b15a\"" } }, { @@ -122224,7 +145802,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -122266,7 +145844,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" + "data": "InvalidPartFixture error" }, "framing": "chunked" } @@ -122286,7 +145864,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -122294,7 +145872,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-db1e44387ca0\"1" + "value": "\"fixture-db71b2c0257c\"1\"fixture-ec2738a0b15a\"2" } }, { @@ -122302,7 +145880,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -122344,7 +145922,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" + "data": "InvalidPartFixture error" }, "framing": "chunked" } @@ -122358,50 +145936,50 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" + "value": 200 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "InvalidPart" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-object-size-mismatch", + "id": "operations/s3-express/commit", "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": "commit", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/commit-object-size-mismatch.bin", - "object_size": 4, + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-db1e44387ca0\"", + "etag": "\"fixture-9aff617fcdf8\"", "number": 1 + }, + { + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 } ], - "upload_id": "fixture-upload+/b39780854a14=" + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -122494,7 +146072,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/commit-object-size-mismatch.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -122502,7 +146080,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-db1e44387ca0\"" + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { @@ -122510,7 +146088,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -122536,14 +146114,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": [ @@ -122553,14 +146123,14 @@ "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": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" + "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -122580,7 +146150,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/commit-object-size-mismatch.bin" + "value": "/object-tests/multipart/object.bin" } }, { @@ -122588,7 +146158,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-db1e44387ca0\"1" + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { @@ -122596,7 +146166,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -122622,14 +146192,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": [ @@ -122639,14 +146201,14 @@ "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": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture" + "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -122660,47 +146222,53 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 200 + "value": "\"fixture-ec4f3b9bcac2\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidRequest" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/commit-object-size", + "id": "operations/s3-express/commit-key-question", "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": "commit, with the key \"question?mark.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/commit-object-size.bin", - "object_size": 3, + "key": "object-tests/keys/question?mark.txt", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-db1e44387ca0\"", + "etag": "\"fixture-9aff617fcdf8\"", "number": 1 + }, + { + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 } ], - "upload_id": "fixture-upload+/b39780854a14=" + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -122793,93 +146361,7 @@ "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\"" - } - }, - { - "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" - } - } - ], - "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" - } - }, - { - "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" + "value": "/object-tests/keys/question?mark.txt" } }, { @@ -122887,7 +146369,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-db1e44387ca0\"1" + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { @@ -122895,7 +146377,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -122921,13 +146403,83 @@ "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/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + }, + "framing": "chunked" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "POST" + } }, { - "at": "/headers/x-amz-mp-object-size", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "3" + "value": "/object-tests/keys/question?mark.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}" } } ], @@ -122945,7 +146497,7 @@ }, "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" + "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -122967,7 +146519,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -122985,23 +146537,27 @@ "refusal": null }, { - "id": "operations/s3-express/commit-one-empty-part", + "id": "operations/s3-express/commit-key-hash", "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": "commit, with the key \"hash#tag.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/empty.bin", + "key": "object-tests/keys/hash#tag.txt", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-db1e44387ca0\"", + "etag": "\"fixture-9aff617fcdf8\"", "number": 1 + }, + { + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 } ], - "upload_id": "fixture-upload+/b39780854a14=" + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -123094,7 +146650,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/empty.bin" + "value": "/object-tests/keys/hash#tag.txt" } }, { @@ -123102,7 +146658,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-db1e44387ca0\"" + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { @@ -123110,7 +146666,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -123152,7 +146708,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -123172,7 +146728,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/empty.bin" + "value": "/object-tests/keys/hash#tag.txt" } }, { @@ -123180,7 +146736,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-db1e44387ca0\"1" + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { @@ -123188,7 +146744,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/b39780854a14=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -123230,7 +146786,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -123252,7 +146808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -123270,23 +146826,27 @@ "refusal": null }, { - "id": "operations/s3-express/commit-subset", + "id": "operations/s3-express/commit-key-percent", "profile": "s3-express", "lane": "core", - "purpose": "commit subset", + "purpose": "commit, with the key \"percent%20.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/replaced.bin", + "key": "object-tests/keys/percent%20.txt", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-09ac5e35935f\"", + "etag": "\"fixture-9aff617fcdf8\"", "number": 1 + }, + { + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 } ], - "upload_id": "fixture-upload+/3cc68ed16e61=" + "upload_id": "fixture-upload+/c60fb1e2e00d=" }, "exchanges": [ { @@ -123379,7 +146939,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" + "value": "/object-tests/keys/percent%20.txt" } }, { @@ -123387,7 +146947,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-09ac5e35935f\"" + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { @@ -123395,7 +146955,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/3cc68ed16e61=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -123437,7 +146997,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -123457,7 +147017,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" + "value": "/object-tests/keys/percent%20.txt" } }, { @@ -123465,7 +147025,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-09ac5e35935f\"1" + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { @@ -123473,7 +147033,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/3cc68ed16e61=" + "value": "fixture-upload+/c60fb1e2e00d=" } }, { @@ -123515,7 +147075,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -123537,7 +147097,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-eef5a071f9f6\"" + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -123555,15 +147115,15 @@ "refusal": null }, { - "id": "operations/s3-express/commit-unstaged-part", + "id": "operations/s3-express/commit-key-plus", "profile": "s3-express", "lane": "core", - "purpose": "commit unstaged part", + "purpose": "commit, with the key \"plus+plus.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", + "key": "object-tests/keys/plus+plus.txt", "op": "s3.complete_multipart", "parts": [ { @@ -123571,8 +147131,8 @@ "number": 1 }, { - "etag": "\"fixture-db71b2c0257c\"", - "number": 3 + "etag": "\"fixture-ec2738a0b15a\"", + "number": 2 } ], "upload_id": "fixture-upload+/c60fb1e2e00d=" @@ -123668,7 +147228,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/plus+plus.txt" } }, { @@ -123676,7 +147236,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"3\"fixture-db71b2c0257c\"" + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { @@ -123717,16 +147277,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": "\nInvalidPartOrderFixture error" + "data": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -123746,7 +147306,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/plus+plus.txt" } }, { @@ -123754,7 +147314,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-db71b2c0257c\"3" + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { @@ -123795,16 +147355,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": "\nInvalidPartOrderFixture error" + "data": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -123818,42 +147378,45 @@ "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", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidPartOrder" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/commit-wrong-etag", + "id": "operations/s3-express/commit-key-space", "profile": "s3-express", "lane": "core", - "purpose": "commit wrong etag", + "purpose": "commit, with the key \"space name.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", + "key": "object-tests/keys/space name.txt", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-db71b2c0257c\"", + "etag": "\"fixture-9aff617fcdf8\"", "number": 1 }, { @@ -123954,7 +147517,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/space name.txt" } }, { @@ -123962,7 +147525,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-db71b2c0257c\"2\"fixture-ec2738a0b15a\"" + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { @@ -124012,7 +147575,7 @@ }, "body": { "encoding": "utf8", - "data": "InvalidPartFixture error" + "data": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124032,7 +147595,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/space name.txt" } }, { @@ -124040,7 +147603,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-db71b2c0257c\"1\"fixture-ec2738a0b15a\"2" + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { @@ -124090,7 +147653,7 @@ }, "body": { "encoding": "utf8", - "data": "InvalidPartFixture error" + "data": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124104,38 +147667,41 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 200 + "value": "\"fixture-ec4f3b9bcac2\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "InvalidPart" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/commit", + "id": "operations/s3-express/commit-key-non-ascii", "profile": "s3-express", "lane": "core", - "purpose": "commit", + "purpose": "commit, with the key \"café/雪.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", + "key": "object-tests/keys/café/雪.txt", "op": "s3.complete_multipart", "parts": [ { @@ -124240,7 +147806,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/café/雪.txt" } }, { @@ -124298,7 +147864,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124318,7 +147884,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/keys/café/雪.txt" } }, { @@ -124376,7 +147942,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124416,15 +147982,15 @@ "refusal": null }, { - "id": "operations/s3-express/commit-key-question", + "id": "operations/s3-express/commit-key-double-slash", "profile": "s3-express", "lane": "core", - "purpose": "commit, with the key \"question?mark.txt\"", + "purpose": "commit, with the key \"double//slash.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/question?mark.txt", + "key": "object-tests/keys/double//slash.txt", "op": "s3.complete_multipart", "parts": [ { @@ -124529,7 +148095,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/keys/double//slash.txt" } }, { @@ -124587,7 +148153,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124607,7 +148173,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/keys/double//slash.txt" } }, { @@ -124665,7 +148231,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124705,15 +148271,15 @@ "refusal": null }, { - "id": "operations/s3-express/commit-key-hash", + "id": "operations/s3-express/commit-key-trailing-slash", "profile": "s3-express", "lane": "core", - "purpose": "commit, with the key \"hash#tag.txt\"", + "purpose": "commit, with the key \"trailing-slash/\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/hash#tag.txt", + "key": "object-tests/keys/trailing-slash/", "op": "s3.complete_multipart", "parts": [ { @@ -124818,7 +148384,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/keys/trailing-slash/" } }, { @@ -124876,7 +148442,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124896,7 +148462,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/keys/trailing-slash/" } }, { @@ -124954,7 +148520,7 @@ }, "body": { "encoding": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" }, "framing": "chunked" } @@ -124994,15 +148560,18 @@ "refusal": null }, { - "id": "operations/s3-express/commit-key-percent", + "id": "operations/s3-express/commit-200-internal-error", "profile": "s3-express", "lane": "core", - "purpose": "commit, with the key \"percent%20.txt\"", + "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", "call": { - "key": "object-tests/keys/percent%20.txt", + "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", "parts": [ { @@ -125107,7 +148676,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -125158,14 +148727,14 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } @@ -125185,7 +148754,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -125236,76 +148805,20 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "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-ec4f3b9bcac2\"" - } }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/commit-key-plus", - "profile": "s3-express", - "lane": "core", - "purpose": "commit, 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": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-9aff617fcdf8\"", - "number": 1 - }, - { - "etag": "\"fixture-ec2738a0b15a\"", - "number": 2 - } - ], - "upload_id": "fixture-upload+/c60fb1e2e00d=" - }, - "exchanges": [ { "alternatives": [ { @@ -125315,7 +148828,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -125323,15 +148836,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "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=" } }, { @@ -125342,19 +148863,98 @@ "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}" + } + } + ], + "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": "/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", "optional": false, "rule": { - "is": "absent" + "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}" } } ], @@ -125365,19 +148965,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": [ @@ -125396,7 +148997,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -125447,14 +149048,14 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } @@ -125474,7 +149075,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -125525,76 +149126,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": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "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-ec4f3b9bcac2\"" - } + ], + "optional": true }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/commit-key-space", - "profile": "s3-express", - "lane": "core", - "purpose": "commit, 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": "s3.complete_multipart", - "parts": [ - { - "etag": "\"fixture-9aff617fcdf8\"", - "number": 1 - }, - { - "etag": "\"fixture-ec2738a0b15a\"", - "number": 2 - } - ], - "upload_id": "fixture-upload+/c60fb1e2e00d=" - }, - "exchanges": [ { "alternatives": [ { @@ -125604,7 +149150,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -125612,15 +149158,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "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=" } }, { @@ -125632,18 +149186,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}" } } ], @@ -125654,22 +149209,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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -125685,7 +149236,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -125693,7 +149244,7 @@ "optional": false, "rule": { "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" } }, { @@ -125736,18 +149287,23 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -125763,7 +149319,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -125771,7 +149327,7 @@ "optional": false, "rule": { "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" } }, { @@ -125814,78 +149370,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": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "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-ec4f3b9bcac2\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/commit-key-non-ascii", - "profile": "s3-express", - "lane": "core", - "purpose": "commit, with the key \"café/雪.txt\"", - "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=" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -125893,7 +149389,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "POST" } }, { @@ -125901,15 +149397,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/query/session", + "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=" } }, { @@ -125921,18 +149425,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}" } } ], @@ -125943,19 +149448,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": [ @@ -125974,7 +149480,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -126025,14 +149531,14 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } @@ -126052,7 +149558,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -126103,19 +149609,20 @@ "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": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -126124,53 +149631,39 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-key-double-slash", + "id": "operations/s3-express/complete-multipart-200-error", "profile": "s3-express", "lane": "core", - "purpose": "commit, with the key \"double//slash.txt\"", + "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": { - "key": "object-tests/keys/double//slash.txt", + "key": "object", "op": "s3.complete_multipart", "parts": [ { - "etag": "\"fixture-9aff617fcdf8\"", + "etag": "\"part\"", "number": 1 - }, - { - "etag": "\"fixture-ec2738a0b15a\"", - "number": 2 } ], - "upload_id": "fixture-upload+/c60fb1e2e00d=" + "upload_id": "upload+/=" }, "exchanges": [ { @@ -126263,23 +149756,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "value": "/object" } }, { - "at": "/body_text", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "is": "equal", + "value": "upload+/=" } }, { - "at": "/query/uploadId", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "is": "xml", + "value": "1\"part\"" } }, { @@ -126314,14 +149807,17 @@ "response": { "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": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4=" }, "framing": "chunked" } @@ -126341,23 +149837,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "value": "/object" } }, { - "at": "/body_text", + "at": "/query/uploadId", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "is": "equal", + "value": "upload+/=" } }, { - "at": "/query/uploadId", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "is": "xml", + "value": "\"part\"1" } }, { @@ -126392,14 +149888,17 @@ "response": { "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": "utf8", - "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4=" }, "framing": "chunked" } @@ -126413,53 +149912,31 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "InvalidPart" } } ], "refusal": null }, { - "id": "operations/s3-express/commit-key-trailing-slash", + "id": "operations/s3-express/delete-accepted", "profile": "s3-express", "lane": "core", - "purpose": "commit, with the key \"trailing-slash/\"", + "purpose": "delete accepted", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "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": "object-tests/remove/present.txt", + "op": "delete" }, "exchanges": [ { @@ -126544,7 +150021,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -126552,23 +150029,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" - } - }, - { - "at": "/body_text", - "optional": false, - "rule": { - "is": "xml", - "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\"" + "value": "/object-tests/remove/present.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { @@ -126601,7 +150070,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { "date": { "from": "now" @@ -126609,12 +150078,41 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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": "" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/delete-accepted-key-question", + "profile": "s3-express", + "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": [ { @@ -126622,7 +150120,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -126630,23 +150128,88 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/" } }, { - "at": "/body_text", + "at": "/query/session", "optional": false, "rule": { - "is": "xml", - "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2" + "is": "equal", + "value": "" } }, { - "at": "/query/uploadId", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "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" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/keys/question?mark.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -126679,7 +150242,7 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "headers": { "date": { "from": "now" @@ -126687,10 +150250,9 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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": "" + } } } ] @@ -126704,54 +150266,21 @@ "is": "equal", "value": "ok" } - }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } } ], "refusal": null }, { - "id": "operations/s3-express/commit-200-internal-error", + "id": "operations/s3-express/delete-accepted-key-hash", "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": "delete accepted, with the key \"hash#tag.txt\"", "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" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "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": "object-tests/keys/hash#tag.txt", + "op": "delete" }, "exchanges": [ { @@ -126836,7 +150365,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -126844,23 +150373,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/keys/hash#tag.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { @@ -126893,20 +150414,49 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "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": [ { @@ -126914,7 +150464,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -126922,23 +150472,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": "" } }, { @@ -126950,19 +150492,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" } } ], @@ -126973,16 +150514,16 @@ "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 + } } } ] @@ -126996,7 +150537,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -127004,23 +150545,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/keys/percent%20.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { @@ -127053,20 +150586,49 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/delete-accepted-key-plus", + "profile": "s3-express", + "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": [ { @@ -127074,7 +150636,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -127082,23 +150644,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": "" } }, { @@ -127110,19 +150664,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" } } ], @@ -127133,20 +150686,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": [ @@ -127157,7 +150709,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -127165,23 +150717,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/keys/plus+plus.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { @@ -127214,20 +150758,49 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "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": [ { @@ -127235,7 +150808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -127243,23 +150816,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": "" } }, { @@ -127271,19 +150836,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" } } ], @@ -127294,20 +150858,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": [ @@ -127318,7 +150881,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -127326,23 +150889,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/keys/space name.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { @@ -127375,20 +150930,49 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/delete-accepted-key-non-ascii", + "profile": "s3-express", + "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": [ { @@ -127396,7 +150980,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -127404,23 +150988,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": "" } }, { @@ -127432,19 +151008,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" } } ], @@ -127455,20 +151030,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": [ @@ -127479,7 +151053,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -127487,23 +151061,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/keys/café/雪.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { @@ -127536,101 +151102,47 @@ ], "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": "\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": "/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", - "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": { - "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" + } + } + ], + "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": [ { @@ -127640,7 +151152,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -127648,23 +151160,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": "" } }, { @@ -127676,19 +151180,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" } } ], @@ -127699,18 +151202,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": [ { @@ -127718,7 +151225,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -127726,23 +151233,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/keys/double//slash.txt" } }, { - "at": "/query/uploadId", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-upload+/c60fb1e2e00d=" + "value": "" } }, { @@ -127775,22 +151274,20 @@ ], "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } } - ], - "optional": true + ] } ], "expect": [ @@ -127799,39 +151296,23 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "InternalError" + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3-express/complete-multipart-200-error", + "id": "operations/s3-express/delete-accepted-key-trailing-slash", "profile": "s3-express", "lane": "core", - "purpose": "complete multipart 200 error", + "purpose": "delete accepted, with the key \"trailing-slash/\"", "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/trailing-slash/", + "op": "delete" }, "exchanges": [ { @@ -127916,7 +151397,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "DELETE" } }, { @@ -127924,23 +151405,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/keys/trailing-slash/" } }, { - "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": "" } }, { @@ -127973,23 +151446,53 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 204, "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": "base64", - "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4=" - }, - "framing": "chunked" + "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": [ { @@ -127997,7 +151500,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -128005,39 +151508,248 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/" } }, { - "at": "/query/uploadId", + "at": "/query/session", "optional": false, "rule": { "is": "equal", - "value": "upload+/=" + "value": "" } }, { - "at": "/body_text", + "at": "/headers/host", "optional": false, "rule": { - "is": "xml", - "value": "\"part\"1" + "is": "equal", + "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": "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": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + } + }, + { + "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": 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 + } + } + } + ] + } + ], + "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", + "object-tests/batch/absent.txt" + ] + } + }, + { + "at": "/value/errors", + "optional": false, + "rule": { + "is": "equal", + "value": [] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/delete-many-errors", + "profile": "s3-express", + "lane": "core", + "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://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html" + ], + "origin": "transient", + "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": "fixture-session-token" + "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" } }, { @@ -128045,10 +151757,118 @@ "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": "POST" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/" + } + }, + { + "at": "/body_text", + "optional": false, + "rule": { + "is": "xml", + "value": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + } + }, + { + "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" ], @@ -128056,19 +151876,16 @@ "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" + "content-type": "application/xml" }, "body": { - "encoding": "base64", - "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4=" + "encoding": "utf8", + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } } ] @@ -128080,31 +151897,1048 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/code", + "at": "/value/deleted", "optional": false, "rule": { "is": "equal", - "value": "InvalidPart" + "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-accepted", + "id": "operations/s3-express/delete-many-1000", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted", + "purpose": "Delete 1,000 keys in one DeleteObjects request, the most S3 takes", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html" ], "call": { - "key": "object-tests/remove/present.txt", - "op": "delete" + "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": [ { @@ -128159,6 +152993,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": "object-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" + } + }, + { + "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" ], @@ -128179,7 +153114,2052 @@ } } ] + } + ], + "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": [ { @@ -128189,7 +155169,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -128197,11 +155177,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -128217,37 +155197,138 @@ } }, { - "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": "object-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.txtobject-tests/batch/many-1000.txt" + } + }, + { + "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" ], "allow_query": [], "response": { - "status": 204, + "status": 200, "headers": { - "date": { - "from": "now" - }, - "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 } } } @@ -128260,22 +155341,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": "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/delete-accepted-key-question", + "id": "operations/s3-express/delete-slow-down", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"question?mark.txt\"", + "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/keys/question?mark.txt", + "key": "object-tests/remove/present.txt", "op": "delete" }, "exchanges": [ @@ -128369,7 +155508,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/remove/present.txt" } }, { @@ -128410,47 +155549,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": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/delete-accepted-key-hash", - "profile": "s3-express", - "lane": "core", - "purpose": "delete accepted, 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": "delete" - }, - "exchanges": [ + }, { "alternatives": [ { @@ -128460,7 +155574,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -128468,11 +155582,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/remove/present.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -128488,18 +155602,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}" } } ], @@ -128508,21 +155623,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": [ @@ -128541,7 +155657,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/remove/present.txt" } }, { @@ -128582,47 +155698,23 @@ ], "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": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] - } - ], - "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": [ + ], + "optional": true + }, { "alternatives": [ { @@ -128632,7 +155724,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "DELETE" } }, { @@ -128640,11 +155732,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/remove/present.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -128660,18 +155752,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}" } } ], @@ -128680,21 +155773,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": [ @@ -128713,7 +155807,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/remove/present.txt" } }, { @@ -128754,20 +155848,97 @@ ], "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": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" + } + } + ], + "optional": true + }, + { + "alternatives": [ + { + "request": [ + { + "at": "/method", + "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" } } - ] + ], + "optional": true } ], "expect": [ @@ -128776,22 +155947,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/s3-express/delete-accepted-key-plus", + "id": "operations/s3-express/delete-if-match-current", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"plus+plus.txt\"", + "purpose": "delete if match current", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/plus+plus.txt", + "if_match": "\"fixture-137dbea0e0a1\"", + "key": "object-tests/remove/conditional.txt", "op": "delete" }, "exchanges": [ @@ -128885,7 +156073,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/remove/conditional.txt" } }, { @@ -128896,6 +156084,14 @@ "value": "" } }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-137dbea0e0a1\"" + } + }, { "at": "/headers/host", "optional": false, @@ -128955,15 +156151,15 @@ "refusal": null }, { - "id": "operations/s3-express/delete-accepted-key-space", + "id": "operations/s3-express/delete-missing", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"space name.txt\"", + "purpose": "delete missing", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/space name.txt", + "key": "object-tests/remove/absent.txt", "op": "delete" }, "exchanges": [ @@ -129057,7 +156253,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/object-tests/remove/absent.txt" } }, { @@ -129127,15 +156323,16 @@ "refusal": null }, { - "id": "operations/s3-express/delete-accepted-key-non-ascii", + "id": "operations/s3-express/delete-precondition-failed", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"café/雪.txt\"", + "purpose": "delete precondition failed", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/café/雪.txt", + "if_match": "\"fixture-db71b2c0257c\"", + "key": "object-tests/remove/conditional.txt", "op": "delete" }, "exchanges": [ @@ -129229,7 +156426,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "/object-tests/remove/conditional.txt" } }, { @@ -129240,6 +156437,14 @@ "value": "" } }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" + } + }, { "at": "/headers/host", "optional": false, @@ -129270,17 +156475,18 @@ ], "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" } } ] @@ -129292,23 +156498,39 @@ "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-accepted-key-double-slash", + "id": "operations/s3-express/get-before-commit", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"double//slash.txt\"", + "purpose": "get before commit", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/double//slash.txt", - "op": "delete" + "key": "object-tests/multipart/object.bin", + "op": "get" }, "exchanges": [ { @@ -129393,7 +156615,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -129401,7 +156623,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -129442,17 +156664,96 @@ ], "allow_query": [], "response": { - "status": 204, + "status": 404, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + } + }, + "body": { + "encoding": "utf8", + "data": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" + } + }, + { + "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": "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": 404, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } }, "body": { - "encoding": "base64", - "data": "" - } + "encoding": "utf8", + "data": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" } } ] @@ -129464,23 +156765,42 @@ "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": "NoSuchKey" } } ], "refusal": null }, { - "id": "operations/s3-express/delete-accepted-key-trailing-slash", + "id": "operations/s3-express/get-committed-tail", "profile": "s3-express", "lane": "core", - "purpose": "delete accepted, with the key \"trailing-slash/\"", + "purpose": "get committed tail", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/trailing-slash/", - "op": "delete" + "key": "object-tests/multipart/object.bin", + "op": "get", + "range": { + "suffix": 10 + } }, "exchanges": [ { @@ -129565,7 +156885,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -129573,7 +156893,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/object-tests/multipart/object.bin" } }, { @@ -129584,6 +156904,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-10" + } + }, { "at": "/headers/host", "optional": false, @@ -129614,77 +156942,46 @@ ], "allow_query": [], "response": { - "status": 204, + "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": "" + "data": "Y2RlZnNlY29uZA==" } } - } - ] - } - ], - "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": [ { - "at": "/method", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/path", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "" } }, { - "at": "/query/session", + "at": "/method", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "HEAD" } }, { @@ -129695,19 +156992,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": "/headers/range", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "bytes=-10" } } ], @@ -129721,7 +157027,7 @@ "optional": false, "rule": { "is": "equal", - "value": "POST" + "value": "GET" } }, { @@ -129729,31 +157035,31 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/multipart/object.bin" } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "object-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" + "is": "equal", + "value": "" } }, { - "at": "/query/delete", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "bytes=5242876-5242885" } }, { - "at": "/headers/x-amz-checksum-crc64nvme", + "at": "/headers/if-match", "optional": false, "rule": { - "is": "matches", - "pattern": "[A-Za-z0-9+/]{11}=" + "is": "equal", + "value": "\"fixture-ec4f3b9bcac2\"" } }, { @@ -129786,18 +157092,20 @@ ], "allow_query": [], "response": { - "status": 200, + "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": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt" - }, - "framing": "chunked" + "encoding": "base64", + "data": "Y2RlZnNlY29uZA==" + } } } ] @@ -129808,17 +157116,19 @@ ], "allow_query": [], "response": { - "status": 200, + "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" - }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "encoding": "empty" } } } @@ -129835,40 +157145,62 @@ } }, { - "at": "/value/deleted", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": [ - "object-tests/batch/a.txt", - "object-tests/batch/b.txt", - "object-tests/batch/absent.txt" + "value": "\"fixture-ec4f3b9bcac2\"" + } + }, + { + "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/errors", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": [] + "value": "Y2RlZnNlY29uZA==" } } ], "refusal": null }, { - "id": "operations/s3-express/delete-slow-down", + "id": "operations/s3-express/get-empty", "profile": "s3-express", "lane": "core", - "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries", + "purpose": "get empty", "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/write/empty.bin", + "op": "get" }, "exchanges": [ { @@ -129953,7 +157285,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -129961,7 +157293,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/object-tests/write/empty.bin" } }, { @@ -130002,24 +157334,21 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 200, "headers": { - "content-type": "application/xml", + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "" + } } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -130027,7 +157356,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -130035,7 +157364,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/object-tests/write/empty.bin" } }, { @@ -130047,78 +157376,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", + "at": "/headers/range", "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" - } - } - ], - "optional": true - }, - { - "alternatives": [ - { - "request": [ - { - "at": "/method", - "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": "" + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -130146,28 +157408,188 @@ } } ], + "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": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nInvalidRangeEmpty object0" }, "framing": "chunked" } } - ], - "optional": true + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-de1997e62b9b\"" + } + }, + { + "at": "/value/size", + "optional": false, + "rule": { + "is": "equal", + "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/get-range-of-empty-object", + "profile": "s3-express", + "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": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "key": "object-tests/write/empty.bin", + "op": "get", + "range": { + "end": 1, + "start": 0 + } + }, + "exchanges": [ { "alternatives": [ { @@ -130177,7 +157599,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -130185,11 +157607,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -130205,19 +157627,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" } } ], @@ -130226,22 +157647,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": [ @@ -130252,7 +157672,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -130260,7 +157680,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/present.txt" + "value": "/object-tests/write/empty.bin" } }, { @@ -130294,80 +157714,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": 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": "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", + "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" } } ], @@ -130376,8 +157729,9 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 416, "headers": { + "content-range": "bytes */0", "content-type": "application/xml", "date": { "from": "now" @@ -130385,13 +157739,12 @@ }, "body": { "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nInvalidRangeFixture error" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -130408,7 +157761,7 @@ "optional": false, "rule": { "is": "equal", - "value": 503 + "value": 416 } }, { @@ -130416,24 +157769,24 @@ "optional": false, "rule": { "is": "equal", - "value": "SlowDown" + "value": "InvalidRange" } } ], "refusal": null }, { - "id": "operations/s3-express/delete-if-match-current", + "id": "operations/s3-express/get-if-match-current", "profile": "s3-express", "lane": "core", - "purpose": "delete if match current", + "purpose": "get if match current", "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-672b31e65569\"", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -130518,7 +157871,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -130526,7 +157879,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/conditional.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -130542,7 +157895,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-137dbea0e0a1\"" + "value": "\"fixture-672b31e65569\"" } }, { @@ -130575,49 +157928,21 @@ ], "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" } } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/delete-missing", - "profile": "s3-express", - "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": [ { @@ -130633,11 +157958,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -130645,76 +157970,19 @@ } }, { - "at": "/headers/host", + "at": "/headers/if-match", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "\"fixture-672b31e65569\"" } }, { - "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/remove/absent.txt" - } - }, - { - "at": "/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "" + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -130747,16 +158015,19 @@ ], "allow_query": [], "response": { - "status": 204, + "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": "" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -130771,22 +158042,65 @@ "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/delete-precondition-failed", + "id": "operations/s3-express/get-if-none-match-other", "profile": "s3-express", "lane": "core", - "purpose": "delete precondition failed", + "purpose": "get if none match other", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-db71b2c0257c\"", - "key": "object-tests/remove/conditional.txt", - "op": "delete" + "if_none_match": "\"fixture-db71b2c0257c\"", + "key": "object-tests/read/object.txt", + "op": "get" }, "exchanges": [ { @@ -130871,7 +158185,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "GET" } }, { @@ -130879,7 +158193,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/remove/conditional.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -130891,7 +158205,7 @@ } }, { - "at": "/headers/if-match", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", @@ -130928,18 +158242,107 @@ ], "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" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, - "framing": "chunked" + { + "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-none-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": 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" + } } } ] @@ -130951,38 +158354,65 @@ "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 }, { - "id": "operations/s3-express/get-before-commit", + "id": "operations/s3-express/get-key-with-hash", "profile": "s3-express", "lane": "core", - "purpose": "get before commit", + "purpose": "get key with hash", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", + "key": "object-tests/names/hash#tag.txt", "op": "get" }, "exchanges": [ @@ -131076,77 +158506,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.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": 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": "GET" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/names/hash#tag.txt" } }, { @@ -131157,14 +158517,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } - }, { "at": "/headers/host", "optional": false, @@ -131195,18 +158547,99 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { - "content-type": "application/xml", + "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": "\nNoSuchKeyFixture error" + "encoding": "base64", + "data": "MQ==" + } + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, - "framing": "chunked" + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/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,}" + } + }, + { + "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-84af5210cfd9\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + }, + "body": { + "encoding": "base64", + "data": "MQ==" + } } } ] @@ -131218,42 +158651,66 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-84af5210cfd9\"" } }, { - "at": "/code", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "NoSuchKey" + "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==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-committed-tail", + "id": "operations/s3-express/get-key-with-percent", "profile": "s3-express", "lane": "core", - "purpose": "get committed tail", + "purpose": "get key with percent", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/object.bin", - "op": "get", - "range": { - "suffix": 10 - } + "key": "object-tests/names/percent%20.txt", + "op": "get" }, "exchanges": [ { @@ -131346,7 +158803,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/names/percent%20.txt" } }, { @@ -131357,14 +158814,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=-10" - } - }, { "at": "/headers/host", "optional": false, @@ -131395,30 +158844,37 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 5242876-5242885/5242886", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ec4f3b9bcac2\"", + "etag": "\"fixture-a16607f00956\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "Y2RlZnNlY29uZA==" + "data": "MQ==" } } }, { "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } + }, { "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/names/percent%20.txt" } }, { @@ -131430,11 +158886,11 @@ } }, { - "at": "/method", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "HEAD" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -131460,108 +158916,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=-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": [ @@ -131571,17 +158925,17 @@ "response": { "status": 206, "headers": { - "content-length": "10", - "content-range": "bytes 5242876-5242885/5242886", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-ec4f3b9bcac2\"", + "etag": "\"fixture-a16607f00956\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "MQ==" } } } @@ -131602,7 +158956,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "value": "\"fixture-a16607f00956\"" } }, { @@ -131610,7 +158964,7 @@ "optional": false, "rule": { "is": "equal", - "value": 10 + "value": 1 } }, { @@ -131637,22 +158991,22 @@ "optional": false, "rule": { "is": "equal", - "value": "Y2RlZnNlY29uZA==" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-empty", + "id": "operations/s3-express/get-key-with-plus", "profile": "s3-express", "lane": "core", - "purpose": "get empty", + "purpose": "get key with plus", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/write/empty.bin", + "key": "object-tests/names/plus+plus.txt", "op": "get" }, "exchanges": [ @@ -131746,7 +159100,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/empty.bin" + "value": "/object-tests/names/plus+plus.txt" } }, { @@ -131793,12 +159147,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-de1997e62b9b\"", + "etag": "\"fixture-1b1e630ad692\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "" + "data": "MQ==" } } }, @@ -131817,7 +159171,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/empty.bin" + "value": "/object-tests/names/plus+plus.txt" } }, { @@ -131861,111 +159215,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/1", + "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-de1997e62b9b\"", + "etag": "\"fixture-1b1e630ad692\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "\nInvalidRangeEmpty object0" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MQ==" + } } } ] @@ -131985,7 +159253,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-de1997e62b9b\"" + "value": "\"fixture-1b1e630ad692\"" } }, { @@ -131993,7 +159261,7 @@ "optional": false, "rule": { "is": "equal", - "value": 0 + "value": 1 } }, { @@ -132020,23 +159288,22 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-if-match-current", + "id": "operations/s3-express/get-key-with-space", "profile": "s3-express", "lane": "core", - "purpose": "get if match current", + "purpose": "get key with space", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-672b31e65569\"", - "key": "object-tests/read/object.txt", + "key": "object-tests/names/space name.txt", "op": "get" }, "exchanges": [ @@ -132130,7 +159397,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/names/space name.txt" } }, { @@ -132141,14 +159408,6 @@ "value": "" } }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-672b31e65569\"" - } - }, { "at": "/headers/host", "optional": false, @@ -132185,12 +159444,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-d614f09fca44\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } }, @@ -132209,7 +159468,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/names/space name.txt" } }, { @@ -132220,14 +159479,6 @@ "value": "" } }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-672b31e65569\"" - } - }, { "at": "/headers/range", "optional": false, @@ -132268,17 +159519,17 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-29/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-d614f09fca44\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MQ==" } } } @@ -132299,7 +159550,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-d614f09fca44\"" } }, { @@ -132307,7 +159558,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -132334,23 +159585,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-if-none-match-other", + "id": "operations/s3-express/get-key-with-question", "profile": "s3-express", "lane": "core", - "purpose": "get if none match other", + "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": { - "if_none_match": "\"fixture-db71b2c0257c\"", - "key": "object-tests/read/object.txt", + "key": "a?b", "op": "get" }, "exchanges": [ @@ -132444,7 +159694,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/a?b" } }, { @@ -132456,11 +159706,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" + ] } }, { @@ -132488,23 +159742,22 @@ } } ], - "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-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": "aGVsbG8=" } } }, @@ -132523,7 +159776,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/a?b" } }, { @@ -132535,11 +159788,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" + ] } }, { @@ -132575,24 +159832,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 0-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": "aGVsbG8=" } } } @@ -132608,62 +159864,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": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-hash", + "id": "operations/s3-express/get-key-with-non-ascii", "profile": "s3-express", "lane": "core", - "purpose": "get key with hash", + "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/names/hash#tag.txt", + "key": "café/雪", "op": "get" }, "exchanges": [ @@ -132757,7 +159978,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/hash#tag.txt" + "value": "/café/雪" } }, { @@ -132768,6 +159989,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, @@ -132793,23 +160026,22 @@ } } ], - "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-84af5210cfd9\"", - "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": "MQ==" + "data": "aGVsbG8=" } } }, @@ -132828,7 +160060,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/hash#tag.txt" + "value": "/café/雪" } }, { @@ -132839,6 +160071,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, @@ -132872,24 +160116,23 @@ } } ], - "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-84af5210cfd9\"", - "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": "MQ==" + "data": "aGVsbG8=" } } } @@ -132905,62 +160148,27 @@ "value": "ok" } }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "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" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - }, { "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-percent", + "id": "operations/s3-express/get-key-with-separators", "profile": "s3-express", "lane": "core", - "purpose": "get key with percent", + "purpose": "get key separators", "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/names/percent%20.txt", + "key": "a//b/", "op": "get" }, "exchanges": [ @@ -133054,7 +160262,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/percent%20.txt" + "value": "/a//b/" } }, { @@ -133065,6 +160273,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, @@ -133090,23 +160310,22 @@ } } ], - "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-a16607f00956\"", - "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": "MQ==" + "data": "aGVsbG8=" } } }, @@ -133125,7 +160344,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/percent%20.txt" + "value": "/a//b/" } }, { @@ -133136,6 +160355,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, @@ -133169,24 +160400,23 @@ } } ], - "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-a16607f00956\"", - "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": "MQ==" + "data": "aGVsbG8=" } } } @@ -133202,62 +160432,27 @@ "value": "ok" } }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "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" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - }, { "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-plus", + "id": "operations/s3-express/get-metadata-empty-value", "profile": "s3-express", "lane": "core", - "purpose": "get key with plus", + "purpose": "get metadata empty value", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/names/plus+plus.txt", + "key": "object-tests/metadata/empty-value.txt", "op": "get" }, "exchanges": [ @@ -133351,7 +160546,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/plus+plus.txt" + "value": "/object-tests/metadata/empty-value.txt" } }, { @@ -133398,8 +160593,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-1b1e630ad692\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "etag": "\"fixture-e6096f6fd1ec\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-amz-meta-empty": "" }, "body": { "encoding": "base64", @@ -133422,7 +160618,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/plus+plus.txt" + "value": "/object-tests/metadata/empty-value.txt" } }, { @@ -133478,8 +160674,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-1b1e630ad692\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "etag": "\"fixture-e6096f6fd1ec\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-amz-meta-empty": "" }, "body": { "encoding": "base64", @@ -133504,7 +160701,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-1b1e630ad692\"" + "value": "\"fixture-e6096f6fd1ec\"" } }, { @@ -133534,6 +160731,14 @@ ] } }, + { + "at": "/value/metadata/empty", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + }, { "at": "/value/body_base64", "optional": false, @@ -133546,15 +160751,15 @@ "refusal": null }, { - "id": "operations/s3-express/get-key-with-space", + "id": "operations/s3-express/get-metadata-hyphen-name", "profile": "s3-express", "lane": "core", - "purpose": "get key with space", + "purpose": "get metadata hyphen name", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/names/space name.txt", + "key": "object-tests/metadata/hyphen-name.txt", "op": "get" }, "exchanges": [ @@ -133648,7 +160853,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/space name.txt" + "value": "/object-tests/metadata/hyphen-name.txt" } }, { @@ -133695,8 +160900,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-d614f09fca44\"", - "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-not-valid": "1" }, "body": { "encoding": "base64", @@ -133719,7 +160925,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/names/space name.txt" + "value": "/object-tests/metadata/hyphen-name.txt" } }, { @@ -133775,8 +160981,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-d614f09fca44\"", - "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-not-valid": "1" }, "body": { "encoding": "base64", @@ -133801,7 +161008,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-d614f09fca44\"" + "value": "\"fixture-adae183ea4af\"" } }, { @@ -133831,6 +161038,14 @@ ] } }, + { + "at": "/value/metadata/not-valid", + "optional": false, + "rule": { + "is": "equal", + "value": "1" + } + }, { "at": "/value/body_base64", "optional": false, @@ -133843,15 +161058,15 @@ "refusal": null }, { - "id": "operations/s3-express/get-key-with-question", + "id": "operations/s3-express/get-metadata-punctuation-name", "profile": "s3-express", "lane": "core", - "purpose": "get key question", + "purpose": "Report a metadata name that holds any character of an HTTP token.", "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/metadata/punctuation-name.txt", "op": "get" }, "exchanges": [ @@ -133945,7 +161160,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/a?b" + "value": "/object-tests/metadata/punctuation-name.txt" } }, { @@ -133956,18 +161171,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, @@ -133993,22 +161196,24 @@ } } ], - "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\"", + "etag": "\"fixture-adae183ea4af\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-request-id": "fixture-request-id" + "x-amz-meta-1a!#$%&'*+.^_`|~b": "1" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "MQ==" } } }, @@ -134027,7 +161232,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/a?b" + "value": "/object-tests/metadata/punctuation-name.txt" } }, { @@ -134038,18 +161243,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, @@ -134083,23 +161276,25 @@ } } ], - "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-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-1a!#$%&'*+.^_`|~b": "1" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "MQ==" } } } @@ -134115,27 +161310,72 @@ "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": "aGVsbG8=" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "equal", + "value": { + "1a!#$%&'*+.^_`|~b": "1" + } } } ], "refusal": null }, { - "id": "operations/s3-express/get-key-with-non-ascii", + "id": "operations/s3-express/get-metadata-non-ascii-value", "profile": "s3-express", "lane": "core", - "purpose": "get key unicode", + "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_GetObject.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "café/雪", + "key": "object-tests/metadata/non-ascii.txt", "op": "get" }, "exchanges": [ @@ -134229,7 +161469,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/café/雪" + "value": "/object-tests/metadata/non-ascii.txt" } }, { @@ -134240,18 +161480,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, @@ -134277,22 +161505,24 @@ } } ], - "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\"", + "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": "aGVsbG8=" + "data": "MQ==" } } }, @@ -134311,7 +161541,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/café/雪" + "value": "/object-tests/metadata/non-ascii.txt" } }, { @@ -134322,18 +161552,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, @@ -134367,23 +161585,25 @@ } } ], - "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-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": "aGVsbG8=" + "data": "MQ==" } } } @@ -134399,27 +161619,77 @@ "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": "aGVsbG8=" + "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-key-with-separators", + "id": "operations/s3-express/get-metadata-outside-latin-1", "profile": "s3-express", "lane": "core", - "purpose": "get key separators", + "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": [ - "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/metadata/outside-latin-1.txt", "op": "get" }, "exchanges": [ @@ -134513,7 +161783,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/a//b/" + "value": "/object-tests/metadata/outside-latin-1.txt" } }, { @@ -134525,15 +161795,83 @@ } }, { - "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/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-adae183ea4af\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", + "x-amz-meta-value": "=?UTF-8?B?6Zuq?=" + }, + "body": { + "encoding": "base64", + "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,}" } }, { @@ -134561,113 +161899,25 @@ } } ], - "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": "/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,}" - } - }, - { - "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, "headers": { - "content-range": "bytes 0-4/5", - "content-type": "application/octet-stream", + "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?B?6Zuq?=" }, "body": { "encoding": "base64", - "data": "aGVsbG8=" + "data": "MQ==" } } } @@ -134683,27 +161933,77 @@ "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": "aGVsbG8=" + "value": "MQ==" + } + }, + { + "at": "/value/metadata", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + { + "value": "雪" + }, + { + "value": "=?UTF-8?B?6Zuq?=" + } + ] } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-empty-value", + "id": "operations/s3-express/get-metadata-split-encoded-words", "profile": "s3-express", "lane": "core", - "purpose": "get metadata empty value", + "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/empty-value.txt", + "key": "object-tests/metadata/split-encoded-words.txt", "op": "get" }, "exchanges": [ @@ -134797,7 +162097,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/empty-value.txt" + "value": "/object-tests/metadata/split-encoded-words.txt" } }, { @@ -134844,9 +162144,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-e6096f6fd1ec\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-empty": "" + "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?=" }, "body": { "encoding": "base64", @@ -134869,7 +162169,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/empty-value.txt" + "value": "/object-tests/metadata/split-encoded-words.txt" } }, { @@ -134925,9 +162225,9 @@ "date": { "from": "now" }, - "etag": "\"fixture-e6096f6fd1ec\"", + "etag": "\"fixture-6c30b210f0a8\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-empty": "" + "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?=" }, "body": { "encoding": "base64", @@ -134952,7 +162252,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-e6096f6fd1ec\"" + "value": "\"fixture-6c30b210f0a8\"" } }, { @@ -134983,34 +162283,36 @@ } }, { - "at": "/value/metadata/empty", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MQ==" } }, { - "at": "/value/body_base64", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": { + "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪" + } } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-hyphen-name", + "id": "operations/s3-express/get-metadata-malformed-encoded-word", "profile": "s3-express", "lane": "core", - "purpose": "get metadata hyphen name", + "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/hyphen-name.txt", + "key": "object-tests/metadata/malformed-encoded-word.txt", "op": "get" }, "exchanges": [ @@ -135104,7 +162406,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/hyphen-name.txt" + "value": "/object-tests/metadata/malformed-encoded-word.txt" } }, { @@ -135153,7 +162455,7 @@ }, "etag": "\"fixture-adae183ea4af\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-not-valid": "1" + "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?=" }, "body": { "encoding": "base64", @@ -135176,7 +162478,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/hyphen-name.txt" + "value": "/object-tests/metadata/malformed-encoded-word.txt" } }, { @@ -135234,7 +162536,7 @@ }, "etag": "\"fixture-adae183ea4af\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-not-valid": "1" + "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?=" }, "body": { "encoding": "base64", @@ -135290,34 +162592,36 @@ } }, { - "at": "/value/metadata/not-valid", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "MQ==" } }, { - "at": "/value/body_base64", + "at": "/value/metadata", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": { + "value": "=?UTF-8?Q?caf=ZZ?=" + } } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-punctuation-name", + "id": "operations/s3-express/get-metadata-replaced", "profile": "s3-express", "lane": "core", - "purpose": "Report a metadata name that holds any character of an HTTP token.", + "purpose": "get metadata replaced", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/punctuation-name.txt", + "key": "object-tests/metadata/replaced.txt", "op": "get" }, "exchanges": [ @@ -135411,7 +162715,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/punctuation-name.txt" + "value": "/object-tests/metadata/replaced.txt" } }, { @@ -135458,13 +162762,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-adae183ea4af\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-1a!#$%&'*+.^_`|~b": "1" + "etag": "\"fixture-8ff37996a1a3\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "Mg==" } } }, @@ -135483,7 +162786,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/punctuation-name.txt" + "value": "/object-tests/metadata/replaced.txt" } }, { @@ -135539,13 +162842,12 @@ "date": { "from": "now" }, - "etag": "\"fixture-adae183ea4af\"", - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-1a!#$%&'*+.^_`|~b": "1" + "etag": "\"fixture-8ff37996a1a3\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "Mg==" } } } @@ -135566,7 +162868,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-adae183ea4af\"" + "value": "\"fixture-8ff37996a1a3\"" } }, { @@ -135601,32 +162903,22 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/value/metadata", - "optional": false, - "rule": { - "is": "equal", - "value": { - "1a!#$%&'*+.^_`|~b": "1" - } + "value": "Mg==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-non-ascii-value", + "id": "operations/s3-express/get-metadata", "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": "get metadata", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/non-ascii.txt", + "key": "object-tests/metadata/object.txt", "op": "get" }, "exchanges": [ @@ -135720,7 +163012,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/non-ascii.txt" + "value": "/object-tests/metadata/object.txt" } }, { @@ -135767,9 +163059,10 @@ "date": { "from": "now" }, - "etag": "\"fixture-adae183ea4af\"", + "etag": "\"fixture-ee657e36119d\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?=" + "x-amz-meta-name": "value", + "x-amz-meta-second": "2" }, "body": { "encoding": "base64", @@ -135792,7 +163085,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/non-ascii.txt" + "value": "/object-tests/metadata/object.txt" } }, { @@ -135848,9 +163141,10 @@ "date": { "from": "now" }, - "etag": "\"fixture-adae183ea4af\"", + "etag": "\"fixture-ee657e36119d\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?=" + "x-amz-meta-name": "value", + "x-amz-meta-second": "2" }, "body": { "encoding": "base64", @@ -135875,7 +163169,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-adae183ea4af\"" + "value": "\"fixture-ee657e36119d\"" } }, { @@ -135906,41 +163200,42 @@ } }, { - "at": "/value/body_base64", + "at": "/value/metadata/name", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "value" } }, { - "at": "/value/metadata", + "at": "/value/metadata/second", "optional": false, "rule": { - "is": "one_of", - "values": [ - { - "value": "café" - }, - { - "value": "=?UTF-8?Q?caf=C3=A9?=" - } - ] + "is": "equal", + "value": "2" + } + }, + { + "at": "/value/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "MQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-outside-latin-1", + "id": "operations/s3-express/get-metadata-ignores-unknown-headers", "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.", + "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/metadata/outside-latin-1.txt", + "key": "object", "op": "get" }, "exchanges": [ @@ -136034,7 +163329,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/outside-latin-1.txt" + "value": "/object" } }, { @@ -136045,6 +163340,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, @@ -136070,24 +163377,24 @@ } } ], - "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-adae183ea4af\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-value": "=?UTF-8?B?6Zuq?=" + "x-amz-meta-author": "Ada", + "x-amz-request-id": "fixture-request-id", + "x-unrelated": "not metadata" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "aGVsbG8=" } } }, @@ -136106,7 +163413,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/outside-latin-1.txt" + "value": "/object" } }, { @@ -136117,6 +163424,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, @@ -136150,25 +163469,25 @@ } } ], - "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-adae183ea4af\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT", - "x-amz-meta-value": "=?UTF-8?B?6Zuq?=" + "x-amz-meta-author": "Ada", + "x-amz-request-id": "fixture-request-id", + "x-unrelated": "not metadata" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "aGVsbG8=" } } } @@ -136184,77 +163503,37 @@ "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==" + "value": "aGVsbG8=" } }, { "at": "/value/metadata", "optional": false, "rule": { - "is": "one_of", - "values": [ - { - "value": "雪" - }, - { - "value": "=?UTF-8?B?6Zuq?=" - } - ] + "is": "equal", + "value": { + "author": "Ada" + } } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-split-encoded-words", + "id": "operations/s3-express/get-missing", "profile": "s3-express", "lane": "core", - "purpose": "Decode a long metadata value that a directory bucket returns as one encoded word", + "purpose": "get missing. A client reports it as not_found: the object is absent", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/split-encoded-words.txt", + "key": "object-tests/read/absent.txt", "op": "get" }, "exchanges": [ @@ -136348,7 +163627,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/split-encoded-words.txt" + "value": "/object-tests/read/absent.txt" } }, { @@ -136389,20 +163668,18 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" } }, { @@ -136420,7 +163697,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/split-encoded-words.txt" + "value": "/object-tests/read/absent.txt" } }, { @@ -136469,21 +163746,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 404, "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": "\nNoSuchKeyFixture error" + }, + "framing": "chunked" } } ] @@ -136495,75 +163769,47 @@ "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 + "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": 404 } }, { - "at": "/value/body_base64", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "NoSuchKey" } }, { - "at": "/value/metadata", + "at": "/kind", "optional": false, "rule": { "is": "equal", - "value": { - "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪" - } + "value": "not_found" } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-malformed-encoded-word", + "id": "operations/s3-express/get-not-modified", "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.", + "purpose": "get not modified", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/malformed-encoded-word.txt", + "if_none_match": "\"fixture-672b31e65569\"", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -136657,7 +163903,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/malformed-encoded-word.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -136668,6 +163914,14 @@ "value": "" } }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-672b31e65569\"" + } + }, { "at": "/headers/host", "optional": false, @@ -136698,19 +163952,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 304, "headers": { - "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?Q?caf=ZZ?=" + "etag": "\"fixture-672b31e65569\"" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } }, @@ -136729,7 +163980,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/malformed-encoded-word.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -136740,6 +163991,14 @@ "value": "" } }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-672b31e65569\"" + } + }, { "at": "/headers/range", "optional": false, @@ -136778,20 +164037,16 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 304, "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?Q?caf=ZZ?=" + "etag": "\"fixture-672b31e65569\"" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "" } } } @@ -136804,75 +164059,31 @@ "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==" + "value": "error" } }, { - "at": "/value/metadata", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": { - "value": "=?UTF-8?Q?caf=ZZ?=" - } + "value": 304 } } ], "refusal": null }, { - "id": "operations/s3-express/get-metadata-replaced", + "id": "operations/s3-express/get-precondition-failed", "profile": "s3-express", "lane": "core", - "purpose": "get metadata replaced", + "purpose": "get precondition failed", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/replaced.txt", + "if_match": "\"fixture-db71b2c0257c\"", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -136966,7 +164177,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/replaced.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -136977,6 +164188,14 @@ "value": "" } }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" + } + }, { "at": "/headers/host", "optional": false, @@ -137007,19 +164226,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" } }, { @@ -137037,7 +164255,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/replaced.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -137048,6 +164266,14 @@ "value": "" } }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-db71b2c0257c\"" + } + }, { "at": "/headers/range", "optional": false, @@ -137086,20 +164312,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" } } ] @@ -137111,66 +164335,43 @@ "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-range-inverted", "profile": "s3-express", "lane": "core", - "purpose": "get metadata", + "purpose": "get range inverted", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/object.txt", - "op": "get" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "end": 2, + "start": 6 + } }, "exchanges": [ { @@ -137263,80 +164464,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/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": 200, - "headers": { - "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": "base64", - "data": "MQ==" - } - } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/metadata/object.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -137351,8 +164479,8 @@ "at": "/headers/range", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "bytes=6-1" } }, { @@ -137385,21 +164513,18 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 0-0/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" + "etag": "\"fixture-672b31e65569\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MQ==" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -137420,7 +164545,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ee657e36119d\"" + "value": "\"fixture-672b31e65569\"" } }, { @@ -137428,7 +164553,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 30 } }, { @@ -137451,43 +164576,57 @@ } }, { - "at": "/value/metadata/name", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "value" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } - }, + } + ], + "refusal": [ { - "at": "/value/metadata/second", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "refused" } }, { - "at": "/value/body_base64", + "at": "/kind", + "optional": false, + "rule": { + "is": "matches", + "pattern": ".+" + } + }, + { + "at": "/parameter", "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "range" } } ], - "refusal": null + "decline_permitted": true }, { - "id": "operations/s3-express/get-metadata-ignores-unknown-headers", + "id": "operations/s3-express/get-range-empty", "profile": "s3-express", "lane": "core", - "purpose": "Surface user metadata; unknown headers must not become metadata.", + "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": [ - "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/read/object.txt", + "op": "get", + "range": { + "end": 5, + "start": 5 + } }, "exchanges": [ { @@ -137580,91 +164719,7 @@ "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/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": [], - "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": "/object" + "value": "/object-tests/read/object.txt" } }, { @@ -137675,24 +164730,12 @@ "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,}" + "is": "equal", + "value": "bytes=5-4" } }, { @@ -137720,25 +164763,23 @@ } } ], - "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": "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" } } } @@ -137754,38 +164795,92 @@ "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": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "refused" } }, { - "at": "/value/metadata", + "at": "/kind", + "optional": false, + "rule": { + "is": "matches", + "pattern": ".+" + } + }, + { + "at": "/parameter", "optional": false, "rule": { "is": "equal", - "value": { - "author": "Ada" - } + "value": "range" } } ], - "refusal": null + "decline_permitted": true }, { - "id": "operations/s3-express/get-missing", + "id": "operations/s3-express/get-range-not-satisfiable", "profile": "s3-express", "lane": "core", - "purpose": "get missing", + "purpose": "get range not satisfiable", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/read/absent.txt", - "op": "get" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "start": 40 + } }, "exchanges": [ { @@ -137878,7 +164973,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/absent.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -137889,6 +164984,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=40-" + } + }, { "at": "/headers/host", "optional": false, @@ -137919,7 +165022,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 416, "headers": { "content-type": "application/xml", "date": { @@ -137928,7 +165031,7 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchKeyFixture error" + "data": "\nInvalidRangeFixture error" }, "framing": "chunked" } @@ -137948,7 +165051,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/absent.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -137964,7 +165067,7 @@ "optional": false, "rule": { "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "pattern": "bytes=40-[1-9][0-9]{2,}" } }, { @@ -137997,7 +165100,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 416, "headers": { "content-type": "application/xml", "date": { @@ -138006,7 +165109,7 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchKeyFixture error" + "data": "\nInvalidRangeFixture error" }, "framing": "chunked" } @@ -138028,7 +165131,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 416 } }, { @@ -138036,24 +165139,27 @@ "optional": false, "rule": { "is": "equal", - "value": "NoSuchKey" + "value": "InvalidRange" } } ], "refusal": null }, { - "id": "operations/s3-express/get-not-modified", + "id": "operations/s3-express/get-range-past-the-end", "profile": "s3-express", "lane": "core", - "purpose": "get not modified", + "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": { - "if_none_match": "\"fixture-672b31e65569\"", "key": "object-tests/read/object.txt", - "op": "get" + "op": "get", + "range": { + "end": 64, + "start": 28 + } }, "exchanges": [ { @@ -138157,97 +165263,12 @@ "value": "" } }, - { - "at": "/headers/if-none-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": 304, - "headers": { - "date": { - "from": "now" - }, - "etag": "\"fixture-672b31e65569\"" - }, - "body": { - "encoding": "base64", - "data": "" - } - } - }, - { - "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-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,}" + "is": "equal", + "value": "bytes=28-63" } }, { @@ -138280,16 +165301,19 @@ ], "allow_query": [], "response": { - "status": 304, + "status": 206, "headers": { + "content-range": "bytes 28-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": "Y3Q=" } } } @@ -138302,32 +165326,78 @@ "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": 2 + } + }, + { + "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": "Y3Q=" + } + }, + { + "at": "/value/content_range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes 28-29/30" } } ], "refusal": null }, { - "id": "operations/s3-express/get-precondition-failed", + "id": "operations/s3-express/get-range-single-byte", "profile": "s3-express", "lane": "core", - "purpose": "get precondition failed", + "purpose": "get range single byte", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "if_match": "\"fixture-db71b2c0257c\"", "key": "object-tests/read/object.txt", - "op": "get" + "op": "get", + "range": { + "end": 1, + "start": 0 + } }, "exchanges": [ { @@ -138432,11 +165502,11 @@ } }, { - "at": "/headers/if-match", + "at": "/headers/range", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-db71b2c0257c\"" + "value": "bytes=0-0" } }, { @@ -138469,104 +165539,20 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 206, "headers": { - "content-type": "application/xml", + "content-range": "bytes 0-0/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": "\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}" - } + "encoding": "base64", + "data": "MA==" } - ], - "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" } } ] @@ -138578,33 +165564,60 @@ "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": 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-express/get-range-inverted", + "id": "operations/s3-express/get-range", "profile": "s3-express", "lane": "core", - "purpose": "get range inverted", + "purpose": "get range", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], @@ -138612,8 +165625,8 @@ "key": "object-tests/read/object.txt", "op": "get", "range": { - "end": 2, - "start": 6 + "end": 6, + "start": 2 } }, "exchanges": [ @@ -138723,7 +165736,7 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=6-1" + "value": "bytes=2-5" } }, { @@ -138756,8 +165769,9 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 206, "headers": { + "content-range": "bytes 2-5/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -138767,7 +165781,7 @@ }, "body": { "encoding": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "MjM0NQ==" } } } @@ -138796,7 +165810,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 4 } }, { @@ -138823,51 +165837,25 @@ "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": "MjM0NQ==" } } ], - "decline_permitted": true + "refusal": null }, { - "id": "operations/s3-express/get-range-not-satisfiable", + "id": "operations/s3-express/get-range-open", "profile": "s3-express", "lane": "core", - "purpose": "get range not satisfiable", + "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": { - "key": "object-tests/read/object.txt", + "key": "object", "op": "get", "range": { - "start": 40 + "start": 3 } }, "exchanges": [ @@ -138961,7 +165949,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -138977,7 +165965,19 @@ "optional": false, "rule": { "is": "equal", - "value": "bytes=40-" + "value": "bytes=3-" + } + }, + { + "at": "/headers/content-type", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -139005,23 +166005,24 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 416, + "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": "\nInvalidRangeFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "bG8=" + } } }, { @@ -139039,7 +166040,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -139050,12 +166051,24 @@ "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=40-[1-9][0-9]{2,}" + "pattern": "bytes=3-[1-9][0-9]{2,}" } }, { @@ -139083,23 +166096,24 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 416, + "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": "\nInvalidRangeFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "bG8=" + } } } ] @@ -139111,43 +166125,31 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 416 + "value": "ok" } }, { - "at": "/code", + "at": "/value/body_base64", "optional": false, "rule": { "is": "equal", - "value": "InvalidRange" + "value": "bG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-range-past-the-end", + "id": "operations/s3-express/get-replaced", "profile": "s3-express", "lane": "core", - "purpose": "get range past the end", + "purpose": "get replaced", "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/multipart/replaced.bin", + "op": "get" }, "exchanges": [ { @@ -139240,7 +166242,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/multipart/replaced.bin" } }, { @@ -139251,14 +166253,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "equal", - "value": "bytes=28-63" - } - }, { "at": "/headers/host", "optional": false, @@ -139289,172 +166283,21 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 28-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-eef5a071f9f6\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "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-672b31e65569\"" - } - }, - { - "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", - "values": [ - null, - "" - ] - } - }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "Y3Q=" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/get-range-single-byte", - "profile": "s3-express", - "lane": "core", - "purpose": "get range single byte", - "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 - } - }, - "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 + "data": "Yg==" } } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -139470,7 +166313,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/multipart/replaced.bin" } }, { @@ -139485,8 +166328,8 @@ "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "bytes=0-0" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -139521,17 +166364,17 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-0/30", + "content-range": "bytes 0-0/1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-eef5a071f9f6\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MA==" + "data": "Yg==" } } } @@ -139552,7 +166395,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-eef5a071f9f6\"" } }, { @@ -139587,27 +166430,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MA==" + "value": "Yg==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-range", + "id": "operations/s3-express/get-single-part", "profile": "s3-express", "lane": "core", - "purpose": "get range", + "purpose": "get single part", "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 - } + "key": "object-tests/multipart/single.bin", + "op": "get" }, "exchanges": [ { @@ -139700,7 +166539,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/multipart/single.bin" } }, { @@ -139712,11 +166551,82 @@ } }, { - "at": "/headers/range", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "bytes=2-5" + "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-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,}" } }, { @@ -139751,17 +166661,17 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 2-5/30", + "content-range": "bytes 0-3/4", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", + "etag": "\"fixture-0841fa5d9c5c\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "MjM0NQ==" + "data": "b25seQ==" } } } @@ -139782,7 +166692,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-0841fa5d9c5c\"" } }, { @@ -139817,25 +166727,25 @@ "optional": false, "rule": { "is": "equal", - "value": "MjM0NQ==" + "value": "b25seQ==" } } ], "refusal": null }, { - "id": "operations/s3-express/get-range-open", + "id": "operations/s3-express/get-suffix-longer-than-object", "profile": "s3-express", "lane": "core", - "purpose": "get range open", + "purpose": "get suffix longer than object", "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", + "key": "object-tests/read/object.txt", "op": "get", "range": { - "start": 3 + "suffix": 100 } }, "exchanges": [ @@ -139929,7 +166839,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/read/object.txt" } }, { @@ -139945,19 +166855,7 @@ "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" - ] + "value": "bytes=-100" } }, { @@ -139985,42 +166883,35 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 3-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": "bG8=" + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, { "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" - } - }, { "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/read/object.txt" } }, { @@ -140032,23 +166923,11 @@ } }, { - "at": "/headers/content-type", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] - } - }, - { - "at": "/headers/range", + "at": "/method", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=3-[1-9][0-9]{2,}" + "is": "equal", + "value": "HEAD" } }, { @@ -140074,25 +166953,128 @@ "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" + } } ], - "allow_headers": [], + "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": [ + "content-type" + ], "allow_query": [], "response": { "status": 206, "headers": { - "content-range": "bytes 3-4/5", - "content-type": "application/octet-stream", + "content-length": "30", + "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": "bG8=" + "encoding": "empty" } } } @@ -140108,28 +167090,66 @@ "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": "bG8=" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/get-replaced", + "id": "operations/s3-express/get-suffix", "profile": "s3-express", "lane": "core", - "purpose": "get replaced", + "purpose": "get suffix", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/replaced.bin", - "op": "get" + "key": "object-tests/read/object.txt", + "op": "get", + "range": { + "suffix": 6 + } }, "exchanges": [ { @@ -140222,7 +167242,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" + "value": "/object-tests/read/object.txt" } }, { @@ -140233,6 +167253,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "equal", + "value": "bytes=-6" + } + }, { "at": "/headers/host", "optional": false, @@ -140263,37 +167291,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-eef5a071f9f6\"", + "etag": "\"fixture-672b31e65569\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { "encoding": "base64", - "data": "Yg==" + "data": "b2JqZWN0" } } }, { "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" - } - }, { "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/replaced.bin" + "value": "/object-tests/read/object.txt" } }, { @@ -140305,11 +167326,11 @@ } }, { - "at": "/headers/range", + "at": "/method", "optional": false, "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" + "is": "equal", + "value": "HEAD" } }, { @@ -140335,6 +167356,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": [ @@ -140344,17 +167467,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-eef5a071f9f6\"", + "etag": "\"fixture-672b31e65569\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "Yg==" + "encoding": "empty" } } } @@ -140375,7 +167498,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-eef5a071f9f6\"" + "value": "\"fixture-672b31e65569\"" } }, { @@ -140383,7 +167506,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 6 } }, { @@ -140410,22 +167533,22 @@ "optional": false, "rule": { "is": "equal", - "value": "Yg==" + "value": "b2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/get-single-part", + "id": "operations/s3-express/get-whole", "profile": "s3-express", "lane": "core", - "purpose": "get single part", + "purpose": "get whole", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/multipart/single.bin", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -140519,7 +167642,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/object-tests/read/object.txt" } }, { @@ -140566,12 +167689,12 @@ "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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } }, @@ -140590,7 +167713,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/single.bin" + "value": "/object-tests/read/object.txt" } }, { @@ -140641,17 +167764,17 @@ "response": { "status": 206, "headers": { - "content-range": "bytes 0-3/4", + "content-range": "bytes 0-29/30", "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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -140672,7 +167795,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-0841fa5d9c5c\"" + "value": "\"fixture-672b31e65569\"" } }, { @@ -140680,7 +167803,7 @@ "optional": false, "rule": { "is": "equal", - "value": 4 + "value": 30 } }, { @@ -140707,26 +167830,24 @@ "optional": false, "rule": { "is": "equal", - "value": "b25seQ==" + "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } ], "refusal": null }, { - "id": "operations/s3-express/get-suffix-longer-than-object", + "id": "operations/s3-express/get-session-expired", "profile": "s3-express", "lane": "core", - "purpose": "get suffix longer than object", + "purpose": "Renew a session whose Expiration has passed before using it: ask CreateSession again, and sign the GET with the second session", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], + "origin": "constructed", "call": { "key": "object-tests/read/object.txt", - "op": "get", - "range": { - "suffix": 100 - } + "op": "get" }, "exchanges": [ { @@ -140796,7 +167917,7 @@ }, "body_time": { "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "offset_seconds": -60 } } } @@ -140819,11 +167940,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -140831,11 +167952,76 @@ } }, { - "at": "/headers/range", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "bytes=-100" + "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": "" } }, { @@ -140851,7 +168037,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "fixture-session-token-2" } }, { @@ -140859,7 +168045,7 @@ "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}" } } ], @@ -140868,9 +168054,8 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { "from": "now" @@ -140886,6 +168071,14 @@ }, { "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } + }, { "at": "/path", "optional": false, @@ -140903,11 +168096,11 @@ } }, { - "at": "/method", + "at": "/headers/range", "optional": false, "rule": { - "is": "equal", - "value": "HEAD" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -140921,120 +168114,18 @@ { "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=-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" - } - } - } - ] + "rule": { + "is": "equal", + "value": "fixture-session-token-2" + } + }, + { + "at": "/headers/authorization", + "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}" + } } ], "allow_headers": [ @@ -141044,7 +168135,6 @@ "response": { "status": 206, "headers": { - "content-length": "30", "content-range": "bytes 0-29/30", "content-type": "binary/octet-stream", "date": { @@ -141054,7 +168144,8 @@ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "empty" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" } } } @@ -141117,19 +168208,16 @@ "refusal": null }, { - "id": "operations/s3-express/get-suffix", + "id": "operations/s3-express/get-xml-looking", "profile": "s3-express", "lane": "core", - "purpose": "get suffix", + "purpose": "get xml looking", "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/read/object.txt", - "op": "get", - "range": { - "suffix": 6 - } + "key": "object", + "op": "get" }, "exchanges": [ { @@ -141222,7 +168310,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -141234,11 +168322,15 @@ } }, { - "at": "/headers/range", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "bytes=-6" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -141266,35 +168358,41 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 24-29/30", - "content-type": "binary/octet-stream", + "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": "b2JqZWN0" + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } }, { "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } + }, { "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -141306,11 +168404,23 @@ } }, { - "at": "/method", + "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": "HEAD" + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -141336,128 +168446,25 @@ "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_headers": [], "allow_query": [], "response": { "status": 206, "headers": { - "content-length": "6", - "content-range": "bytes 24-29/30", - "content-type": "binary/octet-stream", + "content-range": "bytes 0-32/33", + "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": "empty" + "encoding": "base64", + "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } } @@ -141473,62 +168480,28 @@ "value": "ok" } }, - { - "at": "/value/etag", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-672b31e65569\"" - } - }, - { - "at": "/value/size", - "optional": false, - "rule": { - "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" + "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" } } ], "refusal": null }, { - "id": "operations/s3-express/get-whole", + "id": "operations/s3-express/get-noise-tolerance", "profile": "s3-express", "lane": "core", - "purpose": "get whole", + "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/read/object.txt", + "key": "object", "op": "get" }, "exchanges": [ @@ -141622,7 +168595,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -141633,6 +168606,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, @@ -141658,23 +168643,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-672b31e65569\"", - "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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "aGVsbG8=" } } }, @@ -141693,7 +168678,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object" } }, { @@ -141704,6 +168689,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, @@ -141737,24 +168734,24 @@ } } ], - "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 0-4/5", + "content-type": "application/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", - "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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "aGVsbG8=" } } } @@ -141770,61 +168767,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": "aGVsbG8=" } } ], "refusal": null }, { - "id": "operations/s3-express/get-session-expired", + "id": "operations/s3-express/get-body-cut-short", "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": "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": "constructed", + "origin": "transient", "call": { "key": "object-tests/read/object.txt", "op": "get" @@ -141897,7 +168860,7 @@ }, "body_time": { "text": "SESSION_EXPIRATION", - "offset_seconds": -60 + "offset_seconds": 300 } } } @@ -141920,11 +168883,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -141939,19 +168902,100 @@ "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}" + } + } + ], + "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" + }, + "truncate_body_after": 15 + } + }, + { + "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": "absent" + "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}" } } ], @@ -141960,18 +169004,21 @@ ], "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-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" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "truncate_body_after": 15 } } ] @@ -142017,7 +169064,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token-2" + "value": "fixture-session-token" } }, { @@ -142025,11 +169072,12 @@ "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}" } } ], "allow_headers": [ + "content-type", "content-type" ], "allow_query": [], @@ -142096,7 +169144,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token-2" + "value": "fixture-session-token" } }, { @@ -142104,11 +169152,12 @@ "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}" } } ], "allow_headers": [ + "content-type", "content-type" ], "allow_query": [], @@ -142128,57 +169177,88 @@ "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": "equal", + "value": "bytes=15-" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-672b31e65569\"" + } + } + ], + "allow_headers": [], + "allow_query": [], + "response": { + "status": 206, + "headers": { + "content-range": "bytes 15-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": "Y3QtdGVzdHMtb2JqZWN0" + } + } } - ] + ], + "optional": true } ], "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, - "" + "error", + "ok" ] } }, { "at": "/value/body_base64", - "optional": false, + "optional": true, "rule": { "is": "equal", "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" @@ -142188,15 +169268,16 @@ "refusal": null }, { - "id": "operations/s3-express/get-xml-looking", + "id": "operations/s3-express/get-slow-down", "profile": "s3-express", "lane": "core", - "purpose": "get xml looking", + "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" ], + "origin": "transient", "call": { - "key": "object", + "key": "object-tests/read/object.txt", "op": "get" }, "exchanges": [ @@ -142290,7 +169371,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/read/object.txt" } }, { @@ -142301,18 +169382,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, @@ -142338,23 +169407,23 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 503, "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" + } }, "body": { - "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -142372,7 +169441,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/read/object.txt" } }, { @@ -142383,18 +169452,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, @@ -142428,63 +169485,27 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 503, "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" + } }, "body": { - "encoding": "base64", - "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "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-express/get-noise-tolerance", - "profile": "s3-express", - "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": [ { @@ -142502,11 +169523,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -142522,18 +169543,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}" } } ], @@ -142542,24 +169564,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": [ { @@ -142575,7 +169593,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/read/object.txt" } }, { @@ -142587,15 +169605,11 @@ } }, { - "at": "/headers/content-type", - "optional": true, + "at": "/headers/range", + "optional": false, "rule": { - "is": "one_of", - "values": [ - "application/xml", - "application/octet-stream", - "binary/octet-stream" - ] + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" } }, { @@ -142623,26 +169637,30 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 200, + "status": 503, "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": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -142658,7 +169676,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/read/object.txt" } }, { @@ -142670,15 +169688,73 @@ } }, { - "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/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" + } + }, + { + "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": "" } }, { @@ -142714,65 +169790,28 @@ } } ], - "allow_headers": [], + "allow_headers": [ + "content-type" + ], "allow_query": [], "response": { - "status": 206, + "status": 503, "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": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } + ], + "optional": true }, - { - "at": "/value/body_base64", - "optional": false, - "rule": { - "is": "equal", - "value": "aGVsbG8=" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/get-body-cut-short", - "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", - "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": [ { @@ -142790,11 +169829,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/read/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", @@ -142809,19 +169848,98 @@ "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}" + } + } + ], + "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" + } + }, + { + "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": "absent" + "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}" } } ], @@ -142830,21 +169948,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": [ @@ -142904,20 +170023,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": "\nSlowDownPlease reduce your request rate.fixture" }, - "truncate_body_after": 15 + "framing": "chunked" } }, { @@ -142984,24 +170101,22 @@ ], "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": "\nSlowDownPlease reduce your request rate.fixture" }, - "truncate_body_after": 15 + "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -143057,24 +170172,22 @@ } ], "allow_headers": [ - "content-type", "content-type" ], "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": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -143137,87 +170250,22 @@ } ], "allow_headers": [ - "content-type", "content-type" ], "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" - } - } - }, - { - "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=15-" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-672b31e65569\"" } - } - ], - "allow_headers": [], - "allow_query": [], - "response": { - "status": 206, - "headers": { - "content-range": "bytes 15-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": "Y3QtdGVzdHMtb2JqZWN0" - } + "encoding": "utf8", + "data": "\nSlowDownPlease reduce your request rate.fixture" + }, + "framing": "chunked" } } ], @@ -143229,34 +170277,39 @@ "at": "/outcome", "optional": false, "rule": { - "is": "one_of", - "values": [ - "error", - "ok" - ] + "is": "equal", + "value": "error" } }, { - "at": "/value/body_base64", - "optional": true, + "at": "/status", + "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": 503 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "SlowDown" } } ], "refusal": null }, { - "id": "operations/s3-express/get-slow-down", + "id": "operations/s3-express/get-if-unmodified-since-past", "profile": "s3-express", "lane": "core", - "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries", + "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "origin": "transient", "call": { + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", "key": "object-tests/read/object.txt", "op": "get" }, @@ -143385,6 +170438,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": [ @@ -143392,7 +170453,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -143401,7 +170462,7 @@ }, "body": { "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" + "data": "\nPreconditionFailedFixture error" }, "framing": "chunked" } @@ -143463,6 +170524,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": [ @@ -143470,7 +170539,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 412, "headers": { "content-type": "application/xml", "date": { @@ -143479,13 +170548,56 @@ }, "body": { "encoding": "utf8", - "data": "\nSlowDownPlease reduce your request rate.fixture" + "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-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": [ { @@ -143503,11 +170615,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -143522,98 +170634,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": "\nSlowDownPlease 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": "/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" + "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" } } ], @@ -143622,22 +170655,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": [ @@ -143690,6 +170722,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": [ @@ -143697,18 +170737,19 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } }, { @@ -143768,6 +170809,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": [ @@ -143775,23 +170824,94 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 206, "headers": { - "content-type": "application/xml", + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "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-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-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": [ { @@ -143809,11 +170929,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -143829,19 +170949,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" } } ], @@ -143850,20 +170969,24 @@ ], "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 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -143890,14 +171013,6 @@ "value": "" } }, - { - "at": "/headers/range", - "optional": false, - "rule": { - "is": "matches", - "pattern": "bytes=0-[1-9][0-9]{2,}" - } - }, { "at": "/headers/host", "optional": false, @@ -143921,6 +171036,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": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [ @@ -143928,25 +171051,21 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -143973,6 +171092,14 @@ "value": "" } }, + { + "at": "/headers/range", + "optional": false, + "rule": { + "is": "matches", + "pattern": "bytes=0-[1-9][0-9]{2,}" + } + }, { "at": "/headers/host", "optional": false, @@ -143996,6 +171123,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": "Sat, 01 Jan 2000 00:00:00 GMT" + } } ], "allow_headers": [ @@ -144003,20 +171138,96 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 206, "headers": { - "content-type": "application/xml", + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } - }, + } + ] + } + ], + "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-if-modified-since-unchanged", + "profile": "s3-express", + "lane": "core", + "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": { + "if_modified_since": "Mon, 01 Jan 2024 00:00:00 GMT", + "key": "object-tests/read/object.txt", + "op": "get" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -144032,25 +171243,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, @@ -144060,19 +171263,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" } } ], @@ -144081,22 +171283,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": [ @@ -144149,6 +171350,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": [ @@ -144156,18 +171365,17 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "empty" + } } }, { @@ -144227,6 +171435,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": [ @@ -144234,22 +171450,20 @@ ], "allow_query": [], "response": { - "status": 503, + "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": "\nSlowDownPlease reduce your request rate.fixture" - }, - "framing": "chunked" + "encoding": "empty" + } } } - ], - "optional": true + ] } ], "expect": [ @@ -144266,30 +171480,22 @@ "optional": false, "rule": { "is": "equal", - "value": 503 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "SlowDown" + "value": 304 } } ], "refusal": null }, { - "id": "operations/s3-express/get-if-unmodified-since-past", + "id": "operations/s3-express/get-if-modified-since-invalid", "profile": "s3-express", "lane": "core", - "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since", + "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_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "if_modified_since": "not a date", "key": "object-tests/read/object.txt", "op": "get" }, @@ -144420,11 +171626,11 @@ } }, { - "at": "/headers/if-unmodified-since", + "at": "/headers/if-modified-since", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "not a date" } } ], @@ -144433,18 +171639,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" + } } }, { @@ -144506,11 +171713,11 @@ } }, { - "at": "/headers/if-unmodified-since", + "at": "/headers/if-modified-since", "optional": false, "rule": { "is": "equal", - "value": "Sat, 01 Jan 2000 00:00:00 GMT" + "value": "not a date" } } ], @@ -144519,18 +171726,20 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 206, "headers": { - "content-type": "application/xml", + "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": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + } } } ] @@ -144542,38 +171751,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/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-if-modified-since-future", + "id": "operations/s3-express/get-content-properties", "profile": "s3-express", "lane": "core", - "purpose": "Read an object when If-Modified-Since names a future date", + "purpose": "Return the stored content properties from a GET", "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" }, @@ -144637,11 +171898,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", @@ -144702,14 +171966,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": [ @@ -144719,7 +171975,10 @@ "response": { "status": 200, "headers": { - "content-type": "binary/octet-stream", + "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" }, @@ -144789,14 +172048,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": [ @@ -144806,8 +172057,11 @@ "response": { "status": 206, "headers": { + "cache-control": "max-age=3600", + "content-disposition": "attachment; filename=\"report.txt\"", + "content-language": "nl-NL", "content-range": "bytes 0-29/30", - "content-type": "binary/octet-stream", + "content-type": "text/plain; charset=utf-8", "date": { "from": "now" }, @@ -144848,14 +172102,6 @@ "value": 30 } }, - { - "at": "/value/content_type", - "optional": false, - "rule": { - "is": "equal", - "value": "binary/octet-stream" - } - }, { "at": "/value/version", "optional": true, @@ -144874,22 +172120,53 @@ "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-if-modified-since-past", + "id": "operations/s3-express/head-committed", "profile": "s3-express", "lane": "core", - "purpose": "Read an object modified since a past date", + "purpose": "head committed", "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" + "key": "object-tests/multipart/object.bin", + "op": "head" }, "exchanges": [ { @@ -144974,7 +172251,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -144982,7 +172259,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/multipart/object.bin" } }, { @@ -145016,14 +172293,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": [ @@ -145033,19 +172302,85 @@ "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": "" } } - }, + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-ec4f3b9bcac2\"" + } + }, + { + "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-express/head-metadata", + "profile": "s3-express", + "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": [ { "request": [ { @@ -145061,11 +172396,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -145073,11 +172408,76 @@ } }, { - "at": "/headers/range", + "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": "bytes=0-[1-9][0-9]{2,}" + "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", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/metadata/object.txt" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -145103,14 +172503,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": [ @@ -145118,19 +172510,21 @@ ], "allow_query": [], "response": { - "status": 206, + "status": 200, "headers": { - "content-range": "bytes 0-29/30", + "content-length": "1", "content-type": "binary/octet-stream", "date": { "from": "now" }, - "etag": "\"fixture-672b31e65569\"", - "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": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -145151,7 +172545,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "\"fixture-ee657e36119d\"" } }, { @@ -145159,7 +172553,7 @@ "optional": false, "rule": { "is": "equal", - "value": 30 + "value": 1 } }, { @@ -145182,27 +172576,35 @@ } }, { - "at": "/value/body_base64", + "at": "/value/metadata/name", "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "value": "value" + } + }, + { + "at": "/value/metadata/second", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } } ], "refusal": null }, { - "id": "operations/s3-express/get-content-properties", + "id": "operations/s3-express/head-missing", "profile": "s3-express", "lane": "core", - "purpose": "Return the stored content properties from a GET", + "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" + "key": "object-tests/read/absent.txt", + "op": "head" }, "exchanges": [ { @@ -145264,14 +172666,11 @@ "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" + "content-type": "application/xml" }, "body": { "encoding": "utf8", - "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, "body_time": { "text": "SESSION_EXPIRATION", @@ -145290,7 +172689,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "HEAD" } }, { @@ -145298,7 +172697,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/read/absent.txt" } }, { @@ -145339,104 +172738,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 404, "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" - } - } - }, - { - "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": { - "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": "base64", - "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0" + "data": "" } } } @@ -145449,89 +172760,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": 404 } }, { - "at": "/value/size", + "at": "/kind", "optional": false, - "rule": { - "is": "equal", - "value": 30 - } - }, - { - "at": "/value/version", - "optional": true, "rule": { "is": "one_of", "values": [ - null, - "" + "not_found", + "missing" ] } - }, - { - "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/head-committed", + "id": "operations/s3-express/head", "profile": "s3-express", "lane": "core", - "purpose": "head committed", + "purpose": "head", "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": "head" }, "exchanges": [ @@ -145625,7 +172888,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/multipart/object.bin" + "value": "/object-tests/read/object.txt" } }, { @@ -145668,12 +172931,12 @@ "response": { "status": 200, "headers": { - "content-length": "5242886", + "content-length": "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": { @@ -145699,7 +172962,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ec4f3b9bcac2\"" + "value": "\"fixture-672b31e65569\"" } }, { @@ -145707,7 +172970,7 @@ "optional": false, "rule": { "is": "equal", - "value": 5242886 + "value": 30 } }, { @@ -145733,15 +172996,15 @@ "refusal": null }, { - "id": "operations/s3-express/head-metadata", + "id": "operations/s3-express/head-content-properties", "profile": "s3-express", "lane": "core", - "purpose": "head metadata", + "purpose": "Return the stored content properties from a HEAD", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/metadata/object.txt", + "key": "object-tests/read/object.txt", "op": "head" }, "exchanges": [ @@ -145804,11 +173067,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", @@ -145835,7 +173101,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/metadata/object.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -145878,15 +173144,16 @@ "response": { "status": 200, "headers": { - "content-length": "1", - "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" }, - "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", @@ -145911,7 +173178,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ee657e36119d\"" + "value": "\"fixture-672b31e65569\"" } }, { @@ -145919,15 +173186,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 - } - }, - { - "at": "/value/content_type", - "optional": false, - "rule": { - "is": "equal", - "value": "binary/octet-stream" + "value": 30 } }, { @@ -145942,34 +173201,51 @@ } }, { - "at": "/value/metadata/name", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "value" + "value": "text/plain; charset=utf-8" } }, { - "at": "/value/metadata/second", + "at": "/value/content_language", "optional": false, "rule": { "is": "equal", - "value": "2" + "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/head-missing", + "id": "operations/s3-express/head-if-unmodified-since-past", "profile": "s3-express", "lane": "core", - "purpose": "head missing", + "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": { - "key": "object-tests/read/absent.txt", + "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT", + "key": "object-tests/read/object.txt", "op": "head" }, "exchanges": [ @@ -146063,7 +173339,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/absent.txt" + "value": "/object-tests/read/object.txt" } }, { @@ -146097,6 +173373,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": [ @@ -146104,16 +173388,14 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 412, "headers": { - "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "empty" } } } @@ -146134,22 +173416,22 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 } } ], "refusal": null }, { - "id": "operations/s3-express/head", + "id": "operations/s3-express/head-key-question", "profile": "s3-express", "lane": "core", - "purpose": "head", + "purpose": "head, with the key \"question?mark.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/read/object.txt", + "key": "object-tests/keys/question?mark.txt", "op": "head" }, "exchanges": [ @@ -146243,7 +173525,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/keys/question?mark.txt" } }, { @@ -146351,15 +173633,15 @@ "refusal": null }, { - "id": "operations/s3-express/head-content-properties", + "id": "operations/s3-express/head-key-hash", "profile": "s3-express", "lane": "core", - "purpose": "Return the stored content properties from a HEAD", + "purpose": "head, with the key \"hash#tag.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/read/object.txt", + "key": "object-tests/keys/hash#tag.txt", "op": "head" }, "exchanges": [ @@ -146422,14 +173704,11 @@ "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" + "content-type": "application/xml" }, "body": { "encoding": "utf8", - "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, "body_time": { "text": "SESSION_EXPIRATION", @@ -146456,7 +173735,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/keys/hash#tag.txt" } }, { @@ -146499,11 +173778,8 @@ "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": "binary/octet-stream", "date": { "from": "now" }, @@ -146544,6 +173820,14 @@ "value": 30 } }, + { + "at": "/value/content_type", + "optional": false, + "rule": { + "is": "equal", + "value": "binary/octet-stream" + } + }, { "at": "/value/version", "optional": true, @@ -146554,53 +173838,230 @@ "" ] } + } + ], + "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": [ + { + "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/content_type", + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/keys/percent%20.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": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "text/plain; charset=utf-8" + "value": "ok" } }, { - "at": "/value/content_language", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "nl-NL" + "value": "\"fixture-672b31e65569\"" } }, { - "at": "/value/content_disposition", + "at": "/value/size", "optional": false, "rule": { "is": "equal", - "value": "attachment; filename=\"report.txt\"" + "value": 30 } }, { - "at": "/value/cache_control", + "at": "/value/content_type", "optional": false, "rule": { "is": "equal", - "value": "max-age=3600" + "value": "binary/octet-stream" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/head-if-unmodified-since-past", + "id": "operations/s3-express/head-key-plus", "profile": "s3-express", "lane": "core", - "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since", + "purpose": "head, with the key \"plus+plus.txt\"", "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", + "key": "object-tests/keys/plus+plus.txt", "op": "head" }, "exchanges": [ @@ -146694,7 +174155,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/read/object.txt" + "value": "/object-tests/keys/plus+plus.txt" } }, { @@ -146728,14 +174189,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": [ @@ -146743,14 +174196,19 @@ ], "allow_query": [], "response": { - "status": 412, + "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": "empty" + "encoding": "base64", + "data": "" } } } @@ -146763,30 +174221,57 @@ "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": "/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-question", + "id": "operations/s3-express/head-key-space", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"question?mark.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/question?mark.txt", + "key": "object-tests/keys/space name.txt", "op": "head" }, "exchanges": [ @@ -146880,7 +174365,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/keys/space name.txt" } }, { @@ -146988,15 +174473,15 @@ "refusal": null }, { - "id": "operations/s3-express/head-key-hash", + "id": "operations/s3-express/head-key-non-ascii", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"hash#tag.txt\"", + "purpose": "head, with the key \"café/雪.txt\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/hash#tag.txt", + "key": "object-tests/keys/café/雪.txt", "op": "head" }, "exchanges": [ @@ -147090,7 +174575,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/keys/café/雪.txt" } }, { @@ -147198,15 +174683,15 @@ "refusal": null }, { - "id": "operations/s3-express/head-key-percent", + "id": "operations/s3-express/head-key-double-slash", "profile": "s3-express", "lane": "core", - "purpose": "head, 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", + "key": "object-tests/keys/double//slash.txt", "op": "head" }, "exchanges": [ @@ -147300,7 +174785,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/keys/double//slash.txt" } }, { @@ -147408,15 +174893,15 @@ "refusal": null }, { - "id": "operations/s3-express/head-key-plus", + "id": "operations/s3-express/head-key-trailing-slash", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"plus+plus.txt\"", + "purpose": "head, with the key \"trailing-slash/\"", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "key": "object-tests/keys/plus+plus.txt", + "key": "object-tests/keys/trailing-slash/", "op": "head" }, "exchanges": [ @@ -147510,7 +174995,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/keys/trailing-slash/" } }, { @@ -147618,16 +175103,17 @@ "refusal": null }, { - "id": "operations/s3-express/head-key-space", + "id": "operations/s3-express/list-bad-marker", "profile": "s3-express", "lane": "core", - "purpose": "head, with the key \"space name.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/space name.txt", - "op": "head" + "continuation_token": "fixture-marker+/ce6f21ae951d=", + "op": "list_page", + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -147712,7 +175198,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -147720,7 +175206,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/" } }, { @@ -147731,6 +175217,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/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/ce6f21ae951d=" + } + }, { "at": "/headers/host", "optional": false, @@ -147761,20 +175271,120 @@ ], "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": "\nInvalidArgumentFixture 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" + } + }, + { + "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": "/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": 400, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-token01516607970001a08269f32e0c1ad876480f0641WZg5FiuD0" + }, + "framing": "chunked" } } ] @@ -147786,58 +175396,40 @@ "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": 30 + "value": 400 } }, { - "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": "InvalidArgument" } } ], "refusal": null }, { - "id": "operations/s3-express/head-key-non-ascii", + "id": "operations/s3-express/list-delimited", "profile": "s3-express", "lane": "core", - "purpose": "head, 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": "head" + "delimiter": "/", + "op": "list_page", + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -147922,7 +175514,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -147930,7 +175522,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "/" } }, { @@ -147941,6 +175533,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, @@ -147973,17 +175589,117 @@ "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-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT/object-tests/board/nested/" + } + } + }, + { + "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/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}" + } + }, + { + "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/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/" } } } @@ -148000,31 +175716,99 @@ } }, { - "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/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", @@ -148033,21 +175817,64 @@ "" ] } + }, + { + "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/head-key-double-slash", + "id": "operations/s3-express/list-empty", "profile": "s3-express", "lane": "core", - "purpose": "head, 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": "head" + "op": "list_page", + "prefix": "object-tests/nothing/" }, "exchanges": [ { @@ -148132,7 +175959,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -148140,7 +175967,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "value": "/" } }, { @@ -148151,6 +175978,22 @@ "value": "" } }, + { + "at": "/query/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/nothing/" + } + }, { "at": "/headers/host", "optional": false, @@ -148183,17 +176026,109 @@ "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/nothing/01000false" + } + } + }, + { + "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/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": [ + "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/nothing/01000urlfalse" } } } @@ -148210,54 +176145,43 @@ } }, { - "at": "/value/etag", + "at": "/value/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-672b31e65569\"" + "value": "" } }, { - "at": "/value/size", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": 30 + "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 } } ], "refusal": null }, { - "id": "operations/s3-express/head-key-trailing-slash", + "id": "operations/s3-express/list-all-empty", "profile": "s3-express", "lane": "core", - "purpose": "head, 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": "head" + "op": "list", + "prefix": "" }, "exchanges": [ { @@ -148277,17 +176201,118 @@ "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": "/" + } + }, + { + "at": "/body_base64", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + }, + { + "at": "/query/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { - "at": "/query/session", - "optional": false, + "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, @@ -148297,44 +176322,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}" } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "response": { "status": 200, "headers": { - "content-type": "application/xml" + "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": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" - }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg==" } } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -148342,7 +176364,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -148350,7 +176372,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/" } }, { @@ -148361,6 +176383,42 @@ "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" + } + }, { "at": "/headers/host", "optional": false, @@ -148386,24 +176444,22 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "allow_query": [], "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" + "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+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+" } } } @@ -148420,55 +176476,27 @@ } }, { - "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", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "binary/octet-stream" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": [] } } ], "refusal": null }, { - "id": "operations/s3-express/list-bad-marker", + "id": "operations/s3-express/list-xml-escaped", "profile": "s3-express", "lane": "core", - "purpose": "Report S3's 400 InvalidArgument for a continuation token it did not issue", + "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": { - "continuation_token": "fixture-marker+/ce6f21ae951d=", - "op": "list_page", - "prefix": "object-tests/board/" + "op": "list", + "prefix": "" }, "exchanges": [ { @@ -148582,18 +176610,22 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "" } }, { - "at": "/query/continuation-token", - "optional": false, + "at": "/headers/content-type", + "optional": true, "rule": { - "is": "equal", - "value": "fixture-marker+/ce6f21ae951d=" + "is": "one_of", + "values": [ + "application/xml", + "application/octet-stream", + "binary/octet-stream" + ] } }, { @@ -148621,23 +176653,23 @@ } } ], - "allow_headers": [ - "content-type" - ], + "allow_headers": [], "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" }, "body": { - "encoding": "utf8", - "data": "\nInvalidArgumentFixture error" - }, - "framing": "chunked" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxFVGFnPiZxdW90O2ZpeHR1cmUmcXVvdDs8L0VUYWc+PEtleT5hJmFtcDtiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyZsdDtkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4=" + } } }, { @@ -148676,18 +176708,30 @@ }, { "at": "/query/prefix", - "optional": false, + "optional": true, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "" } }, { - "at": "/query/continuation-token", + "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": "fixture-marker+/ce6f21ae951d=" + "value": "url" } }, { @@ -148713,33 +176757,25 @@ "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_headers": [], "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" }, "body": { - "encoding": "utf8", - "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-token01516607970001a08269f32e0c1ad876480f0641WZg5FiuD0" - }, - "framing": "chunked" + "encoding": "base64", + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48S2V5PmElMjZiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyUzQ2Q8L0tleT48TGFzdE1vZGlmaWVkPjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWjwvTGFzdE1vZGlmaWVkPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg==" + } } } ] @@ -148751,40 +176787,34 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 400 + "value": "ok" } }, { - "at": "/code", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": "InvalidArgument" + "value": [ + "a&b", + "c\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/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" } } }, @@ -148995,15 +177017,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/delimiter", - "optional": false, - "rule": { - "is": "equal", - "value": "/" + "value": "object-tests/names/" } }, { @@ -149054,7 +177068,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/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" } } } @@ -149075,7 +177089,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "object-tests/names/back\\slash.txt" } }, { @@ -149083,7 +177097,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 1 } }, { @@ -149091,7 +177105,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-7d1b875717fa\"" + "value": "\"fixture-36534817118e\"" } }, { @@ -149132,7 +177146,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "value": "object-tests/names/q?mark.txt" } }, { @@ -149140,7 +177154,7 @@ "optional": false, "rule": { "is": "equal", - "value": 8 + "value": 1 } }, { @@ -149148,7 +177162,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ca40e4206a8d\"" + "value": "\"fixture-10822d0eb6a7\"" } }, { @@ -149185,11 +177199,459 @@ } }, { - "at": "/value/prefixes/0", + "at": "/value/entries/2/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/nested/" + "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 + ] } }, { @@ -149205,7 +177667,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 2 + "value": 10 } }, { @@ -149213,23 +177675,24 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 0 } } ], "refusal": null }, { - "id": "operations/s3-express/list-empty", + "id": "operations/s3-express/list-first-page", "profile": "s3-express", "lane": "core", - "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token", + "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", - "prefix": "object-tests/nothing/" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -149346,7 +177809,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/nothing/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -149389,7 +177860,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/nothing/01000false" + "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" } } }, @@ -149432,7 +177903,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/nothing/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -149483,7 +177962,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/nothing/01000urlfalse" + "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" } } } @@ -149499,12 +177978,126 @@ "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": 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/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "fixture-marker+/88ab99096baf=" } }, { @@ -149512,7 +178105,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 2 } }, { @@ -149527,16 +178120,18 @@ "refusal": null }, { - "id": "operations/s3-express/list-all-empty", + "id": "operations/s3-express/list-service-unavailable", "profile": "s3-express", "lane": "core", - "purpose": "Report an empty bucket as an empty listing", + "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" ], + "origin": "transient", "call": { - "op": "list", - "prefix": "" + "op": "list_page", + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -149560,13 +178155,204 @@ } }, { - "at": "/query/session", + "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": "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": 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, @@ -149575,19 +178361,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" } } ], @@ -149596,18 +178391,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": "\nServiceUnavailablePlease reduce your request rate.fixture" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } } ] @@ -149650,22 +178445,18 @@ }, { "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": "2" } }, { @@ -149693,23 +178484,23 @@ } } ], - "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", - "x-amz-request-id": "fixture-request-id" + } }, "body": { - "encoding": "base64", - "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg==" - } + "encoding": "utf8", + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -149748,30 +178539,18 @@ }, { "at": "/query/prefix", - "optional": true, + "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": "object-tests/board/" } }, { - "at": "/query/encoding-type", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "2" } }, { @@ -149797,63 +178576,38 @@ "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": 200, + "status": 503, "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+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+" - } + "encoding": "utf8", + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } + ], + "optional": true }, - { - "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": [ { @@ -149875,13 +178629,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, @@ -149891,18 +178669,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}" } } ], @@ -149911,24 +178690,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": [ { @@ -149965,22 +178740,18 @@ }, { "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": "2" } }, { @@ -150006,27 +178777,40 @@ "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": 200, + "status": 503, "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+PENvbnRlbnRzPjxFVGFnPiZxdW90O2ZpeHR1cmUmcXVvdDs8L0VUYWc+PEtleT5hJmFtcDtiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyZsdDtkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4=" - } + "encoding": "utf8", + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } - }, + } + ], + "optional": true + }, + { + "alternatives": [ { "request": [ { @@ -150063,30 +178847,18 @@ }, { "at": "/query/prefix", - "optional": true, + "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": "object-tests/board/" } }, { - "at": "/query/encoding-type", + "at": "/query/max-keys", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "2" } }, { @@ -150114,66 +178886,25 @@ } } ], - "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", - "x-amz-request-id": "fixture-request-id" + } }, "body": { - "encoding": "base64", - "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48S2V5PmElMjZiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyUzQ2Q8L0tleT48TGFzdE1vZGlmaWVkPjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWjwvTGFzdE1vZGlmaWVkPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg==" - } + "encoding": "utf8", + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - }, - { - "at": "/value/keys", - "optional": false, - "rule": { - "is": "equal", - "value": [ - "a&b", - "c\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" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -150286,7 +179051,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -150319,18 +179092,18 @@ ], "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": "\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": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" } }, { @@ -150372,7 +179145,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -150413,600 +179194,548 @@ ], "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": "\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, - "" - ] - } + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" + } + } + ], + "optional": true }, { - "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": "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" + } + }, + { + "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" + } + }, + { + "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": 503, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + }, + "framing": "chunked" + } + } + ], + "optional": true + } + ], + "expect": [ { - "at": "/value/entries/9/key", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/names/hash#tag.txt" + "value": "error" } }, { - "at": "/value/entries/9/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 503 } }, { - "at": "/value/entries/9/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-84af5210cfd9\"" + "value": "ServiceUnavailable" } - }, + } + ], + "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": [ { - "at": "/value/entries/9/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": "/" + } + }, + { + "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/9/version", - "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": "/" + } + }, + { + "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": "/value/entries/9/is_current_version", - "optional": true, + "at": "/outcome", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - false - ] + "is": "equal", + "value": "ok" } }, { @@ -151022,7 +179751,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 10 + "value": 0 } }, { @@ -151037,14 +179766,15 @@ "refusal": null }, { - "id": "operations/s3-express/list-first-page", + "id": "operations/s3-express/list-next-page", "profile": "s3-express", "lane": "core", - "purpose": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token", + "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+/88ab99096baf=", "op": "list_page", "page_size": 2, "prefix": "object-tests/board/" @@ -151175,6 +179905,14 @@ "value": "2" } }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/88ab99096baf=" + } + }, { "at": "/headers/host", "optional": false, @@ -151215,7 +179953,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/board/fixture-marker+/88ab99096baf=12falseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" } } }, @@ -151269,6 +180007,14 @@ "value": "2" } }, + { + "at": "/query/continuation-token", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-marker+/88ab99096baf=" + } + }, { "at": "/headers/host", "optional": false, @@ -151317,7 +180063,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/board/Aa76REiOO0gPR6lKkFyUFtl1AAAAAAAAAAGoXKBqAAAAAAQAAAAAAAAAscQ7ZzgAAAAAAAAAQUI4QUFBQUFBQUFBYjJKcVpXTjBMWFJsYzNSekwySnZZWEprTDI1bGMzUmxaQzlqTG5SNGRBRT3cnmYCxwsmD0raHf15FaRAP0L8TRD3Kes0lU2EWDoJdA==12urlfalseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" } } } @@ -151338,7 +180084,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/z.txt" + "value": "object-tests/board/a.txt" } }, { @@ -151346,7 +180092,7 @@ "optional": false, "rule": { "is": "equal", - "value": 2 + "value": 8 } }, { @@ -151354,7 +180100,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-7d1b875717fa\"" + "value": "\"fixture-ca40e4206a8d\"" } }, { @@ -151390,69 +180136,12 @@ ] } }, - { - "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/continuation_token", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/88ab99096baf=" + "value": "" } }, { @@ -151460,7 +180149,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 2 + "value": 1 } }, { @@ -151475,18 +180164,17 @@ "refusal": null }, { - "id": "operations/s3-express/list-service-unavailable", + "id": "operations/s3-express/list-order-delimited", "profile": "s3-express", "lane": "core", - "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries", + "purpose": "Report the entries and the common prefixes in the order a directory bucket sends them, without sorting them", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], - "origin": "transient", "call": { + "delimiter": "/", "op": "list_page", - "page_size": 2, - "prefix": "object-tests/board/" + "prefix": "object-tests/order/" }, "exchanges": [ { @@ -151603,15 +180291,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/order/" } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { @@ -151644,18 +180332,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/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/" + } } }, { @@ -151697,15 +180385,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "object-tests/order/" } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { @@ -151746,223 +180434,479 @@ ], "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/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/" + } } } ] + } + ], + "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-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, + "" + ] + } }, { - "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": "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": 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" - } - }, - { - "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": 503, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - } - }, - "body": { - "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" - }, - "framing": "chunked" - } - } - ], - "optional": true + "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 + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-order", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "op": "list_page", + "prefix": "object-tests/order/" + }, + "exchanges": [ { "alternatives": [ { @@ -151984,37 +180928,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, @@ -152023,122 +180943,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" } } ], @@ -152147,22 +180964,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": [ @@ -152205,15 +181021,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "2" + "value": "object-tests/order/" } }, { @@ -152246,18 +181054,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/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" + } } }, { @@ -152299,15 +181107,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "2" + "value": "object-tests/order/" } }, { @@ -152348,23 +181148,529 @@ ], "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/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" + } } } - ], - "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-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-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", + "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/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/list-other-delimiter", + "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", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "delimiter": "-", + "op": "list_page", + "prefix": "object-tests/board/" + }, + "exchanges": [ { "alternatives": [ { @@ -152386,37 +181692,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, @@ -152425,122 +181707,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" } } ], @@ -152549,22 +181728,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": [ @@ -152611,11 +181789,11 @@ } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "-" } }, { @@ -152648,7 +181826,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -152657,7 +181835,7 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nInvalidRequestFixture error" }, "framing": "chunked" } @@ -152705,11 +181883,11 @@ } }, { - "at": "/query/max-keys", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "-" } }, { @@ -152750,7 +181928,7 @@ ], "allow_query": [], "response": { - "status": 503, + "status": 400, "headers": { "content-type": "application/xml", "date": { @@ -152759,13 +181937,12 @@ }, "body": { "encoding": "utf8", - "data": "\nServiceUnavailablePlease reduce your request rate.fixture" + "data": "\nInvalidRequestThis bucket only supports '/' as a delimiter01a36c7dc10001a08269f29d0c1a80c2547f97e2NIAczpdqY" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -152782,7 +181959,7 @@ "optional": false, "rule": { "is": "equal", - "value": 503 + "value": 400 } }, { @@ -152790,23 +181967,63 @@ "optional": false, "rule": { "is": "equal", - "value": "ServiceUnavailable" + "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": "delimiter" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "InvalidRequest" + } + } + ] }, { - "id": "operations/s3-express/list-max-keys-zero", + "id": "operations/s3-express/list-page", "profile": "s3-express", "lane": "core", - "purpose": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated", + "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", - "page_size": 0, "prefix": "object-tests/board/" }, "exchanges": [ @@ -152927,14 +182144,6 @@ "value": "object-tests/board/" } }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "0" - } - }, { "at": "/headers/host", "optional": false, @@ -152975,7 +182184,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/00false" + "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" } } }, @@ -153021,14 +182230,6 @@ "value": "object-tests/board/" } }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "0" - } - }, { "at": "/headers/host", "optional": false, @@ -153077,7 +182278,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/board/00urlfalse" + "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" } } } @@ -153086,11 +182287,182 @@ ], "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": "ok" + "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", + "values": [ + null, + "" + ] + } + }, + { + "at": "/value/entries/2/is_current_version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + false + ] } }, { @@ -153106,7 +182478,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 3 } }, { @@ -153121,18 +182493,16 @@ "refusal": null }, { - "id": "operations/s3-express/list-next-page", + "id": "operations/s3-express/list-prefix-without-slash", "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 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+/88ab99096baf=", "op": "list_page", - "page_size": 2, - "prefix": "object-tests/board/" + "prefix": "object-tests/boa" }, "exchanges": [ { @@ -153249,23 +182619,7 @@ "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=" + "value": "object-tests/boa" } }, { @@ -153298,18 +182652,18 @@ ], "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/board/fixture-marker+/88ab99096baf=12falseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" - } + "data": "\nInvalidRequestFixture error" + }, + "framing": "chunked" } }, { @@ -153351,23 +182705,7 @@ "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=" + "value": "object-tests/boa" } }, { @@ -153408,18 +182746,18 @@ ], "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/board/Aa76REiOO0gPR6lKkFyUFtl1AAAAAAAAAAGoXKBqAAAAAAQAAAAAAAAAscQ7ZzgAAAAAAAAAQUI4QUFBQUFBQUFBYjJKcVpXTjBMWFJsYzNSekwySnZZWEprTDI1bGMzUmxaQzlqTG5SNGRBRT3cnmYCxwsmD0raHf15FaRAP0L8TRD3Kes0lU2EWDoJdA==12urlfalseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" - } + "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" } } ] @@ -153431,105 +182769,81 @@ "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": 400 } }, { - "at": "/value/entries/0/size", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": 8 + "value": "InvalidRequest" } - }, + } + ], + "refusal": [ { - "at": "/value/entries/0/etag", + "at": "/outcome", "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, - "" - ] + "value": "refused" } }, { - "at": "/value/entries/0/is_current_version", - "optional": true, + "at": "/kind", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - false - ] + "is": "matches", + "pattern": ".+" } }, { - "at": "/value/continuation_token", + "at": "/parameter", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "prefix" } }, { - "at": "/value/entries", - "optional": false, + "at": "/status", + "optional": true, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": 400 } }, { - "at": "/value/prefixes", - "optional": false, + "at": "/code", + "optional": true, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "InvalidRequest" } } - ], - "refusal": null + ] }, { - "id": "operations/s3-express/list-order-delimited", + "id": "operations/s3-express/list-separator-keys-delimited", "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": "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/order/" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -153646,7 +182960,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/separators/" } }, { @@ -153697,7 +183011,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/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/" } } }, @@ -153740,7 +183054,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/separators/" } }, { @@ -153799,7 +183113,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/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/" } } } @@ -153820,7 +183134,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/separators/..leading" } }, { @@ -153836,7 +183150,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-67e7081fe36a\"" + "value": "\"fixture-42aa4973e21e\"" } }, { @@ -153877,7 +183191,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/é" + "value": "object-tests/separators/dot." } }, { @@ -153893,7 +183207,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-e93bd77ca678\"" + "value": "\"fixture-9282c60ce573\"" } }, { @@ -153930,296 +183244,35 @@ } }, { - "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", + "at": "/value/prefixes/0", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/b" + "value": "object-tests/separators/space /" } }, { - "at": "/value/entries/6/size", + "at": "/value/prefixes/1", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "object-tests/separators/a.b/" } }, { - "at": "/value/entries/6/etag", + "at": "/value/prefixes/2", "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 - ] + "value": "object-tests/separators/trailing/" } }, { - "at": "/value/prefixes/0", + "at": "/value/prefixes/3", "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a/" + "value": "object-tests/separators/double/" } }, { @@ -154235,7 +183288,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 7 + "value": 2 } }, { @@ -154243,23 +183296,23 @@ "optional": false, "rule": { "is": "array_length", - "value": 1 + "value": 4 } } ], "refusal": null }, { - "id": "operations/s3-express/list-order", + "id": "operations/s3-express/list-separator-keys", "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": "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/order/" + "prefix": "object-tests/separators/" }, "exchanges": [ { @@ -154376,7 +183429,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/separators/" } }, { @@ -154419,7 +183472,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/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" } } }, @@ -154462,7 +183515,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/" + "value": "object-tests/separators/" } }, { @@ -154513,7 +183566,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/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" } } } @@ -154534,7 +183587,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a" + "value": "object-tests/separators/..leading" } }, { @@ -154550,7 +183603,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-67e7081fe36a\"" + "value": "\"fixture-42aa4973e21e\"" } }, { @@ -154591,7 +183644,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/é" + "value": "object-tests/separators/space /x" } }, { @@ -154607,7 +183660,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-e93bd77ca678\"" + "value": "\"fixture-42eb96253921\"" } }, { @@ -154648,7 +183701,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a0" + "value": "object-tests/separators/dot." } }, { @@ -154664,7 +183717,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b6a492ea4100\"" + "value": "\"fixture-9282c60ce573\"" } }, { @@ -154705,7 +183758,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a.txt" + "value": "object-tests/separators/a.b/c" } }, { @@ -154721,7 +183774,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3a908dcdb129\"" + "value": "\"fixture-3103883be81f\"" } }, { @@ -154762,7 +183815,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/A" + "value": "object-tests/separators/trailing/" } }, { @@ -154778,7 +183831,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-a19aa03709bc\"" + "value": "\"fixture-9122241c6748\"" } }, { @@ -154819,7 +183872,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/order/a/b" + "value": "object-tests/separators/double//slash" } }, { @@ -154835,7 +183888,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bdef091a4e21\"" + "value": "\"fixture-86940355381a\"" } }, { @@ -154871,120 +183924,6 @@ ] } }, - { - "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", - "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/continuation_token", "optional": false, @@ -154998,7 +183937,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 8 + "value": 6 } }, { @@ -155013,16 +183952,16 @@ "refusal": null }, { - "id": "operations/s3-express/list-other-delimiter", + "id": "operations/s3-express/list-all-pages", "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": "Follow each page's continuation token until a page is not truncated", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "delimiter": "-", - "op": "list_page", + "op": "list", + "page_size": 1, "prefix": "object-tests/board/" }, "exchanges": [ @@ -155088,300 +184027,17 @@ "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/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" - } - }, - { - "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}" - } - }, - { - "at": "/query/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 400, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - } - }, - "body": { - "encoding": "utf8", - "data": "\nInvalidRequestThis bucket only supports '/' as a delimiter01a36c7dc10001a08269f29d0c1a80c2547f97e2NIAczpdqY" - }, - "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": "delimiter" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 - } - }, - { - "at": "/code", - "optional": true, - "rule": { - "is": "equal", - "value": "InvalidRequest" - } - } - ] - }, - { - "id": "operations/s3-express/list-page", - "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", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "call": { - "op": "list_page", - "prefix": "object-tests/board/" - }, - "exchanges": [ + "encoding": "utf8", + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + }, + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } + } + } + ] + }, { "alternatives": [ { @@ -155403,13 +184059,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": "1" + } + }, { "at": "/headers/host", "optional": false, @@ -155419,18 +184099,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}" } } ], @@ -155441,22 +184122,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": [ { @@ -155499,6 +184176,22 @@ "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" + } + }, { "at": "/headers/host", "optional": false, @@ -155539,10 +184232,14 @@ }, "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" + "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11urltrueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT" } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -155585,6 +184282,22 @@ "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": "/headers/host", "optional": false, @@ -155608,14 +184321,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": [ @@ -155633,235 +184338,10 @@ }, "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" + "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/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", - "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", - "values": [ - null, - "" - ] - } - }, - { - "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", - "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", - "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" - ], - "call": { - "op": "list_page", - "prefix": "object-tests/boa" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -155881,13 +184361,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, @@ -155897,18 +184417,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}" } } ], @@ -155919,15 +184440,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" } } } @@ -155974,7 +184495,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "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=" } }, { @@ -156007,18 +184544,18 @@ ], "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": "\nInvalidRequestFixture error" - }, - "framing": "chunked" + "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT" + } } }, { @@ -156060,7 +184597,31 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/boa" + "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" } }, { @@ -156086,14 +184647,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": [ @@ -156101,18 +184654,18 @@ ], "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": "\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" + "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT" + } } } ] @@ -156124,81 +184677,158 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/keys", "optional": false, "rule": { "is": "equal", - "value": 400 + "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. 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": { + "op": "list_page", + "prefix": "" + }, + "exchanges": [ { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "InvalidRequest" - } + "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": 404, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "data": "\nNoSuchBucketFixture error" + }, + "framing": "chunked" + } + } + ] } ], - "refusal": [ + "expect": [ { "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "refused" - } - }, - { - "at": "/kind", - "optional": false, - "rule": { - "is": "matches", - "pattern": ".+" + "value": "error" } }, { - "at": "/parameter", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "prefix" + "value": 404 } }, { - "at": "/status", - "optional": true, + "at": "/code", + "optional": false, "rule": { "is": "equal", - "value": 400 + "value": "NoSuchBucket" } }, { - "at": "/code", - "optional": true, + "at": "/kind", + "optional": false, "rule": { "is": "equal", - "value": "InvalidRequest" + "value": "container_not_found" } } - ] + ], + "refusal": null }, { - "id": "operations/s3-express/list-separator-keys-delimited", + "id": "operations/s3-express/list-entry-properties", "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": "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": { - "delimiter": "/", "op": "list_page", - "prefix": "object-tests/separators/" + "prefix": "object-tests/properties/" }, "exchanges": [ { @@ -156303,51 +184933,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/separators/" + "value": "fixture-session-token" } }, { - "at": "/query/delimiter", + "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}" } }, { - "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" - } - }, - { - "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/properties/" } } ], @@ -156366,7 +184988,7 @@ }, "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/" + "data": "\nfixtureobject-tests/properties/11000falseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" } } }, @@ -156397,51 +185019,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/separators/" + "value": "fixture-session-token" } }, { - "at": "/query/delimiter", + "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}" } }, { - "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" - } - }, - { - "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/properties/" } }, { @@ -156468,7 +185082,7 @@ }, "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/" + "data": "\nfixtureobject-tests/properties/11000urlfalseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" } } } @@ -156489,7 +185103,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/..leading" + "value": "object-tests/properties/a.txt" } }, { @@ -156497,7 +185111,7 @@ "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 2 } }, { @@ -156505,68 +185119,27 @@ "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." + "value": "\"fixture-5070726f0000\"" } }, { - "at": "/value/entries/1/size", + "at": "/value/entries/0/last_modified", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "2024-01-02T03:04:05Z" } }, { - "at": "/value/entries/1/etag", + "at": "/value/entries/0/storage_class", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9282c60ce573\"" + "value": "EXPRESS_ONEZONE" } }, { - "at": "/value/entries/1/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -156577,7 +185150,7 @@ } }, { - "at": "/value/entries/1/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -156588,7 +185161,7 @@ } }, { - "at": "/value/entries/1/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -156599,35 +185172,19 @@ } }, { - "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", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/separators/trailing/" + "is": "array_length", + "value": 1 } }, { - "at": "/value/prefixes/3", + "at": "/value/prefixes", "optional": false, "rule": { - "is": "equal", - "value": "object-tests/separators/double/" + "is": "array_length", + "value": 0 } }, { @@ -156637,37 +185194,22 @@ "is": "equal", "value": "" } - }, - { - "at": "/value/entries", - "optional": false, - "rule": { - "is": "array_length", - "value": 2 - } - }, - { - "at": "/value/prefixes", - "optional": false, - "rule": { - "is": "array_length", - "value": 4 - } } ], "refusal": null }, { - "id": "operations/s3-express/list-separator-keys", + "id": "operations/s3-express/list-checksum-algorithm", "profile": "s3-express", "lane": "core", - "purpose": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored", + "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", - "prefix": "object-tests/separators/" + "prefix": "object-tests/checksum-listing/" }, "exchanges": [ { @@ -156784,7 +185326,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/checksum-listing/" } }, { @@ -156827,7 +185369,7 @@ }, "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" + "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" } } }, @@ -156870,7 +185412,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/" + "value": "object-tests/checksum-listing/" + } + }, + { + "at": "/query/encoding-type", + "optional": false, + "rule": { + "is": "equal", + "value": "url" } }, { @@ -156896,14 +185446,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": [ @@ -156913,284 +185455,64 @@ "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/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" - } - } - } - ] - } - ], - "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/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" - } - }, + "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/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" + } + } + } + ] + } + ], + "expect": [ { - "at": "/value/entries/3/size", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "ok" } }, { - "at": "/value/entries/3/etag", + "at": "/value/entries/0/key", "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 - ] + "value": "object-tests/checksum-listing/crc32.txt" } }, { - "at": "/value/entries/4/key", + "at": "/value/entries/0/size", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/trailing/" + "value": 3 } }, { - "at": "/value/entries/4/size", + "at": "/value/entries/0/etag", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": "\"fixture-636b736c0000\"" } }, { - "at": "/value/entries/4/etag", + "at": "/value/entries/0/checksum_algorithm", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-9122241c6748\"" + "value": "CRC32" } }, { - "at": "/value/entries/4/snapshot", + "at": "/value/entries/0/snapshot", "optional": true, "rule": { "is": "one_of", @@ -157201,7 +185523,7 @@ } }, { - "at": "/value/entries/4/version", + "at": "/value/entries/0/version", "optional": true, "rule": { "is": "one_of", @@ -157212,7 +185534,7 @@ } }, { - "at": "/value/entries/4/is_current_version", + "at": "/value/entries/0/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -157223,31 +185545,39 @@ } }, { - "at": "/value/entries/5/key", + "at": "/value/entries/1/key", "optional": false, "rule": { "is": "equal", - "value": "object-tests/separators/double//slash" + "value": "object-tests/checksum-listing/none.txt" } }, { - "at": "/value/entries/5/size", + "at": "/value/entries/1/size", "optional": false, "rule": { "is": "equal", - "value": 1 + "value": 4 } }, { - "at": "/value/entries/5/etag", + "at": "/value/entries/1/etag", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-86940355381a\"" + "value": "\"fixture-636b736c0001\"" } }, { - "at": "/value/entries/5/snapshot", + "at": "/value/entries/1/checksum_algorithm", + "optional": false, + "rule": { + "is": "equal", + "value": "CRC64NVME" + } + }, + { + "at": "/value/entries/1/snapshot", "optional": true, "rule": { "is": "one_of", @@ -157258,7 +185588,7 @@ } }, { - "at": "/value/entries/5/version", + "at": "/value/entries/1/version", "optional": true, "rule": { "is": "one_of", @@ -157269,7 +185599,7 @@ } }, { - "at": "/value/entries/5/is_current_version", + "at": "/value/entries/1/is_current_version", "optional": true, "rule": { "is": "one_of", @@ -157280,44 +185610,44 @@ } }, { - "at": "/value/continuation_token", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "" + "is": "array_length", + "value": 2 } }, { - "at": "/value/entries", + "at": "/value/prefixes", "optional": false, "rule": { "is": "array_length", - "value": 6 + "value": 0 } }, { - "at": "/value/prefixes", + "at": "/value/continuation_token", "optional": false, "rule": { - "is": "array_length", - "value": 0 + "is": "equal", + "value": "" } } ], "refusal": null }, { - "id": "operations/s3-express/list-all-pages", + "id": "operations/s3-express/list-fetch-owner", "profile": "s3-express", "lane": "core", - "purpose": "Follow each page's continuation token until a page is not truncated", + "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": { - "op": "list", - "page_size": 1, - "prefix": "object-tests/board/" + "fetch_owner": true, + "op": "list_page", + "prefix": "object-tests/owner/" }, "exchanges": [ { @@ -157422,51 +185752,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": "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}" } }, { - "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" } } ], @@ -157485,7 +185815,7 @@ }, "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" + "data": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE" } } }, @@ -157516,59 +185846,59 @@ } }, { - "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": "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}" } }, { - "at": "/query/encoding-type", + "at": "/query/list-type", "optional": false, "rule": { "is": "equal", - "value": "url" + "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/owner/" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/fetch-owner", "optional": false, "rule": { "is": "equal", - "value": "fixture-session-token" + "value": "true" } }, { - "at": "/headers/authorization", + "at": "/query/encoding-type", "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": "url" } } ], @@ -157587,12 +185917,127 @@ }, "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" + "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": [ { @@ -157614,7 +186059,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -157622,35 +186067,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": "GET" } }, { - "at": "/query/max-keys", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "/" } }, { - "at": "/query/continuation-token", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5001=" + "value": "" + } + }, + { + "at": "/query/list-type", + "optional": false, + "rule": { + "is": "equal", + "value": "2" + } + }, + { + "at": "/query/prefix", + "optional": false, + "rule": { + "is": "equal", + "value": "object-tests/many/" } }, { @@ -157693,7 +186195,7 @@ }, "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": "\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" } } }, @@ -157736,23 +186238,7 @@ "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=" + "value": "object-tests/many/" } }, { @@ -157803,7 +186289,7 @@ }, "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": "\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" } } } @@ -157850,15 +186336,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/many/" } }, { @@ -157866,7 +186344,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" + "value": "fixture-marker+/3a4e1000=" } }, { @@ -157909,7 +186387,7 @@ }, "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" + "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" } } }, @@ -157952,15 +186430,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" - } - }, - { - "at": "/query/max-keys", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "object-tests/many/" } }, { @@ -157968,7 +186438,7 @@ "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/a11ba9e5002=" + "value": "fixture-marker+/3a4e1000=" } }, { @@ -158019,7 +186489,7 @@ }, "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": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT" } } } @@ -158041,9 +186511,1007 @@ "rule": { "is": "equal", "value": [ - "object-tests/board/a.txt", - "object-tests/board/nested/c.txt", - "object-tests/board/z.txt" + "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" ] } } @@ -158051,131 +187519,17 @@ "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": [ - { - "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": 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" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/list-entry-properties", + "id": "operations/s3-express/list-prefix-special-characters", "profile": "s3-express", "lane": "core", - "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class", + "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/properties/" + "prefix": "object-tests/odd a+b&c=d%é/" }, "exchanges": [ { @@ -158316,102 +187670,16 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/properties/" - } - } - ], - "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/11000falseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" - } - } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "GET" + "value": "object-tests/odd a+b&c=d%é/" } }, { - "at": "/path", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", "value": "/" } - }, - { - "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/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" - } } ], "allow_headers": [ @@ -158429,211 +187697,10 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/properties/11000urlfalseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE" - } - } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "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 - } - }, - { - "at": "/value/continuation_token", - "optional": false, - "rule": { - "is": "equal", - "value": "" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/list-checksum-algorithm", - "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", - "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_page", - "prefix": "object-tests/checksum-listing/" - }, - "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 + "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+/" } } - } - ] - }, - { - "alternatives": [ + }, { "request": [ { @@ -158660,22 +187727,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": "/headers/host", "optional": false, @@ -158699,52 +187750,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": 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/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" - } - } - }, - { - "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", @@ -158759,39 +187764,23 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/" - } - }, - { - "at": "/query/encoding-type", - "optional": false, - "rule": { - "is": "equal", - "value": "url" + "value": "object-tests/odd a+b&c=d%é/" } }, { - "at": "/headers/host", + "at": "/query/delimiter", "optional": false, "rule": { "is": "equal", - "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" + "value": "/" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/query/encoding-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": "url" } } ], @@ -158810,7 +187799,7 @@ }, "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" + "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/" } } } @@ -158831,7 +187820,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/checksum-listing/crc32.txt" + "value": "object-tests/odd a+b&c=d%é/x.txt" } }, { @@ -158839,7 +187828,7 @@ "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 1 } }, { @@ -158847,15 +187836,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-636b736c0000\"" - } - }, - { - "at": "/value/entries/0/checksum_algorithm", - "optional": false, - "rule": { - "is": "equal", - "value": "CRC32" + "value": "\"fixture-6f6464200000\"" } }, { @@ -158892,76 +187873,19 @@ } }, { - "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", + "at": "/value/entries", "optional": false, "rule": { - "is": "equal", - "value": "\"fixture-636b736c0001\"" + "is": "array_length", + "value": 1 } }, { - "at": "/value/entries/1/checksum_algorithm", + "at": "/value/prefixes/0", "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": "object-tests/odd a+b&c=d%é/sub dir+/" } }, { @@ -158969,7 +187893,7 @@ "optional": false, "rule": { "is": "array_length", - "value": 0 + "value": 1 } }, { @@ -158984,17 +187908,17 @@ "refusal": null }, { - "id": "operations/s3-express/list-fetch-owner", + "id": "operations/s3-express/list-start-after", "profile": "s3-express", "lane": "core", - "purpose": "Ask for owners with fetch-owner=true, and report each listed object's owner ID", + "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": { - "fetch_owner": true, "op": "list_page", - "prefix": "object-tests/owner/" + "prefix": "object-tests/board/", + "start_after": "object-tests/board/a.txt" }, "exchanges": [ { @@ -159135,15 +188059,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/owner/" + "value": "object-tests/board/" } }, { - "at": "/query/fetch-owner", + "at": "/query/start-after", "optional": false, "rule": { "is": "equal", - "value": "true" + "value": "object-tests/board/a.txt" } } ], @@ -159152,18 +188076,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/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE" - } + "data": "\nNotSupportedFixture error" + }, + "framing": "chunked" } }, { @@ -159229,15 +188153,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/owner/" + "value": "object-tests/board/" } }, { - "at": "/query/fetch-owner", + "at": "/query/start-after", "optional": false, "rule": { "is": "equal", - "value": "true" + "value": "object-tests/board/a.txt" } }, { @@ -159254,18 +188178,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/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE" - } + "data": "\nNotSupportedFixture error" + }, + "framing": "chunked" } } ] @@ -159277,112 +188201,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": 501 } }, { - "at": "/value/continuation_token", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "NotSupported" } } ], "refusal": null }, { - "id": "operations/s3-express/list-over-1000", + "id": "operations/s3-express/list-truncated-without-token", "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 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": { "op": "list", - "prefix": "object-tests/many/" + "page_size": 2, + "prefix": "object-tests/board/" }, "exchanges": [ { @@ -159499,7 +188352,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -159542,7 +188403,7 @@ }, "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" + "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" } } }, @@ -159585,7 +188446,15 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" + "value": "object-tests/board/" + } + }, + { + "at": "/query/max-keys", + "optional": false, + "rule": { + "is": "equal", + "value": "2" } }, { @@ -159636,12 +188505,40 @@ }, "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": "\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" } } } ] - }, + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "error" + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/list-encoding-ignored", + "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", + "sources": [ + "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/percent/" + }, + "exchanges": [ { "alternatives": [ { @@ -159663,7 +188560,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -159671,27 +188568,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/many/" + "value": "GET" } }, { - "at": "/query/continuation-token", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "fixture-marker+/3a4e1000=" + "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/percent/" } }, { @@ -159734,7 +188696,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-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" } } }, @@ -159777,15 +188739,7 @@ "optional": false, "rule": { "is": "equal", - "value": "object-tests/many/" - } - }, - { - "at": "/query/continuation-token", - "optional": false, - "rule": { - "is": "equal", - "value": "fixture-marker+/3a4e1000=" + "value": "object-tests/percent/" } }, { @@ -159836,7 +188790,7 @@ }, "body": { "encoding": "utf8", - "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-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" } } } @@ -159848,1035 +188802,220 @@ "at": "/outcome", "optional": false, "rule": { - "is": "equal", - "value": "ok" + "is": "equal", + "value": "ok" + } + }, + { + "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/keys", - "optional": false, + "at": "/value/entries/1/version", + "optional": true, "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" + "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-express/list-prefix-special-characters", + "id": "operations/s3-express/put-created-empty", "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": "put created empty", "sources": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], "call": { - "delimiter": "/", - "op": "list_page", - "prefix": "object-tests/odd a+b&c=d%é/" + "body_base64": "", + "key": "object-tests/write/empty.bin", + "op": "put" }, "exchanges": [ { @@ -160961,7 +189100,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -160969,7 +189108,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/write/empty.bin" } }, { @@ -161003,29 +189142,125 @@ "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-de1997e62b9b\"", + "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-de1997e62b9b\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-created", + "profile": "s3-express", + "lane": "core", + "purpose": "put created", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/write/object.txt", + "op": "put" + }, + "exchanges": [ + { + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, { - "at": "/query/list-type", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { - "at": "/query/prefix", + "at": "/query/session", "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" + "value": "" } }, { - "at": "/query/delimiter", + "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" } } ], @@ -161036,18 +189271,22 @@ "response": { "status": 200, "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - }, - "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + "content-type": "application/xml" }, "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+/" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" + }, + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -161055,7 +189294,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -161063,7 +189302,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/write/object.txt" } }, { @@ -161071,7 +189310,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -161097,37 +189336,199 @@ "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-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\"" + } + }, + { + "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, { - "at": "/query/list-type", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { - "at": "/query/prefix", + "at": "/query/session", "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/" + "value": "" } }, { - "at": "/query/delimiter", + "at": "/headers/host", "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid" } }, { - "at": "/query/encoding-type", + "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": "url" + "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==" + } + }, + { + "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}" } } ], @@ -161138,16 +189539,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/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": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -161163,42 +189565,15 @@ } }, { - "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", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-6f6464200000\"" - } - }, - { - "at": "/value/entries/0/snapshot", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-68e2c5df0cb2\"" } }, { - "at": "/value/entries/0/version", + "at": "/value/version", "optional": true, "rule": { "is": "one_of", @@ -161207,65 +189582,216 @@ "" ] } - }, + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-created-key-hash", + "profile": "s3-express", + "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": [ { - "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": "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", - "optional": false, - "rule": { - "is": "array_length", - "value": 1 - } - }, + "alternatives": [ + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "PUT" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/keys/hash#tag.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" + } + }, + { + "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-68e2c5df0cb2\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" + }, + "body": { + "encoding": "base64", + "data": "" + }, + "framing": "chunked" + } + } + ] + } + ], + "expect": [ { - "at": "/value/prefixes/0", + "at": "/outcome", "optional": false, "rule": { "is": "equal", - "value": "object-tests/odd a+b&c=d%é/sub dir+/" + "value": "ok" } }, { - "at": "/value/prefixes", + "at": "/value/etag", "optional": false, "rule": { - "is": "array_length", - "value": 1 + "is": "equal", + "value": "\"fixture-68e2c5df0cb2\"" } }, { - "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-express/list-start-after", + "id": "operations/s3-express/put-created-key-percent", "profile": "s3-express", "lane": "core", - "purpose": "Report the NotSupported error that a directory bucket answers to start-after", + "purpose": "put created, with the key \"percent%20.txt\"", "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" + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/percent%20.txt", + "op": "put" }, "exchanges": [ { @@ -161350,7 +189876,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -161358,7 +189884,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/percent%20.txt" } }, { @@ -161366,7 +189892,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -161392,29 +189918,125 @@ "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-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\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-created-key-plus", + "profile": "s3-express", + "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": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "GET" + } }, { - "at": "/query/list-type", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/" } }, { - "at": "/query/prefix", + "at": "/query/session", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/" + "value": "" } }, { - "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": "/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" } } ], @@ -161423,20 +190045,24 @@ ], "allow_query": [], "response": { - "status": 501, + "status": 200, "headers": { - "content-type": "application/xml", - "date": { - "from": "now" - } + "content-type": "application/xml" }, "body": { "encoding": "utf8", - "data": "\nNotSupportedFixture error" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -161444,7 +190070,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -161452,7 +190078,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/plus+plus.txt" } }, { @@ -161460,7 +190086,7 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -161486,37 +190112,125 @@ "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-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\"" + } + }, + { + "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": [ { - "at": "/query/list-type", + "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/start-after", + "at": "/query/session", "optional": false, "rule": { "is": "equal", - "value": "object-tests/board/a.txt" + "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" } } ], @@ -161525,16 +190239,91 @@ ], "allow_query": [], "response": { - "status": 501, + "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/keys/space name.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" + } + }, + { + "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" - } + }, + "etag": "\"fixture-68e2c5df0cb2\"", + "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "utf8", - "data": "\nNotSupportedFixture error" + "encoding": "base64", + "data": "" }, "framing": "chunked" } @@ -161548,41 +190337,43 @@ "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", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NotSupported" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/list-truncated-without-token", + "id": "operations/s3-express/put-created-key-non-ascii", "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": "put created, with the key \"café/雪.txt\"", "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": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/café/雪.txt", + "op": "put" }, "exchanges": [ { @@ -161667,7 +190458,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -161675,7 +190466,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/café/雪.txt" } }, { @@ -161683,31 +190474,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": "2" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -161742,18 +190509,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/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" - } + "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": [ { @@ -161773,7 +190591,7 @@ } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -161781,35 +190599,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": "/query/max-keys", + "at": "/path", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "/object-tests/keys/double//slash.txt" } }, { - "at": "/query/encoding-type", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "url" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -161844,16 +190703,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/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" } } ] @@ -161865,25 +190725,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "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/list-encoding-ignored", + "id": "operations/s3-express/put-created-key-trailing-slash", "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": "put created, with the key \"trailing-slash/\"", "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": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/keys/trailing-slash/", + "op": "put" }, "exchanges": [ { @@ -161968,7 +190846,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -161976,7 +190854,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/keys/trailing-slash/" } }, { @@ -161984,23 +190862,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/percent/" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -162035,18 +190897,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/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" } - }, + } + ] + } + ], + "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": [ { @@ -162054,7 +190967,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -162062,7 +190975,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/copy/target.txt" } }, { @@ -162074,43 +190987,88 @@ } }, { - "at": "/query/list-type", + "at": "/headers/x-amz-copy-source", + "optional": false, + "rule": { + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.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" + } + } + ], + "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": "object-tests/percent/" + "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" } }, { @@ -162118,7 +191076,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" } } ], @@ -162127,17 +191092,14 @@ ], "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/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": "empty" } } } @@ -162150,219 +191112,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" - } - }, - { - "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%" + "value": "error" } }, { - "at": "/value/entries/2/size", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": 3 + "value": 404 } }, { - "at": "/value/entries/2/etag", + "at": "/code", "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, + "NoSuchKey", "" ] } - }, - { - "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/copy", "profile": "s3-express", "lane": "core", - "purpose": "put created empty", + "purpose": "Copy an object to another key in the same bucket", "sources": [ - "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" ], "call": { - "body_base64": "", - "key": "object-tests/write/empty.bin", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -162374,7 +191160,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -162382,17 +191168,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, @@ -162424,22 +191218,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": [ { @@ -162447,7 +191237,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -162455,7 +191245,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/empty.bin" + "value": "/object-tests/copy/source.txt" } }, { @@ -162475,22 +191265,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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + }, + "framing": "chunked" + } + } + ] + } + ], "allow_headers": [ "content-type" ], @@ -162498,17 +191370,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-de1997e62b9b\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -162528,35 +191399,27 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-de1997e62b9b\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "\"fixture-etag\"" } } ], "refusal": null }, { - "id": "operations/s3-express/put-created", + "id": "operations/s3-express/copy-200-internal-error", "profile": "s3-express", "lane": "core", - "purpose": "put created", + "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": [ - "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", "call": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/write/object.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -162568,7 +191431,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -162576,17 +191439,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, @@ -162618,15 +191489,167 @@ "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" + } + }, + { + "request": [ + { + "at": "/method", + "optional": false, + "rule": { + "is": "equal", + "value": "HEAD" + } + }, + { + "at": "/path", + "optional": false, + "rule": { + "is": "equal", + "value": "/object-tests/copy/source.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/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/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" + ], + "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" } } } @@ -162649,7 +191672,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/write/object.txt" + "value": "/object-tests/copy/target.txt" } }, { @@ -162657,23 +191680,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "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" } }, { @@ -162681,7 +191704,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" } } ], @@ -162692,67 +191722,21 @@ "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": "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-68e2c5df0cb2\"" - } + ], + "optional": true }, - { - "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": [ { @@ -162762,7 +191746,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -162770,17 +191754,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, @@ -162812,19 +191804,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": [ @@ -162843,15 +191836,23 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/question?mark.txt" + "value": "/object-tests/copy/target.txt" } }, { "at": "/body_base64", "optional": false, "rule": { - "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "is": "equal", + "value": "" + } + }, + { + "at": "/headers/x-amz-copy-source", + "optional": false, + "rule": { + "is": "matches", + "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" } }, { @@ -162863,19 +191864,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" } } ], @@ -162886,67 +191886,21 @@ "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": "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-68e2c5df0cb2\"" - } + ], + "optional": true }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/put-created-key-hash", - "profile": "s3-express", - "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": [ { @@ -162956,7 +191910,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -162964,17 +191918,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, @@ -163006,19 +191968,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": [ @@ -163037,7 +192000,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/hash#tag.txt" + "value": "/object-tests/copy/target.txt" } }, { @@ -163045,23 +192008,23 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { - "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" } }, { @@ -163069,7 +192032,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" } } ], @@ -163080,20 +192050,20 @@ "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": "base64", - "data": "" + "encoding": "utf8", + "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" }, "framing": "chunked" } } - ] + ], + "optional": true } ], "expect": [ @@ -163102,43 +192072,36 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/code", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" - } - }, - { - "at": "/value/version", - "optional": true, - "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "value": "InternalError" } } ], "refusal": null }, { - "id": "operations/s3-express/put-created-key-percent", + "id": "operations/s3-express/copy-replace-metadata", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"percent%20.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/percent%20.txt", - "op": "put" + "content_type": "text/plain", + "key": "object-tests/copy/target.txt", + "metadata": { + "colour": "blue" + }, + "op": "copy", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -163150,7 +192113,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -163158,17 +192121,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, @@ -163191,6 +192162,30 @@ "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": [ @@ -163200,22 +192195,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": [ { @@ -163223,7 +192214,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -163231,7 +192222,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/percent%20.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -163239,7 +192230,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -163251,22 +192242,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" ], @@ -163274,17 +192371,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -163298,41 +192394,23 @@ "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-plus", + "id": "operations/s3-express/copy-source-if-match", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"plus+plus.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/plus+plus.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -163344,7 +192422,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -163352,17 +192430,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, @@ -163385,6 +192471,14 @@ "rule": { "is": "absent" } + }, + { + "at": "/headers/x-amz-copy-source-if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-etag\"" + } } ], "allow_headers": [ @@ -163394,22 +192488,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": [ { @@ -163417,7 +192507,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -163425,7 +192515,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/plus+plus.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -163433,7 +192523,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -163445,22 +192535,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-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" ], @@ -163468,17 +192648,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -163492,41 +192671,23 @@ "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", + "id": "operations/s3-express/copy-source-if-match-failed", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"space name.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/space name.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_match": "\"fixture-0123456789ab\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -163538,7 +192699,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -163546,17 +192707,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, @@ -163579,6 +192748,14 @@ "rule": { "is": "absent" } + }, + { + "at": "/headers/x-amz-copy-source-if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-0123456789ab\"" + } } ], "allow_headers": [ @@ -163586,24 +192763,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": [ { @@ -163611,7 +192784,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -163619,7 +192792,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/space name.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -163627,7 +192800,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -163639,22 +192812,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-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" ], @@ -163662,17 +192925,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -163684,43 +192946,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "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/put-created-key-non-ascii", + "id": "operations/s3-express/copy-source-if-none-match-failed", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"café/雪.txt\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/café/雪.txt", - "op": "put" + "key": "object-tests/copy/target.txt", + "op": "copy", + "source_if_none_match": "\"fixture-etag\"", + "source_key": "object-tests/copy/source.txt" }, "exchanges": [ { @@ -163732,7 +192992,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -163740,17 +193000,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, @@ -163773,6 +193041,14 @@ "rule": { "is": "absent" } + }, + { + "at": "/headers/x-amz-copy-source-if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-etag\"" + } } ], "allow_headers": [ @@ -163780,24 +193056,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": [ { @@ -163805,7 +193077,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -163813,7 +193085,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/café/雪.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -163821,7 +193093,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -163833,22 +193105,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" ], @@ -163856,17 +193218,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -163878,43 +193239,41 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "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/put-created-key-double-slash", + "id": "operations/s3-express/copy-source-if-modified-since", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"double//slash.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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/double//slash.txt", - "op": "put" + "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": [ { @@ -163926,7 +193285,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -163934,17 +193293,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, @@ -163967,6 +193334,14 @@ "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": [ @@ -163976,22 +193351,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": [ { @@ -163999,7 +193370,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -164007,7 +193378,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/double//slash.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -164015,7 +193386,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -164027,22 +193398,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" ], @@ -164050,17 +193511,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -164074,41 +193534,23 @@ "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-trailing-slash", + "id": "operations/s3-express/copy-source-if-unmodified-since-failed", "profile": "s3-express", "lane": "core", - "purpose": "put created, with the key \"trailing-slash/\"", + "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": { - "body_base64": "MDEyMzQ1Njc4OQ==", - "key": "object-tests/keys/trailing-slash/", - "op": "put" + "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": [ { @@ -164120,7 +193562,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -164128,17 +193570,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, @@ -164161,6 +193611,14 @@ "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": [ @@ -164168,24 +193626,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": [ { @@ -164193,7 +193647,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "HEAD" } }, { @@ -164201,7 +193655,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/keys/trailing-slash/" + "value": "/object-tests/copy/source.txt" } }, { @@ -164209,7 +193663,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "" } }, { @@ -164221,22 +193675,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-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" ], @@ -164244,17 +193788,16 @@ "response": { "status": 200, "headers": { + "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-68e2c5df0cb2\"", + "etag": "\"fixture-etag\"", "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT" }, "body": { - "encoding": "base64", - "data": "" - }, - "framing": "chunked" + "encoding": "empty" + } } } ] @@ -164266,43 +193809,40 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-68e2c5df0cb2\"" + "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/copy-missing-source", + "id": "operations/s3-express/copy-source-key-encoded", "profile": "s3-express", "lane": "core", - "purpose": "Refuse a copy whose source does not exist", + "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": [ "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" + "source_key": "object-tests/copy/a b+c%é?#.txt" }, "exchanges": [ { @@ -164338,7 +193878,7 @@ "optional": false, "rule": { "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt" + "pattern": "/?fixture[^/]*/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt" } }, { @@ -164370,7 +193910,7 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 200, "headers": { "content-type": "application/xml", "date": { @@ -164379,7 +193919,7 @@ }, "body": { "encoding": "utf8", - "data": "\nNoSuchKeyFixture error" + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" }, "framing": "chunked" } @@ -164399,7 +193939,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/absent.txt" + "value": "/object-tests/copy/a b+c%é?#.txt" } }, { @@ -164434,16 +193974,102 @@ } } ], + "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/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": [ "content-type" ], "allow_query": [], "response": { - "status": 404, + "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" @@ -164459,41 +194085,22 @@ "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", - "" - ] + "value": "ok" } } ], "refusal": null }, { - "id": "operations/s3-express/copy", + "id": "operations/s3-express/copy-onto-itself", "profile": "s3-express", "lane": "core", - "purpose": "Copy an object to another key in the same bucket", + "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/target.txt", + "key": "object-tests/copy/source.txt", "op": "copy", "source_key": "object-tests/copy/source.txt" }, @@ -164515,7 +194122,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -164645,7 +194252,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -164740,31 +194347,23 @@ "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", + "id": "operations/s3-express/copy-onto-itself-replace-metadata", "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", + "purpose": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE", "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_CopyObject.html" ], - "origin": "transient", "call": { - "key": "object-tests/copy/target.txt", + "key": "object-tests/copy/source.txt", + "metadata": { + "colour": "blue" + }, "op": "copy", "source_key": "object-tests/copy/source.txt" }, @@ -164786,7 +194385,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -164827,6 +194426,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": [ @@ -164843,7 +194458,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" }, "framing": "chunked" } @@ -164916,7 +194531,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/copy/source.txt" } }, { @@ -164957,6 +194572,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": [ @@ -164973,7 +194604,7 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" }, "framing": "chunked" } @@ -165001,6 +194632,110 @@ } } ] + } + ], + "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": [ + { + "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": [ @@ -165019,7 +194754,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object" } }, { @@ -165027,15 +194762,136 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "aGVsbG8=" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "XUFAKrxLKna5cZ2REBfFkg==" + } + }, + { + "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}" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 501, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "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-md5-mismatch", + "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": "K9opmNmw7hl9oUKgRH9nJQ==" + }, + "key": "object", + "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": "" } }, { @@ -165069,20 +194925,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": [ @@ -165101,7 +194956,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object" } }, { @@ -165109,15 +194964,136 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "aGVsbG8=" } }, { - "at": "/headers/x-amz-copy-source", + "at": "/headers/content-md5", + "optional": false, + "rule": { + "is": "equal", + "value": "K9opmNmw7hl9oUKgRH9nJQ==" + } + }, + { + "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}" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 501, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "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": [ + { + "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": "" } }, { @@ -165151,20 +195127,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": [ @@ -165183,7 +195158,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/checksums/crc32.txt" } }, { @@ -165191,15 +195166,148 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/x-amz-copy-source", + "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" + } + }, + { + "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}" + } + } + ], + "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": "" + }, + "framing": "chunked" + } + } + ] + } + ], + "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-express/put-computing-sha256", + "profile": "s3-express", + "lane": "core", + "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_PutObject.html" + ], + "call": { + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "sha256" + }, + "key": "object-tests/checksums/sha256.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": "" } }, { @@ -165233,20 +195341,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": [ @@ -165265,7 +195372,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/checksums/sha256.txt" } }, { @@ -165273,15 +195380,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/x-amz-copy-source", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "SHA256" } }, { @@ -165292,19 +195399,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": "/headers/x-amz-checksum-sha256", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" } } ], @@ -165315,23 +195431,20 @@ "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "encoding": "base64", + "data": "" }, "framing": "chunked" } - } - ], - "optional": true - }, - { - "alternatives": [ + }, { "request": [ { @@ -165347,7 +195460,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/checksums/sha256.txt" } }, { @@ -165355,15 +195468,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGEyNTY6WUJXanArcXlWOVBZZENUTGtZSjlXTGV2ZWdpUlI4NmJUNDZqeGZ3ZXU5ST0NCg0K" } }, { - "at": "/headers/x-amz-copy-source", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "SHA256" } }, { @@ -165374,19 +195487,52 @@ "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": "/headers/x-amz-content-sha256", "optional": false, "rule": { - "is": "absent" + "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-sha256" } } ], @@ -165397,20 +195543,21 @@ "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": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture" + "encoding": "base64", + "data": "" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -165419,36 +195566,47 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/code", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "\"fixture-636b73750000\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/copy-replace-metadata", + "id": "operations/s3-express/put-with-sha256", "profile": "s3-express", "lane": "core", - "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", + "purpose": "Send a SHA256 checksum that the caller gives, in x-amz-checksum-sha256", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "content_type": "text/plain", - "key": "object-tests/copy/target.txt", - "metadata": { - "colour": "blue" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "sha256", + "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" }, - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "key": "object-tests/checksums/sha256.txt", + "op": "put" }, "exchanges": [ { @@ -165460,7 +195618,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -165468,25 +195626,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, @@ -165509,30 +195659,6 @@ "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": [ @@ -165542,18 +195668,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" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -165561,7 +195691,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -165569,7 +195699,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/object-tests/checksums/sha256.txt" } }, { @@ -165577,7 +195707,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "SHA256" } }, { @@ -165588,129 +195726,31 @@ "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": "/headers/x-amz-checksum-sha256", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" } } ], - "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" ], @@ -165718,16 +195758,18 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -165741,23 +195783,44 @@ "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-express/copy-source-if-match", + "id": "operations/s3-express/put-computing-sha1", "profile": "s3-express", "lane": "core", - "purpose": "Copy an object only if the source still has this ETag, named in x-amz-copy-source-if-match", + "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": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_if_match": "\"fixture-etag\"", - "source_key": "object-tests/copy/source.txt" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "sha1" + }, + "key": "object-tests/checksums/sha1.txt", + "op": "put" }, "exchanges": [ { @@ -165769,7 +195832,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -165777,25 +195840,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, @@ -165818,14 +195873,6 @@ "rule": { "is": "absent" } - }, - { - "at": "/headers/x-amz-copy-source-if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-etag\"" - } } ], "allow_headers": [ @@ -165835,18 +195882,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" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -165854,7 +195905,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -165862,7 +195913,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/object-tests/checksums/sha1.txt" } }, { @@ -165870,7 +195921,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "SHA1" } }, { @@ -165881,113 +195940,31 @@ "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": "/headers/x-amz-checksum-sha1", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "Ll2vAgHd6waKYtXgjaGGV6ssa+k=" } } ], - "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" ], @@ -165995,50 +195972,20 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } - } - ] - } - ], - "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": [ + }, { "request": [ { @@ -166054,7 +196001,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/checksums/sha1.txt" } }, { @@ -166062,15 +196009,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGExOkxsMnZBZ0hkNndhS1l0WGdqYUdHVjZzc2Eraz0NCg0K" } }, { - "at": "/headers/x-amz-copy-source", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "SHA1" } }, { @@ -166081,190 +196028,55 @@ "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" + "value": "fixture-session-token" } }, - "body": { - "encoding": "utf8", - "data": "\nPreconditionFailedFixture error" - }, - "framing": "chunked" - } - }, - { - "request": [ { - "at": "/method", + "at": "/headers/authorization", "optional": false, "rule": { - "is": "equal", - "value": "HEAD" + "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": "/path", + "at": "/headers/x-amz-content-sha256", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER" } }, { - "at": "/body_base64", + "at": "/headers/content-encoding", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "aws-chunked" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-decoded-content-length", "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}" + "value": "9" } }, { - "at": "/headers/x-amz-s3session-token", + "at": "/headers/x-amz-trailer", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "x-amz-checksum-sha1" } } ], - "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-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" ], @@ -166272,16 +196084,18 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -166293,41 +196107,47 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-636b73750000\"" } }, { - "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/copy-source-if-none-match-failed", + "id": "operations/s3-express/put-with-sha1", "profile": "s3-express", "lane": "core", - "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", + "purpose": "Send a SHA1 checksum that the caller gives, in x-amz-checksum-sha1", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_if_none_match": "\"fixture-etag\"", - "source_key": "object-tests/copy/source.txt" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "sha1", + "value_base64": "Ll2vAgHd6waKYtXgjaGGV6ssa+k=" + }, + "key": "object-tests/checksums/sha1.txt", + "op": "put" }, "exchanges": [ { @@ -166339,7 +196159,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -166347,25 +196167,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, @@ -166388,14 +196200,6 @@ "rule": { "is": "absent" } - }, - { - "at": "/headers/x-amz-copy-source-if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-etag\"" - } } ], "allow_headers": [ @@ -166403,226 +196207,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" - }, - "framing": "chunked" - } - }, - { - "request": [ - { - "at": "/method", - "optional": false, - "rule": { - "is": "equal", - "value": "HEAD" - } - }, - { - "at": "/path", - "optional": false, - "rule": { - "is": "equal", - "value": "/object-tests/copy/source.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/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/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" - ], - "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" + "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION" }, - "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": "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": [ + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } + } + } + ] + }, { "alternatives": [ { @@ -166640,7 +196240,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/checksums/sha1.txt" } }, { @@ -166648,15 +196248,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/x-amz-copy-source", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "SHA1" } }, { @@ -166668,26 +196268,27 @@ } }, { - "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}" } }, { - "at": "/headers/x-amz-copy-source-if-modified-since", + "at": "/headers/x-amz-checksum-sha1", "optional": false, "rule": { "is": "equal", - "value": "Mon, 01 Jan 2024 00:00:00 GMT" + "value": "Ll2vAgHd6waKYtXgjaGGV6ssa+k=" } } ], @@ -166698,18 +196299,73 @@ "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": "\n2024-01-01T00:00:00.000Z"fixture-etag"" + "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-636b73750000\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "refusal": null + }, + { + "id": "operations/s3-express/put-computing-crc64nvme", + "profile": "s3-express", + "lane": "core", + "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": [ + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" + ], + "call": { + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc64nvme" + }, + "key": "object-tests/checksums/crc64nvme.txt", + "op": "put" + }, + "exchanges": [ + { + "alternatives": [ { "request": [ { @@ -166717,7 +196373,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "GET" } }, { @@ -166725,11 +196381,11 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/" } }, { - "at": "/body_base64", + "at": "/query/session", "optional": false, "rule": { "is": "equal", @@ -166760,97 +196416,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" - } - }, - { - "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" ], @@ -166858,48 +196423,20 @@ "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 } } } ] - } - ], - "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": [ { @@ -166917,7 +196454,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/target.txt" + "value": "/object-tests/checksums/crc64nvme.txt" } }, { @@ -166925,15 +196462,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/x-amz-copy-source", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "CRC64NVME" } }, { @@ -166945,26 +196482,27 @@ } }, { - "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}" } }, { - "at": "/headers/x-amz-copy-source-if-unmodified-since", + "at": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { "is": "equal", - "value": "Mon, 01 Jan 2024 00:00:00 GMT" + "value": "XGkNQVJiTLw=" } } ], @@ -166973,16 +196511,18 @@ ], "allow_query": [], "response": { - "status": 412, + "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": "\nPreconditionFailedFixture error" + "encoding": "base64", + "data": "" }, "framing": "chunked" } @@ -166994,7 +196534,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -167002,7 +196542,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/object-tests/checksums/crc64nvme.txt" } }, { @@ -167010,7 +196550,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmM2NG52bWU6WEdrTlFWSmlUTHc9DQoNCg==" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC64NVME" } }, { @@ -167021,111 +196569,53 @@ "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": "/headers/x-amz-content-sha256", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER" } - } - ], - "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" - } - } - ] + "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": [ @@ -167135,16 +196625,18 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -167156,40 +196648,47 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-636b73750000\"" } }, { - "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/copy-source-key-encoded", + "id": "operations/s3-express/put-with-crc64nvme", "profile": "s3-express", "lane": "core", - "purpose": "Copy from a key with a space, +, %, é, ? and #. x-amz-copy-source percent-encodes every byte of the key outside letters, digits, -._~ and /", + "purpose": "Send a CRC64NVME checksum that the caller gives, in x-amz-checksum-crc64nvme", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/target.txt", - "op": "copy", - "source_key": "object-tests/copy/a b+c%é?#.txt" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc64nvme", + "value_base64": "XGkNQVJiTLw=" + }, + "key": "object-tests/checksums/crc64nvme.txt", + "op": "put" }, "exchanges": [ { @@ -167201,7 +196700,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -167209,25 +196708,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/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt" - } - }, { "at": "/headers/host", "optional": false, @@ -167259,18 +196750,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" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -167278,7 +196773,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -167286,7 +196781,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/a b+c%é?#.txt" + "value": "/object-tests/checksums/crc64nvme.txt" } }, { @@ -167294,7 +196789,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC64NVME" } }, { @@ -167305,105 +196808,31 @@ "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": "/headers/x-amz-checksum-crc64nvme", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "XGkNQVJiTLw=" } } ], - "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/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": [ "content-type" ], @@ -167411,16 +196840,18 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -167434,22 +196865,44 @@ "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-express/copy-onto-itself", + "id": "operations/s3-express/put-computing-crc32c", "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", + "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_CopyObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "key": "object-tests/copy/source.txt", - "op": "copy", - "source_key": "object-tests/copy/source.txt" + "body_base64": "Y2hlY2tzdW0K", + "checksum": { + "algorithm": "crc32c" + }, + "key": "object-tests/checksums/crc32c.txt", + "op": "put" }, "exchanges": [ { @@ -167461,7 +196914,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -167469,25 +196922,17 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.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, @@ -167519,18 +196964,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" }, - "framing": "chunked" + "body_time": { + "text": "SESSION_EXPIRATION", + "offset_seconds": 300 + } } - }, + } + ] + }, + { + "alternatives": [ { "request": [ { @@ -167538,7 +196987,7 @@ "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "PUT" } }, { @@ -167546,7 +196995,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/object-tests/checksums/crc32c.txt" } }, { @@ -167554,7 +197003,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Y2hlY2tzdW0K" + } + }, + { + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, + "rule": { + "is": "equal", + "value": "CRC32C" } }, { @@ -167565,105 +197022,31 @@ "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": "/headers/x-amz-checksum-crc32c", "optional": false, "rule": { - "is": "absent" + "is": "equal", + "value": "6dErUA==" } } ], - "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" ], @@ -167671,52 +197054,20 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } - } - ] - } - ], - "expect": [ - { - "at": "/outcome", - "optional": false, - "rule": { - "is": "equal", - "value": "ok" - } - } - ], - "refusal": null - }, - { - "id": "operations/s3-express/copy-onto-itself-replace-metadata", - "profile": "s3-express", - "lane": "core", - "purpose": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE", - "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html" - ], - "call": { - "key": "object-tests/copy/source.txt", - "metadata": { - "colour": "blue" - }, - "op": "copy", - "source_key": "object-tests/copy/source.txt" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -167732,7 +197083,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "/object-tests/checksums/crc32c.txt" } }, { @@ -167740,15 +197091,15 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmMzMmM6NmRFclVBPT0NCg0K" } }, { - "at": "/headers/x-amz-copy-source", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { - "is": "matches", - "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt" + "is": "equal", + "value": "CRC32C" } }, { @@ -167759,204 +197110,53 @@ "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" + "value": "fixture-session-token" } }, { - "at": "/headers/x-amz-meta-colour", + "at": "/headers/authorization", "optional": false, "rule": { - "is": "equal", - "value": "blue" - } - } - ], - "allow_headers": [ - "content-type" - ], - "allow_query": [], - "response": { - "status": 200, - "headers": { - "content-type": "application/xml", - "date": { - "from": "now" + "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}" } }, - "body": { - "encoding": "utf8", - "data": "\n2024-01-01T00:00:00.000Z"fixture-etag"" - }, - "framing": "chunked" - } - }, - { - "request": [ { - "at": "/method", + "at": "/headers/x-amz-content-sha256", "optional": false, "rule": { "is": "equal", - "value": "HEAD" + "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER" } }, { - "at": "/path", + "at": "/headers/content-encoding", "optional": false, "rule": { "is": "equal", - "value": "/object-tests/copy/source.txt" + "value": "aws-chunked" } }, { - "at": "/body_base64", + "at": "/headers/x-amz-decoded-content-length", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "9" } }, { - "at": "/headers/host", + "at": "/headers/x-amz-trailer", "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}" + "value": "x-amz-checksum-crc32c" } - }, - { - "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" - } - }, - { - "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": [ @@ -167966,16 +197166,18 @@ "response": { "status": 200, "headers": { - "content-length": "5", "date": { "from": "now" }, - "etag": "\"fixture-etag\"", - "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": "empty" - } + "encoding": "base64", + "data": "" + }, + "framing": "chunked" } } ] @@ -167989,25 +197191,44 @@ "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-express/put-with-md5", + "id": "operations/s3-express/put-with-crc32c", "profile": "s3-express", "lane": "core", - "purpose": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not", + "purpose": "Send a CRC32C checksum that the caller gives, in x-amz-checksum-crc32c", "sources": [ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" ], "call": { - "body_base64": "aGVsbG8=", + "body_base64": "Y2hlY2tzdW0K", "checksum": { - "algorithm": "md5", - "value_base64": "XUFAKrxLKna5cZ2REBfFkg==" + "algorithm": "crc32c", + "value_base64": "6dErUA==" }, - "key": "object", + "key": "object-tests/checksums/crc32c.txt", "op": "put" }, "exchanges": [ @@ -168101,7 +197322,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/checksums/crc32c.txt" } }, { @@ -168109,15 +197330,15 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/content-md5", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { "is": "equal", - "value": "XUFAKrxLKna5cZ2REBfFkg==" + "value": "CRC32C" } }, { @@ -168143,6 +197364,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": [ @@ -168150,16 +197379,18 @@ ], "allow_query": [], "response": { - "status": 501, + "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": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture" + "encoding": "base64", + "data": "" }, "framing": "chunked" } @@ -168173,43 +197404,45 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 501 + "value": "\"fixture-636b73750000\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NotImplemented" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/put-md5-mismatch", + "id": "operations/s3-express/put-computing-crc32", "profile": "s3-express", "lane": "core", - "purpose": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not", + "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/API_PutObject.html" ], "call": { - "body_base64": "aGVsbG8=", + "body_base64": "Y2hlY2tzdW0K", "checksum": { - "algorithm": "md5", - "value_base64": "K9opmNmw7hl9oUKgRH9nJQ==" + "algorithm": "crc32" }, - "key": "object", + "key": "object-tests/checksums/crc32.txt", "op": "put" }, "exchanges": [ @@ -168303,7 +197536,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object" + "value": "/object-tests/checksums/crc32.txt" } }, { @@ -168311,15 +197544,15 @@ "optional": false, "rule": { "is": "equal", - "value": "aGVsbG8=" + "value": "Y2hlY2tzdW0K" } }, { - "at": "/headers/content-md5", - "optional": false, + "at": "/headers/x-amz-sdk-checksum-algorithm", + "optional": true, "rule": { "is": "equal", - "value": "K9opmNmw7hl9oUKgRH9nJQ==" + "value": "CRC32" } }, { @@ -168345,6 +197578,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": [ @@ -168352,16 +197593,130 @@ ], "allow_query": [], "response": { - "status": 501, + "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": "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": "utf8", - "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture" + "encoding": "base64", + "data": "" }, "framing": "chunked" } @@ -168375,43 +197730,52 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 501 + "value": "\"fixture-636b73750000\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "NotImplemented" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/s3-express/put-with-crc32", + "id": "operations/s3-express/put-two-checksums", "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": "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", - "checksum": { - "algorithm": "crc32", - "value_base64": "ItMTFg==" - }, - "key": "object-tests/checksums/crc32.txt", + "checksums": [ + { + "algorithm": "crc32", + "value_base64": "ItMTFg==" + }, + { + "algorithm": "sha256", + "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" + } + ], + "key": "object-tests/checksums/two.txt", "op": "put" }, "exchanges": [ @@ -168505,7 +197869,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/checksums/crc32.txt" + "value": "/object-tests/checksums/two.txt" } }, { @@ -168524,12 +197888,23 @@ "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": "equal", - "value": "CRC32" + "is": "one_of", + "values": [ + "CRC32", + "SHA256" + ] } }, { @@ -168562,18 +197937,16 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 400, "headers": { + "content-type": "application/xml", "date": { "from": "now" - }, - "etag": "\"fixture-636b73750000\"", - "x-amz-checksum-crc32": "ItMTFg==", - "x-amz-checksum-type": "FULL_OBJECT" + } }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture" }, "framing": "chunked" } @@ -168587,52 +197960,81 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-636b73750000\"" + "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-two-checksums", + "id": "operations/s3-express/put-internal-error", "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 a 500 InternalError answer as an error, after at most 5 retries", "sources": [ - "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html" + "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html" ], + "origin": "transient", "call": { - "body_base64": "Y2hlY2tzdW0K", - "checksums": [ - { - "algorithm": "crc32", - "value_base64": "ItMTFg==" - }, - { - "algorithm": "sha256", - "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I=" - } - ], - "key": "object-tests/checksums/two.txt", + "body_base64": "MDEyMzQ1Njc4OQ==", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -168726,7 +198128,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/object-tests/checksums/two.txt" + "value": "/object-tests/write/object.txt" } }, { @@ -168734,34 +198136,7 @@ "optional": false, "rule": { "is": "equal", - "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" - ] + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -168794,7 +198169,7 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 500, "headers": { "content-type": "application/xml", "date": { @@ -168803,98 +198178,13 @@ }, "body": { "encoding": "utf8", - "data": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture" + "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": 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-express/put-internal-error", - "profile": "s3-express", - "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": [ { @@ -168904,7 +198194,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -168912,15 +198202,15 @@ "optional": false, "rule": { "is": "equal", - "value": "/" + "value": "/object-tests/write/object.txt" } }, { - "at": "/query/session", + "at": "/body_base64", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -168932,18 +198222,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}" } } ], @@ -168952,21 +198243,22 @@ ], "allow_query": [], "response": { - "status": 200, + "status": 500, "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.fixture" }, - "body_time": { - "text": "SESSION_EXPIRATION", - "offset_seconds": 300 - } + "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -169040,7 +198332,8 @@ "framing": "chunked" } } - ] + ], + "optional": true }, { "alternatives": [ @@ -169266,7 +198559,51 @@ } ], "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": [ { @@ -169276,7 +198613,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -169284,15 +198621,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": "" } }, { @@ -169304,19 +198641,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" } } ], @@ -169325,22 +198661,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": [ @@ -169367,7 +198702,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MDEyMzQ1Njc4OQ==" + "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" } }, { @@ -169393,6 +198728,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-encoding", + "optional": false, + "rule": { + "is": "equal", + "value": "gzip" + } } ], "allow_headers": [ @@ -169400,7 +198743,7 @@ ], "allow_query": [], "response": { - "status": 500, + "status": 415, "headers": { "content-type": "application/xml", "date": { @@ -169409,13 +198752,12 @@ }, "body": { "encoding": "utf8", - "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture" + "data": "\nUnsupportedMediaTypeThis bucket does not support content-encoding: gzip. Only AWS-CHUNKED is supported.fixture" }, "framing": "chunked" } } - ], - "optional": true + ] } ], "expect": [ @@ -169432,7 +198774,7 @@ "optional": false, "rule": { "is": "equal", - "value": 500 + "value": 415 } }, { @@ -169440,23 +198782,26 @@ "optional": false, "rule": { "is": "equal", - "value": "InternalError" + "value": "UnsupportedMediaType" } } ], "refusal": null }, { - "id": "operations/s3-express/put-content-encoding-gzip", + "id": "operations/s3-express/put-content-properties", "profile": "s3-express", "lane": "core", - "purpose": "Report the refusal of Content-Encoding: gzip by a directory bucket", + "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": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA", - "content_encoding": "gzip", + "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" }, @@ -169559,7 +198904,7 @@ "optional": false, "rule": { "is": "equal", - "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -169587,11 +198932,35 @@ } }, { - "at": "/headers/content-encoding", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "gzip" + "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" } } ], @@ -169600,16 +198969,17 @@ ], "allow_query": [], "response": { - "status": 415, + "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": "\nUnsupportedMediaTypeThis bucket does not support content-encoding: gzip. Only AWS-CHUNKED is supported.fixture" + "encoding": "base64", + "data": "" }, "framing": "chunked" } @@ -169623,42 +198993,42 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 415 + "value": "\"fixture-68e2c5df0cb2\"" } }, { - "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-content-type-edge-spaces", "profile": "s3-express", "lane": "core", - "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write", + "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==", - "cache_control": "max-age=3600", - "content_disposition": "attachment; filename=\"report.txt\"", - "content_language": "nl-NL", - "content_type": "text/plain; charset=utf-8", + "content_type": " text/plain ", "key": "object-tests/write/object.txt", "op": "put" }, @@ -169793,31 +199163,7 @@ "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" + "value": "text/plain" } } ], @@ -169873,7 +199219,32 @@ } } ], - "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" + } + } + ] }, { "id": "operations/s3-express/put-if-match-current", @@ -179809,6 +209180,231 @@ ], "refusal": null }, + { + "id": "operations/s3-express/start-content-properties", + "profile": "s3-express", + "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": [ + { + "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", + "optional": false, + "rule": { + "is": "equal", + "value": "" + } + }, + { + "at": "/query/uploads", + "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": "/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": [ + "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+/c60fb1e2e00d=" + }, + "framing": "chunked" + } + } + ] + } + ], + "expect": [ + { + "at": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + }, + { + "at": "/value/upload_id", + "optional": false, + "rule": { + "is": "equal", + "value": "fixture-upload+/c60fb1e2e00d=" + } + } + ], + "refusal": null + }, { "id": "operations/s3-express/session", "profile": "s3-express", 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 d5faf32..ebfe156 100644 --- a/src/model.rs +++ b/src/model.rs @@ -253,6 +253,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)] @@ -301,6 +329,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()); + } _ => {} } } 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() + ); + } +} From 7181c37e670b2417409d8eb6fc7545a800c8d8a6 Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 10:22:50 +0200 Subject: [PATCH 05/10] Test content properties outside ASCII and duplicate tag keys. Eight cases accept each form of a Content-Disposition or Content-Type outside ASCII that reads back as sent, as measured live on every profile, and permit a refusal where the plain UTF-8 bytes do not. Four cases send a tag key twice, from a call's new list of tag pairs, and accept the error, a refusal, or the call reported unsupported where a client API cannot repeat a key. Co-Authored-By: Claude Opus 5.5 (1M context) --- cases/operations.json | 3394 ++++++++++++++++++++++++++++++++--------- 1 file changed, 2666 insertions(+), 728 deletions(-) diff --git a/cases/operations.json b/cases/operations.json index fa2f6b2..b23041c 100644 --- a/cases/operations.json +++ b/cases/operations.json @@ -203,9 +203,11 @@ "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* or an RFC 2047 encoded word, 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. An HNS account returns é as the byte e9, so the UTF-8 bytes do not read back; send an RFC 2047 encoded word, or refuse the value", "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", @@ -488,9 +490,11 @@ "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* or an RFC 2047 encoded word, 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. A flat account returns the UTF-8 bytes as it got them, so they read back; an RFC 2047 encoded word is stored as written", "operations/azure/put-crc64-mismatch": "put crc64 mismatch", "operations/azure/put-created": "put created", "operations/azure/put-created-empty": "put created empty", @@ -533,11 +537,13 @@ "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", @@ -729,9 +735,11 @@ "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* or an RFC 2047 encoded word, 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": "Write a Content-Type with a parameter outside ASCII. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, so send an RFC 2047 encoded word, or refuse the value", "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\"", @@ -973,9 +981,11 @@ "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* or an RFC 2047 encoded word is stored as written", "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. A general-purpose bucket returns header bytes as it got them, so the UTF-8 bytes read back; an RFC 2047 encoded word is stored as written", "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\"", @@ -1013,6 +1023,7 @@ "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", @@ -1029,6 +1040,7 @@ "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", @@ -36525,16 +36537,27 @@ "refusal": null }, { - "id": "operations/azure/get-tags", + "id": "operations/azure/put-with-tags-duplicate-key", "profile": "azure", "lane": "core", - "purpose": "Read the tags of an object", + "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": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" ], "call": { + "body_base64": "Zmlyc3Q=", "key": "object-tests/tags/object.txt", - "op": "azure.get_tags" + "op": "put", + "tags": [ + { + "key": "project", + "value": "a" + }, + { + "key": "project", + "value": "b" + } + ] }, "exchanges": [ { @@ -36546,7 +36569,7 @@ "optional": false, "rule": { "is": "equal", - "value": "GET" + "value": "PUT" } }, { @@ -36562,31 +36585,40 @@ "optional": false, "rule": { "is": "equal", - "value": "" + "value": "Zmlyc3Q=" } }, { - "at": "/query/comp", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "tags" + "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-type": "application/xml", "date": { "from": "now" - } + }, + "x-ms-error-code": "DuplicateTagNames" }, "body": { "encoding": "utf8", - "data": "projectobject-tests" + "data": "DuplicateTagNamesFixture error" } } } @@ -36599,27 +36631,75 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/tags", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": { - "project": "object-tests" - } + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "DuplicateTagNames" } } ], - "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": "DuplicateTagNames" + } + } + ], + "decline_permitted": true }, { - "id": "operations/azure/get-tags-none", + "id": "operations/azure/get-tags", "profile": "azure", "lane": "core", - "purpose": "Report no blob index tags for a blob without any, which Azure answers with an empty TagSet", + "purpose": "Read the tags of an object", "sources": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags" ], @@ -36677,7 +36757,7 @@ }, "body": { "encoding": "utf8", - "data": "" + "data": "projectobject-tests" } } } @@ -36698,26 +36778,25 @@ "optional": false, "rule": { "is": "equal", - "value": {} + "value": { + "project": "object-tests" + } } } ], "refusal": null }, { - "id": "operations/azure/set-tags", + "id": "operations/azure/get-tags-none", "profile": "azure", "lane": "core", - "purpose": "Replace the tags of an object", + "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/set-blob-tags" + "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags" ], "call": { "key": "object-tests/tags/object.txt", - "op": "azure.set_tags", - "tags": { - "project": "object-tests" - } + "op": "azure.get_tags" }, "exchanges": [ { @@ -36729,7 +36808,7 @@ "optional": false, "rule": { "is": "equal", - "value": "PUT" + "value": "GET" } }, { @@ -36741,11 +36820,11 @@ } }, { - "at": "/body_text", + "at": "/body_base64", "optional": false, "rule": { - "is": "xml", - "value": "projectobject-tests" + "is": "equal", + "value": "" } }, { @@ -36755,30 +36834,21 @@ "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, + "status": 200, "headers": { + "content-type": "application/xml", "date": { "from": "now" } }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "" } } } @@ -36793,15 +36863,23 @@ "is": "equal", "value": "ok" } + }, + { + "at": "/value/tags", + "optional": false, + "rule": { + "is": "equal", + "value": {} + } } ], "refusal": null }, { - "id": "operations/azure/set-tags-10-tags", + "id": "operations/azure/set-tags", "profile": "azure", "lane": "core", - "purpose": "Set 10 tags, the most an object takes", + "purpose": "Replace the tags of an object", "sources": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], @@ -36809,16 +36887,7 @@ "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" + "project": "object-tests" } }, "exchanges": [ @@ -36847,7 +36916,7 @@ "optional": false, "rule": { "is": "xml", - "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9" + "value": "projectobject-tests" } }, { @@ -36900,10 +36969,10 @@ "refusal": null }, { - "id": "operations/azure/set-tags-11-tags", + "id": "operations/azure/set-tags-10-tags", "profile": "azure", "lane": "core", - "purpose": "Report 11 tags, one more than an object takes, as an error. A client may refuse them", + "purpose": "Set 10 tags, the most an object takes", "sources": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], @@ -36920,8 +36989,7 @@ "tag06": "value6", "tag07": "value7", "tag08": "value8", - "tag09": "value9", - "tag10": "value10" + "tag09": "value9" } }, "exchanges": [ @@ -36950,7 +37018,7 @@ "optional": false, "rule": { "is": "xml", - "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9tag10value10" + "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9" } }, { @@ -36976,17 +37044,14 @@ "allow_headers": [], "allow_query": [], "response": { - "status": 400, + "status": 204, "headers": { - "content-type": "application/xml", "date": { "from": "now" - }, - "x-ms-error-code": "TagsTooLarge" + } }, "body": { - "encoding": "utf8", - "data": "TagsTooLargeFixture error" + "encoding": "empty" } } } @@ -36999,74 +37064,17 @@ "optional": false, "rule": { "is": "equal", - "value": "error" - } - }, - { - "at": "/status", - "optional": false, - "rule": { - "is": "equal", - "value": 400 - } - }, - { - "at": "/code", - "optional": false, - "rule": { - "is": "equal", - "value": "TagsTooLarge" + "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": "tags" - } - }, - { - "at": "/status", - "optional": true, - "rule": { - "is": "equal", - "value": 400 - } - }, - { - "at": "/code", - "optional": true, - "rule": { - "is": "equal", - "value": "TagsTooLarge" - } - } - ] + "refusal": null }, { - "id": "operations/azure/set-tags-key-128", + "id": "operations/azure/set-tags-11-tags", "profile": "azure", "lane": "core", - "purpose": "Set a tag whose key has 128 characters, the longest a key may be", + "purpose": "Report 11 tags, one more than an object takes, as an error. A client may refuse them", "sources": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], @@ -37074,7 +37082,17 @@ "key": "object-tests/tags/object.txt", "op": "azure.set_tags", "tags": { - "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v" + "tag00": "value0", + "tag01": "value1", + "tag02": "value2", + "tag03": "value3", + "tag04": "value4", + "tag05": "value5", + "tag06": "value6", + "tag07": "value7", + "tag08": "value8", + "tag09": "value9", + "tag10": "value10" } }, "exchanges": [ @@ -37103,7 +37121,160 @@ "optional": false, "rule": { "is": "xml", - "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkv" + "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9tag10value10" + } + }, + { + "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": "TagsTooLarge" + }, + "body": { + "encoding": "utf8", + "data": "TagsTooLargeFixture 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": "TagsTooLarge" + } + } + ], + "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": "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" } }, { @@ -37801,18 +37972,26 @@ ] }, { - "id": "operations/azure/put-with-tier", + "id": "operations/azure/set-tags-duplicate-key", "profile": "azure", "lane": "core", - "purpose": "Write an object straight into the Cool access tier", + "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": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags" ], "call": { - "body_base64": "Zmlyc3Q=", - "key": "object-tests/tiers/object.txt", - "op": "put", - "tier": "Cool" + "key": "object-tests/tags/object.txt", + "op": "azure.set_tags", + "tags": [ + { + "key": "project", + "value": "a" + }, + { + "key": "project", + "value": "b" + } + ] }, "exchanges": [ { @@ -37832,48 +38011,51 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/tiers/object.txt" + "value": "/fixture/object-tests/tags/object.txt" } }, { - "at": "/body_base64", + "at": "/body_text", "optional": false, "rule": { - "is": "equal", - "value": "Zmlyc3Q=" + "is": "xml", + "value": "projectaprojectb" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "tags" } }, { - "at": "/headers/x-ms-access-tier", + "at": "/headers/content-type", "optional": false, "rule": { - "is": "equal", - "value": "Cool" + "is": "one_of", + "values": [ + "application/xml", + "application/xml; charset=UTF-8" + ] } } ], "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" + "x-ms-error-code": "InvalidXmlDocument" }, "body": { - "encoding": "empty" + "encoding": "utf8", + "data": "InvalidXmlDocumentFixture error" } } } @@ -37886,24 +38068,174 @@ "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": "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/set-tier-unknown", + "id": "operations/azure/put-with-tier", "profile": "azure", "lane": "core", - "purpose": "Refuse an access tier the service does not have", + "purpose": "Write an object straight into the Cool access tier", "sources": [ - "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier" + "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob" ], "call": { + "body_base64": "Zmlyc3Q=", "key": "object-tests/tiers/object.txt", - "op": "azure.set_tier", - "tier": "Warm" + "op": "put", + "tier": "Cool" + }, + "exchanges": [ + { + "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": "/outcome", + "optional": false, + "rule": { + "is": "equal", + "value": "ok" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/set-tier-unknown", + "profile": "azure", + "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": [ { @@ -39095,16 +39427,16 @@ "refusal": null }, { - "id": "operations/azure/put-content-type-edge-spaces", + "id": "operations/azure/put-content-type-non-ascii", "profile": "azure", "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", + "purpose": "Write a Content-Type with a parameter outside ASCII. A flat account returns the UTF-8 bytes as it got them, so they read back; an RFC 2047 encoded word is stored as written", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { "body_base64": "MDEyMzQ1Njc4OQ==", - "content_type": " text/plain ", + "content_type": "text/plain; name=\"été.txt\"", "key": "object-tests/write/object.txt", "op": "put" }, @@ -39149,8 +39481,11 @@ "at": "/headers/x-ms-blob-content-type", "optional": false, "rule": { - "is": "equal", - "value": "text/plain" + "is": "one_of", + "values": [ + "text/plain; name=\"été.txt\"", + "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" + ] } } ], @@ -39176,7 +39511,55 @@ "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-content-disposition-non-ascii", + "profile": "azure", + "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* or an RFC 2047 encoded word, 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": [ + { + "alternatives": [ { "request": [ { @@ -39212,11 +39595,14 @@ } }, { - "at": "/headers/content-type", + "at": "/headers/x-ms-blob-content-disposition", "optional": false, "rule": { - "is": "equal", - "value": "text/plain" + "is": "one_of", + "values": [ + "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", + "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" + ] } } ], @@ -39294,22 +39680,39 @@ "optional": false, "rule": { "is": "equal", - "value": "content_type" + "value": "content_disposition" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "InvalidMetadata" } } ] }, { - "id": "operations/azure/put-first-version", + "id": "operations/azure/put-content-type-edge-spaces", "profile": "azure", "lane": "core", - "purpose": "put first version", + "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": "djE=", - "key": "object-tests/versions-mtydohr2/object.txt", + "body_base64": "MDEyMzQ1Njc4OQ==", + "content_type": " text/plain ", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -39330,7 +39733,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtydohr2/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -39338,7 +39741,7 @@ "optional": false, "rule": { "is": "equal", - "value": "djE=" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -39348,6 +39751,14 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-blob-content-type", + "optional": false, + "rule": { + "is": "equal", + "value": "text/plain" + } } ], "allow_headers": [ @@ -39357,70 +39768,22 @@ "response": { "status": 201, "headers": { - "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-5769a0807b46\"", + "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.2318906Z" + "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-5769a0807b46\"" - } - }, - { - "at": "/value/version", - "optional": false, - "rule": { - "is": "equal", - "value": "2024-01-01T00:00:00.2318906Z" - } - } - ], - "refusal": null - }, - { - "id": "operations/azure/put-if-match-current", - "profile": "azure", - "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-b9991ef94e3d\"", - "key": "object-tests/write/object.txt", - "op": "put" - }, - "exchanges": [ - { - "alternatives": [ + }, { "request": [ { @@ -39444,23 +39807,23 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/if-match", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-b9991ef94e3d\"" + "value": "BlockBlob" } }, { - "at": "/headers/x-ms-blob-type", + "at": "/headers/content-type", "optional": false, "rule": { "is": "equal", - "value": "BlockBlob" + "value": "text/plain" } } ], @@ -39471,15 +39834,259 @@ "response": { "status": 201, "headers": { - "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-3e075954b24b\"", + "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.3814952Z" + "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": [ + { + "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" + } + } + ] + }, + { + "id": "operations/azure/put-first-version", + "profile": "azure", + "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-mtydohr2/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/versions-mtydohr2/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-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": "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/version", + "optional": false, + "rule": { + "is": "equal", + "value": "2024-01-01T00:00:00.2318906Z" + } + } + ], + "refusal": null + }, + { + "id": "operations/azure/put-if-match-current", + "profile": "azure", + "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-b9991ef94e3d\"", + "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": "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" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 201, + "headers": { + "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", + "date": { + "from": "now" + }, + "etag": "\"fixture-3e075954b24b\"", + "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.3814952Z" }, "body": { "encoding": "base64", @@ -85172,16 +85779,16 @@ "refusal": null }, { - "id": "operations/azure-hns/put-content-type-edge-spaces", + "id": "operations/azure-hns/put-content-type-non-ascii", "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", + "purpose": "Write a Content-Type with a parameter outside ASCII. An HNS account returns é as the byte e9, so the UTF-8 bytes do not read back; send an RFC 2047 encoded word, or refuse the value", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { "body_base64": "MDEyMzQ1Njc4OQ==", - "content_type": " text/plain ", + "content_type": "text/plain; name=\"été.txt\"", "key": "object-tests/write/object.txt", "op": "put" }, @@ -85227,72 +85834,7 @@ "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" + "value": "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" } } ], @@ -85378,16 +85920,17 @@ ] }, { - "id": "operations/azure-hns/put-first-version", + "id": "operations/azure-hns/put-content-disposition-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "put first version", + "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* or an RFC 2047 encoded word, or refuse the value", "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", + "body_base64": "MDEyMzQ1Njc4OQ==", + "content_disposition": "attachment; filename=\"été.txt\"", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -85408,7 +85951,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -85416,7 +85959,7 @@ "optional": false, "rule": { "is": "equal", - "value": "djE=" + "value": "MDEyMzQ1Njc4OQ==" } }, { @@ -85426,6 +85969,17 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/x-ms-blob-content-disposition", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", + "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" + ] + } } ], "allow_headers": [ @@ -85435,11 +85989,11 @@ "response": { "status": 201, "headers": { - "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-36af044f7dd6\"", + "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" @@ -85467,7 +86021,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-36af044f7dd6\"" + "value": "\"fixture-bf139483d631\"" } }, { @@ -85482,19 +86036,60 @@ } } ], - "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_disposition" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "InvalidMetadata" + } + } + ] }, { - "id": "operations/azure-hns/put-if-match-current", + "id": "operations/azure-hns/put-content-type-edge-spaces", "profile": "azure-hns", "lane": "core", - "purpose": "put if match current", + "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": "cmVwbGFjZWQ=", - "if_match": "\"fixture-bf139483d631\"", + "body_base64": "MDEyMzQ1Njc4OQ==", + "content_type": " text/plain ", "key": "object-tests/write/object.txt", "op": "put" }, @@ -85524,15 +86119,72 @@ "optional": false, "rule": { "is": "equal", - "value": "cmVwbGFjZWQ=" + "value": "MDEyMzQ1Njc4OQ==" } }, { - "at": "/headers/if-match", + "at": "/headers/x-ms-blob-type", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf139483d631\"" + "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==" } }, { @@ -85542,6 +86194,14 @@ "is": "equal", "value": "BlockBlob" } + }, + { + "at": "/headers/content-type", + "optional": false, + "rule": { + "is": "equal", + "value": "text/plain" + } } ], "allow_headers": [ @@ -85551,11 +86211,11 @@ "response": { "status": 201, "headers": { - "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", + "content-md5": "eB5eJF1ptWaXm4bijSPyxw==", "date": { "from": "now" }, - "etag": "\"fixture-12045b9dfdc3\"", + "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" @@ -85583,7 +86243,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-12045b9dfdc3\"" + "value": "\"fixture-bf139483d631\"" } }, { @@ -85598,20 +86258,44 @@ } } ], - "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" + } + } + ] }, { - "id": "operations/azure-hns/put-if-none-match-missing", + "id": "operations/azure-hns/put-first-version", "profile": "azure-hns", "lane": "core", - "purpose": "put if none match missing", + "purpose": "put first version", "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", + "body_base64": "djE=", + "key": "object-tests/versions-mtypy4jp/object.txt", "op": "put" }, "exchanges": [ @@ -85632,7 +86316,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/fresh.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -85640,15 +86324,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ZnJlc2g=" - } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" + "value": "djE=" } }, { @@ -85667,11 +86343,11 @@ "response": { "status": 201, "headers": { - "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", + "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==", "date": { "from": "now" }, - "etag": "\"fixture-5be249955d3d\"", + "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" @@ -85699,7 +86375,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-5be249955d3d\"" + "value": "\"fixture-36af044f7dd6\"" } }, { @@ -85717,16 +86393,17 @@ "refusal": null }, { - "id": "operations/azure-hns/put-key-1024", + "id": "operations/azure-hns/put-if-match-current", "profile": "azure-hns", "lane": "core", - "purpose": "put key 1024", + "purpose": "put if match current", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "body_base64": "cmVwbGFjZWQ=", + "if_match": "\"fixture-bf139483d631\"", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -85747,7 +86424,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -85755,7 +86432,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "cmVwbGFjZWQ=" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-bf139483d631\"" } }, { @@ -85774,11 +86459,11 @@ "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==", "date": { "from": "now" }, - "etag": "\"fixture-f5596350d7a5\"", + "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" @@ -85806,7 +86491,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-f5596350d7a5\"" + "value": "\"fixture-12045b9dfdc3\"" } }, { @@ -85824,16 +86509,17 @@ "refusal": null }, { - "id": "operations/azure-hns/put-key-1025", + "id": "operations/azure-hns/put-if-none-match-missing", "profile": "azure-hns", "lane": "core", - "purpose": "put key 1025", + "purpose": "put if none match missing", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "MQ==", - "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", + "body_base64": "ZnJlc2g=", + "if_none_match": "*", + "key": "object-tests/write/fresh.txt", "op": "put" }, "exchanges": [ @@ -85854,7 +86540,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + "value": "/fixture/object-tests/write/fresh.txt" } }, { @@ -85862,7 +86548,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "ZnJlc2g=" + } + }, + { + "at": "/headers/if-none-match", + "optional": false, + "rule": { + "is": "equal", + "value": "*" } }, { @@ -85881,11 +86575,11 @@ "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==", "date": { "from": "now" }, - "etag": "\"fixture-16d1c2f31d98\"", + "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" @@ -85913,7 +86607,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-16d1c2f31d98\"" + "value": "\"fixture-5be249955d3d\"" } }, { @@ -85931,16 +86625,16 @@ "refusal": null }, { - "id": "operations/azure-hns/put-key-under-object", + "id": "operations/azure-hns/put-key-1024", "profile": "azure-hns", "lane": "core", - "purpose": "put key under object", + "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/order/a/b", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "op": "put" }, "exchanges": [ @@ -85961,7 +86655,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/order/a/b" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -85986,17 +86680,20 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "x-ms-error-code": "BlobNotFound" + "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": "utf8", - "data": "BlobNotFoundFixture error" + "encoding": "base64", + "data": "" } } } @@ -86009,40 +86706,42 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 404 + "value": "\"fixture-f5596350d7a5\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "BlobNotFound" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/put-lost-the-race-to-create", + "id": "operations/azure-hns/put-key-1025", "profile": "azure-hns", "lane": "core", - "purpose": "put lost the race to create", + "purpose": "put key 1025", "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", + "body_base64": "MQ==", + "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "op": "put" }, "exchanges": [ @@ -86063,7 +86762,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" } }, { @@ -86071,15 +86770,7 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" - } - }, - { - "at": "/headers/if-none-match", - "optional": false, - "rule": { - "is": "equal", - "value": "*" + "value": "MQ==" } }, { @@ -86096,17 +86787,20 @@ ], "allow_query": [], "response": { - "status": 409, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "x-ms-error-code": "BlobAlreadyExists" + "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": "utf8", - "data": "BlobAlreadyExistsFixture error" + "encoding": "base64", + "data": "" } } } @@ -86119,43 +86813,42 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 409 + "value": "\"fixture-16d1c2f31d98\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "BlobAlreadyExists" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/put-md5-mismatch", + "id": "operations/azure-hns/put-key-under-object", "profile": "azure-hns", "lane": "core", - "purpose": "put md5 mismatch", + "purpose": "put key under 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", + "body_base64": "MQ==", + "key": "object-tests/order/a/b", "op": "put" }, "exchanges": [ @@ -86176,7 +86869,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5-mismatch.txt" + "value": "/fixture/object-tests/order/a/b" } }, { @@ -86184,15 +86877,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" - } - }, - { - "at": "/headers/content-md5", - "optional": false, - "rule": { - "is": "equal", - "value": "eV8yArF8trw9S3cdjGyerw==" + "value": "MQ==" } }, { @@ -86209,17 +86894,17 @@ ], "allow_query": [], "response": { - "status": 400, + "status": 404, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "Md5Mismatch" + "x-ms-error-code": "BlobNotFound" }, "body": { "encoding": "utf8", - "data": "Md5MismatchFixture error" + "data": "BlobNotFoundFixture error" } } } @@ -86240,7 +86925,7 @@ "optional": false, "rule": { "is": "equal", - "value": 400 + "value": 404 } }, { @@ -86248,26 +86933,24 @@ "optional": false, "rule": { "is": "equal", - "value": "Md5Mismatch" + "value": "BlobNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-metadata-empty-value", + "id": "operations/azure-hns/put-lost-the-race-to-create", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata empty value", + "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": "MQ==", - "key": "object-tests/metadata/empty-value.txt", - "metadata": { - "empty": "" - }, + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_none_match": "*", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -86288,7 +86971,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/empty-value.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -86296,15 +86979,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "YW5vdGhlciBvYmplY3Q=" } }, { - "at": "/headers/x-ms-meta-empty", + "at": "/headers/if-none-match", "optional": false, "rule": { "is": "equal", - "value": "" + "value": "*" } }, { @@ -86321,20 +87004,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 409, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-type": "application/xml", "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" + "x-ms-error-code": "BlobAlreadyExists" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "BlobAlreadyExistsFixture error" } } } @@ -86347,45 +87027,43 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-18852ad86043\"" + "value": 409 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "is": "equal", + "value": "BlobAlreadyExists" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-metadata-invalid-name", + "id": "operations/azure-hns/put-md5-mismatch", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata invalid name", + "purpose": "put md5 mismatch", "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" + "body_base64": "ZGVjbGFyZWQtYm9keQ==", + "checksum": { + "algorithm": "md5", + "value_base64": "eV8yArF8trw9S3cdjGyerw==" }, + "key": "object-tests/hashes/md5-mismatch.txt", "op": "put" }, "exchanges": [ @@ -86406,7 +87084,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/invalid-name.txt" + "value": "/fixture/object-tests/hashes/md5-mismatch.txt" } }, { @@ -86414,15 +87092,15 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" + "value": "ZGVjbGFyZWQtYm9keQ==" } }, { - "at": "/headers/x-ms-meta-not-valid", + "at": "/headers/content-md5", "optional": false, "rule": { "is": "equal", - "value": "1" + "value": "eV8yArF8trw9S3cdjGyerw==" } }, { @@ -86445,11 +87123,11 @@ "date": { "from": "now" }, - "x-ms-error-code": "InvalidMetadata" + "x-ms-error-code": "Md5Mismatch" }, "body": { "encoding": "utf8", - "data": "InvalidMetadataFixture error" + "data": "Md5MismatchFixture error" } } } @@ -86478,64 +87156,26 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidMetadata" + "value": "Md5Mismatch" } } ], - "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" - } - } - ] + "refusal": null }, { - "id": "operations/azure-hns/put-metadata-replaced", + "id": "operations/azure-hns/put-metadata-empty-value", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata replaced", + "purpose": "put metadata empty value", "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", + "body_base64": "MQ==", + "key": "object-tests/metadata/empty-value.txt", + "metadata": { + "empty": "" + }, "op": "put" }, "exchanges": [ @@ -86556,7 +87196,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/replaced.txt" + "value": "/fixture/object-tests/metadata/empty-value.txt" } }, { @@ -86564,7 +87204,15 @@ "optional": false, "rule": { "is": "equal", - "value": "Mg==" + "value": "MQ==" + } + }, + { + "at": "/headers/x-ms-meta-empty", + "optional": false, + "rule": { + "is": "equal", + "value": "" } }, { @@ -86583,11 +87231,11 @@ "response": { "status": 201, "headers": { - "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-c24dabf9e117\"", + "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" @@ -86615,7 +87263,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-c24dabf9e117\"" + "value": "\"fixture-18852ad86043\"" } }, { @@ -86633,19 +87281,18 @@ "refusal": null }, { - "id": "operations/azure-hns/put-metadata", + "id": "operations/azure-hns/put-metadata-invalid-name", "profile": "azure-hns", "lane": "core", - "purpose": "put metadata", + "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/object.txt", + "key": "object-tests/metadata/invalid-name.txt", "metadata": { - "name": "value", - "second": "2" + "not-valid": "1" }, "op": "put" }, @@ -86667,7 +87314,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/object.txt" + "value": "/fixture/object-tests/metadata/invalid-name.txt" } }, { @@ -86679,19 +87326,11 @@ } }, { - "at": "/headers/x-ms-meta-name", - "optional": false, - "rule": { - "is": "equal", - "value": "value" - } - }, - { - "at": "/headers/x-ms-meta-second", + "at": "/headers/x-ms-meta-not-valid", "optional": false, "rule": { "is": "equal", - "value": "2" + "value": "1" } }, { @@ -86708,20 +87347,17 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 400, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-type": "application/xml", "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" + "x-ms-error-code": "InvalidMetadata" }, "body": { - "encoding": "base64", - "data": "" + "encoding": "utf8", + "data": "InvalidMetadataFixture error" } } } @@ -86734,45 +87370,80 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4d04dba3441e\"" + "value": 400 } }, { - "at": "/value/version", - "optional": true, + "at": "/code", + "optional": false, "rule": { - "is": "one_of", - "values": [ - null, - "" - ] + "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-hns/put-metadata-identifier-name", + "id": "operations/azure-hns/put-metadata-replaced", "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": "put metadata replaced", "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" - }, + "body_base64": "Mg==", + "key": "object-tests/metadata/replaced.txt", "op": "put" }, "exchanges": [ @@ -86793,7 +87464,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/metadata/identifier-name.txt" + "value": "/fixture/object-tests/metadata/replaced.txt" } }, { @@ -86801,15 +87472,7 @@ "optional": false, "rule": { "is": "equal", - "value": "MQ==" - } - }, - { - "at": "/headers/x-ms-meta-_a1", - "optional": false, - "rule": { - "is": "equal", - "value": "1" + "value": "Mg==" } }, { @@ -86828,11 +87491,11 @@ "response": { "status": 201, "headers": { - "content-md5": "xMpCOKC5I4INzFCab3WEmw==", + "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==", "date": { "from": "now" }, - "etag": "\"fixture-4d04dba3441e\"", + "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" @@ -86860,7 +87523,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-4d04dba3441e\"" + "value": "\"fixture-c24dabf9e117\"" } }, { @@ -86878,16 +87541,20 @@ "refusal": null }, { - "id": "operations/azure-hns/put-over-snapshotted", + "id": "operations/azure-hns/put-metadata", "profile": "azure-hns", "lane": "core", - "purpose": "put over snapshotted", + "purpose": "put metadata", "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", + "body_base64": "MQ==", + "key": "object-tests/metadata/object.txt", + "metadata": { + "name": "value", + "second": "2" + }, "op": "put" }, "exchanges": [ @@ -86908,7 +87575,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/snapshots/object.txt" + "value": "/fixture/object-tests/metadata/object.txt" } }, { @@ -86916,7 +87583,23 @@ "optional": false, "rule": { "is": "equal", - "value": "dHdv" + "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" } }, { @@ -86935,11 +87618,11 @@ "response": { "status": 201, "headers": { - "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-810306ce8bc4\"", + "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" @@ -86967,7 +87650,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-810306ce8bc4\"" + "value": "\"fixture-4d04dba3441e\"" } }, { @@ -86985,16 +87668,19 @@ "refusal": null }, { - "id": "operations/azure-hns/put-overwrite", + "id": "operations/azure-hns/put-metadata-identifier-name", "profile": "azure-hns", "lane": "core", - "purpose": "put overwrite", + "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": "b3ZlcndyaXR0ZW4=", - "key": "object-tests/write/object.txt", + "body_base64": "MQ==", + "key": "object-tests/metadata/identifier-name.txt", + "metadata": { + "_a1": "1" + }, "op": "put" }, "exchanges": [ @@ -87015,7 +87701,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/metadata/identifier-name.txt" } }, { @@ -87023,7 +87709,15 @@ "optional": false, "rule": { "is": "equal", - "value": "b3ZlcndyaXR0ZW4=" + "value": "MQ==" + } + }, + { + "at": "/headers/x-ms-meta-_a1", + "optional": false, + "rule": { + "is": "equal", + "value": "1" } }, { @@ -87042,11 +87736,11 @@ "response": { "status": 201, "headers": { - "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==", + "content-md5": "xMpCOKC5I4INzFCab3WEmw==", "date": { "from": "now" }, - "etag": "\"fixture-3da2f422ef3c\"", + "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" @@ -87074,7 +87768,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-3da2f422ef3c\"" + "value": "\"fixture-4d04dba3441e\"" } }, { @@ -87092,17 +87786,16 @@ "refusal": null }, { - "id": "operations/azure-hns/put-precondition-failed", + "id": "operations/azure-hns/put-over-snapshotted", "profile": "azure-hns", "lane": "core", - "purpose": "put precondition failed", + "purpose": "put over snapshotted", "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", + "body_base64": "dHdv", + "key": "object-tests/snapshots/object.txt", "op": "put" }, "exchanges": [ @@ -87123,7 +87816,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object-tests/snapshots/object.txt" } }, { @@ -87131,15 +87824,7 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "dHdv" } }, { @@ -87156,17 +87841,20 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==", "date": { "from": "now" }, - "x-ms-error-code": "ConditionNotMet" + "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": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -87179,42 +87867,41 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-810306ce8bc4\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "ConditionNotMet" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/put-precondition-failed-code-in-body", + "id": "operations/azure-hns/put-overwrite", "profile": "azure-hns", "lane": "core", - "purpose": "put precondition failed, with the error code only in the XML body", + "purpose": "put overwrite", "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": { - "body_base64": "YW5vdGhlciBvYmplY3Q=", - "if_match": "\"fixture-088e5dc109cf\"", + "body_base64": "b3ZlcndyaXR0ZW4=", "key": "object-tests/write/object.txt", "op": "put" }, @@ -87244,15 +87931,7 @@ "optional": false, "rule": { "is": "equal", - "value": "YW5vdGhlciBvYmplY3Q=" - } - }, - { - "at": "/headers/if-match", - "optional": false, - "rule": { - "is": "equal", - "value": "\"fixture-088e5dc109cf\"" + "value": "b3ZlcndyaXR0ZW4=" } }, { @@ -87269,16 +87948,20 @@ ], "allow_query": [], "response": { - "status": 412, + "status": 201, "headers": { - "content-type": "application/xml", + "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": "utf8", - "data": "ConditionNotMetFixture error" + "encoding": "base64", + "data": "" } } } @@ -87291,39 +87974,43 @@ "optional": false, "rule": { "is": "equal", - "value": "error" + "value": "ok" } }, { - "at": "/status", + "at": "/value/etag", "optional": false, "rule": { "is": "equal", - "value": 412 + "value": "\"fixture-3da2f422ef3c\"" } }, { - "at": "/code", - "optional": false, + "at": "/value/version", + "optional": true, "rule": { - "is": "equal", - "value": "ConditionNotMet" + "is": "one_of", + "values": [ + null, + "" + ] } } ], "refusal": null }, { - "id": "operations/azure-hns/put-refused", + "id": "operations/azure-hns/put-precondition-failed", "profile": "azure-hns", "lane": "core", - "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.", + "purpose": "put precondition failed", "sources": [ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp" ], "call": { - "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object.txt", + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -87344,7 +88031,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -87352,7 +88039,15 @@ "optional": false, "rule": { "is": "equal", - "value": "bm90aGluZyBpcyBzdG9yZWQ=" + "value": "YW5vdGhlciBvYmplY3Q=" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-088e5dc109cf\"" } }, { @@ -87369,17 +88064,17 @@ ], "allow_query": [], "response": { - "status": 404, + "status": 412, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "ContainerNotFound" + "x-ms-error-code": "ConditionNotMet" }, "body": { "encoding": "utf8", - "data": "ContainerNotFoundFixture error" + "data": "ConditionNotMetFixture error" } } } @@ -87400,7 +88095,7 @@ "optional": false, "rule": { "is": "equal", - "value": 404 + "value": 412 } }, { @@ -87408,23 +88103,27 @@ "optional": false, "rule": { "is": "equal", - "value": "ContainerNotFound" + "value": "ConditionNotMet" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-second-version", + "id": "operations/azure-hns/put-precondition-failed-code-in-body", "profile": "azure-hns", "lane": "core", - "purpose": "put second version", + "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" + "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": "djI=", - "key": "object-tests/versions-mtypy4jp/object.txt", + "body_base64": "YW5vdGhlciBvYmplY3Q=", + "if_match": "\"fixture-088e5dc109cf\"", + "key": "object-tests/write/object.txt", "op": "put" }, "exchanges": [ @@ -87445,7 +88144,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" + "value": "/fixture/object-tests/write/object.txt" } }, { @@ -87453,7 +88152,15 @@ "optional": false, "rule": { "is": "equal", - "value": "djI=" + "value": "YW5vdGhlciBvYmplY3Q=" + } + }, + { + "at": "/headers/if-match", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-088e5dc109cf\"" } }, { @@ -87470,20 +88177,16 @@ ], "allow_query": [], "response": { - "status": 201, + "status": 412, "headers": { - "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", + "content-type": "application/xml", "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": "" + "encoding": "utf8", + "data": "ConditionNotMetFixture error" } } } @@ -87496,33 +88199,30 @@ "optional": false, "rule": { "is": "equal", - "value": "ok" + "value": "error" } }, { - "at": "/value/etag", + "at": "/status", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-ecff54f15562\"" + "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/put-unauthenticated", + "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.", @@ -87531,7 +88231,7 @@ ], "call": { "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=", - "key": "object-tests/write/object.txt", + "key": "object.txt", "op": "put" }, "exchanges": [ @@ -87552,7 +88252,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/write/object.txt" + "value": "/fixture/object.txt" } }, { @@ -87577,17 +88277,17 @@ ], "allow_query": [], "response": { - "status": 401, + "status": 404, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "InvalidAuthenticationInfo" + "x-ms-error-code": "ContainerNotFound" }, "body": { "encoding": "utf8", - "data": "InvalidAuthenticationInfoFixture error" + "data": "ContainerNotFoundFixture error" } } } @@ -87608,7 +88308,7 @@ "optional": false, "rule": { "is": "equal", - "value": 401 + "value": 404 } }, { @@ -87616,27 +88316,23 @@ "optional": false, "rule": { "is": "equal", - "value": "InvalidAuthenticationInfo" + "value": "ContainerNotFound" } } ], "refusal": null }, { - "id": "operations/azure-hns/put-with-crc64", + "id": "operations/azure-hns/put-second-version", "profile": "azure-hns", "lane": "core", - "purpose": "put with crc64", + "purpose": "put second version", "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", + "body_base64": "djI=", + "key": "object-tests/versions-mtypy4jp/object.txt", "op": "put" }, "exchanges": [ @@ -87657,7 +88353,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/crc64.txt" + "value": "/fixture/object-tests/versions-mtypy4jp/object.txt" } }, { @@ -87665,15 +88361,7 @@ "optional": false, "rule": { "is": "equal", - "value": "ZGVjbGFyZWQtYm9keQ==" - } - }, - { - "at": "/headers/x-ms-content-crc64", - "optional": false, - "rule": { - "is": "equal", - "value": "9XBvAwWoR9o=" + "value": "djI=" } }, { @@ -87692,11 +88380,11 @@ "response": { "status": 201, "headers": { - "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==", + "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==", "date": { "from": "now" }, - "etag": "\"fixture-bf462a2f52f2\"", + "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" @@ -87724,7 +88412,7 @@ "optional": false, "rule": { "is": "equal", - "value": "\"fixture-bf462a2f52f2\"" + "value": "\"fixture-ecff54f15562\"" } }, { @@ -87742,20 +88430,121 @@ "refusal": null }, { - "id": "operations/azure-hns/put-with-md5", + "id": "operations/azure-hns/put-unauthenticated", "profile": "azure-hns", "lane": "core", - "purpose": "put with md5", + "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": [ + { + "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": "/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": "md5", - "value_base64": "N6YZkbg+Lyfxtskwn8iRCg==" + "algorithm": "azure_crc64", + "value_base64": "9XBvAwWoR9o=" }, - "key": "object-tests/hashes/md5.txt", + "key": "object-tests/hashes/crc64.txt", "op": "put" }, "exchanges": [ @@ -87776,7 +88565,7 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/hashes/md5.txt" + "value": "/fixture/object-tests/hashes/crc64.txt" } }, { @@ -87788,11 +88577,11 @@ } }, { - "at": "/headers/content-md5", + "at": "/headers/x-ms-content-crc64", "optional": false, "rule": { "is": "equal", - "value": "N6YZkbg+Lyfxtskwn8iRCg==" + "value": "9XBvAwWoR9o=" } }, { @@ -87815,7 +88604,126 @@ "date": { "from": "now" }, - "etag": "\"fixture-15ae0acd3480\"", + "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": "ok" + } + }, + { + "at": "/value/etag", + "optional": false, + "rule": { + "is": "equal", + "value": "\"fixture-bf462a2f52f2\"" + } + }, + { + "at": "/value/version", + "optional": true, + "rule": { + "is": "one_of", + "values": [ + null, + "" + ] + } + } + ], + "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": [ + { + "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" @@ -132345,6 +133253,159 @@ ], "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": [ + { + "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-amz-tagging", + "optional": false, + "rule": { + "is": "equal", + "value": "project=a&project=b" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 400, + "headers": { + "content-type": "application/xml", + "date": { + "from": "now" + } + }, + "body": { + "encoding": "utf8", + "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", @@ -133699,6 +134760,175 @@ } ] }, + { + "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": [ + { + "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": "error" + } + }, + { + "at": "/status", + "optional": false, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": false, + "rule": { + "is": "equal", + "value": "InvalidTag" + } + } + ], + "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" + } + } + ], + "decline_permitted": true + }, { "id": "operations/s3/put-internal-error", "profile": "s3", @@ -134286,16 +135516,233 @@ "refusal": null }, { - "id": "operations/s3/put-if-unmodified-since-past", + "id": "operations/s3/put-content-type-non-ascii", "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", + "purpose": "Write a Content-Type with a parameter outside ASCII. A general-purpose bucket returns header bytes as it got them, so the UTF-8 bytes read back; an RFC 2047 encoded word is stored as written", "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", + "content_type": "text/plain; name=\"été.txt\"", + "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/content-type", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "text/plain; name=\"été.txt\"", + "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" + ] + } + } + ], + "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": "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-disposition-non-ascii", + "profile": "s3", + "lane": "core", + "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* or an RFC 2047 encoded word is stored as written", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "body_base64": "MDEyMzQ1Njc4OQ==", + "content_disposition": "attachment; filename=\"été.txt\"", + "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/content-disposition", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "attachment; filename=\"été.txt\"", + "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", + "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" + ] + } + } + ], + "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": "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" }, @@ -199018,6 +200465,497 @@ ], "refusal": null }, + { + "id": "operations/s3-express/put-content-type-non-ascii", + "profile": "s3-express", + "lane": "core", + "purpose": "Write a Content-Type with a parameter outside ASCII. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, so send an RFC 2047 encoded word, or refuse the value", + "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": [ + { + "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" + } + }, + { + "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" + } + }, + { + "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/content-type", + "optional": false, + "rule": { + "is": "equal", + "value": "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 200, + "headers": { + "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\"" + } + }, + { + "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": "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-content-disposition-non-ascii", + "profile": "s3-express", + "lane": "core", + "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* or an RFC 2047 encoded word, or refuse the value", + "sources": [ + "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" + ], + "call": { + "body_base64": "MDEyMzQ1Njc4OQ==", + "content_disposition": "attachment; filename=\"été.txt\"", + "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" + } + }, + { + "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" + } + }, + { + "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/content-disposition", + "optional": false, + "rule": { + "is": "one_of", + "values": [ + "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", + "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" + ] + } + } + ], + "allow_headers": [ + "content-type" + ], + "allow_query": [], + "response": { + "status": 200, + "headers": { + "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\"" + } + }, + { + "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": "content_disposition" + } + }, + { + "at": "/status", + "optional": true, + "rule": { + "is": "equal", + "value": 400 + } + }, + { + "at": "/code", + "optional": true, + "rule": { + "is": "equal", + "value": "InvalidRequest" + } + } + ] + }, { "id": "operations/s3-express/put-content-type-edge-spaces", "profile": "s3-express", From 4909f502a1c208e27fd1b73708ffad6b40a31b90 Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 10:48:36 +0200 Subject: [PATCH 06/10] Ground the batch cases in recordings, and publish the protocol reference. The hand-written batch answers now say so and name the recorded case they edit in the new derived_from field; one without Content-IDs requires an error, and one with LF line endings accepts one. A bad token and a missing container were recorded live, and the synthesized parts follow Azure's layout. REFERENCE.md describes the grader, the adapter protocol with its error kinds and result fields, and the case format. Co-Authored-By: Claude Opus 5.5 (1M context) --- Cargo.toml | 2 +- README.md | 2 + REFERENCE.md | 205 ++++++++++++ cases/operations.json | 752 ++++++++++++++++++++++++++++++++++++------ src/model.rs | 5 + 5 files changed, 868 insertions(+), 98 deletions(-) create mode 100644 REFERENCE.md 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 d8bd6f1..edefeb1 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ There are also a few live tests that are just to see if you can actually make a | `vectors.json` | Digests and signatures | | `live.json` | Probes against a live service | +[REFERENCE.md](REFERENCE.md) describes the grader, the adapter protocol and its vocabulary, such as the error kinds and result fields, and the case format. + ## 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..bc368fc --- /dev/null +++ b/REFERENCE.md @@ -0,0 +1,205 @@ +# Grader reference + +The reference for the grader, its options, the adapter protocol and the case format. The [README](README.md) is a short introduction; this file keeps the detail. + +JSON conformance cases for Azure Blob and S3 clients. Core cases and signing vectors run offline through a loopback HTTP server; live probes require credentials. + +```nu +cargo build --locked +./target/debug/object-tests validate cases/operations.json +./target/debug/object-tests grade cases/operations.json --provider azure -- /path/to/azure-cpp +./target/debug/object-tests grade cases/operations.json --profile s3 -- /path/to/aws-s3-crt-adapter +./target/debug/object-tests grade cases/management.json --profile s3 -- /path/to/aws-s3-crt-adapter +./target/debug/object-tests grade cases/vectors.json --provider s3 -- /path/to/aws-c-s3-adapter +``` + +`adapters/` holds the supplied adapters, each with its own build. + +`--case ID` selects one case, `--provider` the cases of one service and `--profile` those of one profile, such as `s3` or `s3-express`. `--jobs N` grades N cases at once instead of one per CPU. Output is JSON lines: case verdicts followed by lane counts. Exit codes: `0` all passed, `1` wrong/failed/unsupported, `2` configuration error. + +## Suites + +| Suite | Contents | +|---|---| +| `operations.json` | Object operations over recorded HTTP | +| `management.json` | Bucket and container operations, such as CreateBucket, PutBucketVersioning and Create Container | +| `vectors.json` | Digests and signatures | +| `live.json` | Probes against a live service | + +A suite contains `version`, `index`, `profiles` and `cases`. The `index` maps each case ID to its purpose, so that a reader can survey the cases before their rules. + +## Expected unsupported cases + +A client can list the cases it expects to be unsupported, with the reason for each, by suite name: + +```json +{"operations":{"operations/azure/get-snapshot":"PhysicalGet selects no snapshot or version"}} +``` + +```nu +( + ./target/debug/object-tests grade cases/operations.json + --provider azure + --expected-unsupported unsupported.json + -- ADAPTER +) +``` + +The run then passes only when every listed case is unsupported and every other case passes. A regression, a wrong answer and a newly supported case each fail it. + +- An entry may be a pattern, in which `*` matches any run of characters: `"operations/s3/*"` covers every S3 case of the operations suite, and `"operations/azure*/lease-*"` every lease case of either Azure profile. +- An entry may name a result field, as `"field:/value/content_md5_base64"`, for a client that cannot report it. It covers every case that the result made unsupported only by leaving out declared fields that the list names this way. +- Every case an entry covers must be unsupported. An entry that covers no case of the suite is a configuration error. + +`--record-unsupported FILE` writes the list from a run instead. It keeps patterns and field entries, which you write by hand, and lists only the unsupported cases that none of them covers. + +## Adapter protocol + +One process per case: one JSON input on stdin, one JSON result on stdout, diagnostics on stderr. Limits: 30 seconds, 16 MiB requests and output. + +### Input + +```json +{"version":1,"mode":"offline","provider":"azure","endpoint":{"url":"http://127.0.0.1:PORT","account":"fixture","bucket":"fixture"},"call":{"op":"get","key":"literal%20"}} +``` + +- Configure the supplied endpoint and dummy credentials offline. +- If `endpoint.proxy_url` is supplied, use it as the HTTP proxy, and keep `endpoint.url` for addressing and signing. An offline adapter also finds the proxy in `HTTP_PROXY` and `http_proxy`. +- An S3 Express profile names a directory bucket with `endpoint.directory_bucket`, and in `management.json` its regional control endpoint in `endpoint.control_url`. +- Map `call` to SDK methods and return the properties the SDK exposes. Disable credential discovery and retries where supported. +- Do not encode keys in the adapter, repair SDK behavior or make extra calls to obtain missing properties. + +### Results + +```json +{"outcome":"ok","value":{"body_base64":"aGVsbG8=","etag":"\"opaque\""}} +{"outcome":"error","kind":"not_found","status":404,"code":"BlobNotFound"} +{"outcome":"refused","kind":"invalid_range","parameter":"range"} +{"outcome":"unsupported","reason":"not mapped","scope":"adapter"} +``` + +- `ok`: the call succeeded, and `value` holds its result. +- `error`: the service refused the call. It names the HTTP `status`, the service's `code` where the answer gives one, and a `kind`. +- `refused`: the client refused the call before sending. It names a `kind` and the call field it objects to as `parameter`. +- `unsupported`: the client cannot make the call. A result that names a `parameter` declines that parameter, which a case may permit. + +The `kind` of an error: + +| Kind | Meaning | +|---|---| +| `not_found` | The object is absent | +| `container_not_found` | The bucket or container is absent | +| `missing` | Something is absent, and the answer cannot say what, as for an S3 HEAD answered 404 without a body | +| `precondition` | A condition failed, 412 | +| `not_modified` | 304 to a condition on a read | +| `permission_denied` | 401 or 403 | +| `other` | Anything else | + +Only properties asserted by a case are required. Leave out a property that the SDK does not expose, and declare it in `unsupported_fields`, as in `[{"at":"/value/content_md5_base64","scope":"sdk","reason":"..."}]`. A case that misses only declared properties is `unsupported`; one that misses an undeclared property is `wrong`. + +### Calls + +The cases show every call in full. These conventions hold across them: + +- **Values.** Keys are unescaped. Bodies are base64, in `body_base64`. Conditions are opaque ETag strings, and dates are HTTP dates. +- **Ranges.** `range` and `source_range` are an offset and an exclusive end, `{"start": 28, "end": 64}`, an offset alone, or a suffix length, `{"suffix": 5}`. +- **Listings.** `list` consumes every page; `list_page` returns one page, its entries, prefixes and continuation token. `page_size` maps to the SDK's page limit, and `start_after` and `fetch_owner` to S3's `start-after` and `fetch-owner`. +- **Checksums.** A write names a checksum in `checksum`, with its `algorithm` and `value_base64`. Without `value_base64`, the client computes it from the body, and may send it in a header or in the trailer of an `aws-chunked` body. `checksums` names several, which the service refuses. +- **Tags.** Tags are an object, or a list of `{"key": ..., "value": ...}` pairs where order or a repeated key matters. +- **Content properties.** `content_type`, `content_encoding`, `content_language`, `content_disposition` and `cache_control` on a write; `tier` on Azure and `storage_class` on S3. +- **Copies.** A `copy` names its source in `source_key`. `source_bucket` on S3 or `source_container` on Azure names a source elsewhere, and `source_version` an earlier version. `source_if_match`, `source_if_none_match`, `source_if_modified_since` and `source_if_unmodified_since` are conditions on the source. `metadata`, `content_type`, `tags`, `storage_class` and `tier` on a copy replace the source's. `sync` asks Azure for Copy Blob From URL. +- **Provider operations.** Operations of one provider are named explicitly: + - Azure: `azure.stage_block`, `azure.stage_block_from_url`, `azure.put_from_url`, and `azure.abort_copy` with `copy_id`. + - S3: `s3.upload_part`, `s3.upload_part_copy`, `s3.put_bucket_versioning` with `status`, and `s3.create_bucket` with `availability_zone` for a directory bucket. + +### Result fields + +| Field | Holds | +|---|---| +| `body_base64`, `size` | The bytes read and their count | +| `etag`, `version`, `snapshot` | Identifiers the service gave | +| `content_type`, `content_encoding`, `content_language`, `content_disposition`, `cache_control` | Content properties | +| `content_md5_base64` | The stored MD5 | +| `metadata`, `tags` | Objects of names and values | +| `storage_class` | An S3 storage class, as S3 names it | +| `access_tier` | An Azure access tier, from `x-ms-access-tier` | +| `content_range` | The window a ranged read served, as `bytes FIRST-LAST/SIZE` | +| `copy_status`, `copy_id` | The state of an Azure copy, from a copy or a HEAD | +| `deleted`, `errors` | A batch delete's deleted keys, and its failures by `key`, `code` and Azure `status` | +| `upload_id`, `parts` | A multipart upload and its parts | +| `entries`, `prefixes`, `continuation_token`, `keys` | A listing | + +A listed entry reports `last_modified` in RFC 3339 in UTC with whole seconds, as `2024-01-02T03:04:05Z`. It reports `storage_class` as the service names it, `checksum_algorithm` as one name, such as `CRC32`, and `owner_id`. + +## Cases + +[Cases](cases/) are executable examples; [model.rs](src/model.rs) defines the schema. Each case declares its lane (`core`, `vectors`, `live`), `call`, HTTP `exchanges` and result `expect` checks. + +### Where the responses come from + +A case may declare its `origin`: how we know that a service sends its responses. + +- `observed`, the default and left out, means the service was seen to send them. +- `transient` means the service sends them, but not on demand, such as a 503 under load or a body a network fault cuts short. +- `constructed` means no service is known to send them. Such a case tests what a client does with a response that the protocol allows or a faulty service might send. + +A case that is not observed may name `derived_from`: the recorded case whose responses it edits by hand. The grader grades every origin alike; the origin says how far a verdict reaches. + +### Exchanges and refusals + +Each exchange has request and response `alternatives`; optional `then` exchanges are required when that alternative matches. Unexpected traffic, missing exchanges and missing asserted result fields fail. Unsupported operations earn no pass. + +A response may carry `body_time`, as `{"text": "SESSION_EXPIRATION", "offset_seconds": 300}`. The grader replaces that text in the body with the time that many seconds after it sends the response, in ISO 8601 UTC. + +A refusal passes only in a case that declares `refusal` checks, and only with no traffic: + +- Such a case is one whose 4xx or 501 answer the call alone determines. +- It may also be one that sends a value encoded, such as S3 metadata outside ASCII. There the service refuses the plain bytes or stores other text. +- The refusal names a `kind` and the call field it objects to as `parameter`. Any `status` or `code` it names must be the service's. +- Where a flat and a hierarchical Azure account answer differently, the refusal must name both, since only a client told the account kind can know. + +`decline_permitted` marks a case whose parameter a client may decline. The service may ignore it, as a range it cannot serve. Or a client API may be unable to hold it, as a repeated tag key. Reporting such a case `unsupported` before sending passes, if the result names that parameter as `parameter`. + +### Checks + +Checks address JSON pointers and use these rules: + +| Rule | Fields | +|---|---| +| `equal` | `value` | +| `one_of` | `values` | +| `array_length` | `value` | +| `present`, `absent` | — | +| `matches` | `pattern` (whole-string regex) | +| `fresh` | `format`, `max_past_seconds`, `max_future_seconds` | +| `xml` | `value` (structural XML comparison) | +| `blob_batch` | `subrequests`, each a `method` and a decoded `path` | +| `body_checksum` | `header`, `algorithm` (`crc32`, `crc32c` or `crc64nvme`) | + +`blob_batch` and `body_checksum` apply at the request's root, `"at": ""`, and hold Rust code where a pattern would not do. `blob_batch` checks an Azure Blob Batch body: the boundary its content type names, CRLF line ends and the closing delimiter. Each part must be `application/http` in `binary`, with a Content-ID of its own. It holds one subrequest with `x-ms-date` and `Authorization` and no body. The subrequests may come in any order. `body_checksum` checks that a header holds the checksum of the body that the client sent. + +`optional: true` permits absence only. A check may give `because`, the reason the service needs it, which a failure of the check reports. + +Request fields are `method`, `raw_path`, once-decoded `path`, `raw_query` as sent, decoded `query`, lowercase `headers`, `body_base64` and, for UTF-8, `body_text`. A header value holds one ISO-8859-1 character per byte, so `é` is the byte e9 and `é` is the UTF-8 of é. Duplicate headers and query fields become arrays. Query `+` stays literal. Unknown headers and query keys require explicit `allow_headers` and `allow_query` patterns. + +Response bodies use `empty`, `utf8` or `base64` encoding. Headers may be literal, `{ "from": "now" }`, or `{ "from": "request", "name": "x-ms-client-request-id" }`. XML comparisons preserve namespaces, child order, duplicate elements and text. + +## Live probes + +Create a private `object-tests-auth-probe` object containing `authentication probe\n` (a trailing newline). Put endpoints in an untracked `*.live.local.json` file: + +```json +{ + "azure":{"url":"https://ACCOUNT.blob.core.windows.net","account":"ACCOUNT","bucket":"CONTAINER"}, + "s3":{"url":"https://s3.REGION.amazonaws.com","region":"REGION","bucket":"BUCKET"} +} +``` + +```nu +./target/debug/object-tests live cases/live.json endpoints.live.local.json --provider azure -- /path/to/azure-cpp +./target/debug/object-tests live cases/live.json endpoints.live.local.json --profile s3 -- /path/to/aws-s3-crt-adapter +``` + +Azure uses `AZURE_STORAGE_KEY`, or endpoint `auth: "bearer"` with `AZURE_STORAGE_ACCESS_TOKEN`. S3 uses `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and optional `AWS_SESSION_TOKEN`. Keep credentials out of JSON. + +The supplied probes perform successful and invalid-credential reads; they do not write or delete. The `s3-express` probes run the S3 probes against a directory bucket: give their endpoint, under `s3-express`, `directory_bucket: true`, the directory bucket name and `url: "https://s3express-ZONE.REGION.amazonaws.com"`. They do not cover token refresh, SAS or presigned URLs. diff --git a/cases/operations.json b/cases/operations.json index b23041c..dc6a282 100644 --- a/cases/operations.json +++ b/cases/operations.json @@ -62,11 +62,13 @@ "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, not by position: Azure may answer the parts in any order", + "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, which a multipart reader should accept", + "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-without-content-id": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", + "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", @@ -348,11 +350,13 @@ "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, not by position: Azure may answer the parts in any order", + "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, which a multipart reader should accept", + "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-without-content-id": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", + "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", @@ -5144,11 +5148,12 @@ "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, not by position: Azure may answer the parts in any order", + "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", @@ -5236,7 +5241,7 @@ }, "body": { "encoding": "utf8", - "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\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\r\n--batchresponse_fixture--" + "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" } @@ -5285,11 +5290,12 @@ "id": "operations/azure/delete-many-lf-line-endings", "profile": "azure", "lane": "core", - "purpose": "Read a batch answer whose lines end in LF alone, which a multipart reader should accept", + "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": [ "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", @@ -5377,7 +5383,7 @@ }, "body": { "encoding": "utf8", - "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\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\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--" + "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" } @@ -5390,13 +5396,16 @@ "at": "/outcome", "optional": false, "rule": { - "is": "equal", - "value": "ok" + "is": "one_of", + "values": [ + "ok", + "error" + ] } }, { "at": "/value/deleted", - "optional": false, + "optional": true, "rule": { "is": "equal", "value": [ @@ -5407,7 +5416,7 @@ }, { "at": "/value/errors", - "optional": false, + "optional": true, "rule": { "is": "equal", "value": [ @@ -5426,11 +5435,12 @@ "id": "operations/azure/delete-many-without-content-id", "profile": "azure", "lane": "core", - "purpose": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", + "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": [ "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", @@ -5518,7 +5528,7 @@ }, "body": { "encoding": "utf8", - "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\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\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--" + "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" } @@ -5532,32 +5542,7 @@ "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 - } - ] + "value": "error" } } ], @@ -5572,6 +5557,7 @@ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch" ], "origin": "transient", + "derived_from": "operations/azure/delete-many", "call": { "keys": [ "object-tests/batch/a.txt", @@ -10245,17 +10231,20 @@ ] }, { - "id": "operations/azure/delete-leased-if-match-without-lease-id", + "id": "operations/azure/delete-many-unauthenticated", "profile": "azure", "lane": "core", - "purpose": "Refuse to delete a leased object whose If-Match holds but that names no lease ID", + "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/lease-blob" + "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch" ], "call": { - "if_match": "\"fixture-etag\"", - "key": "object-tests/leases/object.txt", - "op": "delete" + "keys": [ + "object-tests/batch/a.txt", + "object-tests/batch/b.txt", + "object-tests/batch/absent.txt" + ], + "op": "delete_many" }, "exchanges": [ { @@ -10267,7 +10256,7 @@ "optional": false, "rule": { "is": "equal", - "value": "DELETE" + "value": "POST" } }, { @@ -10275,40 +10264,69 @@ "optional": false, "rule": { "is": "equal", - "value": "/fixture/object-tests/leases/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": "/headers/if-match", + "at": "/query/comp", "optional": false, "rule": { "is": "equal", - "value": "\"fixture-etag\"" + "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": 401, "headers": { "content-type": "application/xml", "date": { "from": "now" }, - "x-ms-error-code": "LeaseIdMissing" + "x-ms-error-code": "InvalidAuthenticationInfo" }, "body": { "encoding": "utf8", - "data": "LeaseIdMissingFixture error" + "data": "InvalidAuthenticationInfoFixture error" } } } @@ -10329,7 +10347,7 @@ "optional": false, "rule": { "is": "equal", - "value": 412 + "value": 401 } }, { @@ -10337,17 +10355,274 @@ "optional": false, "rule": { "is": "equal", - "value": "LeaseIdMissing" + "value": "InvalidAuthenticationInfo" } } ], "refusal": null }, { - "id": "operations/azure/delete-leased-without-lease-id", + "id": "operations/azure/delete-many-container-missing", "profile": "azure", "lane": "core", - "purpose": "Refuse to delete a leased object without its lease ID", + "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" ], @@ -34403,6 +34678,7 @@ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob" ], "origin": "transient", + "derived_from": "operations/azure/copy", "call": { "key": "object-tests/copy/target.txt", "op": "copy", @@ -34606,6 +34882,7 @@ "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob" ], "origin": "transient", + "derived_from": "operations/azure/abort-copy-finished", "call": { "copy_id": "fixture-copy-id", "key": "object-tests/copy/target.txt", @@ -49491,11 +49768,12 @@ "id": "operations/azure-hns/delete-many-answers-out-of-order", "profile": "azure-hns", "lane": "core", - "purpose": "Match each part of a batch answer to its deletion by Content-ID, not by position: Azure may answer the parts in any order", + "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-hns/delete-many", "call": { "keys": [ "object-tests/batch/a.txt", @@ -49583,7 +49861,7 @@ }, "body": { "encoding": "utf8", - "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\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\r\n--batchresponse_fixture--" + "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" } @@ -49632,11 +49910,12 @@ "id": "operations/azure-hns/delete-many-lf-line-endings", "profile": "azure-hns", "lane": "core", - "purpose": "Read a batch answer whose lines end in LF alone, which a multipart reader should accept", + "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": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch" ], "origin": "constructed", + "derived_from": "operations/azure-hns/delete-many", "call": { "keys": [ "object-tests/batch/a.txt", @@ -49724,7 +50003,7 @@ }, "body": { "encoding": "utf8", - "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\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\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--" + "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" } @@ -49737,13 +50016,16 @@ "at": "/outcome", "optional": false, "rule": { - "is": "equal", - "value": "ok" + "is": "one_of", + "values": [ + "ok", + "error" + ] } }, { "at": "/value/deleted", - "optional": false, + "optional": true, "rule": { "is": "equal", "value": [ @@ -49754,7 +50036,7 @@ }, { "at": "/value/errors", - "optional": false, + "optional": true, "rule": { "is": "equal", "value": [ @@ -49773,11 +50055,12 @@ "id": "operations/azure-hns/delete-many-without-content-id", "profile": "azure-hns", "lane": "core", - "purpose": "Match the parts of a batch answer that carry no Content-ID to the deletions by position", + "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": [ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch" ], "origin": "constructed", + "derived_from": "operations/azure-hns/delete-many", "call": { "keys": [ "object-tests/batch/a.txt", @@ -49865,7 +50148,7 @@ }, "body": { "encoding": "utf8", - "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\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\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--" + "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" } @@ -49879,32 +50162,7 @@ "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 - } - ] + "value": "error" } } ], @@ -49919,6 +50177,7 @@ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch" ], "origin": "transient", + "derived_from": "operations/azure-hns/delete-many", "call": { "keys": [ "object-tests/batch/a.txt", @@ -54591,6 +54850,295 @@ } ] }, + { + "id": "operations/azure-hns/delete-many-unauthenticated", + "profile": "azure-hns", + "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-hns/delete-many-container-missing", + "profile": "azure-hns", + "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-hns/delete-leased-if-match-without-lease-id", "profile": "azure-hns", @@ -82277,6 +82825,7 @@ "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", @@ -82480,6 +83029,7 @@ "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", @@ -95099,6 +95649,7 @@ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html" ], "origin": "transient", + "derived_from": "operations/s3/commit", "call": { "key": "object-tests/multipart/object.bin", "op": "s3.complete_multipart", @@ -98142,6 +98693,7 @@ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html" ], "origin": "transient", + "derived_from": "operations/s3/delete-many", "call": { "keys": [ "object-tests/batch/a.txt", @@ -127879,6 +128431,7 @@ "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", @@ -140027,6 +140580,7 @@ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html" ], "origin": "transient", + "derived_from": "operations/s3/stage-copy", "call": { "key": "object-tests/multipart/object.bin", "op": "s3.upload_part_copy", @@ -150017,6 +150571,7 @@ "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.complete_multipart", @@ -153154,6 +153709,7 @@ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html" ], "origin": "transient", + "derived_from": "operations/s3-express/delete-many", "call": { "keys": [ "object-tests/batch/a.txt", @@ -192863,6 +193419,7 @@ "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", @@ -209441,6 +209998,7 @@ "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", diff --git a/src/model.rs b/src/model.rs index ebfe156..5694e9f 100644 --- a/src/model.rs +++ b/src/model.rs @@ -82,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, From a124782beda20432216d4150fb6da4f8b906076f Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 10:52:54 +0200 Subject: [PATCH 07/10] Cut the grader reference down to what the cases do not show. It keeps the command, the adapter's input and results, the error kinds, the value conventions and the case fields whose meaning is not evident. Co-Authored-By: Claude Opus 5.5 (1M context) --- README.md | 2 +- REFERENCE.md | 198 +++++---------------------------------------------- 2 files changed, 19 insertions(+), 181 deletions(-) diff --git a/README.md b/README.md index edefeb1..5915842 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ There are also a few live tests that are just to see if you can actually make a | `vectors.json` | Digests and signatures | | `live.json` | Probes against a live service | -[REFERENCE.md](REFERENCE.md) describes the grader, the adapter protocol and its vocabulary, such as the error kinds and result fields, and the case format. +[REFERENCE.md](REFERENCE.md) describes the adapter protocol. ## Example test of `borink-object-storage` diff --git a/REFERENCE.md b/REFERENCE.md index bc368fc..b467181 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -1,205 +1,43 @@ # Grader reference -The reference for the grader, its options, the adapter protocol and the case format. The [README](README.md) is a short introduction; this file keeps the detail. - -JSON conformance cases for Azure Blob and S3 clients. Core cases and signing vectors run offline through a loopback HTTP server; live probes require credentials. - -```nu -cargo build --locked -./target/debug/object-tests validate cases/operations.json -./target/debug/object-tests grade cases/operations.json --provider azure -- /path/to/azure-cpp -./target/debug/object-tests grade cases/operations.json --profile s3 -- /path/to/aws-s3-crt-adapter -./target/debug/object-tests grade cases/management.json --profile s3 -- /path/to/aws-s3-crt-adapter -./target/debug/object-tests grade cases/vectors.json --provider s3 -- /path/to/aws-c-s3-adapter -``` - -`adapters/` holds the supplied adapters, each with its own build. - -`--case ID` selects one case, `--provider` the cases of one service and `--profile` those of one profile, such as `s3` or `s3-express`. `--jobs N` grades N cases at once instead of one per CPU. Output is JSON lines: case verdicts followed by lane counts. Exit codes: `0` all passed, `1` wrong/failed/unsupported, `2` configuration error. - -## Suites - -| Suite | Contents | -|---|---| -| `operations.json` | Object operations over recorded HTTP | -| `management.json` | Bucket and container operations, such as CreateBucket, PutBucketVersioning and Create Container | -| `vectors.json` | Digests and signatures | -| `live.json` | Probes against a live service | - -A suite contains `version`, `index`, `profiles` and `cases`. The `index` maps each case ID to its purpose, so that a reader can survey the cases before their rules. - -## Expected unsupported cases - -A client can list the cases it expects to be unsupported, with the reason for each, by suite name: - -```json -{"operations":{"operations/azure/get-snapshot":"PhysicalGet selects no snapshot or version"}} -``` - ```nu -( - ./target/debug/object-tests grade cases/operations.json - --provider azure - --expected-unsupported unsupported.json - -- ADAPTER -) +./target/debug/object-tests grade cases/operations.json --profile s3 -- ADAPTER ``` -The run then passes only when every listed case is unsupported and every other case passes. A regression, a wrong answer and a newly supported case each fail it. - -- An entry may be a pattern, in which `*` matches any run of characters: `"operations/s3/*"` covers every S3 case of the operations suite, and `"operations/azure*/lease-*"` every lease case of either Azure profile. -- An entry may name a result field, as `"field:/value/content_md5_base64"`, for a client that cannot report it. It covers every case that the result made unsupported only by leaving out declared fields that the list names this way. -- Every case an entry covers must be unsupported. An entry that covers no case of the suite is a configuration error. - -`--record-unsupported FILE` writes the list from a run instead. It keeps patterns and field entries, which you write by hand, and lists only the unsupported cases that none of them covers. +`--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 -One process per case: one JSON input on stdin, one JSON result on stdout, diagnostics on stderr. Limits: 30 seconds, 16 MiB requests and output. - -### Input +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":"literal%20"}} +{"version":1,"mode":"offline","provider":"azure","endpoint":{"url":"http://127.0.0.1:PORT","account":"fixture","bucket":"fixture"},"call":{"op":"get","key":"a b"}} ``` -- Configure the supplied endpoint and dummy credentials offline. -- If `endpoint.proxy_url` is supplied, use it as the HTTP proxy, and keep `endpoint.url` for addressing and signing. An offline adapter also finds the proxy in `HTTP_PROXY` and `http_proxy`. -- An S3 Express profile names a directory bucket with `endpoint.directory_bucket`, and in `management.json` its regional control endpoint in `endpoint.control_url`. -- Map `call` to SDK methods and return the properties the SDK exposes. Disable credential discovery and retries where supported. -- Do not encode keys in the adapter, repair SDK behavior or make extra calls to obtain missing properties. - -### Results +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=","etag":"\"opaque\""}} +{"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","scope":"adapter"} +{"outcome":"unsupported","reason":"not mapped","parameter":"range"} ``` -- `ok`: the call succeeded, and `value` holds its result. -- `error`: the service refused the call. It names the HTTP `status`, the service's `code` where the answer gives one, and a `kind`. -- `refused`: the client refused the call before sending. It names a `kind` and the call field it objects to as `parameter`. -- `unsupported`: the client cannot make the call. A result that names a `parameter` declines that parameter, which a case may permit. - -The `kind` of an error: +- `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. -| Kind | Meaning | -|---|---| -| `not_found` | The object is absent | -| `container_not_found` | The bucket or container is absent | -| `missing` | Something is absent, and the answer cannot say what, as for an S3 HEAD answered 404 without a body | -| `precondition` | A condition failed, 412 | -| `not_modified` | 304 to a condition on a read | -| `permission_denied` | 401 or 403 | -| `other` | Anything else | +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`. -Only properties asserted by a case are required. Leave out a property that the SDK does not expose, and declare it in `unsupported_fields`, as in `[{"at":"/value/content_md5_base64","scope":"sdk","reason":"..."}]`. A case that misses only declared properties is `unsupported`; one that misses an undeclared property is `wrong`. +Leave out a result property the client does not expose, and name it in `unsupported_fields`, as `[{"at":"/value/content_md5_base64","reason":"..."}]`. -### Calls - -The cases show every call in full. These conventions hold across them: - -- **Values.** Keys are unescaped. Bodies are base64, in `body_base64`. Conditions are opaque ETag strings, and dates are HTTP dates. -- **Ranges.** `range` and `source_range` are an offset and an exclusive end, `{"start": 28, "end": 64}`, an offset alone, or a suffix length, `{"suffix": 5}`. -- **Listings.** `list` consumes every page; `list_page` returns one page, its entries, prefixes and continuation token. `page_size` maps to the SDK's page limit, and `start_after` and `fetch_owner` to S3's `start-after` and `fetch-owner`. -- **Checksums.** A write names a checksum in `checksum`, with its `algorithm` and `value_base64`. Without `value_base64`, the client computes it from the body, and may send it in a header or in the trailer of an `aws-chunked` body. `checksums` names several, which the service refuses. -- **Tags.** Tags are an object, or a list of `{"key": ..., "value": ...}` pairs where order or a repeated key matters. -- **Content properties.** `content_type`, `content_encoding`, `content_language`, `content_disposition` and `cache_control` on a write; `tier` on Azure and `storage_class` on S3. -- **Copies.** A `copy` names its source in `source_key`. `source_bucket` on S3 or `source_container` on Azure names a source elsewhere, and `source_version` an earlier version. `source_if_match`, `source_if_none_match`, `source_if_modified_since` and `source_if_unmodified_since` are conditions on the source. `metadata`, `content_type`, `tags`, `storage_class` and `tier` on a copy replace the source's. `sync` asks Azure for Copy Blob From URL. -- **Provider operations.** Operations of one provider are named explicitly: - - Azure: `azure.stage_block`, `azure.stage_block_from_url`, `azure.put_from_url`, and `azure.abort_copy` with `copy_id`. - - S3: `s3.upload_part`, `s3.upload_part_copy`, `s3.put_bucket_versioning` with `status`, and `s3.create_bucket` with `availability_zone` for a directory bucket. - -### Result fields - -| Field | Holds | -|---|---| -| `body_base64`, `size` | The bytes read and their count | -| `etag`, `version`, `snapshot` | Identifiers the service gave | -| `content_type`, `content_encoding`, `content_language`, `content_disposition`, `cache_control` | Content properties | -| `content_md5_base64` | The stored MD5 | -| `metadata`, `tags` | Objects of names and values | -| `storage_class` | An S3 storage class, as S3 names it | -| `access_tier` | An Azure access tier, from `x-ms-access-tier` | -| `content_range` | The window a ranged read served, as `bytes FIRST-LAST/SIZE` | -| `copy_status`, `copy_id` | The state of an Azure copy, from a copy or a HEAD | -| `deleted`, `errors` | A batch delete's deleted keys, and its failures by `key`, `code` and Azure `status` | -| `upload_id`, `parts` | A multipart upload and its parts | -| `entries`, `prefixes`, `continuation_token`, `keys` | A listing | - -A listed entry reports `last_modified` in RFC 3339 in UTC with whole seconds, as `2024-01-02T03:04:05Z`. It reports `storage_class` as the service names it, `checksum_algorithm` as one name, such as `CRC32`, and `owner_id`. +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 -[Cases](cases/) are executable examples; [model.rs](src/model.rs) defines the schema. Each case declares its lane (`core`, `vectors`, `live`), `call`, HTTP `exchanges` and result `expect` checks. - -### Where the responses come from - -A case may declare its `origin`: how we know that a service sends its responses. - -- `observed`, the default and left out, means the service was seen to send them. -- `transient` means the service sends them, but not on demand, such as a 503 under load or a body a network fault cuts short. -- `constructed` means no service is known to send them. Such a case tests what a client does with a response that the protocol allows or a faulty service might send. - -A case that is not observed may name `derived_from`: the recorded case whose responses it edits by hand. The grader grades every origin alike; the origin says how far a verdict reaches. - -### Exchanges and refusals - -Each exchange has request and response `alternatives`; optional `then` exchanges are required when that alternative matches. Unexpected traffic, missing exchanges and missing asserted result fields fail. Unsupported operations earn no pass. - -A response may carry `body_time`, as `{"text": "SESSION_EXPIRATION", "offset_seconds": 300}`. The grader replaces that text in the body with the time that many seconds after it sends the response, in ISO 8601 UTC. - -A refusal passes only in a case that declares `refusal` checks, and only with no traffic: - -- Such a case is one whose 4xx or 501 answer the call alone determines. -- It may also be one that sends a value encoded, such as S3 metadata outside ASCII. There the service refuses the plain bytes or stores other text. -- The refusal names a `kind` and the call field it objects to as `parameter`. Any `status` or `code` it names must be the service's. -- Where a flat and a hierarchical Azure account answer differently, the refusal must name both, since only a client told the account kind can know. - -`decline_permitted` marks a case whose parameter a client may decline. The service may ignore it, as a range it cannot serve. Or a client API may be unable to hold it, as a repeated tag key. Reporting such a case `unsupported` before sending passes, if the result names that parameter as `parameter`. - -### Checks - -Checks address JSON pointers and use these rules: - -| Rule | Fields | -|---|---| -| `equal` | `value` | -| `one_of` | `values` | -| `array_length` | `value` | -| `present`, `absent` | — | -| `matches` | `pattern` (whole-string regex) | -| `fresh` | `format`, `max_past_seconds`, `max_future_seconds` | -| `xml` | `value` (structural XML comparison) | -| `blob_batch` | `subrequests`, each a `method` and a decoded `path` | -| `body_checksum` | `header`, `algorithm` (`crc32`, `crc32c` or `crc64nvme`) | - -`blob_batch` and `body_checksum` apply at the request's root, `"at": ""`, and hold Rust code where a pattern would not do. `blob_batch` checks an Azure Blob Batch body: the boundary its content type names, CRLF line ends and the closing delimiter. Each part must be `application/http` in `binary`, with a Content-ID of its own. It holds one subrequest with `x-ms-date` and `Authorization` and no body. The subrequests may come in any order. `body_checksum` checks that a header holds the checksum of the body that the client sent. - -`optional: true` permits absence only. A check may give `because`, the reason the service needs it, which a failure of the check reports. - -Request fields are `method`, `raw_path`, once-decoded `path`, `raw_query` as sent, decoded `query`, lowercase `headers`, `body_base64` and, for UTF-8, `body_text`. A header value holds one ISO-8859-1 character per byte, so `é` is the byte e9 and `é` is the UTF-8 of é. Duplicate headers and query fields become arrays. Query `+` stays literal. Unknown headers and query keys require explicit `allow_headers` and `allow_query` patterns. - -Response bodies use `empty`, `utf8` or `base64` encoding. Headers may be literal, `{ "from": "now" }`, or `{ "from": "request", "name": "x-ms-client-request-id" }`. XML comparisons preserve namespaces, child order, duplicate elements and text. - -## Live probes - -Create a private `object-tests-auth-probe` object containing `authentication probe\n` (a trailing newline). Put endpoints in an untracked `*.live.local.json` file: - -```json -{ - "azure":{"url":"https://ACCOUNT.blob.core.windows.net","account":"ACCOUNT","bucket":"CONTAINER"}, - "s3":{"url":"https://s3.REGION.amazonaws.com","region":"REGION","bucket":"BUCKET"} -} -``` - -```nu -./target/debug/object-tests live cases/live.json endpoints.live.local.json --provider azure -- /path/to/azure-cpp -./target/debug/object-tests live cases/live.json endpoints.live.local.json --profile s3 -- /path/to/aws-s3-crt-adapter -``` - -Azure uses `AZURE_STORAGE_KEY`, or endpoint `auth: "bearer"` with `AZURE_STORAGE_ACCESS_TOKEN`. S3 uses `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and optional `AWS_SESSION_TOKEN`. Keep credentials out of JSON. +[model.rs](src/model.rs) defines the format. -The supplied probes perform successful and invalid-credential reads; they do not write or delete. The `s3-express` probes run the S3 probes against a directory bucket: give their endpoint, under `s3-express`, `directory_bucket: true`, the directory bucket name and `url: "https://s3express-ZONE.REGION.amazonaws.com"`. They do not cover token refresh, SAS or presigned URLs. +- `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. From 7a5482f242c06484d12a24312ee489d7dc98b4f0 Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 11:02:56 +0200 Subject: [PATCH 08/10] Grade management.json in CI too. Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From b5d8e01f2f8c1f46b555f0407a9f750af65a8361 Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 11:13:52 +0200 Subject: [PATCH 09/10] Accept only content-property forms that any reader decodes. The reader of a value need not be the client that wrote it, so the cases no longer accept an RFC 2047 encoded word, which only its writer would decode. They accept the UTF-8 bytes where they read back and an RFC 6266 filename* in a disposition; where neither reads back, a client refuses or reports the service's error. Verified live. Co-Authored-By: Claude Opus 5.5 (1M context) --- cases/operations.json | 100 +++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 60 deletions(-) diff --git a/cases/operations.json b/cases/operations.json index dc6a282..abb7476 100644 --- a/cases/operations.json +++ b/cases/operations.json @@ -205,11 +205,11 @@ "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* or an RFC 2047 encoded word, or refuse the value", + "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. An HNS account returns é as the byte e9, so the UTF-8 bytes do not read back; send an RFC 2047 encoded word, or refuse the value", + "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", @@ -494,11 +494,11 @@ "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* or an RFC 2047 encoded word, or refuse the value", + "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. A flat account returns the UTF-8 bytes as it got them, so they read back; an RFC 2047 encoded word is stored as written", + "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", @@ -739,11 +739,11 @@ "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* or an RFC 2047 encoded word, or refuse the value", + "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": "Write a Content-Type with a parameter outside ASCII. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, so send an RFC 2047 encoded word, or refuse the value", + "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\"", @@ -985,11 +985,11 @@ "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* or an RFC 2047 encoded word is stored as written", + "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. A general-purpose bucket returns header bytes as it got them, so the UTF-8 bytes read back; an RFC 2047 encoded word is stored as written", + "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\"", @@ -39707,7 +39707,7 @@ "id": "operations/azure/put-content-type-non-ascii", "profile": "azure", "lane": "core", - "purpose": "Write a Content-Type with a parameter outside ASCII. A flat account returns the UTF-8 bytes as it got them, so they read back; an RFC 2047 encoded word is stored as written", + "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" ], @@ -39758,11 +39758,8 @@ "at": "/headers/x-ms-blob-content-type", "optional": false, "rule": { - "is": "one_of", - "values": [ - "text/plain; name=\"été.txt\"", - "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" - ] + "is": "equal", + "value": "text/plain; name=\"été.txt\"" } } ], @@ -39824,7 +39821,7 @@ "id": "operations/azure/put-content-disposition-non-ascii", "profile": "azure", "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* or an RFC 2047 encoded word, or refuse the value", + "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" ], @@ -39875,11 +39872,8 @@ "at": "/headers/x-ms-blob-content-disposition", "optional": false, "rule": { - "is": "one_of", - "values": [ - "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", - "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" - ] + "is": "equal", + "value": "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" } } ], @@ -86332,7 +86326,7 @@ "id": "operations/azure-hns/put-content-type-non-ascii", "profile": "azure-hns", "lane": "core", - "purpose": "Write a Content-Type with a parameter outside ASCII. An HNS account returns é as the byte e9, so the UTF-8 bytes do not read back; send an RFC 2047 encoded word, or refuse the value", + "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" ], @@ -86384,7 +86378,7 @@ "optional": false, "rule": { "is": "equal", - "value": "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" + "value": "text/plain; name=\"été.txt\"" } } ], @@ -86473,7 +86467,7 @@ "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* or an RFC 2047 encoded word, or refuse the value", + "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" ], @@ -86524,11 +86518,8 @@ "at": "/headers/x-ms-blob-content-disposition", "optional": false, "rule": { - "is": "one_of", - "values": [ - "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", - "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" - ] + "is": "equal", + "value": "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" } } ], @@ -136072,7 +136063,7 @@ "id": "operations/s3/put-content-type-non-ascii", "profile": "s3", "lane": "core", - "purpose": "Write a Content-Type with a parameter outside ASCII. A general-purpose bucket returns header bytes as it got them, so the UTF-8 bytes read back; an RFC 2047 encoded word is stored as written", + "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" ], @@ -136115,11 +136106,8 @@ "at": "/headers/content-type", "optional": false, "rule": { - "is": "one_of", - "values": [ - "text/plain; name=\"été.txt\"", - "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" - ] + "is": "equal", + "value": "text/plain; name=\"été.txt\"" } } ], @@ -136180,7 +136168,7 @@ "id": "operations/s3/put-content-disposition-non-ascii", "profile": "s3", "lane": "core", - "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* or an RFC 2047 encoded word is stored as written", + "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" ], @@ -136226,7 +136214,6 @@ "is": "one_of", "values": [ "attachment; filename=\"été.txt\"", - "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" ] } @@ -201026,7 +201013,7 @@ "id": "operations/s3-express/put-content-type-non-ascii", "profile": "s3-express", "lane": "core", - "purpose": "Write a Content-Type with a parameter outside ASCII. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, so send an RFC 2047 encoded word, or refuse the value", + "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" ], @@ -201167,7 +201154,7 @@ "optional": false, "rule": { "is": "equal", - "value": "text/plain; name=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"" + "value": "text/plain; name=\"été.txt\"" } } ], @@ -201176,17 +201163,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": "\nInvalidRequestFixture error" }, "framing": "chunked" } @@ -201200,26 +201186,23 @@ "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" } } ], @@ -201270,7 +201253,7 @@ "id": "operations/s3-express/put-content-disposition-non-ascii", "profile": "s3-express", "lane": "core", - "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* or an RFC 2047 encoded word, or refuse the value", + "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": [ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt" ], @@ -201410,11 +201393,8 @@ "at": "/headers/content-disposition", "optional": false, "rule": { - "is": "one_of", - "values": [ - "attachment; filename=\"=?UTF-8?Q?=C3=A9t=C3=A9.txt?=\"", - "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" - ] + "is": "equal", + "value": "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt" } } ], From 0c8c633b8aeac2e5df8a1f58eb84f9224673cbb1 Mon Sep 17 00:00:00 2001 From: Tip ten Brink <75669206+tiptenbrink@users.noreply.github.com> Date: Sat, 3 Oct 2026 11:46:30 +0200 Subject: [PATCH 10/10] Pin the borink adapter at object-storage's object-tests-gaps branch. At deb671c the crate reports a missing container as such, serves content_range and access tiers, and reads batches strictly, so it gets no case wrong. Co-Authored-By: Claude Opus 5.5 (1M context) --- adapters/borink/Cargo.lock | 73 ++++++++++++++++++++++++++++++++++---- adapters/borink/Cargo.toml | 2 +- 2 files changed, 67 insertions(+), 8 deletions(-) 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.