or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

bucket-access-control.mdbucket-features.mdbucket-operations.mdclient-config.mdindex.mdlist-operations.mdmultipart-upload.mdobject-operations.mdpaginators-waiters.mdpresigned-urls.mdtypes.md
tile.json

types.mddocs/

S3 Types Package

Package: github.com/aws/aws-sdk-go-v2/service/s3/types

The types package contains all data structures, enumerations, and error types used by the AWS SDK for Go v2 S3 service. This package includes 257 exported types organized into enumerations (72 string-based types), data structures (172 structs), union types (3 types), and error types (13 types).

Table of Contents

  1. Enumerations
  2. Core Data Structures
  3. Configuration Structures
  4. Error Types

Enumerations

All enumeration types in the S3 types package are string-based types with associated constants and a Values() method that returns all known values.

Storage and Object Types

AnalyticsS3ExportFileFormat { .api }

type AnalyticsS3ExportFileFormat string

File format for analytics export.

Constants:

  • AnalyticsS3ExportFileFormatCsv = "CSV" - CSV format

ArchiveStatus { .api }

type ArchiveStatus string

Archive access status for objects stored in Glacier tiers.

Constants:

  • ArchiveStatusArchiveAccess = "ARCHIVE_ACCESS" - Archive access tier
  • ArchiveStatusDeepArchiveAccess = "DEEP_ARCHIVE_ACCESS" - Deep archive access tier

StorageClass { .api }

type StorageClass string

Storage class for objects and buckets.

Constants:

  • StorageClassStandard = "STANDARD" - Standard storage class
  • StorageClassReducedRedundancy = "REDUCED_REDUNDANCY" - Reduced redundancy storage (deprecated)
  • StorageClassStandardIa = "STANDARD_IA" - Standard Infrequent Access
  • StorageClassOnezoneIa = "ONEZONE_IA" - One Zone Infrequent Access
  • StorageClassIntelligentTiering = "INTELLIGENT_TIERING" - Intelligent-Tiering
  • StorageClassGlacier = "GLACIER" - Glacier Flexible Retrieval
  • StorageClassDeepArchive = "DEEP_ARCHIVE" - Glacier Deep Archive
  • StorageClassOutposts = "OUTPOSTS" - S3 on Outposts
  • StorageClassGlacierIr = "GLACIER_IR" - Glacier Instant Retrieval
  • StorageClassSnow = "SNOW" - Snow storage class
  • StorageClassExpressOnezone = "EXPRESS_ONEZONE" - S3 Express One Zone
  • StorageClassFsxOpenzfs = "FSX_OPENZFS" - FSx for OpenZFS

ObjectStorageClass { .api }

type ObjectStorageClass string

Storage class for individual objects.

Constants:

  • ObjectStorageClassStandard = "STANDARD"
  • ObjectStorageClassReducedRedundancy = "REDUCED_REDUNDANCY"
  • ObjectStorageClassGlacier = "GLACIER"
  • ObjectStorageClassStandardIa = "STANDARD_IA"
  • ObjectStorageClassOnezoneIa = "ONEZONE_IA"
  • ObjectStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
  • ObjectStorageClassDeepArchive = "DEEP_ARCHIVE"
  • ObjectStorageClassOutposts = "OUTPOSTS"
  • ObjectStorageClassGlacierIr = "GLACIER_IR"
  • ObjectStorageClassSnow = "SNOW"
  • ObjectStorageClassExpressOnezone = "EXPRESS_ONEZONE"
  • ObjectStorageClassFsxOpenzfs = "FSX_OPENZFS"

ObjectVersionStorageClass { .api }

type ObjectVersionStorageClass string

Storage class for object versions.

Constants:

  • ObjectVersionStorageClassStandard = "STANDARD"

TransitionStorageClass { .api }

type TransitionStorageClass string

Target storage class for lifecycle transitions.

Constants:

  • TransitionStorageClassGlacier = "GLACIER"
  • TransitionStorageClassStandardIa = "STANDARD_IA"
  • TransitionStorageClassOnezoneIa = "ONEZONE_IA"
  • TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
  • TransitionStorageClassDeepArchive = "DEEP_ARCHIVE"
  • TransitionStorageClassGlacierIr = "GLACIER_IR"

IntelligentTieringAccessTier { .api }

type IntelligentTieringAccessTier string

Access tier for Intelligent-Tiering storage class.

Constants:

  • IntelligentTieringAccessTierArchiveAccess = "ARCHIVE_ACCESS"
  • IntelligentTieringAccessTierDeepArchiveAccess = "DEEP_ARCHIVE_ACCESS"

IntelligentTieringStatus { .api }

type IntelligentTieringStatus string

Status of Intelligent-Tiering configuration.

Constants:

  • IntelligentTieringStatusEnabled = "Enabled"
  • IntelligentTieringStatusDisabled = "Disabled"

Tier { .api }

type Tier string

Glacier retrieval tier for restore operations.

Constants:

  • TierStandard = "Standard" - Standard retrieval (3-5 hours)
  • TierBulk = "Bulk" - Bulk retrieval (5-12 hours, lowest cost)
  • TierExpedited = "Expedited" - Expedited retrieval (1-5 minutes, highest cost)

TransitionDefaultMinimumObjectSize { .api }

type TransitionDefaultMinimumObjectSize string

Default minimum object size for lifecycle transitions.

Constants:

  • TransitionDefaultMinimumObjectSizeVariesByStorageClass = "varies_by_storage_class"
  • TransitionDefaultMinimumObjectSizeAllStorageClasses128k = "all_storage_classes_128K"

Encryption Types

ServerSideEncryption { .api }

type ServerSideEncryption string

Server-side encryption type for objects.

Constants:

  • ServerSideEncryptionAes256 = "AES256" - S3-managed encryption (SSE-S3)
  • ServerSideEncryptionAwsFsx = "aws:fsx" - FSx encryption
  • ServerSideEncryptionAwsKms = "aws:kms" - KMS-managed encryption (SSE-KMS)
  • ServerSideEncryptionAwsKmsDsse = "aws:kms:dsse" - Dual-layer server-side encryption with KMS

EncryptionType { .api }

type EncryptionType string

Encryption type for blocking or allowing uploads.

Constants:

  • EncryptionTypeNone = "NONE" - No encryption
  • EncryptionTypeSseC = "SSE-C" - Server-side encryption with customer-provided keys

SseKmsEncryptedObjectsStatus { .api }

type SseKmsEncryptedObjectsStatus string

Status for SSE-KMS encrypted objects in replication.

Constants:

  • SseKmsEncryptedObjectsStatusEnabled = "Enabled"
  • SseKmsEncryptedObjectsStatusDisabled = "Disabled"

TableSseAlgorithm { .api }

type TableSseAlgorithm string

Server-side encryption algorithm for S3 Tables.

Constants:

  • TableSseAlgorithmAwsKms = "aws:kms"
  • TableSseAlgorithmAes256 = "AES256"

Access Control and Permissions

Permission { .api }

type Permission string

ACL permission for grantees.

Constants:

  • PermissionFullControl = "FULL_CONTROL" - Full control over the object/bucket
  • PermissionWrite = "WRITE" - Write access (buckets only)
  • PermissionWriteAcp = "WRITE_ACP" - Write access to ACL
  • PermissionRead = "READ" - Read access
  • PermissionReadAcp = "READ_ACP" - Read access to ACL

Type { .api }

type Type string

Grantee type for ACL permissions.

Constants:

  • TypeCanonicalUser = "CanonicalUser" - AWS account canonical user
  • TypeAmazonCustomerByEmail = "AmazonCustomerByEmail" - Customer identified by email (deprecated)
  • TypeGroup = "Group" - Predefined group

BucketCannedACL { .api }

type BucketCannedACL string

Canned ACL for buckets.

Constants:

  • BucketCannedACLPrivate = "private" - Owner has FULL_CONTROL
  • BucketCannedACLPublicRead = "public-read" - Owner has FULL_CONTROL, AllUsers have READ
  • BucketCannedACLPublicReadWrite = "public-read-write" - Owner has FULL_CONTROL, AllUsers have READ and WRITE
  • BucketCannedACLAuthenticatedRead = "authenticated-read" - Owner has FULL_CONTROL, AuthenticatedUsers have READ

ObjectCannedACL { .api }

type ObjectCannedACL string

Canned ACL for objects.

Constants:

  • ObjectCannedACLPrivate = "private"
  • ObjectCannedACLPublicRead = "public-read"
  • ObjectCannedACLPublicReadWrite = "public-read-write"
  • ObjectCannedACLAuthenticatedRead = "authenticated-read"
  • ObjectCannedACLAwsExecRead = "aws-exec-read" - Amazon EC2 has READ access
  • ObjectCannedACLBucketOwnerRead = "bucket-owner-read" - Bucket owner has READ access
  • ObjectCannedACLBucketOwnerFullControl = "bucket-owner-full-control" - Bucket owner has FULL_CONTROL

ObjectOwnership { .api }

type ObjectOwnership string

Object ownership setting for buckets.

Constants:

  • ObjectOwnershipBucketOwnerPreferred = "BucketOwnerPreferred" - Bucket owner preferred
  • ObjectOwnershipObjectWriter = "ObjectWriter" - Object writer owns the object
  • ObjectOwnershipBucketOwnerEnforced = "BucketOwnerEnforced" - Bucket owner enforced (ACLs disabled)

BucketLogsPermission { .api }

type BucketLogsPermission string

Permission for log delivery.

Constants:

  • BucketLogsPermissionFullControl = "FULL_CONTROL"
  • BucketLogsPermissionRead = "READ"
  • BucketLogsPermissionWrite = "WRITE"

OwnerOverride { .api }

type OwnerOverride string

Owner override for replication.

Constants:

  • OwnerOverrideDestination = "Destination" - Destination bucket owner

Versioning and Lifecycle

BucketVersioningStatus { .api }

type BucketVersioningStatus string

Versioning status for buckets.

Constants:

  • BucketVersioningStatusEnabled = "Enabled" - Versioning enabled
  • BucketVersioningStatusSuspended = "Suspended" - Versioning suspended

MFADelete { .api }

type MFADelete string

MFA delete setting.

Constants:

  • MFADeleteEnabled = "Enabled"
  • MFADeleteDisabled = "Disabled"

MFADeleteStatus { .api }

type MFADeleteStatus string

MFA delete status.

Constants:

  • MFADeleteStatusEnabled = "Enabled"
  • MFADeleteStatusDisabled = "Disabled"

ExpirationState { .api }

type ExpirationState string

Expiration state for lifecycle rules.

Constants:

  • ExpirationStateEnabled = "ENABLED"
  • ExpirationStateDisabled = "DISABLED"

ExpirationStatus { .api }

type ExpirationStatus string

Expiration status for lifecycle rules.

Constants:

  • ExpirationStatusEnabled = "Enabled"
  • ExpirationStatusDisabled = "Disabled"

Replication Enums

ReplicationStatus { .api }

type ReplicationStatus string

Replication status for objects.

Constants:

  • ReplicationStatusComplete = "COMPLETE" - Replication complete (deprecated)
  • ReplicationStatusPending = "PENDING" - Replication pending
  • ReplicationStatusFailed = "FAILED" - Replication failed
  • ReplicationStatusReplica = "REPLICA" - Object is a replica
  • ReplicationStatusCompleted = "COMPLETED" - Replication completed

ReplicationRuleStatus { .api }

type ReplicationRuleStatus string

Status of replication rule.

Constants:

  • ReplicationRuleStatusEnabled = "Enabled"
  • ReplicationRuleStatusDisabled = "Disabled"

DeleteMarkerReplicationStatus { .api }

type DeleteMarkerReplicationStatus string

Delete marker replication status.

Constants:

  • DeleteMarkerReplicationStatusEnabled = "Enabled"
  • DeleteMarkerReplicationStatusDisabled = "Disabled"

ExistingObjectReplicationStatus { .api }

type ExistingObjectReplicationStatus string

Existing object replication status.

Constants:

  • ExistingObjectReplicationStatusEnabled = "Enabled"
  • ExistingObjectReplicationStatusDisabled = "Disabled"

ReplicaModificationsStatus { .api }

type ReplicaModificationsStatus string

Replica modifications status.

Constants:

  • ReplicaModificationsStatusEnabled = "Enabled"
  • ReplicaModificationsStatusDisabled = "Disabled"

ReplicationTimeStatus { .api }

type ReplicationTimeStatus string

Replication time control status.

Constants:

  • ReplicationTimeStatusEnabled = "Enabled"
  • ReplicationTimeStatusDisabled = "Disabled"

MetricsStatus { .api }

type MetricsStatus string

Replication metrics status.

Constants:

  • MetricsStatusEnabled = "Enabled"
  • MetricsStatusDisabled = "Disabled"

Request and Response Enums

RequestCharged { .api }

type RequestCharged string

Indicates that the requester was charged for the request.

Constants:

  • RequestChargedRequester = "requester"

RequestPayer { .api }

type RequestPayer string

Request payer for requester pays buckets.

Constants:

  • RequestPayerRequester = "requester"

Payer { .api }

type Payer string

Payer configuration for buckets.

Constants:

  • PayerRequester = "Requester"
  • PayerBucketOwner = "BucketOwner"

ChecksumMode { .api }

type ChecksumMode string

Checksum validation mode.

Constants:

  • ChecksumModeEnabled = "ENABLED" - Validate checksums

ChecksumAlgorithm { .api }

type ChecksumAlgorithm string

Checksum algorithm for data integrity validation.

Constants:

  • ChecksumAlgorithmCrc32 = "CRC32" - CRC32 checksum
  • ChecksumAlgorithmCrc32c = "CRC32C" - CRC32C checksum
  • ChecksumAlgorithmSha1 = "SHA1" - SHA1 hash
  • ChecksumAlgorithmSha256 = "SHA256" - SHA256 hash
  • ChecksumAlgorithmCrc64nvme = "CRC64NVME" - CRC64NVME checksum

ChecksumType { .api }

type ChecksumType string

Type of checksum calculated for the object.

Constants:

  • ChecksumTypeComposite = "COMPOSITE" - Composite checksum from multipart upload
  • ChecksumTypeFullObject = "FULL_OBJECT" - Full object checksum

Event Types

Event { .api }

type Event string

S3 event types for notifications.

Constants:

  • EventS3ReducedRedundancyLostObject = "s3:ReducedRedundancyLostObject"
  • EventS3ObjectCreated = "s3:ObjectCreated:*" - Any object created event
  • EventS3ObjectCreatedPut = "s3:ObjectCreated:Put"
  • EventS3ObjectCreatedPost = "s3:ObjectCreated:Post"
  • EventS3ObjectCreatedCopy = "s3:ObjectCreated:Copy"
  • EventS3ObjectCreatedCompleteMultipartUpload = "s3:ObjectCreated:CompleteMultipartUpload"
  • EventS3ObjectRemoved = "s3:ObjectRemoved:*" - Any object removed event
  • EventS3ObjectRemovedDelete = "s3:ObjectRemoved:Delete"
  • EventS3ObjectRemovedDeleteMarkerCreated = "s3:ObjectRemoved:DeleteMarkerCreated"
  • EventS3ObjectRestore = "s3:ObjectRestore:*" - Any object restore event
  • EventS3ObjectRestorePost = "s3:ObjectRestore:Post"
  • EventS3ObjectRestoreCompleted = "s3:ObjectRestore:Completed"
  • EventS3ObjectRestoreDelete = "s3:ObjectRestore:Delete"
  • EventS3Replication = "s3:Replication:*" - Any replication event
  • EventS3ReplicationOperationFailedReplication = "s3:Replication:OperationFailedReplication"
  • EventS3ReplicationOperationNotTracked = "s3:Replication:OperationNotTracked"
  • EventS3ReplicationOperationMissedThreshold = "s3:Replication:OperationMissedThreshold"
  • EventS3ReplicationOperationReplicatedAfterThreshold = "s3:Replication:OperationReplicatedAfterThreshold"
  • EventS3LifecycleTransition = "s3:LifecycleTransition"
  • EventS3IntelligentTiering = "s3:IntelligentTiering"
  • EventS3ObjectAclPut = "s3:ObjectAcl:Put"
  • EventS3LifecycleExpiration = "s3:LifecycleExpiration:*" - Any lifecycle expiration event
  • EventS3LifecycleExpirationDelete = "s3:LifecycleExpiration:Delete"
  • EventS3LifecycleExpirationDeleteMarkerCreated = "s3:LifecycleExpiration:DeleteMarkerCreated"
  • EventS3ObjectTagging = "s3:ObjectTagging:*" - Any object tagging event
  • EventS3ObjectTaggingPut = "s3:ObjectTagging:Put"
  • EventS3ObjectTaggingDelete = "s3:ObjectTagging:Delete"

Encoding and Compression Enums

EncodingType { .api }

type EncodingType string

Encoding type for object keys in responses.

Constants:

  • EncodingTypeUrl = "url" - URL encoding

CompressionType { .api }

type CompressionType string

Compression type for data.

Constants:

  • CompressionTypeNone = "NONE" - No compression
  • CompressionTypeGzip = "GZIP" - GZIP compression
  • CompressionTypeBzip2 = "BZIP2" - BZIP2 compression

Protocols and Formats Enums

Protocol { .api }

type Protocol string

Protocol for website redirects.

Constants:

  • ProtocolHttp = "http"
  • ProtocolHttps = "https"

FilterRuleName { .api }

type FilterRuleName string

Filter rule name for notification configurations.

Constants:

  • FilterRuleNamePrefix = "prefix" - Filter by object key prefix
  • FilterRuleNameSuffix = "suffix" - Filter by object key suffix

FileHeaderInfo { .api }

type FileHeaderInfo string

CSV file header information.

Constants:

  • FileHeaderInfoUse = "USE" - Use header for column names
  • FileHeaderInfoIgnore = "IGNORE" - Ignore header line
  • FileHeaderInfoNone = "NONE" - No header line

JSONType { .api }

type JSONType string

JSON input/output type.

Constants:

  • JSONTypeDocument = "DOCUMENT" - JSON document
  • JSONTypeLines = "LINES" - JSON lines format

QuoteFields { .api }

type QuoteFields string

CSV quote fields setting.

Constants:

  • QuoteFieldsAlways = "ALWAYS" - Always quote fields
  • QuoteFieldsAsneeded = "ASNEEDED" - Quote fields as needed

ExpressionType { .api }

type ExpressionType string

Expression type for S3 Select.

Constants:

  • ExpressionTypeSql = "SQL" - SQL expression

RestoreRequestType { .api }

type RestoreRequestType string

Type of restore request.

Constants:

  • RestoreRequestTypeSelect = "SELECT" - SELECT restore request

Object Lock Enums

ObjectLockEnabled { .api }

type ObjectLockEnabled string

Object Lock enabled status.

Constants:

  • ObjectLockEnabledEnabled = "Enabled"

ObjectLockLegalHoldStatus { .api }

type ObjectLockLegalHoldStatus string

Legal hold status for objects.

Constants:

  • ObjectLockLegalHoldStatusOn = "ON" - Legal hold is on
  • ObjectLockLegalHoldStatusOff = "OFF" - Legal hold is off

ObjectLockMode { .api }

type ObjectLockMode string

Object Lock mode.

Constants:

  • ObjectLockModeGovernance = "GOVERNANCE" - Governance mode
  • ObjectLockModeCompliance = "COMPLIANCE" - Compliance mode

ObjectLockRetentionMode { .api }

type ObjectLockRetentionMode string

Object Lock retention mode.

Constants:

  • ObjectLockRetentionModeGovernance = "GOVERNANCE"
  • ObjectLockRetentionModeCompliance = "COMPLIANCE"

Bucket Features Enums

BucketAccelerateStatus { .api }

type BucketAccelerateStatus string

Transfer acceleration status.

Constants:

  • BucketAccelerateStatusEnabled = "Enabled"
  • BucketAccelerateStatusSuspended = "Suspended"

BucketAbacStatus { .api }

type BucketAbacStatus string

ABAC status for buckets.

Constants:

  • BucketAbacStatusEnabled = "Enabled"
  • BucketAbacStatusDisabled = "Disabled"

BucketLocationConstraint { .api }

type BucketLocationConstraint string

Bucket location constraint (AWS region).

Constants:

  • BucketLocationConstraintAfSouth1 = "af-south-1" - Africa (Cape Town)
  • BucketLocationConstraintApEast1 = "ap-east-1" - Asia Pacific (Hong Kong)
  • BucketLocationConstraintApNortheast1 = "ap-northeast-1" - Asia Pacific (Tokyo)
  • BucketLocationConstraintApNortheast2 = "ap-northeast-2" - Asia Pacific (Seoul)
  • BucketLocationConstraintApNortheast3 = "ap-northeast-3" - Asia Pacific (Osaka)
  • BucketLocationConstraintApSouth1 = "ap-south-1" - Asia Pacific (Mumbai)
  • BucketLocationConstraintApSouth2 = "ap-south-2" - Asia Pacific (Hyderabad)
  • BucketLocationConstraintApSoutheast1 = "ap-southeast-1" - Asia Pacific (Singapore)
  • BucketLocationConstraintApSoutheast2 = "ap-southeast-2" - Asia Pacific (Sydney)
  • BucketLocationConstraintApSoutheast3 = "ap-southeast-3" - Asia Pacific (Jakarta)
  • BucketLocationConstraintApSoutheast4 = "ap-southeast-4" - Asia Pacific (Melbourne)
  • BucketLocationConstraintApSoutheast5 = "ap-southeast-5" - Asia Pacific (Auckland)
  • BucketLocationConstraintCaCentral1 = "ca-central-1" - Canada (Central)
  • BucketLocationConstraintCnNorth1 = "cn-north-1" - China (Beijing)
  • BucketLocationConstraintCnNorthwest1 = "cn-northwest-1" - China (Ningxia)
  • BucketLocationConstraintEu = "EU" - Europe (legacy)
  • BucketLocationConstraintEuCentral1 = "eu-central-1" - Europe (Frankfurt)
  • BucketLocationConstraintEuCentral2 = "eu-central-2" - Europe (Zurich)
  • BucketLocationConstraintEuNorth1 = "eu-north-1" - Europe (Stockholm)
  • BucketLocationConstraintEuSouth1 = "eu-south-1" - Europe (Milan)
  • BucketLocationConstraintEuSouth2 = "eu-south-2" - Europe (Spain)
  • BucketLocationConstraintEuWest1 = "eu-west-1" - Europe (Ireland)
  • BucketLocationConstraintEuWest2 = "eu-west-2" - Europe (London)
  • BucketLocationConstraintEuWest3 = "eu-west-3" - Europe (Paris)
  • BucketLocationConstraintIlCentral1 = "il-central-1" - Israel (Tel Aviv)
  • BucketLocationConstraintMeCentral1 = "me-central-1" - Middle East (UAE)
  • BucketLocationConstraintMeSouth1 = "me-south-1" - Middle East (Bahrain)
  • BucketLocationConstraintSaEast1 = "sa-east-1" - South America (São Paulo)
  • BucketLocationConstraintUsEast2 = "us-east-2" - US East (Ohio)
  • BucketLocationConstraintUsGovEast1 = "us-gov-east-1" - AWS GovCloud (US-East)
  • BucketLocationConstraintUsGovWest1 = "us-gov-west-1" - AWS GovCloud (US-West)
  • BucketLocationConstraintUsWest1 = "us-west-1" - US West (N. California)
  • BucketLocationConstraintUsWest2 = "us-west-2" - US West (Oregon)

BucketType { .api }

type BucketType string

Type of bucket.

Constants:

  • BucketTypeDirectory = "Directory" - Directory bucket (S3 Express)

DataRedundancy { .api }

type DataRedundancy string

Data redundancy configuration for directory buckets.

Constants:

  • DataRedundancySingleAvailabilityZone = "SingleAvailabilityZone"
  • DataRedundancySingleLocalZone = "SingleLocalZone"

LocationType { .api }

type LocationType string

Location type for directory buckets.

Constants:

  • LocationTypeAvailabilityZone = "AvailabilityZone"
  • LocationTypeLocalZone = "LocalZone"

SessionMode { .api }

type SessionMode string

Session mode for S3 Express directory buckets.

Constants:

  • SessionModeReadOnly = "ReadOnly" - Read-only session
  • SessionModeReadWrite = "ReadWrite" - Read-write session

Metadata and Attributes Enums

ObjectAttributes { .api }

type ObjectAttributes string

Object attributes to retrieve.

Constants:

  • ObjectAttributesEtag = "ETag" - Entity tag
  • ObjectAttributesChecksum = "Checksum" - Checksum values
  • ObjectAttributesObjectParts = "ObjectParts" - Object parts information
  • ObjectAttributesStorageClass = "StorageClass" - Storage class
  • ObjectAttributesObjectSize = "ObjectSize" - Object size

OptionalObjectAttributes { .api }

type OptionalObjectAttributes string

Optional object attributes.

Constants:

  • OptionalObjectAttributesRestoreStatus = "RestoreStatus" - Restore status

MetadataDirective { .api }

type MetadataDirective string

Metadata directive for copy operations.

Constants:

  • MetadataDirectiveCopy = "COPY" - Copy metadata from source
  • MetadataDirectiveReplace = "REPLACE" - Replace with new metadata

TaggingDirective { .api }

type TaggingDirective string

Tagging directive for copy operations.

Constants:

  • TaggingDirectiveCopy = "COPY" - Copy tags from source
  • TaggingDirectiveReplace = "REPLACE" - Replace with new tags

PartitionDateSource { .api }

type PartitionDateSource string

Date source for partitioned logging.

Constants:

  • PartitionDateSourceEventTime = "EventTime" - Use event time
  • PartitionDateSourceDeliveryTime = "DeliveryTime" - Use delivery time

Inventory and Analytics Enums

InventoryFormat { .api }

type InventoryFormat string

Output format for inventory reports.

Constants:

  • InventoryFormatCsv = "CSV" - CSV format
  • InventoryFormatOrc = "ORC" - ORC format
  • InventoryFormatParquet = "Parquet" - Parquet format

InventoryIncludedObjectVersions { .api }

type InventoryIncludedObjectVersions string

Object versions to include in inventory.

Constants:

  • InventoryIncludedObjectVersionsAll = "All" - All versions
  • InventoryIncludedObjectVersionsCurrent = "Current" - Current versions only

InventoryFrequency { .api }

type InventoryFrequency string

Frequency for inventory reports.

Constants:

  • InventoryFrequencyDaily = "Daily" - Daily reports
  • InventoryFrequencyWeekly = "Weekly" - Weekly reports

InventoryOptionalField { .api }

type InventoryOptionalField string

Optional fields to include in inventory reports.

Constants:

  • InventoryOptionalFieldSize = "Size"
  • InventoryOptionalFieldLastModifiedDate = "LastModifiedDate"
  • InventoryOptionalFieldStorageClass = "StorageClass"
  • InventoryOptionalFieldETag = "ETag"
  • InventoryOptionalFieldIsMultipartUploaded = "IsMultipartUploaded"
  • InventoryOptionalFieldReplicationStatus = "ReplicationStatus"
  • InventoryOptionalFieldEncryptionStatus = "EncryptionStatus"
  • InventoryOptionalFieldObjectLockRetainUntilDate = "ObjectLockRetainUntilDate"
  • InventoryOptionalFieldObjectLockMode = "ObjectLockMode"
  • InventoryOptionalFieldObjectLockLegalHoldStatus = "ObjectLockLegalHoldStatus"
  • InventoryOptionalFieldIntelligentTieringAccessTier = "IntelligentTieringAccessTier"
  • InventoryOptionalFieldBucketKeyStatus = "BucketKeyStatus"
  • InventoryOptionalFieldChecksumAlgorithm = "ChecksumAlgorithm"
  • InventoryOptionalFieldObjectAccessControlList = "ObjectAccessControlList"
  • InventoryOptionalFieldObjectOwner = "ObjectOwner"

InventoryConfigurationState { .api }

type InventoryConfigurationState string

State of inventory configuration.

Constants:

  • InventoryConfigurationStateEnabled = "ENABLED"
  • InventoryConfigurationStateDisabled = "DISABLED"

StorageClassAnalysisSchemaVersion { .api }

type StorageClassAnalysisSchemaVersion string

Schema version for storage class analysis.

Constants:

  • StorageClassAnalysisSchemaVersionV1 = "V_1"

Other Enumerations

S3TablesBucketType { .api }

type S3TablesBucketType string

S3 Tables bucket type.

Constants:

  • S3TablesBucketTypeAws = "aws" - AWS-managed bucket
  • S3TablesBucketTypeCustomer = "customer" - Customer-managed bucket

Core Data Structures

Object and Bucket Types

Object { .api }

type Object struct {
    ChecksumAlgorithm []ChecksumAlgorithm
    ETag              *string
    Key               *string
    LastModified      *time.Time
    Owner             *Owner
    RestoreStatus     *RestoreStatus
    Size              *int64
    StorageClass      ObjectStorageClass
}

Metadata for an S3 object.

Fields:

  • ChecksumAlgorithm - Checksum algorithms used on the object
  • ETag - Entity tag (MD5 or other hash)
  • Key - Object key
  • LastModified - Last modification date
  • Owner - Object owner
  • RestoreStatus - Restore status for archived objects
  • Size - Size in bytes
  • StorageClass - Storage class

Bucket { .api }

type Bucket struct {
    BucketArn    *string
    BucketRegion *string
    CreationDate *time.Time
    Name         *string
}

Bucket metadata.

Fields:

  • BucketArn - Bucket ARN (directory buckets only)
  • BucketRegion - AWS region where the bucket is located
  • CreationDate - Bucket creation date
  • Name - Bucket name

Owner { .api }

type Owner struct {
    DisplayName *string
    ID          *string
}

Bucket or object owner.

Fields:

  • DisplayName - Display name of the owner
  • ID - Canonical user ID

ObjectIdentifier { .api }

type ObjectIdentifier struct {
    Key       *string
    VersionId *string
}

Object identifier for batch operations.

Fields:

  • Key - Object key (required)
  • VersionId - Version ID (optional)

ObjectVersion { .api }

type ObjectVersion struct {
    ChecksumAlgorithm []ChecksumAlgorithm
    ETag              *string
    IsLatest          *bool
    Key               *string
    LastModified      *time.Time
    Owner             *Owner
    RestoreStatus     *RestoreStatus
    Size              *int64
    StorageClass      ObjectVersionStorageClass
    VersionId         *string
}

Object version metadata.

Fields:

  • ChecksumAlgorithm - Checksum algorithms
  • ETag - Entity tag
  • IsLatest - Whether this is the latest version
  • Key - Object key
  • LastModified - Last modification date
  • Owner - Version owner
  • RestoreStatus - Restore status
  • Size - Size in bytes
  • StorageClass - Storage class
  • VersionId - Version ID

DeleteMarkerEntry { .api }

type DeleteMarkerEntry struct {
    IsLatest     *bool
    Key          *string
    LastModified *time.Time
    Owner        *Owner
    VersionId    *string
}

Delete marker metadata.

Fields:

  • IsLatest - Whether this is the latest version
  • Key - Object key
  • LastModified - When the delete marker was created
  • Owner - Delete marker owner
  • VersionId - Version ID of the delete marker

CommonPrefix { .api }

type CommonPrefix struct {
    Prefix *string
}

Common prefix in list operations (represents a "subdirectory").

Fields:

  • Prefix - Common prefix string

BucketInfo { .api }

type BucketInfo struct {
    DataRedundancy DataRedundancy
    Type           BucketType
}

Information about directory bucket creation.

Fields:

  • DataRedundancy - Data redundancy configuration
  • Type - Bucket type

Tagging

Tag { .api }

type Tag struct {
    Key   *string
    Value *string
}

Key-value tag.

Fields:

  • Key - Tag key (required)
  • Value - Tag value (required)

Tagging { .api }

type Tagging struct {
    TagSet []Tag
}

Set of tags.

Fields:

  • TagSet - Array of tags (required)

Multipart Upload Types

MultipartUpload { .api }

type MultipartUpload struct {
    ChecksumAlgorithm ChecksumAlgorithm
    Initiated         *time.Time
    Initiator         *Initiator
    Key               *string
    Owner             *Owner
    StorageClass      StorageClass
    UploadId          *string
}

Multipart upload metadata.

Fields:

  • ChecksumAlgorithm - Checksum algorithm used
  • Initiated - When the upload was initiated
  • Initiator - Upload initiator
  • Key - Object key
  • Owner - Upload owner
  • StorageClass - Storage class
  • UploadId - Upload ID

Part { .api }

type Part struct {
    ChecksumCRC32     *string
    ChecksumCRC32C    *string
    ChecksumCRC64NVME *string
    ChecksumSHA1      *string
    ChecksumSHA256    *string
    ETag              *string
    LastModified      *time.Time
    PartNumber        *int32
    Size              *int64
}

Part metadata in a multipart upload.

Fields:

  • ChecksumCRC32 - CRC32 checksum
  • ChecksumCRC32C - CRC32C checksum
  • ChecksumCRC64NVME - CRC64NVME checksum
  • ChecksumSHA1 - SHA1 hash
  • ChecksumSHA256 - SHA256 hash
  • ETag - Entity tag
  • LastModified - Last modification time
  • PartNumber - Part number
  • Size - Size in bytes

CompletedPart { .api }

type CompletedPart struct {
    ChecksumCRC32     *string
    ChecksumCRC32C    *string
    ChecksumCRC64NVME *string
    ChecksumSHA1      *string
    ChecksumSHA256    *string
    ETag              *string
    PartNumber        *int32
}

Information about a completed part.

Fields:

  • ChecksumCRC32 - CRC32 checksum
  • ChecksumCRC32C - CRC32C checksum
  • ChecksumCRC64NVME - CRC64NVME checksum
  • ChecksumSHA1 - SHA1 hash
  • ChecksumSHA256 - SHA256 hash
  • ETag - Entity tag (required for parts without checksum)
  • PartNumber - Part number (required)

CompletedMultipartUpload { .api }

type CompletedMultipartUpload struct {
    Parts []CompletedPart
}

Container for completed multipart upload.

Fields:

  • Parts - Array of completed parts

CopyPartResult { .api }

type CopyPartResult struct {
    ChecksumCRC32     *string
    ChecksumCRC32C    *string
    ChecksumCRC64NVME *string
    ChecksumSHA1      *string
    ChecksumSHA256    *string
    ETag              *string
    LastModified      *time.Time
}

Result of copying a part.

Fields:

  • ChecksumCRC32 - CRC32 checksum
  • ChecksumCRC32C - CRC32C checksum
  • ChecksumCRC64NVME - CRC64NVME checksum
  • ChecksumSHA1 - SHA1 hash
  • ChecksumSHA256 - SHA256 hash
  • ETag - Entity tag
  • LastModified - Last modification time

Initiator { .api }

type Initiator struct {
    DisplayName *string
    ID          *string
}

Multipart upload initiator.

Fields:

  • DisplayName - Display name
  • ID - Canonical user ID

Checksum Types

Checksum { .api }

type Checksum struct {
    ChecksumCRC32     *string
    ChecksumCRC32C    *string
    ChecksumCRC64NVME *string
    ChecksumSHA1      *string
    ChecksumSHA256    *string
    ChecksumType      ChecksumType
}

Object checksum values.

Fields:

  • ChecksumCRC32 - Base64-encoded CRC32 checksum
  • ChecksumCRC32C - Base64-encoded CRC32C checksum
  • ChecksumCRC64NVME - Base64-encoded CRC64NVME checksum
  • ChecksumSHA1 - Base64-encoded SHA1 hash
  • ChecksumSHA256 - Base64-encoded SHA256 hash
  • ChecksumType - Type of checksum calculated

Error Result Types

Error { .api }

type Error struct {
    Code      *string
    Key       *string
    Message   *string
    VersionId *string
}

S3 error information.

Fields:

  • Code - Error code
  • Key - Object key that caused the error
  • Message - Error message
  • VersionId - Version ID that caused the error

DeletedObject { .api }

type DeletedObject struct {
    DeleteMarker          *bool
    DeleteMarkerVersionId *string
    Key                   *string
    VersionId             *string
}

Successfully deleted object.

Fields:

  • DeleteMarker - Whether a delete marker was created
  • DeleteMarkerVersionId - Version ID of the delete marker
  • Key - Object key
  • VersionId - Version ID of the deleted object

DeleteError { .api }

type DeleteError struct {
    Code      *string
    Key       *string
    Message   *string
    VersionId *string
}

Error during delete operation.

Fields:

  • Code - Error code
  • Key - Object key
  • Message - Error message
  • VersionId - Version ID

Delete { .api }

type Delete struct {
    Objects []ObjectIdentifier
    Quiet   *bool
}

Container for delete request.

Fields:

  • Objects - Objects to delete (required, max 1000)
  • Quiet - Quiet mode (return only errors)

Configuration Structures

Access Control

AccessControlPolicy { .api }

type AccessControlPolicy struct {
    Grants []Grant
    Owner  *Owner
}

Complete ACL policy.

Fields:

  • Grants - List of grants
  • Owner - Bucket/object owner

Grant { .api }

type Grant struct {
    Grantee    *Grantee
    Permission Permission
}

ACL grant entry.

Fields:

  • Grantee - Grantee information
  • Permission - Permission granted

Grantee { .api }

type Grantee struct {
    DisplayName  *string
    EmailAddress *string
    ID           *string
    Type         Type
    URI          *string
}

ACL grantee (user, group, or service).

Fields:

  • DisplayName - Display name
  • EmailAddress - Email address (deprecated)
  • ID - Canonical user ID
  • Type - Grantee type (required)
  • URI - Group URI for predefined groups

PublicAccessBlockConfiguration { .api }

type PublicAccessBlockConfiguration struct {
    BlockPublicAcls       *bool
    BlockPublicPolicy     *bool
    IgnorePublicAcls      *bool
    RestrictPublicBuckets *bool
}

Public access block settings.

Fields:

  • BlockPublicAcls - Block public ACLs
  • BlockPublicPolicy - Block public bucket policies
  • IgnorePublicAcls - Ignore public ACLs
  • RestrictPublicBuckets - Restrict public bucket policies

OwnershipControls { .api }

type OwnershipControls struct {
    Rules []OwnershipControlsRule
}

Ownership control configuration.

Fields:

  • Rules - Ownership control rules (required)

OwnershipControlsRule { .api }

type OwnershipControlsRule struct {
    ObjectOwnership ObjectOwnership
}

Single ownership control rule.

Fields:

  • ObjectOwnership - Object ownership setting (required)

PolicyStatus { .api }

type PolicyStatus struct {
    IsPublic *bool
}

Policy status (public or private).

Fields:

  • IsPublic - Whether the policy is public

AbacStatus { .api }

type AbacStatus struct {
    Status BucketAbacStatus
}

ABAC status configuration.

Fields:

  • Status - ABAC status (Enabled/Disabled)

BucketAbacConfiguration { .api }

type BucketAbacConfiguration struct {
    AbacStatus *AbacStatus
}

Bucket ABAC configuration.

Fields:

  • AbacStatus - ABAC status

Encryption Configuration

ServerSideEncryptionConfiguration { .api }

type ServerSideEncryptionConfiguration struct {
    Rules []ServerSideEncryptionRule
}

Bucket encryption configuration.

Fields:

  • Rules - Encryption rules (required)

ServerSideEncryptionRule { .api }

type ServerSideEncryptionRule struct {
    ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault
    BucketKeyEnabled                   *bool
}

Server-side encryption rule.

Fields:

  • ApplyServerSideEncryptionByDefault - Default encryption settings
  • BucketKeyEnabled - Whether S3 Bucket Keys are enabled

ServerSideEncryptionByDefault { .api }

type ServerSideEncryptionByDefault struct {
    KMSMasterKeyID *string
    SSEAlgorithm   ServerSideEncryption
}

Default encryption settings.

Fields:

  • KMSMasterKeyID - KMS key ID (required for aws:kms and aws:kms:dsse)
  • SSEAlgorithm - Encryption algorithm (required)

Encryption { .api }

type Encryption struct {
    EncryptionType ServerSideEncryption
    KMSContext     *string
    KMSKeyId       *string
}

Object encryption settings.

Fields:

  • EncryptionType - Encryption type (required)
  • KMSContext - KMS encryption context
  • KMSKeyId - KMS key ID

BlockedEncryptionTypes { .api }

type BlockedEncryptionTypes struct {
    EncryptionType []EncryptionType
}

Encryption types to block for uploads.

Fields:

  • EncryptionType - List of blocked encryption types

EncryptionConfiguration { .api }

type EncryptionConfiguration struct {
    ReplicaKmsKeyID *string
}

Replication encryption configuration.

Fields:

  • ReplicaKmsKeyID - KMS key ID for replica encryption

Replication Configuration

ReplicationConfiguration { .api }

type ReplicationConfiguration struct {
    Role  *string
    Rules []ReplicationRule
}

Bucket replication configuration.

Fields:

  • Role - IAM role ARN (required)
  • Rules - Replication rules (required)

ReplicationRule { .api }

type ReplicationRule struct {
    DeleteMarkerReplication *DeleteMarkerReplication
    Destination             *Destination
    ExistingObjectReplication *ExistingObjectReplication
    Filter                  ReplicationRuleFilter
    ID                      *string
    Priority                *int32
    SourceSelectionCriteria *SourceSelectionCriteria
    Status                  ReplicationRuleStatus
}

Single replication rule.

Fields:

  • DeleteMarkerReplication - Delete marker replication settings
  • Destination - Replication destination (required)
  • ExistingObjectReplication - Existing object replication settings
  • Filter - Filter for objects to replicate
  • ID - Rule ID (max 255 characters)
  • Priority - Rule priority (required)
  • SourceSelectionCriteria - Source selection criteria
  • Status - Rule status (required)

Destination { .api }

type Destination struct {
    AccessControlTranslation *AccessControlTranslation
    Account                  *string
    Bucket                   *string
    EncryptionConfiguration  *EncryptionConfiguration
    Metrics                  *Metrics
    ReplicationTime          *ReplicationTime
    StorageClass             StorageClass
}

Replication destination.

Fields:

  • AccessControlTranslation - Access control translation for cross-account replication
  • Account - Destination account ID
  • Bucket - Destination bucket ARN (required)
  • EncryptionConfiguration - Encryption configuration
  • Metrics - Replication metrics
  • ReplicationTime - Replication time control (RTC)
  • StorageClass - Storage class for replicas

SourceSelectionCriteria { .api }

type SourceSelectionCriteria struct {
    ReplicaModifications     *ReplicaModifications
    SseKmsEncryptedObjects   *SseKmsEncryptedObjects
}

Criteria for selecting objects to replicate.

Fields:

  • ReplicaModifications - Replica modifications filter
  • SseKmsEncryptedObjects - SSE-KMS encrypted objects filter

SseKmsEncryptedObjects { .api }

type SseKmsEncryptedObjects struct {
    Status SseKmsEncryptedObjectsStatus
}

SSE-KMS encrypted objects filter.

Fields:

  • Status - Filter status (required)

ReplicaModifications { .api }

type ReplicaModifications struct {
    Status ReplicaModificationsStatus
}

Replica modifications filter.

Fields:

  • Status - Filter status (required)

DeleteMarkerReplication { .api }

type DeleteMarkerReplication struct {
    Status DeleteMarkerReplicationStatus
}

Delete marker replication settings.

Fields:

  • Status - Replication status

ExistingObjectReplication { .api }

type ExistingObjectReplication struct {
    Status ExistingObjectReplicationStatus
}

Existing object replication settings.

Fields:

  • Status - Replication status (required)

ReplicationTime { .api }

type ReplicationTime struct {
    Status ReplicationTimeStatus
    Time   *ReplicationTimeValue
}

Replication time control (RTC) configuration.

Fields:

  • Status - RTC status (required)
  • Time - Time value (required)

ReplicationTimeValue { .api }

type ReplicationTimeValue struct {
    Minutes *int32
}

Replication time value in minutes.

Fields:

  • Minutes - Minutes (required, must be 15)

Metrics { .api }

type Metrics struct {
    EventThreshold *ReplicationTimeValue
    Status         MetricsStatus
}

Replication metrics configuration.

Fields:

  • EventThreshold - Event threshold time
  • Status - Metrics status (required)

AccessControlTranslation { .api }

type AccessControlTranslation struct {
    Owner OwnerOverride
}

Access control translation for cross-account replication.

Fields:

  • Owner - Owner override (required)

ReplicationRuleFilter { .api }

type ReplicationRuleFilter interface {
    // Contains filtered or unexported methods
}

Filter for replication rules (union type).

Implementations:

  • ReplicationRuleFilterMemberAnd - AND condition with prefix and tags
  • ReplicationRuleFilterMemberPrefix - Filter by prefix
  • ReplicationRuleFilterMemberTag - Filter by tag

ReplicationRuleAndOperator { .api }

type ReplicationRuleAndOperator struct {
    Prefix *string
    Tags   []Tag
}

AND operator for replication rule filters.

Fields:

  • Prefix - Object key prefix
  • Tags - Tags (minimum 1)

Lifecycle Configuration

BucketLifecycleConfiguration { .api }

type BucketLifecycleConfiguration struct {
    Rules []LifecycleRule
}

Bucket lifecycle configuration.

Fields:

  • Rules - Lifecycle rules (required)

LifecycleRule { .api }

type LifecycleRule struct {
    AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload
    Expiration                     *LifecycleExpiration
    Filter                         LifecycleRuleFilter
    ID                             *string
    NoncurrentVersionExpiration    *NoncurrentVersionExpiration
    NoncurrentVersionTransitions   []NoncurrentVersionTransition
    Status                         ExpirationStatus
    Transitions                    []Transition
}

Lifecycle rule.

Fields:

  • AbortIncompleteMultipartUpload - Abort incomplete multipart upload settings
  • Expiration - Expiration action
  • Filter - Filter for objects (required for some actions)
  • ID - Rule ID (max 255 characters)
  • NoncurrentVersionExpiration - Non-current version expiration
  • NoncurrentVersionTransitions - Non-current version transitions
  • Status - Rule status (required)
  • Transitions - Object transitions

LifecycleExpiration { .api }

type LifecycleExpiration struct {
    Date                      *time.Time
    Days                      *int32
    ExpiredObjectDeleteMarker *bool
}

Lifecycle expiration action.

Fields:

  • Date - Expiration date
  • Days - Days after creation to expire
  • ExpiredObjectDeleteMarker - Remove expired object delete markers

NoncurrentVersionExpiration { .api }

type NoncurrentVersionExpiration struct {
    NewerNoncurrentVersions *int32
    NoncurrentDays          *int32
}

Non-current version expiration settings.

Fields:

  • NewerNoncurrentVersions - Number of newer versions to retain
  • NoncurrentDays - Days after becoming non-current to expire

NoncurrentVersionTransition { .api }

type NoncurrentVersionTransition struct {
    NewerNoncurrentVersions *int32
    NoncurrentDays          *int32
    StorageClass            TransitionStorageClass
}

Non-current version transition rule.

Fields:

  • NewerNoncurrentVersions - Number of newer versions to retain
  • NoncurrentDays - Days after becoming non-current to transition
  • StorageClass - Target storage class

Transition { .api }

type Transition struct {
    Date         *time.Time
    Days         *int32
    StorageClass TransitionStorageClass
}

Object transition rule.

Fields:

  • Date - Transition date
  • Days - Days after creation to transition
  • StorageClass - Target storage class

AbortIncompleteMultipartUpload { .api }

type AbortIncompleteMultipartUpload struct {
    DaysAfterInitiation *int32
}

Settings for aborting incomplete multipart uploads.

Fields:

  • DaysAfterInitiation - Days after initiation to abort

LifecycleRuleFilter { .api }

type LifecycleRuleFilter interface {
    // Contains filtered or unexported methods
}

Filter for lifecycle rules (union type).

Implementations:

  • LifecycleRuleFilterMemberAnd - AND condition
  • LifecycleRuleFilterMemberObjectSizeGreaterThan - Filter by minimum size
  • LifecycleRuleFilterMemberObjectSizeLessThan - Filter by maximum size
  • LifecycleRuleFilterMemberPrefix - Filter by prefix
  • LifecycleRuleFilterMemberTag - Filter by tag

LifecycleRuleAndOperator { .api }

type LifecycleRuleAndOperator struct {
    ObjectSizeGreaterThan *int64
    ObjectSizeLessThan    *int64
    Prefix                *string
    Tags                  []Tag
}

AND operator for lifecycle rule filters.

Fields:

  • ObjectSizeGreaterThan - Minimum object size in bytes
  • ObjectSizeLessThan - Maximum object size in bytes
  • Prefix - Object key prefix
  • Tags - Tags (minimum 1)

CORS Configuration

CORSConfiguration { .api }

type CORSConfiguration struct {
    CORSRules []CORSRule
}

CORS configuration for bucket.

Fields:

  • CORSRules - CORS rules (required, max 100)

CORSRule { .api }

type CORSRule struct {
    AllowedHeaders []string
    AllowedMethods []string
    AllowedOrigins []string
    ExposeHeaders  []string
    ID             *string
    MaxAgeSeconds  *int32
}

CORS rule.

Fields:

  • AllowedHeaders - Headers allowed in preflight requests
  • AllowedMethods - HTTP methods allowed (required, e.g., GET, PUT, POST, DELETE, HEAD)
  • AllowedOrigins - Origins allowed to make requests (required, e.g., http://example.com)
  • ExposeHeaders - Headers exposed to the browser
  • ID - Rule ID (max 255 characters)
  • MaxAgeSeconds - Time to cache preflight response

Website Configuration

WebsiteConfiguration { .api }

type WebsiteConfiguration struct {
    ErrorDocument         *ErrorDocument
    IndexDocument         *IndexDocument
    RedirectAllRequestsTo *RedirectAllRequestsTo
    RoutingRules          []RoutingRule
}

Static website hosting configuration.

Fields:

  • ErrorDocument - Error document settings
  • IndexDocument - Index document settings
  • RedirectAllRequestsTo - Redirect all requests
  • RoutingRules - Routing rules

IndexDocument { .api }

type IndexDocument struct {
    Suffix *string
}

Index document configuration.

Fields:

  • Suffix - Index document suffix (required, e.g., "index.html")

ErrorDocument { .api }

type ErrorDocument struct {
    Key *string
}

Error document configuration.

Fields:

  • Key - Error document key (required, e.g., "error.html")

RedirectAllRequestsTo { .api }

type RedirectAllRequestsTo struct {
    HostName *string
    Protocol Protocol
}

Redirect all requests to another host.

Fields:

  • HostName - Target hostname (required)
  • Protocol - Target protocol

RoutingRule { .api }

type RoutingRule struct {
    Condition *Condition
    Redirect  *Redirect
}

Routing rule for conditional redirects.

Fields:

  • Condition - Condition for applying the rule
  • Redirect - Redirect configuration (required)

Condition { .api }

type Condition struct {
    HttpErrorCodeReturnedEquals *string
    KeyPrefixEquals             *string
}

Condition for routing rule.

Fields:

  • HttpErrorCodeReturnedEquals - HTTP error code (e.g., "404")
  • KeyPrefixEquals - Object key prefix

Redirect { .api }

type Redirect struct {
    HostName             *string
    HttpRedirectCode     *string
    Protocol             Protocol
    ReplaceKeyPrefixWith *string
    ReplaceKeyWith       *string
}

Redirect configuration.

Fields:

  • HostName - Target hostname
  • HttpRedirectCode - HTTP redirect code (e.g., "301", "302")
  • Protocol - Target protocol
  • ReplaceKeyPrefixWith - Replacement prefix
  • ReplaceKeyWith - Replacement key

Logging Configuration

LoggingEnabled { .api }

type LoggingEnabled struct {
    TargetBucket         *string
    TargetGrants         []TargetGrant
    TargetObjectKeyFormat *TargetObjectKeyFormat
    TargetPrefix         *string
}

Logging configuration.

Fields:

  • TargetBucket - Target bucket for logs (required)
  • TargetGrants - Log delivery grants
  • TargetObjectKeyFormat - Target object key format
  • TargetPrefix - Prefix for log objects

BucketLoggingStatus { .api }

type BucketLoggingStatus struct {
    LoggingEnabled *LoggingEnabled
}

Container for logging status.

Fields:

  • LoggingEnabled - Logging configuration

TargetGrant { .api }

type TargetGrant struct {
    Grantee    *Grantee
    Permission BucketLogsPermission
}

Log delivery grant.

Fields:

  • Grantee - Grantee information
  • Permission - Permission granted

TargetObjectKeyFormat { .api }

type TargetObjectKeyFormat struct {
    PartitionedPrefix *PartitionedPrefixConfiguration
    SimplePrefix      *SimplePrefix
}

Target object key format for logs.

Fields:

  • PartitionedPrefix - Partitioned prefix configuration
  • SimplePrefix - Simple prefix configuration

PartitionedPrefixConfiguration { .api }

type PartitionedPrefixConfiguration struct {
    PartitionDateSource PartitionDateSource
}

Partitioned prefix configuration.

Fields:

  • PartitionDateSource - Date source for partitioning

SimplePrefix { .api }

type SimplePrefix struct {
}

Simple prefix (no partitioning).

Notification Configuration

NotificationConfiguration { .api }

type NotificationConfiguration struct {
    EventBridgeConfiguration *EventBridgeConfiguration
    LambdaFunctionConfigurations []LambdaFunctionConfiguration
    QueueConfigurations      []QueueConfiguration
    TopicConfigurations      []TopicConfiguration
}

Bucket event notification configuration.

Fields:

  • EventBridgeConfiguration - EventBridge configuration
  • LambdaFunctionConfigurations - Lambda function notifications
  • QueueConfigurations - SQS queue notifications
  • TopicConfigurations - SNS topic notifications

QueueConfiguration { .api }

type QueueConfiguration struct {
    Events   []Event
    Filter   *NotificationConfigurationFilter
    Id       *string
    QueueArn *string
}

SQS queue notification configuration.

Fields:

  • Events - S3 events (required)
  • Filter - Filter rules
  • Id - Configuration ID
  • QueueArn - SQS queue ARN (required)

TopicConfiguration { .api }

type TopicConfiguration struct {
    Events   []Event
    Filter   *NotificationConfigurationFilter
    Id       *string
    TopicArn *string
}

SNS topic notification configuration.

Fields:

  • Events - S3 events (required)
  • Filter - Filter rules
  • Id - Configuration ID
  • TopicArn - SNS topic ARN (required)

LambdaFunctionConfiguration { .api }

type LambdaFunctionConfiguration struct {
    Events              []Event
    Filter              *NotificationConfigurationFilter
    Id                  *string
    LambdaFunctionArn   *string
}

Lambda function notification configuration.

Fields:

  • Events - S3 events (required)
  • Filter - Filter rules
  • Id - Configuration ID
  • LambdaFunctionArn - Lambda function ARN (required)

EventBridgeConfiguration { .api }

type EventBridgeConfiguration struct {
}

EventBridge notification configuration.

NotificationConfigurationFilter { .api }

type NotificationConfigurationFilter struct {
    Key *S3KeyFilter
}

Filter for notification events.

Fields:

  • Key - Key filter rules

S3KeyFilter { .api }

type S3KeyFilter struct {
    FilterRules []FilterRule
}

S3 key filter.

Fields:

  • FilterRules - Filter rules

FilterRule { .api }

type FilterRule struct {
    Name  FilterRuleName
    Value *string
}

Filter rule.

Fields:

  • Name - Rule name (prefix or suffix)
  • Value - Rule value

Analytics Configuration

AnalyticsConfiguration { .api }

type AnalyticsConfiguration struct {
    Filter               AnalyticsFilter
    Id                   *string
    StorageClassAnalysis *StorageClassAnalysis
}

Analytics configuration.

Fields:

  • Filter - Filter for analysis
  • Id - Configuration ID (required)
  • StorageClassAnalysis - Storage class analysis (required)

StorageClassAnalysis { .api }

type StorageClassAnalysis struct {
    DataExport *StorageClassAnalysisDataExport
}

Storage class analysis configuration.

Fields:

  • DataExport - Data export settings

StorageClassAnalysisDataExport { .api }

type StorageClassAnalysisDataExport struct {
    Destination   *AnalyticsExportDestination
    OutputSchemaVersion StorageClassAnalysisSchemaVersion
}

Data export settings for storage class analysis.

Fields:

  • Destination - Export destination (required)
  • OutputSchemaVersion - Output schema version (required)

AnalyticsExportDestination { .api }

type AnalyticsExportDestination struct {
    S3BucketDestination *AnalyticsS3BucketDestination
}

Analytics export destination.

Fields:

  • S3BucketDestination - S3 bucket destination (required)

AnalyticsS3BucketDestination { .api }

type AnalyticsS3BucketDestination struct {
    Bucket          *string
    BucketAccountId *string
    Format          AnalyticsS3ExportFileFormat
    Prefix          *string
}

S3 bucket destination for analytics export.

Fields:

  • Bucket - Bucket ARN (required)
  • BucketAccountId - Bucket account ID
  • Format - Output format (required)
  • Prefix - Prefix for exported files

AnalyticsAndOperator { .api }

type AnalyticsAndOperator struct {
    Prefix *string
    Tags   []Tag
}

AND operator for analytics filters.

Fields:

  • Prefix - Object key prefix
  • Tags - Tags (minimum 1)

Metrics Configuration

MetricsConfiguration { .api }

type MetricsConfiguration struct {
    Filter MetricsFilter
    Id     *string
}

Metrics configuration for CloudWatch request metrics.

Fields:

  • Filter - Filter for metrics
  • Id - Configuration ID (required)

MetricsFilter { .api }

type MetricsFilter interface {
    // Contains filtered or unexported methods
}

Filter for metrics (union type).

Implementations:

  • MetricsFilterMemberAccessPointArn - Filter by access point ARN
  • MetricsFilterMemberAnd - AND condition
  • MetricsFilterMemberPrefix - Filter by prefix
  • MetricsFilterMemberTag - Filter by tag

MetricsAndOperator { .api }

type MetricsAndOperator struct {
    AccessPointArn *string
    Prefix         *string
    Tags           []Tag
}

AND operator for metrics filters.

Fields:

  • AccessPointArn - Access point ARN
  • Prefix - Object key prefix
  • Tags - Tags (minimum 1)

Inventory Configuration

InventoryConfiguration { .api }

type InventoryConfiguration struct {
    Destination              *InventoryDestination
    Filter                   *InventoryFilter
    Id                       *string
    IncludedObjectVersions   InventoryIncludedObjectVersions
    IsEnabled                *bool
    OptionalFields           []InventoryOptionalField
    Schedule                 *InventorySchedule
}

Inventory configuration.

Fields:

  • Destination - Inventory destination (required)
  • Filter - Inventory filter
  • Id - Configuration ID (required)
  • IncludedObjectVersions - Which object versions to include (required)
  • IsEnabled - Whether inventory is enabled (required)
  • OptionalFields - Optional fields to include
  • Schedule - Inventory schedule (required)

InventoryDestination { .api }

type InventoryDestination struct {
    S3BucketDestination *InventoryS3BucketDestination
}

Inventory destination.

Fields:

  • S3BucketDestination - S3 bucket destination (required)

InventoryS3BucketDestination { .api }

type InventoryS3BucketDestination struct {
    AccountId  *string
    Bucket     *string
    Encryption *InventoryEncryption
    Format     InventoryFormat
    Prefix     *string
}

S3 bucket destination for inventory.

Fields:

  • AccountId - Bucket account ID
  • Bucket - Bucket ARN (required)
  • Encryption - Encryption settings
  • Format - Output format (required)
  • Prefix - Prefix for inventory files

InventoryEncryption { .api }

type InventoryEncryption struct {
    SSEKMS *SSEKMS
    SSES3  *SSES3
}

Inventory encryption settings.

Fields:

  • SSEKMS - SSE-KMS encryption
  • SSES3 - SSE-S3 encryption

SSEKMS { .api }

type SSEKMS struct {
    KeyId *string
}

SSE-KMS encryption.

Fields:

  • KeyId - KMS key ID (required)

SSES3 { .api }

type SSES3 struct {
}

SSE-S3 encryption.

InventoryFilter { .api }

type InventoryFilter struct {
    Prefix *string
}

Inventory filter.

Fields:

  • Prefix - Object key prefix (required)

InventorySchedule { .api }

type InventorySchedule struct {
    Frequency InventoryFrequency
}

Inventory schedule.

Fields:

  • Frequency - Inventory frequency (required)

Intelligent-Tiering Configuration

IntelligentTieringConfiguration { .api }

type IntelligentTieringConfiguration struct {
    Filter   *IntelligentTieringFilter
    Id       *string
    Status   IntelligentTieringStatus
    Tierings []Tiering
}

Intelligent-Tiering configuration.

Fields:

  • Filter - Filter for objects
  • Id - Configuration ID (required)
  • Status - Configuration status (required)
  • Tierings - Tiering rules (required)

IntelligentTieringFilter { .api }

type IntelligentTieringFilter struct {
    And    *IntelligentTieringAndOperator
    Prefix *string
    Tag    *Tag
}

Filter for Intelligent-Tiering.

Fields:

  • And - AND condition
  • Prefix - Object key prefix
  • Tag - Tag

IntelligentTieringAndOperator { .api }

type IntelligentTieringAndOperator struct {
    Prefix *string
    Tags   []Tag
}

AND operator for Intelligent-Tiering filters.

Fields:

  • Prefix - Object key prefix
  • Tags - Tags (minimum 1)

Tiering { .api }

type Tiering struct {
    AccessTier IntelligentTieringAccessTier
    Days       *int32
}

Tiering rule.

Fields:

  • AccessTier - Access tier (required)
  • Days - Days after last access to move to tier (required)

Object Lock Configuration

ObjectLockConfiguration { .api }

type ObjectLockConfiguration struct {
    ObjectLockEnabled ObjectLockEnabled
    Rule              *ObjectLockRule
}

Object Lock configuration.

Fields:

  • ObjectLockEnabled - Object Lock enabled status
  • Rule - Object Lock rule

ObjectLockRule { .api }

type ObjectLockRule struct {
    DefaultRetention *DefaultRetention
}

Object Lock rule.

Fields:

  • DefaultRetention - Default retention settings

DefaultRetention { .api }

type DefaultRetention struct {
    Days  *int32
    Mode  ObjectLockRetentionMode
    Years *int32
}

Default retention settings.

Fields:

  • Days - Retention period in days
  • Mode - Retention mode
  • Years - Retention period in years

ObjectLockRetention { .api }

type ObjectLockRetention struct {
    Mode            ObjectLockRetentionMode
    RetainUntilDate *time.Time
}

Object Lock retention settings for an object.

Fields:

  • Mode - Retention mode
  • RetainUntilDate - Retain until date

ObjectLockLegalHold { .api }

type ObjectLockLegalHold struct {
    Status ObjectLockLegalHoldStatus
}

Legal hold settings for an object.

Fields:

  • Status - Legal hold status

Versioning Configuration

VersioningConfiguration { .api }

type VersioningConfiguration struct {
    MFADelete MFADelete
    Status    BucketVersioningStatus
}

Versioning configuration.

Fields:

  • MFADelete - MFA delete setting
  • Status - Versioning status

Request Payment Configuration

RequestPaymentConfiguration { .api }

type RequestPaymentConfiguration struct {
    Payer Payer
}

Request payment configuration.

Fields:

  • Payer - Payer (required)

Accelerate Configuration

AccelerateConfiguration { .api }

type AccelerateConfiguration struct {
    Status BucketAccelerateStatus
}

Transfer acceleration configuration.

Fields:

  • Status - Acceleration status

S3 Select / Query Structures

InputSerialization { .api }

type InputSerialization struct {
    CSV             *CSVInput
    CompressionType CompressionType
    JSON            *JSONInput
    Parquet         *ParquetInput
}

Input serialization format for S3 Select.

Fields:

  • CSV - CSV input settings
  • CompressionType - Compression type
  • JSON - JSON input settings
  • Parquet - Parquet input settings

OutputSerialization { .api }

type OutputSerialization struct {
    CSV  *CSVOutput
    JSON *JSONOutput
}

Output serialization format for S3 Select.

Fields:

  • CSV - CSV output settings
  • JSON - JSON output settings

CSVInput { .api }

type CSVInput struct {
    AllowQuotedRecordDelimiter *bool
    Comments                   *string
    FieldDelimiter             *string
    FileHeaderInfo             FileHeaderInfo
    QuoteCharacter             *string
    QuoteEscapeCharacter       *string
    RecordDelimiter            *string
}

CSV input format settings.

Fields:

  • AllowQuotedRecordDelimiter - Allow quoted record delimiters
  • Comments - Comment character (default: "#")
  • FieldDelimiter - Field delimiter
  • FileHeaderInfo - File header information
  • QuoteCharacter - Quote character (default: """)
  • QuoteEscapeCharacter - Quote escape character
  • RecordDelimiter - Record delimiter

CSVOutput { .api }

type CSVOutput struct {
    FieldDelimiter       *string
    QuoteCharacter       *string
    QuoteEscapeCharacter *string
    QuoteFields          QuoteFields
    RecordDelimiter      *string
}

CSV output format settings.

Fields:

  • FieldDelimiter - Field delimiter
  • QuoteCharacter - Quote character
  • QuoteEscapeCharacter - Quote escape character
  • QuoteFields - Quote fields setting
  • RecordDelimiter - Record delimiter

JSONInput { .api }

type JSONInput struct {
    Type JSONType
}

JSON input format settings.

Fields:

  • Type - JSON type (DOCUMENT or LINES)

JSONOutput { .api }

type JSONOutput struct {
    RecordDelimiter *string
}

JSON output format settings.

Fields:

  • RecordDelimiter - Record delimiter

ParquetInput { .api }

type ParquetInput struct {
}

Parquet input format settings.

ScanRange { .api }

type ScanRange struct {
    End   *int64
    Start *int64
}

Byte range to scan.

Fields:

  • End - End byte (inclusive)
  • Start - Start byte

SelectObjectContentEventStream { .api }

type SelectObjectContentEventStream interface {
    // Contains filtered or unexported methods
}

Event stream for S3 Select operations (union type).

Implementations:

  • SelectObjectContentEventStreamMemberCont - Continuation event
  • SelectObjectContentEventStreamMemberEnd - End event
  • SelectObjectContentEventStreamMemberProgress - Progress event
  • SelectObjectContentEventStreamMemberRecords - Records event
  • SelectObjectContentEventStreamMemberStats - Statistics event

RecordsEvent { .api }

type RecordsEvent struct {
    Payload []byte
}

Records payload event.

Fields:

  • Payload - Record data

StatsEvent { .api }

type StatsEvent struct {
    Details *Stats
}

Statistics event.

Fields:

  • Details - Statistics details

Stats { .api }

type Stats struct {
    BytesProcessed *int64
    BytesReturned  *int64
    BytesScanned   *int64
}

Query statistics.

Fields:

  • BytesProcessed - Bytes processed
  • BytesReturned - Bytes returned
  • BytesScanned - Bytes scanned

ProgressEvent { .api }

type ProgressEvent struct {
    Details *Progress
}

Progress event.

Fields:

  • Details - Progress details

Progress { .api }

type Progress struct {
    BytesProcessed *int64
    BytesReturned  *int64
    BytesScanned   *int64
}

Query progress.

Fields:

  • BytesProcessed - Bytes processed so far
  • BytesReturned - Bytes returned so far
  • BytesScanned - Bytes scanned so far

ContinuationEvent { .api }

type ContinuationEvent struct {
}

Continuation event (keep-alive).

EndEvent { .api }

type EndEvent struct {
}

End event (query complete).

Restore Request Structures

RestoreRequest { .api }

type RestoreRequest struct {
    Days                 *int32
    Description          *string
    GlacierJobParameters *GlacierJobParameters
    OutputLocation       *OutputLocation
    SelectParameters     *SelectParameters
    Tier                 Tier
    Type                 RestoreRequestType
}

Restore request configuration.

Fields:

  • Days - Lifetime of restored copy (days)
  • Description - Description
  • GlacierJobParameters - Glacier job parameters
  • OutputLocation - Output location for SELECT restore
  • SelectParameters - SELECT parameters
  • Tier - Retrieval tier
  • Type - Restore type

GlacierJobParameters { .api }

type GlacierJobParameters struct {
    Tier Tier
}

Glacier job parameters.

Fields:

  • Tier - Retrieval tier (required)

SelectParameters { .api }

type SelectParameters struct {
    Expression          *string
    ExpressionType      ExpressionType
    InputSerialization  *InputSerialization
    OutputSerialization *OutputSerialization
}

SELECT parameters for restore.

Fields:

  • Expression - SQL expression (required)
  • ExpressionType - Expression type (required)
  • InputSerialization - Input format (required)
  • OutputSerialization - Output format (required)

OutputLocation { .api }

type OutputLocation struct {
    S3 *S3Location
}

Output location for SELECT restore.

Fields:

  • S3 - S3 location

S3Location { .api }

type S3Location struct {
    AccessControlList []Grant
    BucketName        *string
    CannedACL         ObjectCannedACL
    Encryption        *Encryption
    Prefix            *string
    StorageClass      StorageClass
    Tagging           *Tagging
    UserMetadata      []MetadataEntry
}

S3 location for restore output.

Fields:

  • AccessControlList - ACL grants
  • BucketName - Bucket name (required)
  • CannedACL - Canned ACL
  • Encryption - Encryption settings
  • Prefix - Object key prefix (required)
  • StorageClass - Storage class
  • Tagging - Tags
  • UserMetadata - User metadata

MetadataEntry { .api }

type MetadataEntry struct {
    Name  *string
    Value *string
}

Metadata entry.

Fields:

  • Name - Metadata name
  • Value - Metadata value

RestoreStatus { .api }

type RestoreStatus struct {
    IsRestoreInProgress *bool
    RestoreExpiryDate   *time.Time
}

Restore status for archived objects.

Fields:

  • IsRestoreInProgress - Whether restore is in progress
  • RestoreExpiryDate - When the restored copy expires

Object Attributes and Parts

GetObjectAttributesParts { .api }

type GetObjectAttributesParts struct {
    IsTruncated          *bool
    MaxParts             *int32
    NextPartNumberMarker *int32
    PartNumberMarker     *int32
    Parts                []ObjectPart
    TotalPartsCount      *int32
}

Parts information for GetObjectAttributes.

Fields:

  • IsTruncated - Whether the list is truncated
  • MaxParts - Maximum parts returned
  • NextPartNumberMarker - Next part number marker
  • PartNumberMarker - Part number marker
  • Parts - List of parts
  • TotalPartsCount - Total number of parts

ObjectPart { .api }

type ObjectPart struct {
    ChecksumCRC32     *string
    ChecksumCRC32C    *string
    ChecksumCRC64NVME *string
    ChecksumSHA1      *string
    ChecksumSHA256    *string
    PartNumber        *int32
    Size              *int64
}

Information about an object part.

Fields:

  • ChecksumCRC32 - CRC32 checksum
  • ChecksumCRC32C - CRC32C checksum
  • ChecksumCRC64NVME - CRC64NVME checksum
  • ChecksumSHA1 - SHA1 hash
  • ChecksumSHA256 - SHA256 hash
  • PartNumber - Part number
  • Size - Part size

S3 Express / Session Structures

SessionCredentials { .api }

type SessionCredentials struct {
    AccessKeyId     *string
    Expiration      *time.Time
    SecretAccessKey *string
    SessionToken    *string
}

Session credentials for S3 Express directory buckets.

Fields:

  • AccessKeyId - Access key ID (required)
  • Expiration - Credential expiration time (required)
  • SecretAccessKey - Secret access key (required)
  • SessionToken - Session token (required)

Metadata Table Configuration

MetadataTableConfiguration { .api }

type MetadataTableConfiguration struct {
    S3TablesDestination *S3TablesDestination
}

Metadata table configuration.

Fields:

  • S3TablesDestination - S3 Tables destination (required)

MetadataTableConfigurationResult { .api }

type MetadataTableConfigurationResult struct {
    S3TablesDestinationResult *S3TablesDestinationResult
}

Metadata table configuration result.

Fields:

  • S3TablesDestinationResult - S3 Tables destination result

S3TablesDestination { .api }

type S3TablesDestination struct {
    TableArn     *string
    TableBucketArn *string
    TableName    *string
}

S3 Tables destination for metadata.

Fields:

  • TableArn - Table ARN (required)
  • TableBucketArn - Table bucket ARN (required)
  • TableName - Table name (required)

S3TablesDestinationResult { .api }

type S3TablesDestinationResult struct {
    TableArn     *string
    TableBucketArn *string
    TableName    *string
}

S3 Tables destination result.

Fields:

  • TableArn - Table ARN
  • TableBucketArn - Table bucket ARN
  • TableName - Table name

Copy Object Result

CopyObjectResult { .api }

type CopyObjectResult struct {
    ChecksumCRC32     *string
    ChecksumCRC32C    *string
    ChecksumCRC64NVME *string
    ChecksumSHA1      *string
    ChecksumSHA256    *string
    ETag              *string
    LastModified      *time.Time
}

Result of copying an object.

Fields:

  • ChecksumCRC32 - CRC32 checksum
  • ChecksumCRC32C - CRC32C checksum
  • ChecksumCRC64NVME - CRC64NVME checksum
  • ChecksumSHA1 - SHA1 hash
  • ChecksumSHA256 - SHA256 hash
  • ETag - Entity tag
  • LastModified - Last modification time

Noncurrent Version Configuration

TransitionDefaultMinimumObjectSizeConfiguration { .api }

type TransitionDefaultMinimumObjectSizeConfiguration struct {
    DefaultMinimumObjectSize TransitionDefaultMinimumObjectSize
}

Configuration for default minimum object size for transitions.

Fields:

  • DefaultMinimumObjectSize - Default minimum object size

Additional Union Types

AnalyticsFilter { .api }

Analytics filter (union type).

Implementations:

  • AnalyticsFilterMemberAnd - AND condition with prefix and tags
  • AnalyticsFilterMemberPrefix - Filter by prefix only
  • AnalyticsFilterMemberTag - Filter by tag only

Error Types

All error types implement the error interface and provide methods for retrieving error details.

BucketAlreadyExists { .api }

type BucketAlreadyExists struct {
    Message           *string
    ErrorCodeOverride *string
}

The requested bucket name is not available. The bucket namespace is shared by all users of the system.

Methods:

  • Error() string - Returns formatted error message
  • ErrorCode() string - Returns error code ("BucketAlreadyExists")
  • ErrorMessage() string - Returns error message
  • ErrorFault() smithy.ErrorFault - Returns client fault

BucketAlreadyOwnedByYou { .api }

type BucketAlreadyOwnedByYou struct {
    Message           *string
    ErrorCodeOverride *string
}

The bucket you tried to create already exists, and you own it.

Methods:

  • Error() string
  • ErrorCode() string - Returns "BucketAlreadyOwnedByYou"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

EncryptionTypeMismatch { .api }

type EncryptionTypeMismatch struct {
    Message           *string
    ErrorCodeOverride *string
}

The existing object was created with a different encryption type. Subsequent write requests must include the appropriate encryption parameters.

Methods:

  • Error() string
  • ErrorCode() string - Returns "EncryptionTypeMismatch"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

IdempotencyParameterMismatch { .api }

type IdempotencyParameterMismatch struct {
    Message           *string
    ErrorCodeOverride *string
}

Parameters on this idempotent request are inconsistent with parameters used in previous request(s).

Methods:

  • Error() string
  • ErrorCode() string - Returns "IdempotencyParameterMismatch"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

InvalidObjectState { .api }

type InvalidObjectState struct {
    Message           *string
    ErrorCodeOverride *string
    StorageClass      StorageClass
    AccessTier        IntelligentTieringAccessTier
}

Object is archived and inaccessible until restored. Before you can retrieve an object stored in Glacier, you must first restore a copy.

Fields:

  • Message - Error message
  • ErrorCodeOverride - Error code override
  • StorageClass - Storage class of the object
  • AccessTier - Access tier (for Intelligent-Tiering)

Methods:

  • Error() string
  • ErrorCode() string - Returns "InvalidObjectState"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

InvalidRequest { .api }

type InvalidRequest struct {
    Message           *string
    ErrorCodeOverride *string
}

Invalid request error. May occur for various reasons including write offset mismatches or checksum type mismatches.

Methods:

  • Error() string
  • ErrorCode() string - Returns "InvalidRequest"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

InvalidWriteOffset { .api }

type InvalidWriteOffset struct {
    Message           *string
    ErrorCodeOverride *string
}

The write offset value specified does not match the current object size.

Methods:

  • Error() string
  • ErrorCode() string - Returns "InvalidWriteOffset"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

NoSuchBucket { .api }

type NoSuchBucket struct {
    Message           *string
    ErrorCodeOverride *string
}

The specified bucket does not exist.

Methods:

  • Error() string
  • ErrorCode() string - Returns "NoSuchBucket"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

NoSuchKey { .api }

type NoSuchKey struct {
    Message           *string
    ErrorCodeOverride *string
}

The specified key does not exist.

Methods:

  • Error() string
  • ErrorCode() string - Returns "NoSuchKey"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

NoSuchUpload { .api }

type NoSuchUpload struct {
    Message           *string
    ErrorCodeOverride *string
}

The specified multipart upload does not exist.

Methods:

  • Error() string
  • ErrorCode() string - Returns "NoSuchUpload"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

NotFound { .api }

type NotFound struct {
    Message           *string
    ErrorCodeOverride *string
}

The specified content does not exist.

Methods:

  • Error() string
  • ErrorCode() string - Returns "NotFound"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

ObjectAlreadyInActiveTierError { .api }

type ObjectAlreadyInActiveTierError struct {
    Message           *string
    ErrorCodeOverride *string
}

This action is not allowed against this storage tier. The object is already in the active tier.

Methods:

  • Error() string
  • ErrorCode() string - Returns "ObjectAlreadyInActiveTierError"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

ObjectNotInActiveTierError { .api }

type ObjectNotInActiveTierError struct {
    Message           *string
    ErrorCodeOverride *string
}

The source object of the COPY action is not in the active tier and is only stored in Amazon S3 Glacier.

Methods:

  • Error() string
  • ErrorCode() string - Returns "ObjectNotInActiveTierError"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

TooManyParts { .api }

type TooManyParts struct {
    Message           *string
    ErrorCodeOverride *string
}

You have attempted to add more parts than the maximum of 10,000 that are allowed for this object.

Methods:

  • Error() string
  • ErrorCode() string - Returns "TooManyParts"
  • ErrorMessage() string
  • ErrorFault() smithy.ErrorFault - Returns client fault

Additional Types

ErrorDetails { .api }

type ErrorDetails struct {
    ErrorCode    *string
    ErrorMessage *string
}

Error details returned when S3 Metadata is unable to create a metadata table during CreateBucketMetadataTableConfiguration or CreateBucketMetadataConfiguration operations.

Fields:

  • ErrorCode (*string) - The error code. Possible values include:

    • AccessDeniedCreatingResources - Insufficient permissions to create required resources
    • AccessDeniedWritingToTable - Unable to write to metadata table due to missing permissions
    • DestinationTableNotFound - The destination table doesn't exist
    • ServerInternalError - An internal error occurred
    • TableAlreadyExists - The specified table already exists
    • TableBucketNotFound - The table bucket doesn't exist
    • JournalTableAlreadyExists - A journal table already exists
    • InventoryTableAlreadyExists - An inventory table already exists
    • JournalTableNotAvailable - The journal table has a FAILED status
    • NoSuchBucket - The specified general purpose bucket doesn't exist
  • ErrorMessage (*string) - Detailed error message describing the issue and recommended resolution

Usage Context:

This type is returned as part of metadata configuration responses when table creation fails. The error provides specific guidance on how to resolve the issue, typically requiring deletion and recreation of the metadata configuration.

RecordExpiration { .api }

type RecordExpiration struct {
    Expiration ExpirationState  // Required
    Days       *int32
}

Journal table record expiration settings for a journal table in an S3 Metadata configuration.

Fields:

  • Expiration (ExpirationState, required) - Specifies whether journal table record expiration is enabled or disabled

    • ExpirationStateEnabled - Record expiration is enabled
    • ExpirationStateDisabled - Record expiration is disabled
  • Days (*int32) - Number of days to retain journal table records. Required when expiration is enabled. Valid range: 7 to 2147483647 days (minimum 7 days retention required)

Usage Example:

// Enable journal table record expiration with 30-day retention
recordExpiration := &types.RecordExpiration{
    Expiration: types.ExpirationStateEnabled,
    Days:       aws.Int32(30),
}

// Use in journal table configuration
journalConfig := &types.JournalTableConfigurationUpdates{
    RecordExpiration: recordExpiration,
}

Related Types:

  • JournalTableConfigurationUpdates - Contains record expiration settings
  • ExpirationState - Enum for enabled/disabled state

UnknownUnionMember { .api }

type UnknownUnionMember struct {
    Tag   string
    Value []byte
}

Returned when a union member is received over the wire with an unknown tag, providing forward compatibility with new union variants.

Fields:

  • Tag (string) - The unknown union member tag identifier
  • Value ([]byte) - Raw byte representation of the unknown union member value

Usage Context:

This type is automatically returned by union types when the SDK encounters a new union variant that wasn't known at the time the SDK version was released. This ensures forward compatibility - your code won't break when AWS adds new variants to existing union types.

Usage Example:

// When processing a union type that may have unknown variants
func processReplicationRuleFilter(filter types.ReplicationRuleFilter) error {
    switch v := filter.(type) {
    case *types.ReplicationRuleFilterMemberPrefix:
        fmt.Printf("Prefix filter: %s\n", v.Value)

    case *types.ReplicationRuleFilterMemberTag:
        fmt.Printf("Tag filter: %s=%s\n", *v.Value.Key, *v.Value.Value)

    case *types.ReplicationRuleFilterMemberAnd:
        fmt.Println("And filter with multiple conditions")

    case *types.UnknownUnionMember:
        // Handle unknown/future union variants gracefully
        fmt.Printf("Unknown filter type: %s\n", v.Tag)
        fmt.Printf("Raw value: %x\n", v.Value)
        // Log for investigation or handle with default behavior

    default:
        return fmt.Errorf("unexpected filter type")
    }

    return nil
}

Best Practices:

  1. Always include a case for UnknownUnionMember when switching on union types
  2. Log unknown variants for monitoring and investigation
  3. Implement graceful degradation or default behavior
  4. Upgrade SDK versions regularly to get support for new variants

GetBucketMetadataConfigurationResult { .api }

type GetBucketMetadataConfigurationResult struct {
    MetadataConfigurationResult *MetadataConfigurationResult  // Required
}

The S3 Metadata configuration for a general purpose bucket.

Fields:

  • MetadataConfigurationResult (*MetadataConfigurationResult, required) - The metadata configuration result containing table configurations and status information

Related Types:

  • MetadataConfigurationResult - Contains detailed configuration information for S3 Metadata tables

InventoryTableConfigurationUpdates { .api }

type InventoryTableConfigurationUpdates struct {
    ConfigurationState      InventoryConfigurationState                   // Required
    EncryptionConfiguration *MetadataTableEncryptionConfiguration
}

Specified updates to the S3 Metadata inventory table configuration.

Fields:

  • ConfigurationState (InventoryConfigurationState, required) - Configuration state of the inventory table

    • InventoryConfigurationStateEnabled - Inventory table is enabled
    • InventoryConfigurationStateDisabled - Inventory table is disabled
  • EncryptionConfiguration (*MetadataTableEncryptionConfiguration) - Encryption configuration for the inventory table

Usage Context:

Used when updating S3 Metadata inventory table settings as part of bucket metadata configuration.

JournalTableConfigurationUpdates { .api }

type JournalTableConfigurationUpdates struct {
    RecordExpiration *RecordExpiration  // Required
}

Specified updates to the S3 Metadata journal table configuration.

Fields:

  • RecordExpiration (*RecordExpiration, required) - Journal table record expiration settings controlling how long journal records are retained

Usage Example:

// Update journal table to retain records for 90 days
journalUpdates := &types.JournalTableConfigurationUpdates{
    RecordExpiration: &types.RecordExpiration{
        Expiration: types.ExpirationStateEnabled,
        Days:       aws.Int32(90),
    },
}

Usage Context:

Used when updating S3 Metadata journal table settings to control record retention and lifecycle management.

Summary

The S3 types package provides a comprehensive set of 257 types for working with Amazon S3:

  • 72 Enumeration Types: String-based types with predefined constants for storage classes, permissions, encryption types, events, and more
  • 172 Struct Types: Data structures for objects, buckets, configuration settings, multipart uploads, replication, lifecycle rules, notifications, analytics, inventory, and more
  • 13 Error Types: Specific error types for S3 operations with detailed error information
  • 3 Union Types: Flexible filter types for replication, lifecycle, and analytics

All types are fully documented with field descriptions, required/optional indicators, and usage notes. The types are used throughout the S3 client API for input parameters and output results.