integration

package
v1.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2026 License: Apache-2.0 Imports: 65 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	RunCount  atomic.Uint32
	PassCount atomic.Uint32
	FailCount atomic.Uint32
	SkipCount atomic.Uint32
)

Functions

func AbortMultipartUpload_if_match_initiated_time added in v1.0.18

func AbortMultipartUpload_if_match_initiated_time(s *S3Conf) error

func AbortMultipartUpload_incorrect_object_key

func AbortMultipartUpload_incorrect_object_key(s *S3Conf) error

func AbortMultipartUpload_incorrect_uploadId

func AbortMultipartUpload_incorrect_uploadId(s *S3Conf) error

func AbortMultipartUpload_non_existing_bucket

func AbortMultipartUpload_non_existing_bucket(s *S3Conf) error

func AbortMultipartUpload_success

func AbortMultipartUpload_success(s *S3Conf) error

func AbortMultipartUpload_success_status_code

func AbortMultipartUpload_success_status_code(s *S3Conf) error
func AccessControl_CopyObject_with_legal_hold_policy(s *S3Conf) error

func AccessControl_CopyObject_with_retention_policy added in v1.5.0

func AccessControl_CopyObject_with_retention_policy(s *S3Conf) error

func AccessControl_CopyObject_with_tagging_policy added in v1.5.0

func AccessControl_CopyObject_with_tagging_policy(s *S3Conf) error
func AccessControl_CreateMultipartUpload_with_legal_hold_policy(s *S3Conf) error

func AccessControl_CreateMultipartUpload_with_retention_policy added in v1.5.0

func AccessControl_CreateMultipartUpload_with_retention_policy(s *S3Conf) error

func AccessControl_CreateMultipartUpload_with_tagging_policy added in v1.5.0

func AccessControl_CreateMultipartUpload_with_tagging_policy(s *S3Conf) error
func AccessControl_PutObject_with_legal_hold_policy(s *S3Conf) error

func AccessControl_PutObject_with_retention_policy added in v1.5.0

func AccessControl_PutObject_with_retention_policy(s *S3Conf) error

func AccessControl_PutObject_with_tagging_policy added in v1.5.0

func AccessControl_PutObject_with_tagging_policy(s *S3Conf) error

func AccessControl_bucket_ownership_to_user added in v1.0.4

func AccessControl_bucket_ownership_to_user(s *S3Conf) error

func AccessControl_bucket_policy_condition_binary_operator added in v1.8.0

func AccessControl_bucket_policy_condition_binary_operator(s *S3Conf) error

AccessControl_bucket_policy_condition_binary_operator covers BinaryEquals against s3:prefix: AWS's own condition-operator reference documents the match as a literal string comparison between the policy's base64 text and the request context value

func AccessControl_bucket_policy_condition_bool_operator added in v1.8.0

func AccessControl_bucket_policy_condition_bool_operator(s *S3Conf) error

AccessControl_bucket_policy_condition_bool_operator covers Bool against aws:SecureTransport, comparing it to whether s's own endpoint is actually using TLS - so this passes the same way against either an HTTP or HTTPS test target.

func AccessControl_bucket_policy_condition_date_operators added in v1.8.0

func AccessControl_bucket_policy_condition_date_operators(s *S3Conf) error

AccessControl_bucket_policy_condition_date_operators covers the Less/Greater halves of the Date family against aws:CurrentTime, using dates 48 hours in the past/future so the outcome is never flaky regardless of test-runner clock skew or how long the request takes. DateEquals/DateNotEquals aren't covered here - matching an exact instant against a live "now" is inherently flaky at this layer - but are exercised at internal/condition's unit-test layer (TestEvaluateConditionDate), which is what actually implements the comparison; only the request-to-context wiring is new here.

func AccessControl_bucket_policy_condition_explicit_deny_overrides_allow added in v1.8.0

func AccessControl_bucket_policy_condition_explicit_deny_overrides_allow(s *S3Conf) error

AccessControl_bucket_policy_condition_explicit_deny_overrides_allow covers a Deny statement scoped by a matching IpAddress Condition overriding a broader, unconditional Allow — the same explicit-deny-wins precedence bucket policies already have for unconditional statements, now confirmed to hold once one side's match depends on Condition evaluation too.

func AccessControl_bucket_policy_condition_ip_allow added in v1.8.0

func AccessControl_bucket_policy_condition_ip_allow(s *S3Conf) error

AccessControl_bucket_policy_condition_ip_allow covers a bucket-policy Allow statement scoped by an IpAddress Condition matching the caller's real source IP: 0.0.0.0/0 matches any IPv4 address, so this exercises the Condition machinery without depending on the test runner's actual address.

func AccessControl_bucket_policy_condition_ip_deny_no_match added in v1.8.0

func AccessControl_bucket_policy_condition_ip_deny_no_match(s *S3Conf) error

AccessControl_bucket_policy_condition_ip_deny_no_match covers the same shape as AccessControl_bucket_policy_condition_ip_allow with a CIDR (TEST-NET-3, RFC 5737) that can never match a real caller, so the Allow statement never applies and the request falls through to an implicit deny.

func AccessControl_bucket_policy_condition_not_ip_address_allow added in v1.8.0

func AccessControl_bucket_policy_condition_not_ip_address_allow(s *S3Conf) error

AccessControl_bucket_policy_condition_not_ip_address_allow and ..._deny cover NotIpAddress, the negated counterpart of the IpAddress coverage above (AccessControl_bucket_policy_condition_ip_allow/ ..._ip_deny_no_match): it grants access when the caller's address falls OUTSIDE the given range.

func AccessControl_bucket_policy_condition_not_ip_address_deny added in v1.8.0

func AccessControl_bucket_policy_condition_not_ip_address_deny(s *S3Conf) error

func AccessControl_bucket_policy_condition_null_operator added in v1.8.0

func AccessControl_bucket_policy_condition_null_operator(s *S3Conf) error

AccessControl_bucket_policy_condition_null_operator covers Null against s3:prefix's presence/absence: Null:"true" requires the key be absent (no Prefix parameter on the request at all), Null:"false" requires it be present.

func AccessControl_bucket_policy_condition_numeric_operators added in v1.8.0

func AccessControl_bucket_policy_condition_numeric_operators(s *S3Conf) error

AccessControl_bucket_policy_condition_numeric_operators covers the full Numeric family against s3:max-keys, populated from a ListObjectsV2 request's own MaxKeys parameter, binding to the request's actual MaxKeys value, not some default.

func AccessControl_bucket_policy_condition_s3_prefix added in v1.8.0

func AccessControl_bucket_policy_condition_s3_prefix(s *S3Conf) error

AccessControl_bucket_policy_condition_s3_prefix covers the s3:prefix condition key, populated from a ListObjectsV2 request's own Prefix parameter: an Allow scoped to a specific prefix grants a request naming that exact prefix and denies one that doesn't.

func AccessControl_bucket_policy_condition_string_operators added in v1.8.0

func AccessControl_bucket_policy_condition_string_operators(s *S3Conf) error

AccessControl_bucket_policy_condition_string_operators covers the full String family (Equals/NotEquals/Like/NotLike, both plain and IgnoreCase) against s3:prefix, populated from a ListObjectsV2 request's own Prefix parameter.

func AccessControl_bucket_resource_all_action

func AccessControl_bucket_resource_all_action(s *S3Conf) error

func AccessControl_bucket_resource_single_action

func AccessControl_bucket_resource_single_action(s *S3Conf) error

func AccessControl_copy_object_with_starting_slash_for_user added in v1.0.6

func AccessControl_copy_object_with_starting_slash_for_user(s *S3Conf) error

func AccessControl_default_ACL_admin_successful_access

func AccessControl_default_ACL_admin_successful_access(s *S3Conf) error

func AccessControl_default_ACL_user_access_denied

func AccessControl_default_ACL_user_access_denied(s *S3Conf) error

Access control tests (with bucket ACLs and Policies)

func AccessControl_default_ACL_userplus_access_denied

func AccessControl_default_ACL_userplus_access_denied(s *S3Conf) error

func AccessControl_multi_statement_policy

func AccessControl_multi_statement_policy(s *S3Conf) error

func AccessControl_policy_normalizes_object_key_for_get_put_delete added in v1.5.0

func AccessControl_policy_normalizes_object_key_for_get_put_delete(s *S3Conf) error

func AccessControl_root_PutBucketAcl added in v1.0.4

func AccessControl_root_PutBucketAcl(s *S3Conf) error

func AccessControl_single_object_resource_actions

func AccessControl_single_object_resource_actions(s *S3Conf) error

func AccessControl_user_PutBucketAcl_with_policy_access added in v1.0.6

func AccessControl_user_PutBucketAcl_with_policy_access(s *S3Conf) error

func Authentication_credentials_future_date

func Authentication_credentials_future_date(s *S3Conf) error

func Authentication_credentials_incorrect_region

func Authentication_credentials_incorrect_region(s *S3Conf) error

func Authentication_credentials_incorrect_service

func Authentication_credentials_incorrect_service(s *S3Conf) error

func Authentication_credentials_invalid_date

func Authentication_credentials_invalid_date(s *S3Conf) error

func Authentication_credentials_invalid_terminal added in v1.0.19

func Authentication_credentials_invalid_terminal(s *S3Conf) error

func Authentication_credentials_non_existing_access_key

func Authentication_credentials_non_existing_access_key(s *S3Conf) error

func Authentication_credentials_past_date

func Authentication_credentials_past_date(s *S3Conf) error

func Authentication_date_mismatch

func Authentication_date_mismatch(s *S3Conf) error

func Authentication_incorrect_payload_hash

func Authentication_incorrect_payload_hash(s *S3Conf) error

func Authentication_invalid_auth_header

func Authentication_invalid_auth_header(s *S3Conf) error

func Authentication_invalid_date_header

func Authentication_invalid_date_header(s *S3Conf) error

func Authentication_invalid_sha256_payload_hash added in v1.0.17

func Authentication_invalid_sha256_payload_hash(s *S3Conf) error

func Authentication_malformed_component added in v1.0.19

func Authentication_malformed_component(s *S3Conf) error

func Authentication_malformed_credential added in v1.0.19

func Authentication_malformed_credential(s *S3Conf) error

func Authentication_missing_components added in v1.0.19

func Authentication_missing_components(s *S3Conf) error

func Authentication_missing_credentials added in v1.0.19

func Authentication_missing_credentials(s *S3Conf) error

func Authentication_missing_date_header

func Authentication_missing_date_header(s *S3Conf) error

func Authentication_missing_signature added in v1.0.19

func Authentication_missing_signature(s *S3Conf) error

func Authentication_missing_signedheaders added in v1.0.19

func Authentication_missing_signedheaders(s *S3Conf) error

func Authentication_signature_error_incorrect_secret_key

func Authentication_signature_error_incorrect_secret_key(s *S3Conf) error

func Authentication_sigv2_not_supported added in v1.5.0

func Authentication_sigv2_not_supported(s *S3Conf) error

func Authentication_unsigned_non_required_header added in v1.5.0

func Authentication_unsigned_non_required_header(s *S3Conf) error

func Authentication_unsigned_required_header added in v1.5.0

func Authentication_unsigned_required_header(s *S3Conf) error

func Authentication_unsupported_signature_version

func Authentication_unsupported_signature_version(s *S3Conf) error

func Authentication_with_expect_header added in v1.1.0

func Authentication_with_expect_header(s *S3Conf) error

func CORSMiddleware_access_forbidden added in v1.0.17

func CORSMiddleware_access_forbidden(s *S3Conf) error

func CORSMiddleware_access_granted added in v1.0.17

func CORSMiddleware_access_granted(s *S3Conf) error

func CORSMiddleware_invalid_headers added in v1.0.17

func CORSMiddleware_invalid_headers(s *S3Conf) error

func CORSMiddleware_invalid_method added in v1.0.17

func CORSMiddleware_invalid_method(s *S3Conf) error

CORS middleware tests

func CompleteMultipartUpload_already_completed added in v1.4.1

func CompleteMultipartUpload_already_completed(s *S3Conf) error

func CompleteMultipartUpload_checksum_type_mismatch added in v1.0.11

func CompleteMultipartUpload_checksum_type_mismatch(s *S3Conf) error

func CompleteMultipartUpload_conditional_writes added in v1.0.18

func CompleteMultipartUpload_conditional_writes(s *S3Conf) error

func CompleteMultipartUpload_data_integrity_etag added in v1.8.0

func CompleteMultipartUpload_data_integrity_etag(s *S3Conf) error

func CompleteMultipartUpload_default_content_type added in v1.4.1

func CompleteMultipartUpload_default_content_type(s *S3Conf) error

func CompleteMultipartUpload_different_checksum_part added in v1.0.11

func CompleteMultipartUpload_different_checksum_part(s *S3Conf) error

func CompleteMultipartUpload_empty_parts added in v1.0.10

func CompleteMultipartUpload_empty_parts(s *S3Conf) error

func CompleteMultipartUpload_incorrect_checksum_part added in v1.0.11

func CompleteMultipartUpload_incorrect_checksum_part(s *S3Conf) error

func CompleteMultipartUpload_incorrect_final_checksums added in v1.0.11

func CompleteMultipartUpload_incorrect_final_checksums(s *S3Conf) error

func CompleteMultipartUpload_incorrect_part_number added in v1.0.11

func CompleteMultipartUpload_incorrect_part_number(s *S3Conf) error

func CompleteMultipartUpload_incorrect_parts_order added in v1.0.11

func CompleteMultipartUpload_incorrect_parts_order(s *S3Conf) error

func CompleteMultipartUpload_invalid_ETag

func CompleteMultipartUpload_invalid_ETag(s *S3Conf) error

func CompleteMultipartUpload_invalid_checksum_part added in v1.0.11

func CompleteMultipartUpload_invalid_checksum_part(s *S3Conf) error

func CompleteMultipartUpload_invalid_checksum_type added in v1.0.11

func CompleteMultipartUpload_invalid_checksum_type(s *S3Conf) error

func CompleteMultipartUpload_invalid_final_checksums added in v1.0.11

func CompleteMultipartUpload_invalid_final_checksums(s *S3Conf) error

func CompleteMultipartUpload_invalid_final_composite_checksum added in v1.0.19

func CompleteMultipartUpload_invalid_final_composite_checksum(s *S3Conf) error

func CompleteMultipartUpload_invalid_part_number

func CompleteMultipartUpload_invalid_part_number(s *S3Conf) error

func CompleteMultipartUpload_missing_part_checksum added in v1.0.11

func CompleteMultipartUpload_missing_part_checksum(s *S3Conf) error

func CompleteMultipartUpload_missing_part_fields added in v1.5.0

func CompleteMultipartUpload_missing_part_fields(s *S3Conf) error

func CompleteMultipartUpload_mpu_object_size added in v1.0.11

func CompleteMultipartUpload_mpu_object_size(s *S3Conf) error

func CompleteMultipartUpload_multiple_checksum_part added in v1.0.11

func CompleteMultipartUpload_multiple_checksum_part(s *S3Conf) error

func CompleteMultipartUpload_multiple_final_checksums added in v1.0.11

func CompleteMultipartUpload_multiple_final_checksums(s *S3Conf) error

func CompleteMultipartUpload_racey_data_integrity added in v1.4.0

func CompleteMultipartUpload_racey_data_integrity(s *S3Conf) error

CompleteMultipartUpload_racey_data_integrity creates a single multipart upload, uploads its parts, then fires multiple concurrent CompleteMultipartUpload calls for the exact same upload ID. All calls must succeed and return the same ETag (idempotent completion). The surviving object must contain exactly the data that was uploaded. The whole sequence is repeated several times so that intermittent scheduling cannot hide a data-corruption bug.

func CompleteMultipartUpload_racey_success added in v1.0.8

func CompleteMultipartUpload_racey_success(s *S3Conf) error

func CompleteMultipartUpload_should_calculate_the_final_checksum_full_object added in v1.0.11

func CompleteMultipartUpload_should_calculate_the_final_checksum_full_object(s *S3Conf) error

func CompleteMultipartUpload_should_ignore_the_final_checksum added in v1.0.11

func CompleteMultipartUpload_should_ignore_the_final_checksum(s *S3Conf) error

func CompleteMultipartUpload_should_succeed_without_final_checksum_type added in v1.0.11

func CompleteMultipartUpload_should_succeed_without_final_checksum_type(s *S3Conf) error

func CompleteMultipartUpload_should_verify_final_composite_checksum added in v1.0.19

func CompleteMultipartUpload_should_verify_final_composite_checksum(s *S3Conf) error

func CompleteMultipartUpload_should_verify_the_final_checksum added in v1.0.11

func CompleteMultipartUpload_should_verify_the_final_checksum(s *S3Conf) error

func CompleteMultipartUpload_small_upload_size added in v1.0.11

func CompleteMultipartUpload_small_upload_size(s *S3Conf) error

func CompleteMultipartUpload_success

func CompleteMultipartUpload_success(s *S3Conf) error

func CompleteMultipartUpload_with_metadata added in v1.0.19

func CompleteMultipartUpload_with_metadata(s *S3Conf) error

func CompletedMultipartUpload_non_existing_bucket

func CompletedMultipartUpload_non_existing_bucket(s *S3Conf) error

func CopyObject_conditional_reads added in v1.0.18

func CopyObject_conditional_reads(s *S3Conf) error

func CopyObject_copy_source_starting_with_slash added in v1.0.17

func CopyObject_copy_source_starting_with_slash(s *S3Conf) error

func CopyObject_copy_to_itself

func CopyObject_copy_to_itself(s *S3Conf) error

func CopyObject_copy_to_itself_invalid_directive added in v1.0.6

func CopyObject_copy_to_itself_invalid_directive(s *S3Conf) error

func CopyObject_create_checksum_on_copy added in v1.0.11

func CopyObject_create_checksum_on_copy(s *S3Conf) error

func CopyObject_cross_bucket_server_side_copy added in v1.8.0

func CopyObject_cross_bucket_server_side_copy(s *S3Conf) error

CopyObject_cross_bucket_server_side_copy exercises a cross-bucket copy where source and destination live in different buckets. On the Azure backend this drives the server-side StartCopyFromURL path (added in copy.go), verifying that object data, user metadata, content-type and tags all survive the copy and that an ETag is returned. It also runs on the other backends as a plain copy.

func CopyObject_default_content_type_with_replace_metadata added in v1.3.0

func CopyObject_default_content_type_with_replace_metadata(s *S3Conf) error

func CopyObject_incorrect_source_bucket_expected_owner added in v1.4.0

func CopyObject_incorrect_source_bucket_expected_owner(s *S3Conf) error

func CopyObject_invalid_checksum_algorithm added in v1.0.11

func CopyObject_invalid_checksum_algorithm(s *S3Conf) error

func CopyObject_invalid_copy_source added in v1.0.17

func CopyObject_invalid_copy_source(s *S3Conf) error
func CopyObject_invalid_legal_hold(s *S3Conf) error

func CopyObject_invalid_object_lock_mode added in v1.0.12

func CopyObject_invalid_object_lock_mode(s *S3Conf) error

func CopyObject_invalid_tagging_directive added in v1.0.12

func CopyObject_invalid_tagging_directive(s *S3Conf) error

func CopyObject_invalid_website_redirect_location added in v1.6.0

func CopyObject_invalid_website_redirect_location(s *S3Conf) error

func CopyObject_long_metadata added in v1.4.0

func CopyObject_long_metadata(s *S3Conf) error

func CopyObject_missing_bucket_lock added in v1.1.0

func CopyObject_missing_bucket_lock(s *S3Conf) error

func CopyObject_non_existing_dir_object added in v1.0.5

func CopyObject_non_existing_dir_object(s *S3Conf) error

func CopyObject_non_existing_dst_bucket

func CopyObject_non_existing_dst_bucket(s *S3Conf) error

func CopyObject_not_owned_source_bucket

func CopyObject_not_owned_source_bucket(s *S3Conf) error

func CopyObject_object_acl_not_supported added in v1.2.0

func CopyObject_object_acl_not_supported(s *S3Conf) error

func CopyObject_overwrite_same_dir_object added in v1.0.13

func CopyObject_overwrite_same_dir_object(s *S3Conf) error

func CopyObject_overwrite_same_file_object added in v1.0.13

func CopyObject_overwrite_same_file_object(s *S3Conf) error

func CopyObject_should_copy_meta_props added in v1.0.12

func CopyObject_should_copy_meta_props(s *S3Conf) error

func CopyObject_should_copy_tagging added in v1.0.12

func CopyObject_should_copy_tagging(s *S3Conf) error

func CopyObject_should_copy_the_existing_checksum added in v1.0.11

func CopyObject_should_copy_the_existing_checksum(s *S3Conf) error

func CopyObject_should_not_copy_website_redirect_without_user_metadata added in v1.8.0

func CopyObject_should_not_copy_website_redirect_without_user_metadata(s *S3Conf) error

func CopyObject_should_replace_meta_props added in v1.0.12

func CopyObject_should_replace_meta_props(s *S3Conf) error

func CopyObject_should_replace_tagging added in v1.0.14

func CopyObject_should_replace_tagging(s *S3Conf) error

func CopyObject_should_replace_the_existing_checksum added in v1.0.11

func CopyObject_should_replace_the_existing_checksum(s *S3Conf) error

func CopyObject_success

func CopyObject_success(s *S3Conf) error

func CopyObject_to_itself_by_replacing_the_checksum added in v1.0.11

func CopyObject_to_itself_by_replacing_the_checksum(s *S3Conf) error

func CopyObject_to_itself_with_new_metadata

func CopyObject_to_itself_with_new_metadata(s *S3Conf) error
func CopyObject_with_legal_hold(s *S3Conf) error

func CopyObject_with_metadata added in v1.0.19

func CopyObject_with_metadata(s *S3Conf) error

func CopyObject_with_retention_lock added in v1.0.12

func CopyObject_with_retention_lock(s *S3Conf) error

func CopyObject_with_special_characters added in v1.3.0

func CopyObject_with_special_characters(s *S3Conf) error

func CreateBucket_as_user

func CreateBucket_as_user(s *S3Conf) error

func CreateBucket_default_acl

func CreateBucket_default_acl(s *S3Conf) error

func CreateBucket_default_object_lock

func CreateBucket_default_object_lock(s *S3Conf) error

func CreateBucket_duplicate_keys added in v1.0.19

func CreateBucket_duplicate_keys(s *S3Conf) error

func CreateBucket_existing_bucket

func CreateBucket_existing_bucket(s *S3Conf) error

func CreateBucket_invalid_bucket_name

func CreateBucket_invalid_bucket_name(s *S3Conf) error

func CreateBucket_invalid_canned_acl added in v1.0.19

func CreateBucket_invalid_canned_acl(s *S3Conf) error

func CreateBucket_invalid_location_constraint added in v1.0.19

func CreateBucket_invalid_location_constraint(s *S3Conf) error

func CreateBucket_invalid_ownership added in v1.0.3

func CreateBucket_invalid_ownership(s *S3Conf) error

func CreateBucket_invalid_tags added in v1.0.19

func CreateBucket_invalid_tags(s *S3Conf) error

func CreateBucket_long_tags added in v1.0.19

func CreateBucket_long_tags(s *S3Conf) error

func CreateBucket_non_default_acl

func CreateBucket_non_default_acl(s *S3Conf) error

func CreateBucket_owned_by_you

func CreateBucket_owned_by_you(s *S3Conf) error

func CreateBucket_ownership_with_acl added in v1.0.3

func CreateBucket_ownership_with_acl(s *S3Conf) error

func CreateBucket_private_canned_acl added in v1.3.0

func CreateBucket_private_canned_acl(s *S3Conf) error

func CreateBucket_private_canned_acl_bucket_owner_enforced_ownership added in v1.3.0

func CreateBucket_private_canned_acl_bucket_owner_enforced_ownership(s *S3Conf) error

func CreateBucket_success added in v1.3.0

func CreateBucket_success(s *S3Conf) error

func CreateBucket_tag_count_limit added in v1.0.19

func CreateBucket_tag_count_limit(s *S3Conf) error

func CreateMultipartUpload_dir_obj

func CreateMultipartUpload_dir_obj(s *S3Conf) error

func CreateMultipartUpload_empty_checksum_algorithm_with_checksum_type added in v1.0.11

func CreateMultipartUpload_empty_checksum_algorithm_with_checksum_type(s *S3Conf) error

func CreateMultipartUpload_invalid_checksum_algorithm added in v1.0.11

func CreateMultipartUpload_invalid_checksum_algorithm(s *S3Conf) error

func CreateMultipartUpload_invalid_checksum_type added in v1.0.11

func CreateMultipartUpload_invalid_checksum_type(s *S3Conf) error
func CreateMultipartUpload_invalid_legal_hold(s *S3Conf) error

func CreateMultipartUpload_invalid_object_lock_mode added in v1.0.12

func CreateMultipartUpload_invalid_object_lock_mode(s *S3Conf) error

func CreateMultipartUpload_invalid_website_redirect_location added in v1.6.0

func CreateMultipartUpload_invalid_website_redirect_location(s *S3Conf) error

func CreateMultipartUpload_long_metadata added in v1.4.0

func CreateMultipartUpload_long_metadata(s *S3Conf) error

func CreateMultipartUpload_non_existing_bucket

func CreateMultipartUpload_non_existing_bucket(s *S3Conf) error

func CreateMultipartUpload_object_acl_not_supported added in v1.2.0

func CreateMultipartUpload_object_acl_not_supported(s *S3Conf) error

func CreateMultipartUpload_past_retain_until_date

func CreateMultipartUpload_past_retain_until_date(s *S3Conf) error

func CreateMultipartUpload_success

func CreateMultipartUpload_success(s *S3Conf) error

func CreateMultipartUpload_type_algo_mismatch added in v1.0.19

func CreateMultipartUpload_type_algo_mismatch(s *S3Conf) error

func CreateMultipartUpload_valid_algo_type added in v1.0.17

func CreateMultipartUpload_valid_algo_type(s *S3Conf) error

func CreateMultipartUpload_with_metadata

func CreateMultipartUpload_with_metadata(s *S3Conf) error

func CreateMultipartUpload_with_object_lock

func CreateMultipartUpload_with_object_lock(s *S3Conf) error

func CreateMultipartUpload_with_object_lock_invalid_retention

func CreateMultipartUpload_with_object_lock_invalid_retention(s *S3Conf) error

func CreateMultipartUpload_with_object_lock_not_enabled

func CreateMultipartUpload_with_object_lock_not_enabled(s *S3Conf) error

func CreateMultipartUpload_with_tagging

func CreateMultipartUpload_with_tagging(s *S3Conf) error

func DeleteBucketAnalyticsConfiguration_not_implemented added in v1.0.17

func DeleteBucketAnalyticsConfiguration_not_implemented(s *S3Conf) error

func DeleteBucketCors_non_existing_bucket added in v1.0.17

func DeleteBucketCors_non_existing_bucket(s *S3Conf) error

func DeleteBucketCors_success added in v1.0.17

func DeleteBucketCors_success(s *S3Conf) error

func DeleteBucketEncryption_not_implemented added in v1.0.17

func DeleteBucketEncryption_not_implemented(s *S3Conf) error

func DeleteBucketIntelligentTieringConfiguration_not_implemented added in v1.0.17

func DeleteBucketIntelligentTieringConfiguration_not_implemented(s *S3Conf) error

func DeleteBucketInventoryConfiguration_not_implemented added in v1.0.17

func DeleteBucketInventoryConfiguration_not_implemented(s *S3Conf) error

func DeleteBucketLifecycle_not_implemented added in v1.0.17

func DeleteBucketLifecycle_not_implemented(s *S3Conf) error

func DeleteBucketMetricsConfiguration_not_implemented added in v1.0.17

func DeleteBucketMetricsConfiguration_not_implemented(s *S3Conf) error

func DeleteBucketOwnershipControls_non_existing_bucket added in v1.0.3

func DeleteBucketOwnershipControls_non_existing_bucket(s *S3Conf) error

func DeleteBucketOwnershipControls_success added in v1.0.3

func DeleteBucketOwnershipControls_success(s *S3Conf) error

func DeleteBucketPolicy_non_existing_bucket

func DeleteBucketPolicy_non_existing_bucket(s *S3Conf) error

func DeleteBucketPolicy_remove_before_setting

func DeleteBucketPolicy_remove_before_setting(s *S3Conf) error

func DeleteBucketPolicy_success

func DeleteBucketPolicy_success(s *S3Conf) error

func DeleteBucketReplication_not_implemented added in v1.0.17

func DeleteBucketReplication_not_implemented(s *S3Conf) error

func DeleteBucketTagging_non_existing_object

func DeleteBucketTagging_non_existing_object(s *S3Conf) error

func DeleteBucketTagging_success

func DeleteBucketTagging_success(s *S3Conf) error

func DeleteBucketTagging_success_status

func DeleteBucketTagging_success_status(s *S3Conf) error

func DeleteBucketWebsite_non_existing_bucket added in v1.6.0

func DeleteBucketWebsite_non_existing_bucket(s *S3Conf) error

func DeleteBucketWebsite_success added in v1.6.0

func DeleteBucketWebsite_success(s *S3Conf) error

func DeleteBucket_incorrect_expected_bucket_owner added in v1.0.19

func DeleteBucket_incorrect_expected_bucket_owner(s *S3Conf) error

func DeleteBucket_non_empty_bucket

func DeleteBucket_non_empty_bucket(s *S3Conf) error

func DeleteBucket_non_existing_bucket

func DeleteBucket_non_existing_bucket(s *S3Conf) error

func DeleteBucket_success_status_code

func DeleteBucket_success_status_code(s *S3Conf) error

func DeleteObjectTagging_expected_bucket_owner added in v1.0.19

func DeleteObjectTagging_expected_bucket_owner(s *S3Conf) error

func DeleteObjectTagging_non_existing_object

func DeleteObjectTagging_non_existing_object(s *S3Conf) error

func DeleteObjectTagging_success

func DeleteObjectTagging_success(s *S3Conf) error

func DeleteObjectTagging_success_status

func DeleteObjectTagging_success_status(s *S3Conf) error

func DeleteObject_conditional_writes added in v1.0.18

func DeleteObject_conditional_writes(s *S3Conf) error

func DeleteObject_directory_not_empty added in v1.0.9

func DeleteObject_directory_not_empty(s *S3Conf) error

func DeleteObject_directory_object added in v1.0.11

func DeleteObject_directory_object(s *S3Conf) error

func DeleteObject_directory_object_noslash added in v1.0.8

func DeleteObject_directory_object_noslash(s *S3Conf) error

func DeleteObject_expected_bucket_owner added in v1.0.19

func DeleteObject_expected_bucket_owner(s *S3Conf) error

func DeleteObject_incorrect_expected_bucket_owner added in v1.0.19

func DeleteObject_incorrect_expected_bucket_owner(s *S3Conf) error

func DeleteObject_name_too_long added in v1.0.6

func DeleteObject_name_too_long(s *S3Conf) error

func DeleteObject_non_empty_dir_obj added in v1.0.13

func DeleteObject_non_empty_dir_obj(s *S3Conf) error

func DeleteObject_non_existing_dir_object added in v1.0.5

func DeleteObject_non_existing_dir_object(s *S3Conf) error

func DeleteObject_non_existing_object

func DeleteObject_non_existing_object(s *S3Conf) error

func DeleteObject_success

func DeleteObject_success(s *S3Conf) error

func DeleteObject_success_status_code

func DeleteObject_success_status_code(s *S3Conf) error

func DeleteObjects_empty_input

func DeleteObjects_empty_input(s *S3Conf) error

func DeleteObjects_iam_all_access_denied added in v1.8.0

func DeleteObjects_iam_all_access_denied(s *S3Conf) error

DeleteObjects_iam_all_access_denied covers a batch where the identity policy grants nothing at all: the call itself still succeeds — no top-level error — with every object reported denied in Errors, in request order, and nothing in Deleted.

func DeleteObjects_iam_all_locked added in v1.8.0

func DeleteObjects_iam_all_locked(s *S3Conf) error

DeleteObjects_iam_all_locked covers a batch where every object is governance-locked and none is deleted: the call still succeeds — no top-level error — with every object reported denied in Errors, in request order, and nothing in Deleted. Omitting the bypass header entirely reports the generic object-lock message; sending the header without s3:BypassGovernanceRetention reports the specific AccessDenied naming that action instead — the same distinction the single-object DELETE path makes, now confirmed for the batch path too.

func DeleteObjects_iam_mixed_denials_and_success added in v1.8.0

func DeleteObjects_iam_mixed_denials_and_success(s *S3Conf) error

DeleteObjects_iam_mixed_denials_and_success covers a single batch mixing every DeleteObjects outcome at once: a key the identity policy denies, a governance-locked key with no bypass, and keys the caller may freely delete. All three outcomes land in one response — no top-level error — with Deleted and Errors each preserving the order the keys were requested in.

func DeleteObjects_non_existing_objects

func DeleteObjects_non_existing_objects(s *S3Conf) error

func DeleteObjects_success

func DeleteObjects_success(s *S3Conf) error

func DeletePublicAccessBlock_not_implemented added in v1.0.17

func DeletePublicAccessBlock_not_implemented(s *S3Conf) error

func GetBucketAccelerateConfiguration_not_implemented added in v1.0.17

func GetBucketAccelerateConfiguration_not_implemented(s *S3Conf) error

func GetBucketAcl_access_denied

func GetBucketAcl_access_denied(s *S3Conf) error

func GetBucketAcl_non_existing_bucket

func GetBucketAcl_non_existing_bucket(s *S3Conf) error

func GetBucketAcl_success

func GetBucketAcl_success(s *S3Conf) error

func GetBucketAcl_translation_canned_private added in v1.0.3

func GetBucketAcl_translation_canned_private(s *S3Conf) error

func GetBucketAcl_translation_canned_public_read added in v1.0.3

func GetBucketAcl_translation_canned_public_read(s *S3Conf) error

func GetBucketAcl_translation_canned_public_read_write added in v1.0.3

func GetBucketAcl_translation_canned_public_read_write(s *S3Conf) error

func GetBucketAnalyticsConfiguration_not_implemented added in v1.0.17

func GetBucketAnalyticsConfiguration_not_implemented(s *S3Conf) error

func GetBucketCors_no_such_bucket_cors added in v1.0.17

func GetBucketCors_no_such_bucket_cors(s *S3Conf) error

func GetBucketCors_non_existing_bucket added in v1.0.17

func GetBucketCors_non_existing_bucket(s *S3Conf) error

func GetBucketCors_success added in v1.0.17

func GetBucketCors_success(s *S3Conf) error

func GetBucketEncryption_not_implemented added in v1.0.17

func GetBucketEncryption_not_implemented(s *S3Conf) error

func GetBucketIntelligentTieringConfiguration_not_implemented added in v1.0.17

func GetBucketIntelligentTieringConfiguration_not_implemented(s *S3Conf) error

func GetBucketInventoryConfiguration_not_implemented added in v1.0.17

func GetBucketInventoryConfiguration_not_implemented(s *S3Conf) error

func GetBucketLifecycleConfiguration_not_implemented added in v1.0.17

func GetBucketLifecycleConfiguration_not_implemented(s *S3Conf) error

func GetBucketLocation_no_access added in v1.0.18

func GetBucketLocation_no_access(s *S3Conf) error

func GetBucketLocation_non_exist added in v1.0.18

func GetBucketLocation_non_exist(s *S3Conf) error

func GetBucketLocation_success added in v1.0.18

func GetBucketLocation_success(s *S3Conf) error

func GetBucketLogging_not_implemented added in v1.0.17

func GetBucketLogging_not_implemented(s *S3Conf) error

func GetBucketMetricsConfiguration_not_implemented added in v1.0.17

func GetBucketMetricsConfiguration_not_implemented(s *S3Conf) error

func GetBucketNotificationConfiguratio_not_implemented added in v1.0.17

func GetBucketNotificationConfiguratio_not_implemented(s *S3Conf) error

func GetBucketOwnershipControls_default_ownership added in v1.0.3

func GetBucketOwnershipControls_default_ownership(s *S3Conf) error

func GetBucketOwnershipControls_non_existing_bucket added in v1.0.3

func GetBucketOwnershipControls_non_existing_bucket(s *S3Conf) error

func GetBucketOwnershipControls_success added in v1.0.3

func GetBucketOwnershipControls_success(s *S3Conf) error

func GetBucketPolicyStatus_no_such_bucket_policy added in v1.0.17

func GetBucketPolicyStatus_no_such_bucket_policy(s *S3Conf) error

func GetBucketPolicyStatus_non_existing_bucket added in v1.0.17

func GetBucketPolicyStatus_non_existing_bucket(s *S3Conf) error

func GetBucketPolicyStatus_success added in v1.0.17

func GetBucketPolicyStatus_success(s *S3Conf) error

func GetBucketPolicy_non_existing_bucket

func GetBucketPolicy_non_existing_bucket(s *S3Conf) error

func GetBucketPolicy_not_set

func GetBucketPolicy_not_set(s *S3Conf) error

func GetBucketPolicy_success

func GetBucketPolicy_success(s *S3Conf) error

func GetBucketReplication_not_implemented added in v1.0.17

func GetBucketReplication_not_implemented(s *S3Conf) error

func GetBucketRequestPayment_not_implemented added in v1.0.17

func GetBucketRequestPayment_not_implemented(s *S3Conf) error

func GetBucketTagging_non_existing_bucket

func GetBucketTagging_non_existing_bucket(s *S3Conf) error

func GetBucketTagging_success

func GetBucketTagging_success(s *S3Conf) error

func GetBucketTagging_unset_tags

func GetBucketTagging_unset_tags(s *S3Conf) error

func GetBucketVersioning_empty_response added in v1.0.8

func GetBucketVersioning_empty_response(s *S3Conf) error

func GetBucketVersioning_non_existing_bucket added in v1.0.8

func GetBucketVersioning_non_existing_bucket(s *S3Conf) error

func GetBucketVersioning_non_owner_access_denied added in v1.8.0

func GetBucketVersioning_non_owner_access_denied(s *S3Conf) error

func GetBucketVersioning_success added in v1.0.8

func GetBucketVersioning_success(s *S3Conf) error

func GetBucketVersioning_with_acl_access added in v1.8.0

func GetBucketVersioning_with_acl_access(s *S3Conf) error

func GetBucketVersioning_with_policy_access added in v1.8.0

func GetBucketVersioning_with_policy_access(s *S3Conf) error

func GetBucketWebsite_no_such_website_config added in v1.6.0

func GetBucketWebsite_no_such_website_config(s *S3Conf) error

func GetBucketWebsite_non_existing_bucket added in v1.6.0

func GetBucketWebsite_non_existing_bucket(s *S3Conf) error

func GetBucketWebsite_success added in v1.6.0

func GetBucketWebsite_success(s *S3Conf) error

func GetBucketWebsite_success_redirect_all added in v1.6.0

func GetBucketWebsite_success_redirect_all(s *S3Conf) error

func GetObjectAcl_not_implemented added in v1.3.0

func GetObjectAcl_not_implemented(s *S3Conf) error

func GetObjectAttributes_checksums added in v1.0.11

func GetObjectAttributes_checksums(s *S3Conf) error

func GetObjectAttributes_empty_attrs added in v1.0.9

func GetObjectAttributes_empty_attrs(s *S3Conf) error

func GetObjectAttributes_existing_object

func GetObjectAttributes_existing_object(s *S3Conf) error

func GetObjectAttributes_invalid_attrs added in v1.0.9

func GetObjectAttributes_invalid_attrs(s *S3Conf) error

func GetObjectAttributes_invalid_parent added in v1.0.9

func GetObjectAttributes_invalid_parent(s *S3Conf) error

func GetObjectAttributes_invalid_single_attribute added in v1.0.13

func GetObjectAttributes_invalid_single_attribute(s *S3Conf) error

func GetObjectAttributes_non_existing_bucket

func GetObjectAttributes_non_existing_bucket(s *S3Conf) error

func GetObjectAttributes_non_existing_object

func GetObjectAttributes_non_existing_object(s *S3Conf) error

func GetObjectLegalHold_disabled_lock added in v1.0.8

func GetObjectLegalHold_disabled_lock(s *S3Conf) error

func GetObjectLegalHold_non_existing_bucket

func GetObjectLegalHold_non_existing_bucket(s *S3Conf) error

func GetObjectLegalHold_non_existing_object

func GetObjectLegalHold_non_existing_object(s *S3Conf) error

func GetObjectLegalHold_success

func GetObjectLegalHold_success(s *S3Conf) error

func GetObjectLegalHold_unset_config

func GetObjectLegalHold_unset_config(s *S3Conf) error

func GetObjectLockConfiguration_non_existing_bucket

func GetObjectLockConfiguration_non_existing_bucket(s *S3Conf) error

func GetObjectLockConfiguration_success

func GetObjectLockConfiguration_success(s *S3Conf) error

func GetObjectLockConfiguration_unset_config

func GetObjectLockConfiguration_unset_config(s *S3Conf) error

func GetObjectRetention_disabled_lock added in v1.0.8

func GetObjectRetention_disabled_lock(s *S3Conf) error

func GetObjectRetention_non_existing_bucket

func GetObjectRetention_non_existing_bucket(s *S3Conf) error

func GetObjectRetention_non_existing_object

func GetObjectRetention_non_existing_object(s *S3Conf) error

func GetObjectRetention_success

func GetObjectRetention_success(s *S3Conf) error

func GetObjectRetention_unset_config

func GetObjectRetention_unset_config(s *S3Conf) error

func GetObjectTagging_invalid_parent added in v1.0.9

func GetObjectTagging_invalid_parent(s *S3Conf) error

func GetObjectTagging_non_existing_object

func GetObjectTagging_non_existing_object(s *S3Conf) error

func GetObjectTagging_success

func GetObjectTagging_success(s *S3Conf) error

func GetObjectTagging_unset_tags

func GetObjectTagging_unset_tags(s *S3Conf) error

func GetObject_by_range_resp_status

func GetObject_by_range_resp_status(s *S3Conf) error

func GetObject_checksums added in v1.0.11

func GetObject_checksums(s *S3Conf) error

func GetObject_conditional_reads added in v1.0.18

func GetObject_conditional_reads(s *S3Conf) error

func GetObject_dir_object_checksum added in v1.3.0

func GetObject_dir_object_checksum(s *S3Conf) error

func GetObject_dir_with_range added in v1.0.17

func GetObject_dir_with_range(s *S3Conf) error

func GetObject_directory_object_noslash added in v1.0.8

func GetObject_directory_object_noslash(s *S3Conf) error

func GetObject_directory_success added in v1.0.7

func GetObject_directory_success(s *S3Conf) error

func GetObject_empty_object_part_number_1 added in v1.4.1

func GetObject_empty_object_part_number_1(s *S3Conf) error

func GetObject_incidental_dir_object added in v1.5.0

func GetObject_incidental_dir_object(s *S3Conf) error

GetObject_incidental_dir_object verifies that a directory created incidentally as a parent during object upload (i.e. never explicitly PUT via S3 with a trailing-slash key) is not accessible via GetObject.

func GetObject_invalid_parent added in v1.0.9

func GetObject_invalid_parent(s *S3Conf) error

func GetObject_invalid_part_number added in v1.0.18

func GetObject_invalid_part_number(s *S3Conf) error

func GetObject_large_object added in v1.0.10

func GetObject_large_object(s *S3Conf) error

func GetObject_mp_part_number_exceeds_parts_count added in v1.4.1

func GetObject_mp_part_number_exceeds_parts_count(s *S3Conf) error

func GetObject_mp_part_number_resp_status added in v1.4.1

func GetObject_mp_part_number_resp_status(s *S3Conf) error

func GetObject_mp_part_number_success added in v1.4.1

func GetObject_mp_part_number_success(s *S3Conf) error

func GetObject_non_existing_dir_object added in v1.0.5

func GetObject_non_existing_dir_object(s *S3Conf) error

func GetObject_non_existing_key

func GetObject_non_existing_key(s *S3Conf) error

func GetObject_non_mp_part_number_1_success added in v1.4.1

func GetObject_non_mp_part_number_1_success(s *S3Conf) error

func GetObject_not_enabled_checksum_mode added in v1.4.1

func GetObject_not_enabled_checksum_mode(s *S3Conf) error

func GetObject_overrides_fail_public added in v1.0.18

func GetObject_overrides_fail_public(s *S3Conf) error

func GetObject_overrides_presign_success added in v1.0.18

func GetObject_overrides_presign_success(s *S3Conf) error

func GetObject_overrides_success added in v1.0.18

func GetObject_overrides_success(s *S3Conf) error

func GetObject_range_and_part_number added in v1.4.1

func GetObject_range_and_part_number(s *S3Conf) error

func GetObject_ranged_with_checksum_mode added in v1.4.1

func GetObject_ranged_with_checksum_mode(s *S3Conf) error

func GetObject_success

func GetObject_success(s *S3Conf) error

func GetObject_with_range added in v1.0.14

func GetObject_with_range(s *S3Conf) error

func GetObject_zero_len_with_range added in v1.0.17

func GetObject_zero_len_with_range(s *S3Conf) error

func GetPublicAccessBlock_not_implemented added in v1.0.17

func GetPublicAccessBlock_not_implemented(s *S3Conf) error

func HeadBucket_non_existing_bucket

func HeadBucket_non_existing_bucket(s *S3Conf) error

func HeadBucket_success

func HeadBucket_success(s *S3Conf) error

func HeadObject_by_range_resp_status added in v1.4.1

func HeadObject_by_range_resp_status(s *S3Conf) error

func HeadObject_checksums added in v1.0.11

func HeadObject_checksums(s *S3Conf) error

func HeadObject_conditional_reads added in v1.0.18

func HeadObject_conditional_reads(s *S3Conf) error

func HeadObject_dir_with_range added in v1.0.17

func HeadObject_dir_with_range(s *S3Conf) error

func HeadObject_directory_object_noslash added in v1.0.8

func HeadObject_directory_object_noslash(s *S3Conf) error

func HeadObject_empty_object_part_number_1 added in v1.4.1

func HeadObject_empty_object_part_number_1(s *S3Conf) error

func HeadObject_incidental_dir_object added in v1.5.0

func HeadObject_incidental_dir_object(s *S3Conf) error

HeadObject_incidental_dir_object verifies that a directory created incidentally as a parent during object upload (i.e. never explicitly PUT via S3 with a trailing-slash key) is not accessible via HeadObject.

func HeadObject_invalid_parent_dir added in v1.0.9

func HeadObject_invalid_parent_dir(s *S3Conf) error

func HeadObject_invalid_part_number

func HeadObject_invalid_part_number(s *S3Conf) error

func HeadObject_mp_part_number_exceeds_parts_count added in v1.4.1

func HeadObject_mp_part_number_exceeds_parts_count(s *S3Conf) error

func HeadObject_mp_part_number_resp_status added in v1.4.1

func HeadObject_mp_part_number_resp_status(s *S3Conf) error

func HeadObject_mp_part_number_success added in v1.4.1

func HeadObject_mp_part_number_success(s *S3Conf) error

func HeadObject_name_too_long added in v1.0.6

func HeadObject_name_too_long(s *S3Conf) error

func HeadObject_non_existing_dir_object added in v1.0.5

func HeadObject_non_existing_dir_object(s *S3Conf) error

func HeadObject_non_existing_object

func HeadObject_non_existing_object(s *S3Conf) error

func HeadObject_non_mp_part_number_1_success added in v1.4.1

func HeadObject_non_mp_part_number_1_success(s *S3Conf) error

func HeadObject_not_enabled_checksum_mode added in v1.0.11

func HeadObject_not_enabled_checksum_mode(s *S3Conf) error

func HeadObject_overrides_fail_public added in v1.4.0

func HeadObject_overrides_fail_public(s *S3Conf) error

func HeadObject_overrides_presign_success added in v1.4.0

func HeadObject_overrides_presign_success(s *S3Conf) error

func HeadObject_overrides_success added in v1.4.0

func HeadObject_overrides_success(s *S3Conf) error

func HeadObject_range_and_part_number added in v1.4.1

func HeadObject_range_and_part_number(s *S3Conf) error

func HeadObject_ranged_with_checksum_mode added in v1.4.1

func HeadObject_ranged_with_checksum_mode(s *S3Conf) error

func HeadObject_success

func HeadObject_success(s *S3Conf) error

func HeadObject_with_range added in v1.0.14

func HeadObject_with_range(s *S3Conf) error

func HeadObject_zero_len_with_range added in v1.0.17

func HeadObject_zero_len_with_range(s *S3Conf) error

func IAMAccessControl_ActionAllowOneDenyAnotherByOmission added in v1.8.0

func IAMAccessControl_ActionAllowOneDenyAnotherByOmission(s *S3Conf) error

IAMAccessControl_ActionAllowOneDenyAnotherByOmission verifies a policy granting exactly one action grants only that action — a sibling action against the very same resource is still denied.

func IAMAccessControl_ActionExplicitDenySubsetOfWildcardAllow added in v1.8.0

func IAMAccessControl_ActionExplicitDenySubsetOfWildcardAllow(s *S3Conf) error

IAMAccessControl_ActionExplicitDenySubsetOfWildcardAllow verifies an explicit Deny for one specific action carves it out of an otherwise all-encompassing wildcard Allow, without affecting any other action the wildcard still covers.

func IAMAccessControl_ActionMatchingVariants added in v1.8.0

func IAMAccessControl_ActionMatchingVariants(s *S3Conf) error

IAMAccessControl_ActionMatchingVariants covers exact, wildcard, array, and case-insensitive Action matching, all against the same target resource so only the Action dimension varies row to row.

func IAMAccessControl_AllowGrantsMatchingRequest added in v1.8.0

func IAMAccessControl_AllowGrantsMatchingRequest(s *S3Conf) error

IAMAccessControl_AllowGrantsMatchingRequest verifies a single matching Allow statement grants the request, and that the response actually reflects the target resource (not just a nil error) — proving the call was genuinely authorized and executed, not accidentally short-circuited.

func IAMAccessControl_ConditionAllowAndDenyBothMatchDenyWins added in v1.8.0

func IAMAccessControl_ConditionAllowAndDenyBothMatchDenyWins(s *S3Conf) error

IAMAccessControl_ConditionAllowAndDenyBothMatchDenyWins verifies that when both an Allow's and a Deny's conditions match the same request, the Deny still wins — condition-matching does not change explicit Deny precedence.

func IAMAccessControl_ConditionAllowMatchesDenyConditionDoesNotApply added in v1.8.0

func IAMAccessControl_ConditionAllowMatchesDenyConditionDoesNotApply(s *S3Conf) error

IAMAccessControl_ConditionAllowMatchesDenyConditionDoesNotApply verifies that when an Allow's condition matches but a separate Deny statement's own condition does *not* match, the Deny simply doesn't apply and the Allow wins — a failing condition on a Deny is not the same as the Deny being absent, but it does mean that particular Deny never fires.

func IAMAccessControl_ConditionArnOperators added in v1.8.0

func IAMAccessControl_ConditionArnOperators(s *S3Conf) error

IAMAccessControl_ConditionArnOperators covers the ArnEquals/ArnLike/ ArnNotEquals/ArnNotLike family against aws:PrincipalArn — a real, fully-known ARN this suite controls exactly (the caller's own Arn).

func IAMAccessControl_ConditionBinaryEqualsOperator added in v1.8.0

func IAMAccessControl_ConditionBinaryEqualsOperator(s *S3Conf) error

IAMAccessControl_ConditionBinaryEqualsOperator covers BinaryEquals with deterministic base64-encoded claim values.

func IAMAccessControl_ConditionBoolOperator added in v1.8.0

func IAMAccessControl_ConditionBoolOperator(s *S3Conf) error

IAMAccessControl_ConditionBoolOperator covers Bool: true/false claim values, a string-typed "true"/"false" claim (still matched, since both sides parse via strconv.ParseBool), and a missing key.

func IAMAccessControl_ConditionCurrentTimeBroadWindow added in v1.8.0

func IAMAccessControl_ConditionCurrentTimeBroadWindow(s *S3Conf) error

IAMAccessControl_ConditionCurrentTimeBroadWindow covers Numeric/Date operators against the server's own request-time keys (aws:EpochTime, aws:CurrentTime) — since "now" can't be injected or fixed by the test, this uses deliberately broad, never-flaky bounds (year 2001 through year 2100) rather than tight boundaries; see IAMAccessControl_ConditionNumericOperators/ConditionDateOperators for precise boundary coverage against a fully test-controlled claim value.

func IAMAccessControl_ConditionDateOperators added in v1.8.0

func IAMAccessControl_ConditionDateOperators(s *S3Conf) error

IAMAccessControl_ConditionDateOperators covers the full Date condition-operator family, using a custom "joined" claim around a fixed boundary of 2024-06-15T00:00:00Z (epoch 1718409600) — both RFC3339 and epoch-seconds forms are exercised since evaluateCondition accepts either on either side.

func IAMAccessControl_ConditionForAllValuesOperator added in v1.8.0

func IAMAccessControl_ConditionForAllValuesOperator(s *S3Conf) error

IAMAccessControl_ConditionForAllValuesOperator covers ForAllValues:StringEquals against a multi-valued "groups" claim: every request value must match one of the expected values.

func IAMAccessControl_ConditionForAnyValueOperator added in v1.8.0

func IAMAccessControl_ConditionForAnyValueOperator(s *S3Conf) error

IAMAccessControl_ConditionForAnyValueOperator covers ForAnyValue: StringEquals against a multi-valued "groups" claim: one request value matching is enough.

func IAMAccessControl_ConditionIfExistsPrincipalTag added in v1.8.0

func IAMAccessControl_ConditionIfExistsPrincipalTag(s *S3Conf) error

IAMAccessControl_ConditionIfExistsPrincipalTag covers a StringEqualsIfExists condition against aws:PrincipalTag/<key>: absent (vacuously allowed), present and matching (allowed), present and mismatched (denied).

func IAMAccessControl_ConditionIfExistsTrustClaim added in v1.8.0

func IAMAccessControl_ConditionIfExistsTrustClaim(s *S3Conf) error

IAMAccessControl_ConditionIfExistsTrustClaim covers a *IfExists operator against a custom claim: absent (vacuously allowed), present and matching (allowed), present and mismatched (denied).

func IAMAccessControl_ConditionIpAddressExplicitDenyOverridesBroaderAllow added in v1.8.0

func IAMAccessControl_ConditionIpAddressExplicitDenyOverridesBroaderAllow(s *S3Conf) error

IAMAccessControl_ConditionIpAddressExplicitDenyOverridesBroaderAllow verifies a Deny scoped to one IP range carves it out of a broader Allow, using a range guaranteed to contain this test process's real source IP.

func IAMAccessControl_ConditionIpAddressRealSourceIp added in v1.8.0

func IAMAccessControl_ConditionIpAddressRealSourceIp(s *S3Conf) error

IAMAccessControl_ConditionIpAddressRealSourceIp covers IpAddress/ NotIpAddress against the *real* aws:SourceIp the gateway observes for this test process's own connection (see callerSourceIP), proving the source-IP condition context is actually wired end to end — not just that the operator's CIDR logic works in isolation (see IAMAccessControl_ConditionIpAddressOperators for the broader operator coverage via a fully test-controlled claim value).

func IAMAccessControl_ConditionMultipleContextKeysANDed added in v1.8.0

func IAMAccessControl_ConditionMultipleContextKeysANDed(s *S3Conf) error

IAMAccessControl_ConditionMultipleContextKeysANDed verifies two different condition keys within the same Condition block are ANDed: both aws:username and aws:PrincipalTag/department must match for the statement to apply.

func IAMAccessControl_ConditionMultipleOperatorBlocksANDedTrust added in v1.8.0

func IAMAccessControl_ConditionMultipleOperatorBlocksANDedTrust(s *S3Conf) error

IAMAccessControl_ConditionMultipleOperatorBlocksANDedTrust verifies two separate operator blocks in the same trust-statement Condition (a StringEquals on sub and a NumericGreaterThan on a custom claim) are ANDed: both must be satisfied.

func IAMAccessControl_ConditionNullOperatorClaim added in v1.8.0

func IAMAccessControl_ConditionNullOperatorClaim(s *S3Conf) error

IAMAccessControl_ConditionNullOperatorClaim covers Null against a custom claim: key exists vs. does not, Null:true vs. Null:false, and Null combined (ANDed) with a separate StringEquals condition in the same statement.

func IAMAccessControl_ConditionNullPrincipalTag added in v1.8.0

func IAMAccessControl_ConditionNullPrincipalTag(s *S3Conf) error

IAMAccessControl_ConditionNullPrincipalTag covers the Null operator against aws:PrincipalTag/<key>, a key that's genuinely absent from request context for an untagged caller and present for a tagged one — exercising Null's "key does not exist"/"key exists" semantics against a real, request-driven context key rather than a synthetic one.

func IAMAccessControl_ConditionNumericOperators added in v1.8.0

func IAMAccessControl_ConditionNumericOperators(s *S3Conf) error

IAMAccessControl_ConditionNumericOperators covers the full Numeric condition-operator family, using a custom "level" claim this suite fully controls, around a fixed boundary value of 5.

func IAMAccessControl_ConditionOneFailedConditionVoidsStatement added in v1.8.0

func IAMAccessControl_ConditionOneFailedConditionVoidsStatement(s *S3Conf) error

IAMAccessControl_ConditionOneFailedConditionVoidsStatement verifies a statement combining two condition keys (ANDed) does not apply if either one fails to match — demonstrated here via aws:username (matching) AND aws:SourceIp (deliberately scoped to a range that excludes this test process's real source IP).

func IAMAccessControl_ConditionRequestTagOnCreateUser added in v1.8.0

func IAMAccessControl_ConditionRequestTagOnCreateUser(s *S3Conf) error

IAMAccessControl_ConditionRequestTagOnCreateUser covers aws:RequestTag/ aws:TagKeys: a Condition scoping the Tags parameter of a CreateUser request itself, proving request-scoped (not just principal- or resource-scoped) context is evaluated.

func IAMAccessControl_ConditionResourceTagOnTarget added in v1.8.0

func IAMAccessControl_ConditionResourceTagOnTarget(s *S3Conf) error

IAMAccessControl_ConditionResourceTagOnTarget covers iam:ResourceTag/ aws:ResourceTag: a Condition scoping the *target* resource's own tag, proving resourceForAction's tag resolution is wired into Condition evaluation, not just the caller's own tags.

func IAMAccessControl_ConditionStringMultipleExpectedValuesOR added in v1.8.0

func IAMAccessControl_ConditionStringMultipleExpectedValuesOR(s *S3Conf) error

IAMAccessControl_ConditionStringMultipleExpectedValuesOR verifies a StringEquals condition with an array of expected values matches if the actual value equals *any* of them.

func IAMAccessControl_ConditionStringOperators added in v1.8.0

func IAMAccessControl_ConditionStringOperators(s *S3Conf) error

IAMAccessControl_ConditionStringOperators covers the full String condition-operator family against aws:username — a key this suite fully controls on both sides (the caller's actual username, and the policy's expected value), giving every row a deterministic outcome.

func IAMAccessControl_CrossIdentity_AssumeRoleWithWebIdentityHasNoCallerIdentityCheck added in v1.8.0

func IAMAccessControl_CrossIdentity_AssumeRoleWithWebIdentityHasNoCallerIdentityCheck(s *S3Conf) error

IAMAccessControl_CrossIdentity_AssumeRoleWithWebIdentityHasNoCallerIdentityCheck documents a meaningful divergence from real AWS's plain sts:AssumeRole: this gateway's only assume-role action is unauthenticated (see stsOpenRoute in iamapi/router.go — VerifyIAMAuth never runs for it), so there is no calling IAM identity and thus no identity-based-policy check on the assumption call itself, only the target role's trust policy. This is demonstrated by showing an identical trust/token pair produces an identical result (the same network-dependent failure this suite uses throughout as its proxy for reaching a genuine Allowed decision — see the file doc comment) whether the request is signed with the real root credential or with a completely arbitrary, nonexistent access key: if caller identity mattered here, at least one of these would fail differently (e.g. an unknown-access-key error) instead of both reaching the identical outcome.

func IAMAccessControl_CrossIdentity_UnrelatedRoleCannotBeAssumedViaWrongIssuer added in v1.8.0

func IAMAccessControl_CrossIdentity_UnrelatedRoleCannotBeAssumedViaWrongIssuer(s *S3Conf) error

IAMAccessControl_CrossIdentity_UnrelatedRoleCannotBeAssumedViaWrongIssuer verifies isolation between two independently-configured federated roles: a token issued for role A's provider cannot assume role B, even though it can (still) assume role A.

func IAMAccessControl_EffectNonMatchingAllowStillImplicitlyDenies added in v1.8.0

func IAMAccessControl_EffectNonMatchingAllowStillImplicitlyDenies(s *S3Conf) error

IAMAccessControl_EffectNonMatchingAllowStillImplicitlyDenies verifies an Allow statement present in a policy but not covering the tested action/resource contributes nothing — the request is still implicitly denied, not accidentally granted just because *some* Allow exists somewhere in the document.

func IAMAccessControl_EffectNonMatchingDenyDoesNotBlockUnrelatedAllow added in v1.8.0

func IAMAccessControl_EffectNonMatchingDenyDoesNotBlockUnrelatedAllow(s *S3Conf) error

IAMAccessControl_EffectNonMatchingDenyDoesNotBlockUnrelatedAllow verifies a Deny statement that doesn't cover the tested action/resource simply doesn't apply — it does not somehow block an unrelated Allow elsewhere in the same policy.

func IAMAccessControl_ExplicitDenyOverridesAllow added in v1.8.0

func IAMAccessControl_ExplicitDenyOverridesAllow(s *S3Conf) error

IAMAccessControl_ExplicitDenyOverridesAllow verifies an explicit Deny always wins over a matching Allow, regardless of statement order or whether the Deny is in the same policy document or a separate one.

func IAMAccessControl_ImplicitDenyNoMatchingPolicy added in v1.8.0

func IAMAccessControl_ImplicitDenyNoMatchingPolicy(s *S3Conf) error

IAMAccessControl_ImplicitDenyNoMatchingPolicy verifies a caller with no policies at all is denied by default (no Allow ever exists to grant anything).

func IAMAccessControl_MultipleInlinePoliciesCombinedAllow added in v1.8.0

func IAMAccessControl_MultipleInlinePoliciesCombinedAllow(s *S3Conf) error

IAMAccessControl_MultipleInlinePoliciesCombinedAllow verifies two separate inline policies attached to the same user are combined: a statement in either one is enough to grant its action.

func IAMAccessControl_MultipleInlinePoliciesExplicitDenyWins added in v1.8.0

func IAMAccessControl_MultipleInlinePoliciesExplicitDenyWins(s *S3Conf) error

IAMAccessControl_MultipleInlinePoliciesExplicitDenyWins verifies a Deny in one inline policy overrides an Allow in a *different* inline policy on the same user — combination is not "most permissive wins", explicit Deny is global across every attached policy.

func IAMAccessControl_MultipleStatementsEvaluatedIndependently added in v1.8.0

func IAMAccessControl_MultipleStatementsEvaluatedIndependently(s *S3Conf) error

IAMAccessControl_MultipleStatementsEvaluatedIndependently verifies two statements in one policy document, covering two different actions, are each evaluated on their own terms: both grant their own action, and neither grants the other's.

func IAMAccessControl_NonMatchingStatementDoesNotGrant added in v1.8.0

func IAMAccessControl_NonMatchingStatementDoesNotGrant(s *S3Conf) error

IAMAccessControl_NonMatchingStatementDoesNotGrant verifies a policy whose only statement covers a *different* action does not grant the tested action — a non-matching statement contributes nothing, it isn't a fallback Allow.

func IAMAccessControl_NotActionAllowGrantsEverythingExceptExcluded added in v1.8.0

func IAMAccessControl_NotActionAllowGrantsEverythingExceptExcluded(s *S3Conf) error

IAMAccessControl_NotActionAllowGrantsEverythingExceptExcluded verifies an Allow+NotAction statement grants every action *except* the ones listed — the excluded action is denied, a nonexcluded one is allowed.

func IAMAccessControl_NotActionDenyBlocksEverythingExceptExcluded added in v1.8.0

func IAMAccessControl_NotActionDenyBlocksEverythingExceptExcluded(s *S3Conf) error

IAMAccessControl_NotActionDenyBlocksEverythingExceptExcluded verifies the interaction between an Action-based Allow and a NotAction-based Deny: a broad Allow grants everything, but a Deny+NotAction statement denies every action *except* the one named — net effect, only that one action remains allowed.

func IAMAccessControl_NotResourceExcludesTarget added in v1.8.0

func IAMAccessControl_NotResourceExcludesTarget(s *S3Conf) error

IAMAccessControl_NotResourceExcludesTarget verifies both directions of NotResource: an Allow+NotResource statement applies to every resource *except* the excluded one, while a Deny+NotResource statement (layered over a broader baseline Allow) denies every resource *except* the excluded one — the excluded resource's fate inverts between the two.

func IAMAccessControl_NotResourceMultipleExcludedResources added in v1.8.0

func IAMAccessControl_NotResourceMultipleExcludedResources(s *S3Conf) error

IAMAccessControl_NotResourceMultipleExcludedResources verifies a NotResource array excludes every listed resource, not just the first.

func IAMAccessControl_NotResourceWildcardExclusion added in v1.8.0

func IAMAccessControl_NotResourceWildcardExclusion(s *S3Conf) error

IAMAccessControl_NotResourceWildcardExclusion verifies NotResource supports the same wildcard glob Resource does: excluding a whole path-prefix pattern excludes every resource under it, not just one exact ARN.

func IAMAccessControl_ResourceExplicitDenyOverridesBroaderAllow added in v1.8.0

func IAMAccessControl_ResourceExplicitDenyOverridesBroaderAllow(s *S3Conf) error

IAMAccessControl_ResourceExplicitDenyOverridesBroaderAllow verifies a Deny scoped to one specific resource carves it out of a broader Resource:"*" Allow, without affecting any other resource the Allow still covers.

func IAMAccessControl_ResourceMatchingVariants added in v1.8.0

func IAMAccessControl_ResourceMatchingVariants(s *S3Conf) error

IAMAccessControl_ResourceMatchingVariants covers exact, wildcard, and array Resource matching for both a user and a role target.

func IAMAccessControl_ResourceOneAllowedOneDeniedSameAction added in v1.8.0

func IAMAccessControl_ResourceOneAllowedOneDeniedSameAction(s *S3Conf) error

IAMAccessControl_ResourceOneAllowedOneDeniedSameAction verifies a resource-scoped Allow grants the same action against its named resource but denies it against an equally-valid, unrelated resource.

func IAMAccessControl_ResourceWildcardRequiredForListAction added in v1.8.0

func IAMAccessControl_ResourceWildcardRequiredForListAction(s *S3Conf) error

IAMAccessControl_ResourceWildcardRequiredForListAction verifies a List-type action (whose only valid resource-level scope is "*", per resourceForAction's classification) is denied by a resource-scoped grant naming a specific entity, and allowed once the grant uses "*".

func IAMAccessControl_RolePermissionPolicyDoesNotAffectAssumptionDecision added in v1.8.0

func IAMAccessControl_RolePermissionPolicyDoesNotAffectAssumptionDecision(s *S3Conf) error

IAMAccessControl_RolePermissionPolicyDoesNotAffectAssumptionDecision demonstrates that trust-policy authorization and role-permission authorization are separate stages: a role's inline (permission) policy — absent, permissive, or deny-all — has no bearing on whether the role can be assumed. Every variant reaches the identical trust-evaluation outcome (this suite's network-stage proxy for "Allowed", per the file doc comment) with the trust policy held fixed.

func IAMAccessControl_RoleTrustDenialIndependentOfPermissionPolicy added in v1.8.0

func IAMAccessControl_RoleTrustDenialIndependentOfPermissionPolicy(s *S3Conf) error

IAMAccessControl_RoleTrustDenialIndependentOfPermissionPolicy is the converse of RolePermissionPolicyDoesNotAffectAssumptionDecision: even a maximally permissive role permission policy cannot compensate for a trust policy that doesn't authorize the caller — assumption is still denied.

func IAMAccessControl_TrustPolicyAudienceAndSubjectBothMustMatch added in v1.8.0

func IAMAccessControl_TrustPolicyAudienceAndSubjectBothMustMatch(s *S3Conf) error

IAMAccessControl_TrustPolicyAudienceAndSubjectBothMustMatch verifies a trust statement with Conditions on both <provider>:aud and <provider>:sub requires both to match — either alone is not enough.

func IAMAccessControl_TrustPolicyAudienceCorrectAllowed added in v1.8.0

func IAMAccessControl_TrustPolicyAudienceCorrectAllowed(s *S3Conf) error

IAMAccessControl_TrustPolicyAudienceCorrectAllowed verifies a StringEquals condition on <provider>:aud allows a token whose (ClientIDList-valid) audience matches the condition's expected value. The provider's ClientIDList registers *two* acceptable audiences so this and AudienceIncorrectDenied can each present a ClientIDList-valid audience, isolating the Condition itself as what's actually under test (see newFederatedRole's doc comment).

func IAMAccessControl_TrustPolicyAudienceIncorrectDenied added in v1.8.0

func IAMAccessControl_TrustPolicyAudienceIncorrectDenied(s *S3Conf) error

IAMAccessControl_TrustPolicyAudienceIncorrectDenied is the AudienceCorrectAllowed companion: an audience that's valid per ClientIDList but doesn't match the trust policy's Condition is denied.

func IAMAccessControl_TrustPolicyExplicitDenyStatement added in v1.8.0

func IAMAccessControl_TrustPolicyExplicitDenyStatement(s *S3Conf) error

IAMAccessControl_TrustPolicyExplicitDenyStatement verifies an explicit Deny statement scoped to one subject blocks assumption for that subject while a broader Allow still covers every other subject.

func IAMAccessControl_TrustPolicyFederatedArrayMatchesAny added in v1.8.0

func IAMAccessControl_TrustPolicyFederatedArrayMatchesAny(s *S3Conf) error

IAMAccessControl_TrustPolicyFederatedArrayMatchesAny verifies a Federated principal given as an array of provider ARNs matches a token issued by *either* one.

func IAMAccessControl_TrustPolicyFederatedExactMatchAllowed added in v1.8.0

func IAMAccessControl_TrustPolicyFederatedExactMatchAllowed(s *S3Conf) error

IAMAccessControl_TrustPolicyFederatedExactMatchAllowed verifies a trust policy naming the exact registered OIDC provider ARN as its Federated principal allows assumption for a token issued by that provider.

func IAMAccessControl_TrustPolicyFederatedWrongProviderDenied added in v1.8.0

func IAMAccessControl_TrustPolicyFederatedWrongProviderDenied(s *S3Conf) error

IAMAccessControl_TrustPolicyFederatedWrongProviderDenied verifies a trust policy federating a *real, registered* provider still denies a token issued by a *different* real, registered provider — an existing-but- mismatched principal, distinct from a dangling reference to a provider that was never created at all (see IAMAssumeRoleWithWebIdentity_no_matching_principal for that case).

func IAMAccessControl_TrustPolicyMissingRequiredClaimDenied added in v1.8.0

func IAMAccessControl_TrustPolicyMissingRequiredClaimDenied(s *S3Conf) error

IAMAccessControl_TrustPolicyMissingRequiredClaimDenied verifies a StringEquals condition against a claim key the token simply never carries denies assumption — a positive (non-IfExists) operator against an absent key fails closed (see IAMAccessControl_ConditionIfExistsTrustClaim for the IfExists variant's opposite behavior on the same kind of absence).

func IAMAccessControl_TrustPolicyMultipleAudiencesArrayAllowed added in v1.8.0

func IAMAccessControl_TrustPolicyMultipleAudiencesArrayAllowed(s *S3Conf) error

IAMAccessControl_TrustPolicyMultipleAudiencesArrayAllowed verifies a StringEquals condition on <provider>:aud with an array of acceptable values matches any one of them.

func IAMAccessControl_TrustPolicyMultipleStatementsSecondGrants added in v1.8.0

func IAMAccessControl_TrustPolicyMultipleStatementsSecondGrants(s *S3Conf) error

IAMAccessControl_TrustPolicyMultipleStatementsSecondGrants verifies a trust policy is evaluated statement by statement across the whole document: a first statement referencing an unrelated provider doesn't prevent a second statement (for the *actual* issuer) from granting assumption.

func IAMAccessControl_TrustPolicyNonFederatedPrincipalsIgnored added in v1.8.0

func IAMAccessControl_TrustPolicyNonFederatedPrincipalsIgnored(s *S3Conf) error

IAMAccessControl_TrustPolicyNonFederatedPrincipalsIgnored documents a meaningful divergence from real AWS IAM: this gateway's only AssumeRole-family action is AssumeRoleWithWebIdentity, so EvaluateWebIdentityTrust only ever inspects a statement's Principal.Federated value — an "AWS" principal (even a wildcard "*", or a literal account root ARN, both of which would grant real AWS's plain sts:AssumeRole) or a "Service" principal is accepted by write-time validation but has no runtime effect: a role trusting *only* one of these can never actually be assumed by anyone, denied exactly as if the trust policy had no usable principal at all.

func IAMAccessControl_TrustPolicyStringEqualsSubjectExactAllowed added in v1.8.0

func IAMAccessControl_TrustPolicyStringEqualsSubjectExactAllowed(s *S3Conf) error

IAMAccessControl_TrustPolicyStringEqualsSubjectExactAllowed verifies a StringEquals condition on <provider>:sub allows a token whose subject matches exactly.

func IAMAccessControl_TrustPolicyStringEqualsSubjectMismatchDenied added in v1.8.0

func IAMAccessControl_TrustPolicyStringEqualsSubjectMismatchDenied(s *S3Conf) error

IAMAccessControl_TrustPolicyStringEqualsSubjectMismatchDenied is the StringEqualsSubjectExactAllowed companion: a different repository's subject is denied.

func IAMAccessControl_TrustPolicyStringLikeBranchWildcardAllowed added in v1.8.0

func IAMAccessControl_TrustPolicyStringLikeBranchWildcardAllowed(s *S3Conf) error

IAMAccessControl_TrustPolicyStringLikeBranchWildcardAllowed verifies a StringLike condition on <provider>:sub with a trailing wildcard allows any branch under refs/heads/ — a realistic GitHub-Actions-style pattern.

func IAMAccessControl_TrustPolicyStringLikeTagSubjectDenied added in v1.8.0

func IAMAccessControl_TrustPolicyStringLikeTagSubjectDenied(s *S3Conf) error

IAMAccessControl_TrustPolicyStringLikeTagSubjectDenied is the StringLikeBranchWildcardAllowed companion: a pull-request-triggered subject (a different sub shape entirely, not matching the refs/heads/* pattern) is denied.

func IAMAccessControl_UserInlinePolicyWorkflow added in v1.8.0

func IAMAccessControl_UserInlinePolicyWorkflow(s *S3Conf) error

IAMAccessControl_UserInlinePolicyWorkflow exercises the full lifecycle a user's inline policy goes through: create two users (one caller, one target), attach an inline policy scoped to a condition on the caller's own identity, create access keys, make signed calls as the caller, verify the permitted action+resource succeeds, verify denial for another action, another user resource, a condition mismatch (a second, differently-named caller under the same policy shape), and an explicit Deny, then update the policy and verify the changed authorization takes effect while the explicit Deny still holds.

func IAMAccessControl_UserPathScopedResourceGrantsOnlyMatchingPath added in v1.8.0

func IAMAccessControl_UserPathScopedResourceGrantsOnlyMatchingPath(s *S3Conf) error

IAMAccessControl_UserPathScopedResourceGrantsOnlyMatchingPath verifies a resource pattern scoped to one path prefix grants access to users under that path but not to a user with a different path, even with an otherwise-identical name prefix.

func IAMAddClientIDToOpenIDConnectProvider_client_id_too_long added in v1.8.0

func IAMAddClientIDToOpenIDConnectProvider_client_id_too_long(s *S3Conf) error

func IAMAddClientIDToOpenIDConnectProvider_idempotent_duplicate added in v1.8.0

func IAMAddClientIDToOpenIDConnectProvider_idempotent_duplicate(s *S3Conf) error

IAMAddClientIDToOpenIDConnectProvider_idempotent_duplicate confirms adding an already-present client ID succeeds silently rather than erroring or creating a duplicate entry.

func IAMAddClientIDToOpenIDConnectProvider_limit_exceeded added in v1.8.0

func IAMAddClientIDToOpenIDConnectProvider_limit_exceeded(s *S3Conf) error

func IAMAddClientIDToOpenIDConnectProvider_missing_arn added in v1.8.0

func IAMAddClientIDToOpenIDConnectProvider_missing_arn(s *S3Conf) error

func IAMAddClientIDToOpenIDConnectProvider_missing_client_id added in v1.8.0

func IAMAddClientIDToOpenIDConnectProvider_missing_client_id(s *S3Conf) error

func IAMAddClientIDToOpenIDConnectProvider_non_existing_provider added in v1.8.0

func IAMAddClientIDToOpenIDConnectProvider_non_existing_provider(s *S3Conf) error

func IAMAddClientIDToOpenIDConnectProvider_success added in v1.8.0

func IAMAddClientIDToOpenIDConnectProvider_success(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_audience_not_in_client_id_list added in v1.8.0

func IAMAssumeRoleWithWebIdentity_audience_not_in_client_id_list(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_condition_failed added in v1.8.0

func IAMAssumeRoleWithWebIdentity_condition_failed(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_duration_exceeds_role_max added in v1.8.0

func IAMAssumeRoleWithWebIdentity_duration_exceeds_role_max(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_empty_client_id_list added in v1.8.0

func IAMAssumeRoleWithWebIdentity_empty_client_id_list(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_explicit_deny added in v1.8.0

func IAMAssumeRoleWithWebIdentity_explicit_deny(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_idp_communication_error added in v1.8.0

func IAMAssumeRoleWithWebIdentity_idp_communication_error(s *S3Conf) error

IAMAssumeRoleWithWebIdentity_idp_communication_error confirms the network-dependent signature-verification step is wired all the way through the real HTTP action handler: a provider Url that's a loopback IP literal is rejected by VerifyWebIdentitySignature's mandatory SSRF guard before any real network attempt, deterministically and without requiring outbound network access from the test environment — the same technique IAMCreateOpenIDConnectProvider_thumbprint_autofetch_communication_error uses for CreateOpenIDConnectProvider's own auto-fetch path.

func IAMAssumeRoleWithWebIdentity_issuer_scheme_mismatch added in v1.8.0

func IAMAssumeRoleWithWebIdentity_issuer_scheme_mismatch(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_issuer_trailing_slash_mismatch added in v1.8.0

func IAMAssumeRoleWithWebIdentity_issuer_trailing_slash_mismatch(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_malformed_duration added in v1.8.0

func IAMAssumeRoleWithWebIdentity_malformed_duration(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_malformed_token added in v1.8.0

func IAMAssumeRoleWithWebIdentity_malformed_token(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_missing_role_arn added in v1.8.0

func IAMAssumeRoleWithWebIdentity_missing_role_arn(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_no_issuer_match added in v1.8.0

func IAMAssumeRoleWithWebIdentity_no_issuer_match(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_no_matching_principal added in v1.8.0

func IAMAssumeRoleWithWebIdentity_no_matching_principal(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_nonexistent_role added in v1.8.0

func IAMAssumeRoleWithWebIdentity_nonexistent_role(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_oaud_condition_matches added in v1.8.0

func IAMAssumeRoleWithWebIdentity_oaud_condition_matches(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_oaud_condition_mismatch added in v1.8.0

func IAMAssumeRoleWithWebIdentity_oaud_condition_mismatch(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_policy_arns_rejected added in v1.8.0

func IAMAssumeRoleWithWebIdentity_policy_arns_rejected(s *S3Conf) error

IAMAssumeRoleWithWebIdentity_policy_arns_rejected and IAMAssumeRoleWithWebIdentity_provider_id_rejected confirm PolicyArns and ProviderId — valid AssumeRoleWithWebIdentity parameters this implementation doesn't support — are rejected outright rather than silently ignored. Both checks run before the role is even looked up, so (matching the other request-validation tests above) RoleArn need not name a real role.

func IAMAssumeRoleWithWebIdentity_provider_id_rejected added in v1.8.0

func IAMAssumeRoleWithWebIdentity_provider_id_rejected(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_role_arn_path_mismatch added in v1.8.0

func IAMAssumeRoleWithWebIdentity_role_arn_path_mismatch(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_role_arn_too_short added in v1.8.0

func IAMAssumeRoleWithWebIdentity_role_arn_too_short(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_session_policy_invalid added in v1.8.0

func IAMAssumeRoleWithWebIdentity_session_policy_invalid(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_session_policy_too_large added in v1.8.0

func IAMAssumeRoleWithWebIdentity_session_policy_too_large(s *S3Conf) error

func IAMAssumeRoleWithWebIdentity_wrong_version_is_invalid_action added in v1.8.0

func IAMAssumeRoleWithWebIdentity_wrong_version_is_invalid_action(s *S3Conf) error

func IAMAuth_credentials_future_date added in v1.8.0

func IAMAuth_credentials_future_date(s *S3Conf) error

func IAMAuth_credentials_incorrect_region added in v1.8.0

func IAMAuth_credentials_incorrect_region(s *S3Conf) error

func IAMAuth_credentials_incorrect_service added in v1.8.0

func IAMAuth_credentials_incorrect_service(s *S3Conf) error

func IAMAuth_credentials_invalid_date added in v1.8.0

func IAMAuth_credentials_invalid_date(s *S3Conf) error

func IAMAuth_credentials_invalid_terminal added in v1.8.0

func IAMAuth_credentials_invalid_terminal(s *S3Conf) error

func IAMAuth_credentials_non_existing_access_key added in v1.8.0

func IAMAuth_credentials_non_existing_access_key(s *S3Conf) error

func IAMAuth_credentials_past_date added in v1.8.0

func IAMAuth_credentials_past_date(s *S3Conf) error

func IAMAuth_date_mismatch added in v1.8.0

func IAMAuth_date_mismatch(s *S3Conf) error

func IAMAuth_invalid_auth_header added in v1.8.0

func IAMAuth_invalid_auth_header(s *S3Conf) error

func IAMAuth_invalid_date_header added in v1.8.0

func IAMAuth_invalid_date_header(s *S3Conf) error

func IAMAuth_invalid_sha256_payload_hash_ignored added in v1.8.0

func IAMAuth_invalid_sha256_payload_hash_ignored(s *S3Conf) error

func IAMAuth_malformed_component added in v1.8.0

func IAMAuth_malformed_component(s *S3Conf) error

func IAMAuth_malformed_credential added in v1.8.0

func IAMAuth_malformed_credential(s *S3Conf) error

func IAMAuth_missing_authorization_component added in v1.8.0

func IAMAuth_missing_authorization_component(s *S3Conf) error

func IAMAuth_missing_date_header added in v1.8.0

func IAMAuth_missing_date_header(s *S3Conf) error

func IAMAuth_signature_error_incorrect_secret_key added in v1.8.0

func IAMAuth_signature_error_incorrect_secret_key(s *S3Conf) error

func IAMAuth_sigv2_not_supported added in v1.8.0

func IAMAuth_sigv2_not_supported(s *S3Conf) error

func IAMAuth_unsigned_non_required_header added in v1.8.0

func IAMAuth_unsigned_non_required_header(s *S3Conf) error

func IAMAuth_unsigned_required_header added in v1.8.0

func IAMAuth_unsigned_required_header(s *S3Conf) error

func IAMAuth_unsupported_signature_version added in v1.8.0

func IAMAuth_unsupported_signature_version(s *S3Conf) error

func IAMAuth_with_expect_header added in v1.8.0

func IAMAuth_with_expect_header(s *S3Conf) error

func IAMCreateAccessKey_empty_user_name added in v1.8.0

func IAMCreateAccessKey_empty_user_name(s *S3Conf) error

IAMCreateAccessKey_empty_user_name confirms only an entirely absent UserName is inferred: sending the parameter with an empty value stays a validation failure rather than silently creating a key for the caller.

func IAMCreateAccessKey_infers_caller_user_name added in v1.8.0

func IAMCreateAccessKey_infers_caller_user_name(s *S3Conf) error

func IAMCreateAccessKey_invalid_user_name added in v1.8.0

func IAMCreateAccessKey_invalid_user_name(s *S3Conf) error

func IAMCreateAccessKey_limit_exceeded added in v1.8.0

func IAMCreateAccessKey_limit_exceeded(s *S3Conf) error

func IAMCreateAccessKey_long_user_name added in v1.8.0

func IAMCreateAccessKey_long_user_name(s *S3Conf) error

func IAMCreateAccessKey_missing_user_name added in v1.8.0

func IAMCreateAccessKey_missing_user_name(s *S3Conf) error

IAMCreateAccessKey_missing_user_name calls as root, which is a configured credential rather than a stored IAM user and so has no user name to infer — unlike a caller signing with an IAM user's own access key, covered by IAMCreateAccessKey_infers_caller_user_name.

func IAMCreateAccessKey_non_existing_user added in v1.8.0

func IAMCreateAccessKey_non_existing_user(s *S3Conf) error

func IAMCreateAccessKey_success added in v1.8.0

func IAMCreateAccessKey_success(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_already_exists added in v1.8.0

func IAMCreateOpenIDConnectProvider_already_exists(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_client_id_too_long added in v1.8.0

func IAMCreateOpenIDConnectProvider_client_id_too_long(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_defaults added in v1.8.0

func IAMCreateOpenIDConnectProvider_defaults(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_duplicate_tag_keys added in v1.8.0

func IAMCreateOpenIDConnectProvider_duplicate_tag_keys(s *S3Conf) error

IAMCreateOpenIDConnectProvider_duplicate_tag_keys covers the provider actions' exact tag-key comparison: only a byte-identical repeat is a duplicate, so a differently-cased repeat creates two distinct tags.

func IAMCreateOpenIDConnectProvider_invalid_thumbprint added in v1.8.0

func IAMCreateOpenIDConnectProvider_invalid_thumbprint(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_invalid_url added in v1.8.0

func IAMCreateOpenIDConnectProvider_invalid_url(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_ip_literal_host added in v1.8.0

func IAMCreateOpenIDConnectProvider_ip_literal_host(s *S3Conf) error

IAMCreateOpenIDConnectProvider_ip_literal_host confirms an IP-literal host is accepted by exercising isValidOIDCHostname's net.ParseIP branch end-to-end.

func IAMCreateOpenIDConnectProvider_missing_url added in v1.8.0

func IAMCreateOpenIDConnectProvider_missing_url(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_quota_exceeded added in v1.8.0

func IAMCreateOpenIDConnectProvider_quota_exceeded(s *S3Conf) error

IAMCreateOpenIDConnectProvider_quota_exceeded tops the account up to storage.MaxOIDCProvidersPerAccount from whatever baseline count already exists, then confirms one more Create is rejected. It only ever creates (and cleans up) providers relative to the observed baseline, so it tolerates a non-empty account, but — like any test of a truly account-global, unscoped quota — it assumes no other test is concurrently creating/deleting OIDC providers, which holds for this suite's default sequential execution (not necessarily under --parallel).

func IAMCreateOpenIDConnectProvider_success added in v1.8.0

func IAMCreateOpenIDConnectProvider_success(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_thumbprint_autofetch_communication_error added in v1.8.0

func IAMCreateOpenIDConnectProvider_thumbprint_autofetch_communication_error(s *S3Conf) error

IAMCreateOpenIDConnectProvider_thumbprint_autofetch_communication_error confirms the network-dependent auto-fetch fallback (triggered by omitting ThumbprintList) is wired all the way through the real HTTP action handler: a loopback URL is rejected by the fetch's mandatory SSRF guard before any real network attempt, deterministically and without requiring outbound network access from the test environment.

func IAMCreateOpenIDConnectProvider_thumbprint_edge_cases added in v1.8.0

func IAMCreateOpenIDConnectProvider_thumbprint_edge_cases(s *S3Conf) error

IAMCreateOpenIDConnectProvider_thumbprint_edge_cases exercises two success-path ThumbprintList edge cases in one pass: exactly MaxThumbprintsPerOIDCProvider entries (the limit message says "fewer than 5", but 5 itself is accepted), and a 40-character entry outside the hex charset (AWS does not check for a hex charset).

func IAMCreateOpenIDConnectProvider_too_many_client_ids added in v1.8.0

func IAMCreateOpenIDConnectProvider_too_many_client_ids(s *S3Conf) error

func IAMCreateOpenIDConnectProvider_trailing_slash_distinct_identity added in v1.8.0

func IAMCreateOpenIDConnectProvider_trailing_slash_distinct_identity(s *S3Conf) error

IAMCreateOpenIDConnectProvider_trailing_slash_distinct_identity confirms that a trailing slash is part of a provider's identity: "https://host" and "https://host/" register as two distinct providers, not a collision.

func IAMCreateRole_already_exists added in v1.8.0

func IAMCreateRole_already_exists(s *S3Conf) error

func IAMCreateRole_already_exists_case_insensitive added in v1.8.0

func IAMCreateRole_already_exists_case_insensitive(s *S3Conf) error

func IAMCreateRole_defaults added in v1.8.0

func IAMCreateRole_defaults(s *S3Conf) error

func IAMCreateRole_description_invalid_charset added in v1.8.0

func IAMCreateRole_description_invalid_charset(s *S3Conf) error

func IAMCreateRole_description_too_long added in v1.8.0

func IAMCreateRole_description_too_long(s *S3Conf) error

func IAMCreateRole_duplicate_tag_keys added in v1.8.0

func IAMCreateRole_duplicate_tag_keys(s *S3Conf) error

func IAMCreateRole_invalid_path added in v1.8.0

func IAMCreateRole_invalid_path(s *S3Conf) error

func IAMCreateRole_invalid_role_name added in v1.8.0

func IAMCreateRole_invalid_role_name(s *S3Conf) error

func IAMCreateRole_long_path added in v1.8.0

func IAMCreateRole_long_path(s *S3Conf) error

func IAMCreateRole_long_role_name added in v1.8.0

func IAMCreateRole_long_role_name(s *S3Conf) error

func IAMCreateRole_max_session_duration_invalid_format added in v1.8.0

func IAMCreateRole_max_session_duration_invalid_format(s *S3Conf) error

func IAMCreateRole_max_session_duration_too_high added in v1.8.0

func IAMCreateRole_max_session_duration_too_high(s *S3Conf) error

func IAMCreateRole_max_session_duration_too_low added in v1.8.0

func IAMCreateRole_max_session_duration_too_low(s *S3Conf) error

func IAMCreateRole_missing_assume_role_policy_document added in v1.8.0

func IAMCreateRole_missing_assume_role_policy_document(s *S3Conf) error

func IAMCreateRole_missing_role_name added in v1.8.0

func IAMCreateRole_missing_role_name(s *S3Conf) error

func IAMCreateRole_non_ascii_assume_role_policy_document added in v1.8.0

func IAMCreateRole_non_ascii_assume_role_policy_document(s *S3Conf) error

func IAMCreateRole_success added in v1.8.0

func IAMCreateRole_success(s *S3Conf) error

func IAMCreateRole_trust_policy_document_grammar added in v1.8.0

func IAMCreateRole_trust_policy_document_grammar(s *S3Conf) error

func IAMCreateRole_trust_policy_size_limit_exceeded added in v1.8.0

func IAMCreateRole_trust_policy_size_limit_exceeded(s *S3Conf) error

func IAMCreateUser_already_exists_case_insensitive added in v1.8.0

func IAMCreateUser_already_exists_case_insensitive(s *S3Conf) error

func IAMCreateUser_default_path added in v1.8.0

func IAMCreateUser_default_path(s *S3Conf) error

func IAMCreateUser_duplicate_tag_keys added in v1.8.0

func IAMCreateUser_duplicate_tag_keys(s *S3Conf) error

func IAMCreateUser_invalid_path added in v1.8.0

func IAMCreateUser_invalid_path(s *S3Conf) error

func IAMCreateUser_invalid_tag_key added in v1.8.0

func IAMCreateUser_invalid_tag_key(s *S3Conf) error

func IAMCreateUser_invalid_tag_value added in v1.8.0

func IAMCreateUser_invalid_tag_value(s *S3Conf) error

func IAMCreateUser_invalid_user_name added in v1.8.0

func IAMCreateUser_invalid_user_name(s *S3Conf) error

func IAMCreateUser_long_path added in v1.8.0

func IAMCreateUser_long_path(s *S3Conf) error

func IAMCreateUser_long_tag_key added in v1.8.0

func IAMCreateUser_long_tag_key(s *S3Conf) error

func IAMCreateUser_long_tag_value added in v1.8.0

func IAMCreateUser_long_tag_value(s *S3Conf) error

func IAMCreateUser_long_user_name added in v1.8.0

func IAMCreateUser_long_user_name(s *S3Conf) error

func IAMCreateUser_missing_user_name added in v1.8.0

func IAMCreateUser_missing_user_name(s *S3Conf) error

func IAMCreateUser_success added in v1.8.0

func IAMCreateUser_success(s *S3Conf) error

func IAMCreateUser_user_already_exists added in v1.8.0

func IAMCreateUser_user_already_exists(s *S3Conf) error

func IAMDeleteAccessKey_access_key_id_too_long added in v1.8.0

func IAMDeleteAccessKey_access_key_id_too_long(s *S3Conf) error

func IAMDeleteAccessKey_access_key_id_too_short added in v1.8.0

func IAMDeleteAccessKey_access_key_id_too_short(s *S3Conf) error

func IAMDeleteAccessKey_inferred_user_name_scoped_to_caller added in v1.8.0

func IAMDeleteAccessKey_inferred_user_name_scoped_to_caller(s *S3Conf) error

IAMDeleteAccessKey_inferred_user_name_scoped_to_caller confirms the inferred user name is the caller's own and nothing else: another user's access key is simply not found, rather than being deleted.

func IAMDeleteAccessKey_infers_caller_user_name added in v1.8.0

func IAMDeleteAccessKey_infers_caller_user_name(s *S3Conf) error

func IAMDeleteAccessKey_invalid_access_key_id_chars added in v1.8.0

func IAMDeleteAccessKey_invalid_access_key_id_chars(s *S3Conf) error

func IAMDeleteAccessKey_invalid_user_name added in v1.8.0

func IAMDeleteAccessKey_invalid_user_name(s *S3Conf) error

func IAMDeleteAccessKey_long_user_name added in v1.8.0

func IAMDeleteAccessKey_long_user_name(s *S3Conf) error

func IAMDeleteAccessKey_missing_access_key_id added in v1.8.0

func IAMDeleteAccessKey_missing_access_key_id(s *S3Conf) error

func IAMDeleteAccessKey_missing_user_name added in v1.8.0

func IAMDeleteAccessKey_missing_user_name(s *S3Conf) error

IAMDeleteAccessKey_missing_user_name calls as root, which is a configured credential rather than a stored IAM user and so has no user name to infer — unlike a caller signing with an IAM user's own access key, covered by IAMDeleteAccessKey_infers_caller_user_name.

func IAMDeleteAccessKey_non_existing_access_key added in v1.8.0

func IAMDeleteAccessKey_non_existing_access_key(s *S3Conf) error

func IAMDeleteAccessKey_non_existing_user added in v1.8.0

func IAMDeleteAccessKey_non_existing_user(s *S3Conf) error

func IAMDeleteAccessKey_success added in v1.8.0

func IAMDeleteAccessKey_success(s *S3Conf) error

func IAMDeleteOpenIDConnectProvider_missing_arn added in v1.8.0

func IAMDeleteOpenIDConnectProvider_missing_arn(s *S3Conf) error

func IAMDeleteOpenIDConnectProvider_non_existing added in v1.8.0

func IAMDeleteOpenIDConnectProvider_non_existing(s *S3Conf) error

func IAMDeleteOpenIDConnectProvider_not_idempotent added in v1.8.0

func IAMDeleteOpenIDConnectProvider_not_idempotent(s *S3Conf) error

IAMDeleteOpenIDConnectProvider_not_idempotent confirms a second delete of the same ARN fails.

func IAMDeleteOpenIDConnectProvider_success added in v1.8.0

func IAMDeleteOpenIDConnectProvider_success(s *S3Conf) error

func IAMDeleteRolePolicy_blocks_role_deletion added in v1.8.0

func IAMDeleteRolePolicy_blocks_role_deletion(s *S3Conf) error

func IAMDeleteRolePolicy_missing_policy_name added in v1.8.0

func IAMDeleteRolePolicy_missing_policy_name(s *S3Conf) error

func IAMDeleteRolePolicy_missing_role_name added in v1.8.0

func IAMDeleteRolePolicy_missing_role_name(s *S3Conf) error

func IAMDeleteRolePolicy_non_existing_policy added in v1.8.0

func IAMDeleteRolePolicy_non_existing_policy(s *S3Conf) error

func IAMDeleteRolePolicy_non_existing_role added in v1.8.0

func IAMDeleteRolePolicy_non_existing_role(s *S3Conf) error

func IAMDeleteRolePolicy_success added in v1.8.0

func IAMDeleteRolePolicy_success(s *S3Conf) error

func IAMDeleteRole_has_policies added in v1.8.0

func IAMDeleteRole_has_policies(s *S3Conf) error

func IAMDeleteRole_invalid_role_name added in v1.8.0

func IAMDeleteRole_invalid_role_name(s *S3Conf) error

func IAMDeleteRole_long_role_name added in v1.8.0

func IAMDeleteRole_long_role_name(s *S3Conf) error

func IAMDeleteRole_missing_role_name added in v1.8.0

func IAMDeleteRole_missing_role_name(s *S3Conf) error

func IAMDeleteRole_non_existing_role added in v1.8.0

func IAMDeleteRole_non_existing_role(s *S3Conf) error

func IAMDeleteRole_success added in v1.8.0

func IAMDeleteRole_success(s *S3Conf) error

func IAMDeleteUserPolicy_blocks_user_deletion added in v1.8.0

func IAMDeleteUserPolicy_blocks_user_deletion(s *S3Conf) error

func IAMDeleteUserPolicy_missing_policy_name added in v1.8.0

func IAMDeleteUserPolicy_missing_policy_name(s *S3Conf) error

func IAMDeleteUserPolicy_missing_user_name added in v1.8.0

func IAMDeleteUserPolicy_missing_user_name(s *S3Conf) error

func IAMDeleteUserPolicy_non_existing_policy added in v1.8.0

func IAMDeleteUserPolicy_non_existing_policy(s *S3Conf) error

func IAMDeleteUserPolicy_non_existing_user added in v1.8.0

func IAMDeleteUserPolicy_non_existing_user(s *S3Conf) error

func IAMDeleteUserPolicy_success added in v1.8.0

func IAMDeleteUserPolicy_success(s *S3Conf) error

func IAMDeleteUser_has_access_keys added in v1.8.0

func IAMDeleteUser_has_access_keys(s *S3Conf) error

func IAMDeleteUser_invalid_user_name added in v1.8.0

func IAMDeleteUser_invalid_user_name(s *S3Conf) error

func IAMDeleteUser_long_user_name added in v1.8.0

func IAMDeleteUser_long_user_name(s *S3Conf) error

func IAMDeleteUser_non_existing_user added in v1.8.0

func IAMDeleteUser_non_existing_user(s *S3Conf) error

func IAMDeleteUser_success added in v1.8.0

func IAMDeleteUser_success(s *S3Conf) error

func IAMGetAccessKeyLastUsed_access_key_id_too_long added in v1.8.0

func IAMGetAccessKeyLastUsed_access_key_id_too_long(s *S3Conf) error

func IAMGetAccessKeyLastUsed_access_key_id_too_short added in v1.8.0

func IAMGetAccessKeyLastUsed_access_key_id_too_short(s *S3Conf) error

func IAMGetAccessKeyLastUsed_invalid_access_key_id_chars added in v1.8.0

func IAMGetAccessKeyLastUsed_invalid_access_key_id_chars(s *S3Conf) error

func IAMGetAccessKeyLastUsed_missing_access_key_id added in v1.8.0

func IAMGetAccessKeyLastUsed_missing_access_key_id(s *S3Conf) error

func IAMGetAccessKeyLastUsed_non_existing_access_key added in v1.8.0

func IAMGetAccessKeyLastUsed_non_existing_access_key(s *S3Conf) error

func IAMGetAccessKeyLastUsed_success added in v1.8.0

func IAMGetAccessKeyLastUsed_success(s *S3Conf) error

func IAMGetCallerIdentity_incorrect_service_scope added in v1.8.0

func IAMGetCallerIdentity_incorrect_service_scope(s *S3Conf) error

IAMGetCallerIdentity_incorrect_service_scope confirms the shared sigv4 auth pipeline reports the STS-specific service name ("sts", not "iam") when GetCallerIdentity is signed with a Credential scoped to the wrong service.

func IAMGetCallerIdentity_no_auth added in v1.8.0

func IAMGetCallerIdentity_no_auth(s *S3Conf) error

func IAMGetCallerIdentity_root_success added in v1.8.0

func IAMGetCallerIdentity_root_success(s *S3Conf) error

func IAMGetCallerIdentity_unknown_access_key added in v1.8.0

func IAMGetCallerIdentity_unknown_access_key(s *S3Conf) error

func IAMGetCallerIdentity_user_success added in v1.8.0

func IAMGetCallerIdentity_user_success(s *S3Conf) error

func IAMGetCallerIdentity_wrong_version_is_invalid_action added in v1.8.0

func IAMGetCallerIdentity_wrong_version_is_invalid_action(s *S3Conf) error

func IAMGetOpenIDConnectProvider_invalid_arn added in v1.8.0

func IAMGetOpenIDConnectProvider_invalid_arn(s *S3Conf) error

func IAMGetOpenIDConnectProvider_missing_arn added in v1.8.0

func IAMGetOpenIDConnectProvider_missing_arn(s *S3Conf) error

func IAMGetOpenIDConnectProvider_non_existing added in v1.8.0

func IAMGetOpenIDConnectProvider_non_existing(s *S3Conf) error

func IAMGetOpenIDConnectProvider_success added in v1.8.0

func IAMGetOpenIDConnectProvider_success(s *S3Conf) error

func IAMGetRolePolicy_missing_policy_name added in v1.8.0

func IAMGetRolePolicy_missing_policy_name(s *S3Conf) error

func IAMGetRolePolicy_missing_role_name added in v1.8.0

func IAMGetRolePolicy_missing_role_name(s *S3Conf) error

func IAMGetRolePolicy_non_existing_policy added in v1.8.0

func IAMGetRolePolicy_non_existing_policy(s *S3Conf) error

func IAMGetRolePolicy_non_existing_role added in v1.8.0

func IAMGetRolePolicy_non_existing_role(s *S3Conf) error

func IAMGetRolePolicy_success added in v1.8.0

func IAMGetRolePolicy_success(s *S3Conf) error

func IAMGetRole_invalid_role_name added in v1.8.0

func IAMGetRole_invalid_role_name(s *S3Conf) error

func IAMGetRole_long_role_name added in v1.8.0

func IAMGetRole_long_role_name(s *S3Conf) error

func IAMGetRole_missing_role_name added in v1.8.0

func IAMGetRole_missing_role_name(s *S3Conf) error

func IAMGetRole_non_existing_role added in v1.8.0

func IAMGetRole_non_existing_role(s *S3Conf) error

func IAMGetRole_role_last_used_never_used added in v1.8.0

func IAMGetRole_role_last_used_never_used(s *S3Conf) error

IAMGetRole_role_last_used_never_used confirms a role nobody has assumed reports the empty RoleLastUsed element — present, but carrying neither a date nor a region, exactly as real IAM answers for a never-used role.

func IAMGetRole_success added in v1.8.0

func IAMGetRole_success(s *S3Conf) error

func IAMGetUserPolicy_missing_policy_name added in v1.8.0

func IAMGetUserPolicy_missing_policy_name(s *S3Conf) error

func IAMGetUserPolicy_missing_user_name added in v1.8.0

func IAMGetUserPolicy_missing_user_name(s *S3Conf) error

func IAMGetUserPolicy_non_existing_policy added in v1.8.0

func IAMGetUserPolicy_non_existing_policy(s *S3Conf) error

func IAMGetUserPolicy_non_existing_user added in v1.8.0

func IAMGetUserPolicy_non_existing_user(s *S3Conf) error

func IAMGetUserPolicy_success added in v1.8.0

func IAMGetUserPolicy_success(s *S3Conf) error

func IAMGetUser_invalid_user_name added in v1.8.0

func IAMGetUser_invalid_user_name(s *S3Conf) error

func IAMGetUser_long_user_name added in v1.8.0

func IAMGetUser_long_user_name(s *S3Conf) error

func IAMGetUser_non_existing_user added in v1.8.0

func IAMGetUser_non_existing_user(s *S3Conf) error

func IAMGetUser_root_user added in v1.8.0

func IAMGetUser_root_user(s *S3Conf) error

func IAMGetUser_success added in v1.8.0

func IAMGetUser_success(s *S3Conf) error

func IAMListAccessKeys_empty_result added in v1.8.0

func IAMListAccessKeys_empty_result(s *S3Conf) error

func IAMListAccessKeys_infers_caller_user_name added in v1.8.0

func IAMListAccessKeys_infers_caller_user_name(s *S3Conf) error

IAMListAccessKeys_infers_caller_user_name also covers the scoping the other inferred-user-name tests assert through a NoSuchEntity: a listing with no UserName returns the caller's own keys and only those, so a second user's key must not appear in it.

func IAMListAccessKeys_invalid_max_items added in v1.8.0

func IAMListAccessKeys_invalid_max_items(s *S3Conf) error

func IAMListAccessKeys_invalid_max_items_format added in v1.8.0

func IAMListAccessKeys_invalid_max_items_format(s *S3Conf) error

func IAMListAccessKeys_invalid_user_name added in v1.8.0

func IAMListAccessKeys_invalid_user_name(s *S3Conf) error

func IAMListAccessKeys_long_user_name added in v1.8.0

func IAMListAccessKeys_long_user_name(s *S3Conf) error

func IAMListAccessKeys_missing_user_name added in v1.8.0

func IAMListAccessKeys_missing_user_name(s *S3Conf) error

IAMListAccessKeys_missing_user_name calls as root, which is a configured credential rather than a stored IAM user and so has no user name to infer — unlike a caller signing with an IAM user's own access key, covered by IAMListAccessKeys_infers_caller_user_name.

func IAMListAccessKeys_non_existing_user added in v1.8.0

func IAMListAccessKeys_non_existing_user(s *S3Conf) error

func IAMListAccessKeys_pagination added in v1.8.0

func IAMListAccessKeys_pagination(s *S3Conf) error

func IAMListAccessKeys_success added in v1.8.0

func IAMListAccessKeys_success(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_empty_result added in v1.8.0

func IAMListOpenIDConnectProviderTags_empty_result(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_invalid_arn added in v1.8.0

func IAMListOpenIDConnectProviderTags_invalid_arn(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_invalid_max_items added in v1.8.0

func IAMListOpenIDConnectProviderTags_invalid_max_items(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_invalid_max_items_format added in v1.8.0

func IAMListOpenIDConnectProviderTags_invalid_max_items_format(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_missing_arn added in v1.8.0

func IAMListOpenIDConnectProviderTags_missing_arn(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_non_existing_provider added in v1.8.0

func IAMListOpenIDConnectProviderTags_non_existing_provider(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_pagination added in v1.8.0

func IAMListOpenIDConnectProviderTags_pagination(s *S3Conf) error

func IAMListOpenIDConnectProviderTags_success added in v1.8.0

func IAMListOpenIDConnectProviderTags_success(s *S3Conf) error

func IAMListOpenIDConnectProviders_success added in v1.8.0

func IAMListOpenIDConnectProviders_success(s *S3Conf) error

func IAMListRolePolicies_empty_result added in v1.8.0

func IAMListRolePolicies_empty_result(s *S3Conf) error

func IAMListRolePolicies_invalid_max_items added in v1.8.0

func IAMListRolePolicies_invalid_max_items(s *S3Conf) error

func IAMListRolePolicies_missing_role_name added in v1.8.0

func IAMListRolePolicies_missing_role_name(s *S3Conf) error

func IAMListRolePolicies_non_existing_role added in v1.8.0

func IAMListRolePolicies_non_existing_role(s *S3Conf) error

func IAMListRolePolicies_pagination added in v1.8.0

func IAMListRolePolicies_pagination(s *S3Conf) error

func IAMListRolePolicies_success added in v1.8.0

func IAMListRolePolicies_success(s *S3Conf) error

func IAMListRoleTags_empty_result added in v1.8.0

func IAMListRoleTags_empty_result(s *S3Conf) error

func IAMListRoleTags_invalid_max_items added in v1.8.0

func IAMListRoleTags_invalid_max_items(s *S3Conf) error

func IAMListRoleTags_invalid_max_items_format added in v1.8.0

func IAMListRoleTags_invalid_max_items_format(s *S3Conf) error

func IAMListRoleTags_invalid_role_name added in v1.8.0

func IAMListRoleTags_invalid_role_name(s *S3Conf) error

func IAMListRoleTags_missing_role_name added in v1.8.0

func IAMListRoleTags_missing_role_name(s *S3Conf) error

func IAMListRoleTags_non_existing_role added in v1.8.0

func IAMListRoleTags_non_existing_role(s *S3Conf) error

func IAMListRoleTags_pagination added in v1.8.0

func IAMListRoleTags_pagination(s *S3Conf) error

func IAMListRoleTags_role_name_too_long added in v1.8.0

func IAMListRoleTags_role_name_too_long(s *S3Conf) error

func IAMListRoleTags_success added in v1.8.0

func IAMListRoleTags_success(s *S3Conf) error

func IAMListRoles_empty_result added in v1.8.0

func IAMListRoles_empty_result(s *S3Conf) error

func IAMListRoles_invalid_max_items added in v1.8.0

func IAMListRoles_invalid_max_items(s *S3Conf) error

func IAMListRoles_invalid_max_items_format added in v1.8.0

func IAMListRoles_invalid_max_items_format(s *S3Conf) error

func IAMListRoles_invalid_path_prefix added in v1.8.0

func IAMListRoles_invalid_path_prefix(s *S3Conf) error

func IAMListRoles_long_path_prefix added in v1.8.0

func IAMListRoles_long_path_prefix(s *S3Conf) error

func IAMListRoles_pagination added in v1.8.0

func IAMListRoles_pagination(s *S3Conf) error

func IAMListRoles_path_prefix added in v1.8.0

func IAMListRoles_path_prefix(s *S3Conf) error

func IAMListRoles_path_prefix_pagination added in v1.8.0

func IAMListRoles_path_prefix_pagination(s *S3Conf) error

func IAMListRoles_success added in v1.8.0

func IAMListRoles_success(s *S3Conf) error

func IAMListUserPolicies_empty_result added in v1.8.0

func IAMListUserPolicies_empty_result(s *S3Conf) error

func IAMListUserPolicies_invalid_max_items added in v1.8.0

func IAMListUserPolicies_invalid_max_items(s *S3Conf) error

func IAMListUserPolicies_missing_user_name added in v1.8.0

func IAMListUserPolicies_missing_user_name(s *S3Conf) error

func IAMListUserPolicies_non_existing_user added in v1.8.0

func IAMListUserPolicies_non_existing_user(s *S3Conf) error

func IAMListUserPolicies_pagination added in v1.8.0

func IAMListUserPolicies_pagination(s *S3Conf) error

func IAMListUserPolicies_success added in v1.8.0

func IAMListUserPolicies_success(s *S3Conf) error

func IAMListUserTags_empty_result added in v1.8.0

func IAMListUserTags_empty_result(s *S3Conf) error

func IAMListUserTags_invalid_max_items added in v1.8.0

func IAMListUserTags_invalid_max_items(s *S3Conf) error

func IAMListUserTags_invalid_max_items_format added in v1.8.0

func IAMListUserTags_invalid_max_items_format(s *S3Conf) error

func IAMListUserTags_invalid_user_name added in v1.8.0

func IAMListUserTags_invalid_user_name(s *S3Conf) error

func IAMListUserTags_missing_user_name added in v1.8.0

func IAMListUserTags_missing_user_name(s *S3Conf) error

func IAMListUserTags_non_existing_user added in v1.8.0

func IAMListUserTags_non_existing_user(s *S3Conf) error

func IAMListUserTags_pagination added in v1.8.0

func IAMListUserTags_pagination(s *S3Conf) error

func IAMListUserTags_success added in v1.8.0

func IAMListUserTags_success(s *S3Conf) error

func IAMListUserTags_user_name_too_long added in v1.8.0

func IAMListUserTags_user_name_too_long(s *S3Conf) error

func IAMListUsers_empty_result added in v1.8.0

func IAMListUsers_empty_result(s *S3Conf) error

func IAMListUsers_invalid_max_items added in v1.8.0

func IAMListUsers_invalid_max_items(s *S3Conf) error

func IAMListUsers_invalid_max_items_format added in v1.8.0

func IAMListUsers_invalid_max_items_format(s *S3Conf) error

func IAMListUsers_invalid_path_prefix added in v1.8.0

func IAMListUsers_invalid_path_prefix(s *S3Conf) error

func IAMListUsers_long_path_prefix added in v1.8.0

func IAMListUsers_long_path_prefix(s *S3Conf) error

func IAMListUsers_pagination added in v1.8.0

func IAMListUsers_pagination(s *S3Conf) error

func IAMListUsers_path_prefix added in v1.8.0

func IAMListUsers_path_prefix(s *S3Conf) error

func IAMListUsers_path_prefix_pagination added in v1.8.0

func IAMListUsers_path_prefix_pagination(s *S3Conf) error

func IAMListUsers_success added in v1.8.0

func IAMListUsers_success(s *S3Conf) error

func IAMPutRolePolicy_invalid_policy_name added in v1.8.0

func IAMPutRolePolicy_invalid_policy_name(s *S3Conf) error

func IAMPutRolePolicy_limit_exceeded added in v1.8.0

func IAMPutRolePolicy_limit_exceeded(s *S3Conf) error

func IAMPutRolePolicy_long_policy_name added in v1.8.0

func IAMPutRolePolicy_long_policy_name(s *S3Conf) error

func IAMPutRolePolicy_malformed_policy_document added in v1.8.0

func IAMPutRolePolicy_malformed_policy_document(s *S3Conf) error

func IAMPutRolePolicy_missing_policy_document added in v1.8.0

func IAMPutRolePolicy_missing_policy_document(s *S3Conf) error

func IAMPutRolePolicy_missing_policy_name added in v1.8.0

func IAMPutRolePolicy_missing_policy_name(s *S3Conf) error

func IAMPutRolePolicy_missing_role_name added in v1.8.0

func IAMPutRolePolicy_missing_role_name(s *S3Conf) error

func IAMPutRolePolicy_non_ascii_policy_document added in v1.8.0

func IAMPutRolePolicy_non_ascii_policy_document(s *S3Conf) error

func IAMPutRolePolicy_non_existing_role added in v1.8.0

func IAMPutRolePolicy_non_existing_role(s *S3Conf) error

func IAMPutRolePolicy_overwrite_updates_existing added in v1.8.0

func IAMPutRolePolicy_overwrite_updates_existing(s *S3Conf) error

func IAMPutRolePolicy_principal_not_allowed added in v1.8.0

func IAMPutRolePolicy_principal_not_allowed(s *S3Conf) error

func IAMPutRolePolicy_success added in v1.8.0

func IAMPutRolePolicy_success(s *S3Conf) error

func IAMPutUserPolicy_invalid_policy_name added in v1.8.0

func IAMPutUserPolicy_invalid_policy_name(s *S3Conf) error

func IAMPutUserPolicy_limit_exceeded added in v1.8.0

func IAMPutUserPolicy_limit_exceeded(s *S3Conf) error

func IAMPutUserPolicy_long_policy_name added in v1.8.0

func IAMPutUserPolicy_long_policy_name(s *S3Conf) error

func IAMPutUserPolicy_malformed_policy_document added in v1.8.0

func IAMPutUserPolicy_malformed_policy_document(s *S3Conf) error

func IAMPutUserPolicy_missing_policy_document added in v1.8.0

func IAMPutUserPolicy_missing_policy_document(s *S3Conf) error

func IAMPutUserPolicy_missing_policy_name added in v1.8.0

func IAMPutUserPolicy_missing_policy_name(s *S3Conf) error

func IAMPutUserPolicy_missing_user_name added in v1.8.0

func IAMPutUserPolicy_missing_user_name(s *S3Conf) error

func IAMPutUserPolicy_non_ascii_policy_document added in v1.8.0

func IAMPutUserPolicy_non_ascii_policy_document(s *S3Conf) error

func IAMPutUserPolicy_non_existing_user added in v1.8.0

func IAMPutUserPolicy_non_existing_user(s *S3Conf) error

func IAMPutUserPolicy_overwrite_updates_existing added in v1.8.0

func IAMPutUserPolicy_overwrite_updates_existing(s *S3Conf) error

func IAMPutUserPolicy_principal_not_allowed added in v1.8.0

func IAMPutUserPolicy_principal_not_allowed(s *S3Conf) error

func IAMPutUserPolicy_success added in v1.8.0

func IAMPutUserPolicy_success(s *S3Conf) error

func IAMQueryAuth_ECDSA_not_supported added in v1.8.0

func IAMQueryAuth_ECDSA_not_supported(s *S3Conf) error

func IAMQueryAuth_credentials_incorrect_region added in v1.8.0

func IAMQueryAuth_credentials_incorrect_region(s *S3Conf) error

func IAMQueryAuth_credentials_incorrect_service added in v1.8.0

func IAMQueryAuth_credentials_incorrect_service(s *S3Conf) error

func IAMQueryAuth_credentials_invalid_date added in v1.8.0

func IAMQueryAuth_credentials_invalid_date(s *S3Conf) error

func IAMQueryAuth_credentials_invalid_terminal added in v1.8.0

func IAMQueryAuth_credentials_invalid_terminal(s *S3Conf) error

func IAMQueryAuth_date_mismatch added in v1.8.0

func IAMQueryAuth_date_mismatch(s *S3Conf) error

func IAMQueryAuth_incorrect_secret_key added in v1.8.0

func IAMQueryAuth_incorrect_secret_key(s *S3Conf) error

func IAMQueryAuth_invalid_date added in v1.8.0

func IAMQueryAuth_invalid_date(s *S3Conf) error

func IAMQueryAuth_invalid_sha256_payload_hash_ignored added in v1.8.0

func IAMQueryAuth_invalid_sha256_payload_hash_ignored(s *S3Conf) error

func IAMQueryAuth_malformed_credential added in v1.8.0

func IAMQueryAuth_malformed_credential(s *S3Conf) error

func IAMQueryAuth_missing_query_parameters added in v1.8.0

func IAMQueryAuth_missing_query_parameters(s *S3Conf) error

func IAMQueryAuth_non_existing_access_key added in v1.8.0

func IAMQueryAuth_non_existing_access_key(s *S3Conf) error

func IAMQueryAuth_security_token_not_supported added in v1.8.0

func IAMQueryAuth_security_token_not_supported(s *S3Conf) error

func IAMQueryAuth_success added in v1.8.0

func IAMQueryAuth_success(s *S3Conf) error

func IAMQueryAuth_unsigned_query_parameter added in v1.8.0

func IAMQueryAuth_unsigned_query_parameter(s *S3Conf) error

func IAMQueryAuth_unsupported_algorithm added in v1.8.0

func IAMQueryAuth_unsupported_algorithm(s *S3Conf) error

func IAMQueryAuth_with_expect_header added in v1.8.0

func IAMQueryAuth_with_expect_header(s *S3Conf) error

func IAMRemoveClientIDFromOpenIDConnectProvider_client_id_too_long added in v1.8.0

func IAMRemoveClientIDFromOpenIDConnectProvider_client_id_too_long(s *S3Conf) error

func IAMRemoveClientIDFromOpenIDConnectProvider_idempotent_absent added in v1.8.0

func IAMRemoveClientIDFromOpenIDConnectProvider_idempotent_absent(s *S3Conf) error

IAMRemoveClientIDFromOpenIDConnectProvider_idempotent_absent confirms removing a client ID that was never added succeeds silently rather than erroring.

func IAMRemoveClientIDFromOpenIDConnectProvider_missing_arn added in v1.8.0

func IAMRemoveClientIDFromOpenIDConnectProvider_missing_arn(s *S3Conf) error

func IAMRemoveClientIDFromOpenIDConnectProvider_missing_client_id added in v1.8.0

func IAMRemoveClientIDFromOpenIDConnectProvider_missing_client_id(s *S3Conf) error

func IAMRemoveClientIDFromOpenIDConnectProvider_non_existing_provider added in v1.8.0

func IAMRemoveClientIDFromOpenIDConnectProvider_non_existing_provider(s *S3Conf) error

func IAMRemoveClientIDFromOpenIDConnectProvider_success added in v1.8.0

func IAMRemoveClientIDFromOpenIDConnectProvider_success(s *S3Conf) error

func IAMTagOpenIDConnectProvider_duplicate_tag_keys added in v1.8.0

func IAMTagOpenIDConnectProvider_duplicate_tag_keys(s *S3Conf) error

IAMTagOpenIDConnectProvider_duplicate_tag_keys covers the provider actions' exact tag-key comparison: an identical key twice in one request is rejected, where a differently-cased repeat is two separate tags.

func IAMTagOpenIDConnectProvider_invalid_arn added in v1.8.0

func IAMTagOpenIDConnectProvider_invalid_arn(s *S3Conf) error

func IAMTagOpenIDConnectProvider_invalid_tags added in v1.8.0

func IAMTagOpenIDConnectProvider_invalid_tags(s *S3Conf) error

func IAMTagOpenIDConnectProvider_invalid_tags_precede_lookup added in v1.8.0

func IAMTagOpenIDConnectProvider_invalid_tags_precede_lookup(s *S3Conf) error

IAMTagOpenIDConnectProvider_invalid_tags_precede_lookup covers a malformed tag naming a provider that does not exist: the request is validated in full before the provider is looked up, so the tag error wins over NoSuchEntity.

func IAMTagOpenIDConnectProvider_isolated_per_provider added in v1.8.0

func IAMTagOpenIDConnectProvider_isolated_per_provider(s *S3Conf) error

IAMTagOpenIDConnectProvider_isolated_per_provider covers two providers carrying the same tag keys: each set is its own, in both directions.

func IAMTagOpenIDConnectProvider_missing_arn added in v1.8.0

func IAMTagOpenIDConnectProvider_missing_arn(s *S3Conf) error

func IAMTagOpenIDConnectProvider_missing_tag_key added in v1.8.0

func IAMTagOpenIDConnectProvider_missing_tag_key(s *S3Conf) error

func IAMTagOpenIDConnectProvider_missing_tag_value added in v1.8.0

func IAMTagOpenIDConnectProvider_missing_tag_value(s *S3Conf) error

func IAMTagOpenIDConnectProvider_missing_tags added in v1.8.0

func IAMTagOpenIDConnectProvider_missing_tags(s *S3Conf) error

func IAMTagOpenIDConnectProvider_non_existing_provider added in v1.8.0

func IAMTagOpenIDConnectProvider_non_existing_provider(s *S3Conf) error

func IAMTagOpenIDConnectProvider_overwrites_existing_tag added in v1.8.0

func IAMTagOpenIDConnectProvider_overwrites_existing_tag(s *S3Conf) error

IAMTagOpenIDConnectProvider_overwrites_existing_tag covers re-tagging a key that is already present: the value is replaced rather than added alongside, while a differently-cased key is a separate tag that leaves the original in place.

func IAMTagOpenIDConnectProvider_success added in v1.8.0

func IAMTagOpenIDConnectProvider_success(s *S3Conf) error

func IAMTagOpenIDConnectProvider_tag_limit_exceeded added in v1.8.0

func IAMTagOpenIDConnectProvider_tag_limit_exceeded(s *S3Conf) error

func IAMTagOpenIDConnectProvider_too_many_tags added in v1.8.0

func IAMTagOpenIDConnectProvider_too_many_tags(s *S3Conf) error

func IAMTagRole_duplicate_tag_keys added in v1.8.0

func IAMTagRole_duplicate_tag_keys(s *S3Conf) error

IAMTagRole_duplicate_tag_keys covers both an exact repeat and a differently-cased repeat: IAM compares tag keys case-insensitively, so both are the same key twice in one request.

func IAMTagRole_empty_tag_key added in v1.8.0

func IAMTagRole_empty_tag_key(s *S3Conf) error

func IAMTagRole_invalid_role_name added in v1.8.0

func IAMTagRole_invalid_role_name(s *S3Conf) error

func IAMTagRole_invalid_tag_key added in v1.8.0

func IAMTagRole_invalid_tag_key(s *S3Conf) error

func IAMTagRole_invalid_tag_value added in v1.8.0

func IAMTagRole_invalid_tag_value(s *S3Conf) error

func IAMTagRole_isolated_from_same_named_user added in v1.8.0

func IAMTagRole_isolated_from_same_named_user(s *S3Conf) error

IAMTagRole_isolated_from_same_named_user covers a role and a user sharing a name: they are separate entities, so tagging one leaves the other's tags untouched in both directions.

func IAMTagRole_missing_role_name added in v1.8.0

func IAMTagRole_missing_role_name(s *S3Conf) error

func IAMTagRole_missing_tag_key added in v1.8.0

func IAMTagRole_missing_tag_key(s *S3Conf) error

func IAMTagRole_missing_tag_value added in v1.8.0

func IAMTagRole_missing_tag_value(s *S3Conf) error

func IAMTagRole_missing_tags added in v1.8.0

func IAMTagRole_missing_tags(s *S3Conf) error

func IAMTagRole_non_existing_role added in v1.8.0

func IAMTagRole_non_existing_role(s *S3Conf) error

func IAMTagRole_overwrites_existing_tag added in v1.8.0

func IAMTagRole_overwrites_existing_tag(s *S3Conf) error

IAMTagRole_overwrites_existing_tag covers re-tagging a key that is already present: the value is replaced rather than added alongside, and a differently-cased key is the same tag — the newly supplied casing wins.

func IAMTagRole_role_name_too_long added in v1.8.0

func IAMTagRole_role_name_too_long(s *S3Conf) error

func IAMTagRole_success added in v1.8.0

func IAMTagRole_success(s *S3Conf) error

func IAMTagRole_tag_key_too_long added in v1.8.0

func IAMTagRole_tag_key_too_long(s *S3Conf) error

func IAMTagRole_tag_limit_exceeded added in v1.8.0

func IAMTagRole_tag_limit_exceeded(s *S3Conf) error

func IAMTagRole_tag_value_too_long added in v1.8.0

func IAMTagRole_tag_value_too_long(s *S3Conf) error

func IAMTagRole_too_many_tags added in v1.8.0

func IAMTagRole_too_many_tags(s *S3Conf) error

func IAMTagUser_duplicate_tag_keys added in v1.8.0

func IAMTagUser_duplicate_tag_keys(s *S3Conf) error

IAMTagUser_duplicate_tag_keys covers both an exact repeat and a differently-cased repeat: IAM compares tag keys case-insensitively, so both are the same key twice in one request.

func IAMTagUser_empty_tag_key added in v1.8.0

func IAMTagUser_empty_tag_key(s *S3Conf) error

func IAMTagUser_invalid_tag_key added in v1.8.0

func IAMTagUser_invalid_tag_key(s *S3Conf) error

func IAMTagUser_invalid_tag_value added in v1.8.0

func IAMTagUser_invalid_tag_value(s *S3Conf) error

func IAMTagUser_invalid_user_name added in v1.8.0

func IAMTagUser_invalid_user_name(s *S3Conf) error

func IAMTagUser_missing_tag_key added in v1.8.0

func IAMTagUser_missing_tag_key(s *S3Conf) error

func IAMTagUser_missing_tag_value added in v1.8.0

func IAMTagUser_missing_tag_value(s *S3Conf) error

func IAMTagUser_missing_tags added in v1.8.0

func IAMTagUser_missing_tags(s *S3Conf) error

func IAMTagUser_missing_user_name added in v1.8.0

func IAMTagUser_missing_user_name(s *S3Conf) error

func IAMTagUser_non_existing_user added in v1.8.0

func IAMTagUser_non_existing_user(s *S3Conf) error

func IAMTagUser_overwrites_existing_tag added in v1.8.0

func IAMTagUser_overwrites_existing_tag(s *S3Conf) error

IAMTagUser_overwrites_existing_tag covers re-tagging a key that is already present: the value is replaced rather than added alongside, and a differently-cased key is the same tag — the newly supplied casing wins.

func IAMTagUser_success added in v1.8.0

func IAMTagUser_success(s *S3Conf) error

func IAMTagUser_tag_key_too_long added in v1.8.0

func IAMTagUser_tag_key_too_long(s *S3Conf) error

func IAMTagUser_tag_limit_exceeded added in v1.8.0

func IAMTagUser_tag_limit_exceeded(s *S3Conf) error

func IAMTagUser_tag_value_too_long added in v1.8.0

func IAMTagUser_tag_value_too_long(s *S3Conf) error

func IAMTagUser_too_many_tags added in v1.8.0

func IAMTagUser_too_many_tags(s *S3Conf) error

func IAMTagUser_user_name_too_long added in v1.8.0

func IAMTagUser_user_name_too_long(s *S3Conf) error

func IAMUntagOpenIDConnectProvider_case_sensitive_key added in v1.8.0

func IAMUntagOpenIDConnectProvider_case_sensitive_key(s *S3Conf) error

IAMUntagOpenIDConnectProvider_case_sensitive_key covers removal by a differently-cased key: provider tag keys are compared exactly, so the stored tag survives and only its exact key removes it.

func IAMUntagOpenIDConnectProvider_invalid_arn added in v1.8.0

func IAMUntagOpenIDConnectProvider_invalid_arn(s *S3Conf) error

func IAMUntagOpenIDConnectProvider_invalid_tag_key added in v1.8.0

func IAMUntagOpenIDConnectProvider_invalid_tag_key(s *S3Conf) error

func IAMUntagOpenIDConnectProvider_missing_arn added in v1.8.0

func IAMUntagOpenIDConnectProvider_missing_arn(s *S3Conf) error

func IAMUntagOpenIDConnectProvider_missing_tag_keys added in v1.8.0

func IAMUntagOpenIDConnectProvider_missing_tag_keys(s *S3Conf) error

func IAMUntagOpenIDConnectProvider_non_existing_provider added in v1.8.0

func IAMUntagOpenIDConnectProvider_non_existing_provider(s *S3Conf) error

func IAMUntagOpenIDConnectProvider_removal_is_idempotent added in v1.8.0

func IAMUntagOpenIDConnectProvider_removal_is_idempotent(s *S3Conf) error

IAMUntagOpenIDConnectProvider_removal_is_idempotent covers the two ways a request can name a key that removes nothing: a key the provider never carried, and the same key twice in one request. Neither is an error — unlike TagOpenIDConnectProvider, which rejects a repeated key outright.

func IAMUntagOpenIDConnectProvider_removes_only_named_keys added in v1.8.0

func IAMUntagOpenIDConnectProvider_removes_only_named_keys(s *S3Conf) error

IAMUntagOpenIDConnectProvider_removes_only_named_keys covers a partial removal leaving the rest of the set intact, including a key whose name only prefixes one of the supplied keys — matching is exact, not by prefix.

func IAMUntagOpenIDConnectProvider_success added in v1.8.0

func IAMUntagOpenIDConnectProvider_success(s *S3Conf) error

func IAMUntagOpenIDConnectProvider_too_many_tag_keys added in v1.8.0

func IAMUntagOpenIDConnectProvider_too_many_tag_keys(s *S3Conf) error

func IAMUntagRole_case_insensitive_key added in v1.8.0

func IAMUntagRole_case_insensitive_key(s *S3Conf) error

IAMUntagRole_case_insensitive_key covers removal by a differently-cased key: IAM compares tag keys case-insensitively, so the tag is removed even though the supplied key does not match the stored casing.

func IAMUntagRole_invalid_role_name added in v1.8.0

func IAMUntagRole_invalid_role_name(s *S3Conf) error

func IAMUntagRole_invalid_tag_key added in v1.8.0

func IAMUntagRole_invalid_tag_key(s *S3Conf) error

func IAMUntagRole_missing_role_name added in v1.8.0

func IAMUntagRole_missing_role_name(s *S3Conf) error

func IAMUntagRole_missing_tag_keys added in v1.8.0

func IAMUntagRole_missing_tag_keys(s *S3Conf) error

func IAMUntagRole_non_existing_role added in v1.8.0

func IAMUntagRole_non_existing_role(s *S3Conf) error

func IAMUntagRole_removal_is_idempotent added in v1.8.0

func IAMUntagRole_removal_is_idempotent(s *S3Conf) error

IAMUntagRole_removal_is_idempotent covers the two ways a request can name a key that removes nothing: a key the role never carried, and the same key twice in one request. Neither is an error — unlike TagRole, which rejects a repeated key outright.

func IAMUntagRole_removes_only_named_keys added in v1.8.0

func IAMUntagRole_removes_only_named_keys(s *S3Conf) error

IAMUntagRole_removes_only_named_keys covers a partial removal leaving the rest of the set intact, including a key whose name only prefixes one of the supplied keys — matching is exact, not by prefix.

func IAMUntagRole_role_name_too_long added in v1.8.0

func IAMUntagRole_role_name_too_long(s *S3Conf) error

func IAMUntagRole_success added in v1.8.0

func IAMUntagRole_success(s *S3Conf) error

func IAMUntagRole_too_many_tag_keys added in v1.8.0

func IAMUntagRole_too_many_tag_keys(s *S3Conf) error

func IAMUntagUser_case_insensitive_key added in v1.8.0

func IAMUntagUser_case_insensitive_key(s *S3Conf) error

IAMUntagUser_case_insensitive_key covers removal by a differently-cased key: IAM compares tag keys case-insensitively, so the tag is removed even though the supplied key does not match the stored casing.

func IAMUntagUser_invalid_tag_key added in v1.8.0

func IAMUntagUser_invalid_tag_key(s *S3Conf) error

IAMUntagUser_invalid_tag_key covers every malformed TagKeys member the same way IAM does: whichever constraint fails — empty, over-long, or outside the allowed charset — the response is one generic error naming the whole constraint set, not the individual constraint that tripped.

func IAMUntagUser_invalid_user_name added in v1.8.0

func IAMUntagUser_invalid_user_name(s *S3Conf) error

func IAMUntagUser_missing_tag_keys added in v1.8.0

func IAMUntagUser_missing_tag_keys(s *S3Conf) error

func IAMUntagUser_missing_user_name added in v1.8.0

func IAMUntagUser_missing_user_name(s *S3Conf) error

func IAMUntagUser_non_existing_user added in v1.8.0

func IAMUntagUser_non_existing_user(s *S3Conf) error

func IAMUntagUser_removal_is_idempotent added in v1.8.0

func IAMUntagUser_removal_is_idempotent(s *S3Conf) error

IAMUntagUser_removal_is_idempotent covers the two ways a request can name a key that removes nothing: a key the user never carried, and the same key twice in one request. Neither is an error — unlike TagUser, which rejects a repeated key outright.

func IAMUntagUser_success added in v1.8.0

func IAMUntagUser_success(s *S3Conf) error

func IAMUntagUser_too_many_tag_keys added in v1.8.0

func IAMUntagUser_too_many_tag_keys(s *S3Conf) error

func IAMUntagUser_user_name_too_long added in v1.8.0

func IAMUntagUser_user_name_too_long(s *S3Conf) error

func IAMUpdateAccessKey_access_key_id_too_long added in v1.8.0

func IAMUpdateAccessKey_access_key_id_too_long(s *S3Conf) error

func IAMUpdateAccessKey_access_key_id_too_short added in v1.8.0

func IAMUpdateAccessKey_access_key_id_too_short(s *S3Conf) error

func IAMUpdateAccessKey_inferred_user_name_scoped_to_caller added in v1.8.0

func IAMUpdateAccessKey_inferred_user_name_scoped_to_caller(s *S3Conf) error

IAMUpdateAccessKey_inferred_user_name_scoped_to_caller confirms the inferred user name is the caller's own and nothing else: another user's access key is simply not found, rather than being updated.

func IAMUpdateAccessKey_infers_caller_user_name added in v1.8.0

func IAMUpdateAccessKey_infers_caller_user_name(s *S3Conf) error

func IAMUpdateAccessKey_invalid_access_key_id_chars added in v1.8.0

func IAMUpdateAccessKey_invalid_access_key_id_chars(s *S3Conf) error

func IAMUpdateAccessKey_invalid_status added in v1.8.0

func IAMUpdateAccessKey_invalid_status(s *S3Conf) error

func IAMUpdateAccessKey_invalid_user_name added in v1.8.0

func IAMUpdateAccessKey_invalid_user_name(s *S3Conf) error

func IAMUpdateAccessKey_long_user_name added in v1.8.0

func IAMUpdateAccessKey_long_user_name(s *S3Conf) error

func IAMUpdateAccessKey_missing_access_key_id added in v1.8.0

func IAMUpdateAccessKey_missing_access_key_id(s *S3Conf) error

func IAMUpdateAccessKey_missing_status added in v1.8.0

func IAMUpdateAccessKey_missing_status(s *S3Conf) error

func IAMUpdateAccessKey_missing_user_name added in v1.8.0

func IAMUpdateAccessKey_missing_user_name(s *S3Conf) error

IAMUpdateAccessKey_missing_user_name calls as root, which is a configured credential rather than a stored IAM user and so has no user name to infer — unlike a caller signing with an IAM user's own access key, covered by IAMUpdateAccessKey_infers_caller_user_name.

func IAMUpdateAccessKey_non_existing_access_key added in v1.8.0

func IAMUpdateAccessKey_non_existing_access_key(s *S3Conf) error

func IAMUpdateAccessKey_non_existing_user added in v1.8.0

func IAMUpdateAccessKey_non_existing_user(s *S3Conf) error

func IAMUpdateAccessKey_success added in v1.8.0

func IAMUpdateAccessKey_success(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_invalid_role_name added in v1.8.0

func IAMUpdateAssumeRolePolicy_invalid_role_name(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_long_role_name added in v1.8.0

func IAMUpdateAssumeRolePolicy_long_role_name(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_missing_policy_document added in v1.8.0

func IAMUpdateAssumeRolePolicy_missing_policy_document(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_missing_role_name added in v1.8.0

func IAMUpdateAssumeRolePolicy_missing_role_name(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_non_ascii_policy_document added in v1.8.0

func IAMUpdateAssumeRolePolicy_non_ascii_policy_document(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_non_existing_role added in v1.8.0

func IAMUpdateAssumeRolePolicy_non_existing_role(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_success added in v1.8.0

func IAMUpdateAssumeRolePolicy_success(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_trust_policy_document_grammar added in v1.8.0

func IAMUpdateAssumeRolePolicy_trust_policy_document_grammar(s *S3Conf) error

func IAMUpdateAssumeRolePolicy_trust_policy_size_limit_exceeded added in v1.8.0

func IAMUpdateAssumeRolePolicy_trust_policy_size_limit_exceeded(s *S3Conf) error

func IAMUpdateOpenIDConnectProviderThumbprint_boundary_max_thumbprints added in v1.8.0

func IAMUpdateOpenIDConnectProviderThumbprint_boundary_max_thumbprints(s *S3Conf) error

IAMUpdateOpenIDConnectProviderThumbprint_boundary_max_thumbprints confirms exactly MaxThumbprintsPerOIDCProvider entries succeeds — the limit message says "fewer than 5", but 5 itself is accepted.

func IAMUpdateOpenIDConnectProviderThumbprint_missing_arn added in v1.8.0

func IAMUpdateOpenIDConnectProviderThumbprint_missing_arn(s *S3Conf) error

func IAMUpdateOpenIDConnectProviderThumbprint_missing_thumbprint_list added in v1.8.0

func IAMUpdateOpenIDConnectProviderThumbprint_missing_thumbprint_list(s *S3Conf) error

func IAMUpdateOpenIDConnectProviderThumbprint_non_existing_provider added in v1.8.0

func IAMUpdateOpenIDConnectProviderThumbprint_non_existing_provider(s *S3Conf) error

func IAMUpdateOpenIDConnectProviderThumbprint_success added in v1.8.0

func IAMUpdateOpenIDConnectProviderThumbprint_success(s *S3Conf) error

func IAMUpdateOpenIDConnectProviderThumbprint_too_many_thumbprints added in v1.8.0

func IAMUpdateOpenIDConnectProviderThumbprint_too_many_thumbprints(s *S3Conf) error

func IAMUpdateOpenIDConnectProviderThumbprint_wrong_length_thumbprint added in v1.8.0

func IAMUpdateOpenIDConnectProviderThumbprint_wrong_length_thumbprint(s *S3Conf) error

func IAMUpdateUser_invalid_new_path added in v1.8.0

func IAMUpdateUser_invalid_new_path(s *S3Conf) error

func IAMUpdateUser_invalid_new_user_name added in v1.8.0

func IAMUpdateUser_invalid_new_user_name(s *S3Conf) error

func IAMUpdateUser_invalid_user_name added in v1.8.0

func IAMUpdateUser_invalid_user_name(s *S3Conf) error

func IAMUpdateUser_long_new_path added in v1.8.0

func IAMUpdateUser_long_new_path(s *S3Conf) error

func IAMUpdateUser_long_new_user_name added in v1.8.0

func IAMUpdateUser_long_new_user_name(s *S3Conf) error

func IAMUpdateUser_long_user_name added in v1.8.0

func IAMUpdateUser_long_user_name(s *S3Conf) error

func IAMUpdateUser_new_user_name_already_exists added in v1.8.0

func IAMUpdateUser_new_user_name_already_exists(s *S3Conf) error

func IAMUpdateUser_non_existing_user added in v1.8.0

func IAMUpdateUser_non_existing_user(s *S3Conf) error

func IAMUpdateUser_success added in v1.8.0

func IAMUpdateUser_success(s *S3Conf) error

func IAM_ChangeBucketOwner_back_to_root added in v1.0.6

func IAM_ChangeBucketOwner_back_to_root(s *S3Conf) error

func IAM_CreateBucket_empty_owner_header added in v1.1.0

func IAM_CreateBucket_empty_owner_header(s *S3Conf) error

func IAM_CreateBucket_non_existing_user added in v1.1.0

func IAM_CreateBucket_non_existing_user(s *S3Conf) error

func IAM_CreateBucket_success added in v1.1.0

func IAM_CreateBucket_success(s *S3Conf) error

func IAM_ListBuckets added in v1.0.9

func IAM_ListBuckets(s *S3Conf) error

func IAM_admin_ChangeBucketOwner

func IAM_admin_ChangeBucketOwner(s *S3Conf) error

func IAM_user_access_denied

func IAM_user_access_denied(s *S3Conf) error

func IAM_userplus_CreateBucket

func IAM_userplus_CreateBucket(s *S3Conf) error

func IAM_userplus_access_denied

func IAM_userplus_access_denied(s *S3Conf) error

func ListBucketAnalyticsConfiguration_not_implemented added in v1.0.17

func ListBucketAnalyticsConfiguration_not_implemented(s *S3Conf) error

func ListBucketIntelligentTieringConfiguration_not_implemented added in v1.0.17

func ListBucketIntelligentTieringConfiguration_not_implemented(s *S3Conf) error

func ListBucketInventoryConfiguration_not_implemented added in v1.0.17

func ListBucketInventoryConfiguration_not_implemented(s *S3Conf) error

func ListBucketMetricsConfigurations_not_implemented added in v1.0.17

func ListBucketMetricsConfigurations_not_implemented(s *S3Conf) error

func ListBuckets_as_admin

func ListBuckets_as_admin(s *S3Conf) error

func ListBuckets_as_user

func ListBuckets_as_user(s *S3Conf) error

func ListBuckets_empty_success added in v1.0.9

func ListBuckets_empty_success(s *S3Conf) error

func ListBuckets_invalid_max_buckets added in v1.0.9

func ListBuckets_invalid_max_buckets(s *S3Conf) error

func ListBuckets_success

func ListBuckets_success(s *S3Conf) error

func ListBuckets_truncated added in v1.0.9

func ListBuckets_truncated(s *S3Conf) error

func ListBuckets_with_prefix added in v1.0.9

func ListBuckets_with_prefix(s *S3Conf) error

func ListMultipartUploads_both_delimiter_and_prefix added in v1.2.0

func ListMultipartUploads_both_delimiter_and_prefix(s *S3Conf) error

func ListMultipartUploads_delimiter_no_matches added in v1.2.0

func ListMultipartUploads_delimiter_no_matches(s *S3Conf) error

func ListMultipartUploads_delimiter_truncated added in v1.2.0

func ListMultipartUploads_delimiter_truncated(s *S3Conf) error

func ListMultipartUploads_empty_result

func ListMultipartUploads_empty_result(s *S3Conf) error

func ListMultipartUploads_exceeding_max_uploads added in v1.0.11

func ListMultipartUploads_exceeding_max_uploads(s *S3Conf) error

func ListMultipartUploads_ignore_upload_id_marker

func ListMultipartUploads_ignore_upload_id_marker(s *S3Conf) error

func ListMultipartUploads_invalid_max_uploads

func ListMultipartUploads_invalid_max_uploads(s *S3Conf) error

func ListMultipartUploads_invalid_uploadId_marker added in v1.2.0

func ListMultipartUploads_invalid_uploadId_marker(s *S3Conf) error

func ListMultipartUploads_keyMarker_not_from_list added in v1.2.0

func ListMultipartUploads_keyMarker_not_from_list(s *S3Conf) error

func ListMultipartUploads_max_uploads

func ListMultipartUploads_max_uploads(s *S3Conf) error

func ListMultipartUploads_non_existing_bucket

func ListMultipartUploads_non_existing_bucket(s *S3Conf) error

func ListMultipartUploads_prefix added in v1.2.0

func ListMultipartUploads_prefix(s *S3Conf) error

func ListMultipartUploads_with_checksums added in v1.0.11

func ListMultipartUploads_with_checksums(s *S3Conf) error

func ListObjectVersions_VD_success added in v1.0.8

func ListObjectVersions_VD_success(s *S3Conf) error

func ListObjectVersions_checksum added in v1.0.11

func ListObjectVersions_checksum(s *S3Conf) error

func ListObjectVersions_containing_null_versionId_obj added in v1.0.8

func ListObjectVersions_containing_null_versionId_obj(s *S3Conf) error

func ListObjectVersions_list_multiple_object_versions added in v1.0.8

func ListObjectVersions_list_multiple_object_versions(s *S3Conf) error

func ListObjectVersions_list_single_object_versions added in v1.0.8

func ListObjectVersions_list_single_object_versions(s *S3Conf) error

func ListObjectVersions_multiple_object_versions_truncated added in v1.0.8

func ListObjectVersions_multiple_object_versions_truncated(s *S3Conf) error

func ListObjectVersions_negative_max_keys added in v1.2.0

func ListObjectVersions_negative_max_keys(s *S3Conf) error

func ListObjectVersions_non_existing_bucket added in v1.0.8

func ListObjectVersions_non_existing_bucket(s *S3Conf) error

func ListObjectVersions_single_null_versionId_object added in v1.0.8

func ListObjectVersions_single_null_versionId_object(s *S3Conf) error

func ListObjectVersions_with_delete_markers added in v1.0.8

func ListObjectVersions_with_delete_markers(s *S3Conf) error

func ListObjectsV2_all_objs_max_keys added in v1.0.6

func ListObjectsV2_all_objs_max_keys(s *S3Conf) error

func ListObjectsV2_both_delimiter_and_prefix added in v1.0.6

func ListObjectsV2_both_delimiter_and_prefix(s *S3Conf) error

func ListObjectsV2_both_start_after_and_continuation_token

func ListObjectsV2_both_start_after_and_continuation_token(s *S3Conf) error

func ListObjectsV2_exceeding_max_keys added in v1.0.11

func ListObjectsV2_exceeding_max_keys(s *S3Conf) error

func ListObjectsV2_full_pagination added in v1.8.0

func ListObjectsV2_full_pagination(s *S3Conf) error

ListObjectsV2_full_pagination walks a listing that spans many pages and checks that every object is returned exactly once, in order, with the continuation token driving the walk. This exercises backends whose continuation token is opaque (e.g. azure) rather than the last key.

func ListObjectsV2_invalid_parent_prefix added in v1.0.9

func ListObjectsV2_invalid_parent_prefix(s *S3Conf) error

func ListObjectsV2_list_all_objs added in v1.0.8

func ListObjectsV2_list_all_objs(s *S3Conf) error

func ListObjectsV2_mp_masking_delimiter added in v1.4.1

func ListObjectsV2_mp_masking_delimiter(s *S3Conf) error

ListObjectsV2 with a delimiter should not include the .sgwtmp/ multipart prefix in common prefixes, even when pending multipart uploads exist.

func ListObjectsV2_mp_masking_start_after added in v1.4.1

func ListObjectsV2_mp_masking_start_after(s *S3Conf) error

ListObjectsV2 with startAfter should not surface pending multipart uploads even when real objects are interleaved with the startAfter boundary.

func ListObjectsV2_mp_masking_truncation added in v1.4.1

func ListObjectsV2_mp_masking_truncation(s *S3Conf) error

ListObjectsV2 truncation should count only real objects, not pending multipart uploads, and the continuation token should allow correct pagination.

func ListObjectsV2_non_truncated_common_prefixes added in v1.0.17

func ListObjectsV2_non_truncated_common_prefixes(s *S3Conf) error

func ListObjectsV2_pagination_with_delimiter added in v1.8.0

func ListObjectsV2_pagination_with_delimiter(s *S3Conf) error

ListObjectsV2_pagination_with_delimiter walks a delimited listing across several pages and checks that common prefixes and objects are each returned once and in order, with no prefix repeated across page boundaries.

func ListObjectsV2_should_not_list_pending_mps added in v1.4.1

func ListObjectsV2_should_not_list_pending_mps(s *S3Conf) error

ListObjects should not list any pending multipart uploads and no pending mp should block the bucket from deletion

func ListObjectsV2_single_dir_object_with_delim_and_prefix added in v1.0.6

func ListObjectsV2_single_dir_object_with_delim_and_prefix(s *S3Conf) error

func ListObjectsV2_start_after

func ListObjectsV2_start_after(s *S3Conf) error

func ListObjectsV2_start_after_empty_result

func ListObjectsV2_start_after_empty_result(s *S3Conf) error

func ListObjectsV2_start_after_not_in_list

func ListObjectsV2_start_after_not_in_list(s *S3Conf) error

func ListObjectsV2_truncated_common_prefixes added in v1.0.6

func ListObjectsV2_truncated_common_prefixes(s *S3Conf) error

func ListObjectsV2_with_checksum added in v1.0.11

func ListObjectsV2_with_checksum(s *S3Conf) error

func ListObjectsV2_with_owner added in v1.0.13

func ListObjectsV2_with_owner(s *S3Conf) error

func ListObjects_check_owner added in v1.0.13

func ListObjects_check_owner(s *S3Conf) error

func ListObjects_delimiter

func ListObjects_delimiter(s *S3Conf) error

func ListObjects_exceeding_max_keys added in v1.0.11

func ListObjects_exceeding_max_keys(s *S3Conf) error

func ListObjects_invalid_max_keys

func ListObjects_invalid_max_keys(s *S3Conf) error

func ListObjects_list_all_objs added in v1.0.8

func ListObjects_list_all_objs(s *S3Conf) error

func ListObjects_marker_not_from_obj_list

func ListObjects_marker_not_from_obj_list(s *S3Conf) error

func ListObjects_max_keys_0

func ListObjects_max_keys_0(s *S3Conf) error

func ListObjects_max_keys_none

func ListObjects_max_keys_none(s *S3Conf) error

func ListObjects_mp_masking_delimiter added in v1.4.1

func ListObjects_mp_masking_delimiter(s *S3Conf) error

ListObjects with a delimiter should not include the .sgwtmp/ multipart prefix in common prefixes, even when pending multipart uploads exist.

func ListObjects_mp_masking_truncation added in v1.4.1

func ListObjects_mp_masking_truncation(s *S3Conf) error

ListObjects truncation should count only real objects, not pending multipart uploads.

func ListObjects_mp_masking_with_marker added in v1.4.1

func ListObjects_mp_masking_with_marker(s *S3Conf) error

ListObjects with a marker should not surface pending multipart uploads even when real objects are interleaved with the marker boundary.

func ListObjects_nested_dir_file_objs added in v1.0.11

func ListObjects_nested_dir_file_objs(s *S3Conf) error

func ListObjects_non_existing_bucket

func ListObjects_non_existing_bucket(s *S3Conf) error

func ListObjects_non_truncated_common_prefixes added in v1.0.13

func ListObjects_non_truncated_common_prefixes(s *S3Conf) error

func ListObjects_paginated added in v1.0.7

func ListObjects_paginated(s *S3Conf) error

func ListObjects_should_not_list_pending_mps added in v1.4.1

func ListObjects_should_not_list_pending_mps(s *S3Conf) error

ListObjects should not list any pending multipart uploads and no pending mp should block the bucket from deletion

func ListObjects_truncated added in v1.0.6

func ListObjects_truncated(s *S3Conf) error

func ListObjects_with_checksum added in v1.0.11

func ListObjects_with_checksum(s *S3Conf) error

func ListObjects_with_prefix

func ListObjects_with_prefix(s *S3Conf) error

func ListParts_default_max_parts added in v1.0.8

func ListParts_default_max_parts(s *S3Conf) error

func ListParts_exceeding_max_parts added in v1.0.11

func ListParts_exceeding_max_parts(s *S3Conf) error

func ListParts_incorrect_object_key

func ListParts_incorrect_object_key(s *S3Conf) error

func ListParts_incorrect_uploadId

func ListParts_incorrect_uploadId(s *S3Conf) error

func ListParts_invalid_max_parts added in v1.0.8

func ListParts_invalid_max_parts(s *S3Conf) error

func ListParts_invalid_part_number_marker added in v1.2.0

func ListParts_invalid_part_number_marker(s *S3Conf) error

func ListParts_null_checksums added in v1.0.14

func ListParts_null_checksums(s *S3Conf) error

func ListParts_success

func ListParts_success(s *S3Conf) error

func ListParts_truncated added in v1.0.1

func ListParts_truncated(s *S3Conf) error

func ListParts_with_checksums added in v1.0.11

func ListParts_with_checksums(s *S3Conf) error

func NewHasher added in v1.0.19

func NewHasher(algo types.ChecksumAlgorithm) (hash.Hash, error)

func NoAclMode_CreateBucket_with_acl added in v1.3.0

func NoAclMode_CreateBucket_with_acl(s *S3Conf) error

func NoAclMode_PutBucketAcl added in v1.3.0

func NoAclMode_PutBucketAcl(s *S3Conf) error

func PostObject_access_denied added in v1.4.0

func PostObject_access_denied(s *S3Conf) error

func PostObject_checksums_success added in v1.4.0

func PostObject_checksums_success(s *S3Conf) error

func PostObject_default_content_type added in v1.8.0

func PostObject_default_content_type(s *S3Conf) error

func PostObject_expired_due_to_date added in v1.4.0

func PostObject_expired_due_to_date(s *S3Conf) error

func PostObject_incorrect_region added in v1.4.0

func PostObject_incorrect_region(s *S3Conf) error

func PostObject_invalid_algorithm added in v1.4.0

func PostObject_invalid_algorithm(s *S3Conf) error

func PostObject_invalid_checksum_algorithm added in v1.4.0

func PostObject_invalid_checksum_algorithm(s *S3Conf) error

func PostObject_invalid_checksum_value added in v1.4.0

func PostObject_invalid_checksum_value(s *S3Conf) error

func PostObject_invalid_content_type added in v1.4.0

func PostObject_invalid_content_type(s *S3Conf) error

func PostObject_invalid_credential_format added in v1.4.0

func PostObject_invalid_credential_format(s *S3Conf) error

func PostObject_invalid_date added in v1.4.0

func PostObject_invalid_date(s *S3Conf) error

func PostObject_invalid_object_names added in v1.5.0

func PostObject_invalid_object_names(s *S3Conf) error

func PostObject_invalid_policy_document added in v1.4.0

func PostObject_invalid_policy_document(s *S3Conf) error

func PostObject_invalid_tagging added in v1.4.0

func PostObject_invalid_tagging(s *S3Conf) error

func PostObject_invalid_website_redirect_location added in v1.6.0

func PostObject_invalid_website_redirect_location(s *S3Conf) error

func PostObject_missing_boundary added in v1.4.0

func PostObject_missing_boundary(s *S3Conf) error

func PostObject_multiple_checksum_headers added in v1.4.0

func PostObject_multiple_checksum_headers(s *S3Conf) error

func PostObject_non_existing_access_key added in v1.4.0

func PostObject_non_existing_access_key(s *S3Conf) error

func PostObject_partial_auth_fields added in v1.4.0

func PostObject_partial_auth_fields(s *S3Conf) error

func PostObject_policy_access_control added in v1.4.0

func PostObject_policy_access_control(s *S3Conf) error

func PostObject_policy_condition_key_mismatch added in v1.4.0

func PostObject_policy_condition_key_mismatch(s *S3Conf) error

func PostObject_policy_content_length_too_large added in v1.4.0

func PostObject_policy_content_length_too_large(s *S3Conf) error

func PostObject_policy_content_length_too_small added in v1.4.0

func PostObject_policy_content_length_too_small(s *S3Conf) error

func PostObject_policy_expired added in v1.4.0

func PostObject_policy_expired(s *S3Conf) error

func PostObject_policy_extra_field added in v1.4.0

func PostObject_policy_extra_field(s *S3Conf) error

func PostObject_policy_missing_bucket_condition added in v1.4.0

func PostObject_policy_missing_bucket_condition(s *S3Conf) error

func PostObject_should_ignore_anything_after_file added in v1.4.0

func PostObject_should_ignore_anything_after_file(s *S3Conf) error

func PostObject_signature_mismatch added in v1.4.0

func PostObject_signature_mismatch(s *S3Conf) error

func PostObject_success added in v1.4.0

func PostObject_success(s *S3Conf) error

func PostObject_success_double_dash_boundary added in v1.4.0

func PostObject_success_double_dash_boundary(s *S3Conf) error

func PostObject_success_status_200 added in v1.4.0

func PostObject_success_status_200(s *S3Conf) error

func PostObject_success_status_201 added in v1.4.0

func PostObject_success_status_201(s *S3Conf) error

func PostObject_success_with_meta_properties added in v1.4.0

func PostObject_success_with_meta_properties(s *S3Conf) error

func PostObject_success_with_tagging added in v1.4.0

func PostObject_success_with_tagging(s *S3Conf) error

func PreflightOPTIONS_access_forbidden added in v1.0.17

func PreflightOPTIONS_access_forbidden(s *S3Conf) error

func PreflightOPTIONS_access_granted added in v1.0.17

func PreflightOPTIONS_access_granted(s *S3Conf) error

func PreflightOPTIONS_invalid_request_headers added in v1.0.17

func PreflightOPTIONS_invalid_request_headers(s *S3Conf) error

func PreflightOPTIONS_invalid_request_method added in v1.0.17

func PreflightOPTIONS_invalid_request_method(s *S3Conf) error

func PreflightOPTIONS_missing_origin added in v1.0.17

func PreflightOPTIONS_missing_origin(s *S3Conf) error

func PreflightOPTIONS_non_existing_bucket added in v1.0.17

func PreflightOPTIONS_non_existing_bucket(s *S3Conf) error

func PreflightOPTIONS_unset_bucket_cors added in v1.0.17

func PreflightOPTIONS_unset_bucket_cors(s *S3Conf) error

func PresignedAuth_ECDSA_not_supported added in v1.0.19

func PresignedAuth_ECDSA_not_supported(s *S3Conf) error

func PresignedAuth_PutObject_success

func PresignedAuth_PutObject_success(s *S3Conf) error

func PresignedAuth_Put_GetObject_with_UTF8_chars

func PresignedAuth_Put_GetObject_with_UTF8_chars(s *S3Conf) error

func PresignedAuth_Put_GetObject_with_data

func PresignedAuth_Put_GetObject_with_data(s *S3Conf) error

func PresignedAuth_UploadPart

func PresignedAuth_UploadPart(s *S3Conf) error

func PresignedAuth_creds_incorrect_region

func PresignedAuth_creds_incorrect_region(s *S3Conf) error

func PresignedAuth_creds_incorrect_service

func PresignedAuth_creds_incorrect_service(s *S3Conf) error

func PresignedAuth_creds_invalid_date

func PresignedAuth_creds_invalid_date(s *S3Conf) error

func PresignedAuth_creds_invalid_terminal added in v1.0.19

func PresignedAuth_creds_invalid_terminal(s *S3Conf) error

func PresignedAuth_dates_mismatch

func PresignedAuth_dates_mismatch(s *S3Conf) error

func PresignedAuth_exceeding_expiration_query_param

func PresignedAuth_exceeding_expiration_query_param(s *S3Conf) error

func PresignedAuth_expired_request

func PresignedAuth_expired_request(s *S3Conf) error

func PresignedAuth_incorrect_secret_key

func PresignedAuth_incorrect_secret_key(s *S3Conf) error

func PresignedAuth_invalid_expiration_query_param

func PresignedAuth_invalid_expiration_query_param(s *S3Conf) error

func PresignedAuth_malformed_creds_invalid_parts

func PresignedAuth_malformed_creds_invalid_parts(s *S3Conf) error

func PresignedAuth_missing_credentials_query_param

func PresignedAuth_missing_credentials_query_param(s *S3Conf) error

func PresignedAuth_missing_date_query

func PresignedAuth_missing_date_query(s *S3Conf) error

func PresignedAuth_missing_expiration_query_param

func PresignedAuth_missing_expiration_query_param(s *S3Conf) error

func PresignedAuth_missing_signature_query_param added in v1.0.19

func PresignedAuth_missing_signature_query_param(s *S3Conf) error

func PresignedAuth_missing_signed_headers_query_param

func PresignedAuth_missing_signed_headers_query_param(s *S3Conf) error

func PresignedAuth_negative_expiration_query_param

func PresignedAuth_negative_expiration_query_param(s *S3Conf) error

func PresignedAuth_non_existing_access_key_id

func PresignedAuth_non_existing_access_key_id(s *S3Conf) error

func PresignedAuth_security_token_with_permanent_credentials added in v1.8.0

func PresignedAuth_security_token_with_permanent_credentials(s *S3Conf) error

func PresignedAuth_sigv2_not_supported added in v1.5.0

func PresignedAuth_sigv2_not_supported(s *S3Conf) error

func PresignedAuth_unsigned_non_required_header added in v1.5.0

func PresignedAuth_unsigned_non_required_header(s *S3Conf) error

func PresignedAuth_unsigned_required_header added in v1.5.0

func PresignedAuth_unsigned_required_header(s *S3Conf) error

func PresignedAuth_unsupported_algorithm

func PresignedAuth_unsupported_algorithm(s *S3Conf) error

func PublicBucket_default_private_bucket added in v1.0.18

func PublicBucket_default_private_bucket(s *S3Conf) error

func PublicBucket_incorrect_sha256_hash added in v1.0.19

func PublicBucket_incorrect_sha256_hash(s *S3Conf) error

func PublicBucket_policy_deny_overrides_public_acl added in v1.5.0

func PublicBucket_policy_deny_overrides_public_acl(s *S3Conf) error

func PublicBucket_public_acl added in v1.0.15

func PublicBucket_public_acl(s *S3Conf) error

func PublicBucket_public_bucket_policy added in v1.0.15

func PublicBucket_public_bucket_policy(s *S3Conf) error

func PublicBucket_public_object_policy added in v1.0.15

func PublicBucket_public_object_policy(s *S3Conf) error

func PublicBucket_signed_streaming_payload added in v1.0.19

func PublicBucket_signed_streaming_payload(s *S3Conf) error

func PutBucketAccelerateConfiguration_not_implemented added in v1.0.17

func PutBucketAccelerateConfiguration_not_implemented(s *S3Conf) error

func PutBucketAcl_disabled added in v1.0.3

func PutBucketAcl_disabled(s *S3Conf) error

func PutBucketAcl_empty_grantee_ID_in_body added in v1.0.10

func PutBucketAcl_empty_grantee_ID_in_body(s *S3Conf) error

func PutBucketAcl_invalid_acl_acp_and_grants

func PutBucketAcl_invalid_acl_acp_and_grants(s *S3Conf) error

func PutBucketAcl_invalid_acl_canned_and_acp

func PutBucketAcl_invalid_acl_canned_and_acp(s *S3Conf) error

func PutBucketAcl_invalid_acl_canned_and_grants

func PutBucketAcl_invalid_acl_canned_and_grants(s *S3Conf) error

func PutBucketAcl_invalid_canned_acl added in v1.0.19

func PutBucketAcl_invalid_canned_acl(s *S3Conf) error

func PutBucketAcl_invalid_empty_owner_id_in_body added in v1.0.10

func PutBucketAcl_invalid_empty_owner_id_in_body(s *S3Conf) error

func PutBucketAcl_invalid_grantee_type_in_body added in v1.0.10

func PutBucketAcl_invalid_grantee_type_in_body(s *S3Conf) error

func PutBucketAcl_invalid_owner

func PutBucketAcl_invalid_owner(s *S3Conf) error

func PutBucketAcl_invalid_owner_not_in_body

func PutBucketAcl_invalid_owner_not_in_body(s *S3Conf) error

func PutBucketAcl_invalid_permission_in_body added in v1.0.10

func PutBucketAcl_invalid_permission_in_body(s *S3Conf) error

func PutBucketAcl_non_existing_bucket

func PutBucketAcl_non_existing_bucket(s *S3Conf) error

func PutBucketAcl_none_of_the_options_specified added in v1.0.6

func PutBucketAcl_none_of_the_options_specified(s *S3Conf) error

func PutBucketAcl_success_access_denied

func PutBucketAcl_success_access_denied(s *S3Conf) error

func PutBucketAcl_success_acp

func PutBucketAcl_success_acp(s *S3Conf) error

func PutBucketAcl_success_canned_acl

func PutBucketAcl_success_canned_acl(s *S3Conf) error

func PutBucketAcl_success_grants

func PutBucketAcl_success_grants(s *S3Conf) error

func PutBucketAnalyticsConfiguration_not_implemented added in v1.0.17

func PutBucketAnalyticsConfiguration_not_implemented(s *S3Conf) error

func PutBucketCors_empty_cors_rules added in v1.0.17

func PutBucketCors_empty_cors_rules(s *S3Conf) error

func PutBucketCors_invalid_allowed_origins added in v1.3.0

func PutBucketCors_invalid_allowed_origins(s *S3Conf) error

func PutBucketCors_invalid_header added in v1.0.17

func PutBucketCors_invalid_header(s *S3Conf) error

func PutBucketCors_invalid_method added in v1.0.17

func PutBucketCors_invalid_method(s *S3Conf) error

func PutBucketCors_md5 added in v1.0.19

func PutBucketCors_md5(s *S3Conf) error

func PutBucketCors_non_existing_bucket added in v1.0.17

func PutBucketCors_non_existing_bucket(s *S3Conf) error

func PutBucketCors_success added in v1.0.17

func PutBucketCors_success(s *S3Conf) error

func PutBucketEncryption_not_implemented added in v1.0.17

func PutBucketEncryption_not_implemented(s *S3Conf) error

func PutBucketIntelligentTieringConfiguration_not_implemented added in v1.0.17

func PutBucketIntelligentTieringConfiguration_not_implemented(s *S3Conf) error

func PutBucketInventoryConfiguration_not_implemented added in v1.0.17

func PutBucketInventoryConfiguration_not_implemented(s *S3Conf) error

func PutBucketLifecycleConfiguration_not_implemented added in v1.0.17

func PutBucketLifecycleConfiguration_not_implemented(s *S3Conf) error

func PutBucketLogging_not_implemented added in v1.0.17

func PutBucketLogging_not_implemented(s *S3Conf) error

func PutBucketMetricsConfiguration_not_implemented added in v1.0.17

func PutBucketMetricsConfiguration_not_implemented(s *S3Conf) error

func PutBucketNotificationConfiguratio_not_implemented added in v1.0.17

func PutBucketNotificationConfiguratio_not_implemented(s *S3Conf) error

func PutBucketOwnershipControls_empty_rules added in v1.5.0

func PutBucketOwnershipControls_empty_rules(s *S3Conf) error

func PutBucketOwnershipControls_invalid_ownership added in v1.0.3

func PutBucketOwnershipControls_invalid_ownership(s *S3Conf) error

func PutBucketOwnershipControls_multiple_rules added in v1.0.3

func PutBucketOwnershipControls_multiple_rules(s *S3Conf) error

func PutBucketOwnershipControls_non_existing_bucket added in v1.0.3

func PutBucketOwnershipControls_non_existing_bucket(s *S3Conf) error

func PutBucketOwnershipControls_success added in v1.0.3

func PutBucketOwnershipControls_success(s *S3Conf) error

func PutBucketPolicy_action_resource_mismatch added in v1.0.18

func PutBucketPolicy_action_resource_mismatch(s *S3Conf) error

func PutBucketPolicy_any_char_match added in v1.0.11

func PutBucketPolicy_any_char_match(s *S3Conf) error

func PutBucketPolicy_condition_action_mismatch added in v1.8.0

func PutBucketPolicy_condition_action_mismatch(s *S3Conf) error

func PutBucketPolicy_condition_invalid_ip added in v1.8.0

func PutBucketPolicy_condition_invalid_ip(s *S3Conf) error

func PutBucketPolicy_condition_invalid_key added in v1.8.0

func PutBucketPolicy_condition_invalid_key(s *S3Conf) error

func PutBucketPolicy_condition_invalid_operator added in v1.8.0

func PutBucketPolicy_condition_invalid_operator(s *S3Conf) error

func PutBucketPolicy_duplicate_resource

func PutBucketPolicy_duplicate_resource(s *S3Conf) error

func PutBucketPolicy_empty_principals_array

func PutBucketPolicy_empty_principals_array(s *S3Conf) error

func PutBucketPolicy_empty_principals_string

func PutBucketPolicy_empty_principals_string(s *S3Conf) error

func PutBucketPolicy_empty_resources_array

func PutBucketPolicy_empty_resources_array(s *S3Conf) error

func PutBucketPolicy_empty_resources_string

func PutBucketPolicy_empty_resources_string(s *S3Conf) error

func PutBucketPolicy_empty_statement added in v1.0.2

func PutBucketPolicy_empty_statement(s *S3Conf) error

func PutBucketPolicy_explicit_deny added in v1.0.11

func PutBucketPolicy_explicit_deny(s *S3Conf) error

func PutBucketPolicy_incorrect_bucket_name

func PutBucketPolicy_incorrect_bucket_name(s *S3Conf) error

func PutBucketPolicy_invalid_action

func PutBucketPolicy_invalid_action(s *S3Conf) error

func PutBucketPolicy_invalid_effect

func PutBucketPolicy_invalid_effect(s *S3Conf) error

func PutBucketPolicy_invalid_json added in v1.0.13

func PutBucketPolicy_invalid_json(s *S3Conf) error

func PutBucketPolicy_invalid_resource_prefix

func PutBucketPolicy_invalid_resource_prefix(s *S3Conf) error

func PutBucketPolicy_invalid_resource_with_starting_slash

func PutBucketPolicy_invalid_resource_with_starting_slash(s *S3Conf) error

func PutBucketPolicy_multi_wildcard_resource added in v1.0.11

func PutBucketPolicy_multi_wildcard_resource(s *S3Conf) error

func PutBucketPolicy_non_existing_bucket

func PutBucketPolicy_non_existing_bucket(s *S3Conf) error

func PutBucketPolicy_non_existing_principals

func PutBucketPolicy_non_existing_principals(s *S3Conf) error

func PutBucketPolicy_principals_aws_struct_empty_string

func PutBucketPolicy_principals_aws_struct_empty_string(s *S3Conf) error

func PutBucketPolicy_principals_aws_struct_empty_string_slice

func PutBucketPolicy_principals_aws_struct_empty_string_slice(s *S3Conf) error

func PutBucketPolicy_principals_incorrect_wildcard_usage

func PutBucketPolicy_principals_incorrect_wildcard_usage(s *S3Conf) error

func PutBucketPolicy_statement_not_provided added in v1.0.13

func PutBucketPolicy_statement_not_provided(s *S3Conf) error

func PutBucketPolicy_status added in v1.1.0

func PutBucketPolicy_status(s *S3Conf) error

func PutBucketPolicy_success

func PutBucketPolicy_success(s *S3Conf) error

func PutBucketPolicy_version added in v1.0.19

func PutBucketPolicy_version(s *S3Conf) error

func PutBucketReplication_not_implemented added in v1.0.17

func PutBucketReplication_not_implemented(s *S3Conf) error

func PutBucketRequestPayment_not_implemented added in v1.0.17

func PutBucketRequestPayment_not_implemented(s *S3Conf) error

func PutBucketTagging_duplicate_keys added in v1.0.13

func PutBucketTagging_duplicate_keys(s *S3Conf) error

func PutBucketTagging_invalid_tags added in v1.0.19

func PutBucketTagging_invalid_tags(s *S3Conf) error

func PutBucketTagging_long_tags

func PutBucketTagging_long_tags(s *S3Conf) error

func PutBucketTagging_non_existing_bucket

func PutBucketTagging_non_existing_bucket(s *S3Conf) error

func PutBucketTagging_success

func PutBucketTagging_success(s *S3Conf) error

func PutBucketTagging_success_status added in v1.0.9

func PutBucketTagging_success_status(s *S3Conf) error

func PutBucketTagging_tag_count_limit added in v1.0.13

func PutBucketTagging_tag_count_limit(s *S3Conf) error

func PutBucketVersioning_invalid_status added in v1.0.8

func PutBucketVersioning_invalid_status(s *S3Conf) error

func PutBucketVersioning_non_existing_bucket added in v1.0.8

func PutBucketVersioning_non_existing_bucket(s *S3Conf) error

func PutBucketVersioning_success_enabled added in v1.0.8

func PutBucketVersioning_success_enabled(s *S3Conf) error

func PutBucketVersioning_success_suspended added in v1.0.8

func PutBucketVersioning_success_suspended(s *S3Conf) error

func PutBucketWebsite_empty_error_document_key added in v1.6.0

func PutBucketWebsite_empty_error_document_key(s *S3Conf) error

func PutBucketWebsite_empty_routing_rule_condition added in v1.6.0

func PutBucketWebsite_empty_routing_rule_condition(s *S3Conf) error

func PutBucketWebsite_empty_routing_rule_redirect added in v1.6.0

func PutBucketWebsite_empty_routing_rule_redirect(s *S3Conf) error

func PutBucketWebsite_empty_suffix added in v1.6.0

func PutBucketWebsite_empty_suffix(s *S3Conf) error

func PutBucketWebsite_invalid_http_error_code added in v1.6.0

func PutBucketWebsite_invalid_http_error_code(s *S3Conf) error

func PutBucketWebsite_invalid_http_redirect_code added in v1.6.0

func PutBucketWebsite_invalid_http_redirect_code(s *S3Conf) error

func PutBucketWebsite_invalid_redirect_protocol added in v1.6.0

func PutBucketWebsite_invalid_redirect_protocol(s *S3Conf) error

func PutBucketWebsite_invalid_routing_rule_protocol added in v1.6.0

func PutBucketWebsite_invalid_routing_rule_protocol(s *S3Conf) error

func PutBucketWebsite_non_existing_bucket added in v1.6.0

func PutBucketWebsite_non_existing_bucket(s *S3Conf) error

func PutBucketWebsite_redirectAll_index_error_routingRules added in v1.6.0

func PutBucketWebsite_redirectAll_index_error_routingRules(s *S3Conf) error

func PutBucketWebsite_request_too_large added in v1.6.0

func PutBucketWebsite_request_too_large(s *S3Conf) error

func PutBucketWebsite_routing_rule_replace_key_and_prefix added in v1.6.0

func PutBucketWebsite_routing_rule_replace_key_and_prefix(s *S3Conf) error

func PutBucketWebsite_success added in v1.6.0

func PutBucketWebsite_success(s *S3Conf) error

func PutBucketWebsite_success_redirect_all added in v1.6.0

func PutBucketWebsite_success_redirect_all(s *S3Conf) error

func PutBucketWebsite_suffix_with_slash added in v1.6.0

func PutBucketWebsite_suffix_with_slash(s *S3Conf) error

func PutBucketWebsite_too_many_routing_rules added in v1.6.0

func PutBucketWebsite_too_many_routing_rules(s *S3Conf) error

func PutObjectAcl_not_implemented added in v1.3.0

func PutObjectAcl_not_implemented(s *S3Conf) error

func PutObjectLegalHold_invalid_body

func PutObjectLegalHold_invalid_body(s *S3Conf) error

func PutObjectLegalHold_invalid_status

func PutObjectLegalHold_invalid_status(s *S3Conf) error

func PutObjectLegalHold_non_existing_bucket

func PutObjectLegalHold_non_existing_bucket(s *S3Conf) error

func PutObjectLegalHold_non_existing_object

func PutObjectLegalHold_non_existing_object(s *S3Conf) error

func PutObjectLegalHold_success

func PutObjectLegalHold_success(s *S3Conf) error

func PutObjectLegalHold_unset_bucket_object_lock_config

func PutObjectLegalHold_unset_bucket_object_lock_config(s *S3Conf) error

func PutObjectLockConfiguration_both_years_and_days

func PutObjectLockConfiguration_both_years_and_days(s *S3Conf) error

func PutObjectLockConfiguration_empty_request_body added in v1.0.19

func PutObjectLockConfiguration_empty_request_body(s *S3Conf) error

func PutObjectLockConfiguration_invalid_mode

func PutObjectLockConfiguration_invalid_mode(s *S3Conf) error

func PutObjectLockConfiguration_invalid_status

func PutObjectLockConfiguration_invalid_status(s *S3Conf) error

func PutObjectLockConfiguration_invalid_years_days

func PutObjectLockConfiguration_invalid_years_days(s *S3Conf) error

func PutObjectLockConfiguration_malformed_body added in v1.0.19

func PutObjectLockConfiguration_malformed_body(s *S3Conf) error

func PutObjectLockConfiguration_non_existing_bucket

func PutObjectLockConfiguration_non_existing_bucket(s *S3Conf) error

func PutObjectLockConfiguration_not_enabled_on_bucket_creation

func PutObjectLockConfiguration_not_enabled_on_bucket_creation(s *S3Conf) error

func PutObjectLockConfiguration_success

func PutObjectLockConfiguration_success(s *S3Conf) error

func PutObjectRetention_expired_retain_until_date

func PutObjectRetention_expired_retain_until_date(s *S3Conf) error

func PutObjectRetention_invalid_mode

func PutObjectRetention_invalid_mode(s *S3Conf) error

func PutObjectRetention_non_existing_bucket

func PutObjectRetention_non_existing_bucket(s *S3Conf) error

func PutObjectRetention_non_existing_object

func PutObjectRetention_non_existing_object(s *S3Conf) error

func PutObjectRetention_overwrite_compliance_mode

func PutObjectRetention_overwrite_compliance_mode(s *S3Conf) error

func PutObjectRetention_overwrite_compliance_with_compliance added in v1.0.19

func PutObjectRetention_overwrite_compliance_with_compliance(s *S3Conf) error

func PutObjectRetention_overwrite_governance_with_governance added in v1.0.19

func PutObjectRetention_overwrite_governance_with_governance(s *S3Conf) error

func PutObjectRetention_overwrite_governance_with_permission

func PutObjectRetention_overwrite_governance_with_permission(s *S3Conf) error

func PutObjectRetention_overwrite_governance_without_bypass_specified

func PutObjectRetention_overwrite_governance_without_bypass_specified(s *S3Conf) error

func PutObjectRetention_rewrite_same_date added in v1.8.0

func PutObjectRetention_rewrite_same_date(s *S3Conf) error

func PutObjectRetention_shorten_compliance_denied added in v1.8.0

func PutObjectRetention_shorten_compliance_denied(s *S3Conf) error

func PutObjectRetention_shorten_governance_with_bypass added in v1.8.0

func PutObjectRetention_shorten_governance_with_bypass(s *S3Conf) error

func PutObjectRetention_shorten_governance_without_bypass added in v1.8.0

func PutObjectRetention_shorten_governance_without_bypass(s *S3Conf) error

func PutObjectRetention_success

func PutObjectRetention_success(s *S3Conf) error

func PutObjectRetention_unset_bucket_object_lock_config

func PutObjectRetention_unset_bucket_object_lock_config(s *S3Conf) error

func PutObjectTagging_duplicate_keys added in v1.0.13

func PutObjectTagging_duplicate_keys(s *S3Conf) error

func PutObjectTagging_invalid_tags added in v1.0.19

func PutObjectTagging_invalid_tags(s *S3Conf) error

func PutObjectTagging_long_tags

func PutObjectTagging_long_tags(s *S3Conf) error

func PutObjectTagging_non_existing_object

func PutObjectTagging_non_existing_object(s *S3Conf) error

func PutObjectTagging_success

func PutObjectTagging_success(s *S3Conf) error

func PutObjectTagging_tag_count_limit added in v1.0.13

func PutObjectTagging_tag_count_limit(s *S3Conf) error

func PutObject_checksum_algorithm_and_header_mismatch added in v1.0.11

func PutObject_checksum_algorithm_and_header_mismatch(s *S3Conf) error

func PutObject_checksums_success added in v1.0.11

func PutObject_checksums_success(s *S3Conf) error

func PutObject_conditional_writes added in v1.0.18

func PutObject_conditional_writes(s *S3Conf) error

func PutObject_data_integrity_etag added in v1.8.0

func PutObject_data_integrity_etag(s *S3Conf) error

func PutObject_default_checksum added in v1.0.13

func PutObject_default_checksum(s *S3Conf) error

func PutObject_default_content_type added in v1.3.0

func PutObject_default_content_type(s *S3Conf) error

func PutObject_dir_obj_with_data

func PutObject_dir_obj_with_data(s *S3Conf) error

func PutObject_dir_object_checksums_success added in v1.3.0

func PutObject_dir_object_checksums_success(s *S3Conf) error

func PutObject_dir_object_data_integrity_etag added in v1.8.0

func PutObject_dir_object_data_integrity_etag(s *S3Conf) error

func PutObject_dir_object_default_checksum added in v1.3.0

func PutObject_dir_object_default_checksum(s *S3Conf) error

func PutObject_false_negative_object_names added in v1.0.15

func PutObject_false_negative_object_names(s *S3Conf) error

func PutObject_incorrect_checksums added in v1.0.11

func PutObject_incorrect_checksums(s *S3Conf) error

func PutObject_invalid_checksum_header added in v1.0.11

func PutObject_invalid_checksum_header(s *S3Conf) error

func PutObject_invalid_credentials

func PutObject_invalid_credentials(s *S3Conf) error
func PutObject_invalid_legal_hold(s *S3Conf) error

func PutObject_invalid_object_lock_mode added in v1.0.12

func PutObject_invalid_object_lock_mode(s *S3Conf) error

func PutObject_invalid_object_names added in v1.0.15

func PutObject_invalid_object_names(s *S3Conf) error

func PutObject_invalid_retain_until_date added in v1.1.0

func PutObject_invalid_retain_until_date(s *S3Conf) error

func PutObject_invalid_website_redirect_location added in v1.6.0

func PutObject_invalid_website_redirect_location(s *S3Conf) error

func PutObject_long_metadata added in v1.4.0

func PutObject_long_metadata(s *S3Conf) error

func PutObject_md5 added in v1.6.0

func PutObject_md5(s *S3Conf) error

func PutObject_missing_bucket_lock added in v1.1.0

func PutObject_missing_bucket_lock(s *S3Conf) error

func PutObject_missing_object_lock_retention_config

func PutObject_missing_object_lock_retention_config(s *S3Conf) error

func PutObject_multiple_checksum_headers added in v1.0.11

func PutObject_multiple_checksum_headers(s *S3Conf) error

func PutObject_name_too_long added in v1.0.6

func PutObject_name_too_long(s *S3Conf) error

func PutObject_non_existing_bucket

func PutObject_non_existing_bucket(s *S3Conf) error

func PutObject_object_acl_not_supported added in v1.2.0

func PutObject_object_acl_not_supported(s *S3Conf) error

func PutObject_overwrite_dir_obj

func PutObject_overwrite_dir_obj(s *S3Conf) error

func PutObject_overwrite_file_obj

func PutObject_overwrite_file_obj(s *S3Conf) error

func PutObject_overwrite_file_obj_with_nested_obj added in v1.0.8

func PutObject_overwrite_file_obj_with_nested_obj(s *S3Conf) error

func PutObject_past_retain_until_date added in v1.1.0

func PutObject_past_retain_until_date(s *S3Conf) error

func PutObject_race_with_delete added in v1.4.0

func PutObject_race_with_delete(s *S3Conf) error

PutObject_race_with_delete tests the race between PutObject and DeleteObject in the same subdirectory. One goroutine sequentially puts "race-dir/0.txt" … "race-dir/N-1.txt". A second goroutine loops for the same number of iterations: it lists all objects under "race-dir/" and bulk-deletes them. When the batch delete removes the last visible object in the directory, removeParents() rmdir's "race-dir/", which can race with the uploader's final link() step. The test asserts that no error is returned from either goroutine.

func PutObject_racey_success added in v1.0.8

func PutObject_racey_success(s *S3Conf) error

func PutObject_should_combine_metadata added in v1.4.0

func PutObject_should_combine_metadata(s *S3Conf) error

func PutObject_special_chars

func PutObject_special_chars(s *S3Conf) error

func PutObject_success

func PutObject_success(s *S3Conf) error

func PutObject_tagging added in v1.0.14

func PutObject_tagging(s *S3Conf) error

func PutObject_with_metadata added in v1.0.19

func PutObject_with_metadata(s *S3Conf) error

func PutObject_with_object_lock

func PutObject_with_object_lock(s *S3Conf) error

func PutObject_with_slashes added in v1.0.17

func PutObject_with_slashes(s *S3Conf) error

func PutPublicAccessBlock_not_implemented added in v1.0.17

func PutPublicAccessBlock_not_implemented(s *S3Conf) error

func RouterCopySourceNotAllowed added in v1.0.19

func RouterCopySourceNotAllowed(s *S3Conf) error

func RouterGetUploadsWithKey added in v1.0.19

func RouterGetUploadsWithKey(s *S3Conf) error

func RouterListVersionsWithKey added in v1.1.0

func RouterListVersionsWithKey(s *S3Conf) error

func RouterPUTObjectOnlyUploadId added in v1.0.17

func RouterPUTObjectOnlyUploadId(s *S3Conf) error

func RouterPostObjectWithoutQuery added in v1.0.17

func RouterPostObjectWithoutQuery(s *S3Conf) error

func RouterPostRoot added in v1.0.17

func RouterPostRoot(s *S3Conf) error

func RouterPutPartNumberWithoutUploadId added in v1.0.17

func RouterPutPartNumberWithoutUploadId(s *S3Conf) error

router tests

func S3IAMAccessControl_access_key_last_used_records_s3 added in v1.8.0

func S3IAMAccessControl_access_key_last_used_records_s3(s *S3Conf) error

S3IAMAccessControl_access_key_last_used_records_s3 covers last-used tracking for the S3 data plane: an IAM user's S3 request is recorded against the access key that signed it, with the "s3" service name and the gateway's region — neither of which the IAM control plane can produce.

func S3IAMAccessControl_bucket_policy_allows_without_identity_policy added in v1.8.0

func S3IAMAccessControl_bucket_policy_allows_without_identity_policy(s *S3Conf) error

S3IAMAccessControl_bucket_policy_allows_without_identity_policy verifies the resource side is independently sufficient too: a bucket policy naming the user's ARN grants the request with no identity policy at all.

func S3IAMAccessControl_bucket_policy_explicit_deny added in v1.8.0

func S3IAMAccessControl_bucket_policy_explicit_deny(s *S3Conf) error

S3IAMAccessControl_bucket_policy_explicit_deny verifies a bucket-policy Deny denies on its own, and reports the resource-based-policy message.

func S3IAMAccessControl_compliance_mode_not_bypassable added in v1.8.0

func S3IAMAccessControl_compliance_mode_not_bypassable(s *S3Conf) error

S3IAMAccessControl_compliance_mode_not_bypassable verifies COMPLIANCE retention is absolute: no identity or bucket policy can grant a bypass of it, unlike GOVERNANCE.

func S3IAMAccessControl_condition_identity_keys added in v1.8.0

func S3IAMAccessControl_condition_identity_keys(s *S3Conf) error

S3IAMAccessControl_condition_identity_keys verifies the identity-derived condition keys — which the IAM service fills in, since the gateway never learns who an access key belongs to — reach policy evaluation.

func S3IAMAccessControl_condition_multiple_keys_anded added in v1.8.0

func S3IAMAccessControl_condition_multiple_keys_anded(s *S3Conf) error

S3IAMAccessControl_condition_multiple_keys_anded verifies multiple keys within one Condition block must all hold, while multiple values for one key are ORed.

func S3IAMAccessControl_condition_negated_operator_needs_context added in v1.8.0

func S3IAMAccessControl_condition_negated_operator_needs_context(s *S3Conf) error

S3IAMAccessControl_condition_negated_operator_needs_context is a regression test for a fail-open bug: the gateway used to send no condition context at all for S3 requests, and iamapi/policy treats a negated operator over an absent key as vacuously true — so a Deny guarded by NotIpAddress silently never fired, and an Allow guarded by one fired for everybody. With the context populated, a NotIpAddress Deny naming the caller's own address must actually deny.

func S3IAMAccessControl_condition_on_deny_statement added in v1.8.0

func S3IAMAccessControl_condition_on_deny_statement(s *S3Conf) error

S3IAMAccessControl_condition_on_deny_statement verifies a Condition attached to a Deny narrows that Deny — when the condition doesn't hold, the statement contributes nothing and an unconditional Allow still stands.

func S3IAMAccessControl_condition_principal_tag added in v1.8.0

func S3IAMAccessControl_condition_principal_tag(s *S3Conf) error

S3IAMAccessControl_condition_principal_tag verifies aws:PrincipalTag/<key> is populated from the calling user's own IAM tags, and that a tag the user doesn't carry is treated as absent rather than as an empty match.

func S3IAMAccessControl_condition_request_keys added in v1.8.0

func S3IAMAccessControl_condition_request_keys(s *S3Conf) error

S3IAMAccessControl_condition_request_keys covers the remaining condition keys the gateway derives from the request itself.

func S3IAMAccessControl_condition_source_ip added in v1.8.0

func S3IAMAccessControl_condition_source_ip(s *S3Conf) error

S3IAMAccessControl_condition_source_ip verifies aws:SourceIp is populated from the real request, both as a grant that matches and as one that doesn't.

func S3IAMAccessControl_copy_object_requires_both_sides added in v1.8.0

func S3IAMAccessControl_copy_object_requires_both_sides(s *S3Conf) error

S3IAMAccessControl_copy_object_requires_both_sides verifies a CopyObject is authorized against both its source (GetObject) and its destination (PutObject), so a policy granting only one of the two is not enough.

func S3IAMAccessControl_create_bucket added in v1.8.0

func S3IAMAccessControl_create_bucket(s *S3Conf) error

S3IAMAccessControl_create_bucket verifies s3:CreateBucket is gated by the identity policy alone — the bucket doesn't exist yet, so there is no bucket policy or ACL to consult — and that the grant is resource-scoped to the bucket name.

func S3IAMAccessControl_delete_objects_authorizes_each_key added in v1.8.0

func S3IAMAccessControl_delete_objects_authorizes_each_key(s *S3Conf) error

S3IAMAccessControl_delete_objects_authorizes_each_key verifies the batch DeleteObjects path authorizes s3:DeleteObject against each object's own ARN, the way real AWS does — a policy naming only "bucket/*" is sufficient — and that it supports partial success: a key outside the granted prefix denies only that key, reported in the response's Errors list, while every other key in the same batch is still deleted and reported in Deleted. Both lists preserve the order the keys were requested in.

func S3IAMAccessControl_delete_objects_bucket_policy_deny_per_key added in v1.8.0

func S3IAMAccessControl_delete_objects_bucket_policy_deny_per_key(s *S3Conf) error

S3IAMAccessControl_delete_objects_bucket_policy_deny_per_key verifies a bucket-policy Deny settles only the key it names. DeleteObjects is a partial-success API, so every key is authorized on its own: a Deny on one key is reported against that key and leaves every other key to be evaluated on its own merits — an explicitly denied key never lets the keys after it through unauthorized.

func S3IAMAccessControl_delete_objects_deny_across_versioned_split added in v1.8.0

func S3IAMAccessControl_delete_objects_deny_across_versioned_split(s *S3Conf) error

S3IAMAccessControl_delete_objects_deny_across_versioned_split verifies a denial in one half of a batch doesn't authorize the other half. A batch is split by action — keyed entries are authorized against s3:DeleteObject, entries naming a VersionId against s3:DeleteObjectVersion — and each half is evaluated separately, so a denial has to settle its own key in its own half and nothing else: not the keys after it, and not the keys in the other half.

func S3IAMAccessControl_delete_objects_version_needs_separate_permission added in v1.8.0

func S3IAMAccessControl_delete_objects_version_needs_separate_permission(s *S3Conf) error

S3IAMAccessControl_delete_objects_version_needs_separate_permission verifies that naming a VersionId in a DeleteObjects entry is authorized against s3:DeleteObjectVersion, a distinct permission from the s3:DeleteObject a keyed (unversioned) delete needs - a policy granting only s3:DeleteObject denies the versioned deletes in a batch while its keyed deletes in the same batch still succeed, each independently, matching the single-object DELETE path's existing behavior for the same distinction.

func S3IAMAccessControl_governance_bypass_delete_objects added in v1.8.0

func S3IAMAccessControl_governance_bypass_delete_objects(s *S3Conf) error

S3IAMAccessControl_governance_bypass_delete_objects verifies the batch DeleteObjects path enforces the bypass permission per object, the same way the single-object delete does.

func S3IAMAccessControl_governance_bypass_put_object_retention added in v1.8.0

func S3IAMAccessControl_governance_bypass_put_object_retention(s *S3Conf) error

S3IAMAccessControl_governance_bypass_put_object_retention verifies the bypass permission gates weakening a GOVERNANCE retention through PutObjectRetention — here by switching its mode to COMPLIANCE, which the gateway only permits with the bypass header.

func S3IAMAccessControl_governance_bypass_sources added in v1.8.0

func S3IAMAccessControl_governance_bypass_sources(s *S3Conf) error

S3IAMAccessControl_governance_bypass_sources verifies s3:BypassGovernance Retention follows the same precedence as any other action: an Allow from either the identity policy or the bucket policy is enough on its own, and an explicit Deny from either wins over the other's Allow.

func S3IAMAccessControl_governance_without_bypass_header added in v1.8.0

func S3IAMAccessControl_governance_without_bypass_header(s *S3Conf) error

S3IAMAccessControl_governance_without_bypass_header verifies the bypass permission is irrelevant when the request doesn't ask to bypass: the object stays protected, and the error is the generic object-lock one.

func S3IAMAccessControl_identity_policy_action_wildcards added in v1.8.0

func S3IAMAccessControl_identity_policy_action_wildcards(s *S3Conf) error

S3IAMAccessControl_identity_policy_action_wildcards verifies "s3:*" and prefix wildcards ("s3:Get*") match the way an exact action name does.

func S3IAMAccessControl_identity_policy_allows_without_bucket_policy added in v1.8.0

func S3IAMAccessControl_identity_policy_allows_without_bucket_policy(s *S3Conf) error

S3IAMAccessControl_identity_policy_allows_without_bucket_policy is the core same-account behavior: an identity-policy Allow grants the request on its own, with no bucket policy and no ACL grant involved at all.

func S3IAMAccessControl_identity_policy_bucket_vs_object_arn added in v1.8.0

func S3IAMAccessControl_identity_policy_bucket_vs_object_arn(s *S3Conf) error

S3IAMAccessControl_identity_policy_bucket_vs_object_arn verifies a bucket-level action evaluates against the bucket ARN, so an object-ARN grant ("bucket/*") does not cover it and vice versa.

func S3IAMAccessControl_identity_policy_explicit_deny_wins added in v1.8.0

func S3IAMAccessControl_identity_policy_explicit_deny_wins(s *S3Conf) error

S3IAMAccessControl_identity_policy_explicit_deny_wins verifies an explicit Deny beats a matching Allow regardless of statement order or of whether the two live in the same inline policy document.

func S3IAMAccessControl_identity_policy_not_action_and_not_resource added in v1.8.0

func S3IAMAccessControl_identity_policy_not_action_and_not_resource(s *S3Conf) error

S3IAMAccessControl_identity_policy_not_action_and_not_resource verifies NotAction and NotResource grant everything *except* what they name.

func S3IAMAccessControl_identity_policy_resource_scoping added in v1.8.0

func S3IAMAccessControl_identity_policy_resource_scoping(s *S3Conf) error

S3IAMAccessControl_identity_policy_resource_scoping verifies a Resource pattern scopes a grant to matching keys only.

func S3IAMAccessControl_inactive_and_deleted_credentials added in v1.8.0

func S3IAMAccessControl_inactive_and_deleted_credentials(s *S3Conf) error

S3IAMAccessControl_inactive_and_deleted_credentials verifies the gateway stops accepting an access key as soon as the IAM service stops vouching for it — whether it was deactivated, deleted, or its user was removed.

func S3IAMAccessControl_list_buckets added in v1.8.0

func S3IAMAccessControl_list_buckets(s *S3Conf) error

S3IAMAccessControl_list_buckets verifies ListBuckets is gated by s3:ListAllMyBuckets under the standalone IAM service: root always lists, an ordinary user needs an identity-policy Allow for the action.

func S3IAMAccessControl_multiple_inline_policies_combine added in v1.8.0

func S3IAMAccessControl_multiple_inline_policies_combine(s *S3Conf) error

S3IAMAccessControl_multiple_inline_policies_combine verifies separate inline policy documents are unioned, so an action allowed by either one is allowed overall.

func S3IAMAccessControl_no_policy_denies added in v1.8.0

func S3IAMAccessControl_no_policy_denies(s *S3Conf) error

S3IAMAccessControl_no_policy_denies verifies a caller with no identity policy and no bucket policy is denied by default — there is no implicit grant anywhere for an ordinary IAM user.

func S3IAMAccessControl_policy_combinations added in v1.8.0

func S3IAMAccessControl_policy_combinations(s *S3Conf) error

S3IAMAccessControl_policy_combinations walks the full precedence matrix between the identity policy and the bucket policy for one action, checking the exact outcome and message for each of the nine combinations that matter.

func S3IAMAccessControl_retention_extension_needs_no_bypass added in v1.8.0

func S3IAMAccessControl_retention_extension_needs_no_bypass(s *S3Conf) error

S3IAMAccessControl_retention_extension_needs_no_bypass verifies the direction of the change is what decides whether a bypass is needed: pushing a retention date further out only strengthens the lock, so it needs nothing beyond s3:PutObjectRetention — in either mode. Shortening is the case that needs a bypass, covered by the test below.

func S3IAMAccessControl_retention_shortening_needs_bypass added in v1.8.0

func S3IAMAccessControl_retention_shortening_needs_bypass(s *S3Conf) error

S3IAMAccessControl_retention_shortening_needs_bypass verifies that moving a retention date earlier — weakening the lock without changing its mode — needs both the bypass header and s3:BypassGovernanceRetention for GOVERNANCE, and is refused outright for COMPLIANCE however the caller asks.

Extending is the control: it only ever strengthens the lock, so it needs neither, in either mode.

func S3IAMAccessControl_root_bypasses_policies added in v1.8.0

func S3IAMAccessControl_root_bypasses_policies(s *S3Conf) error

S3IAMAccessControl_root_bypasses_policies verifies the gateway's root credential is authorized regardless of any policy, including a bucket policy that explicitly denies everyone.

func S3IAMPrincipal_accepted_forms added in v1.8.0

func S3IAMPrincipal_accepted_forms(s *S3Conf) error

S3IAMPrincipal_accepted_forms covers every Principal form PutBucketPolicy accepts: the wildcard in both its shapes, an existing user's ARN, an existing role's ARN, an assumed-role ARN naming a session of an existing role, the account root ARN, the bare account id, and a list mixing them.

func S3IAMPrincipal_account_delegates_but_does_not_grant added in v1.8.0

func S3IAMPrincipal_account_delegates_but_does_not_grant(s *S3Conf) error

S3IAMPrincipal_account_delegates_but_does_not_grant is the asymmetry the account-level principal forms carry: naming the account in an Allow delegates to the account's own IAM rather than granting anything, so a user with no identity policy is still denied and the same user with one is allowed. Naming it in a Deny delegates nothing and denies outright.

func S3IAMPrincipal_deleted_user_arn_rejected added in v1.8.0

func S3IAMPrincipal_deleted_user_arn_rejected(s *S3Conf) error

S3IAMPrincipal_deleted_user_arn_rejected verifies the write-time check tracks the IAM service rather than a snapshot of it: an ARN that resolved when a policy naming it was written no longer resolves once the user is gone, so the same document can no longer be stored.

func S3IAMPrincipal_empty_forms added in v1.8.0

func S3IAMPrincipal_empty_forms(s *S3Conf) error

S3IAMPrincipal_empty_forms covers the Principal shapes that carry no principal at all. They are rejected the same way they were before principals were ARNs — the check is on the element's shape, not on what it names — so this pins that the ARN change left them alone.

func S3IAMPrincipal_pathed_user_arn added in v1.8.0

func S3IAMPrincipal_pathed_user_arn(s *S3Conf) error

S3IAMPrincipal_pathed_user_arn verifies a user's IAM path is part of the ARN naming it: only the full-path form resolves at all, and it matches the user it names.

func S3IAMPrincipal_rejected_forms added in v1.8.0

func S3IAMPrincipal_rejected_forms(s *S3Conf) error

S3IAMPrincipal_rejected_forms covers what PutBucketPolicy refuses to store, all of it with the same MalformedPolicy error real S3 reports. The two that matter most are an access key id — what every other IAM backend names principals by, and what this one no longer accepts — and any wildcard inside an ARN: only a whole Principal of "*" is a wildcard, so there is no pattern form of a principal at all.

func S3IAMPrincipal_role_arn_does_not_match_a_user added in v1.8.0

func S3IAMPrincipal_role_arn_does_not_match_a_user(s *S3Conf) error

S3IAMPrincipal_role_arn_does_not_match_a_user verifies a role ARN names sessions of that role and nothing else: a long-term user is not covered by it, however the role is otherwise configured. The session side — that a role ARN does match every session of the role — needs a real OIDC token and lives in the s3-iam-session group.

func S3IAMPrincipal_user_arn_names_only_that_user added in v1.8.0

func S3IAMPrincipal_user_arn_names_only_that_user(s *S3Conf) error

S3IAMPrincipal_user_arn_names_only_that_user verifies a user ARN grants the user it names and nobody else — neither another user, nor a caller named by the access key that used to be the principal form.

func S3IAMPrincipal_wildcard_grants_everyone added in v1.8.0

func S3IAMPrincipal_wildcard_grants_everyone(s *S3Conf) error

S3IAMPrincipal_wildcard_grants_everyone verifies "*" still names every caller, the one principal form that does not have to resolve to anything.

func S3IAMSession_AssumeRoleWithWebIdentity_github_oidc_live added in v1.8.0

func S3IAMSession_AssumeRoleWithWebIdentity_github_oidc_live(s *S3Conf) error

S3IAMSession_AssumeRoleWithWebIdentity_github_oidc_live exercises AssumeRoleWithWebIdentity against a REAL external OIDC identity provider — GitHub Actions' own OIDC issuer — end-to-end: discovery-document fetch, JWKS fetch, real RS256 signature verification, claims mapping, and session credential issuance. It's the only web-identity test that does this; every other one in this package uses a fake token that never reaches real signature verification.

func S3IAMSession_GetRole_role_last_used_recorded added in v1.8.0

func S3IAMSession_GetRole_role_last_used_recorded(s *S3Conf) error

S3IAMSession_GetRole_role_last_used_recorded exercises role last-used tracking end-to-end: a role assumed with a real GitHub Actions OIDC token, then used — a request authenticated with the session credentials that assume issued — records that use as GetRole's RoleLastUsed.

Like every other session test, it needs a genuine ID token, so it runs only inside the workflow that can mint one and skips itself everywhere else.

func S3IAMSession_bucket_policy_account_delegates added in v1.8.0

func S3IAMSession_bucket_policy_account_delegates(s *S3Conf) error

S3IAMSession_bucket_policy_account_delegates verifies the account-level principal forms delegate rather than grant for a session too: naming the account allows nothing without a role policy, and denies everything under a Deny.

func S3IAMSession_bucket_policy_allows_without_role_policy added in v1.8.0

func S3IAMSession_bucket_policy_allows_without_role_policy(s *S3Conf) error

S3IAMSession_bucket_policy_allows_without_role_policy verifies the bucket policy is independently sufficient for a session too, exactly as it is for a long-term user.

The policy names the session's role ARN, which is how a bucket policy names every session of a role: no wildcard is allowed inside a principal ARN, so the role ARN is the only form that covers sessions the policy was written before. Naming one specific session is S3IAMSession_bucket_policy_names_one_session.

func S3IAMSession_bucket_policy_deny_overrides_role_allow added in v1.8.0

func S3IAMSession_bucket_policy_deny_overrides_role_allow(s *S3Conf) error

S3IAMSession_bucket_policy_deny_overrides_role_allow verifies a bucket-policy Deny beats the role's Allow for a session, and reports the resource-based-policy message.

func S3IAMSession_bucket_policy_names_one_session added in v1.8.0

func S3IAMSession_bucket_policy_names_one_session(s *S3Conf) error

S3IAMSession_bucket_policy_names_one_session verifies the other half: a Principal naming one assumed-role session covers that session and no other session of the same role.

func S3IAMSession_bucket_policy_role_arn_covers_every_session added in v1.8.0

func S3IAMSession_bucket_policy_role_arn_covers_every_session(s *S3Conf) error

S3IAMSession_bucket_policy_role_arn_covers_every_session verifies a Principal naming a role covers sessions of it that did not exist when the policy was written. That is the only way to express "any session of this role": no wildcard is allowed inside a principal ARN.

func S3IAMSession_bucket_policy_session_principal_forms added in v1.8.0

func S3IAMSession_bucket_policy_session_principal_forms(s *S3Conf) error

S3IAMSession_bucket_policy_session_principal_forms covers what PutBucketPolicy makes of the session-shaped principal forms: an assumed-role ARN resolves as long as its role does, whatever session name it carries, and the forms that name no role do not resolve at all.

func S3IAMSession_condition_identity_keys added in v1.8.0

func S3IAMSession_condition_identity_keys(s *S3Conf) error

S3IAMSession_condition_identity_keys verifies the identity-derived condition keys for a session. They do not all describe the same thing: aws:userid carries the role id and the session name, and so pins one session, while aws:PrincipalArn is the assumed *role's* ARN and therefore covers every session of it — a Condition on it can never single one out. A denial message names the session by its assumed-role ARN, which is a different thing from aws:PrincipalArn and deliberately so.

func S3IAMSession_create_bucket_via_role_policy added in v1.8.0

func S3IAMSession_create_bucket_via_role_policy(s *S3Conf) error

S3IAMSession_create_bucket_via_role_policy verifies s3:CreateBucket is grantable to a session by its role policy, and denied without it.

func S3IAMSession_delete_objects_authorizes_each_key added in v1.8.0

func S3IAMSession_delete_objects_authorizes_each_key(s *S3Conf) error

S3IAMSession_delete_objects_authorizes_each_key verifies the per-key authorization of a batch delete applies to a session's role policy too.

func S3IAMSession_deleted_role_denies added in v1.8.0

func S3IAMSession_deleted_role_denies(s *S3Conf) error

S3IAMSession_deleted_role_denies verifies a session outlives its role's deletion as a credential — it still authenticates — but loses every permission the role gave it.

func S3IAMSession_get_caller_identity_matches_s3_principal added in v1.8.0

func S3IAMSession_get_caller_identity_matches_s3_principal(s *S3Conf) error

S3IAMSession_get_caller_identity_matches_s3_principal verifies STS and the S3 data plane agree on who the session is: the ARN GetCallerIdentity reports is the one an S3 denial names.

func S3IAMSession_governance_bypass_via_role_policy added in v1.8.0

func S3IAMSession_governance_bypass_via_role_policy(s *S3Conf) error

S3IAMSession_governance_bypass_via_role_policy verifies a session can be granted s3:BypassGovernanceRetention through its role, and that a session policy withholding it takes it away again.

func S3IAMSession_missing_and_wrong_security_token added in v1.8.0

func S3IAMSession_missing_and_wrong_security_token(s *S3Conf) error

S3IAMSession_missing_and_wrong_security_token verifies the two ways a session credential can be presented wrongly, each with the error real S3 returns for it.

func S3IAMSession_presigned_url_with_session_credentials added in v1.8.0

func S3IAMSession_presigned_url_with_session_credentials(s *S3Conf) error

S3IAMSession_presigned_url_with_session_credentials verifies a presigned URL signed with temporary credentials works: the security token rides in the query string, where it is part of the signed canonical request.

func S3IAMSession_role_last_used_records_s3 added in v1.8.0

func S3IAMSession_role_last_used_records_s3(s *S3Conf) error

S3IAMSession_role_last_used_records_s3 is the same for an assumed-role session: the role's RoleLastUsed reports the S3 request its temporary credentials made, which — unlike an access key — is the only place that use is visible at all.

func S3IAMSession_role_policy_allows added in v1.8.0

func S3IAMSession_role_policy_allows(s *S3Conf) error

S3IAMSession_role_policy_allows verifies a session inherits the assumed role's inline policies, and that they are sufficient on their own with no bucket policy in play.

func S3IAMSession_role_policy_deny_overrides_session_allow added in v1.8.0

func S3IAMSession_role_policy_deny_overrides_session_allow(s *S3Conf) error

S3IAMSession_role_policy_deny_overrides_session_allow verifies the reverse direction: an explicit Deny in the role's policy is not escapable by a permissive session policy.

func S3IAMSession_role_policy_explicit_deny_wins added in v1.8.0

func S3IAMSession_role_policy_explicit_deny_wins(s *S3Conf) error

S3IAMSession_role_policy_explicit_deny_wins verifies an explicit Deny in the role's own policy overrides its Allow, exactly as for a long-term user.

func S3IAMSession_role_policy_resource_scoped added in v1.8.0

func S3IAMSession_role_policy_resource_scoped(s *S3Conf) error

S3IAMSession_role_policy_resource_scoped verifies a role policy's Resource pattern scopes what the session may touch.

func S3IAMSession_role_without_policy_denied added in v1.8.0

func S3IAMSession_role_without_policy_denied(s *S3Conf) error

S3IAMSession_role_without_policy_denied verifies a session with no role policy and no bucket policy is denied, and that the denial names the assumed-role session ARN rather than the temporary access key.

func S3IAMSession_session_policy_cannot_widen_role added in v1.8.0

func S3IAMSession_session_policy_cannot_widen_role(s *S3Conf) error

S3IAMSession_session_policy_cannot_widen_role verifies a session policy can only ever subtract: granting more than the role has does not add anything.

func S3IAMSession_session_policy_explicit_deny_overrides_role added in v1.8.0

func S3IAMSession_session_policy_explicit_deny_overrides_role(s *S3Conf) error

S3IAMSession_session_policy_explicit_deny_overrides_role verifies an explicit Deny in the session policy beats the role's Allow.

func S3IAMSession_session_policy_filters_bucket_policy_grant added in v1.8.0

func S3IAMSession_session_policy_filters_bucket_policy_grant(s *S3Conf) error

S3IAMSession_session_policy_filters_bucket_policy_grant is the property that distinguishes a session policy from an ordinary identity policy: it filters *everything* the session can do, including permissions that came from the bucket policy rather than from the role.

Verified against real AWS with a role carrying no identity policy at all, a bucket policy granting it both s3:GetObject and s3:PutObject, and a session policy allowing only s3:GetObject — the Get succeeds and the Put is denied.

func S3IAMSession_session_policy_narrows_role added in v1.8.0

func S3IAMSession_session_policy_narrows_role(s *S3Conf) error

S3IAMSession_session_policy_narrows_role verifies a session policy restricts what the role would otherwise permit — the primary reason to pass one.

func S3IAMSession_session_policy_without_role_policy_denied added in v1.8.0

func S3IAMSession_session_policy_without_role_policy_denied(s *S3Conf) error

S3IAMSession_session_policy_without_role_policy_denied verifies a session policy alone grants nothing: with the role carrying no policy and no bucket policy in play, there is nothing for it to narrow.

func Server_large_http_header added in v1.4.0

func Server_large_http_header(s *S3Conf) error

func SignedStreamingPayloadTrailer_bad_digest added in v1.1.0

func SignedStreamingPayloadTrailer_bad_digest(s *S3Conf) error

func SignedStreamingPayloadTrailer_incomplete_body added in v1.1.0

func SignedStreamingPayloadTrailer_incomplete_body(s *S3Conf) error

func SignedStreamingPayloadTrailer_invalid_checksum added in v1.1.0

func SignedStreamingPayloadTrailer_invalid_checksum(s *S3Conf) error

func SignedStreamingPayloadTrailer_malformed_trailer added in v1.1.0

func SignedStreamingPayloadTrailer_malformed_trailer(s *S3Conf) error

func SignedStreamingPayloadTrailer_missing_x_amz_trailer_header added in v1.1.0

func SignedStreamingPayloadTrailer_missing_x_amz_trailer_header(s *S3Conf) error

func SignedStreamingPayloadTrailer_success added in v1.1.0

func SignedStreamingPayloadTrailer_success(s *S3Conf) error

func SignedStreamingPayload_decoded_content_length_mismatch added in v1.1.0

func SignedStreamingPayload_decoded_content_length_mismatch(s *S3Conf) error

func SignedStreamingPayload_invalid_chunk_size added in v1.1.0

func SignedStreamingPayload_invalid_chunk_size(s *S3Conf) error

func SignedStreamingPayload_invalid_encoding added in v1.1.0

func SignedStreamingPayload_invalid_encoding(s *S3Conf) error

func TestAbortMultipartUpload

func TestAbortMultipartUpload(ts *TestState)

func TestAccessControl

func TestAccessControl(ts *TestState)

func TestAuthentication

func TestAuthentication(ts *TestState)

func TestCORSMiddleware added in v1.0.17

func TestCORSMiddleware(ts *TestState)

func TestCompleteMultipartUpload

func TestCompleteMultipartUpload(ts *TestState)

func TestCopyObject

func TestCopyObject(ts *TestState)

func TestCreateBucket

func TestCreateBucket(ts *TestState)

func TestCreateMultipartUpload

func TestCreateMultipartUpload(ts *TestState)

func TestDataIntegrityETag added in v1.8.0

func TestDataIntegrityETag(ts *TestState)

func TestDeleteBucket

func TestDeleteBucket(ts *TestState)

func TestDeleteBucketCors added in v1.0.17

func TestDeleteBucketCors(ts *TestState)

func TestDeleteBucketOwnershipControls added in v1.0.3

func TestDeleteBucketOwnershipControls(ts *TestState)

func TestDeleteBucketPolicy

func TestDeleteBucketPolicy(ts *TestState)

func TestDeleteBucketTagging

func TestDeleteBucketTagging(ts *TestState)

func TestDeleteBucketWebsite added in v1.6.0

func TestDeleteBucketWebsite(ts *TestState)

func TestDeleteObject

func TestDeleteObject(ts *TestState)

func TestDeleteObjectTagging

func TestDeleteObjectTagging(ts *TestState)

func TestDeleteObjects

func TestDeleteObjects(ts *TestState)

func TestDownload

func TestDownload(s *S3Conf, files int, objSize int64, bucket, prefix string) error

func TestFullFlow

func TestFullFlow(ts *TestState)

func TestGatewayIAM added in v1.8.0

func TestGatewayIAM(ts *TestState)

func TestGetBucketAcl

func TestGetBucketAcl(ts *TestState)

func TestGetBucketCors added in v1.0.17

func TestGetBucketCors(ts *TestState)

func TestGetBucketLocation added in v1.0.18

func TestGetBucketLocation(ts *TestState)

func TestGetBucketOwnershipControls added in v1.0.3

func TestGetBucketOwnershipControls(ts *TestState)

func TestGetBucketPolicy

func TestGetBucketPolicy(ts *TestState)

func TestGetBucketPolicyStatus added in v1.0.17

func TestGetBucketPolicyStatus(ts *TestState)

func TestGetBucketTagging

func TestGetBucketTagging(ts *TestState)

func TestGetBucketWebsite added in v1.6.0

func TestGetBucketWebsite(ts *TestState)

func TestGetObject

func TestGetObject(ts *TestState)

func TestGetObjectAttributes

func TestGetObjectAttributes(ts *TestState)

func TestGetObjectLegalHold

func TestGetObjectLegalHold(ts *TestState)

func TestGetObjectLockConfiguration

func TestGetObjectLockConfiguration(ts *TestState)

func TestGetObjectRetention

func TestGetObjectRetention(ts *TestState)

func TestGetObjectTagging

func TestGetObjectTagging(ts *TestState)

func TestHeadBucket

func TestHeadBucket(ts *TestState)

func TestHeadObject

func TestHeadObject(ts *TestState)

func TestIAM

func TestIAM(ts *TestState)

func TestIAMAccessControl added in v1.8.0

func TestIAMAccessControl(ts *TestState)

func TestIAMAddClientIDToOpenIDConnectProvider added in v1.8.0

func TestIAMAddClientIDToOpenIDConnectProvider(ts *TestState)

func TestIAMAssumeRoleWithWebIdentity added in v1.8.0

func TestIAMAssumeRoleWithWebIdentity(ts *TestState)

func TestIAMAuth added in v1.8.0

func TestIAMAuth(ts *TestState)

func TestIAMCreateAccessKey added in v1.8.0

func TestIAMCreateAccessKey(ts *TestState)

func TestIAMCreateOpenIDConnectProvider added in v1.8.0

func TestIAMCreateOpenIDConnectProvider(ts *TestState)

func TestIAMCreateRole added in v1.8.0

func TestIAMCreateRole(ts *TestState)

func TestIAMCreateUser added in v1.8.0

func TestIAMCreateUser(ts *TestState)

func TestIAMDeleteAccessKey added in v1.8.0

func TestIAMDeleteAccessKey(ts *TestState)

func TestIAMDeleteOpenIDConnectProvider added in v1.8.0

func TestIAMDeleteOpenIDConnectProvider(ts *TestState)

func TestIAMDeleteRole added in v1.8.0

func TestIAMDeleteRole(ts *TestState)

func TestIAMDeleteRolePolicy added in v1.8.0

func TestIAMDeleteRolePolicy(ts *TestState)

func TestIAMDeleteUser added in v1.8.0

func TestIAMDeleteUser(ts *TestState)

func TestIAMDeleteUserPolicy added in v1.8.0

func TestIAMDeleteUserPolicy(ts *TestState)

func TestIAMGetAccessKeyLastUsed added in v1.8.0

func TestIAMGetAccessKeyLastUsed(ts *TestState)

func TestIAMGetCallerIdentity added in v1.8.0

func TestIAMGetCallerIdentity(ts *TestState)

func TestIAMGetOpenIDConnectProvider added in v1.8.0

func TestIAMGetOpenIDConnectProvider(ts *TestState)

func TestIAMGetRole added in v1.8.0

func TestIAMGetRole(ts *TestState)

func TestIAMGetRolePolicy added in v1.8.0

func TestIAMGetRolePolicy(ts *TestState)

func TestIAMGetUser added in v1.8.0

func TestIAMGetUser(ts *TestState)

func TestIAMGetUserPolicy added in v1.8.0

func TestIAMGetUserPolicy(ts *TestState)

func TestIAMListAccessKeys added in v1.8.0

func TestIAMListAccessKeys(ts *TestState)

func TestIAMListOpenIDConnectProviderTags added in v1.8.0

func TestIAMListOpenIDConnectProviderTags(ts *TestState)

func TestIAMListOpenIDConnectProviders added in v1.8.0

func TestIAMListOpenIDConnectProviders(ts *TestState)

func TestIAMListRolePolicies added in v1.8.0

func TestIAMListRolePolicies(ts *TestState)

func TestIAMListRoleTags added in v1.8.0

func TestIAMListRoleTags(ts *TestState)

func TestIAMListRoles added in v1.8.0

func TestIAMListRoles(ts *TestState)

func TestIAMListUserPolicies added in v1.8.0

func TestIAMListUserPolicies(ts *TestState)

func TestIAMListUserTags added in v1.8.0

func TestIAMListUserTags(ts *TestState)

func TestIAMListUsers added in v1.8.0

func TestIAMListUsers(ts *TestState)

func TestIAMPutRolePolicy added in v1.8.0

func TestIAMPutRolePolicy(ts *TestState)

func TestIAMPutUserPolicy added in v1.8.0

func TestIAMPutUserPolicy(ts *TestState)

func TestIAMQueryAuth added in v1.8.0

func TestIAMQueryAuth(ts *TestState)

func TestIAMRemoveClientIDFromOpenIDConnectProvider added in v1.8.0

func TestIAMRemoveClientIDFromOpenIDConnectProvider(ts *TestState)

func TestIAMTagOpenIDConnectProvider added in v1.8.0

func TestIAMTagOpenIDConnectProvider(ts *TestState)

func TestIAMTagRole added in v1.8.0

func TestIAMTagRole(ts *TestState)

func TestIAMTagUser added in v1.8.0

func TestIAMTagUser(ts *TestState)

func TestIAMUntagOpenIDConnectProvider added in v1.8.0

func TestIAMUntagOpenIDConnectProvider(ts *TestState)

func TestIAMUntagRole added in v1.8.0

func TestIAMUntagRole(ts *TestState)

func TestIAMUntagUser added in v1.8.0

func TestIAMUntagUser(ts *TestState)

func TestIAMUpdateAccessKey added in v1.8.0

func TestIAMUpdateAccessKey(ts *TestState)

func TestIAMUpdateAssumeRolePolicy added in v1.8.0

func TestIAMUpdateAssumeRolePolicy(ts *TestState)

func TestIAMUpdateOpenIDConnectProviderThumbprint added in v1.8.0

func TestIAMUpdateOpenIDConnectProviderThumbprint(ts *TestState)

func TestIAMUpdateUser added in v1.8.0

func TestIAMUpdateUser(ts *TestState)

func TestListBuckets

func TestListBuckets(ts *TestState)

func TestListMultipartUploads

func TestListMultipartUploads(ts *TestState)

func TestListObjectVersions_VD added in v1.0.8

func TestListObjectVersions_VD(ts *TestState)

VD stands for Versioning Disabled

func TestListObjects

func TestListObjects(ts *TestState)

func TestListObjectsV2

func TestListObjectsV2(ts *TestState)

func TestListParts

func TestListParts(ts *TestState)

func TestNoAclMode added in v1.3.0

func TestNoAclMode(ts *TestState)

func TestNotImplementedActions added in v1.0.17

func TestNotImplementedActions(ts *TestState)

func TestPosix

func TestPosix(ts *TestState)

func TestPostObject added in v1.4.0

func TestPostObject(ts *TestState)

func TestPreflightOPTIONSEndpoint added in v1.0.17

func TestPreflightOPTIONSEndpoint(ts *TestState)

func TestPresignedAuthentication

func TestPresignedAuthentication(ts *TestState)

func TestPublicBuckets added in v1.0.15

func TestPublicBuckets(ts *TestState)

func TestPutBucketAcl

func TestPutBucketAcl(ts *TestState)

func TestPutBucketCors added in v1.0.17

func TestPutBucketCors(ts *TestState)

func TestPutBucketOwnershipControls added in v1.0.3

func TestPutBucketOwnershipControls(ts *TestState)

func TestPutBucketPolicy

func TestPutBucketPolicy(ts *TestState)

func TestPutBucketTagging

func TestPutBucketTagging(ts *TestState)

func TestPutBucketWebsite added in v1.6.0

func TestPutBucketWebsite(ts *TestState)

func TestPutObject

func TestPutObject(ts *TestState)

func TestPutObjectLegalHold

func TestPutObjectLegalHold(ts *TestState)

func TestPutObjectLockConfiguration

func TestPutObjectLockConfiguration(ts *TestState)

func TestPutObjectRetention

func TestPutObjectRetention(ts *TestState)

func TestPutObjectTagging

func TestPutObjectTagging(ts *TestState)

func TestReqPerSec

func TestReqPerSec(s *S3Conf, totalReqs int, bucket string) error

func TestRouter added in v1.0.17

func TestRouter(ts *TestState)

func TestS3IAMAccessControl added in v1.8.0

func TestS3IAMAccessControl(ts *TestState)

func TestS3IAMSessionAccessControl added in v1.8.0

func TestS3IAMSessionAccessControl(ts *TestState)

TestS3IAMSessionAccessControl is the one group the OIDC workflow runs, so it carries every test that needs a real, signed ID token — including the IAM/STS-endpoint ones below, which are not S3 access-control tests but have the same GitHub-OIDC prerequisite. Every test here skips itself outside a job that can mint a token.

func TestScoutfs added in v1.0.14

func TestScoutfs(ts *TestState)

func TestServer added in v1.4.0

func TestServer(ts *TestState)

func TestSignedStreaminPayload added in v1.1.0

func TestSignedStreaminPayload(ts *TestState)

func TestSignedStreaminPayloadTrailer added in v1.1.0

func TestSignedStreaminPayloadTrailer(ts *TestState)

func TestUnsignedStreaminPayloadTrailer added in v1.0.20

func TestUnsignedStreaminPayloadTrailer(ts *TestState)

func TestUpload

func TestUpload(s *S3Conf, files int, objSize int64, bucket, prefix string) error

func TestUploadPart

func TestUploadPart(ts *TestState)

func TestUploadPartCopy

func TestUploadPartCopy(ts *TestState)

func TestVersioning added in v1.0.8

func TestVersioning(ts *TestState)

func TestVersioningDisabled added in v1.0.8

func TestVersioningDisabled(ts *TestState)

func TestWORMProtection

func TestWORMProtection(ts *TestState)

func TestWebsiteHosting added in v1.6.0

func TestWebsiteHosting(ts *TestState)

func UnsignedStreaminPayloadTrailer_malformed_trailer added in v1.0.20

func UnsignedStreaminPayloadTrailer_malformed_trailer(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_UploadPart_no_trailer_composite_checksum added in v1.0.20

func UnsignedStreamingPayloadTrailer_UploadPart_no_trailer_composite_checksum(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_UploadPart_no_trailer_full_object added in v1.0.20

func UnsignedStreamingPayloadTrailer_UploadPart_no_trailer_full_object(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_UploadPart_success_with_trailer added in v1.0.20

func UnsignedStreamingPayloadTrailer_UploadPart_success_with_trailer(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_UploadPart_trailer_and_mp_algo_mismatch added in v1.0.20

func UnsignedStreamingPayloadTrailer_UploadPart_trailer_and_mp_algo_mismatch(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_content_length_payload_size_mismatch added in v1.0.20

func UnsignedStreamingPayloadTrailer_content_length_payload_size_mismatch(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_incomplete_body added in v1.0.20

func UnsignedStreamingPayloadTrailer_incomplete_body(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_incorrect_trailing_checksum added in v1.0.20

func UnsignedStreamingPayloadTrailer_incorrect_trailing_checksum(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_invalid_chunk_size added in v1.0.20

func UnsignedStreamingPayloadTrailer_invalid_chunk_size(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_invalid_trailing_checksum added in v1.0.20

func UnsignedStreamingPayloadTrailer_invalid_trailing_checksum(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_missing_invalid_dec_content_length added in v1.0.20

func UnsignedStreamingPayloadTrailer_missing_invalid_dec_content_length(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_multiple_checksum_headers added in v1.0.20

func UnsignedStreamingPayloadTrailer_multiple_checksum_headers(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_no_payload_trailer_only_headers added in v1.0.20

func UnsignedStreamingPayloadTrailer_no_payload_trailer_only_headers(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_no_trailer_should_calculate_crc64nvme added in v1.0.20

func UnsignedStreamingPayloadTrailer_no_trailer_should_calculate_crc64nvme(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_not_allowed added in v1.0.20

func UnsignedStreamingPayloadTrailer_not_allowed(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_sdk_algo_and_trailer_mismatch added in v1.0.20

func UnsignedStreamingPayloadTrailer_sdk_algo_and_trailer_mismatch(s *S3Conf) error

func UnsignedStreamingPayloadTrailer_success_both_sdk_algo_and_trailer added in v1.0.20

func UnsignedStreamingPayloadTrailer_success_both_sdk_algo_and_trailer(s *S3Conf) error

func UploadPartCopy_by_range_invalid_ranges added in v1.0.11

func UploadPartCopy_by_range_invalid_ranges(s *S3Conf) error

func UploadPartCopy_by_range_success

func UploadPartCopy_by_range_success(s *S3Conf) error

func UploadPartCopy_conditional_reads added in v1.0.18

func UploadPartCopy_conditional_reads(s *S3Conf) error

func UploadPartCopy_data_integrity_etag added in v1.8.0

func UploadPartCopy_data_integrity_etag(s *S3Conf) error

func UploadPartCopy_exceeding_copy_source_range added in v1.0.11

func UploadPartCopy_exceeding_copy_source_range(s *S3Conf) error

func UploadPartCopy_greater_range_than_obj_size

func UploadPartCopy_greater_range_than_obj_size(s *S3Conf) error

func UploadPartCopy_incorrect_object_key

func UploadPartCopy_incorrect_object_key(s *S3Conf) error

func UploadPartCopy_incorrect_source_bucket_expected_owner added in v1.4.0

func UploadPartCopy_incorrect_source_bucket_expected_owner(s *S3Conf) error

func UploadPartCopy_incorrect_uploadId

func UploadPartCopy_incorrect_uploadId(s *S3Conf) error

func UploadPartCopy_invalid_copy_source

func UploadPartCopy_invalid_copy_source(s *S3Conf) error

func UploadPartCopy_invalid_part_number

func UploadPartCopy_invalid_part_number(s *S3Conf) error

func UploadPartCopy_non_existing_bucket

func UploadPartCopy_non_existing_bucket(s *S3Conf) error

func UploadPartCopy_non_existing_source_bucket

func UploadPartCopy_non_existing_source_bucket(s *S3Conf) error

func UploadPartCopy_non_existing_source_object_key

func UploadPartCopy_non_existing_source_object_key(s *S3Conf) error

func UploadPartCopy_should_calculate_the_checksum added in v1.0.11

func UploadPartCopy_should_calculate_the_checksum(s *S3Conf) error

func UploadPartCopy_should_copy_the_checksum added in v1.0.11

func UploadPartCopy_should_copy_the_checksum(s *S3Conf) error

func UploadPartCopy_should_not_copy_the_checksum added in v1.0.11

func UploadPartCopy_should_not_copy_the_checksum(s *S3Conf) error

func UploadPartCopy_success

func UploadPartCopy_success(s *S3Conf) error

func UploadPart_checksum_algorithm_mistmatch_on_initialization added in v1.0.11

func UploadPart_checksum_algorithm_mistmatch_on_initialization(s *S3Conf) error

func UploadPart_checksum_algorithm_mistmatch_on_initialization_with_value added in v1.0.11

func UploadPart_checksum_algorithm_mistmatch_on_initialization_with_value(s *S3Conf) error

func UploadPart_checksum_header_and_algo_mismatch added in v1.0.19

func UploadPart_checksum_header_and_algo_mismatch(s *S3Conf) error

func UploadPart_data_integrity_etag added in v1.8.0

func UploadPart_data_integrity_etag(s *S3Conf) error

func UploadPart_etag_quoting_consistency added in v1.7.0

func UploadPart_etag_quoting_consistency(s *S3Conf) error

UploadPart_etag_quoting_consistency verifies that multipart part ETags are returned as quoted strings and stay consistent across the UploadPart response, ListParts, and CompleteMultipartUpload. This is the S3 contract (ETags are quoted) and matches the posix backend's GenerateEtag convention; it is the regression guard for the Azure backend, which previously returned raw, unquoted block ids.

func UploadPart_incorrect_checksums added in v1.0.11

func UploadPart_incorrect_checksums(s *S3Conf) error

func UploadPart_invalid_checksum_header added in v1.0.11

func UploadPart_invalid_checksum_header(s *S3Conf) error

func UploadPart_invalid_part_number

func UploadPart_invalid_part_number(s *S3Conf) error

func UploadPart_multiple_checksum_headers added in v1.0.11

func UploadPart_multiple_checksum_headers(s *S3Conf) error

func UploadPart_no_checksum_with_composite_checksum_type added in v1.0.17

func UploadPart_no_checksum_with_composite_checksum_type(s *S3Conf) error

func UploadPart_no_checksum_with_full_object_checksum_type added in v1.0.17

func UploadPart_no_checksum_with_full_object_checksum_type(s *S3Conf) error

func UploadPart_non_existing_bucket

func UploadPart_non_existing_bucket(s *S3Conf) error

func UploadPart_non_existing_key

func UploadPart_non_existing_key(s *S3Conf) error

func UploadPart_non_existing_mp_upload

func UploadPart_non_existing_mp_upload(s *S3Conf) error

func UploadPart_success

func UploadPart_success(s *S3Conf) error

func UploadPart_with_checksums_success added in v1.0.11

func UploadPart_with_checksums_success(s *S3Conf) error

func VersioningDisabled_GetBucketVersioning_no_such_bucket added in v1.8.0

func VersioningDisabled_GetBucketVersioning_no_such_bucket(s *S3Conf) error

func VersioningDisabled_GetBucketVersioning_not_configured added in v1.0.8

func VersioningDisabled_GetBucketVersioning_not_configured(s *S3Conf) error

func VersioningDisabled_PutBucketVersioning_not_configured added in v1.0.8

func VersioningDisabled_PutBucketVersioning_not_configured(s *S3Conf) error

func Versioning_AccessControl_DeleteObject_policy added in v1.0.19

func Versioning_AccessControl_DeleteObject_policy(s *S3Conf) error

func Versioning_AccessControl_GetObjectAttributes_policy added in v1.0.19

func Versioning_AccessControl_GetObjectAttributes_policy(s *S3Conf) error

func Versioning_AccessControl_GetObjectVersion added in v1.0.17

func Versioning_AccessControl_GetObjectVersion(s *S3Conf) error

func Versioning_AccessControl_HeadObjectVersion added in v1.0.17

func Versioning_AccessControl_HeadObjectVersion(s *S3Conf) error

func Versioning_AccessControl_object_tagging_policy added in v1.0.19

func Versioning_AccessControl_object_tagging_policy(s *S3Conf) error

func Versioning_CopyObject_encoded_versionid_separator_invalid_versionId added in v1.7.0

func Versioning_CopyObject_encoded_versionid_separator_invalid_versionId(s *S3Conf) error

func Versioning_CopyObject_from_an_object_version added in v1.0.8

func Versioning_CopyObject_from_an_object_version(s *S3Conf) error

func Versioning_CopyObject_invalid_versionId added in v1.0.19

func Versioning_CopyObject_invalid_versionId(s *S3Conf) error

func Versioning_CopyObject_non_existing_version_id added in v1.0.8

func Versioning_CopyObject_non_existing_version_id(s *S3Conf) error

func Versioning_CopyObject_special_chars added in v1.0.8

func Versioning_CopyObject_special_chars(s *S3Conf) error

func Versioning_CopyObject_success added in v1.0.8

func Versioning_CopyObject_success(s *S3Conf) error

func Versioning_DeleteBucket_not_empty added in v1.0.8

func Versioning_DeleteBucket_not_empty(s *S3Conf) error

func Versioning_DeleteObjectTagging_invalid_versionId added in v1.0.19

func Versioning_DeleteObjectTagging_invalid_versionId(s *S3Conf) error

func Versioning_DeleteObjectTagging_non_existing_object_version added in v1.0.19

func Versioning_DeleteObjectTagging_non_existing_object_version(s *S3Conf) error

func Versioning_DeleteObject_delete_a_delete_marker added in v1.0.8

func Versioning_DeleteObject_delete_a_delete_marker(s *S3Conf) error

func Versioning_DeleteObject_delete_object_version added in v1.0.8

func Versioning_DeleteObject_delete_object_version(s *S3Conf) error

func Versioning_DeleteObject_invalid_versionId added in v1.0.19

func Versioning_DeleteObject_invalid_versionId(s *S3Conf) error

func Versioning_DeleteObject_nested_dir_object added in v1.0.11

func Versioning_DeleteObject_nested_dir_object(s *S3Conf) error

func Versioning_DeleteObject_non_existing_object added in v1.0.8

func Versioning_DeleteObject_non_existing_object(s *S3Conf) error

func Versioning_DeleteObject_non_existing_objects added in v1.2.0

func Versioning_DeleteObject_non_existing_objects(s *S3Conf) error

func Versioning_DeleteObject_suspended added in v1.0.8

func Versioning_DeleteObject_suspended(s *S3Conf) error

func Versioning_DeleteObjects_delete_deleteMarkers added in v1.0.8

func Versioning_DeleteObjects_delete_deleteMarkers(s *S3Conf) error

func Versioning_DeleteObjects_success added in v1.0.8

func Versioning_DeleteObjects_success(s *S3Conf) error

func Versioning_Delete_null_versionId_object added in v1.0.8

func Versioning_Delete_null_versionId_object(s *S3Conf) error

func Versioning_Enable_object_lock added in v1.0.8

func Versioning_Enable_object_lock(s *S3Conf) error

func Versioning_GetObjectAttributes_delete_marker added in v1.0.9

func Versioning_GetObjectAttributes_delete_marker(s *S3Conf) error

func Versioning_GetObjectAttributes_invalid_versionId added in v1.0.19

func Versioning_GetObjectAttributes_invalid_versionId(s *S3Conf) error

func Versioning_GetObjectAttributes_object_version added in v1.0.9

func Versioning_GetObjectAttributes_object_version(s *S3Conf) error

func Versioning_GetObjectLegalHold_invalid_versionId added in v1.0.8

func Versioning_GetObjectLegalHold_invalid_versionId(s *S3Conf) error

func Versioning_GetObjectLegalHold_non_existing_object_version added in v1.0.19

func Versioning_GetObjectLegalHold_non_existing_object_version(s *S3Conf) error

func Versioning_GetObjectRetention_invalid_versionId added in v1.0.8

func Versioning_GetObjectRetention_invalid_versionId(s *S3Conf) error

func Versioning_GetObjectRetention_non_existing_object_version added in v1.0.19

func Versioning_GetObjectRetention_non_existing_object_version(s *S3Conf) error

func Versioning_GetObjectTagging_invalid_versionId added in v1.0.19

func Versioning_GetObjectTagging_invalid_versionId(s *S3Conf) error

func Versioning_GetObjectTagging_non_existing_object_version added in v1.0.19

func Versioning_GetObjectTagging_non_existing_object_version(s *S3Conf) error

func Versioning_GetObject_delete_marker added in v1.0.8

func Versioning_GetObject_delete_marker(s *S3Conf) error

func Versioning_GetObject_delete_marker_without_versionId added in v1.0.8

func Versioning_GetObject_delete_marker_without_versionId(s *S3Conf) error

func Versioning_GetObject_invalid_versionId added in v1.0.8

func Versioning_GetObject_invalid_versionId(s *S3Conf) error

func Versioning_GetObject_non_existing_object_version added in v1.0.19

func Versioning_GetObject_non_existing_object_version(s *S3Conf) error

func Versioning_GetObject_null_versionId_obj added in v1.0.8

func Versioning_GetObject_null_versionId_obj(s *S3Conf) error

func Versioning_GetObject_success added in v1.0.8

func Versioning_GetObject_success(s *S3Conf) error

func Versioning_HeadObject_delete_marker added in v1.0.8

func Versioning_HeadObject_delete_marker(s *S3Conf) error

func Versioning_HeadObject_invalid_parent added in v1.0.9

func Versioning_HeadObject_invalid_parent(s *S3Conf) error

func Versioning_HeadObject_invalid_versionId added in v1.0.8

func Versioning_HeadObject_invalid_versionId(s *S3Conf) error

func Versioning_HeadObject_non_existing_object_version added in v1.0.19

func Versioning_HeadObject_non_existing_object_version(s *S3Conf) error

func Versioning_HeadObject_success added in v1.0.8

func Versioning_HeadObject_success(s *S3Conf) error

func Versioning_HeadObject_without_versionId added in v1.0.9

func Versioning_HeadObject_without_versionId(s *S3Conf) error

func Versioning_Multipart_Upload_overwrite_an_object added in v1.0.8

func Versioning_Multipart_Upload_overwrite_an_object(s *S3Conf) error

func Versioning_Multipart_Upload_success added in v1.0.8

func Versioning_Multipart_Upload_success(s *S3Conf) error

func Versioning_PutGetDeleteObjectTagging_delete_marker added in v1.2.0

func Versioning_PutGetDeleteObjectTagging_delete_marker(s *S3Conf) error

func Versioning_PutGetDeleteObjectTagging_success added in v1.0.19

func Versioning_PutGetDeleteObjectTagging_success(s *S3Conf) error

func Versioning_PutGetObjectLegalHold_delete_marker added in v1.2.0

func Versioning_PutGetObjectLegalHold_delete_marker(s *S3Conf) error

func Versioning_PutObjectLegalHold_invalid_versionId added in v1.0.8

func Versioning_PutObjectLegalHold_invalid_versionId(s *S3Conf) error

func Versioning_PutObjectLegalHold_non_existing_object_version added in v1.0.19

func Versioning_PutObjectLegalHold_non_existing_object_version(s *S3Conf) error

func Versioning_PutObjectRetention_invalid_versionId added in v1.0.8

func Versioning_PutObjectRetention_invalid_versionId(s *S3Conf) error

func Versioning_PutObjectRetention_non_existing_object_version added in v1.0.19

func Versioning_PutObjectRetention_non_existing_object_version(s *S3Conf) error

func Versioning_PutObjectTagging_invalid_versionId added in v1.0.19

func Versioning_PutObjectTagging_invalid_versionId(s *S3Conf) error

func Versioning_PutObjectTagging_non_existing_object_version added in v1.0.19

func Versioning_PutObjectTagging_non_existing_object_version(s *S3Conf) error

func Versioning_PutObject_null_versionId_obj added in v1.0.8

func Versioning_PutObject_null_versionId_obj(s *S3Conf) error

func Versioning_PutObject_overwrite_null_versionId_obj added in v1.0.8

func Versioning_PutObject_overwrite_null_versionId_obj(s *S3Conf) error

func Versioning_PutObject_success added in v1.0.8

func Versioning_PutObject_success(s *S3Conf) error

func Versioning_PutObject_suspended_null_versionId_obj added in v1.0.8

func Versioning_PutObject_suspended_null_versionId_obj(s *S3Conf) error

func Versioning_Put_GetObjectLegalHold_success added in v1.0.8

func Versioning_Put_GetObjectLegalHold_success(s *S3Conf) error

func Versioning_Put_GetObjectRetention_delete_marker added in v1.2.0

func Versioning_Put_GetObjectRetention_delete_marker(s *S3Conf) error

func Versioning_Put_GetObjectRetention_success added in v1.0.8

func Versioning_Put_GetObjectRetention_success(s *S3Conf) error

func Versioning_UploadPartCopy_encoded_versionid_separator_invalid_versionId added in v1.7.0

func Versioning_UploadPartCopy_encoded_versionid_separator_invalid_versionId(s *S3Conf) error

func Versioning_UploadPartCopy_from_an_object_version added in v1.0.8

func Versioning_UploadPartCopy_from_an_object_version(s *S3Conf) error

func Versioning_UploadPartCopy_invalid_versionId added in v1.0.19

func Versioning_UploadPartCopy_invalid_versionId(s *S3Conf) error

func Versioning_UploadPartCopy_non_existing_versionId added in v1.0.8

func Versioning_UploadPartCopy_non_existing_versionId(s *S3Conf) error

func Versioning_WORM_CompleteMultipartUpload_overwrite_locked_object added in v1.0.19

func Versioning_WORM_CompleteMultipartUpload_overwrite_locked_object(s *S3Conf) error

func Versioning_WORM_CopyObject_overwrite_locked_object added in v1.0.19

func Versioning_WORM_CopyObject_overwrite_locked_object(s *S3Conf) error

func Versioning_WORM_PutObject_overwrite_locked_object added in v1.0.19

func Versioning_WORM_PutObject_overwrite_locked_object(s *S3Conf) error

func Versioning_WORM_delete_marker_locked_object_compliance_retention added in v1.1.0

func Versioning_WORM_delete_marker_locked_object_compliance_retention(s *S3Conf) error

func Versioning_WORM_delete_marker_locked_object_governance_retention added in v1.1.0

func Versioning_WORM_delete_marker_locked_object_governance_retention(s *S3Conf) error
func Versioning_WORM_delete_marker_locked_object_legal_hold(s *S3Conf) error

func Versioning_WORM_obj_version_locked_with_compliance_retention added in v1.0.8

func Versioning_WORM_obj_version_locked_with_compliance_retention(s *S3Conf) error

func Versioning_WORM_obj_version_locked_with_governance_retention added in v1.0.8

func Versioning_WORM_obj_version_locked_with_governance_retention(s *S3Conf) error
func Versioning_WORM_obj_version_locked_with_legal_hold(s *S3Conf) error

func Versioning_WORM_remove_delete_marker_under_bucket_default_retention added in v1.2.0

func Versioning_WORM_remove_delete_marker_under_bucket_default_retention(s *S3Conf) error

func Versioning_concurrent_upload_object added in v1.0.8

func Versioning_concurrent_upload_object(s *S3Conf) error

func Versioning_object_lock_not_enabled_on_bucket_creation added in v1.0.19

func Versioning_object_lock_not_enabled_on_bucket_creation(s *S3Conf) error

func Versioning_status_switch_to_suspended_with_object_lock added in v1.0.8

func Versioning_status_switch_to_suspended_with_object_lock(s *S3Conf) error

func WORMProtection_bucket_object_lock_configuration_compliance_mode

func WORMProtection_bucket_object_lock_configuration_compliance_mode(s *S3Conf) error

func WORMProtection_bucket_object_lock_configuration_governance_mode

func WORMProtection_bucket_object_lock_configuration_governance_mode(s *S3Conf) error

func WORMProtection_bucket_object_lock_governance_bypass_delete

func WORMProtection_bucket_object_lock_governance_bypass_delete(s *S3Conf) error

func WORMProtection_bucket_object_lock_governance_bypass_delete_multiple

func WORMProtection_bucket_object_lock_governance_bypass_delete_multiple(s *S3Conf) error

func WORMProtection_delete_objects_locked_object_partial_success added in v1.8.0

func WORMProtection_delete_objects_locked_object_partial_success(s *S3Conf) error
func WORMProtection_object_lock_legal_hold_locked(s *S3Conf) error

func WORMProtection_object_lock_retention_compliance_locked

func WORMProtection_object_lock_retention_compliance_locked(s *S3Conf) error

func WORMProtection_object_lock_retention_governance_bypass_delete

func WORMProtection_object_lock_retention_governance_bypass_delete(s *S3Conf) error

func WORMProtection_object_lock_retention_governance_bypass_delete_mul

func WORMProtection_object_lock_retention_governance_bypass_delete_mul(s *S3Conf) error

func WORMProtection_object_lock_retention_governance_bypass_overwrite_copy added in v1.0.19

func WORMProtection_object_lock_retention_governance_bypass_overwrite_copy(s *S3Conf) error

func WORMProtection_object_lock_retention_governance_bypass_overwrite_mp added in v1.0.19

func WORMProtection_object_lock_retention_governance_bypass_overwrite_mp(s *S3Conf) error

func WORMProtection_object_lock_retention_governance_bypass_overwrite_put added in v1.0.19

func WORMProtection_object_lock_retention_governance_bypass_overwrite_put(s *S3Conf) error

func WORMProtection_object_lock_retention_governance_locked

func WORMProtection_object_lock_retention_governance_locked(s *S3Conf) error

func WORMProtection_root_bypass_governance_retention_delete_object added in v1.0.6

func WORMProtection_root_bypass_governance_retention_delete_object(s *S3Conf) error

func WORMProtection_unable_to_overwrite_locked_object_copy added in v1.0.19

func WORMProtection_unable_to_overwrite_locked_object_copy(s *S3Conf) error

func WORMProtection_unable_to_overwrite_locked_object_mp added in v1.0.19

func WORMProtection_unable_to_overwrite_locked_object_mp(s *S3Conf) error

func WORMProtection_unable_to_overwrite_locked_object_put added in v1.0.19

func WORMProtection_unable_to_overwrite_locked_object_put(s *S3Conf) error

func WebsiteHosting_error_document_not_found added in v1.6.0

func WebsiteHosting_error_document_not_found(s *S3Conf) error

WebsiteHosting_error_document_not_found tests that a missing configured error document returns the complete website NoSuchKey error response.

func WebsiteHosting_error_document_served added in v1.6.0

func WebsiteHosting_error_document_served(s *S3Conf) error

WebsiteHosting_error_document_served tests that a missing website object serves the configured error document while preserving the original 404 status.

func WebsiteHosting_get_cors_headers added in v1.6.0

func WebsiteHosting_get_cors_headers(s *S3Conf) error

func WebsiteHosting_head_cors_headers added in v1.6.0

func WebsiteHosting_head_cors_headers(s *S3Conf) error

func WebsiteHosting_index_document added in v1.6.0

func WebsiteHosting_index_document(s *S3Conf) error

WebsiteHosting_index_document tests root and directory-style index document resolution through the website endpoint.

func WebsiteHosting_index_error_document_and_routing_rules added in v1.6.0

func WebsiteHosting_index_error_document_and_routing_rules(s *S3Conf) error

WebsiteHosting_index_error_document_and_routing_rules covers a combined website configuration with index, error document, pre-rule, and post-rule.

func WebsiteHosting_no_bucket_in_request_location added in v1.6.0

func WebsiteHosting_no_bucket_in_request_location(s *S3Conf) error

WebsiteHosting_no_bucket_in_request_location tests that website endpoint requests that cannot resolve a bucket still include a useful Location header.

func WebsiteHosting_no_error_document added in v1.6.0

func WebsiteHosting_no_error_document(s *S3Conf) error

WebsiteHosting_no_error_document tests that a website bucket without an error document returns the complete website NoSuchKey error response.

func WebsiteHosting_object_redirect_location added in v1.6.0

func WebsiteHosting_object_redirect_location(s *S3Conf) error

WebsiteHosting_object_redirect_location tests that an object-level website redirect emits a 301 with the stored Location after object fetch succeeds.

func WebsiteHosting_options_preflight_access_forbidden added in v1.6.0

func WebsiteHosting_options_preflight_access_forbidden(s *S3Conf) error

func WebsiteHosting_options_preflight_access_granted added in v1.6.0

func WebsiteHosting_options_preflight_access_granted(s *S3Conf) error

func WebsiteHosting_options_preflight_missing_origin added in v1.6.0

func WebsiteHosting_options_preflight_missing_origin(s *S3Conf) error

func WebsiteHosting_private_object_and_error_document added in v1.6.0

func WebsiteHosting_private_object_and_error_document(s *S3Conf) error

WebsiteHosting_private_object_and_error_document tests that website hosting does not serve either the requested object or the configured error document unless public object access has been granted.

func WebsiteHosting_redirect_all_requests added in v1.6.0

func WebsiteHosting_redirect_all_requests(s *S3Conf) error

WebsiteHosting_redirect_all_requests tests RedirectAllRequestsTo, including path and query preservation, without requiring public object access.

func WebsiteHosting_routing_rule_no_match_serves_error_document added in v1.6.0

func WebsiteHosting_routing_rule_no_match_serves_error_document(s *S3Conf) error

WebsiteHosting_routing_rule_no_match_serves_error_document tests that routing rules which do not match fall back to the configured error document.

func WebsiteHosting_routing_rule_post_request_redirect added in v1.6.0

func WebsiteHosting_routing_rule_post_request_redirect(s *S3Conf) error

WebsiteHosting_routing_rule_post_request_redirect tests that a post-request routing rule matching a 404 issues a redirect instead of serving an error.

func WebsiteHosting_routing_rule_pre_request_redirect added in v1.6.0

func WebsiteHosting_routing_rule_pre_request_redirect(s *S3Conf) error

WebsiteHosting_routing_rule_pre_request_redirect tests that a key-prefix routing rule redirects before public access or object existence is checked.

func WebsiteHosting_routing_rule_prefix_and_error_redirect added in v1.6.0

func WebsiteHosting_routing_rule_prefix_and_error_redirect(s *S3Conf) error

WebsiteHosting_routing_rule_prefix_and_error_redirect tests a routing rule with both KeyPrefixEquals and HttpErrorCodeReturnedEquals conditions.

func WebsiteHosting_url_encoded_object_key added in v1.8.0

func WebsiteHosting_url_encoded_object_key(s *S3Conf) error

WebsiteHosting_url_encoded_object_key tests that object keys containing characters requiring percent-encoding are served, and that a key holding a literal percent sign is not decoded twice.

Types

type APIErrorResponse added in v1.5.0

type APIErrorResponse struct {
	XMLName                     xml.Name `xml:"Error"`
	Code                        string
	Message                     string
	ArgumentName                string `xml:"ArgumentName,omitempty"`
	ArgumentValue               string `xml:"ArgumentValue,omitempty"`
	Method                      string `xml:"Method,omitempty"`
	Resource                    string `xml:"Resource,omitempty"`
	ResourceType                s3err.ResourceType
	CalculatedDigest            string                     `xml:"CalculatedDigest,omitempty"`
	ExpectedDigest              string                     `xml:"ExpectedDigest,omitempty"`
	BucketName                  string                     `xml:"BucketName,omitempty"`
	ClientComputedContentSHA256 string                     `xml:"ClientComputedContentSHA256,omitempty"`
	S3ComputedContentSHA256     string                     `xml:"S3ComputedContentSHA256,omitempty"`
	ProposedSize                int64                      `xml:"ProposedSize,omitempty"`
	MaxSizeAllowed              int64                      `xml:"MaxSizeAllowed,omitempty"`
	MinSizeAllowed              int64                      `xml:"MinSizeAllowed,omitempty"`
	ServerTime                  string                     `xml:"ServerTime,omitempty"`
	XAmzExpires                 int                        `xml:"X-Amz-Expires,omitempty"`
	Expires                     string                     `xml:"Expires,omitempty"`
	AWSAccessKeyId              string                     `xml:"AWSAccessKeyId,omitempty"`
	Chunk                       int                        `xml:"Chunk,omitempty"`
	BadChunkSize                int64                      `xml:"BadChunkSize,omitempty"`
	ContentMD5                  string                     `xml:"Content-MD5,omitempty"`
	LocationConstraint          string                     `xml:"LocationConstraint,omitempty"`
	UploadId                    string                     `xml:"UploadId,omitempty"`
	PartNumber                  int32                      `xml:"PartNumber,omitempty"`
	ETag                        string                     `xml:"ETag,omitempty"`
	ActualPartCount             int32                      `xml:"ActualPartCount,omitempty"`
	PartNumberRequested         int32                      `xml:"PartNumberRequested,omitempty"`
	RangeRequested              string                     `xml:"RangeRequested,omitempty"`
	ActualObjectSize            int64                      `xml:"ActualObjectSize,omitempty"`
	TagKey                      string                     `xml:"TagKey,omitempty"`
	TagValue                    string                     `xml:"TagValue,omitempty"`
	Size                        int64                      `xml:"Size,omitempty"`
	Header                      string                     `xml:"Header,omitempty"`
	AdditionalMessage           s3err.NmpAdditionalMessage `xml:"additionalMessage,omitempty"`
	Key                         string                     `xml:"Key,omitempty"`
	VersionId                   string                     `xml:"VersionId,omitempty"`
	Condition                   s3err.Condition            `xml:"Condition,omitempty"`
	RequestTime                 string                     `xml:"RequestTime,omitempty"`
	MaxAllowedSkewMilliseconds  int                        `xml:"MaxAllowedSkewMilliseconds,omitempty"`
	Region                      string                     `xml:"Region,omitempty"`
	StringToSign                string                     `xml:"StringToSign,omitempty"`
	SignatureProvided           string                     `xml:"SignatureProvided,omitempty"`
	StringToSignBytes           string                     `xml:"StringToSignBytes,omitempty"`
	CanonicalRequest            string                     `xml:"CanonicalRequest,omitempty"`
	CanonicalRequestBytes       string                     `xml:"CanonicalRequestBytes,omitempty"`
	HeadersNotSigned            string                     `xml:"HeadersNotSigned,omitempty"`
	RequestID                   string                     `xml:"RequestId,omitempty"`
	HostID                      string                     `xml:"HostId,omitempty"`
}

type IAMErrorResponse added in v1.8.0

type IAMErrorResponse struct {
	XMLName xml.Name `xml:"ErrorResponse"`
	Error   struct {
		Type    string
		Code    string
		Message string
	}
	RequestID string `xml:"RequestId"`
}

type IntTest added in v1.0.19

type IntTest func(s3 *S3Conf) error

type IntTests

type IntTests map[string]IntTest

func GetIntTests

func GetIntTests() IntTests

type NW

type NW struct{}

func NewNullWriter

func NewNullWriter() NW

func (NW) WriteAt

func (NW) WriteAt(p []byte, off int64) (n int, err error)

type ObjectMetaProps added in v1.0.12

type ObjectMetaProps struct {
	ContentLength           int64
	ContentType             string
	ContentEncoding         string
	ContentDisposition      string
	ContentLanguage         string
	CacheControl            string
	ExpiresString           string
	WebsiteRedirectLocation string
	Metadata                map[string]string
}

type Option

type Option func(*S3Conf)

func WithAccess

func WithAccess(ak string) Option

func WithAzureMode added in v1.0.8

func WithAzureMode() Option

func WithConcurrency

func WithConcurrency(c int) Option

func WithDebug

func WithDebug() Option

func WithDisableChecksum

func WithDisableChecksum() Option

func WithEndpoint

func WithEndpoint(e string) Option

func WithHostStyle added in v1.0.14

func WithHostStyle() Option

func WithIAMEndpoint added in v1.8.0

func WithIAMEndpoint(e string) Option

WithIAMEndpoint points the IAM/STS clients at a standalone IAM service separate from the S3 endpoint, for the test groups that drive both processes at once

func WithPartSize

func WithPartSize(p int64) Option

func WithRegion

func WithRegion(r string) Option

func WithSecret

func WithSecret(sk string) Option

func WithSidecarMode added in v1.5.0

func WithSidecarMode() Option

func WithTLSStatus added in v1.0.10

func WithTLSStatus(ts bool) Option

func WithVersioningEnabled added in v1.0.8

func WithVersioningEnabled() Option

func WithWebsiteDomain added in v1.6.0

func WithWebsiteDomain(d string) Option

func WithWebsitePort added in v1.6.0

func WithWebsitePort(p string) Option

func WithWebsiteScheme added in v1.6.0

func WithWebsiteScheme(scheme string) Option

func WithWindowsMode added in v1.6.0

func WithWindowsMode() Option

type PostRequestConfig added in v1.4.0

type PostRequestConfig struct {
	// contains filtered or unexported fields
}

type PreflightResult added in v1.0.17

type PreflightResult struct {
	Origin           string
	Methods          string
	AllowHeaders     string
	ExposeHeaders    string
	MaxAge           string
	AllowCredentials string
	Vary             string
	// contains filtered or unexported fields
}

type PublicBucketTestCase added in v1.0.15

type PublicBucketTestCase struct {
	Action      string
	Call        func(ctx context.Context) error
	ExpectedErr error
}

type RReader

type RReader struct {
	// contains filtered or unexported fields
}

func NewDataReader

func NewDataReader(totalsize, bufsize int) *RReader

func (*RReader) Read

func (r *RReader) Read(p []byte) (int, error)

func (*RReader) Sum

func (r *RReader) Sum() []byte

type S3Conf

type S3Conf struct {
	PartSize    int64
	Concurrency int
	// contains filtered or unexported fields
}

func NewS3Conf

func NewS3Conf(opts ...Option) *S3Conf

func (*S3Conf) Config

func (c *S3Conf) Config() aws.Config

func (*S3Conf) DownloadData

func (c *S3Conf) DownloadData(w io.WriterAt, bucket, object string) (int64, error)

func (*S3Conf) GetAnonymousClient added in v1.0.15

func (c *S3Conf) GetAnonymousClient() *s3.Client

func (*S3Conf) GetClient

func (c *S3Conf) GetClient() *s3.Client

func (*S3Conf) GetIAMClient added in v1.8.0

func (c *S3Conf) GetIAMClient() *iam.Client

func (*S3Conf) GetPresignClient added in v1.0.17

func (c *S3Conf) GetPresignClient() *s3.PresignClient

func (*S3Conf) GetSTSClient added in v1.8.0

func (c *S3Conf) GetSTSClient() *sts.Client

GetSTSClient returns an SDK client for STS actions

func (*S3Conf) UploadData

func (c *S3Conf) UploadData(r io.Reader, bucket, object string) error

type TestState added in v1.0.19

type TestState struct {
	// contains filtered or unexported fields
}

TestState manages the execution of integration tests with optional parallelism and synchronization control.

func NewTestState added in v1.0.19

func NewTestState(ctx context.Context, conf *S3Conf, parallel bool) *TestState

NewTestState initializes a new TestState instance. If parallel execution is enabled, it starts a background goroutine to process queued tests.

func (*TestState) Run added in v1.0.19

func (ct *TestState) Run(f IntTest)

Run executes a test function. In parallel mode, it enqueues the function for concurrent execution; otherwise, it runs the test immediately.

func (*TestState) Sync added in v1.0.19

func (ct *TestState) Sync(f IntTest)

Sync adds a test function to be executed synchronously after all parallel tests have completed. It will not execute immediately.

func (*TestState) Wait added in v1.0.19

func (ct *TestState) Wait()

Wait blocks until all queued parallel tests complete, then runs all synchronous tests. It also ensures proper cleanup of the test channel.

type ZReader

type ZReader struct {
	// contains filtered or unexported fields
}

func NewZeroReader

func NewZeroReader(totalsize, bufsize int) *ZReader

func (*ZReader) Read

func (r *ZReader) Read(p []byte) (int, error)

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL