package middleware

const (
	ListBucketsOperation = "ListBuckets"

	// bucket operations.

	OptionsBucketOperation             = "OptionsBucket"
	HeadBucketOperation                = "HeadBucket"
	ListMultipartUploadsOperation      = "ListMultipartUploads"
	GetBucketLocationOperation         = "GetBucketLocation"
	GetBucketPolicyStatusOperation     = "GetBucketPolicyStatus"
	GetBucketPolicyOperation           = "GetBucketPolicy"
	GetBucketLifecycleOperation        = "GetBucketLifecycle"
	GetBucketEncryptionOperation       = "GetBucketEncryption"
	GetBucketCorsOperation             = "GetBucketCors"
	GetBucketACLOperation              = "GetBucketACL"
	GetBucketWebsiteOperation          = "GetBucketWebsite"
	GetBucketAccelerateOperation       = "GetBucketAccelerate"
	GetBucketRequestPaymentOperation   = "GetBucketRequestPayment"
	GetBucketLoggingOperation          = "GetBucketLogging"
	GetBucketReplicationOperation      = "GetBucketReplication"
	GetBucketTaggingOperation          = "GetBucketTagging"
	GetBucketObjectLockConfigOperation = "GetBucketObjectLockConfig"
	GetBucketVersioningOperation       = "GetBucketVersioning"
	GetBucketNotificationOperation     = "GetBucketNotification"
	ListenBucketNotificationOperation  = "ListenBucketNotification"
	ListBucketObjectVersionsOperation  = "ListBucketObjectVersions"
	ListObjectsV2MOperation            = "ListObjectsV2M"
	ListObjectsV2Operation             = "ListObjectsV2"
	ListObjectsV1Operation             = "ListObjectsV1"
	PutBucketCorsOperation             = "PutBucketCors"
	PutBucketACLOperation              = "PutBucketACL"
	PutBucketLifecycleOperation        = "PutBucketLifecycle"
	PutBucketEncryptionOperation       = "PutBucketEncryption"
	PutBucketPolicyOperation           = "PutBucketPolicy"
	PutBucketObjectLockConfigOperation = "PutBucketObjectLockConfig"
	PutBucketTaggingOperation          = "PutBucketTagging"
	PutBucketVersioningOperation       = "PutBucketVersioning"
	PutBucketNotificationOperation     = "PutBucketNotification"
	CreateBucketOperation              = "CreateBucket"
	DeleteMultipleObjectsOperation     = "DeleteMultipleObjects"
	PostObjectOperation                = "PostObject"
	DeleteBucketCorsOperation          = "DeleteBucketCors"
	DeleteBucketWebsiteOperation       = "DeleteBucketWebsite"
	DeleteBucketTaggingOperation       = "DeleteBucketTagging"
	DeleteBucketPolicyOperation        = "DeleteBucketPolicy"
	DeleteBucketLifecycleOperation     = "DeleteBucketLifecycle"
	DeleteBucketEncryptionOperation    = "DeleteBucketEncryption"
	DeleteBucketOperation              = "DeleteBucket"

	// object operations.

	OptionsObjectOperation           = "OptionsObject"
	HeadObjectOperation              = "HeadObject"
	ListPartsOperation               = "ListParts"
	GetObjectACLOperation            = "GetObjectACL"
	GetObjectTaggingOperation        = "GetObjectTagging"
	GetObjectRetentionOperation      = "GetObjectRetention"
	GetObjectLegalHoldOperation      = "GetObjectLegalHold"
	GetObjectAttributesOperation     = "GetObjectAttributes"
	GetObjectOperation               = "GetObject"
	UploadPartCopyOperation          = "UploadPartCopy"
	UploadPartOperation              = "UploadPart"
	PutObjectACLOperation            = "PutObjectACL"
	PutObjectTaggingOperation        = "PutObjectTagging"
	CopyObjectOperation              = "CopyObject"
	PutObjectRetentionOperation      = "PutObjectRetention"
	PutObjectLegalHoldOperation      = "PutObjectLegalHold"
	PutObjectOperation               = "PutObject"
	CompleteMultipartUploadOperation = "CompleteMultipartUpload"
	CreateMultipartUploadOperation   = "CreateMultipartUpload"
	SelectObjectContentOperation     = "SelectObjectContent"
	AbortMultipartUploadOperation    = "AbortMultipartUpload"
	DeleteObjectTaggingOperation     = "DeleteObjectTagging"
	DeleteObjectOperation            = "DeleteObject"
)

const (
	UploadsQuery        = "uploads"
	LocationQuery       = "location"
	PolicyStatusQuery   = "policyStatus"
	PolicyQuery         = "policy"
	LifecycleQuery      = "lifecycle"
	EncryptionQuery     = "encryption"
	CorsQuery           = "cors"
	ACLQuery            = "acl"
	WebsiteQuery        = "website"
	AccelerateQuery     = "accelerate"
	RequestPaymentQuery = "requestPayment"
	LoggingQuery        = "logging"
	ReplicationQuery    = "replication"
	TaggingQuery        = "tagging"
	ObjectLockQuery     = "object-lock"
	VersioningQuery     = "versioning"
	NotificationQuery   = "notification"
	EventsQuery         = "events"
	VersionsQuery       = "versions"
	ListTypeQuery       = "list-type"
	MetadataQuery       = "metadata"
	DeleteQuery         = "delete"
	UploadIDQuery       = "uploadId"
	RetentionQuery      = "retention"
	LegalQuery          = "legal"
	AttributesQuery     = "attributes"
	PartNumberQuery     = "partNumber"
	LegalHoldQuery      = "legal-hold"
)