{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.S3.Types.S3ServiceError
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.S3.Types.S3ServiceError where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.S3.Internal

-- | Container for all error elements.
--
-- /See:/ 'newS3ServiceError' smart constructor.
data S3ServiceError = S3ServiceError'
  { -- | The version ID of the error.
    S3ServiceError -> Maybe ObjectVersionId
versionId :: Prelude.Maybe ObjectVersionId,
    -- | The error key.
    S3ServiceError -> Maybe ObjectKey
key :: Prelude.Maybe ObjectKey,
    -- | The error code is a string that uniquely identifies an error condition.
    -- It is meant to be read and understood by programs that detect and handle
    -- errors by type.
    --
    -- __Amazon S3 error codes__
    --
    -- -   -   /Code:/ AccessDenied
    --
    --     -   /Description:/ Access Denied
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ AccountProblem
    --
    --     -   /Description:/ There is a problem with your Amazon Web Services
    --         account that prevents the action from completing successfully.
    --         Contact Amazon Web Services Support for further assistance.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ AllAccessDisabled
    --
    --     -   /Description:/ All access to this Amazon S3 resource has been
    --         disabled. Contact Amazon Web Services Support for further
    --         assistance.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ AmbiguousGrantByEmailAddress
    --
    --     -   /Description:/ The email address you provided is associated with
    --         more than one account.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ AuthorizationHeaderMalformed
    --
    --     -   /Description:/ The authorization header you provided is invalid.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /HTTP Status Code:/ N\/A
    --
    -- -   -   /Code:/ BadDigest
    --
    --     -   /Description:/ The Content-MD5 you specified did not match what
    --         we received.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ BucketAlreadyExists
    --
    --     -   /Description:/ The requested bucket name is not available. The
    --         bucket namespace is shared by all users of the system. Please
    --         select a different name and try again.
    --
    --     -   /HTTP Status Code:/ 409 Conflict
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ BucketAlreadyOwnedByYou
    --
    --     -   /Description:/ The bucket you tried to create already exists,
    --         and you own it. Amazon S3 returns this error in all Amazon Web
    --         Services Regions except in the North Virginia Region. For legacy
    --         compatibility, if you re-create an existing bucket that you
    --         already own in the North Virginia Region, Amazon S3 returns 200
    --         OK and resets the bucket access control lists (ACLs).
    --
    --     -   /Code:/ 409 Conflict (in all Regions except the North Virginia
    --         Region)
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ BucketNotEmpty
    --
    --     -   /Description:/ The bucket you tried to delete is not empty.
    --
    --     -   /HTTP Status Code:/ 409 Conflict
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ CredentialsNotSupported
    --
    --     -   /Description:/ This request does not support credentials.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ CrossLocationLoggingProhibited
    --
    --     -   /Description:/ Cross-location logging not allowed. Buckets in
    --         one geographic location cannot log information to a bucket in
    --         another location.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ EntityTooSmall
    --
    --     -   /Description:/ Your proposed upload is smaller than the minimum
    --         allowed object size.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ EntityTooLarge
    --
    --     -   /Description:/ Your proposed upload exceeds the maximum allowed
    --         object size.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ ExpiredToken
    --
    --     -   /Description:/ The provided token has expired.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ IllegalVersioningConfigurationException
    --
    --     -   /Description:/ Indicates that the versioning configuration
    --         specified in the request is invalid.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ IncompleteBody
    --
    --     -   /Description:/ You did not provide the number of bytes specified
    --         by the Content-Length HTTP header
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ IncorrectNumberOfFilesInPostRequest
    --
    --     -   /Description:/ POST requires exactly one file upload per
    --         request.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InlineDataTooLarge
    --
    --     -   /Description:/ Inline data exceeds the maximum allowed size.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InternalError
    --
    --     -   /Description:/ We encountered an internal error. Please try
    --         again.
    --
    --     -   /HTTP Status Code:/ 500 Internal Server Error
    --
    --     -   /SOAP Fault Code Prefix:/ Server
    --
    -- -   -   /Code:/ InvalidAccessKeyId
    --
    --     -   /Description:/ The Amazon Web Services access key ID you
    --         provided does not exist in our records.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidAddressingHeader
    --
    --     -   /Description:/ You must specify the Anonymous role.
    --
    --     -   /HTTP Status Code:/ N\/A
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidArgument
    --
    --     -   /Description:/ Invalid Argument
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidBucketName
    --
    --     -   /Description:/ The specified bucket is not valid.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidBucketState
    --
    --     -   /Description:/ The request is not valid with the current state
    --         of the bucket.
    --
    --     -   /HTTP Status Code:/ 409 Conflict
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidDigest
    --
    --     -   /Description:/ The Content-MD5 you specified is not valid.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidEncryptionAlgorithmError
    --
    --     -   /Description:/ The encryption request you specified is not
    --         valid. The valid value is AES256.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidLocationConstraint
    --
    --     -   /Description:/ The specified location constraint is not valid.
    --         For more information about Regions, see
    --         <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro How to Select a Region for Your Buckets>.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidObjectState
    --
    --     -   /Description:/ The action is not valid for the current state of
    --         the object.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidPart
    --
    --     -   /Description:/ One or more of the specified parts could not be
    --         found. The part might not have been uploaded, or the specified
    --         entity tag might not have matched the part\'s entity tag.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidPartOrder
    --
    --     -   /Description:/ The list of parts was not in ascending order.
    --         Parts list must be specified in order by part number.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidPayer
    --
    --     -   /Description:/ All access to this object has been disabled.
    --         Please contact Amazon Web Services Support for further
    --         assistance.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidPolicyDocument
    --
    --     -   /Description:/ The content of the form does not meet the
    --         conditions specified in the policy document.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidRange
    --
    --     -   /Description:/ The requested range cannot be satisfied.
    --
    --     -   /HTTP Status Code:/ 416 Requested Range Not Satisfiable
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Please use @AWS4-HMAC-SHA256@.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ SOAP requests must be made over an HTTPS
    --         connection.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
    --         for buckets with non-DNS compliant names.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
    --         for buckets with periods (.) in their names.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Amazon S3 Transfer Accelerate endpoint only
    --         supports virtual style requests.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Amazon S3 Transfer Accelerate is not configured
    --         on this bucket.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Amazon S3 Transfer Accelerate is disabled on this
    --         bucket.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
    --         on this bucket. Contact Amazon Web Services Support for more
    --         information.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidRequest
    --
    --     -   /Description:/ Amazon S3 Transfer Acceleration cannot be enabled
    --         on this bucket. Contact Amazon Web Services Support for more
    --         information.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /Code:/ N\/A
    --
    -- -   -   /Code:/ InvalidSecurity
    --
    --     -   /Description:/ The provided security credentials are not valid.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidSOAPRequest
    --
    --     -   /Description:/ The SOAP request body is invalid.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidStorageClass
    --
    --     -   /Description:/ The storage class you specified is not valid.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidTargetBucketForLogging
    --
    --     -   /Description:/ The target bucket for logging does not exist, is
    --         not owned by you, or does not have the appropriate grants for
    --         the log-delivery group.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidToken
    --
    --     -   /Description:/ The provided token is malformed or otherwise
    --         invalid.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ InvalidURI
    --
    --     -   /Description:/ Couldn\'t parse the specified URI.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ KeyTooLongError
    --
    --     -   /Description:/ Your key is too long.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MalformedACLError
    --
    --     -   /Description:/ The XML you provided was not well-formed or did
    --         not validate against our published schema.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MalformedPOSTRequest
    --
    --     -   /Description:/ The body of your POST request is not well-formed
    --         multipart\/form-data.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MalformedXML
    --
    --     -   /Description:/ This happens when the user sends malformed XML
    --         (XML that doesn\'t conform to the published XSD) for the
    --         configuration. The error message is, \"The XML you provided was
    --         not well-formed or did not validate against our published
    --         schema.\"
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MaxMessageLengthExceeded
    --
    --     -   /Description:/ Your request was too big.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MaxPostPreDataLengthExceededError
    --
    --     -   /Description:/ Your POST request fields preceding the upload
    --         file were too large.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MetadataTooLarge
    --
    --     -   /Description:/ Your metadata headers exceed the maximum allowed
    --         metadata size.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MethodNotAllowed
    --
    --     -   /Description:/ The specified method is not allowed against this
    --         resource.
    --
    --     -   /HTTP Status Code:/ 405 Method Not Allowed
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MissingAttachment
    --
    --     -   /Description:/ A SOAP attachment was expected, but none were
    --         found.
    --
    --     -   /HTTP Status Code:/ N\/A
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MissingContentLength
    --
    --     -   /Description:/ You must provide the Content-Length HTTP header.
    --
    --     -   /HTTP Status Code:/ 411 Length Required
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MissingRequestBodyError
    --
    --     -   /Description:/ This happens when the user sends an empty XML
    --         document as a request. The error message is, \"Request body is
    --         empty.\"
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MissingSecurityElement
    --
    --     -   /Description:/ The SOAP 1.1 request is missing a security
    --         element.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ MissingSecurityHeader
    --
    --     -   /Description:/ Your request is missing a required header.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NoLoggingStatusForKey
    --
    --     -   /Description:/ There is no such thing as a logging status
    --         subresource for a key.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NoSuchBucket
    --
    --     -   /Description:/ The specified bucket does not exist.
    --
    --     -   /HTTP Status Code:/ 404 Not Found
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NoSuchBucketPolicy
    --
    --     -   /Description:/ The specified bucket does not have a bucket
    --         policy.
    --
    --     -   /HTTP Status Code:/ 404 Not Found
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NoSuchKey
    --
    --     -   /Description:/ The specified key does not exist.
    --
    --     -   /HTTP Status Code:/ 404 Not Found
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NoSuchLifecycleConfiguration
    --
    --     -   /Description:/ The lifecycle configuration does not exist.
    --
    --     -   /HTTP Status Code:/ 404 Not Found
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NoSuchUpload
    --
    --     -   /Description:/ The specified multipart upload does not exist.
    --         The upload ID might be invalid, or the multipart upload might
    --         have been aborted or completed.
    --
    --     -   /HTTP Status Code:/ 404 Not Found
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NoSuchVersion
    --
    --     -   /Description:/ Indicates that the version ID specified in the
    --         request does not match an existing version.
    --
    --     -   /HTTP Status Code:/ 404 Not Found
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ NotImplemented
    --
    --     -   /Description:/ A header you provided implies functionality that
    --         is not implemented.
    --
    --     -   /HTTP Status Code:/ 501 Not Implemented
    --
    --     -   /SOAP Fault Code Prefix:/ Server
    --
    -- -   -   /Code:/ NotSignedUp
    --
    --     -   /Description:/ Your account is not signed up for the Amazon S3
    --         service. You must sign up before you can use Amazon S3. You can
    --         sign up at the following URL:
    --         <http://aws.amazon.com/s3 Amazon S3>
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ OperationAborted
    --
    --     -   /Description:/ A conflicting conditional action is currently in
    --         progress against this resource. Try again.
    --
    --     -   /HTTP Status Code:/ 409 Conflict
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ PermanentRedirect
    --
    --     -   /Description:/ The bucket you are attempting to access must be
    --         addressed using the specified endpoint. Send all future requests
    --         to this endpoint.
    --
    --     -   /HTTP Status Code:/ 301 Moved Permanently
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ PreconditionFailed
    --
    --     -   /Description:/ At least one of the preconditions you specified
    --         did not hold.
    --
    --     -   /HTTP Status Code:/ 412 Precondition Failed
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ Redirect
    --
    --     -   /Description:/ Temporary redirect.
    --
    --     -   /HTTP Status Code:/ 307 Moved Temporarily
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ RestoreAlreadyInProgress
    --
    --     -   /Description:/ Object restore is already in progress.
    --
    --     -   /HTTP Status Code:/ 409 Conflict
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ RequestIsNotMultiPartContent
    --
    --     -   /Description:/ Bucket POST must be of the enclosure-type
    --         multipart\/form-data.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ RequestTimeout
    --
    --     -   /Description:/ Your socket connection to the server was not read
    --         from or written to within the timeout period.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ RequestTimeTooSkewed
    --
    --     -   /Description:/ The difference between the request time and the
    --         server\'s time is too large.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ RequestTorrentOfBucketError
    --
    --     -   /Description:/ Requesting the torrent file of a bucket is not
    --         permitted.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ SignatureDoesNotMatch
    --
    --     -   /Description:/ The request signature we calculated does not
    --         match the signature you provided. Check your Amazon Web Services
    --         secret access key and signing method. For more information, see
    --         <https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html REST Authentication>
    --         and
    --         <https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html SOAP Authentication>
    --         for details.
    --
    --     -   /HTTP Status Code:/ 403 Forbidden
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ ServiceUnavailable
    --
    --     -   /Description:/ Reduce your request rate.
    --
    --     -   /HTTP Status Code:/ 503 Service Unavailable
    --
    --     -   /SOAP Fault Code Prefix:/ Server
    --
    -- -   -   /Code:/ SlowDown
    --
    --     -   /Description:/ Reduce your request rate.
    --
    --     -   /HTTP Status Code:/ 503 Slow Down
    --
    --     -   /SOAP Fault Code Prefix:/ Server
    --
    -- -   -   /Code:/ TemporaryRedirect
    --
    --     -   /Description:/ You are being redirected to the bucket while DNS
    --         updates.
    --
    --     -   /HTTP Status Code:/ 307 Moved Temporarily
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ TokenRefreshRequired
    --
    --     -   /Description:/ The provided token must be refreshed.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ TooManyBuckets
    --
    --     -   /Description:/ You have attempted to create more buckets than
    --         allowed.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ UnexpectedContent
    --
    --     -   /Description:/ This request does not support content.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ UnresolvableGrantByEmailAddress
    --
    --     -   /Description:/ The email address you provided does not match any
    --         account on record.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    --
    -- -   -   /Code:/ UserKeyMustBeSpecified
    --
    --     -   /Description:/ The bucket POST must contain the specified field
    --         name. If it is specified, check the order of the fields.
    --
    --     -   /HTTP Status Code:/ 400 Bad Request
    --
    --     -   /SOAP Fault Code Prefix:/ Client
    S3ServiceError -> Maybe Text
code :: Prelude.Maybe Prelude.Text,
    -- | The error message contains a generic description of the error condition
    -- in English. It is intended for a human audience. Simple programs display
    -- the message directly to the end user if they encounter an error
    -- condition they don\'t know how or don\'t care to handle. Sophisticated
    -- programs with more exhaustive error handling and proper
    -- internationalization are more likely to ignore the error message.
    S3ServiceError -> Maybe Text
message :: Prelude.Maybe Prelude.Text
  }
  deriving (S3ServiceError -> S3ServiceError -> Bool
(S3ServiceError -> S3ServiceError -> Bool)
-> (S3ServiceError -> S3ServiceError -> Bool) -> Eq S3ServiceError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: S3ServiceError -> S3ServiceError -> Bool
$c/= :: S3ServiceError -> S3ServiceError -> Bool
== :: S3ServiceError -> S3ServiceError -> Bool
$c== :: S3ServiceError -> S3ServiceError -> Bool
Prelude.Eq, ReadPrec [S3ServiceError]
ReadPrec S3ServiceError
Int -> ReadS S3ServiceError
ReadS [S3ServiceError]
(Int -> ReadS S3ServiceError)
-> ReadS [S3ServiceError]
-> ReadPrec S3ServiceError
-> ReadPrec [S3ServiceError]
-> Read S3ServiceError
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [S3ServiceError]
$creadListPrec :: ReadPrec [S3ServiceError]
readPrec :: ReadPrec S3ServiceError
$creadPrec :: ReadPrec S3ServiceError
readList :: ReadS [S3ServiceError]
$creadList :: ReadS [S3ServiceError]
readsPrec :: Int -> ReadS S3ServiceError
$creadsPrec :: Int -> ReadS S3ServiceError
Prelude.Read, Int -> S3ServiceError -> ShowS
[S3ServiceError] -> ShowS
S3ServiceError -> String
(Int -> S3ServiceError -> ShowS)
-> (S3ServiceError -> String)
-> ([S3ServiceError] -> ShowS)
-> Show S3ServiceError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [S3ServiceError] -> ShowS
$cshowList :: [S3ServiceError] -> ShowS
show :: S3ServiceError -> String
$cshow :: S3ServiceError -> String
showsPrec :: Int -> S3ServiceError -> ShowS
$cshowsPrec :: Int -> S3ServiceError -> ShowS
Prelude.Show, (forall x. S3ServiceError -> Rep S3ServiceError x)
-> (forall x. Rep S3ServiceError x -> S3ServiceError)
-> Generic S3ServiceError
forall x. Rep S3ServiceError x -> S3ServiceError
forall x. S3ServiceError -> Rep S3ServiceError x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep S3ServiceError x -> S3ServiceError
$cfrom :: forall x. S3ServiceError -> Rep S3ServiceError x
Prelude.Generic)

-- |
-- Create a value of 'S3ServiceError' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'versionId', 's3ServiceError_versionId' - The version ID of the error.
--
-- 'key', 's3ServiceError_key' - The error key.
--
-- 'code', 's3ServiceError_code' - The error code is a string that uniquely identifies an error condition.
-- It is meant to be read and understood by programs that detect and handle
-- errors by type.
--
-- __Amazon S3 error codes__
--
-- -   -   /Code:/ AccessDenied
--
--     -   /Description:/ Access Denied
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AccountProblem
--
--     -   /Description:/ There is a problem with your Amazon Web Services
--         account that prevents the action from completing successfully.
--         Contact Amazon Web Services Support for further assistance.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AllAccessDisabled
--
--     -   /Description:/ All access to this Amazon S3 resource has been
--         disabled. Contact Amazon Web Services Support for further
--         assistance.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AmbiguousGrantByEmailAddress
--
--     -   /Description:/ The email address you provided is associated with
--         more than one account.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AuthorizationHeaderMalformed
--
--     -   /Description:/ The authorization header you provided is invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /HTTP Status Code:/ N\/A
--
-- -   -   /Code:/ BadDigest
--
--     -   /Description:/ The Content-MD5 you specified did not match what
--         we received.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ BucketAlreadyExists
--
--     -   /Description:/ The requested bucket name is not available. The
--         bucket namespace is shared by all users of the system. Please
--         select a different name and try again.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ BucketAlreadyOwnedByYou
--
--     -   /Description:/ The bucket you tried to create already exists,
--         and you own it. Amazon S3 returns this error in all Amazon Web
--         Services Regions except in the North Virginia Region. For legacy
--         compatibility, if you re-create an existing bucket that you
--         already own in the North Virginia Region, Amazon S3 returns 200
--         OK and resets the bucket access control lists (ACLs).
--
--     -   /Code:/ 409 Conflict (in all Regions except the North Virginia
--         Region)
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ BucketNotEmpty
--
--     -   /Description:/ The bucket you tried to delete is not empty.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ CredentialsNotSupported
--
--     -   /Description:/ This request does not support credentials.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ CrossLocationLoggingProhibited
--
--     -   /Description:/ Cross-location logging not allowed. Buckets in
--         one geographic location cannot log information to a bucket in
--         another location.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ EntityTooSmall
--
--     -   /Description:/ Your proposed upload is smaller than the minimum
--         allowed object size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ EntityTooLarge
--
--     -   /Description:/ Your proposed upload exceeds the maximum allowed
--         object size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ ExpiredToken
--
--     -   /Description:/ The provided token has expired.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ IllegalVersioningConfigurationException
--
--     -   /Description:/ Indicates that the versioning configuration
--         specified in the request is invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ IncompleteBody
--
--     -   /Description:/ You did not provide the number of bytes specified
--         by the Content-Length HTTP header
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ IncorrectNumberOfFilesInPostRequest
--
--     -   /Description:/ POST requires exactly one file upload per
--         request.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InlineDataTooLarge
--
--     -   /Description:/ Inline data exceeds the maximum allowed size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InternalError
--
--     -   /Description:/ We encountered an internal error. Please try
--         again.
--
--     -   /HTTP Status Code:/ 500 Internal Server Error
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ InvalidAccessKeyId
--
--     -   /Description:/ The Amazon Web Services access key ID you
--         provided does not exist in our records.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidAddressingHeader
--
--     -   /Description:/ You must specify the Anonymous role.
--
--     -   /HTTP Status Code:/ N\/A
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidArgument
--
--     -   /Description:/ Invalid Argument
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidBucketName
--
--     -   /Description:/ The specified bucket is not valid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidBucketState
--
--     -   /Description:/ The request is not valid with the current state
--         of the bucket.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidDigest
--
--     -   /Description:/ The Content-MD5 you specified is not valid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidEncryptionAlgorithmError
--
--     -   /Description:/ The encryption request you specified is not
--         valid. The valid value is AES256.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidLocationConstraint
--
--     -   /Description:/ The specified location constraint is not valid.
--         For more information about Regions, see
--         <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro How to Select a Region for Your Buckets>.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidObjectState
--
--     -   /Description:/ The action is not valid for the current state of
--         the object.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPart
--
--     -   /Description:/ One or more of the specified parts could not be
--         found. The part might not have been uploaded, or the specified
--         entity tag might not have matched the part\'s entity tag.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPartOrder
--
--     -   /Description:/ The list of parts was not in ascending order.
--         Parts list must be specified in order by part number.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPayer
--
--     -   /Description:/ All access to this object has been disabled.
--         Please contact Amazon Web Services Support for further
--         assistance.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPolicyDocument
--
--     -   /Description:/ The content of the form does not meet the
--         conditions specified in the policy document.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidRange
--
--     -   /Description:/ The requested range cannot be satisfied.
--
--     -   /HTTP Status Code:/ 416 Requested Range Not Satisfiable
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Please use @AWS4-HMAC-SHA256@.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ SOAP requests must be made over an HTTPS
--         connection.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
--         for buckets with non-DNS compliant names.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
--         for buckets with periods (.) in their names.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Accelerate endpoint only
--         supports virtual style requests.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Accelerate is not configured
--         on this bucket.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Accelerate is disabled on this
--         bucket.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
--         on this bucket. Contact Amazon Web Services Support for more
--         information.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration cannot be enabled
--         on this bucket. Contact Amazon Web Services Support for more
--         information.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidSecurity
--
--     -   /Description:/ The provided security credentials are not valid.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidSOAPRequest
--
--     -   /Description:/ The SOAP request body is invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidStorageClass
--
--     -   /Description:/ The storage class you specified is not valid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidTargetBucketForLogging
--
--     -   /Description:/ The target bucket for logging does not exist, is
--         not owned by you, or does not have the appropriate grants for
--         the log-delivery group.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidToken
--
--     -   /Description:/ The provided token is malformed or otherwise
--         invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidURI
--
--     -   /Description:/ Couldn\'t parse the specified URI.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ KeyTooLongError
--
--     -   /Description:/ Your key is too long.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MalformedACLError
--
--     -   /Description:/ The XML you provided was not well-formed or did
--         not validate against our published schema.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MalformedPOSTRequest
--
--     -   /Description:/ The body of your POST request is not well-formed
--         multipart\/form-data.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MalformedXML
--
--     -   /Description:/ This happens when the user sends malformed XML
--         (XML that doesn\'t conform to the published XSD) for the
--         configuration. The error message is, \"The XML you provided was
--         not well-formed or did not validate against our published
--         schema.\"
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MaxMessageLengthExceeded
--
--     -   /Description:/ Your request was too big.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MaxPostPreDataLengthExceededError
--
--     -   /Description:/ Your POST request fields preceding the upload
--         file were too large.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MetadataTooLarge
--
--     -   /Description:/ Your metadata headers exceed the maximum allowed
--         metadata size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MethodNotAllowed
--
--     -   /Description:/ The specified method is not allowed against this
--         resource.
--
--     -   /HTTP Status Code:/ 405 Method Not Allowed
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingAttachment
--
--     -   /Description:/ A SOAP attachment was expected, but none were
--         found.
--
--     -   /HTTP Status Code:/ N\/A
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingContentLength
--
--     -   /Description:/ You must provide the Content-Length HTTP header.
--
--     -   /HTTP Status Code:/ 411 Length Required
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingRequestBodyError
--
--     -   /Description:/ This happens when the user sends an empty XML
--         document as a request. The error message is, \"Request body is
--         empty.\"
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingSecurityElement
--
--     -   /Description:/ The SOAP 1.1 request is missing a security
--         element.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingSecurityHeader
--
--     -   /Description:/ Your request is missing a required header.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoLoggingStatusForKey
--
--     -   /Description:/ There is no such thing as a logging status
--         subresource for a key.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchBucket
--
--     -   /Description:/ The specified bucket does not exist.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchBucketPolicy
--
--     -   /Description:/ The specified bucket does not have a bucket
--         policy.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchKey
--
--     -   /Description:/ The specified key does not exist.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchLifecycleConfiguration
--
--     -   /Description:/ The lifecycle configuration does not exist.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchUpload
--
--     -   /Description:/ The specified multipart upload does not exist.
--         The upload ID might be invalid, or the multipart upload might
--         have been aborted or completed.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchVersion
--
--     -   /Description:/ Indicates that the version ID specified in the
--         request does not match an existing version.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NotImplemented
--
--     -   /Description:/ A header you provided implies functionality that
--         is not implemented.
--
--     -   /HTTP Status Code:/ 501 Not Implemented
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ NotSignedUp
--
--     -   /Description:/ Your account is not signed up for the Amazon S3
--         service. You must sign up before you can use Amazon S3. You can
--         sign up at the following URL:
--         <http://aws.amazon.com/s3 Amazon S3>
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ OperationAborted
--
--     -   /Description:/ A conflicting conditional action is currently in
--         progress against this resource. Try again.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ PermanentRedirect
--
--     -   /Description:/ The bucket you are attempting to access must be
--         addressed using the specified endpoint. Send all future requests
--         to this endpoint.
--
--     -   /HTTP Status Code:/ 301 Moved Permanently
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ PreconditionFailed
--
--     -   /Description:/ At least one of the preconditions you specified
--         did not hold.
--
--     -   /HTTP Status Code:/ 412 Precondition Failed
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ Redirect
--
--     -   /Description:/ Temporary redirect.
--
--     -   /HTTP Status Code:/ 307 Moved Temporarily
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RestoreAlreadyInProgress
--
--     -   /Description:/ Object restore is already in progress.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestIsNotMultiPartContent
--
--     -   /Description:/ Bucket POST must be of the enclosure-type
--         multipart\/form-data.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestTimeout
--
--     -   /Description:/ Your socket connection to the server was not read
--         from or written to within the timeout period.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestTimeTooSkewed
--
--     -   /Description:/ The difference between the request time and the
--         server\'s time is too large.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestTorrentOfBucketError
--
--     -   /Description:/ Requesting the torrent file of a bucket is not
--         permitted.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ SignatureDoesNotMatch
--
--     -   /Description:/ The request signature we calculated does not
--         match the signature you provided. Check your Amazon Web Services
--         secret access key and signing method. For more information, see
--         <https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html REST Authentication>
--         and
--         <https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html SOAP Authentication>
--         for details.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ ServiceUnavailable
--
--     -   /Description:/ Reduce your request rate.
--
--     -   /HTTP Status Code:/ 503 Service Unavailable
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ SlowDown
--
--     -   /Description:/ Reduce your request rate.
--
--     -   /HTTP Status Code:/ 503 Slow Down
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ TemporaryRedirect
--
--     -   /Description:/ You are being redirected to the bucket while DNS
--         updates.
--
--     -   /HTTP Status Code:/ 307 Moved Temporarily
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ TokenRefreshRequired
--
--     -   /Description:/ The provided token must be refreshed.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ TooManyBuckets
--
--     -   /Description:/ You have attempted to create more buckets than
--         allowed.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ UnexpectedContent
--
--     -   /Description:/ This request does not support content.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ UnresolvableGrantByEmailAddress
--
--     -   /Description:/ The email address you provided does not match any
--         account on record.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ UserKeyMustBeSpecified
--
--     -   /Description:/ The bucket POST must contain the specified field
--         name. If it is specified, check the order of the fields.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- 'message', 's3ServiceError_message' - The error message contains a generic description of the error condition
-- in English. It is intended for a human audience. Simple programs display
-- the message directly to the end user if they encounter an error
-- condition they don\'t know how or don\'t care to handle. Sophisticated
-- programs with more exhaustive error handling and proper
-- internationalization are more likely to ignore the error message.
newS3ServiceError ::
  S3ServiceError
newS3ServiceError :: S3ServiceError
newS3ServiceError =
  S3ServiceError' :: Maybe ObjectVersionId
-> Maybe ObjectKey -> Maybe Text -> Maybe Text -> S3ServiceError
S3ServiceError'
    { $sel:versionId:S3ServiceError' :: Maybe ObjectVersionId
versionId = Maybe ObjectVersionId
forall a. Maybe a
Prelude.Nothing,
      $sel:key:S3ServiceError' :: Maybe ObjectKey
key = Maybe ObjectKey
forall a. Maybe a
Prelude.Nothing,
      $sel:code:S3ServiceError' :: Maybe Text
code = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:message:S3ServiceError' :: Maybe Text
message = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The version ID of the error.
s3ServiceError_versionId :: Lens.Lens' S3ServiceError (Prelude.Maybe ObjectVersionId)
s3ServiceError_versionId :: (Maybe ObjectVersionId -> f (Maybe ObjectVersionId))
-> S3ServiceError -> f S3ServiceError
s3ServiceError_versionId = (S3ServiceError -> Maybe ObjectVersionId)
-> (S3ServiceError -> Maybe ObjectVersionId -> S3ServiceError)
-> Lens
     S3ServiceError
     S3ServiceError
     (Maybe ObjectVersionId)
     (Maybe ObjectVersionId)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\S3ServiceError' {Maybe ObjectVersionId
versionId :: Maybe ObjectVersionId
$sel:versionId:S3ServiceError' :: S3ServiceError -> Maybe ObjectVersionId
versionId} -> Maybe ObjectVersionId
versionId) (\s :: S3ServiceError
s@S3ServiceError' {} Maybe ObjectVersionId
a -> S3ServiceError
s {$sel:versionId:S3ServiceError' :: Maybe ObjectVersionId
versionId = Maybe ObjectVersionId
a} :: S3ServiceError)

-- | The error key.
s3ServiceError_key :: Lens.Lens' S3ServiceError (Prelude.Maybe ObjectKey)
s3ServiceError_key :: (Maybe ObjectKey -> f (Maybe ObjectKey))
-> S3ServiceError -> f S3ServiceError
s3ServiceError_key = (S3ServiceError -> Maybe ObjectKey)
-> (S3ServiceError -> Maybe ObjectKey -> S3ServiceError)
-> Lens
     S3ServiceError S3ServiceError (Maybe ObjectKey) (Maybe ObjectKey)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\S3ServiceError' {Maybe ObjectKey
key :: Maybe ObjectKey
$sel:key:S3ServiceError' :: S3ServiceError -> Maybe ObjectKey
key} -> Maybe ObjectKey
key) (\s :: S3ServiceError
s@S3ServiceError' {} Maybe ObjectKey
a -> S3ServiceError
s {$sel:key:S3ServiceError' :: Maybe ObjectKey
key = Maybe ObjectKey
a} :: S3ServiceError)

-- | The error code is a string that uniquely identifies an error condition.
-- It is meant to be read and understood by programs that detect and handle
-- errors by type.
--
-- __Amazon S3 error codes__
--
-- -   -   /Code:/ AccessDenied
--
--     -   /Description:/ Access Denied
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AccountProblem
--
--     -   /Description:/ There is a problem with your Amazon Web Services
--         account that prevents the action from completing successfully.
--         Contact Amazon Web Services Support for further assistance.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AllAccessDisabled
--
--     -   /Description:/ All access to this Amazon S3 resource has been
--         disabled. Contact Amazon Web Services Support for further
--         assistance.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AmbiguousGrantByEmailAddress
--
--     -   /Description:/ The email address you provided is associated with
--         more than one account.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ AuthorizationHeaderMalformed
--
--     -   /Description:/ The authorization header you provided is invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /HTTP Status Code:/ N\/A
--
-- -   -   /Code:/ BadDigest
--
--     -   /Description:/ The Content-MD5 you specified did not match what
--         we received.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ BucketAlreadyExists
--
--     -   /Description:/ The requested bucket name is not available. The
--         bucket namespace is shared by all users of the system. Please
--         select a different name and try again.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ BucketAlreadyOwnedByYou
--
--     -   /Description:/ The bucket you tried to create already exists,
--         and you own it. Amazon S3 returns this error in all Amazon Web
--         Services Regions except in the North Virginia Region. For legacy
--         compatibility, if you re-create an existing bucket that you
--         already own in the North Virginia Region, Amazon S3 returns 200
--         OK and resets the bucket access control lists (ACLs).
--
--     -   /Code:/ 409 Conflict (in all Regions except the North Virginia
--         Region)
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ BucketNotEmpty
--
--     -   /Description:/ The bucket you tried to delete is not empty.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ CredentialsNotSupported
--
--     -   /Description:/ This request does not support credentials.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ CrossLocationLoggingProhibited
--
--     -   /Description:/ Cross-location logging not allowed. Buckets in
--         one geographic location cannot log information to a bucket in
--         another location.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ EntityTooSmall
--
--     -   /Description:/ Your proposed upload is smaller than the minimum
--         allowed object size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ EntityTooLarge
--
--     -   /Description:/ Your proposed upload exceeds the maximum allowed
--         object size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ ExpiredToken
--
--     -   /Description:/ The provided token has expired.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ IllegalVersioningConfigurationException
--
--     -   /Description:/ Indicates that the versioning configuration
--         specified in the request is invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ IncompleteBody
--
--     -   /Description:/ You did not provide the number of bytes specified
--         by the Content-Length HTTP header
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ IncorrectNumberOfFilesInPostRequest
--
--     -   /Description:/ POST requires exactly one file upload per
--         request.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InlineDataTooLarge
--
--     -   /Description:/ Inline data exceeds the maximum allowed size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InternalError
--
--     -   /Description:/ We encountered an internal error. Please try
--         again.
--
--     -   /HTTP Status Code:/ 500 Internal Server Error
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ InvalidAccessKeyId
--
--     -   /Description:/ The Amazon Web Services access key ID you
--         provided does not exist in our records.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidAddressingHeader
--
--     -   /Description:/ You must specify the Anonymous role.
--
--     -   /HTTP Status Code:/ N\/A
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidArgument
--
--     -   /Description:/ Invalid Argument
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidBucketName
--
--     -   /Description:/ The specified bucket is not valid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidBucketState
--
--     -   /Description:/ The request is not valid with the current state
--         of the bucket.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidDigest
--
--     -   /Description:/ The Content-MD5 you specified is not valid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidEncryptionAlgorithmError
--
--     -   /Description:/ The encryption request you specified is not
--         valid. The valid value is AES256.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidLocationConstraint
--
--     -   /Description:/ The specified location constraint is not valid.
--         For more information about Regions, see
--         <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro How to Select a Region for Your Buckets>.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidObjectState
--
--     -   /Description:/ The action is not valid for the current state of
--         the object.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPart
--
--     -   /Description:/ One or more of the specified parts could not be
--         found. The part might not have been uploaded, or the specified
--         entity tag might not have matched the part\'s entity tag.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPartOrder
--
--     -   /Description:/ The list of parts was not in ascending order.
--         Parts list must be specified in order by part number.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPayer
--
--     -   /Description:/ All access to this object has been disabled.
--         Please contact Amazon Web Services Support for further
--         assistance.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidPolicyDocument
--
--     -   /Description:/ The content of the form does not meet the
--         conditions specified in the policy document.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidRange
--
--     -   /Description:/ The requested range cannot be satisfied.
--
--     -   /HTTP Status Code:/ 416 Requested Range Not Satisfiable
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Please use @AWS4-HMAC-SHA256@.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ SOAP requests must be made over an HTTPS
--         connection.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
--         for buckets with non-DNS compliant names.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
--         for buckets with periods (.) in their names.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Accelerate endpoint only
--         supports virtual style requests.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Accelerate is not configured
--         on this bucket.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Accelerate is disabled on this
--         bucket.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration is not supported
--         on this bucket. Contact Amazon Web Services Support for more
--         information.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidRequest
--
--     -   /Description:/ Amazon S3 Transfer Acceleration cannot be enabled
--         on this bucket. Contact Amazon Web Services Support for more
--         information.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /Code:/ N\/A
--
-- -   -   /Code:/ InvalidSecurity
--
--     -   /Description:/ The provided security credentials are not valid.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidSOAPRequest
--
--     -   /Description:/ The SOAP request body is invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidStorageClass
--
--     -   /Description:/ The storage class you specified is not valid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidTargetBucketForLogging
--
--     -   /Description:/ The target bucket for logging does not exist, is
--         not owned by you, or does not have the appropriate grants for
--         the log-delivery group.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidToken
--
--     -   /Description:/ The provided token is malformed or otherwise
--         invalid.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ InvalidURI
--
--     -   /Description:/ Couldn\'t parse the specified URI.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ KeyTooLongError
--
--     -   /Description:/ Your key is too long.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MalformedACLError
--
--     -   /Description:/ The XML you provided was not well-formed or did
--         not validate against our published schema.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MalformedPOSTRequest
--
--     -   /Description:/ The body of your POST request is not well-formed
--         multipart\/form-data.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MalformedXML
--
--     -   /Description:/ This happens when the user sends malformed XML
--         (XML that doesn\'t conform to the published XSD) for the
--         configuration. The error message is, \"The XML you provided was
--         not well-formed or did not validate against our published
--         schema.\"
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MaxMessageLengthExceeded
--
--     -   /Description:/ Your request was too big.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MaxPostPreDataLengthExceededError
--
--     -   /Description:/ Your POST request fields preceding the upload
--         file were too large.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MetadataTooLarge
--
--     -   /Description:/ Your metadata headers exceed the maximum allowed
--         metadata size.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MethodNotAllowed
--
--     -   /Description:/ The specified method is not allowed against this
--         resource.
--
--     -   /HTTP Status Code:/ 405 Method Not Allowed
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingAttachment
--
--     -   /Description:/ A SOAP attachment was expected, but none were
--         found.
--
--     -   /HTTP Status Code:/ N\/A
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingContentLength
--
--     -   /Description:/ You must provide the Content-Length HTTP header.
--
--     -   /HTTP Status Code:/ 411 Length Required
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingRequestBodyError
--
--     -   /Description:/ This happens when the user sends an empty XML
--         document as a request. The error message is, \"Request body is
--         empty.\"
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingSecurityElement
--
--     -   /Description:/ The SOAP 1.1 request is missing a security
--         element.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ MissingSecurityHeader
--
--     -   /Description:/ Your request is missing a required header.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoLoggingStatusForKey
--
--     -   /Description:/ There is no such thing as a logging status
--         subresource for a key.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchBucket
--
--     -   /Description:/ The specified bucket does not exist.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchBucketPolicy
--
--     -   /Description:/ The specified bucket does not have a bucket
--         policy.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchKey
--
--     -   /Description:/ The specified key does not exist.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchLifecycleConfiguration
--
--     -   /Description:/ The lifecycle configuration does not exist.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchUpload
--
--     -   /Description:/ The specified multipart upload does not exist.
--         The upload ID might be invalid, or the multipart upload might
--         have been aborted or completed.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NoSuchVersion
--
--     -   /Description:/ Indicates that the version ID specified in the
--         request does not match an existing version.
--
--     -   /HTTP Status Code:/ 404 Not Found
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ NotImplemented
--
--     -   /Description:/ A header you provided implies functionality that
--         is not implemented.
--
--     -   /HTTP Status Code:/ 501 Not Implemented
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ NotSignedUp
--
--     -   /Description:/ Your account is not signed up for the Amazon S3
--         service. You must sign up before you can use Amazon S3. You can
--         sign up at the following URL:
--         <http://aws.amazon.com/s3 Amazon S3>
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ OperationAborted
--
--     -   /Description:/ A conflicting conditional action is currently in
--         progress against this resource. Try again.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ PermanentRedirect
--
--     -   /Description:/ The bucket you are attempting to access must be
--         addressed using the specified endpoint. Send all future requests
--         to this endpoint.
--
--     -   /HTTP Status Code:/ 301 Moved Permanently
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ PreconditionFailed
--
--     -   /Description:/ At least one of the preconditions you specified
--         did not hold.
--
--     -   /HTTP Status Code:/ 412 Precondition Failed
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ Redirect
--
--     -   /Description:/ Temporary redirect.
--
--     -   /HTTP Status Code:/ 307 Moved Temporarily
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RestoreAlreadyInProgress
--
--     -   /Description:/ Object restore is already in progress.
--
--     -   /HTTP Status Code:/ 409 Conflict
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestIsNotMultiPartContent
--
--     -   /Description:/ Bucket POST must be of the enclosure-type
--         multipart\/form-data.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestTimeout
--
--     -   /Description:/ Your socket connection to the server was not read
--         from or written to within the timeout period.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestTimeTooSkewed
--
--     -   /Description:/ The difference between the request time and the
--         server\'s time is too large.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ RequestTorrentOfBucketError
--
--     -   /Description:/ Requesting the torrent file of a bucket is not
--         permitted.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ SignatureDoesNotMatch
--
--     -   /Description:/ The request signature we calculated does not
--         match the signature you provided. Check your Amazon Web Services
--         secret access key and signing method. For more information, see
--         <https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html REST Authentication>
--         and
--         <https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html SOAP Authentication>
--         for details.
--
--     -   /HTTP Status Code:/ 403 Forbidden
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ ServiceUnavailable
--
--     -   /Description:/ Reduce your request rate.
--
--     -   /HTTP Status Code:/ 503 Service Unavailable
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ SlowDown
--
--     -   /Description:/ Reduce your request rate.
--
--     -   /HTTP Status Code:/ 503 Slow Down
--
--     -   /SOAP Fault Code Prefix:/ Server
--
-- -   -   /Code:/ TemporaryRedirect
--
--     -   /Description:/ You are being redirected to the bucket while DNS
--         updates.
--
--     -   /HTTP Status Code:/ 307 Moved Temporarily
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ TokenRefreshRequired
--
--     -   /Description:/ The provided token must be refreshed.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ TooManyBuckets
--
--     -   /Description:/ You have attempted to create more buckets than
--         allowed.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ UnexpectedContent
--
--     -   /Description:/ This request does not support content.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ UnresolvableGrantByEmailAddress
--
--     -   /Description:/ The email address you provided does not match any
--         account on record.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
--
-- -   -   /Code:/ UserKeyMustBeSpecified
--
--     -   /Description:/ The bucket POST must contain the specified field
--         name. If it is specified, check the order of the fields.
--
--     -   /HTTP Status Code:/ 400 Bad Request
--
--     -   /SOAP Fault Code Prefix:/ Client
s3ServiceError_code :: Lens.Lens' S3ServiceError (Prelude.Maybe Prelude.Text)
s3ServiceError_code :: (Maybe Text -> f (Maybe Text))
-> S3ServiceError -> f S3ServiceError
s3ServiceError_code = (S3ServiceError -> Maybe Text)
-> (S3ServiceError -> Maybe Text -> S3ServiceError)
-> Lens S3ServiceError S3ServiceError (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\S3ServiceError' {Maybe Text
code :: Maybe Text
$sel:code:S3ServiceError' :: S3ServiceError -> Maybe Text
code} -> Maybe Text
code) (\s :: S3ServiceError
s@S3ServiceError' {} Maybe Text
a -> S3ServiceError
s {$sel:code:S3ServiceError' :: Maybe Text
code = Maybe Text
a} :: S3ServiceError)

-- | The error message contains a generic description of the error condition
-- in English. It is intended for a human audience. Simple programs display
-- the message directly to the end user if they encounter an error
-- condition they don\'t know how or don\'t care to handle. Sophisticated
-- programs with more exhaustive error handling and proper
-- internationalization are more likely to ignore the error message.
s3ServiceError_message :: Lens.Lens' S3ServiceError (Prelude.Maybe Prelude.Text)
s3ServiceError_message :: (Maybe Text -> f (Maybe Text))
-> S3ServiceError -> f S3ServiceError
s3ServiceError_message = (S3ServiceError -> Maybe Text)
-> (S3ServiceError -> Maybe Text -> S3ServiceError)
-> Lens S3ServiceError S3ServiceError (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\S3ServiceError' {Maybe Text
message :: Maybe Text
$sel:message:S3ServiceError' :: S3ServiceError -> Maybe Text
message} -> Maybe Text
message) (\s :: S3ServiceError
s@S3ServiceError' {} Maybe Text
a -> S3ServiceError
s {$sel:message:S3ServiceError' :: Maybe Text
message = Maybe Text
a} :: S3ServiceError)

instance Core.FromXML S3ServiceError where
  parseXML :: [Node] -> Either String S3ServiceError
parseXML [Node]
x =
    Maybe ObjectVersionId
-> Maybe ObjectKey -> Maybe Text -> Maybe Text -> S3ServiceError
S3ServiceError'
      (Maybe ObjectVersionId
 -> Maybe ObjectKey -> Maybe Text -> Maybe Text -> S3ServiceError)
-> Either String (Maybe ObjectVersionId)
-> Either
     String
     (Maybe ObjectKey -> Maybe Text -> Maybe Text -> S3ServiceError)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x [Node] -> Text -> Either String (Maybe ObjectVersionId)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"VersionId")
      Either
  String
  (Maybe ObjectKey -> Maybe Text -> Maybe Text -> S3ServiceError)
-> Either String (Maybe ObjectKey)
-> Either String (Maybe Text -> Maybe Text -> S3ServiceError)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ObjectKey)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Key")
      Either String (Maybe Text -> Maybe Text -> S3ServiceError)
-> Either String (Maybe Text)
-> Either String (Maybe Text -> S3ServiceError)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Code")
      Either String (Maybe Text -> S3ServiceError)
-> Either String (Maybe Text) -> Either String S3ServiceError
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Message")

instance Prelude.Hashable S3ServiceError

instance Prelude.NFData S3ServiceError