-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Simple Storage Service SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.S3</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-s3
@version 1.4.5


module Network.AWS.S3.Types

-- | API version <tt>2006-03-01</tt> of the Amazon Simple Storage Service
--   SDK configuration.
s3 :: Service

-- | Prism for BucketAlreadyOwnedByYou' errors.
_BucketAlreadyOwnedByYou :: AsError a => Getting (First ServiceError) a ServiceError

-- | This operation is not allowed against this storage tier
_ObjectAlreadyInActiveTierError :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_BucketAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError

-- | The source object of the COPY operation is not in the active tier and
--   is only stored in Amazon Glacier.
_ObjectNotInActiveTierError :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified multipart upload does not exist.
_NoSuchUpload :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified bucket does not exist.
_NoSuchBucket :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified key does not exist.
_NoSuchKey :: AsError a => Getting (First ServiceError) a ServiceError

-- | The available AWS regions.
data Region :: *

-- | US East ('us-east-1').
NorthVirginia :: Region

-- | US East ('us-east-2').
Ohio :: Region

-- | US West ('us-west-1').
NorthCalifornia :: Region

-- | US West ('us-west-2').
Oregon :: Region

-- | Asia Pacific ('ap-northeast-1').
Tokyo :: Region

-- | Asia Pacific ('ap-northeast-2').
Seoul :: Region

-- | Asia Pacific ('ap-south-1').
Mumbai :: Region

-- | Asia Pacific ('ap-southeast-1').
Singapore :: Region

-- | Asia Pacific ('ap-southeast-2').
Sydney :: Region

-- | South America ('sa-east-1').
SaoPaulo :: Region

-- | EU ('eu-west-1').
Ireland :: Region

-- | EU ('eu-central-1').
Frankfurt :: Region

-- | US GovCloud ('us-gov-west-1').
GovCloud :: Region

-- | US GovCloud FIPS (S3 Only, 'fips-us-gov-west-1').
GovCloudFIPS :: Region

-- | China ('cn-north-1').
Beijing :: Region
newtype BucketName
BucketName :: Text -> BucketName
newtype ETag
ETag :: ByteString -> ETag
newtype ObjectVersionId
ObjectVersionId :: Text -> ObjectVersionId
newtype LocationConstraint
LocationConstraint :: Region -> LocationConstraint
[constraintRegion] :: LocationConstraint -> Region
_LocationConstraint :: Iso' LocationConstraint Region
type Delimiter = Char
newtype ObjectKey
ObjectKey :: Text -> ObjectKey
_ObjectKey :: Iso' ObjectKey Text

-- | Traverse the prefix of an object key.
--   
--   The prefix is classified as the entirety of the object key minus the
--   name. A leading prefix in the presence of a name, and no other
--   delimiters is interpreted as a blank prefix.
--   
--   <pre>
--   &gt;&gt;&gt; "/home/jsmith/base.wiki" ^? keyPrefix '/'
--   Just "/home/jsmith"
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; "/home/jsmith/" ^? keyPrefix '/'
--   Just "/home/jsmith"
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; "/home" ^? keyPrefix '/'
--   Nothing
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; "/" ^? keyPrefix '/'
--   Nothing
--   </pre>
keyPrefix :: Delimiter -> Traversal' ObjectKey Text

-- | Traverse the name of an object key.
keyName :: Delimiter -> Traversal' ObjectKey Text

-- | Traverse the path components of an object key using the specified
--   delimiter.
keyComponents :: Delimiter -> IndexedTraversal' Int ObjectKey Text

-- | Get the S3 website endpoint for a specific region.
--   
--   When you configure your bucket as a website, the website is available
--   using this region-specific website endpoint.
--   
--   <i>See:</i> <a>Amazon Simple Storage Service Website Endpoints</a>.
getWebsiteEndpoint :: Region -> Text
data AnalyticsS3ExportFileFormat
CSV :: AnalyticsS3ExportFileFormat
data BucketAccelerateStatus
BASEnabled :: BucketAccelerateStatus
BASSuspended :: BucketAccelerateStatus
data BucketCannedACL
BAuthenticatedRead :: BucketCannedACL
BPrivate :: BucketCannedACL
BPublicRead :: BucketCannedACL
BPublicReadWrite :: BucketCannedACL
data BucketLogsPermission
FullControl :: BucketLogsPermission
Read :: BucketLogsPermission
Write :: BucketLogsPermission
data BucketVersioningStatus
BVSEnabled :: BucketVersioningStatus
BVSSuspended :: BucketVersioningStatus

-- | Requests Amazon S3 to encode the object keys in the response and
--   specifies the encoding method to use. An object key may contain any
--   Unicode character; however, XML 1.0 parser cannot parse some
--   characters, such as characters with an ASCII value from 0 to 10. For
--   characters that are not supported in XML 1.0, you can add this
--   parameter to request that Amazon S3 encode the keys in the response.
data EncodingType
URL :: EncodingType

-- | Bucket event for which to send notifications.
data Event
S3ObjectCreated :: Event
S3ObjectCreatedCompleteMultipartUpload :: Event
S3ObjectCreatedCopy :: Event
S3ObjectCreatedPost :: Event
S3ObjectCreatedPut :: Event
S3ObjectRemoved :: Event
S3ObjectRemovedDelete :: Event
S3ObjectRemovedDeleteMarkerCreated :: Event
S3ReducedRedundancyLostObject :: Event
data ExpirationStatus
ESDisabled :: ExpirationStatus
ESEnabled :: ExpirationStatus
data FilterRuleName
Prefix :: FilterRuleName
Suffix :: FilterRuleName
data InventoryFormat
IFCSV :: InventoryFormat
data InventoryFrequency
Daily :: InventoryFrequency
Weekly :: InventoryFrequency
data InventoryIncludedObjectVersions
All :: InventoryIncludedObjectVersions
Current :: InventoryIncludedObjectVersions
data InventoryOptionalField
FieldETag :: InventoryOptionalField
FieldIsMultipartUploaded :: InventoryOptionalField
FieldLastModifiedDate :: InventoryOptionalField
FieldReplicationStatus :: InventoryOptionalField
FieldSize :: InventoryOptionalField
FieldStorageClass :: InventoryOptionalField
data MFADelete
MDDisabled :: MFADelete
MDEnabled :: MFADelete
data MFADeleteStatus
MDSDisabled :: MFADeleteStatus
MDSEnabled :: MFADeleteStatus
data MetadataDirective
MDCopy :: MetadataDirective
MDReplace :: MetadataDirective
data ObjectCannedACL
OAWSExecRead :: ObjectCannedACL
OAuthenticatedRead :: ObjectCannedACL
OBucketOwnerFullControl :: ObjectCannedACL
OBucketOwnerRead :: ObjectCannedACL
OPrivate :: ObjectCannedACL
OPublicRead :: ObjectCannedACL
OPublicReadWrite :: ObjectCannedACL
data ObjectStorageClass
OSCGlacier :: ObjectStorageClass
OSCReducedRedundancy :: ObjectStorageClass
OSCStandard :: ObjectStorageClass
OSCStandardIA :: ObjectStorageClass
data ObjectVersionStorageClass
OVSCStandard :: ObjectVersionStorageClass
data Payer
BucketOwner :: Payer
Requester :: Payer
data Permission
PFullControl :: Permission
PRead :: Permission
PReadAcp :: Permission
PWrite :: Permission
PWriteAcp :: Permission
data Protocol
HTTP :: Protocol
HTTPS :: Protocol
data ReplicationRuleStatus
Disabled :: ReplicationRuleStatus
Enabled :: ReplicationRuleStatus
data ReplicationStatus
Complete :: ReplicationStatus
Failed :: ReplicationStatus
Pending :: ReplicationStatus
Replica :: ReplicationStatus

-- | If present, indicates that the requester was successfully charged for
--   the request.
data RequestCharged
RCRequester :: RequestCharged

-- | Confirms that the requester knows that she or he will be charged for
--   the request. Bucket owners need not specify this parameter in their
--   requests. Documentation on downloading objects from requester pays
--   buckets can be found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html</a>
data RequestPayer
RPRequester :: RequestPayer
data ServerSideEncryption
AES256 :: ServerSideEncryption
AWSKMS :: ServerSideEncryption
data StorageClass
ReducedRedundancy :: StorageClass
Standard :: StorageClass
StandardIA :: StorageClass
data StorageClassAnalysisSchemaVersion
V1 :: StorageClassAnalysisSchemaVersion
data TaggingDirective
Copy :: TaggingDirective
Replace :: TaggingDirective
data Tier
TBulk :: Tier
TExpedited :: Tier
TStandard :: Tier
data TransitionStorageClass
TSCGlacier :: TransitionStorageClass
TSCStandardIA :: TransitionStorageClass
data Type
AmazonCustomerByEmail :: Type
CanonicalUser :: Type
Group :: Type

-- | Specifies the days since the initiation of an Incomplete Multipart
--   Upload that Lifecycle will wait before permanently removing all parts
--   of the upload.
--   
--   <i>See:</i> <a>abortIncompleteMultipartUpload</a> smart constructor.
data AbortIncompleteMultipartUpload

-- | Creates a value of <a>AbortIncompleteMultipartUpload</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aimuDaysAfterInitiation</a> - Indicates the number of days that
--   must pass since initiation for Lifecycle to abort an Incomplete
--   Multipart Upload.</li>
--   </ul>
abortIncompleteMultipartUpload :: AbortIncompleteMultipartUpload

-- | Indicates the number of days that must pass since initiation for
--   Lifecycle to abort an Incomplete Multipart Upload.
aimuDaysAfterInitiation :: Lens' AbortIncompleteMultipartUpload (Maybe Int)

-- | <i>See:</i> <a>accelerateConfiguration</a> smart constructor.
data AccelerateConfiguration

-- | Creates a value of <a>AccelerateConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acStatus</a> - The accelerate configuration of the bucket.</li>
--   </ul>
accelerateConfiguration :: AccelerateConfiguration

-- | The accelerate configuration of the bucket.
acStatus :: Lens' AccelerateConfiguration (Maybe BucketAccelerateStatus)

-- | <i>See:</i> <a>accessControlPolicy</a> smart constructor.
data AccessControlPolicy

-- | Creates a value of <a>AccessControlPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acpGrants</a> - A list of grants.</li>
--   <li><a>acpOwner</a> - Undocumented member.</li>
--   </ul>
accessControlPolicy :: AccessControlPolicy

-- | A list of grants.
acpGrants :: Lens' AccessControlPolicy [Grant]

-- | Undocumented member.
acpOwner :: Lens' AccessControlPolicy (Maybe Owner)

-- | <i>See:</i> <a>analyticsAndOperator</a> smart constructor.
data AnalyticsAndOperator

-- | Creates a value of <a>AnalyticsAndOperator</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaoPrefix</a> - The prefix to use when evaluating an AND
--   predicate.</li>
--   <li><a>aaoTags</a> - The list of tags to use when evaluating an AND
--   predicate.</li>
--   </ul>
analyticsAndOperator :: AnalyticsAndOperator

-- | The prefix to use when evaluating an AND predicate.
aaoPrefix :: Lens' AnalyticsAndOperator (Maybe Text)

-- | The list of tags to use when evaluating an AND predicate.
aaoTags :: Lens' AnalyticsAndOperator [Tag]

-- | <i>See:</i> <a>analyticsConfiguration</a> smart constructor.
data AnalyticsConfiguration

-- | Creates a value of <a>AnalyticsConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acFilter</a> - The filter used to describe a set of objects for
--   analyses. A filter must have exactly one prefix, one tag, or one
--   conjunction (AnalyticsAndOperator). If no filter is provided, all
--   objects will be considered in any analysis.</li>
--   <li><a>acId</a> - The identifier used to represent an analytics
--   configuration.</li>
--   <li><a>acStorageClassAnalysis</a> - If present, it indicates that data
--   related to access patterns will be collected and made available to
--   analyze the tradeoffs between different storage classes.</li>
--   </ul>
analyticsConfiguration :: Text -> StorageClassAnalysis -> AnalyticsConfiguration

-- | The filter used to describe a set of objects for analyses. A filter
--   must have exactly one prefix, one tag, or one conjunction
--   (AnalyticsAndOperator). If no filter is provided, all objects will be
--   considered in any analysis.
acFilter :: Lens' AnalyticsConfiguration (Maybe AnalyticsFilter)

-- | The identifier used to represent an analytics configuration.
acId :: Lens' AnalyticsConfiguration Text

-- | If present, it indicates that data related to access patterns will be
--   collected and made available to analyze the tradeoffs between
--   different storage classes.
acStorageClassAnalysis :: Lens' AnalyticsConfiguration StorageClassAnalysis

-- | <i>See:</i> <a>analyticsExportDestination</a> smart constructor.
data AnalyticsExportDestination

-- | Creates a value of <a>AnalyticsExportDestination</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aedS3BucketDestination</a> - A destination signifying output to
--   an S3 bucket.</li>
--   </ul>
analyticsExportDestination :: AnalyticsS3BucketDestination -> AnalyticsExportDestination

-- | A destination signifying output to an S3 bucket.
aedS3BucketDestination :: Lens' AnalyticsExportDestination AnalyticsS3BucketDestination

-- | <i>See:</i> <a>analyticsFilter</a> smart constructor.
data AnalyticsFilter

-- | Creates a value of <a>AnalyticsFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>afTag</a> - The tag to use when evaluating an analytics
--   filter.</li>
--   <li><a>afPrefix</a> - The prefix to use when evaluating an analytics
--   filter.</li>
--   <li><a>afAnd</a> - A conjunction (logical AND) of predicates, which is
--   used in evaluating an analytics filter. The operator must have at
--   least two predicates.</li>
--   </ul>
analyticsFilter :: AnalyticsFilter

-- | The tag to use when evaluating an analytics filter.
afTag :: Lens' AnalyticsFilter (Maybe Tag)

-- | The prefix to use when evaluating an analytics filter.
afPrefix :: Lens' AnalyticsFilter (Maybe Text)

-- | A conjunction (logical AND) of predicates, which is used in evaluating
--   an analytics filter. The operator must have at least two predicates.
afAnd :: Lens' AnalyticsFilter (Maybe AnalyticsAndOperator)

-- | <i>See:</i> <a>analyticsS3BucketDestination</a> smart constructor.
data AnalyticsS3BucketDestination

-- | Creates a value of <a>AnalyticsS3BucketDestination</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asbdBucketAccountId</a> - The account ID that owns the
--   destination bucket. If no account ID is provided, the owner will not
--   be validated prior to exporting data.</li>
--   <li><a>asbdPrefix</a> - The prefix to use when exporting data. The
--   exported data begins with this prefix.</li>
--   <li><a>asbdFormat</a> - The file format used when exporting data to
--   Amazon S3.</li>
--   <li><a>asbdBucket</a> - The Amazon resource name (ARN) of the bucket
--   to which data is exported.</li>
--   </ul>
analyticsS3BucketDestination :: AnalyticsS3ExportFileFormat -> BucketName -> AnalyticsS3BucketDestination

-- | The account ID that owns the destination bucket. If no account ID is
--   provided, the owner will not be validated prior to exporting data.
asbdBucketAccountId :: Lens' AnalyticsS3BucketDestination (Maybe Text)

-- | The prefix to use when exporting data. The exported data begins with
--   this prefix.
asbdPrefix :: Lens' AnalyticsS3BucketDestination (Maybe Text)

-- | The file format used when exporting data to Amazon S3.
asbdFormat :: Lens' AnalyticsS3BucketDestination AnalyticsS3ExportFileFormat

-- | The Amazon resource name (ARN) of the bucket to which data is
--   exported.
asbdBucket :: Lens' AnalyticsS3BucketDestination BucketName

-- | <i>See:</i> <a>bucket</a> smart constructor.
data Bucket

-- | Creates a value of <a>Bucket</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bCreationDate</a> - Date the bucket was created.</li>
--   <li><a>bName</a> - The name of the bucket.</li>
--   </ul>
bucket :: UTCTime -> BucketName -> Bucket

-- | Date the bucket was created.
bCreationDate :: Lens' Bucket UTCTime

-- | The name of the bucket.
bName :: Lens' Bucket BucketName

-- | <i>See:</i> <a>bucketLifecycleConfiguration</a> smart constructor.
data BucketLifecycleConfiguration

-- | Creates a value of <a>BucketLifecycleConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blcRules</a> - Undocumented member.</li>
--   </ul>
bucketLifecycleConfiguration :: BucketLifecycleConfiguration

-- | Undocumented member.
blcRules :: Lens' BucketLifecycleConfiguration [LifecycleRule]

-- | <i>See:</i> <a>bucketLoggingStatus</a> smart constructor.
data BucketLoggingStatus

-- | Creates a value of <a>BucketLoggingStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blsLoggingEnabled</a> - Undocumented member.</li>
--   </ul>
bucketLoggingStatus :: BucketLoggingStatus

-- | Undocumented member.
blsLoggingEnabled :: Lens' BucketLoggingStatus (Maybe LoggingEnabled)

-- | <i>See:</i> <a>corsConfiguration</a> smart constructor.
data CORSConfiguration

-- | Creates a value of <a>CORSConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccCORSRules</a> - Undocumented member.</li>
--   </ul>
corsConfiguration :: CORSConfiguration

-- | Undocumented member.
ccCORSRules :: Lens' CORSConfiguration [CORSRule]

-- | <i>See:</i> <a>corsRule</a> smart constructor.
data CORSRule

-- | Creates a value of <a>CORSRule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crMaxAgeSeconds</a> - The time in seconds that your browser is
--   to cache the preflight response for the specified resource.</li>
--   <li><a>crAllowedHeaders</a> - Specifies which headers are allowed in a
--   pre-flight OPTIONS request.</li>
--   <li><a>crExposeHeaders</a> - One or more headers in the response that
--   you want customers to be able to access from their applications (for
--   example, from a JavaScript XMLHttpRequest object).</li>
--   <li><a>crAllowedMethods</a> - Identifies HTTP methods that the
--   domain/origin specified in the rule is allowed to execute.</li>
--   <li><a>crAllowedOrigins</a> - One or more origins you want customers
--   to be able to access the bucket from.</li>
--   </ul>
corsRule :: CORSRule

-- | The time in seconds that your browser is to cache the preflight
--   response for the specified resource.
crMaxAgeSeconds :: Lens' CORSRule (Maybe Int)

-- | Specifies which headers are allowed in a pre-flight OPTIONS request.
crAllowedHeaders :: Lens' CORSRule [Text]

-- | One or more headers in the response that you want customers to be able
--   to access from their applications (for example, from a JavaScript
--   XMLHttpRequest object).
crExposeHeaders :: Lens' CORSRule [Text]

-- | Identifies HTTP methods that the domain/origin specified in the rule
--   is allowed to execute.
crAllowedMethods :: Lens' CORSRule [Text]

-- | One or more origins you want customers to be able to access the bucket
--   from.
crAllowedOrigins :: Lens' CORSRule [Text]

-- | <i>See:</i> <a>commonPrefix</a> smart constructor.
data CommonPrefix

-- | Creates a value of <a>CommonPrefix</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpPrefix</a> - Undocumented member.</li>
--   </ul>
commonPrefix :: CommonPrefix

-- | Undocumented member.
cpPrefix :: Lens' CommonPrefix (Maybe Text)

-- | <i>See:</i> <a>completedMultipartUpload</a> smart constructor.
data CompletedMultipartUpload

-- | Creates a value of <a>CompletedMultipartUpload</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmuParts</a> - Undocumented member.</li>
--   </ul>
completedMultipartUpload :: CompletedMultipartUpload

-- | Undocumented member.
cmuParts :: Lens' CompletedMultipartUpload (Maybe (NonEmpty CompletedPart))

-- | <i>See:</i> <a>completedPart</a> smart constructor.
data CompletedPart

-- | Creates a value of <a>CompletedPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpPartNumber</a> - Part number that identifies the part. This
--   is a positive integer between 1 and 10,000.</li>
--   <li><a>cpETag</a> - Entity tag returned when the part was
--   uploaded.</li>
--   </ul>
completedPart :: Int -> ETag -> CompletedPart

-- | Part number that identifies the part. This is a positive integer
--   between 1 and 10,000.
cpPartNumber :: Lens' CompletedPart Int

-- | Entity tag returned when the part was uploaded.
cpETag :: Lens' CompletedPart ETag

-- | <i>See:</i> <a>condition</a> smart constructor.
data Condition

-- | Creates a value of <a>Condition</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cKeyPrefixEquals</a> - The object key name prefix when the
--   redirect is applied. For example, to redirect requests for
--   ExamplePage.html, the key prefix will be ExamplePage.html. To redirect
--   request for all pages with the prefix docs<i>, the key prefix will be
--   </i>docs, which identifies all objects in the docs/ folder. Required
--   when the parent element Condition is specified and sibling
--   HttpErrorCodeReturnedEquals is not specified. If both conditions are
--   specified, both must be true for the redirect to be applied.</li>
--   <li><a>cHTTPErrorCodeReturnedEquals</a> - The HTTP error code when the
--   redirect is applied. In the event of an error, if the error code
--   equals this value, then the specified redirect is applied. Required
--   when parent element Condition is specified and sibling KeyPrefixEquals
--   is not specified. If both are specified, then both must be true for
--   the redirect to be applied.</li>
--   </ul>
condition :: Condition

-- | The object key name prefix when the redirect is applied. For example,
--   to redirect requests for ExamplePage.html, the key prefix will be
--   ExamplePage.html. To redirect request for all pages with the prefix
--   docs<i>, the key prefix will be </i>docs, which identifies all objects
--   in the docs/ folder. Required when the parent element Condition is
--   specified and sibling HttpErrorCodeReturnedEquals is not specified. If
--   both conditions are specified, both must be true for the redirect to
--   be applied.
cKeyPrefixEquals :: Lens' Condition (Maybe Text)

-- | The HTTP error code when the redirect is applied. In the event of an
--   error, if the error code equals this value, then the specified
--   redirect is applied. Required when parent element Condition is
--   specified and sibling KeyPrefixEquals is not specified. If both are
--   specified, then both must be true for the redirect to be applied.
cHTTPErrorCodeReturnedEquals :: Lens' Condition (Maybe Text)

-- | <i>See:</i> <a>copyObjectResult</a> smart constructor.
data CopyObjectResult

-- | Creates a value of <a>CopyObjectResult</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>corETag</a> - Undocumented member.</li>
--   <li><a>corLastModified</a> - Undocumented member.</li>
--   </ul>
copyObjectResult :: CopyObjectResult

-- | Undocumented member.
corETag :: Lens' CopyObjectResult (Maybe ETag)

-- | Undocumented member.
corLastModified :: Lens' CopyObjectResult (Maybe UTCTime)

-- | <i>See:</i> <a>copyPartResult</a> smart constructor.
data CopyPartResult

-- | Creates a value of <a>CopyPartResult</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cprETag</a> - Entity tag of the object.</li>
--   <li><a>cprLastModified</a> - Date and time at which the object was
--   uploaded.</li>
--   </ul>
copyPartResult :: CopyPartResult

-- | Entity tag of the object.
cprETag :: Lens' CopyPartResult (Maybe ETag)

-- | Date and time at which the object was uploaded.
cprLastModified :: Lens' CopyPartResult (Maybe UTCTime)

-- | <i>See:</i> <a>createBucketConfiguration</a> smart constructor.
data CreateBucketConfiguration

-- | Creates a value of <a>CreateBucketConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbcLocationConstraint</a> - Specifies the region where the
--   bucket will be created. If you don't specify a region, the bucket will
--   be created in US Standard.</li>
--   </ul>
createBucketConfiguration :: CreateBucketConfiguration

-- | Specifies the region where the bucket will be created. If you don't
--   specify a region, the bucket will be created in US Standard.
cbcLocationConstraint :: Lens' CreateBucketConfiguration (Maybe LocationConstraint)

-- | <i>See:</i> <a>delete'</a> smart constructor.
data Delete

-- | Creates a value of <a>Delete</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dQuiet</a> - Element to enable quiet mode for the request. When
--   you add this element, you must set its value to true.</li>
--   <li><a>dObjects</a> - Undocumented member.</li>
--   </ul>
delete' :: Delete

-- | Element to enable quiet mode for the request. When you add this
--   element, you must set its value to true.
dQuiet :: Lens' Delete (Maybe Bool)

-- | Undocumented member.
dObjects :: Lens' Delete [ObjectIdentifier]

-- | <i>See:</i> <a>deleteMarkerEntry</a> smart constructor.
data DeleteMarkerEntry

-- | Creates a value of <a>DeleteMarkerEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmeVersionId</a> - Version ID of an object.</li>
--   <li><a>dmeIsLatest</a> - Specifies whether the object is (true) or is
--   not (false) the latest version of an object.</li>
--   <li><a>dmeOwner</a> - Undocumented member.</li>
--   <li><a>dmeKey</a> - The object key.</li>
--   <li><a>dmeLastModified</a> - Date and time the object was last
--   modified.</li>
--   </ul>
deleteMarkerEntry :: DeleteMarkerEntry

-- | Version ID of an object.
dmeVersionId :: Lens' DeleteMarkerEntry (Maybe ObjectVersionId)

-- | Specifies whether the object is (true) or is not (false) the latest
--   version of an object.
dmeIsLatest :: Lens' DeleteMarkerEntry (Maybe Bool)

-- | Undocumented member.
dmeOwner :: Lens' DeleteMarkerEntry (Maybe Owner)

-- | The object key.
dmeKey :: Lens' DeleteMarkerEntry (Maybe ObjectKey)

-- | Date and time the object was last modified.
dmeLastModified :: Lens' DeleteMarkerEntry (Maybe UTCTime)

-- | <i>See:</i> <a>deletedObject</a> smart constructor.
data DeletedObject

-- | Creates a value of <a>DeletedObject</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dVersionId</a> - Undocumented member.</li>
--   <li><a>dDeleteMarker</a> - Undocumented member.</li>
--   <li><a>dDeleteMarkerVersionId</a> - Undocumented member.</li>
--   <li><a>dKey</a> - Undocumented member.</li>
--   </ul>
deletedObject :: DeletedObject

-- | Undocumented member.
dVersionId :: Lens' DeletedObject (Maybe ObjectVersionId)

-- | Undocumented member.
dDeleteMarker :: Lens' DeletedObject (Maybe Bool)

-- | Undocumented member.
dDeleteMarkerVersionId :: Lens' DeletedObject (Maybe Text)

-- | Undocumented member.
dKey :: Lens' DeletedObject (Maybe ObjectKey)

-- | <i>See:</i> <a>destination</a> smart constructor.
data Destination

-- | Creates a value of <a>Destination</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>dBucket</a> - Amazon resource name (ARN) of the bucket where
--   you want Amazon S3 to store replicas of the object identified by the
--   rule.</li>
--   </ul>
destination :: BucketName -> Destination

-- | The class of storage used to store the object.
dStorageClass :: Lens' Destination (Maybe StorageClass)

-- | Amazon resource name (ARN) of the bucket where you want Amazon S3 to
--   store replicas of the object identified by the rule.
dBucket :: Lens' Destination BucketName

-- | <i>See:</i> <a>errorDocument</a> smart constructor.
data ErrorDocument

-- | Creates a value of <a>ErrorDocument</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edKey</a> - The object key name to use when a 4XX class error
--   occurs.</li>
--   </ul>
errorDocument :: ObjectKey -> ErrorDocument

-- | The object key name to use when a 4XX class error occurs.
edKey :: Lens' ErrorDocument ObjectKey

-- | Container for key value pair that defines the criteria for the filter
--   rule.
--   
--   <i>See:</i> <a>filterRule</a> smart constructor.
data FilterRule

-- | Creates a value of <a>FilterRule</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>frValue</a> - Undocumented member.</li>
--   <li><a>frName</a> - <a>Configuring Event Notifications</a></li>
--   </ul>
filterRule :: FilterRule

-- | Undocumented member.
frValue :: Lens' FilterRule (Maybe Text)

-- | <a>Configuring Event Notifications</a>
frName :: Lens' FilterRule (Maybe FilterRuleName)

-- | <i>See:</i> <a>glacierJobParameters</a> smart constructor.
data GlacierJobParameters

-- | Creates a value of <a>GlacierJobParameters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gjpTier</a> - Glacier retrieval tier at which the restore will
--   be processed.</li>
--   </ul>
glacierJobParameters :: Tier -> GlacierJobParameters

-- | Glacier retrieval tier at which the restore will be processed.
gjpTier :: Lens' GlacierJobParameters Tier

-- | <i>See:</i> <a>grant</a> smart constructor.
data Grant

-- | Creates a value of <a>Grant</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gPermission</a> - Specifies the permission given to the
--   grantee.</li>
--   <li><a>gGrantee</a> - Undocumented member.</li>
--   </ul>
grant :: Grant

-- | Specifies the permission given to the grantee.
gPermission :: Lens' Grant (Maybe Permission)

-- | Undocumented member.
gGrantee :: Lens' Grant (Maybe Grantee)

-- | <i>See:</i> <a>grantee</a> smart constructor.
data Grantee

-- | Creates a value of <a>Grantee</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gURI</a> - URI of the grantee group.</li>
--   <li><a>gEmailAddress</a> - Email address of the grantee.</li>
--   <li><a>gDisplayName</a> - Screen name of the grantee.</li>
--   <li><a>gId</a> - The canonical user ID of the grantee.</li>
--   <li><a>gType</a> - Type of grantee</li>
--   </ul>
grantee :: Type -> Grantee

-- | URI of the grantee group.
gURI :: Lens' Grantee (Maybe Text)

-- | Email address of the grantee.
gEmailAddress :: Lens' Grantee (Maybe Text)

-- | Screen name of the grantee.
gDisplayName :: Lens' Grantee (Maybe Text)

-- | The canonical user ID of the grantee.
gId :: Lens' Grantee (Maybe Text)

-- | Type of grantee
gType :: Lens' Grantee Type

-- | <i>See:</i> <a>indexDocument</a> smart constructor.
data IndexDocument

-- | Creates a value of <a>IndexDocument</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idSuffix</a> - A suffix that is appended to a request that is
--   for a directory on the website endpoint (e.g. if the suffix is
--   index.html and you make a request to samplebucket<i>images</i> the
--   data that is returned will be for the object with the key name
--   images/index.html) The suffix must not be empty and must not include a
--   slash character.</li>
--   </ul>
indexDocument :: Text -> IndexDocument

-- | A suffix that is appended to a request that is for a directory on the
--   website endpoint (e.g. if the suffix is index.html and you make a
--   request to samplebucket<i>images</i> the data that is returned will be
--   for the object with the key name images/index.html) The suffix must
--   not be empty and must not include a slash character.
idSuffix :: Lens' IndexDocument Text

-- | <i>See:</i> <a>initiator</a> smart constructor.
data Initiator

-- | Creates a value of <a>Initiator</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iDisplayName</a> - Name of the Principal.</li>
--   <li><a>iId</a> - If the principal is an AWS account, it provides the
--   Canonical User ID. If the principal is an IAM User, it provides a user
--   ARN value.</li>
--   </ul>
initiator :: Initiator

-- | Name of the Principal.
iDisplayName :: Lens' Initiator (Maybe Text)

-- | If the principal is an AWS account, it provides the Canonical User ID.
--   If the principal is an IAM User, it provides a user ARN value.
iId :: Lens' Initiator (Maybe Text)

-- | <i>See:</i> <a>inventoryConfiguration</a> smart constructor.
data InventoryConfiguration

-- | Creates a value of <a>InventoryConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icOptionalFields</a> - Contains the optional fields that are
--   included in the inventory results.</li>
--   <li><a>icFilter</a> - Specifies an inventory filter. The inventory
--   only includes objects that meet the filter's criteria.</li>
--   <li><a>icDestination</a> - Contains information about where to publish
--   the inventory results.</li>
--   <li><a>icIsEnabled</a> - Specifies whether the inventory is enabled or
--   disabled.</li>
--   <li><a>icId</a> - The ID used to identify the inventory
--   configuration.</li>
--   <li><a>icIncludedObjectVersions</a> - Specifies which object
--   version(s) to included in the inventory results.</li>
--   <li><a>icSchedule</a> - Specifies the schedule for generating
--   inventory results.</li>
--   </ul>
inventoryConfiguration :: InventoryDestination -> Bool -> Text -> InventoryIncludedObjectVersions -> InventorySchedule -> InventoryConfiguration

-- | Contains the optional fields that are included in the inventory
--   results.
icOptionalFields :: Lens' InventoryConfiguration [InventoryOptionalField]

-- | Specifies an inventory filter. The inventory only includes objects
--   that meet the filter's criteria.
icFilter :: Lens' InventoryConfiguration (Maybe InventoryFilter)

-- | Contains information about where to publish the inventory results.
icDestination :: Lens' InventoryConfiguration InventoryDestination

-- | Specifies whether the inventory is enabled or disabled.
icIsEnabled :: Lens' InventoryConfiguration Bool

-- | The ID used to identify the inventory configuration.
icId :: Lens' InventoryConfiguration Text

-- | Specifies which object version(s) to included in the inventory
--   results.
icIncludedObjectVersions :: Lens' InventoryConfiguration InventoryIncludedObjectVersions

-- | Specifies the schedule for generating inventory results.
icSchedule :: Lens' InventoryConfiguration InventorySchedule

-- | <i>See:</i> <a>inventoryDestination</a> smart constructor.
data InventoryDestination

-- | Creates a value of <a>InventoryDestination</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idS3BucketDestination</a> - Contains the bucket name, file
--   format, bucket owner (optional), and prefix (optional) where inventory
--   results are published.</li>
--   </ul>
inventoryDestination :: InventoryS3BucketDestination -> InventoryDestination

-- | Contains the bucket name, file format, bucket owner (optional), and
--   prefix (optional) where inventory results are published.
idS3BucketDestination :: Lens' InventoryDestination InventoryS3BucketDestination

-- | <i>See:</i> <a>inventoryFilter</a> smart constructor.
data InventoryFilter

-- | Creates a value of <a>InventoryFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifPrefix</a> - The prefix that an object must have to be
--   included in the inventory results.</li>
--   </ul>
inventoryFilter :: Text -> InventoryFilter

-- | The prefix that an object must have to be included in the inventory
--   results.
ifPrefix :: Lens' InventoryFilter Text

-- | <i>See:</i> <a>inventoryS3BucketDestination</a> smart constructor.
data InventoryS3BucketDestination

-- | Creates a value of <a>InventoryS3BucketDestination</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isbdPrefix</a> - The prefix that is prepended to all inventory
--   results.</li>
--   <li><a>isbdAccountId</a> - The ID of the account that owns the
--   destination bucket.</li>
--   <li><a>isbdBucket</a> - The Amazon resource name (ARN) of the bucket
--   where inventory results will be published.</li>
--   <li><a>isbdFormat</a> - Specifies the output format of the inventory
--   results.</li>
--   </ul>
inventoryS3BucketDestination :: BucketName -> InventoryFormat -> InventoryS3BucketDestination

-- | The prefix that is prepended to all inventory results.
isbdPrefix :: Lens' InventoryS3BucketDestination (Maybe Text)

-- | The ID of the account that owns the destination bucket.
isbdAccountId :: Lens' InventoryS3BucketDestination (Maybe Text)

-- | The Amazon resource name (ARN) of the bucket where inventory results
--   will be published.
isbdBucket :: Lens' InventoryS3BucketDestination BucketName

-- | Specifies the output format of the inventory results.
isbdFormat :: Lens' InventoryS3BucketDestination InventoryFormat

-- | <i>See:</i> <a>inventorySchedule</a> smart constructor.
data InventorySchedule

-- | Creates a value of <a>InventorySchedule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isFrequency</a> - Specifies how frequently inventory results
--   are produced.</li>
--   </ul>
inventorySchedule :: InventoryFrequency -> InventorySchedule

-- | Specifies how frequently inventory results are produced.
isFrequency :: Lens' InventorySchedule InventoryFrequency

-- | Container for specifying the AWS Lambda notification configuration.
--   
--   <i>See:</i> <a>lambdaFunctionConfiguration</a> smart constructor.
data LambdaFunctionConfiguration

-- | Creates a value of <a>LambdaFunctionConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lfcId</a> - Undocumented member.</li>
--   <li><a>lfcFilter</a> - Undocumented member.</li>
--   <li><a>lfcLambdaFunctionARN</a> - Lambda cloud function ARN that
--   Amazon S3 can invoke when it detects events of the specified
--   type.</li>
--   <li><a>lfcEvents</a> - Undocumented member.</li>
--   </ul>
lambdaFunctionConfiguration :: Text -> LambdaFunctionConfiguration

-- | Undocumented member.
lfcId :: Lens' LambdaFunctionConfiguration (Maybe Text)

-- | Undocumented member.
lfcFilter :: Lens' LambdaFunctionConfiguration (Maybe NotificationConfigurationFilter)

-- | Lambda cloud function ARN that Amazon S3 can invoke when it detects
--   events of the specified type.
lfcLambdaFunctionARN :: Lens' LambdaFunctionConfiguration Text

-- | Undocumented member.
lfcEvents :: Lens' LambdaFunctionConfiguration [Event]

-- | <i>See:</i> <a>lifecycleExpiration</a> smart constructor.
data LifecycleExpiration

-- | Creates a value of <a>LifecycleExpiration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>leDays</a> - Indicates the lifetime, in days, of the objects
--   that are subject to the rule. The value must be a non-zero positive
--   integer.</li>
--   <li><a>leDate</a> - Indicates at what date the object is to be moved
--   or deleted. Should be in GMT ISO 8601 Format.</li>
--   <li><a>leExpiredObjectDeleteMarker</a> - Indicates whether Amazon S3
--   will remove a delete marker with no noncurrent versions. If set to
--   true, the delete marker will be expired; if set to false the policy
--   takes no action. This cannot be specified with Days or Date in a
--   Lifecycle Expiration Policy.</li>
--   </ul>
lifecycleExpiration :: LifecycleExpiration

-- | Indicates the lifetime, in days, of the objects that are subject to
--   the rule. The value must be a non-zero positive integer.
leDays :: Lens' LifecycleExpiration (Maybe Int)

-- | Indicates at what date the object is to be moved or deleted. Should be
--   in GMT ISO 8601 Format.
leDate :: Lens' LifecycleExpiration (Maybe UTCTime)

-- | Indicates whether Amazon S3 will remove a delete marker with no
--   noncurrent versions. If set to true, the delete marker will be
--   expired; if set to false the policy takes no action. This cannot be
--   specified with Days or Date in a Lifecycle Expiration Policy.
leExpiredObjectDeleteMarker :: Lens' LifecycleExpiration (Maybe Bool)

-- | <i>See:</i> <a>lifecycleRule</a> smart constructor.
data LifecycleRule

-- | Creates a value of <a>LifecycleRule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrTransitions</a> - Undocumented member.</li>
--   <li><a>lrNoncurrentVersionExpiration</a> - Undocumented member.</li>
--   <li><a>lrPrefix</a> - Prefix identifying one or more objects to which
--   the rule applies. This is deprecated; use Filter instead.</li>
--   <li><a>lrNoncurrentVersionTransitions</a> - Undocumented member.</li>
--   <li><a>lrExpiration</a> - Undocumented member.</li>
--   <li><a>lrId</a> - Unique identifier for the rule. The value cannot be
--   longer than 255 characters.</li>
--   <li><a>lrFilter</a> - Undocumented member.</li>
--   <li><a>lrAbortIncompleteMultipartUpload</a> - Undocumented
--   member.</li>
--   <li><a>lrStatus</a> - If <a>Enabled</a>, the rule is currently being
--   applied. If <a>Disabled</a>, the rule is not currently being
--   applied.</li>
--   </ul>
lifecycleRule :: ExpirationStatus -> LifecycleRule

-- | Undocumented member.
lrTransitions :: Lens' LifecycleRule [Transition]

-- | Undocumented member.
lrNoncurrentVersionExpiration :: Lens' LifecycleRule (Maybe NoncurrentVersionExpiration)

-- | Prefix identifying one or more objects to which the rule applies. This
--   is deprecated; use Filter instead.
lrPrefix :: Lens' LifecycleRule (Maybe Text)

-- | Undocumented member.
lrNoncurrentVersionTransitions :: Lens' LifecycleRule [NoncurrentVersionTransition]

-- | Undocumented member.
lrExpiration :: Lens' LifecycleRule (Maybe LifecycleExpiration)

-- | Unique identifier for the rule. The value cannot be longer than 255
--   characters.
lrId :: Lens' LifecycleRule (Maybe Text)

-- | Undocumented member.
lrFilter :: Lens' LifecycleRule (Maybe LifecycleRuleFilter)

-- | Undocumented member.
lrAbortIncompleteMultipartUpload :: Lens' LifecycleRule (Maybe AbortIncompleteMultipartUpload)

-- | If <a>Enabled</a>, the rule is currently being applied. If
--   <a>Disabled</a>, the rule is not currently being applied.
lrStatus :: Lens' LifecycleRule ExpirationStatus

-- | This is used in a Lifecycle Rule Filter to apply a logical AND to two
--   or more predicates. The Lifecycle Rule will apply to any object
--   matching all of the predicates configured inside the And operator.
--   
--   <i>See:</i> <a>lifecycleRuleAndOperator</a> smart constructor.
data LifecycleRuleAndOperator

-- | Creates a value of <a>LifecycleRuleAndOperator</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lraoPrefix</a> - Undocumented member.</li>
--   <li><a>lraoTags</a> - All of these tags must exist in the object's tag
--   set in order for the rule to apply.</li>
--   </ul>
lifecycleRuleAndOperator :: LifecycleRuleAndOperator

-- | Undocumented member.
lraoPrefix :: Lens' LifecycleRuleAndOperator (Maybe Text)

-- | All of these tags must exist in the object's tag set in order for the
--   rule to apply.
lraoTags :: Lens' LifecycleRuleAndOperator [Tag]

-- | The Filter is used to identify objects that a Lifecycle Rule applies
--   to. A Filter must have exactly one of Prefix, Tag, or And specified.
--   
--   <i>See:</i> <a>lifecycleRuleFilter</a> smart constructor.
data LifecycleRuleFilter

-- | Creates a value of <a>LifecycleRuleFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrfTag</a> - This tag must exist in the object's tag set in
--   order for the rule to apply.</li>
--   <li><a>lrfPrefix</a> - Prefix identifying one or more objects to which
--   the rule applies.</li>
--   <li><a>lrfAnd</a> - Undocumented member.</li>
--   </ul>
lifecycleRuleFilter :: LifecycleRuleFilter

-- | This tag must exist in the object's tag set in order for the rule to
--   apply.
lrfTag :: Lens' LifecycleRuleFilter (Maybe Tag)

-- | Prefix identifying one or more objects to which the rule applies.
lrfPrefix :: Lens' LifecycleRuleFilter (Maybe Text)

-- | Undocumented member.
lrfAnd :: Lens' LifecycleRuleFilter (Maybe LifecycleRuleAndOperator)

-- | <i>See:</i> <a>loggingEnabled</a> smart constructor.
data LoggingEnabled

-- | Creates a value of <a>LoggingEnabled</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>leTargetBucket</a> - Specifies the bucket where you want Amazon
--   S3 to store server access logs. You can have your logs delivered to
--   any bucket that you own, including the same bucket that is being
--   logged. You can also configure multiple buckets to deliver their logs
--   to the same target bucket. In this case you should choose a different
--   TargetPrefix for each source bucket so that the delivered log files
--   can be distinguished by key.</li>
--   <li><a>leTargetGrants</a> - Undocumented member.</li>
--   <li><a>leTargetPrefix</a> - This element lets you specify a prefix for
--   the keys that the log files will be stored under.</li>
--   </ul>
loggingEnabled :: LoggingEnabled

-- | Specifies the bucket where you want Amazon S3 to store server access
--   logs. You can have your logs delivered to any bucket that you own,
--   including the same bucket that is being logged. You can also configure
--   multiple buckets to deliver their logs to the same target bucket. In
--   this case you should choose a different TargetPrefix for each source
--   bucket so that the delivered log files can be distinguished by key.
leTargetBucket :: Lens' LoggingEnabled (Maybe Text)

-- | Undocumented member.
leTargetGrants :: Lens' LoggingEnabled [TargetGrant]

-- | This element lets you specify a prefix for the keys that the log files
--   will be stored under.
leTargetPrefix :: Lens' LoggingEnabled (Maybe Text)

-- | <i>See:</i> <a>metricsAndOperator</a> smart constructor.
data MetricsAndOperator

-- | Creates a value of <a>MetricsAndOperator</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>maoPrefix</a> - The prefix used when evaluating an AND
--   predicate.</li>
--   <li><a>maoTags</a> - The list of tags used when evaluating an AND
--   predicate.</li>
--   </ul>
metricsAndOperator :: MetricsAndOperator

-- | The prefix used when evaluating an AND predicate.
maoPrefix :: Lens' MetricsAndOperator (Maybe Text)

-- | The list of tags used when evaluating an AND predicate.
maoTags :: Lens' MetricsAndOperator [Tag]

-- | <i>See:</i> <a>metricsConfiguration</a> smart constructor.
data MetricsConfiguration

-- | Creates a value of <a>MetricsConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcFilter</a> - Specifies a metrics configuration filter. The
--   metrics configuration will only include objects that meet the filter's
--   criteria. A filter must be a prefix, a tag, or a conjunction
--   (MetricsAndOperator).</li>
--   <li><a>mcId</a> - The ID used to identify the metrics
--   configuration.</li>
--   </ul>
metricsConfiguration :: Text -> MetricsConfiguration

-- | Specifies a metrics configuration filter. The metrics configuration
--   will only include objects that meet the filter's criteria. A filter
--   must be a prefix, a tag, or a conjunction (MetricsAndOperator).
mcFilter :: Lens' MetricsConfiguration (Maybe MetricsFilter)

-- | The ID used to identify the metrics configuration.
mcId :: Lens' MetricsConfiguration Text

-- | <i>See:</i> <a>metricsFilter</a> smart constructor.
data MetricsFilter

-- | Creates a value of <a>MetricsFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mfTag</a> - The tag used when evaluating a metrics filter.</li>
--   <li><a>mfPrefix</a> - The prefix used when evaluating a metrics
--   filter.</li>
--   <li><a>mfAnd</a> - A conjunction (logical AND) of predicates, which is
--   used in evaluating a metrics filter. The operator must have at least
--   two predicates, and an object must match all of the predicates in
--   order for the filter to apply.</li>
--   </ul>
metricsFilter :: MetricsFilter

-- | The tag used when evaluating a metrics filter.
mfTag :: Lens' MetricsFilter (Maybe Tag)

-- | The prefix used when evaluating a metrics filter.
mfPrefix :: Lens' MetricsFilter (Maybe Text)

-- | A conjunction (logical AND) of predicates, which is used in evaluating
--   a metrics filter. The operator must have at least two predicates, and
--   an object must match all of the predicates in order for the filter to
--   apply.
mfAnd :: Lens' MetricsFilter (Maybe MetricsAndOperator)

-- | <i>See:</i> <a>multipartUpload</a> smart constructor.
data MultipartUpload

-- | Creates a value of <a>MultipartUpload</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>muInitiated</a> - Date and time at which the multipart upload
--   was initiated.</li>
--   <li><a>muInitiator</a> - Identifies who initiated the multipart
--   upload.</li>
--   <li><a>muOwner</a> - Undocumented member.</li>
--   <li><a>muKey</a> - Key of the object for which the multipart upload
--   was initiated.</li>
--   <li><a>muStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>muUploadId</a> - Upload ID that identifies the multipart
--   upload.</li>
--   </ul>
multipartUpload :: MultipartUpload

-- | Date and time at which the multipart upload was initiated.
muInitiated :: Lens' MultipartUpload (Maybe UTCTime)

-- | Identifies who initiated the multipart upload.
muInitiator :: Lens' MultipartUpload (Maybe Initiator)

-- | Undocumented member.
muOwner :: Lens' MultipartUpload (Maybe Owner)

-- | Key of the object for which the multipart upload was initiated.
muKey :: Lens' MultipartUpload (Maybe ObjectKey)

-- | The class of storage used to store the object.
muStorageClass :: Lens' MultipartUpload (Maybe StorageClass)

-- | Upload ID that identifies the multipart upload.
muUploadId :: Lens' MultipartUpload (Maybe Text)

-- | Specifies when noncurrent object versions expire. Upon expiration,
--   Amazon S3 permanently deletes the noncurrent object versions. You set
--   this lifecycle configuration action on a bucket that has versioning
--   enabled (or suspended) to request that Amazon S3 delete noncurrent
--   object versions at a specific period in the object's lifetime.
--   
--   <i>See:</i> <a>noncurrentVersionExpiration</a> smart constructor.
data NoncurrentVersionExpiration

-- | Creates a value of <a>NoncurrentVersionExpiration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nveNoncurrentDays</a> - <a>How Amazon S3 Calculates When an
--   Object Became Noncurrent</a></li>
--   </ul>
noncurrentVersionExpiration :: Int -> NoncurrentVersionExpiration

-- | <a>How Amazon S3 Calculates When an Object Became Noncurrent</a>
nveNoncurrentDays :: Lens' NoncurrentVersionExpiration Int

-- | Container for the transition rule that describes when noncurrent
--   objects transition to the STANDARD_IA or GLACIER storage class. If
--   your bucket is versioning-enabled (or versioning is suspended), you
--   can set this action to request that Amazon S3 transition noncurrent
--   object versions to the STANDARD_IA or GLACIER storage class at a
--   specific period in the object's lifetime.
--   
--   <i>See:</i> <a>noncurrentVersionTransition</a> smart constructor.
data NoncurrentVersionTransition

-- | Creates a value of <a>NoncurrentVersionTransition</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nvtNoncurrentDays</a> - <a>How Amazon S3 Calculates When an
--   Object Became Noncurrent</a></li>
--   <li><a>nvtStorageClass</a> - The class of storage used to store the
--   object.</li>
--   </ul>
noncurrentVersionTransition :: Int -> TransitionStorageClass -> NoncurrentVersionTransition

-- | <a>How Amazon S3 Calculates When an Object Became Noncurrent</a>
nvtNoncurrentDays :: Lens' NoncurrentVersionTransition Int

-- | The class of storage used to store the object.
nvtStorageClass :: Lens' NoncurrentVersionTransition TransitionStorageClass

-- | Container for specifying the notification configuration of the bucket.
--   If this element is empty, notifications are turned off on the bucket.
--   
--   <i>See:</i> <a>notificationConfiguration</a> smart constructor.
data NotificationConfiguration

-- | Creates a value of <a>NotificationConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ncQueueConfigurations</a> - Undocumented member.</li>
--   <li><a>ncTopicConfigurations</a> - Undocumented member.</li>
--   <li><a>ncLambdaFunctionConfigurations</a> - Undocumented member.</li>
--   </ul>
notificationConfiguration :: NotificationConfiguration

-- | Undocumented member.
ncQueueConfigurations :: Lens' NotificationConfiguration [QueueConfiguration]

-- | Undocumented member.
ncTopicConfigurations :: Lens' NotificationConfiguration [TopicConfiguration]

-- | Undocumented member.
ncLambdaFunctionConfigurations :: Lens' NotificationConfiguration [LambdaFunctionConfiguration]

-- | <a>Configuring Event Notifications</a>
--   
--   <i>See:</i> <a>notificationConfigurationFilter</a> smart constructor.
data NotificationConfigurationFilter

-- | Creates a value of <a>NotificationConfigurationFilter</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ncfKey</a> - Undocumented member.</li>
--   </ul>
notificationConfigurationFilter :: NotificationConfigurationFilter

-- | Undocumented member.
ncfKey :: Lens' NotificationConfigurationFilter (Maybe S3KeyFilter)

-- | <i>See:</i> <a>object'</a> smart constructor.
data Object

-- | Creates a value of <a>Object</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oOwner</a> - Undocumented member.</li>
--   <li><a>oETag</a> - Undocumented member.</li>
--   <li><a>oSize</a> - Undocumented member.</li>
--   <li><a>oKey</a> - Undocumented member.</li>
--   <li><a>oStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>oLastModified</a> - Undocumented member.</li>
--   </ul>
object' :: ETag -> Int -> ObjectKey -> ObjectStorageClass -> UTCTime -> Object

-- | Undocumented member.
oOwner :: Lens' Object (Maybe Owner)

-- | Undocumented member.
oETag :: Lens' Object ETag

-- | Undocumented member.
oSize :: Lens' Object Int

-- | Undocumented member.
oKey :: Lens' Object ObjectKey

-- | The class of storage used to store the object.
oStorageClass :: Lens' Object ObjectStorageClass

-- | Undocumented member.
oLastModified :: Lens' Object UTCTime

-- | <i>See:</i> <a>objectIdentifier</a> smart constructor.
data ObjectIdentifier

-- | Creates a value of <a>ObjectIdentifier</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oiVersionId</a> - VersionId for the specific version of the
--   object to delete.</li>
--   <li><a>oiKey</a> - Key name of the object to delete.</li>
--   </ul>
objectIdentifier :: ObjectKey -> ObjectIdentifier

-- | VersionId for the specific version of the object to delete.
oiVersionId :: Lens' ObjectIdentifier (Maybe ObjectVersionId)

-- | Key name of the object to delete.
oiKey :: Lens' ObjectIdentifier ObjectKey

-- | <i>See:</i> <a>objectVersion</a> smart constructor.
data ObjectVersion

-- | Creates a value of <a>ObjectVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ovETag</a> - Undocumented member.</li>
--   <li><a>ovVersionId</a> - Version ID of an object.</li>
--   <li><a>ovSize</a> - Size in bytes of the object.</li>
--   <li><a>ovIsLatest</a> - Specifies whether the object is (true) or is
--   not (false) the latest version of an object.</li>
--   <li><a>ovOwner</a> - Undocumented member.</li>
--   <li><a>ovKey</a> - The object key.</li>
--   <li><a>ovStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>ovLastModified</a> - Date and time the object was last
--   modified.</li>
--   </ul>
objectVersion :: ObjectVersion

-- | Undocumented member.
ovETag :: Lens' ObjectVersion (Maybe ETag)

-- | Version ID of an object.
ovVersionId :: Lens' ObjectVersion (Maybe ObjectVersionId)

-- | Size in bytes of the object.
ovSize :: Lens' ObjectVersion (Maybe Int)

-- | Specifies whether the object is (true) or is not (false) the latest
--   version of an object.
ovIsLatest :: Lens' ObjectVersion (Maybe Bool)

-- | Undocumented member.
ovOwner :: Lens' ObjectVersion (Maybe Owner)

-- | The object key.
ovKey :: Lens' ObjectVersion (Maybe ObjectKey)

-- | The class of storage used to store the object.
ovStorageClass :: Lens' ObjectVersion (Maybe ObjectVersionStorageClass)

-- | Date and time the object was last modified.
ovLastModified :: Lens' ObjectVersion (Maybe UTCTime)

-- | <i>See:</i> <a>owner</a> smart constructor.
data Owner

-- | Creates a value of <a>Owner</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDisplayName</a> - Undocumented member.</li>
--   <li><a>oId</a> - Undocumented member.</li>
--   </ul>
owner :: Owner

-- | Undocumented member.
oDisplayName :: Lens' Owner (Maybe Text)

-- | Undocumented member.
oId :: Lens' Owner (Maybe Text)

-- | <i>See:</i> <a>part</a> smart constructor.
data Part

-- | Creates a value of <a>Part</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pETag</a> - Entity tag returned when the part was
--   uploaded.</li>
--   <li><a>pSize</a> - Size of the uploaded part data.</li>
--   <li><a>pPartNumber</a> - Part number identifying the part. This is a
--   positive integer between 1 and 10,000.</li>
--   <li><a>pLastModified</a> - Date and time at which the part was
--   uploaded.</li>
--   </ul>
part :: Part

-- | Entity tag returned when the part was uploaded.
pETag :: Lens' Part (Maybe ETag)

-- | Size of the uploaded part data.
pSize :: Lens' Part (Maybe Int)

-- | Part number identifying the part. This is a positive integer between 1
--   and 10,000.
pPartNumber :: Lens' Part (Maybe Int)

-- | Date and time at which the part was uploaded.
pLastModified :: Lens' Part (Maybe UTCTime)

-- | Container for specifying an configuration when you want Amazon S3 to
--   publish events to an Amazon Simple Queue Service (Amazon SQS) queue.
--   
--   <i>See:</i> <a>queueConfiguration</a> smart constructor.
data QueueConfiguration

-- | Creates a value of <a>QueueConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qcId</a> - Undocumented member.</li>
--   <li><a>qcFilter</a> - Undocumented member.</li>
--   <li><a>qcQueueARN</a> - Amazon SQS queue ARN to which Amazon S3 will
--   publish a message when it detects events of specified type.</li>
--   <li><a>qcEvents</a> - Undocumented member.</li>
--   </ul>
queueConfiguration :: Text -> QueueConfiguration

-- | Undocumented member.
qcId :: Lens' QueueConfiguration (Maybe Text)

-- | Undocumented member.
qcFilter :: Lens' QueueConfiguration (Maybe NotificationConfigurationFilter)

-- | Amazon SQS queue ARN to which Amazon S3 will publish a message when it
--   detects events of specified type.
qcQueueARN :: Lens' QueueConfiguration Text

-- | Undocumented member.
qcEvents :: Lens' QueueConfiguration [Event]

-- | <i>See:</i> <a>redirect</a> smart constructor.
data Redirect

-- | Creates a value of <a>Redirect</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rHostName</a> - The host name to use in the redirect
--   request.</li>
--   <li><a>rProtocol</a> - Protocol to use (http, https) when redirecting
--   requests. The default is the protocol that is used in the original
--   request.</li>
--   <li><a>rHTTPRedirectCode</a> - The HTTP redirect code to use on the
--   response. Not required if one of the siblings is present.</li>
--   <li><a>rReplaceKeyWith</a> - The specific object key to use in the
--   redirect request. For example, redirect request to error.html. Not
--   required if one of the sibling is present. Can be present only if
--   ReplaceKeyPrefixWith is not provided.</li>
--   <li><a>rReplaceKeyPrefixWith</a> - The object key prefix to use in the
--   redirect request. For example, to redirect requests for all pages with
--   prefix docs<i> (objects in the docs</i> folder) to documents<i>, you
--   can set a condition block with KeyPrefixEquals set to docs</i> and in
--   the Redirect set ReplaceKeyPrefixWith to /documents. Not required if
--   one of the siblings is present. Can be present only if ReplaceKeyWith
--   is not provided.</li>
--   </ul>
redirect :: Redirect

-- | The host name to use in the redirect request.
rHostName :: Lens' Redirect (Maybe Text)

-- | Protocol to use (http, https) when redirecting requests. The default
--   is the protocol that is used in the original request.
rProtocol :: Lens' Redirect (Maybe Protocol)

-- | The HTTP redirect code to use on the response. Not required if one of
--   the siblings is present.
rHTTPRedirectCode :: Lens' Redirect (Maybe Text)

-- | The specific object key to use in the redirect request. For example,
--   redirect request to error.html. Not required if one of the sibling is
--   present. Can be present only if ReplaceKeyPrefixWith is not provided.
rReplaceKeyWith :: Lens' Redirect (Maybe Text)

-- | The object key prefix to use in the redirect request. For example, to
--   redirect requests for all pages with prefix docs<i> (objects in the
--   docs</i> folder) to documents<i>, you can set a condition block with
--   KeyPrefixEquals set to docs</i> and in the Redirect set
--   ReplaceKeyPrefixWith to /documents. Not required if one of the
--   siblings is present. Can be present only if ReplaceKeyWith is not
--   provided.
rReplaceKeyPrefixWith :: Lens' Redirect (Maybe Text)

-- | <i>See:</i> <a>redirectAllRequestsTo</a> smart constructor.
data RedirectAllRequestsTo

-- | Creates a value of <a>RedirectAllRequestsTo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rartProtocol</a> - Protocol to use (http, https) when
--   redirecting requests. The default is the protocol that is used in the
--   original request.</li>
--   <li><a>rartHostName</a> - Name of the host where requests will be
--   redirected.</li>
--   </ul>
redirectAllRequestsTo :: Text -> RedirectAllRequestsTo

-- | Protocol to use (http, https) when redirecting requests. The default
--   is the protocol that is used in the original request.
rartProtocol :: Lens' RedirectAllRequestsTo (Maybe Protocol)

-- | Name of the host where requests will be redirected.
rartHostName :: Lens' RedirectAllRequestsTo Text

-- | Container for replication rules. You can add as many as 1,000 rules.
--   Total replication configuration size can be up to 2 MB.
--   
--   <i>See:</i> <a>replicationConfiguration</a> smart constructor.
data ReplicationConfiguration

-- | Creates a value of <a>ReplicationConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcRole</a> - Amazon Resource Name (ARN) of an IAM role for
--   Amazon S3 to assume when replicating the objects.</li>
--   <li><a>rcRules</a> - Container for information about a particular
--   replication rule. Replication configuration must have at least one
--   rule and can contain up to 1,000 rules.</li>
--   </ul>
replicationConfiguration :: Text -> ReplicationConfiguration

-- | Amazon Resource Name (ARN) of an IAM role for Amazon S3 to assume when
--   replicating the objects.
rcRole :: Lens' ReplicationConfiguration Text

-- | Container for information about a particular replication rule.
--   Replication configuration must have at least one rule and can contain
--   up to 1,000 rules.
rcRules :: Lens' ReplicationConfiguration [ReplicationRule]

-- | <i>See:</i> <a>replicationRule</a> smart constructor.
data ReplicationRule

-- | Creates a value of <a>ReplicationRule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrId</a> - Unique identifier for the rule. The value cannot be
--   longer than 255 characters.</li>
--   <li><a>rrPrefix</a> - Object keyname prefix identifying one or more
--   objects to which the rule applies. Maximum prefix length can be up to
--   1,024 characters. Overlapping prefixes are not supported.</li>
--   <li><a>rrStatus</a> - The rule is ignored if status is not
--   Enabled.</li>
--   <li><a>rrDestination</a> - Undocumented member.</li>
--   </ul>
replicationRule :: Text -> ReplicationRuleStatus -> Destination -> ReplicationRule

-- | Unique identifier for the rule. The value cannot be longer than 255
--   characters.
rrId :: Lens' ReplicationRule (Maybe Text)

-- | Object keyname prefix identifying one or more objects to which the
--   rule applies. Maximum prefix length can be up to 1,024 characters.
--   Overlapping prefixes are not supported.
rrPrefix :: Lens' ReplicationRule Text

-- | The rule is ignored if status is not Enabled.
rrStatus :: Lens' ReplicationRule ReplicationRuleStatus

-- | Undocumented member.
rrDestination :: Lens' ReplicationRule Destination

-- | <i>See:</i> <a>requestPaymentConfiguration</a> smart constructor.
data RequestPaymentConfiguration

-- | Creates a value of <a>RequestPaymentConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rpcPayer</a> - Specifies who pays for the download and request
--   fees.</li>
--   </ul>
requestPaymentConfiguration :: Payer -> RequestPaymentConfiguration

-- | Specifies who pays for the download and request fees.
rpcPayer :: Lens' RequestPaymentConfiguration Payer

-- | <i>See:</i> <a>restoreRequest</a> smart constructor.
data RestoreRequest

-- | Creates a value of <a>RestoreRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrGlacierJobParameters</a> - Glacier related prameters
--   pertaining to this job.</li>
--   <li><a>rrDays</a> - Lifetime of the active copy in days</li>
--   </ul>
restoreRequest :: Int -> RestoreRequest

-- | Glacier related prameters pertaining to this job.
rrGlacierJobParameters :: Lens' RestoreRequest (Maybe GlacierJobParameters)

-- | Lifetime of the active copy in days
rrDays :: Lens' RestoreRequest Int

-- | <i>See:</i> <a>routingRule</a> smart constructor.
data RoutingRule

-- | Creates a value of <a>RoutingRule</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrCondition</a> - A container for describing a condition that
--   must be met for the specified redirect to apply. For example, 1. If
--   request is for pages in the <i>docs folder, redirect to the
--   </i>documents folder. 2. If request results in HTTP error 4xx,
--   redirect request to another host where you might process the
--   error.</li>
--   <li><a>rrRedirect</a> - Container for redirect information. You can
--   redirect requests to another host, to another page, or with another
--   protocol. In the event of an error, you can can specify a different
--   error code to return.</li>
--   </ul>
routingRule :: Redirect -> RoutingRule

-- | A container for describing a condition that must be met for the
--   specified redirect to apply. For example, 1. If request is for pages
--   in the <i>docs folder, redirect to the </i>documents folder. 2. If
--   request results in HTTP error 4xx, redirect request to another host
--   where you might process the error.
rrCondition :: Lens' RoutingRule (Maybe Condition)

-- | Container for redirect information. You can redirect requests to
--   another host, to another page, or with another protocol. In the event
--   of an error, you can can specify a different error code to return.
rrRedirect :: Lens' RoutingRule Redirect

-- | Container for object key name prefix and suffix filtering rules.
--   
--   <i>See:</i> <a>s3KeyFilter</a> smart constructor.
data S3KeyFilter

-- | Creates a value of <a>S3KeyFilter</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>skfFilterRules</a> - Undocumented member.</li>
--   </ul>
s3KeyFilter :: S3KeyFilter

-- | Undocumented member.
skfFilterRules :: Lens' S3KeyFilter [FilterRule]

-- | <i>See:</i> <a>s3ServiceError</a> smart constructor.
data S3ServiceError

-- | Creates a value of <a>S3ServiceError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sseVersionId</a> - Undocumented member.</li>
--   <li><a>sseKey</a> - Undocumented member.</li>
--   <li><a>sseCode</a> - Undocumented member.</li>
--   <li><a>sseMessage</a> - Undocumented member.</li>
--   </ul>
s3ServiceError :: S3ServiceError

-- | Undocumented member.
sseVersionId :: Lens' S3ServiceError (Maybe ObjectVersionId)

-- | Undocumented member.
sseKey :: Lens' S3ServiceError (Maybe ObjectKey)

-- | Undocumented member.
sseCode :: Lens' S3ServiceError (Maybe Text)

-- | Undocumented member.
sseMessage :: Lens' S3ServiceError (Maybe Text)

-- | <i>See:</i> <a>storageClassAnalysis</a> smart constructor.
data StorageClassAnalysis

-- | Creates a value of <a>StorageClassAnalysis</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scaDataExport</a> - A container used to describe how data
--   related to the storage class analysis should be exported.</li>
--   </ul>
storageClassAnalysis :: StorageClassAnalysis

-- | A container used to describe how data related to the storage class
--   analysis should be exported.
scaDataExport :: Lens' StorageClassAnalysis (Maybe StorageClassAnalysisDataExport)

-- | <i>See:</i> <a>storageClassAnalysisDataExport</a> smart constructor.
data StorageClassAnalysisDataExport

-- | Creates a value of <a>StorageClassAnalysisDataExport</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scadeOutputSchemaVersion</a> - The version of the output schema
--   to use when exporting data. Must be V_1.</li>
--   <li><a>scadeDestination</a> - The place to store the data for an
--   analysis.</li>
--   </ul>
storageClassAnalysisDataExport :: StorageClassAnalysisSchemaVersion -> AnalyticsExportDestination -> StorageClassAnalysisDataExport

-- | The version of the output schema to use when exporting data. Must be
--   V_1.
scadeOutputSchemaVersion :: Lens' StorageClassAnalysisDataExport StorageClassAnalysisSchemaVersion

-- | The place to store the data for an analysis.
scadeDestination :: Lens' StorageClassAnalysisDataExport AnalyticsExportDestination

-- | <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - Name of the tag.</li>
--   <li><a>tagValue</a> - Value of the tag.</li>
--   </ul>
tag :: ObjectKey -> Text -> Tag

-- | Name of the tag.
tagKey :: Lens' Tag ObjectKey

-- | Value of the tag.
tagValue :: Lens' Tag Text

-- | <i>See:</i> <a>tagging</a> smart constructor.
data Tagging

-- | Creates a value of <a>Tagging</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tTagSet</a> - Undocumented member.</li>
--   </ul>
tagging :: Tagging

-- | Undocumented member.
tTagSet :: Lens' Tagging [Tag]

-- | <i>See:</i> <a>targetGrant</a> smart constructor.
data TargetGrant

-- | Creates a value of <a>TargetGrant</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgPermission</a> - Logging permissions assigned to the Grantee
--   for the bucket.</li>
--   <li><a>tgGrantee</a> - Undocumented member.</li>
--   </ul>
targetGrant :: TargetGrant

-- | Logging permissions assigned to the Grantee for the bucket.
tgPermission :: Lens' TargetGrant (Maybe BucketLogsPermission)

-- | Undocumented member.
tgGrantee :: Lens' TargetGrant (Maybe Grantee)

-- | Container for specifying the configuration when you want Amazon S3 to
--   publish events to an Amazon Simple Notification Service (Amazon SNS)
--   topic.
--   
--   <i>See:</i> <a>topicConfiguration</a> smart constructor.
data TopicConfiguration

-- | Creates a value of <a>TopicConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcId</a> - Undocumented member.</li>
--   <li><a>tcFilter</a> - Undocumented member.</li>
--   <li><a>tcTopicARN</a> - Amazon SNS topic ARN to which Amazon S3 will
--   publish a message when it detects events of specified type.</li>
--   <li><a>tcEvents</a> - Undocumented member.</li>
--   </ul>
topicConfiguration :: Text -> TopicConfiguration

-- | Undocumented member.
tcId :: Lens' TopicConfiguration (Maybe Text)

-- | Undocumented member.
tcFilter :: Lens' TopicConfiguration (Maybe NotificationConfigurationFilter)

-- | Amazon SNS topic ARN to which Amazon S3 will publish a message when it
--   detects events of specified type.
tcTopicARN :: Lens' TopicConfiguration Text

-- | Undocumented member.
tcEvents :: Lens' TopicConfiguration [Event]

-- | <i>See:</i> <a>transition</a> smart constructor.
data Transition

-- | Creates a value of <a>Transition</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tDays</a> - Indicates the lifetime, in days, of the objects
--   that are subject to the rule. The value must be a non-zero positive
--   integer.</li>
--   <li><a>tDate</a> - Indicates at what date the object is to be moved or
--   deleted. Should be in GMT ISO 8601 Format.</li>
--   <li><a>tStorageClass</a> - The class of storage used to store the
--   object.</li>
--   </ul>
transition :: Transition

-- | Indicates the lifetime, in days, of the objects that are subject to
--   the rule. The value must be a non-zero positive integer.
tDays :: Lens' Transition (Maybe Int)

-- | Indicates at what date the object is to be moved or deleted. Should be
--   in GMT ISO 8601 Format.
tDate :: Lens' Transition (Maybe UTCTime)

-- | The class of storage used to store the object.
tStorageClass :: Lens' Transition (Maybe TransitionStorageClass)

-- | <i>See:</i> <a>versioningConfiguration</a> smart constructor.
data VersioningConfiguration

-- | Creates a value of <a>VersioningConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcStatus</a> - The versioning state of the bucket.</li>
--   <li><a>vcMFADelete</a> - Specifies whether MFA delete is enabled in
--   the bucket versioning configuration. This element is only returned if
--   the bucket has been configured with MFA delete. If the bucket has
--   never been so configured, this element is not returned.</li>
--   </ul>
versioningConfiguration :: VersioningConfiguration

-- | The versioning state of the bucket.
vcStatus :: Lens' VersioningConfiguration (Maybe BucketVersioningStatus)

-- | Specifies whether MFA delete is enabled in the bucket versioning
--   configuration. This element is only returned if the bucket has been
--   configured with MFA delete. If the bucket has never been so
--   configured, this element is not returned.
vcMFADelete :: Lens' VersioningConfiguration (Maybe MFADelete)

-- | <i>See:</i> <a>websiteConfiguration</a> smart constructor.
data WebsiteConfiguration

-- | Creates a value of <a>WebsiteConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wcRedirectAllRequestsTo</a> - Undocumented member.</li>
--   <li><a>wcErrorDocument</a> - Undocumented member.</li>
--   <li><a>wcIndexDocument</a> - Undocumented member.</li>
--   <li><a>wcRoutingRules</a> - Undocumented member.</li>
--   </ul>
websiteConfiguration :: WebsiteConfiguration

-- | Undocumented member.
wcRedirectAllRequestsTo :: Lens' WebsiteConfiguration (Maybe RedirectAllRequestsTo)

-- | Undocumented member.
wcErrorDocument :: Lens' WebsiteConfiguration (Maybe ErrorDocument)

-- | Undocumented member.
wcIndexDocument :: Lens' WebsiteConfiguration (Maybe IndexDocument)

-- | Undocumented member.
wcRoutingRules :: Lens' WebsiteConfiguration [RoutingRule]


-- | Lists the analytics configurations for the bucket.
module Network.AWS.S3.ListBucketAnalyticsConfigurations

-- | Creates a value of <a>ListBucketAnalyticsConfigurations</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbacContinuationToken</a> - The ContinuationToken that
--   represents a placeholder from where this request should begin.</li>
--   <li><a>lbacBucket</a> - The name of the bucket from which analytics
--   configurations are retrieved.</li>
--   </ul>
listBucketAnalyticsConfigurations :: BucketName -> ListBucketAnalyticsConfigurations

-- | <i>See:</i> <a>listBucketAnalyticsConfigurations</a> smart
--   constructor.
data ListBucketAnalyticsConfigurations

-- | The ContinuationToken that represents a placeholder from where this
--   request should begin.
lbacContinuationToken :: Lens' ListBucketAnalyticsConfigurations (Maybe Text)

-- | The name of the bucket from which analytics configurations are
--   retrieved.
lbacBucket :: Lens' ListBucketAnalyticsConfigurations BucketName

-- | Creates a value of <a>ListBucketAnalyticsConfigurationsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbacrsAnalyticsConfigurationList</a> - The list of analytics
--   configurations for a bucket.</li>
--   <li><a>lbacrsContinuationToken</a> - The ContinuationToken that
--   represents where this request began.</li>
--   <li><a>lbacrsNextContinuationToken</a> - NextContinuationToken is sent
--   when isTruncated is true, which indicates that there are more
--   analytics configurations to list. The next request must include this
--   NextContinuationToken. The token is obfuscated and is not a usable
--   value.</li>
--   <li><a>lbacrsIsTruncated</a> - Indicates whether the returned list of
--   analytics configurations is complete. A value of true indicates that
--   the list is not complete and the NextContinuationToken will be
--   provided for a subsequent request.</li>
--   <li><a>lbacrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listBucketAnalyticsConfigurationsResponse :: Int -> ListBucketAnalyticsConfigurationsResponse

-- | <i>See:</i> <a>listBucketAnalyticsConfigurationsResponse</a> smart
--   constructor.
data ListBucketAnalyticsConfigurationsResponse

-- | The list of analytics configurations for a bucket.
lbacrsAnalyticsConfigurationList :: Lens' ListBucketAnalyticsConfigurationsResponse [AnalyticsConfiguration]

-- | The ContinuationToken that represents where this request began.
lbacrsContinuationToken :: Lens' ListBucketAnalyticsConfigurationsResponse (Maybe Text)

-- | NextContinuationToken is sent when isTruncated is true, which
--   indicates that there are more analytics configurations to list. The
--   next request must include this NextContinuationToken. The token is
--   obfuscated and is not a usable value.
lbacrsNextContinuationToken :: Lens' ListBucketAnalyticsConfigurationsResponse (Maybe Text)

-- | Indicates whether the returned list of analytics configurations is
--   complete. A value of true indicates that the list is not complete and
--   the NextContinuationToken will be provided for a subsequent request.
lbacrsIsTruncated :: Lens' ListBucketAnalyticsConfigurationsResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lbacrsResponseStatus :: Lens' ListBucketAnalyticsConfigurationsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurationsResponse
instance Data.Data.Data Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurationsResponse
instance GHC.Show.Show Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurationsResponse
instance GHC.Read.Read Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurationsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurationsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Data.Data.Data Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance GHC.Show.Show Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance GHC.Read.Read Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance GHC.Classes.Eq Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Control.DeepSeq.NFData Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurations
instance Control.DeepSeq.NFData Network.AWS.S3.ListBucketAnalyticsConfigurations.ListBucketAnalyticsConfigurationsResponse


-- | Returns a list of inventory configurations for the bucket.
module Network.AWS.S3.ListBucketInventoryConfigurations

-- | Creates a value of <a>ListBucketInventoryConfigurations</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbicContinuationToken</a> - The marker used to continue an
--   inventory configuration listing that has been truncated. Use the
--   NextContinuationToken from a previously truncated list response to
--   continue the listing. The continuation token is an opaque value that
--   Amazon S3 understands.</li>
--   <li><a>lbicBucket</a> - The name of the bucket containing the
--   inventory configurations to retrieve.</li>
--   </ul>
listBucketInventoryConfigurations :: BucketName -> ListBucketInventoryConfigurations

-- | <i>See:</i> <a>listBucketInventoryConfigurations</a> smart
--   constructor.
data ListBucketInventoryConfigurations

-- | The marker used to continue an inventory configuration listing that
--   has been truncated. Use the NextContinuationToken from a previously
--   truncated list response to continue the listing. The continuation
--   token is an opaque value that Amazon S3 understands.
lbicContinuationToken :: Lens' ListBucketInventoryConfigurations (Maybe Text)

-- | The name of the bucket containing the inventory configurations to
--   retrieve.
lbicBucket :: Lens' ListBucketInventoryConfigurations BucketName

-- | Creates a value of <a>ListBucketInventoryConfigurationsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbicrsContinuationToken</a> - If sent in the request, the
--   marker that is used as a starting point for this inventory
--   configuration list response.</li>
--   <li><a>lbicrsInventoryConfigurationList</a> - The list of inventory
--   configurations for a bucket.</li>
--   <li><a>lbicrsNextContinuationToken</a> - The marker used to continue
--   this inventory configuration listing. Use the NextContinuationToken
--   from this response to continue the listing in a subsequent request.
--   The continuation token is an opaque value that Amazon S3
--   understands.</li>
--   <li><a>lbicrsIsTruncated</a> - Indicates whether the returned list of
--   inventory configurations is truncated in this response. A value of
--   true indicates that the list is truncated.</li>
--   <li><a>lbicrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listBucketInventoryConfigurationsResponse :: Int -> ListBucketInventoryConfigurationsResponse

-- | <i>See:</i> <a>listBucketInventoryConfigurationsResponse</a> smart
--   constructor.
data ListBucketInventoryConfigurationsResponse

-- | If sent in the request, the marker that is used as a starting point
--   for this inventory configuration list response.
lbicrsContinuationToken :: Lens' ListBucketInventoryConfigurationsResponse (Maybe Text)

-- | The list of inventory configurations for a bucket.
lbicrsInventoryConfigurationList :: Lens' ListBucketInventoryConfigurationsResponse [InventoryConfiguration]

-- | The marker used to continue this inventory configuration listing. Use
--   the NextContinuationToken from this response to continue the listing
--   in a subsequent request. The continuation token is an opaque value
--   that Amazon S3 understands.
lbicrsNextContinuationToken :: Lens' ListBucketInventoryConfigurationsResponse (Maybe Text)

-- | Indicates whether the returned list of inventory configurations is
--   truncated in this response. A value of true indicates that the list is
--   truncated.
lbicrsIsTruncated :: Lens' ListBucketInventoryConfigurationsResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lbicrsResponseStatus :: Lens' ListBucketInventoryConfigurationsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurationsResponse
instance Data.Data.Data Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurationsResponse
instance GHC.Show.Show Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurationsResponse
instance GHC.Read.Read Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurationsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurationsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Data.Data.Data Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance GHC.Show.Show Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance GHC.Read.Read Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance GHC.Classes.Eq Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Control.DeepSeq.NFData Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurations
instance Control.DeepSeq.NFData Network.AWS.S3.ListBucketInventoryConfigurations.ListBucketInventoryConfigurationsResponse


-- | Lists the metrics configurations for the bucket.
module Network.AWS.S3.ListBucketMetricsConfigurations

-- | Creates a value of <a>ListBucketMetricsConfigurations</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbmcContinuationToken</a> - The marker that is used to continue
--   a metrics configuration listing that has been truncated. Use the
--   NextContinuationToken from a previously truncated list response to
--   continue the listing. The continuation token is an opaque value that
--   Amazon S3 understands.</li>
--   <li><a>lbmcBucket</a> - The name of the bucket containing the metrics
--   configurations to retrieve.</li>
--   </ul>
listBucketMetricsConfigurations :: BucketName -> ListBucketMetricsConfigurations

-- | <i>See:</i> <a>listBucketMetricsConfigurations</a> smart constructor.
data ListBucketMetricsConfigurations

-- | The marker that is used to continue a metrics configuration listing
--   that has been truncated. Use the NextContinuationToken from a
--   previously truncated list response to continue the listing. The
--   continuation token is an opaque value that Amazon S3 understands.
lbmcContinuationToken :: Lens' ListBucketMetricsConfigurations (Maybe Text)

-- | The name of the bucket containing the metrics configurations to
--   retrieve.
lbmcBucket :: Lens' ListBucketMetricsConfigurations BucketName

-- | Creates a value of <a>ListBucketMetricsConfigurationsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbmcrsContinuationToken</a> - The marker that is used as a
--   starting point for this metrics configuration list response. This
--   value is present if it was sent in the request.</li>
--   <li><a>lbmcrsMetricsConfigurationList</a> - The list of metrics
--   configurations for a bucket.</li>
--   <li><a>lbmcrsNextContinuationToken</a> - The marker used to continue a
--   metrics configuration listing that has been truncated. Use the
--   NextContinuationToken from a previously truncated list response to
--   continue the listing. The continuation token is an opaque value that
--   Amazon S3 understands.</li>
--   <li><a>lbmcrsIsTruncated</a> - Indicates whether the returned list of
--   metrics configurations is complete. A value of true indicates that the
--   list is not complete and the NextContinuationToken will be provided
--   for a subsequent request.</li>
--   <li><a>lbmcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listBucketMetricsConfigurationsResponse :: Int -> ListBucketMetricsConfigurationsResponse

-- | <i>See:</i> <a>listBucketMetricsConfigurationsResponse</a> smart
--   constructor.
data ListBucketMetricsConfigurationsResponse

-- | The marker that is used as a starting point for this metrics
--   configuration list response. This value is present if it was sent in
--   the request.
lbmcrsContinuationToken :: Lens' ListBucketMetricsConfigurationsResponse (Maybe Text)

-- | The list of metrics configurations for a bucket.
lbmcrsMetricsConfigurationList :: Lens' ListBucketMetricsConfigurationsResponse [MetricsConfiguration]

-- | The marker used to continue a metrics configuration listing that has
--   been truncated. Use the NextContinuationToken from a previously
--   truncated list response to continue the listing. The continuation
--   token is an opaque value that Amazon S3 understands.
lbmcrsNextContinuationToken :: Lens' ListBucketMetricsConfigurationsResponse (Maybe Text)

-- | Indicates whether the returned list of metrics configurations is
--   complete. A value of true indicates that the list is not complete and
--   the NextContinuationToken will be provided for a subsequent request.
lbmcrsIsTruncated :: Lens' ListBucketMetricsConfigurationsResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lbmcrsResponseStatus :: Lens' ListBucketMetricsConfigurationsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurationsResponse
instance Data.Data.Data Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurationsResponse
instance GHC.Show.Show Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurationsResponse
instance GHC.Read.Read Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurationsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurationsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Data.Data.Data Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance GHC.Show.Show Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance GHC.Read.Read Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance GHC.Classes.Eq Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Control.DeepSeq.NFData Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurations
instance Control.DeepSeq.NFData Network.AWS.S3.ListBucketMetricsConfigurations.ListBucketMetricsConfigurationsResponse


-- | Returns a list of all buckets owned by the authenticated sender of the
--   request.
module Network.AWS.S3.ListBuckets

-- | Creates a value of <a>ListBuckets</a> with the minimum fields required
--   to make a request.
listBuckets :: ListBuckets

-- | <i>See:</i> <a>listBuckets</a> smart constructor.
data ListBuckets

-- | Creates a value of <a>ListBucketsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbrsBuckets</a> - Undocumented member.</li>
--   <li><a>lbrsOwner</a> - Undocumented member.</li>
--   <li><a>lbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listBucketsResponse :: Int -> ListBucketsResponse

-- | <i>See:</i> <a>listBucketsResponse</a> smart constructor.
data ListBucketsResponse

-- | Undocumented member.
lbrsBuckets :: Lens' ListBucketsResponse [Bucket]

-- | Undocumented member.
lbrsOwner :: Lens' ListBucketsResponse (Maybe Owner)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lbrsResponseStatus :: Lens' ListBucketsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListBuckets.ListBucketsResponse
instance Data.Data.Data Network.AWS.S3.ListBuckets.ListBucketsResponse
instance GHC.Show.Show Network.AWS.S3.ListBuckets.ListBucketsResponse
instance GHC.Read.Read Network.AWS.S3.ListBuckets.ListBucketsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListBuckets.ListBucketsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListBuckets.ListBuckets
instance Data.Data.Data Network.AWS.S3.ListBuckets.ListBuckets
instance GHC.Show.Show Network.AWS.S3.ListBuckets.ListBuckets
instance GHC.Read.Read Network.AWS.S3.ListBuckets.ListBuckets
instance GHC.Classes.Eq Network.AWS.S3.ListBuckets.ListBuckets
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListBuckets.ListBuckets
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListBuckets.ListBuckets
instance Control.DeepSeq.NFData Network.AWS.S3.ListBuckets.ListBuckets
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListBuckets.ListBuckets
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListBuckets.ListBuckets
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListBuckets.ListBuckets
instance Control.DeepSeq.NFData Network.AWS.S3.ListBuckets.ListBucketsResponse


-- | This operation lists in-progress multipart uploads.
--   
--   This operation returns paginated results.
module Network.AWS.S3.ListMultipartUploads

-- | Creates a value of <a>ListMultipartUploads</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lmuKeyMarker</a> - Together with upload-id-marker, this
--   parameter specifies the multipart upload after which listing should
--   begin.</li>
--   <li><a>lmuPrefix</a> - Lists in-progress uploads only for those keys
--   that begin with the specified prefix.</li>
--   <li><a>lmuEncodingType</a> - Undocumented member.</li>
--   <li><a>lmuUploadIdMarker</a> - Together with key-marker, specifies the
--   multipart upload after which listing should begin. If key-marker is
--   not specified, the upload-id-marker parameter is ignored.</li>
--   <li><a>lmuMaxUploads</a> - Sets the maximum number of multipart
--   uploads, from 1 to 1,000, to return in the response body. 1,000 is the
--   maximum number of uploads that can be returned in a response.</li>
--   <li><a>lmuDelimiter</a> - Character you use to group keys.</li>
--   <li><a>lmuBucket</a> - Undocumented member.</li>
--   </ul>
listMultipartUploads :: BucketName -> ListMultipartUploads

-- | <i>See:</i> <a>listMultipartUploads</a> smart constructor.
data ListMultipartUploads

-- | Together with upload-id-marker, this parameter specifies the multipart
--   upload after which listing should begin.
lmuKeyMarker :: Lens' ListMultipartUploads (Maybe Text)

-- | Lists in-progress uploads only for those keys that begin with the
--   specified prefix.
lmuPrefix :: Lens' ListMultipartUploads (Maybe Text)

-- | Undocumented member.
lmuEncodingType :: Lens' ListMultipartUploads (Maybe EncodingType)

-- | Together with key-marker, specifies the multipart upload after which
--   listing should begin. If key-marker is not specified, the
--   upload-id-marker parameter is ignored.
lmuUploadIdMarker :: Lens' ListMultipartUploads (Maybe Text)

-- | Sets the maximum number of multipart uploads, from 1 to 1,000, to
--   return in the response body. 1,000 is the maximum number of uploads
--   that can be returned in a response.
lmuMaxUploads :: Lens' ListMultipartUploads (Maybe Int)

-- | Character you use to group keys.
lmuDelimiter :: Lens' ListMultipartUploads (Maybe Delimiter)

-- | Undocumented member.
lmuBucket :: Lens' ListMultipartUploads BucketName

-- | Creates a value of <a>ListMultipartUploadsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lmursKeyMarker</a> - The key at or after which the listing
--   began.</li>
--   <li><a>lmursPrefix</a> - When a prefix is provided in the request,
--   this field contains the specified prefix. The result contains only
--   keys starting with the specified prefix.</li>
--   <li><a>lmursCommonPrefixes</a> - Undocumented member.</li>
--   <li><a>lmursEncodingType</a> - Encoding type used by Amazon S3 to
--   encode object keys in the response.</li>
--   <li><a>lmursBucket</a> - Name of the bucket to which the multipart
--   upload was initiated.</li>
--   <li><a>lmursUploadIdMarker</a> - Upload ID after which listing
--   began.</li>
--   <li><a>lmursMaxUploads</a> - Maximum number of multipart uploads that
--   could have been included in the response.</li>
--   <li><a>lmursNextKeyMarker</a> - When a list is truncated, this element
--   specifies the value that should be used for the key-marker request
--   parameter in a subsequent request.</li>
--   <li><a>lmursUploads</a> - Undocumented member.</li>
--   <li><a>lmursIsTruncated</a> - Indicates whether the returned list of
--   multipart uploads is truncated. A value of true indicates that the
--   list was truncated. The list can be truncated if the number of
--   multipart uploads exceeds the limit allowed or specified by max
--   uploads.</li>
--   <li><a>lmursNextUploadIdMarker</a> - When a list is truncated, this
--   element specifies the value that should be used for the
--   upload-id-marker request parameter in a subsequent request.</li>
--   <li><a>lmursDelimiter</a> - Undocumented member.</li>
--   <li><a>lmursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listMultipartUploadsResponse :: Int -> ListMultipartUploadsResponse

-- | <i>See:</i> <a>listMultipartUploadsResponse</a> smart constructor.
data ListMultipartUploadsResponse

-- | The key at or after which the listing began.
lmursKeyMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)

-- | When a prefix is provided in the request, this field contains the
--   specified prefix. The result contains only keys starting with the
--   specified prefix.
lmursPrefix :: Lens' ListMultipartUploadsResponse (Maybe Text)

-- | Undocumented member.
lmursCommonPrefixes :: Lens' ListMultipartUploadsResponse [CommonPrefix]

-- | Encoding type used by Amazon S3 to encode object keys in the response.
lmursEncodingType :: Lens' ListMultipartUploadsResponse (Maybe EncodingType)

-- | Name of the bucket to which the multipart upload was initiated.
lmursBucket :: Lens' ListMultipartUploadsResponse (Maybe BucketName)

-- | Upload ID after which listing began.
lmursUploadIdMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)

-- | Maximum number of multipart uploads that could have been included in
--   the response.
lmursMaxUploads :: Lens' ListMultipartUploadsResponse (Maybe Int)

-- | When a list is truncated, this element specifies the value that should
--   be used for the key-marker request parameter in a subsequent request.
lmursNextKeyMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)

-- | Undocumented member.
lmursUploads :: Lens' ListMultipartUploadsResponse [MultipartUpload]

-- | Indicates whether the returned list of multipart uploads is truncated.
--   A value of true indicates that the list was truncated. The list can be
--   truncated if the number of multipart uploads exceeds the limit allowed
--   or specified by max uploads.
lmursIsTruncated :: Lens' ListMultipartUploadsResponse (Maybe Bool)

-- | When a list is truncated, this element specifies the value that should
--   be used for the upload-id-marker request parameter in a subsequent
--   request.
lmursNextUploadIdMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)

-- | Undocumented member.
lmursDelimiter :: Lens' ListMultipartUploadsResponse (Maybe Delimiter)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lmursResponseStatus :: Lens' ListMultipartUploadsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListMultipartUploads.ListMultipartUploadsResponse
instance Data.Data.Data Network.AWS.S3.ListMultipartUploads.ListMultipartUploadsResponse
instance GHC.Show.Show Network.AWS.S3.ListMultipartUploads.ListMultipartUploadsResponse
instance GHC.Read.Read Network.AWS.S3.ListMultipartUploads.ListMultipartUploadsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListMultipartUploads.ListMultipartUploadsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Data.Data.Data Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance GHC.Show.Show Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance GHC.Read.Read Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance GHC.Classes.Eq Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Network.AWS.Pager.AWSPager Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Control.DeepSeq.NFData Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListMultipartUploads.ListMultipartUploads
instance Control.DeepSeq.NFData Network.AWS.S3.ListMultipartUploads.ListMultipartUploadsResponse


-- | Returns metadata about all of the versions of objects in a bucket.
--   
--   This operation returns paginated results.
module Network.AWS.S3.ListObjectVersions

-- | Creates a value of <a>ListObjectVersions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lovKeyMarker</a> - Specifies the key to start with when listing
--   objects in a bucket.</li>
--   <li><a>lovPrefix</a> - Limits the response to keys that begin with the
--   specified prefix.</li>
--   <li><a>lovEncodingType</a> - Undocumented member.</li>
--   <li><a>lovVersionIdMarker</a> - Specifies the object version you want
--   to start listing from.</li>
--   <li><a>lovMaxKeys</a> - Sets the maximum number of keys returned in
--   the response. The response might contain fewer keys but will never
--   contain more.</li>
--   <li><a>lovDelimiter</a> - A delimiter is a character you use to group
--   keys.</li>
--   <li><a>lovBucket</a> - Undocumented member.</li>
--   </ul>
listObjectVersions :: BucketName -> ListObjectVersions

-- | <i>See:</i> <a>listObjectVersions</a> smart constructor.
data ListObjectVersions

-- | Specifies the key to start with when listing objects in a bucket.
lovKeyMarker :: Lens' ListObjectVersions (Maybe Text)

-- | Limits the response to keys that begin with the specified prefix.
lovPrefix :: Lens' ListObjectVersions (Maybe Text)

-- | Undocumented member.
lovEncodingType :: Lens' ListObjectVersions (Maybe EncodingType)

-- | Specifies the object version you want to start listing from.
lovVersionIdMarker :: Lens' ListObjectVersions (Maybe Text)

-- | Sets the maximum number of keys returned in the response. The response
--   might contain fewer keys but will never contain more.
lovMaxKeys :: Lens' ListObjectVersions (Maybe Int)

-- | A delimiter is a character you use to group keys.
lovDelimiter :: Lens' ListObjectVersions (Maybe Delimiter)

-- | Undocumented member.
lovBucket :: Lens' ListObjectVersions BucketName

-- | Creates a value of <a>ListObjectVersionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lovrsNextVersionIdMarker</a> - Use this value for the next
--   version id marker parameter in a subsequent request.</li>
--   <li><a>lovrsKeyMarker</a> - Marks the last Key returned in a truncated
--   response.</li>
--   <li><a>lovrsDeleteMarkers</a> - Undocumented member.</li>
--   <li><a>lovrsPrefix</a> - Undocumented member.</li>
--   <li><a>lovrsCommonPrefixes</a> - Undocumented member.</li>
--   <li><a>lovrsEncodingType</a> - Encoding type used by Amazon S3 to
--   encode object keys in the response.</li>
--   <li><a>lovrsVersions</a> - Undocumented member.</li>
--   <li><a>lovrsName</a> - Undocumented member.</li>
--   <li><a>lovrsNextKeyMarker</a> - Use this value for the key marker
--   request parameter in a subsequent request.</li>
--   <li><a>lovrsVersionIdMarker</a> - Undocumented member.</li>
--   <li><a>lovrsMaxKeys</a> - Undocumented member.</li>
--   <li><a>lovrsIsTruncated</a> - A flag that indicates whether or not
--   Amazon S3 returned all of the results that satisfied the search
--   criteria. If your results were truncated, you can make a follow-up
--   paginated request using the NextKeyMarker and NextVersionIdMarker
--   response parameters as a starting place in another request to return
--   the rest of the results.</li>
--   <li><a>lovrsDelimiter</a> - Undocumented member.</li>
--   <li><a>lovrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listObjectVersionsResponse :: Int -> ListObjectVersionsResponse

-- | <i>See:</i> <a>listObjectVersionsResponse</a> smart constructor.
data ListObjectVersionsResponse

-- | Use this value for the next version id marker parameter in a
--   subsequent request.
lovrsNextVersionIdMarker :: Lens' ListObjectVersionsResponse (Maybe Text)

-- | Marks the last Key returned in a truncated response.
lovrsKeyMarker :: Lens' ListObjectVersionsResponse (Maybe Text)

-- | Undocumented member.
lovrsDeleteMarkers :: Lens' ListObjectVersionsResponse [DeleteMarkerEntry]

-- | Undocumented member.
lovrsPrefix :: Lens' ListObjectVersionsResponse (Maybe Text)

-- | Undocumented member.
lovrsCommonPrefixes :: Lens' ListObjectVersionsResponse [CommonPrefix]

-- | Encoding type used by Amazon S3 to encode object keys in the response.
lovrsEncodingType :: Lens' ListObjectVersionsResponse (Maybe EncodingType)

-- | Undocumented member.
lovrsVersions :: Lens' ListObjectVersionsResponse [ObjectVersion]

-- | Undocumented member.
lovrsName :: Lens' ListObjectVersionsResponse (Maybe BucketName)

-- | Use this value for the key marker request parameter in a subsequent
--   request.
lovrsNextKeyMarker :: Lens' ListObjectVersionsResponse (Maybe Text)

-- | Undocumented member.
lovrsVersionIdMarker :: Lens' ListObjectVersionsResponse (Maybe Text)

-- | Undocumented member.
lovrsMaxKeys :: Lens' ListObjectVersionsResponse (Maybe Int)

-- | A flag that indicates whether or not Amazon S3 returned all of the
--   results that satisfied the search criteria. If your results were
--   truncated, you can make a follow-up paginated request using the
--   NextKeyMarker and NextVersionIdMarker response parameters as a
--   starting place in another request to return the rest of the results.
lovrsIsTruncated :: Lens' ListObjectVersionsResponse (Maybe Bool)

-- | Undocumented member.
lovrsDelimiter :: Lens' ListObjectVersionsResponse (Maybe Delimiter)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lovrsResponseStatus :: Lens' ListObjectVersionsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListObjectVersions.ListObjectVersionsResponse
instance Data.Data.Data Network.AWS.S3.ListObjectVersions.ListObjectVersionsResponse
instance GHC.Show.Show Network.AWS.S3.ListObjectVersions.ListObjectVersionsResponse
instance GHC.Read.Read Network.AWS.S3.ListObjectVersions.ListObjectVersionsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListObjectVersions.ListObjectVersionsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Data.Data.Data Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance GHC.Show.Show Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance GHC.Read.Read Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance GHC.Classes.Eq Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Network.AWS.Pager.AWSPager Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Control.DeepSeq.NFData Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListObjectVersions.ListObjectVersions
instance Control.DeepSeq.NFData Network.AWS.S3.ListObjectVersions.ListObjectVersionsResponse


-- | Returns some or all (up to 1000) of the objects in a bucket. You can
--   use the request parameters as selection criteria to return a subset of
--   the objects in a bucket.
--   
--   This operation returns paginated results.
module Network.AWS.S3.ListObjects

-- | Creates a value of <a>ListObjects</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>loPrefix</a> - Limits the response to keys that begin with the
--   specified prefix.</li>
--   <li><a>loEncodingType</a> - Undocumented member.</li>
--   <li><a>loRequestPayer</a> - Confirms that the requester knows that she
--   or he will be charged for the list objects request. Bucket owners need
--   not specify this parameter in their requests.</li>
--   <li><a>loMarker</a> - Specifies the key to start with when listing
--   objects in a bucket.</li>
--   <li><a>loMaxKeys</a> - Sets the maximum number of keys returned in the
--   response. The response might contain fewer keys but will never contain
--   more.</li>
--   <li><a>loDelimiter</a> - A delimiter is a character you use to group
--   keys.</li>
--   <li><a>loBucket</a> - Undocumented member.</li>
--   </ul>
listObjects :: BucketName -> ListObjects

-- | <i>See:</i> <a>listObjects</a> smart constructor.
data ListObjects

-- | Limits the response to keys that begin with the specified prefix.
loPrefix :: Lens' ListObjects (Maybe Text)

-- | Undocumented member.
loEncodingType :: Lens' ListObjects (Maybe EncodingType)

-- | Confirms that the requester knows that she or he will be charged for
--   the list objects request. Bucket owners need not specify this
--   parameter in their requests.
loRequestPayer :: Lens' ListObjects (Maybe RequestPayer)

-- | Specifies the key to start with when listing objects in a bucket.
loMarker :: Lens' ListObjects (Maybe Text)

-- | Sets the maximum number of keys returned in the response. The response
--   might contain fewer keys but will never contain more.
loMaxKeys :: Lens' ListObjects (Maybe Int)

-- | A delimiter is a character you use to group keys.
loDelimiter :: Lens' ListObjects (Maybe Delimiter)

-- | Undocumented member.
loBucket :: Lens' ListObjects BucketName

-- | Creates a value of <a>ListObjectsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lorsContents</a> - Undocumented member.</li>
--   <li><a>lorsPrefix</a> - Undocumented member.</li>
--   <li><a>lorsCommonPrefixes</a> - Undocumented member.</li>
--   <li><a>lorsEncodingType</a> - Encoding type used by Amazon S3 to
--   encode object keys in the response.</li>
--   <li><a>lorsName</a> - Undocumented member.</li>
--   <li><a>lorsMarker</a> - Undocumented member.</li>
--   <li><a>lorsNextMarker</a> - When response is truncated (the
--   IsTruncated element value in the response is true), you can use the
--   key name in this field as marker in the subsequent request to get next
--   set of objects. Amazon S3 lists objects in alphabetical order Note:
--   This element is returned only if you have delimiter request parameter
--   specified. If response does not include the NextMaker and it is
--   truncated, you can use the value of the last Key in the response as
--   the marker in the subsequent request to get the next set of object
--   keys.</li>
--   <li><a>lorsMaxKeys</a> - Undocumented member.</li>
--   <li><a>lorsIsTruncated</a> - A flag that indicates whether or not
--   Amazon S3 returned all of the results that satisfied the search
--   criteria.</li>
--   <li><a>lorsDelimiter</a> - Undocumented member.</li>
--   <li><a>lorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listObjectsResponse :: Int -> ListObjectsResponse

-- | <i>See:</i> <a>listObjectsResponse</a> smart constructor.
data ListObjectsResponse

-- | Undocumented member.
lorsContents :: Lens' ListObjectsResponse [Object]

-- | Undocumented member.
lorsPrefix :: Lens' ListObjectsResponse (Maybe Text)

-- | Undocumented member.
lorsCommonPrefixes :: Lens' ListObjectsResponse [CommonPrefix]

-- | Encoding type used by Amazon S3 to encode object keys in the response.
lorsEncodingType :: Lens' ListObjectsResponse (Maybe EncodingType)

-- | Undocumented member.
lorsName :: Lens' ListObjectsResponse (Maybe BucketName)

-- | Undocumented member.
lorsMarker :: Lens' ListObjectsResponse (Maybe Text)

-- | When response is truncated (the IsTruncated element value in the
--   response is true), you can use the key name in this field as marker in
--   the subsequent request to get next set of objects. Amazon S3 lists
--   objects in alphabetical order Note: This element is returned only if
--   you have delimiter request parameter specified. If response does not
--   include the NextMaker and it is truncated, you can use the value of
--   the last Key in the response as the marker in the subsequent request
--   to get the next set of object keys.
lorsNextMarker :: Lens' ListObjectsResponse (Maybe Text)

-- | Undocumented member.
lorsMaxKeys :: Lens' ListObjectsResponse (Maybe Int)

-- | A flag that indicates whether or not Amazon S3 returned all of the
--   results that satisfied the search criteria.
lorsIsTruncated :: Lens' ListObjectsResponse (Maybe Bool)

-- | Undocumented member.
lorsDelimiter :: Lens' ListObjectsResponse (Maybe Delimiter)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lorsResponseStatus :: Lens' ListObjectsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListObjects.ListObjectsResponse
instance Data.Data.Data Network.AWS.S3.ListObjects.ListObjectsResponse
instance GHC.Show.Show Network.AWS.S3.ListObjects.ListObjectsResponse
instance GHC.Read.Read Network.AWS.S3.ListObjects.ListObjectsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListObjects.ListObjectsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListObjects.ListObjects
instance Data.Data.Data Network.AWS.S3.ListObjects.ListObjects
instance GHC.Show.Show Network.AWS.S3.ListObjects.ListObjects
instance GHC.Read.Read Network.AWS.S3.ListObjects.ListObjects
instance GHC.Classes.Eq Network.AWS.S3.ListObjects.ListObjects
instance Network.AWS.Pager.AWSPager Network.AWS.S3.ListObjects.ListObjects
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListObjects.ListObjects
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListObjects.ListObjects
instance Control.DeepSeq.NFData Network.AWS.S3.ListObjects.ListObjects
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListObjects.ListObjects
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListObjects.ListObjects
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListObjects.ListObjects
instance Control.DeepSeq.NFData Network.AWS.S3.ListObjects.ListObjectsResponse


-- | Returns some or all (up to 1000) of the objects in a bucket. You can
--   use the request parameters as selection criteria to return a subset of
--   the objects in a bucket. Note: ListObjectsV2 is the revised List
--   Objects API and we recommend you use this revised API for new
--   application development.
module Network.AWS.S3.ListObjectsV

-- | Creates a value of <a>ListObjectsV</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lStartAfter</a> - StartAfter is where you want Amazon S3 to
--   start listing from. Amazon S3 starts listing after this specified key.
--   StartAfter can be any key in the bucket</li>
--   <li><a>lContinuationToken</a> - ContinuationToken indicates Amazon S3
--   that the list is being continued on this bucket with a token.
--   ContinuationToken is obfuscated and is not a real key</li>
--   <li><a>lFetchOwner</a> - The owner field is not present in listV2 by
--   default, if you want to return owner field with each key in the result
--   then set the fetch owner field to true</li>
--   <li><a>lPrefix</a> - Limits the response to keys that begin with the
--   specified prefix.</li>
--   <li><a>lEncodingType</a> - Encoding type used by Amazon S3 to encode
--   object keys in the response.</li>
--   <li><a>lRequestPayer</a> - Confirms that the requester knows that she
--   or he will be charged for the list objects request in V2 style. Bucket
--   owners need not specify this parameter in their requests.</li>
--   <li><a>lMaxKeys</a> - Sets the maximum number of keys returned in the
--   response. The response might contain fewer keys but will never contain
--   more.</li>
--   <li><a>lDelimiter</a> - A delimiter is a character you use to group
--   keys.</li>
--   <li><a>lBucket</a> - Name of the bucket to list.</li>
--   </ul>
listObjectsV :: BucketName -> ListObjectsV

-- | <i>See:</i> <a>listObjectsV</a> smart constructor.
data ListObjectsV

-- | StartAfter is where you want Amazon S3 to start listing from. Amazon
--   S3 starts listing after this specified key. StartAfter can be any key
--   in the bucket
lStartAfter :: Lens' ListObjectsV (Maybe Text)

-- | ContinuationToken indicates Amazon S3 that the list is being continued
--   on this bucket with a token. ContinuationToken is obfuscated and is
--   not a real key
lContinuationToken :: Lens' ListObjectsV (Maybe Text)

-- | The owner field is not present in listV2 by default, if you want to
--   return owner field with each key in the result then set the fetch
--   owner field to true
lFetchOwner :: Lens' ListObjectsV (Maybe Bool)

-- | Limits the response to keys that begin with the specified prefix.
lPrefix :: Lens' ListObjectsV (Maybe Text)

-- | Encoding type used by Amazon S3 to encode object keys in the response.
lEncodingType :: Lens' ListObjectsV (Maybe EncodingType)

-- | Confirms that the requester knows that she or he will be charged for
--   the list objects request in V2 style. Bucket owners need not specify
--   this parameter in their requests.
lRequestPayer :: Lens' ListObjectsV (Maybe RequestPayer)

-- | Sets the maximum number of keys returned in the response. The response
--   might contain fewer keys but will never contain more.
lMaxKeys :: Lens' ListObjectsV (Maybe Int)

-- | A delimiter is a character you use to group keys.
lDelimiter :: Lens' ListObjectsV (Maybe Delimiter)

-- | Name of the bucket to list.
lBucket :: Lens' ListObjectsV BucketName

-- | Creates a value of <a>ListObjectsVResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrsStartAfter</a> - StartAfter is where you want Amazon S3 to
--   start listing from. Amazon S3 starts listing after this specified key.
--   StartAfter can be any key in the bucket</li>
--   <li><a>lrsKeyCount</a> - KeyCount is the number of keys returned with
--   this request. KeyCount will always be less than equals to MaxKeys
--   field. Say you ask for 50 keys, your result will include less than
--   equals 50 keys</li>
--   <li><a>lrsContents</a> - Metadata about each object returned.</li>
--   <li><a>lrsContinuationToken</a> - ContinuationToken indicates Amazon
--   S3 that the list is being continued on this bucket with a token.
--   ContinuationToken is obfuscated and is not a real key</li>
--   <li><a>lrsPrefix</a> - Limits the response to keys that begin with the
--   specified prefix.</li>
--   <li><a>lrsCommonPrefixes</a> - CommonPrefixes contains all (if there
--   are any) keys between Prefix and the next occurrence of the string
--   specified by delimiter</li>
--   <li><a>lrsEncodingType</a> - Encoding type used by Amazon S3 to encode
--   object keys in the response.</li>
--   <li><a>lrsName</a> - Name of the bucket to list.</li>
--   <li><a>lrsNextContinuationToken</a> - NextContinuationToken is sent
--   when isTruncated is true which means there are more keys in the bucket
--   that can be listed. The next list requests to Amazon S3 can be
--   continued with this NextContinuationToken. NextContinuationToken is
--   obfuscated and is not a real key</li>
--   <li><a>lrsMaxKeys</a> - Sets the maximum number of keys returned in
--   the response. The response might contain fewer keys but will never
--   contain more.</li>
--   <li><a>lrsIsTruncated</a> - A flag that indicates whether or not
--   Amazon S3 returned all of the results that satisfied the search
--   criteria.</li>
--   <li><a>lrsDelimiter</a> - A delimiter is a character you use to group
--   keys.</li>
--   <li><a>lrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listObjectsVResponse :: Int -> ListObjectsVResponse

-- | <i>See:</i> <a>listObjectsVResponse</a> smart constructor.
data ListObjectsVResponse

-- | StartAfter is where you want Amazon S3 to start listing from. Amazon
--   S3 starts listing after this specified key. StartAfter can be any key
--   in the bucket
lrsStartAfter :: Lens' ListObjectsVResponse (Maybe Text)

-- | KeyCount is the number of keys returned with this request. KeyCount
--   will always be less than equals to MaxKeys field. Say you ask for 50
--   keys, your result will include less than equals 50 keys
lrsKeyCount :: Lens' ListObjectsVResponse (Maybe Int)

-- | Metadata about each object returned.
lrsContents :: Lens' ListObjectsVResponse [Object]

-- | ContinuationToken indicates Amazon S3 that the list is being continued
--   on this bucket with a token. ContinuationToken is obfuscated and is
--   not a real key
lrsContinuationToken :: Lens' ListObjectsVResponse (Maybe Text)

-- | Limits the response to keys that begin with the specified prefix.
lrsPrefix :: Lens' ListObjectsVResponse (Maybe Text)

-- | CommonPrefixes contains all (if there are any) keys between Prefix and
--   the next occurrence of the string specified by delimiter
lrsCommonPrefixes :: Lens' ListObjectsVResponse [CommonPrefix]

-- | Encoding type used by Amazon S3 to encode object keys in the response.
lrsEncodingType :: Lens' ListObjectsVResponse (Maybe EncodingType)

-- | Name of the bucket to list.
lrsName :: Lens' ListObjectsVResponse (Maybe BucketName)

-- | NextContinuationToken is sent when isTruncated is true which means
--   there are more keys in the bucket that can be listed. The next list
--   requests to Amazon S3 can be continued with this
--   NextContinuationToken. NextContinuationToken is obfuscated and is not
--   a real key
lrsNextContinuationToken :: Lens' ListObjectsVResponse (Maybe Text)

-- | Sets the maximum number of keys returned in the response. The response
--   might contain fewer keys but will never contain more.
lrsMaxKeys :: Lens' ListObjectsVResponse (Maybe Int)

-- | A flag that indicates whether or not Amazon S3 returned all of the
--   results that satisfied the search criteria.
lrsIsTruncated :: Lens' ListObjectsVResponse (Maybe Bool)

-- | A delimiter is a character you use to group keys.
lrsDelimiter :: Lens' ListObjectsVResponse (Maybe Delimiter)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lrsResponseStatus :: Lens' ListObjectsVResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListObjectsV.ListObjectsVResponse
instance Data.Data.Data Network.AWS.S3.ListObjectsV.ListObjectsVResponse
instance GHC.Show.Show Network.AWS.S3.ListObjectsV.ListObjectsVResponse
instance GHC.Read.Read Network.AWS.S3.ListObjectsV.ListObjectsVResponse
instance GHC.Classes.Eq Network.AWS.S3.ListObjectsV.ListObjectsVResponse
instance GHC.Generics.Generic Network.AWS.S3.ListObjectsV.ListObjectsV
instance Data.Data.Data Network.AWS.S3.ListObjectsV.ListObjectsV
instance GHC.Show.Show Network.AWS.S3.ListObjectsV.ListObjectsV
instance GHC.Read.Read Network.AWS.S3.ListObjectsV.ListObjectsV
instance GHC.Classes.Eq Network.AWS.S3.ListObjectsV.ListObjectsV
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListObjectsV.ListObjectsV
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListObjectsV.ListObjectsV
instance Control.DeepSeq.NFData Network.AWS.S3.ListObjectsV.ListObjectsV
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListObjectsV.ListObjectsV
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListObjectsV.ListObjectsV
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListObjectsV.ListObjectsV
instance Control.DeepSeq.NFData Network.AWS.S3.ListObjectsV.ListObjectsVResponse


-- | Lists the parts that have been uploaded for a specific multipart
--   upload.
--   
--   This operation returns paginated results.
module Network.AWS.S3.ListParts

-- | Creates a value of <a>ListParts</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpMaxParts</a> - Sets the maximum number of parts to
--   return.</li>
--   <li><a>lpRequestPayer</a> - Undocumented member.</li>
--   <li><a>lpPartNumberMarker</a> - Specifies the part after which listing
--   should begin. Only parts with higher part numbers will be listed.</li>
--   <li><a>lpBucket</a> - Undocumented member.</li>
--   <li><a>lpKey</a> - Undocumented member.</li>
--   <li><a>lpUploadId</a> - Upload ID identifying the multipart upload
--   whose parts are being listed.</li>
--   </ul>
listParts :: BucketName -> ObjectKey -> Text -> ListParts

-- | <i>See:</i> <a>listParts</a> smart constructor.
data ListParts

-- | Sets the maximum number of parts to return.
lpMaxParts :: Lens' ListParts (Maybe Int)

-- | Undocumented member.
lpRequestPayer :: Lens' ListParts (Maybe RequestPayer)

-- | Specifies the part after which listing should begin. Only parts with
--   higher part numbers will be listed.
lpPartNumberMarker :: Lens' ListParts (Maybe Int)

-- | Undocumented member.
lpBucket :: Lens' ListParts BucketName

-- | Undocumented member.
lpKey :: Lens' ListParts ObjectKey

-- | Upload ID identifying the multipart upload whose parts are being
--   listed.
lpUploadId :: Lens' ListParts Text

-- | Creates a value of <a>ListPartsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lprsParts</a> - Undocumented member.</li>
--   <li><a>lprsRequestCharged</a> - Undocumented member.</li>
--   <li><a>lprsMaxParts</a> - Maximum number of parts that were allowed in
--   the response.</li>
--   <li><a>lprsInitiator</a> - Identifies who initiated the multipart
--   upload.</li>
--   <li><a>lprsBucket</a> - Name of the bucket to which the multipart
--   upload was initiated.</li>
--   <li><a>lprsAbortDate</a> - Date when multipart upload will become
--   eligible for abort operation by lifecycle.</li>
--   <li><a>lprsNextPartNumberMarker</a> - When a list is truncated, this
--   element specifies the last part in the list, as well as the value to
--   use for the part-number-marker request parameter in a subsequent
--   request.</li>
--   <li><a>lprsAbortRuleId</a> - Id of the lifecycle rule that makes a
--   multipart upload eligible for abort operation.</li>
--   <li><a>lprsOwner</a> - Undocumented member.</li>
--   <li><a>lprsKey</a> - Object key for which the multipart upload was
--   initiated.</li>
--   <li><a>lprsStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>lprsIsTruncated</a> - Indicates whether the returned list of
--   parts is truncated.</li>
--   <li><a>lprsPartNumberMarker</a> - Part number after which listing
--   begins.</li>
--   <li><a>lprsUploadId</a> - Upload ID identifying the multipart upload
--   whose parts are being listed.</li>
--   <li><a>lprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPartsResponse :: Int -> ListPartsResponse

-- | <i>See:</i> <a>listPartsResponse</a> smart constructor.
data ListPartsResponse

-- | Undocumented member.
lprsParts :: Lens' ListPartsResponse [Part]

-- | Undocumented member.
lprsRequestCharged :: Lens' ListPartsResponse (Maybe RequestCharged)

-- | Maximum number of parts that were allowed in the response.
lprsMaxParts :: Lens' ListPartsResponse (Maybe Int)

-- | Identifies who initiated the multipart upload.
lprsInitiator :: Lens' ListPartsResponse (Maybe Initiator)

-- | Name of the bucket to which the multipart upload was initiated.
lprsBucket :: Lens' ListPartsResponse (Maybe BucketName)

-- | Date when multipart upload will become eligible for abort operation by
--   lifecycle.
lprsAbortDate :: Lens' ListPartsResponse (Maybe UTCTime)

-- | When a list is truncated, this element specifies the last part in the
--   list, as well as the value to use for the part-number-marker request
--   parameter in a subsequent request.
lprsNextPartNumberMarker :: Lens' ListPartsResponse (Maybe Int)

-- | Id of the lifecycle rule that makes a multipart upload eligible for
--   abort operation.
lprsAbortRuleId :: Lens' ListPartsResponse (Maybe Text)

-- | Undocumented member.
lprsOwner :: Lens' ListPartsResponse (Maybe Owner)

-- | Object key for which the multipart upload was initiated.
lprsKey :: Lens' ListPartsResponse (Maybe ObjectKey)

-- | The class of storage used to store the object.
lprsStorageClass :: Lens' ListPartsResponse (Maybe StorageClass)

-- | Indicates whether the returned list of parts is truncated.
lprsIsTruncated :: Lens' ListPartsResponse (Maybe Bool)

-- | Part number after which listing begins.
lprsPartNumberMarker :: Lens' ListPartsResponse (Maybe Int)

-- | Upload ID identifying the multipart upload whose parts are being
--   listed.
lprsUploadId :: Lens' ListPartsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lprsResponseStatus :: Lens' ListPartsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.ListParts.ListPartsResponse
instance Data.Data.Data Network.AWS.S3.ListParts.ListPartsResponse
instance GHC.Show.Show Network.AWS.S3.ListParts.ListPartsResponse
instance GHC.Read.Read Network.AWS.S3.ListParts.ListPartsResponse
instance GHC.Classes.Eq Network.AWS.S3.ListParts.ListPartsResponse
instance GHC.Generics.Generic Network.AWS.S3.ListParts.ListParts
instance Data.Data.Data Network.AWS.S3.ListParts.ListParts
instance GHC.Show.Show Network.AWS.S3.ListParts.ListParts
instance GHC.Read.Read Network.AWS.S3.ListParts.ListParts
instance GHC.Classes.Eq Network.AWS.S3.ListParts.ListParts
instance Network.AWS.Pager.AWSPager Network.AWS.S3.ListParts.ListParts
instance Network.AWS.Types.AWSRequest Network.AWS.S3.ListParts.ListParts
instance Data.Hashable.Class.Hashable Network.AWS.S3.ListParts.ListParts
instance Control.DeepSeq.NFData Network.AWS.S3.ListParts.ListParts
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.ListParts.ListParts
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.ListParts.ListParts
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.ListParts.ListParts
instance Control.DeepSeq.NFData Network.AWS.S3.ListParts.ListPartsResponse


-- | Sets the permissions on a bucket using access control lists (ACL).
module Network.AWS.S3.PutBucketACL

-- | Creates a value of <a>PutBucketACL</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbaGrantReadACP</a> - Allows grantee to read the bucket
--   ACL.</li>
--   <li><a>pbaGrantWriteACP</a> - Allows grantee to write the ACL for the
--   applicable bucket.</li>
--   <li><a>pbaGrantRead</a> - Allows grantee to list the objects in the
--   bucket.</li>
--   <li><a>pbaGrantFullControl</a> - Allows grantee the read, write, read
--   ACP, and write ACP permissions on the bucket.</li>
--   <li><a>pbaContentMD5</a> - Undocumented member.</li>
--   <li><a>pbaAccessControlPolicy</a> - Undocumented member.</li>
--   <li><a>pbaGrantWrite</a> - Allows grantee to create, overwrite, and
--   delete any object in the bucket.</li>
--   <li><a>pbaACL</a> - The canned ACL to apply to the bucket.</li>
--   <li><a>pbaBucket</a> - Undocumented member.</li>
--   </ul>
putBucketACL :: BucketName -> PutBucketACL

-- | <i>See:</i> <a>putBucketACL</a> smart constructor.
data PutBucketACL

-- | Allows grantee to read the bucket ACL.
pbaGrantReadACP :: Lens' PutBucketACL (Maybe Text)

-- | Allows grantee to write the ACL for the applicable bucket.
pbaGrantWriteACP :: Lens' PutBucketACL (Maybe Text)

-- | Allows grantee to list the objects in the bucket.
pbaGrantRead :: Lens' PutBucketACL (Maybe Text)

-- | Allows grantee the read, write, read ACP, and write ACP permissions on
--   the bucket.
pbaGrantFullControl :: Lens' PutBucketACL (Maybe Text)

-- | Undocumented member.
pbaContentMD5 :: Lens' PutBucketACL (Maybe Text)

-- | Undocumented member.
pbaAccessControlPolicy :: Lens' PutBucketACL (Maybe AccessControlPolicy)

-- | Allows grantee to create, overwrite, and delete any object in the
--   bucket.
pbaGrantWrite :: Lens' PutBucketACL (Maybe Text)

-- | The canned ACL to apply to the bucket.
pbaACL :: Lens' PutBucketACL (Maybe BucketCannedACL)

-- | Undocumented member.
pbaBucket :: Lens' PutBucketACL BucketName

-- | Creates a value of <a>PutBucketACLResponse</a> with the minimum fields
--   required to make a request.
putBucketACLResponse :: PutBucketACLResponse

-- | <i>See:</i> <a>putBucketACLResponse</a> smart constructor.
data PutBucketACLResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketACL.PutBucketACLResponse
instance Data.Data.Data Network.AWS.S3.PutBucketACL.PutBucketACLResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketACL.PutBucketACLResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketACL.PutBucketACLResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketACL.PutBucketACLResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketACL.PutBucketACL
instance Data.Data.Data Network.AWS.S3.PutBucketACL.PutBucketACL
instance GHC.Show.Show Network.AWS.S3.PutBucketACL.PutBucketACL
instance GHC.Read.Read Network.AWS.S3.PutBucketACL.PutBucketACL
instance GHC.Classes.Eq Network.AWS.S3.PutBucketACL.PutBucketACL
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketACL.PutBucketACL
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketACL.PutBucketACL
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketACL.PutBucketACL
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketACL.PutBucketACL
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketACL.PutBucketACL
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketACL.PutBucketACL
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketACL.PutBucketACL
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketACL.PutBucketACLResponse


-- | Sets the accelerate configuration of an existing bucket.
module Network.AWS.S3.PutBucketAccelerateConfiguration

-- | Creates a value of <a>PutBucketAccelerateConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbacBucket</a> - Name of the bucket for which the accelerate
--   configuration is set.</li>
--   <li><a>pbacAccelerateConfiguration</a> - Specifies the Accelerate
--   Configuration you want to set for the bucket.</li>
--   </ul>
putBucketAccelerateConfiguration :: BucketName -> AccelerateConfiguration -> PutBucketAccelerateConfiguration

-- | <i>See:</i> <a>putBucketAccelerateConfiguration</a> smart constructor.
data PutBucketAccelerateConfiguration

-- | Name of the bucket for which the accelerate configuration is set.
pbacBucket :: Lens' PutBucketAccelerateConfiguration BucketName

-- | Specifies the Accelerate Configuration you want to set for the bucket.
pbacAccelerateConfiguration :: Lens' PutBucketAccelerateConfiguration AccelerateConfiguration

-- | Creates a value of <a>PutBucketAccelerateConfigurationResponse</a>
--   with the minimum fields required to make a request.
putBucketAccelerateConfigurationResponse :: PutBucketAccelerateConfigurationResponse

-- | <i>See:</i> <a>putBucketAccelerateConfigurationResponse</a> smart
--   constructor.
data PutBucketAccelerateConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfigurationResponse
instance Data.Data.Data Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Data.Data.Data Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance GHC.Show.Show Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance GHC.Read.Read Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance GHC.Classes.Eq Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketAccelerateConfiguration.PutBucketAccelerateConfigurationResponse


-- | Sets an analytics configuration for the bucket (specified by the
--   analytics configuration ID).
module Network.AWS.S3.PutBucketAnalyticsConfiguration

-- | Creates a value of <a>PutBucketAnalyticsConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pBucket</a> - The name of the bucket to which an analytics
--   configuration is stored.</li>
--   <li><a>pId</a> - The identifier used to represent an analytics
--   configuration.</li>
--   <li><a>pAnalyticsConfiguration</a> - The configuration and any
--   analyses for the analytics filter.</li>
--   </ul>
putBucketAnalyticsConfiguration :: BucketName -> Text -> AnalyticsConfiguration -> PutBucketAnalyticsConfiguration

-- | <i>See:</i> <a>putBucketAnalyticsConfiguration</a> smart constructor.
data PutBucketAnalyticsConfiguration

-- | The name of the bucket to which an analytics configuration is stored.
pBucket :: Lens' PutBucketAnalyticsConfiguration BucketName

-- | The identifier used to represent an analytics configuration.
pId :: Lens' PutBucketAnalyticsConfiguration Text

-- | The configuration and any analyses for the analytics filter.
pAnalyticsConfiguration :: Lens' PutBucketAnalyticsConfiguration AnalyticsConfiguration

-- | Creates a value of <a>PutBucketAnalyticsConfigurationResponse</a> with
--   the minimum fields required to make a request.
putBucketAnalyticsConfigurationResponse :: PutBucketAnalyticsConfigurationResponse

-- | <i>See:</i> <a>putBucketAnalyticsConfigurationResponse</a> smart
--   constructor.
data PutBucketAnalyticsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfigurationResponse
instance Data.Data.Data Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Data.Data.Data Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance GHC.Show.Show Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance GHC.Read.Read Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance GHC.Classes.Eq Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketAnalyticsConfiguration.PutBucketAnalyticsConfigurationResponse


-- | Sets the cors configuration for a bucket.
module Network.AWS.S3.PutBucketCORS

-- | Creates a value of <a>PutBucketCORS</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbcContentMD5</a> - Undocumented member.</li>
--   <li><a>pbcBucket</a> - Undocumented member.</li>
--   <li><a>pbcCORSConfiguration</a> - Undocumented member.</li>
--   </ul>
putBucketCORS :: BucketName -> CORSConfiguration -> PutBucketCORS

-- | <i>See:</i> <a>putBucketCORS</a> smart constructor.
data PutBucketCORS

-- | Undocumented member.
pbcContentMD5 :: Lens' PutBucketCORS (Maybe Text)

-- | Undocumented member.
pbcBucket :: Lens' PutBucketCORS BucketName

-- | Undocumented member.
pbcCORSConfiguration :: Lens' PutBucketCORS CORSConfiguration

-- | Creates a value of <a>PutBucketCORSResponse</a> with the minimum
--   fields required to make a request.
putBucketCORSResponse :: PutBucketCORSResponse

-- | <i>See:</i> <a>putBucketCORSResponse</a> smart constructor.
data PutBucketCORSResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketCORS.PutBucketCORSResponse
instance Data.Data.Data Network.AWS.S3.PutBucketCORS.PutBucketCORSResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketCORS.PutBucketCORSResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketCORS.PutBucketCORSResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketCORS.PutBucketCORSResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Data.Data.Data Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance GHC.Show.Show Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance GHC.Read.Read Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance GHC.Classes.Eq Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketCORS.PutBucketCORS
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketCORS.PutBucketCORSResponse


-- | Adds an inventory configuration (identified by the inventory ID) from
--   the bucket.
module Network.AWS.S3.PutBucketInventoryConfiguration

-- | Creates a value of <a>PutBucketInventoryConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbicBucket</a> - The name of the bucket where the inventory
--   configuration will be stored.</li>
--   <li><a>pbicId</a> - The ID used to identify the inventory
--   configuration.</li>
--   <li><a>pbicInventoryConfiguration</a> - Specifies the inventory
--   configuration.</li>
--   </ul>
putBucketInventoryConfiguration :: BucketName -> Text -> InventoryConfiguration -> PutBucketInventoryConfiguration

-- | <i>See:</i> <a>putBucketInventoryConfiguration</a> smart constructor.
data PutBucketInventoryConfiguration

-- | The name of the bucket where the inventory configuration will be
--   stored.
pbicBucket :: Lens' PutBucketInventoryConfiguration BucketName

-- | The ID used to identify the inventory configuration.
pbicId :: Lens' PutBucketInventoryConfiguration Text

-- | Specifies the inventory configuration.
pbicInventoryConfiguration :: Lens' PutBucketInventoryConfiguration InventoryConfiguration

-- | Creates a value of <a>PutBucketInventoryConfigurationResponse</a> with
--   the minimum fields required to make a request.
putBucketInventoryConfigurationResponse :: PutBucketInventoryConfigurationResponse

-- | <i>See:</i> <a>putBucketInventoryConfigurationResponse</a> smart
--   constructor.
data PutBucketInventoryConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfigurationResponse
instance Data.Data.Data Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Data.Data.Data Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance GHC.Show.Show Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance GHC.Read.Read Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance GHC.Classes.Eq Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketInventoryConfiguration.PutBucketInventoryConfigurationResponse


-- | Sets lifecycle configuration for your bucket. If a lifecycle
--   configuration exists, it replaces it.
module Network.AWS.S3.PutBucketLifecycleConfiguration

-- | Creates a value of <a>PutBucketLifecycleConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pblcLifecycleConfiguration</a> - Undocumented member.</li>
--   <li><a>pblcBucket</a> - Undocumented member.</li>
--   </ul>
putBucketLifecycleConfiguration :: BucketName -> PutBucketLifecycleConfiguration

-- | <i>See:</i> <a>putBucketLifecycleConfiguration</a> smart constructor.
data PutBucketLifecycleConfiguration

-- | Undocumented member.
pblcLifecycleConfiguration :: Lens' PutBucketLifecycleConfiguration (Maybe BucketLifecycleConfiguration)

-- | Undocumented member.
pblcBucket :: Lens' PutBucketLifecycleConfiguration BucketName

-- | Creates a value of <a>PutBucketLifecycleConfigurationResponse</a> with
--   the minimum fields required to make a request.
putBucketLifecycleConfigurationResponse :: PutBucketLifecycleConfigurationResponse

-- | <i>See:</i> <a>putBucketLifecycleConfigurationResponse</a> smart
--   constructor.
data PutBucketLifecycleConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfigurationResponse
instance Data.Data.Data Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Data.Data.Data Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance GHC.Show.Show Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance GHC.Read.Read Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance GHC.Classes.Eq Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketLifecycleConfiguration.PutBucketLifecycleConfigurationResponse


-- | Set the logging parameters for a bucket and to specify permissions for
--   who can view and modify the logging parameters. To set the logging
--   status of a bucket, you must be the bucket owner.
module Network.AWS.S3.PutBucketLogging

-- | Creates a value of <a>PutBucketLogging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pblContentMD5</a> - Undocumented member.</li>
--   <li><a>pblBucket</a> - Undocumented member.</li>
--   <li><a>pblBucketLoggingStatus</a> - Undocumented member.</li>
--   </ul>
putBucketLogging :: BucketName -> BucketLoggingStatus -> PutBucketLogging

-- | <i>See:</i> <a>putBucketLogging</a> smart constructor.
data PutBucketLogging

-- | Undocumented member.
pblContentMD5 :: Lens' PutBucketLogging (Maybe Text)

-- | Undocumented member.
pblBucket :: Lens' PutBucketLogging BucketName

-- | Undocumented member.
pblBucketLoggingStatus :: Lens' PutBucketLogging BucketLoggingStatus

-- | Creates a value of <a>PutBucketLoggingResponse</a> with the minimum
--   fields required to make a request.
putBucketLoggingResponse :: PutBucketLoggingResponse

-- | <i>See:</i> <a>putBucketLoggingResponse</a> smart constructor.
data PutBucketLoggingResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketLogging.PutBucketLoggingResponse
instance Data.Data.Data Network.AWS.S3.PutBucketLogging.PutBucketLoggingResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketLogging.PutBucketLoggingResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketLogging.PutBucketLoggingResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketLogging.PutBucketLoggingResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Data.Data.Data Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance GHC.Show.Show Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance GHC.Read.Read Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance GHC.Classes.Eq Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketLogging.PutBucketLogging
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketLogging.PutBucketLoggingResponse


-- | Sets a metrics configuration (specified by the metrics configuration
--   ID) for the bucket.
module Network.AWS.S3.PutBucketMetricsConfiguration

-- | Creates a value of <a>PutBucketMetricsConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbmcBucket</a> - The name of the bucket for which the metrics
--   configuration is set.</li>
--   <li><a>pbmcId</a> - The ID used to identify the metrics
--   configuration.</li>
--   <li><a>pbmcMetricsConfiguration</a> - Specifies the metrics
--   configuration.</li>
--   </ul>
putBucketMetricsConfiguration :: BucketName -> Text -> MetricsConfiguration -> PutBucketMetricsConfiguration

-- | <i>See:</i> <a>putBucketMetricsConfiguration</a> smart constructor.
data PutBucketMetricsConfiguration

-- | The name of the bucket for which the metrics configuration is set.
pbmcBucket :: Lens' PutBucketMetricsConfiguration BucketName

-- | The ID used to identify the metrics configuration.
pbmcId :: Lens' PutBucketMetricsConfiguration Text

-- | Specifies the metrics configuration.
pbmcMetricsConfiguration :: Lens' PutBucketMetricsConfiguration MetricsConfiguration

-- | Creates a value of <a>PutBucketMetricsConfigurationResponse</a> with
--   the minimum fields required to make a request.
putBucketMetricsConfigurationResponse :: PutBucketMetricsConfigurationResponse

-- | <i>See:</i> <a>putBucketMetricsConfigurationResponse</a> smart
--   constructor.
data PutBucketMetricsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfigurationResponse
instance Data.Data.Data Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Data.Data.Data Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance GHC.Show.Show Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance GHC.Read.Read Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance GHC.Classes.Eq Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketMetricsConfiguration.PutBucketMetricsConfigurationResponse


-- | Enables notifications of specified events for a bucket.
module Network.AWS.S3.PutBucketNotificationConfiguration

-- | Creates a value of <a>PutBucketNotificationConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbncBucket</a> - Undocumented member.</li>
--   <li><a>pbncNotificationConfiguration</a> - Undocumented member.</li>
--   </ul>
putBucketNotificationConfiguration :: BucketName -> NotificationConfiguration -> PutBucketNotificationConfiguration

-- | <i>See:</i> <a>putBucketNotificationConfiguration</a> smart
--   constructor.
data PutBucketNotificationConfiguration

-- | Undocumented member.
pbncBucket :: Lens' PutBucketNotificationConfiguration BucketName

-- | Undocumented member.
pbncNotificationConfiguration :: Lens' PutBucketNotificationConfiguration NotificationConfiguration

-- | Creates a value of <a>PutBucketNotificationConfigurationResponse</a>
--   with the minimum fields required to make a request.
putBucketNotificationConfigurationResponse :: PutBucketNotificationConfigurationResponse

-- | <i>See:</i> <a>putBucketNotificationConfigurationResponse</a> smart
--   constructor.
data PutBucketNotificationConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfigurationResponse
instance Data.Data.Data Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Data.Data.Data Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance GHC.Show.Show Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance GHC.Read.Read Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance GHC.Classes.Eq Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketNotificationConfiguration.PutBucketNotificationConfigurationResponse


-- | Replaces a policy on a bucket. If the bucket already has a policy, the
--   one in this request completely replaces it.
module Network.AWS.S3.PutBucketPolicy

-- | Creates a value of <a>PutBucketPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbpContentMD5</a> - Undocumented member.</li>
--   <li><a>pbpBucket</a> - Undocumented member.</li>
--   <li><a>pbpPolicy</a> - The bucket policy as a JSON document.</li>
--   </ul>
putBucketPolicy :: BucketName -> HashMap Text Value -> PutBucketPolicy

-- | <i>See:</i> <a>putBucketPolicy</a> smart constructor.
data PutBucketPolicy

-- | Undocumented member.
pbpContentMD5 :: Lens' PutBucketPolicy (Maybe Text)

-- | Undocumented member.
pbpBucket :: Lens' PutBucketPolicy BucketName

-- | The bucket policy as a JSON document.
pbpPolicy :: Lens' PutBucketPolicy (HashMap Text Value)

-- | Creates a value of <a>PutBucketPolicyResponse</a> with the minimum
--   fields required to make a request.
putBucketPolicyResponse :: PutBucketPolicyResponse

-- | <i>See:</i> <a>putBucketPolicyResponse</a> smart constructor.
data PutBucketPolicyResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketPolicy.PutBucketPolicyResponse
instance Data.Data.Data Network.AWS.S3.PutBucketPolicy.PutBucketPolicyResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketPolicy.PutBucketPolicyResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketPolicy.PutBucketPolicyResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketPolicy.PutBucketPolicyResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Data.Data.Data Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance GHC.Show.Show Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance GHC.Classes.Eq Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Network.AWS.Data.Body.ToBody Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketPolicy.PutBucketPolicy
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketPolicy.PutBucketPolicyResponse


-- | Creates a new replication configuration (or replaces an existing one,
--   if present).
module Network.AWS.S3.PutBucketReplication

-- | Creates a value of <a>PutBucketReplication</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbrContentMD5</a> - Undocumented member.</li>
--   <li><a>pbrBucket</a> - Undocumented member.</li>
--   <li><a>pbrReplicationConfiguration</a> - Undocumented member.</li>
--   </ul>
putBucketReplication :: BucketName -> ReplicationConfiguration -> PutBucketReplication

-- | <i>See:</i> <a>putBucketReplication</a> smart constructor.
data PutBucketReplication

-- | Undocumented member.
pbrContentMD5 :: Lens' PutBucketReplication (Maybe Text)

-- | Undocumented member.
pbrBucket :: Lens' PutBucketReplication BucketName

-- | Undocumented member.
pbrReplicationConfiguration :: Lens' PutBucketReplication ReplicationConfiguration

-- | Creates a value of <a>PutBucketReplicationResponse</a> with the
--   minimum fields required to make a request.
putBucketReplicationResponse :: PutBucketReplicationResponse

-- | <i>See:</i> <a>putBucketReplicationResponse</a> smart constructor.
data PutBucketReplicationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketReplication.PutBucketReplicationResponse
instance Data.Data.Data Network.AWS.S3.PutBucketReplication.PutBucketReplicationResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketReplication.PutBucketReplicationResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketReplication.PutBucketReplicationResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketReplication.PutBucketReplicationResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Data.Data.Data Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance GHC.Show.Show Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance GHC.Read.Read Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance GHC.Classes.Eq Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketReplication.PutBucketReplication
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketReplication.PutBucketReplicationResponse


-- | Sets the request payment configuration for a bucket. By default, the
--   bucket owner pays for downloads from the bucket. This configuration
--   parameter enables the bucket owner (only) to specify that the person
--   requesting the download will be charged for the download.
--   Documentation on requester pays buckets can be found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html</a>
module Network.AWS.S3.PutBucketRequestPayment

-- | Creates a value of <a>PutBucketRequestPayment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbrpContentMD5</a> - Undocumented member.</li>
--   <li><a>pbrpBucket</a> - Undocumented member.</li>
--   <li><a>pbrpRequestPaymentConfiguration</a> - Undocumented member.</li>
--   </ul>
putBucketRequestPayment :: BucketName -> RequestPaymentConfiguration -> PutBucketRequestPayment

-- | <i>See:</i> <a>putBucketRequestPayment</a> smart constructor.
data PutBucketRequestPayment

-- | Undocumented member.
pbrpContentMD5 :: Lens' PutBucketRequestPayment (Maybe Text)

-- | Undocumented member.
pbrpBucket :: Lens' PutBucketRequestPayment BucketName

-- | Undocumented member.
pbrpRequestPaymentConfiguration :: Lens' PutBucketRequestPayment RequestPaymentConfiguration

-- | Creates a value of <a>PutBucketRequestPaymentResponse</a> with the
--   minimum fields required to make a request.
putBucketRequestPaymentResponse :: PutBucketRequestPaymentResponse

-- | <i>See:</i> <a>putBucketRequestPaymentResponse</a> smart constructor.
data PutBucketRequestPaymentResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPaymentResponse
instance Data.Data.Data Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPaymentResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPaymentResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPaymentResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPaymentResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Data.Data.Data Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance GHC.Show.Show Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance GHC.Read.Read Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance GHC.Classes.Eq Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPayment
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketRequestPayment.PutBucketRequestPaymentResponse


-- | Sets the tags for a bucket.
module Network.AWS.S3.PutBucketTagging

-- | Creates a value of <a>PutBucketTagging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbtContentMD5</a> - Undocumented member.</li>
--   <li><a>pbtBucket</a> - Undocumented member.</li>
--   <li><a>pbtTagging</a> - Undocumented member.</li>
--   </ul>
putBucketTagging :: BucketName -> Tagging -> PutBucketTagging

-- | <i>See:</i> <a>putBucketTagging</a> smart constructor.
data PutBucketTagging

-- | Undocumented member.
pbtContentMD5 :: Lens' PutBucketTagging (Maybe Text)

-- | Undocumented member.
pbtBucket :: Lens' PutBucketTagging BucketName

-- | Undocumented member.
pbtTagging :: Lens' PutBucketTagging Tagging

-- | Creates a value of <a>PutBucketTaggingResponse</a> with the minimum
--   fields required to make a request.
putBucketTaggingResponse :: PutBucketTaggingResponse

-- | <i>See:</i> <a>putBucketTaggingResponse</a> smart constructor.
data PutBucketTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketTagging.PutBucketTaggingResponse
instance Data.Data.Data Network.AWS.S3.PutBucketTagging.PutBucketTaggingResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketTagging.PutBucketTaggingResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketTagging.PutBucketTaggingResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketTagging.PutBucketTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Data.Data.Data Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance GHC.Show.Show Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance GHC.Read.Read Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance GHC.Classes.Eq Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketTagging.PutBucketTagging
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketTagging.PutBucketTaggingResponse


-- | Sets the versioning state of an existing bucket. To set the versioning
--   state, you must be the bucket owner.
module Network.AWS.S3.PutBucketVersioning

-- | Creates a value of <a>PutBucketVersioning</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbvMFA</a> - The concatenation of the authentication device's
--   serial number, a space, and the value that is displayed on your
--   authentication device.</li>
--   <li><a>pbvContentMD5</a> - Undocumented member.</li>
--   <li><a>pbvBucket</a> - Undocumented member.</li>
--   <li><a>pbvVersioningConfiguration</a> - Undocumented member.</li>
--   </ul>
putBucketVersioning :: BucketName -> VersioningConfiguration -> PutBucketVersioning

-- | <i>See:</i> <a>putBucketVersioning</a> smart constructor.
data PutBucketVersioning

-- | The concatenation of the authentication device's serial number, a
--   space, and the value that is displayed on your authentication device.
pbvMFA :: Lens' PutBucketVersioning (Maybe Text)

-- | Undocumented member.
pbvContentMD5 :: Lens' PutBucketVersioning (Maybe Text)

-- | Undocumented member.
pbvBucket :: Lens' PutBucketVersioning BucketName

-- | Undocumented member.
pbvVersioningConfiguration :: Lens' PutBucketVersioning VersioningConfiguration

-- | Creates a value of <a>PutBucketVersioningResponse</a> with the minimum
--   fields required to make a request.
putBucketVersioningResponse :: PutBucketVersioningResponse

-- | <i>See:</i> <a>putBucketVersioningResponse</a> smart constructor.
data PutBucketVersioningResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketVersioning.PutBucketVersioningResponse
instance Data.Data.Data Network.AWS.S3.PutBucketVersioning.PutBucketVersioningResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketVersioning.PutBucketVersioningResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketVersioning.PutBucketVersioningResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketVersioning.PutBucketVersioningResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Data.Data.Data Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance GHC.Show.Show Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance GHC.Read.Read Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance GHC.Classes.Eq Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketVersioning.PutBucketVersioning
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketVersioning.PutBucketVersioningResponse


-- | Set the website configuration for a bucket.
module Network.AWS.S3.PutBucketWebsite

-- | Creates a value of <a>PutBucketWebsite</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pbwContentMD5</a> - Undocumented member.</li>
--   <li><a>pbwBucket</a> - Undocumented member.</li>
--   <li><a>pbwWebsiteConfiguration</a> - Undocumented member.</li>
--   </ul>
putBucketWebsite :: BucketName -> WebsiteConfiguration -> PutBucketWebsite

-- | <i>See:</i> <a>putBucketWebsite</a> smart constructor.
data PutBucketWebsite

-- | Undocumented member.
pbwContentMD5 :: Lens' PutBucketWebsite (Maybe Text)

-- | Undocumented member.
pbwBucket :: Lens' PutBucketWebsite BucketName

-- | Undocumented member.
pbwWebsiteConfiguration :: Lens' PutBucketWebsite WebsiteConfiguration

-- | Creates a value of <a>PutBucketWebsiteResponse</a> with the minimum
--   fields required to make a request.
putBucketWebsiteResponse :: PutBucketWebsiteResponse

-- | <i>See:</i> <a>putBucketWebsiteResponse</a> smart constructor.
data PutBucketWebsiteResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketWebsite.PutBucketWebsiteResponse
instance Data.Data.Data Network.AWS.S3.PutBucketWebsite.PutBucketWebsiteResponse
instance GHC.Show.Show Network.AWS.S3.PutBucketWebsite.PutBucketWebsiteResponse
instance GHC.Read.Read Network.AWS.S3.PutBucketWebsite.PutBucketWebsiteResponse
instance GHC.Classes.Eq Network.AWS.S3.PutBucketWebsite.PutBucketWebsiteResponse
instance GHC.Generics.Generic Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Data.Data.Data Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance GHC.Show.Show Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance GHC.Read.Read Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance GHC.Classes.Eq Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutBucketWebsite.PutBucketWebsite
instance Control.DeepSeq.NFData Network.AWS.S3.PutBucketWebsite.PutBucketWebsiteResponse


-- | Adds an object to a bucket.
module Network.AWS.S3.PutObject

-- | Creates a value of <a>PutObject</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>poContentLength</a> - Size of the body in bytes. This parameter
--   is useful when the size of the body cannot be determined
--   automatically.</li>
--   <li><a>poExpires</a> - The date and time at which the object is no
--   longer cacheable.</li>
--   <li><a>poGrantReadACP</a> - Allows grantee to read the object
--   ACL.</li>
--   <li><a>poSSECustomerAlgorithm</a> - Specifies the algorithm to use to
--   when encrypting the object (e.g., AES256).</li>
--   <li><a>poSSECustomerKey</a> - Specifies the customer-provided
--   encryption key for Amazon S3 to use in encrypting data. This value is
--   used to store the object and then it is discarded; Amazon does not
--   store the encryption key. The key must be appropriate for use with the
--   algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.</li>
--   <li><a>poRequestPayer</a> - Undocumented member.</li>
--   <li><a>poGrantWriteACP</a> - Allows grantee to write the ACL for the
--   applicable object.</li>
--   <li><a>poWebsiteRedirectLocation</a> - If the bucket is configured as
--   a website, redirects requests for this object to another object in the
--   same bucket or to an external URL. Amazon S3 stores the value of this
--   header in the object metadata.</li>
--   <li><a>poGrantRead</a> - Allows grantee to read the object data and
--   its metadata.</li>
--   <li><a>poStorageClass</a> - The type of storage to use for the object.
--   Defaults to <tt>STANDARD</tt>.</li>
--   <li><a>poSSECustomerKeyMD5</a> - Specifies the 128-bit MD5 digest of
--   the encryption key according to RFC 1321. Amazon S3 uses this header
--   for a message integrity check to ensure the encryption key was
--   transmitted without error.</li>
--   <li><a>poSSEKMSKeyId</a> - Specifies the AWS KMS key ID to use for
--   object encryption. All GET and PUT requests for an object protected by
--   AWS KMS will fail if not made via SSL or using SigV4. Documentation on
--   configuring any of the officially supported AWS SDKs and CLI can be
--   found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version</a></li>
--   <li><a>poGrantFullControl</a> - Gives the grantee READ, READ_ACP, and
--   WRITE_ACP permissions on the object.</li>
--   <li><a>poContentEncoding</a> - Specifies what content encodings have
--   been applied to the object and thus what decoding mechanisms must be
--   applied to obtain the media-type referenced by the Content-Type header
--   field.</li>
--   <li><a>poTagging</a> - The tag-set for the object. The tag-set must be
--   encoded as URL Query parameters</li>
--   <li><a>poContentMD5</a> - The base64-encoded 128-bit MD5 digest of the
--   part data.</li>
--   <li><a>poMetadata</a> - A map of metadata to store with the object in
--   S3.</li>
--   <li><a>poCacheControl</a> - Specifies caching behavior along the
--   request/reply chain.</li>
--   <li><a>poContentLanguage</a> - The language the content is in.</li>
--   <li><a>poACL</a> - The canned ACL to apply to the object.</li>
--   <li><a>poContentDisposition</a> - Specifies presentational information
--   for the object.</li>
--   <li><a>poServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>poContentType</a> - A standard MIME type describing the format
--   of the object data.</li>
--   <li><a>poBucket</a> - Name of the bucket to which the PUT operation
--   was initiated.</li>
--   <li><a>poKey</a> - Object key for which the PUT operation was
--   initiated.</li>
--   <li><a>poBody</a> - Object data.</li>
--   </ul>
putObject :: BucketName -> ObjectKey -> RqBody -> PutObject

-- | <i>See:</i> <a>putObject</a> smart constructor.
data PutObject

-- | Size of the body in bytes. This parameter is useful when the size of
--   the body cannot be determined automatically.
poContentLength :: Lens' PutObject (Maybe Integer)

-- | The date and time at which the object is no longer cacheable.
poExpires :: Lens' PutObject (Maybe UTCTime)

-- | Allows grantee to read the object ACL.
poGrantReadACP :: Lens' PutObject (Maybe Text)

-- | Specifies the algorithm to use to when encrypting the object (e.g.,
--   AES256).
poSSECustomerAlgorithm :: Lens' PutObject (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use in
--   encrypting data. This value is used to store the object and then it is
--   discarded; Amazon does not store the encryption key. The key must be
--   appropriate for use with the algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.
poSSECustomerKey :: Lens' PutObject (Maybe Text)

-- | Undocumented member.
poRequestPayer :: Lens' PutObject (Maybe RequestPayer)

-- | Allows grantee to write the ACL for the applicable object.
poGrantWriteACP :: Lens' PutObject (Maybe Text)

-- | If the bucket is configured as a website, redirects requests for this
--   object to another object in the same bucket or to an external URL.
--   Amazon S3 stores the value of this header in the object metadata.
poWebsiteRedirectLocation :: Lens' PutObject (Maybe Text)

-- | Allows grantee to read the object data and its metadata.
poGrantRead :: Lens' PutObject (Maybe Text)

-- | The type of storage to use for the object. Defaults to
--   <tt>STANDARD</tt>.
poStorageClass :: Lens' PutObject (Maybe StorageClass)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
poSSECustomerKeyMD5 :: Lens' PutObject (Maybe Text)

-- | Specifies the AWS KMS key ID to use for object encryption. All GET and
--   PUT requests for an object protected by AWS KMS will fail if not made
--   via SSL or using SigV4. Documentation on configuring any of the
--   officially supported AWS SDKs and CLI can be found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version</a>
poSSEKMSKeyId :: Lens' PutObject (Maybe Text)

-- | Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the
--   object.
poGrantFullControl :: Lens' PutObject (Maybe Text)

-- | Specifies what content encodings have been applied to the object and
--   thus what decoding mechanisms must be applied to obtain the media-type
--   referenced by the Content-Type header field.
poContentEncoding :: Lens' PutObject (Maybe Text)

-- | The tag-set for the object. The tag-set must be encoded as URL Query
--   parameters
poTagging :: Lens' PutObject (Maybe Text)

-- | The base64-encoded 128-bit MD5 digest of the part data.
poContentMD5 :: Lens' PutObject (Maybe Text)

-- | A map of metadata to store with the object in S3.
poMetadata :: Lens' PutObject (HashMap Text Text)

-- | Specifies caching behavior along the request/reply chain.
poCacheControl :: Lens' PutObject (Maybe Text)

-- | The language the content is in.
poContentLanguage :: Lens' PutObject (Maybe Text)

-- | The canned ACL to apply to the object.
poACL :: Lens' PutObject (Maybe ObjectCannedACL)

-- | Specifies presentational information for the object.
poContentDisposition :: Lens' PutObject (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
poServerSideEncryption :: Lens' PutObject (Maybe ServerSideEncryption)

-- | A standard MIME type describing the format of the object data.
poContentType :: Lens' PutObject (Maybe Text)

-- | Name of the bucket to which the PUT operation was initiated.
poBucket :: Lens' PutObject BucketName

-- | Object key for which the PUT operation was initiated.
poKey :: Lens' PutObject ObjectKey

-- | Object data.
poBody :: Lens' PutObject RqBody

-- | Creates a value of <a>PutObjectResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>porsRequestCharged</a> - Undocumented member.</li>
--   <li><a>porsETag</a> - Entity tag for the uploaded object.</li>
--   <li><a>porsVersionId</a> - Version of the object.</li>
--   <li><a>porsExpiration</a> - If the object expiration is configured,
--   this will contain the expiration date (expiry-date) and rule ID
--   (rule-id). The value of rule-id is URL encoded.</li>
--   <li><a>porsSSECustomerAlgorithm</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header confirming the encryption algorithm used.</li>
--   <li><a>porsSSECustomerKeyMD5</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header to provide round trip message integrity
--   verification of the customer-provided encryption key.</li>
--   <li><a>porsSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>porsServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>porsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putObjectResponse :: Int -> PutObjectResponse

-- | <i>See:</i> <a>putObjectResponse</a> smart constructor.
data PutObjectResponse

-- | Undocumented member.
porsRequestCharged :: Lens' PutObjectResponse (Maybe RequestCharged)

-- | Entity tag for the uploaded object.
porsETag :: Lens' PutObjectResponse (Maybe ETag)

-- | Version of the object.
porsVersionId :: Lens' PutObjectResponse (Maybe ObjectVersionId)

-- | If the object expiration is configured, this will contain the
--   expiration date (expiry-date) and rule ID (rule-id). The value of
--   rule-id is URL encoded.
porsExpiration :: Lens' PutObjectResponse (Maybe Text)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header confirming the
--   encryption algorithm used.
porsSSECustomerAlgorithm :: Lens' PutObjectResponse (Maybe Text)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header to provide round trip
--   message integrity verification of the customer-provided encryption
--   key.
porsSSECustomerKeyMD5 :: Lens' PutObjectResponse (Maybe Text)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
porsSSEKMSKeyId :: Lens' PutObjectResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
porsServerSideEncryption :: Lens' PutObjectResponse (Maybe ServerSideEncryption)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
porsResponseStatus :: Lens' PutObjectResponse Int
instance GHC.Generics.Generic Network.AWS.S3.PutObject.PutObjectResponse
instance Data.Data.Data Network.AWS.S3.PutObject.PutObjectResponse
instance GHC.Show.Show Network.AWS.S3.PutObject.PutObjectResponse
instance GHC.Read.Read Network.AWS.S3.PutObject.PutObjectResponse
instance GHC.Classes.Eq Network.AWS.S3.PutObject.PutObjectResponse
instance GHC.Generics.Generic Network.AWS.S3.PutObject.PutObject
instance GHC.Show.Show Network.AWS.S3.PutObject.PutObject
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutObject.PutObject
instance Network.AWS.Data.Body.ToBody Network.AWS.S3.PutObject.PutObject
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutObject.PutObject
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutObject.PutObject
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutObject.PutObject
instance Control.DeepSeq.NFData Network.AWS.S3.PutObject.PutObjectResponse


-- | uses the acl subresource to set the access control list (ACL)
--   permissions for an object that already exists in a bucket
module Network.AWS.S3.PutObjectACL

-- | Creates a value of <a>PutObjectACL</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>poaVersionId</a> - VersionId used to reference a specific
--   version of the object.</li>
--   <li><a>poaGrantReadACP</a> - Allows grantee to read the bucket
--   ACL.</li>
--   <li><a>poaRequestPayer</a> - Undocumented member.</li>
--   <li><a>poaGrantWriteACP</a> - Allows grantee to write the ACL for the
--   applicable bucket.</li>
--   <li><a>poaGrantRead</a> - Allows grantee to list the objects in the
--   bucket.</li>
--   <li><a>poaGrantFullControl</a> - Allows grantee the read, write, read
--   ACP, and write ACP permissions on the bucket.</li>
--   <li><a>poaContentMD5</a> - Undocumented member.</li>
--   <li><a>poaAccessControlPolicy</a> - Undocumented member.</li>
--   <li><a>poaGrantWrite</a> - Allows grantee to create, overwrite, and
--   delete any object in the bucket.</li>
--   <li><a>poaACL</a> - The canned ACL to apply to the object.</li>
--   <li><a>poaBucket</a> - Undocumented member.</li>
--   <li><a>poaKey</a> - Undocumented member.</li>
--   </ul>
putObjectACL :: BucketName -> ObjectKey -> PutObjectACL

-- | <i>See:</i> <a>putObjectACL</a> smart constructor.
data PutObjectACL

-- | VersionId used to reference a specific version of the object.
poaVersionId :: Lens' PutObjectACL (Maybe ObjectVersionId)

-- | Allows grantee to read the bucket ACL.
poaGrantReadACP :: Lens' PutObjectACL (Maybe Text)

-- | Undocumented member.
poaRequestPayer :: Lens' PutObjectACL (Maybe RequestPayer)

-- | Allows grantee to write the ACL for the applicable bucket.
poaGrantWriteACP :: Lens' PutObjectACL (Maybe Text)

-- | Allows grantee to list the objects in the bucket.
poaGrantRead :: Lens' PutObjectACL (Maybe Text)

-- | Allows grantee the read, write, read ACP, and write ACP permissions on
--   the bucket.
poaGrantFullControl :: Lens' PutObjectACL (Maybe Text)

-- | Undocumented member.
poaContentMD5 :: Lens' PutObjectACL (Maybe Text)

-- | Undocumented member.
poaAccessControlPolicy :: Lens' PutObjectACL (Maybe AccessControlPolicy)

-- | Allows grantee to create, overwrite, and delete any object in the
--   bucket.
poaGrantWrite :: Lens' PutObjectACL (Maybe Text)

-- | The canned ACL to apply to the object.
poaACL :: Lens' PutObjectACL (Maybe ObjectCannedACL)

-- | Undocumented member.
poaBucket :: Lens' PutObjectACL BucketName

-- | Undocumented member.
poaKey :: Lens' PutObjectACL ObjectKey

-- | Creates a value of <a>PutObjectACLResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>poarsRequestCharged</a> - Undocumented member.</li>
--   <li><a>poarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putObjectACLResponse :: Int -> PutObjectACLResponse

-- | <i>See:</i> <a>putObjectACLResponse</a> smart constructor.
data PutObjectACLResponse

-- | Undocumented member.
poarsRequestCharged :: Lens' PutObjectACLResponse (Maybe RequestCharged)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
poarsResponseStatus :: Lens' PutObjectACLResponse Int
instance GHC.Generics.Generic Network.AWS.S3.PutObjectACL.PutObjectACLResponse
instance Data.Data.Data Network.AWS.S3.PutObjectACL.PutObjectACLResponse
instance GHC.Show.Show Network.AWS.S3.PutObjectACL.PutObjectACLResponse
instance GHC.Read.Read Network.AWS.S3.PutObjectACL.PutObjectACLResponse
instance GHC.Classes.Eq Network.AWS.S3.PutObjectACL.PutObjectACLResponse
instance GHC.Generics.Generic Network.AWS.S3.PutObjectACL.PutObjectACL
instance Data.Data.Data Network.AWS.S3.PutObjectACL.PutObjectACL
instance GHC.Show.Show Network.AWS.S3.PutObjectACL.PutObjectACL
instance GHC.Read.Read Network.AWS.S3.PutObjectACL.PutObjectACL
instance GHC.Classes.Eq Network.AWS.S3.PutObjectACL.PutObjectACL
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutObjectACL.PutObjectACL
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutObjectACL.PutObjectACL
instance Control.DeepSeq.NFData Network.AWS.S3.PutObjectACL.PutObjectACL
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutObjectACL.PutObjectACL
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutObjectACL.PutObjectACL
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutObjectACL.PutObjectACL
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutObjectACL.PutObjectACL
instance Control.DeepSeq.NFData Network.AWS.S3.PutObjectACL.PutObjectACLResponse


-- | Sets the supplied tag-set to an object that already exists in a bucket
module Network.AWS.S3.PutObjectTagging

-- | Creates a value of <a>PutObjectTagging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>potContentMD5</a> - Undocumented member.</li>
--   <li><a>potBucket</a> - Undocumented member.</li>
--   <li><a>potKey</a> - Undocumented member.</li>
--   <li><a>potTagging</a> - Undocumented member.</li>
--   <li><a>potVersionId</a> - Undocumented member.</li>
--   </ul>
putObjectTagging :: BucketName -> ObjectKey -> Tagging -> ObjectVersionId -> PutObjectTagging

-- | <i>See:</i> <a>putObjectTagging</a> smart constructor.
data PutObjectTagging

-- | Undocumented member.
potContentMD5 :: Lens' PutObjectTagging (Maybe Text)

-- | Undocumented member.
potBucket :: Lens' PutObjectTagging BucketName

-- | Undocumented member.
potKey :: Lens' PutObjectTagging ObjectKey

-- | Undocumented member.
potTagging :: Lens' PutObjectTagging Tagging

-- | Undocumented member.
potVersionId :: Lens' PutObjectTagging ObjectVersionId

-- | Creates a value of <a>PutObjectTaggingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>potrsVersionId</a> - Undocumented member.</li>
--   <li><a>potrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putObjectTaggingResponse :: Int -> PutObjectTaggingResponse

-- | <i>See:</i> <a>putObjectTaggingResponse</a> smart constructor.
data PutObjectTaggingResponse

-- | Undocumented member.
potrsVersionId :: Lens' PutObjectTaggingResponse (Maybe ObjectVersionId)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
potrsResponseStatus :: Lens' PutObjectTaggingResponse Int
instance GHC.Generics.Generic Network.AWS.S3.PutObjectTagging.PutObjectTaggingResponse
instance Data.Data.Data Network.AWS.S3.PutObjectTagging.PutObjectTaggingResponse
instance GHC.Show.Show Network.AWS.S3.PutObjectTagging.PutObjectTaggingResponse
instance GHC.Read.Read Network.AWS.S3.PutObjectTagging.PutObjectTaggingResponse
instance GHC.Classes.Eq Network.AWS.S3.PutObjectTagging.PutObjectTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Data.Data.Data Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance GHC.Show.Show Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance GHC.Read.Read Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance GHC.Classes.Eq Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Data.Hashable.Class.Hashable Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Control.DeepSeq.NFData Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.PutObjectTagging.PutObjectTagging
instance Control.DeepSeq.NFData Network.AWS.S3.PutObjectTagging.PutObjectTaggingResponse


-- | Restores an archived copy of an object back into Amazon S3
module Network.AWS.S3.RestoreObject

-- | Creates a value of <a>RestoreObject</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>roVersionId</a> - Undocumented member.</li>
--   <li><a>roRequestPayer</a> - Undocumented member.</li>
--   <li><a>roRestoreRequest</a> - Undocumented member.</li>
--   <li><a>roBucket</a> - Undocumented member.</li>
--   <li><a>roKey</a> - Undocumented member.</li>
--   </ul>
restoreObject :: BucketName -> ObjectKey -> RestoreObject

-- | <i>See:</i> <a>restoreObject</a> smart constructor.
data RestoreObject

-- | Undocumented member.
roVersionId :: Lens' RestoreObject (Maybe ObjectVersionId)

-- | Undocumented member.
roRequestPayer :: Lens' RestoreObject (Maybe RequestPayer)

-- | Undocumented member.
roRestoreRequest :: Lens' RestoreObject (Maybe RestoreRequest)

-- | Undocumented member.
roBucket :: Lens' RestoreObject BucketName

-- | Undocumented member.
roKey :: Lens' RestoreObject ObjectKey

-- | Creates a value of <a>RestoreObjectResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rorsRequestCharged</a> - Undocumented member.</li>
--   <li><a>rorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
restoreObjectResponse :: Int -> RestoreObjectResponse

-- | <i>See:</i> <a>restoreObjectResponse</a> smart constructor.
data RestoreObjectResponse

-- | Undocumented member.
rorsRequestCharged :: Lens' RestoreObjectResponse (Maybe RequestCharged)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rorsResponseStatus :: Lens' RestoreObjectResponse Int
instance GHC.Generics.Generic Network.AWS.S3.RestoreObject.RestoreObjectResponse
instance Data.Data.Data Network.AWS.S3.RestoreObject.RestoreObjectResponse
instance GHC.Show.Show Network.AWS.S3.RestoreObject.RestoreObjectResponse
instance GHC.Read.Read Network.AWS.S3.RestoreObject.RestoreObjectResponse
instance GHC.Classes.Eq Network.AWS.S3.RestoreObject.RestoreObjectResponse
instance GHC.Generics.Generic Network.AWS.S3.RestoreObject.RestoreObject
instance Data.Data.Data Network.AWS.S3.RestoreObject.RestoreObject
instance GHC.Show.Show Network.AWS.S3.RestoreObject.RestoreObject
instance GHC.Read.Read Network.AWS.S3.RestoreObject.RestoreObject
instance GHC.Classes.Eq Network.AWS.S3.RestoreObject.RestoreObject
instance Network.AWS.Types.AWSRequest Network.AWS.S3.RestoreObject.RestoreObject
instance Data.Hashable.Class.Hashable Network.AWS.S3.RestoreObject.RestoreObject
instance Control.DeepSeq.NFData Network.AWS.S3.RestoreObject.RestoreObject
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.RestoreObject.RestoreObject
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.RestoreObject.RestoreObject
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.RestoreObject.RestoreObject
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.RestoreObject.RestoreObject
instance Control.DeepSeq.NFData Network.AWS.S3.RestoreObject.RestoreObjectResponse


-- | Uploads a part in a multipart upload.
--   
--   <b>Note:</b> After you initiate multipart upload and upload one or
--   more parts, you must either complete or abort multipart upload in
--   order to stop getting charged for storage of the uploaded parts. Only
--   after you either complete or abort multipart upload, Amazon S3 frees
--   up the parts storage and stops charging you for the parts storage.
module Network.AWS.S3.UploadPart

-- | Creates a value of <a>UploadPart</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upContentLength</a> - Size of the body in bytes. This parameter
--   is useful when the size of the body cannot be determined
--   automatically.</li>
--   <li><a>upSSECustomerAlgorithm</a> - Specifies the algorithm to use to
--   when encrypting the object (e.g., AES256).</li>
--   <li><a>upSSECustomerKey</a> - Specifies the customer-provided
--   encryption key for Amazon S3 to use in encrypting data. This value is
--   used to store the object and then it is discarded; Amazon does not
--   store the encryption key. The key must be appropriate for use with the
--   algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header. This must be
--   the same encryption key specified in the initiate multipart upload
--   request.</li>
--   <li><a>upRequestPayer</a> - Undocumented member.</li>
--   <li><a>upSSECustomerKeyMD5</a> - Specifies the 128-bit MD5 digest of
--   the encryption key according to RFC 1321. Amazon S3 uses this header
--   for a message integrity check to ensure the encryption key was
--   transmitted without error.</li>
--   <li><a>upContentMD5</a> - The base64-encoded 128-bit MD5 digest of the
--   part data.</li>
--   <li><a>upBucket</a> - Name of the bucket to which the multipart upload
--   was initiated.</li>
--   <li><a>upKey</a> - Object key for which the multipart upload was
--   initiated.</li>
--   <li><a>upPartNumber</a> - Part number of part being uploaded. This is
--   a positive integer between 1 and 10,000.</li>
--   <li><a>upUploadId</a> - Upload ID identifying the multipart upload
--   whose part is being uploaded.</li>
--   <li><a>upBody</a> - Object data.</li>
--   </ul>
uploadPart :: BucketName -> ObjectKey -> Int -> Text -> RqBody -> UploadPart

-- | <i>See:</i> <a>uploadPart</a> smart constructor.
data UploadPart

-- | Size of the body in bytes. This parameter is useful when the size of
--   the body cannot be determined automatically.
upContentLength :: Lens' UploadPart (Maybe Integer)

-- | Specifies the algorithm to use to when encrypting the object (e.g.,
--   AES256).
upSSECustomerAlgorithm :: Lens' UploadPart (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use in
--   encrypting data. This value is used to store the object and then it is
--   discarded; Amazon does not store the encryption key. The key must be
--   appropriate for use with the algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header. This must be
--   the same encryption key specified in the initiate multipart upload
--   request.
upSSECustomerKey :: Lens' UploadPart (Maybe Text)

-- | Undocumented member.
upRequestPayer :: Lens' UploadPart (Maybe RequestPayer)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
upSSECustomerKeyMD5 :: Lens' UploadPart (Maybe Text)

-- | The base64-encoded 128-bit MD5 digest of the part data.
upContentMD5 :: Lens' UploadPart (Maybe Text)

-- | Name of the bucket to which the multipart upload was initiated.
upBucket :: Lens' UploadPart BucketName

-- | Object key for which the multipart upload was initiated.
upKey :: Lens' UploadPart ObjectKey

-- | Part number of part being uploaded. This is a positive integer between
--   1 and 10,000.
upPartNumber :: Lens' UploadPart Int

-- | Upload ID identifying the multipart upload whose part is being
--   uploaded.
upUploadId :: Lens' UploadPart Text

-- | Object data.
upBody :: Lens' UploadPart RqBody

-- | Creates a value of <a>UploadPartResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uprsRequestCharged</a> - Undocumented member.</li>
--   <li><a>uprsETag</a> - Entity tag for the uploaded object.</li>
--   <li><a>uprsSSECustomerAlgorithm</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header confirming the encryption algorithm used.</li>
--   <li><a>uprsSSECustomerKeyMD5</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header to provide round trip message integrity
--   verification of the customer-provided encryption key.</li>
--   <li><a>uprsSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>uprsServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>uprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
uploadPartResponse :: Int -> UploadPartResponse

-- | <i>See:</i> <a>uploadPartResponse</a> smart constructor.
data UploadPartResponse

-- | Undocumented member.
uprsRequestCharged :: Lens' UploadPartResponse (Maybe RequestCharged)

-- | Entity tag for the uploaded object.
uprsETag :: Lens' UploadPartResponse (Maybe ETag)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header confirming the
--   encryption algorithm used.
uprsSSECustomerAlgorithm :: Lens' UploadPartResponse (Maybe Text)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header to provide round trip
--   message integrity verification of the customer-provided encryption
--   key.
uprsSSECustomerKeyMD5 :: Lens' UploadPartResponse (Maybe Text)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
uprsSSEKMSKeyId :: Lens' UploadPartResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
uprsServerSideEncryption :: Lens' UploadPartResponse (Maybe ServerSideEncryption)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uprsResponseStatus :: Lens' UploadPartResponse Int
instance GHC.Generics.Generic Network.AWS.S3.UploadPart.UploadPartResponse
instance Data.Data.Data Network.AWS.S3.UploadPart.UploadPartResponse
instance GHC.Show.Show Network.AWS.S3.UploadPart.UploadPartResponse
instance GHC.Read.Read Network.AWS.S3.UploadPart.UploadPartResponse
instance GHC.Classes.Eq Network.AWS.S3.UploadPart.UploadPartResponse
instance GHC.Generics.Generic Network.AWS.S3.UploadPart.UploadPart
instance GHC.Show.Show Network.AWS.S3.UploadPart.UploadPart
instance Network.AWS.Types.AWSRequest Network.AWS.S3.UploadPart.UploadPart
instance Network.AWS.Data.Body.ToBody Network.AWS.S3.UploadPart.UploadPart
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.UploadPart.UploadPart
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.UploadPart.UploadPart
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.UploadPart.UploadPart
instance Control.DeepSeq.NFData Network.AWS.S3.UploadPart.UploadPartResponse


-- | Uploads a part by copying data from an existing object as data source.
module Network.AWS.S3.UploadPartCopy

-- | Creates a value of <a>UploadPartCopy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upcCopySourceIfModifiedSince</a> - Copies the object if it has
--   been modified since the specified time.</li>
--   <li><a>upcCopySourceIfUnmodifiedSince</a> - Copies the object if it
--   hasn't been modified since the specified time.</li>
--   <li><a>upcCopySourceRange</a> - The range of bytes to copy from the
--   source object. The range value must use the form bytes=first-last,
--   where the first and last are the zero-based byte offsets to copy. For
--   example, bytes=0-9 indicates that you want to copy the first ten bytes
--   of the source. You can copy a range only if the source object is
--   greater than 5 GB.</li>
--   <li><a>upcCopySourceSSECustomerKeyMD5</a> - Specifies the 128-bit MD5
--   digest of the encryption key according to RFC 1321. Amazon S3 uses
--   this header for a message integrity check to ensure the encryption key
--   was transmitted without error.</li>
--   <li><a>upcCopySourceIfNoneMatch</a> - Copies the object if its entity
--   tag (ETag) is different than the specified ETag.</li>
--   <li><a>upcSSECustomerAlgorithm</a> - Specifies the algorithm to use to
--   when encrypting the object (e.g., AES256).</li>
--   <li><a>upcSSECustomerKey</a> - Specifies the customer-provided
--   encryption key for Amazon S3 to use in encrypting data. This value is
--   used to store the object and then it is discarded; Amazon does not
--   store the encryption key. The key must be appropriate for use with the
--   algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header. This must be
--   the same encryption key specified in the initiate multipart upload
--   request.</li>
--   <li><a>upcRequestPayer</a> - Undocumented member.</li>
--   <li><a>upcCopySourceIfMatch</a> - Copies the object if its entity tag
--   (ETag) matches the specified tag.</li>
--   <li><a>upcSSECustomerKeyMD5</a> - Specifies the 128-bit MD5 digest of
--   the encryption key according to RFC 1321. Amazon S3 uses this header
--   for a message integrity check to ensure the encryption key was
--   transmitted without error.</li>
--   <li><a>upcCopySourceSSECustomerKey</a> - Specifies the
--   customer-provided encryption key for Amazon S3 to use to decrypt the
--   source object. The encryption key provided in this header must be one
--   that was used when the source object was created.</li>
--   <li><a>upcCopySourceSSECustomerAlgorithm</a> - Specifies the algorithm
--   to use when decrypting the source object (e.g., AES256).</li>
--   <li><a>upcBucket</a> - Undocumented member.</li>
--   <li><a>upcCopySource</a> - The name of the source bucket and key name
--   of the source object, separated by a slash (/). Must be
--   URL-encoded.</li>
--   <li><a>upcKey</a> - Undocumented member.</li>
--   <li><a>upcPartNumber</a> - Part number of part being copied. This is a
--   positive integer between 1 and 10,000.</li>
--   <li><a>upcUploadId</a> - Upload ID identifying the multipart upload
--   whose part is being copied.</li>
--   </ul>
uploadPartCopy :: BucketName -> Text -> ObjectKey -> Int -> Text -> UploadPartCopy

-- | <i>See:</i> <a>uploadPartCopy</a> smart constructor.
data UploadPartCopy

-- | Copies the object if it has been modified since the specified time.
upcCopySourceIfModifiedSince :: Lens' UploadPartCopy (Maybe UTCTime)

-- | Copies the object if it hasn't been modified since the specified time.
upcCopySourceIfUnmodifiedSince :: Lens' UploadPartCopy (Maybe UTCTime)

-- | The range of bytes to copy from the source object. The range value
--   must use the form bytes=first-last, where the first and last are the
--   zero-based byte offsets to copy. For example, bytes=0-9 indicates that
--   you want to copy the first ten bytes of the source. You can copy a
--   range only if the source object is greater than 5 GB.
upcCopySourceRange :: Lens' UploadPartCopy (Maybe Text)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
upcCopySourceSSECustomerKeyMD5 :: Lens' UploadPartCopy (Maybe Text)

-- | Copies the object if its entity tag (ETag) is different than the
--   specified ETag.
upcCopySourceIfNoneMatch :: Lens' UploadPartCopy (Maybe Text)

-- | Specifies the algorithm to use to when encrypting the object (e.g.,
--   AES256).
upcSSECustomerAlgorithm :: Lens' UploadPartCopy (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use in
--   encrypting data. This value is used to store the object and then it is
--   discarded; Amazon does not store the encryption key. The key must be
--   appropriate for use with the algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header. This must be
--   the same encryption key specified in the initiate multipart upload
--   request.
upcSSECustomerKey :: Lens' UploadPartCopy (Maybe Text)

-- | Undocumented member.
upcRequestPayer :: Lens' UploadPartCopy (Maybe RequestPayer)

-- | Copies the object if its entity tag (ETag) matches the specified tag.
upcCopySourceIfMatch :: Lens' UploadPartCopy (Maybe Text)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
upcSSECustomerKeyMD5 :: Lens' UploadPartCopy (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use to
--   decrypt the source object. The encryption key provided in this header
--   must be one that was used when the source object was created.
upcCopySourceSSECustomerKey :: Lens' UploadPartCopy (Maybe Text)

-- | Specifies the algorithm to use when decrypting the source object
--   (e.g., AES256).
upcCopySourceSSECustomerAlgorithm :: Lens' UploadPartCopy (Maybe Text)

-- | Undocumented member.
upcBucket :: Lens' UploadPartCopy BucketName

-- | The name of the source bucket and key name of the source object,
--   separated by a slash (/). Must be URL-encoded.
upcCopySource :: Lens' UploadPartCopy Text

-- | Undocumented member.
upcKey :: Lens' UploadPartCopy ObjectKey

-- | Part number of part being copied. This is a positive integer between 1
--   and 10,000.
upcPartNumber :: Lens' UploadPartCopy Int

-- | Upload ID identifying the multipart upload whose part is being copied.
upcUploadId :: Lens' UploadPartCopy Text

-- | Creates a value of <a>UploadPartCopyResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upcrsRequestCharged</a> - Undocumented member.</li>
--   <li><a>upcrsCopyPartResult</a> - Undocumented member.</li>
--   <li><a>upcrsSSECustomerAlgorithm</a> - If server-side encryption with
--   a customer-provided encryption key was requested, the response will
--   include this header confirming the encryption algorithm used.</li>
--   <li><a>upcrsCopySourceVersionId</a> - The version of the source object
--   that was copied, if you have enabled versioning on the source
--   bucket.</li>
--   <li><a>upcrsSSECustomerKeyMD5</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header to provide round trip message integrity
--   verification of the customer-provided encryption key.</li>
--   <li><a>upcrsSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>upcrsServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>upcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
uploadPartCopyResponse :: Int -> UploadPartCopyResponse

-- | <i>See:</i> <a>uploadPartCopyResponse</a> smart constructor.
data UploadPartCopyResponse

-- | Undocumented member.
upcrsRequestCharged :: Lens' UploadPartCopyResponse (Maybe RequestCharged)

-- | Undocumented member.
upcrsCopyPartResult :: Lens' UploadPartCopyResponse (Maybe CopyPartResult)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header confirming the
--   encryption algorithm used.
upcrsSSECustomerAlgorithm :: Lens' UploadPartCopyResponse (Maybe Text)

-- | The version of the source object that was copied, if you have enabled
--   versioning on the source bucket.
upcrsCopySourceVersionId :: Lens' UploadPartCopyResponse (Maybe Text)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header to provide round trip
--   message integrity verification of the customer-provided encryption
--   key.
upcrsSSECustomerKeyMD5 :: Lens' UploadPartCopyResponse (Maybe Text)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
upcrsSSEKMSKeyId :: Lens' UploadPartCopyResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
upcrsServerSideEncryption :: Lens' UploadPartCopyResponse (Maybe ServerSideEncryption)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
upcrsResponseStatus :: Lens' UploadPartCopyResponse Int
instance GHC.Generics.Generic Network.AWS.S3.UploadPartCopy.UploadPartCopyResponse
instance Data.Data.Data Network.AWS.S3.UploadPartCopy.UploadPartCopyResponse
instance GHC.Show.Show Network.AWS.S3.UploadPartCopy.UploadPartCopyResponse
instance GHC.Read.Read Network.AWS.S3.UploadPartCopy.UploadPartCopyResponse
instance GHC.Classes.Eq Network.AWS.S3.UploadPartCopy.UploadPartCopyResponse
instance GHC.Generics.Generic Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Data.Data.Data Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance GHC.Show.Show Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance GHC.Read.Read Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance GHC.Classes.Eq Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Network.AWS.Types.AWSRequest Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Data.Hashable.Class.Hashable Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Control.DeepSeq.NFData Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.UploadPartCopy.UploadPartCopy
instance Control.DeepSeq.NFData Network.AWS.S3.UploadPartCopy.UploadPartCopyResponse


-- | The HEAD operation retrieves metadata from an object without returning
--   the object itself. This operation is useful if you're only interested
--   in an object's metadata. To use HEAD, you must have READ access to the
--   object.
module Network.AWS.S3.HeadObject

-- | Creates a value of <a>HeadObject</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hoIfMatch</a> - Return the object only if its entity tag (ETag)
--   is the same as the one specified, otherwise return a 412 (precondition
--   failed).</li>
--   <li><a>hoVersionId</a> - VersionId used to reference a specific
--   version of the object.</li>
--   <li><a>hoSSECustomerAlgorithm</a> - Specifies the algorithm to use to
--   when encrypting the object (e.g., AES256).</li>
--   <li><a>hoSSECustomerKey</a> - Specifies the customer-provided
--   encryption key for Amazon S3 to use in encrypting data. This value is
--   used to store the object and then it is discarded; Amazon does not
--   store the encryption key. The key must be appropriate for use with the
--   algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.</li>
--   <li><a>hoRequestPayer</a> - Undocumented member.</li>
--   <li><a>hoIfModifiedSince</a> - Return the object only if it has been
--   modified since the specified time, otherwise return a 304 (not
--   modified).</li>
--   <li><a>hoPartNumber</a> - Part number of the object being read. This
--   is a positive integer between 1 and 10,000. Effectively performs a
--   <tt>ranged</tt> HEAD request for the part specified. Useful querying
--   about the size of the part and the number of parts in this
--   object.</li>
--   <li><a>hoRange</a> - Downloads the specified range bytes of an object.
--   For more information about the HTTP Range header, go to
--   <a>http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35</a>.</li>
--   <li><a>hoIfUnmodifiedSince</a> - Return the object only if it has not
--   been modified since the specified time, otherwise return a 412
--   (precondition failed).</li>
--   <li><a>hoSSECustomerKeyMD5</a> - Specifies the 128-bit MD5 digest of
--   the encryption key according to RFC 1321. Amazon S3 uses this header
--   for a message integrity check to ensure the encryption key was
--   transmitted without error.</li>
--   <li><a>hoIfNoneMatch</a> - Return the object only if its entity tag
--   (ETag) is different from the one specified, otherwise return a 304
--   (not modified).</li>
--   <li><a>hoBucket</a> - Undocumented member.</li>
--   <li><a>hoKey</a> - Undocumented member.</li>
--   </ul>
headObject :: BucketName -> ObjectKey -> HeadObject

-- | <i>See:</i> <a>headObject</a> smart constructor.
data HeadObject

-- | Return the object only if its entity tag (ETag) is the same as the one
--   specified, otherwise return a 412 (precondition failed).
hoIfMatch :: Lens' HeadObject (Maybe Text)

-- | VersionId used to reference a specific version of the object.
hoVersionId :: Lens' HeadObject (Maybe ObjectVersionId)

-- | Specifies the algorithm to use to when encrypting the object (e.g.,
--   AES256).
hoSSECustomerAlgorithm :: Lens' HeadObject (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use in
--   encrypting data. This value is used to store the object and then it is
--   discarded; Amazon does not store the encryption key. The key must be
--   appropriate for use with the algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.
hoSSECustomerKey :: Lens' HeadObject (Maybe Text)

-- | Undocumented member.
hoRequestPayer :: Lens' HeadObject (Maybe RequestPayer)

-- | Return the object only if it has been modified since the specified
--   time, otherwise return a 304 (not modified).
hoIfModifiedSince :: Lens' HeadObject (Maybe UTCTime)

-- | Part number of the object being read. This is a positive integer
--   between 1 and 10,000. Effectively performs a <tt>ranged</tt> HEAD
--   request for the part specified. Useful querying about the size of the
--   part and the number of parts in this object.
hoPartNumber :: Lens' HeadObject (Maybe Int)

-- | Downloads the specified range bytes of an object. For more information
--   about the HTTP Range header, go to
--   <a>http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35</a>.
hoRange :: Lens' HeadObject (Maybe Text)

-- | Return the object only if it has not been modified since the specified
--   time, otherwise return a 412 (precondition failed).
hoIfUnmodifiedSince :: Lens' HeadObject (Maybe UTCTime)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
hoSSECustomerKeyMD5 :: Lens' HeadObject (Maybe Text)

-- | Return the object only if its entity tag (ETag) is different from the
--   one specified, otherwise return a 304 (not modified).
hoIfNoneMatch :: Lens' HeadObject (Maybe Text)

-- | Undocumented member.
hoBucket :: Lens' HeadObject BucketName

-- | Undocumented member.
hoKey :: Lens' HeadObject ObjectKey

-- | Creates a value of <a>HeadObjectResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>horsRequestCharged</a> - Undocumented member.</li>
--   <li><a>horsPartsCount</a> - The count of parts this object has.</li>
--   <li><a>horsETag</a> - An ETag is an opaque identifier assigned by a
--   web server to a specific version of a resource found at a URL</li>
--   <li><a>horsVersionId</a> - Version of the object.</li>
--   <li><a>horsContentLength</a> - Size of the body in bytes.</li>
--   <li><a>horsExpires</a> - The date and time at which the object is no
--   longer cacheable.</li>
--   <li><a>horsRestore</a> - Provides information about object restoration
--   operation and expiration time of the restored object copy.</li>
--   <li><a>horsExpiration</a> - If the object expiration is configured
--   (see PUT Bucket lifecycle), the response includes this header. It
--   includes the expiry-date and rule-id key value pairs providing object
--   expiration information. The value of the rule-id is URL encoded.</li>
--   <li><a>horsDeleteMarker</a> - Specifies whether the object retrieved
--   was (true) or was not (false) a Delete Marker. If false, this response
--   header does not appear in the response.</li>
--   <li><a>horsSSECustomerAlgorithm</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header confirming the encryption algorithm used.</li>
--   <li><a>horsMissingMeta</a> - This is set to the number of metadata
--   entries not returned in x-amz-meta headers. This can happen if you
--   create metadata using an API like SOAP that supports more flexible
--   metadata than the REST API. For example, using SOAP, you can create
--   metadata whose values are not legal HTTP headers.</li>
--   <li><a>horsWebsiteRedirectLocation</a> - If the bucket is configured
--   as a website, redirects requests for this object to another object in
--   the same bucket or to an external URL. Amazon S3 stores the value of
--   this header in the object metadata.</li>
--   <li><a>horsAcceptRanges</a> - Undocumented member.</li>
--   <li><a>horsStorageClass</a> - Undocumented member.</li>
--   <li><a>horsSSECustomerKeyMD5</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header to provide round trip message integrity
--   verification of the customer-provided encryption key.</li>
--   <li><a>horsSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>horsContentEncoding</a> - Specifies what content encodings have
--   been applied to the object and thus what decoding mechanisms must be
--   applied to obtain the media-type referenced by the Content-Type header
--   field.</li>
--   <li><a>horsMetadata</a> - A map of metadata to store with the object
--   in S3.</li>
--   <li><a>horsReplicationStatus</a> - Undocumented member.</li>
--   <li><a>horsCacheControl</a> - Specifies caching behavior along the
--   request/reply chain.</li>
--   <li><a>horsContentLanguage</a> - The language the content is in.</li>
--   <li><a>horsLastModified</a> - Last modified date of the object</li>
--   <li><a>horsContentDisposition</a> - Specifies presentational
--   information for the object.</li>
--   <li><a>horsServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>horsContentType</a> - A standard MIME type describing the
--   format of the object data.</li>
--   <li><a>horsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
headObjectResponse :: Int -> HeadObjectResponse

-- | <i>See:</i> <a>headObjectResponse</a> smart constructor.
data HeadObjectResponse

-- | Undocumented member.
horsRequestCharged :: Lens' HeadObjectResponse (Maybe RequestCharged)

-- | The count of parts this object has.
horsPartsCount :: Lens' HeadObjectResponse (Maybe Int)

-- | An ETag is an opaque identifier assigned by a web server to a specific
--   version of a resource found at a URL
horsETag :: Lens' HeadObjectResponse (Maybe ETag)

-- | Version of the object.
horsVersionId :: Lens' HeadObjectResponse (Maybe ObjectVersionId)

-- | Size of the body in bytes.
horsContentLength :: Lens' HeadObjectResponse (Maybe Integer)

-- | The date and time at which the object is no longer cacheable.
horsExpires :: Lens' HeadObjectResponse (Maybe UTCTime)

-- | Provides information about object restoration operation and expiration
--   time of the restored object copy.
horsRestore :: Lens' HeadObjectResponse (Maybe Text)

-- | If the object expiration is configured (see PUT Bucket lifecycle), the
--   response includes this header. It includes the expiry-date and rule-id
--   key value pairs providing object expiration information. The value of
--   the rule-id is URL encoded.
horsExpiration :: Lens' HeadObjectResponse (Maybe Text)

-- | Specifies whether the object retrieved was (true) or was not (false) a
--   Delete Marker. If false, this response header does not appear in the
--   response.
horsDeleteMarker :: Lens' HeadObjectResponse (Maybe Bool)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header confirming the
--   encryption algorithm used.
horsSSECustomerAlgorithm :: Lens' HeadObjectResponse (Maybe Text)

-- | This is set to the number of metadata entries not returned in
--   x-amz-meta headers. This can happen if you create metadata using an
--   API like SOAP that supports more flexible metadata than the REST API.
--   For example, using SOAP, you can create metadata whose values are not
--   legal HTTP headers.
horsMissingMeta :: Lens' HeadObjectResponse (Maybe Int)

-- | If the bucket is configured as a website, redirects requests for this
--   object to another object in the same bucket or to an external URL.
--   Amazon S3 stores the value of this header in the object metadata.
horsWebsiteRedirectLocation :: Lens' HeadObjectResponse (Maybe Text)

-- | Undocumented member.
horsAcceptRanges :: Lens' HeadObjectResponse (Maybe Text)

-- | Undocumented member.
horsStorageClass :: Lens' HeadObjectResponse (Maybe StorageClass)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header to provide round trip
--   message integrity verification of the customer-provided encryption
--   key.
horsSSECustomerKeyMD5 :: Lens' HeadObjectResponse (Maybe Text)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
horsSSEKMSKeyId :: Lens' HeadObjectResponse (Maybe Text)

-- | Specifies what content encodings have been applied to the object and
--   thus what decoding mechanisms must be applied to obtain the media-type
--   referenced by the Content-Type header field.
horsContentEncoding :: Lens' HeadObjectResponse (Maybe Text)

-- | A map of metadata to store with the object in S3.
horsMetadata :: Lens' HeadObjectResponse (HashMap Text Text)

-- | Undocumented member.
horsReplicationStatus :: Lens' HeadObjectResponse (Maybe ReplicationStatus)

-- | Specifies caching behavior along the request/reply chain.
horsCacheControl :: Lens' HeadObjectResponse (Maybe Text)

-- | The language the content is in.
horsContentLanguage :: Lens' HeadObjectResponse (Maybe Text)

-- | Last modified date of the object
horsLastModified :: Lens' HeadObjectResponse (Maybe UTCTime)

-- | Specifies presentational information for the object.
horsContentDisposition :: Lens' HeadObjectResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
horsServerSideEncryption :: Lens' HeadObjectResponse (Maybe ServerSideEncryption)

-- | A standard MIME type describing the format of the object data.
horsContentType :: Lens' HeadObjectResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
horsResponseStatus :: Lens' HeadObjectResponse Int
instance GHC.Generics.Generic Network.AWS.S3.HeadObject.HeadObjectResponse
instance Data.Data.Data Network.AWS.S3.HeadObject.HeadObjectResponse
instance GHC.Show.Show Network.AWS.S3.HeadObject.HeadObjectResponse
instance GHC.Read.Read Network.AWS.S3.HeadObject.HeadObjectResponse
instance GHC.Classes.Eq Network.AWS.S3.HeadObject.HeadObjectResponse
instance GHC.Generics.Generic Network.AWS.S3.HeadObject.HeadObject
instance Data.Data.Data Network.AWS.S3.HeadObject.HeadObject
instance GHC.Show.Show Network.AWS.S3.HeadObject.HeadObject
instance GHC.Read.Read Network.AWS.S3.HeadObject.HeadObject
instance GHC.Classes.Eq Network.AWS.S3.HeadObject.HeadObject
instance Network.AWS.Types.AWSRequest Network.AWS.S3.HeadObject.HeadObject
instance Data.Hashable.Class.Hashable Network.AWS.S3.HeadObject.HeadObject
instance Control.DeepSeq.NFData Network.AWS.S3.HeadObject.HeadObject
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.HeadObject.HeadObject
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.HeadObject.HeadObject
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.HeadObject.HeadObject
instance Control.DeepSeq.NFData Network.AWS.S3.HeadObject.HeadObjectResponse


-- | This operation is useful to determine if a bucket exists and you have
--   permission to access it.
module Network.AWS.S3.HeadBucket

-- | Creates a value of <a>HeadBucket</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hbBucket</a> - Undocumented member.</li>
--   </ul>
headBucket :: BucketName -> HeadBucket

-- | <i>See:</i> <a>headBucket</a> smart constructor.
data HeadBucket

-- | Undocumented member.
hbBucket :: Lens' HeadBucket BucketName

-- | Creates a value of <a>HeadBucketResponse</a> with the minimum fields
--   required to make a request.
headBucketResponse :: HeadBucketResponse

-- | <i>See:</i> <a>headBucketResponse</a> smart constructor.
data HeadBucketResponse
instance GHC.Generics.Generic Network.AWS.S3.HeadBucket.HeadBucketResponse
instance Data.Data.Data Network.AWS.S3.HeadBucket.HeadBucketResponse
instance GHC.Show.Show Network.AWS.S3.HeadBucket.HeadBucketResponse
instance GHC.Read.Read Network.AWS.S3.HeadBucket.HeadBucketResponse
instance GHC.Classes.Eq Network.AWS.S3.HeadBucket.HeadBucketResponse
instance GHC.Generics.Generic Network.AWS.S3.HeadBucket.HeadBucket
instance Data.Data.Data Network.AWS.S3.HeadBucket.HeadBucket
instance GHC.Show.Show Network.AWS.S3.HeadBucket.HeadBucket
instance GHC.Read.Read Network.AWS.S3.HeadBucket.HeadBucket
instance GHC.Classes.Eq Network.AWS.S3.HeadBucket.HeadBucket
instance Network.AWS.Types.AWSRequest Network.AWS.S3.HeadBucket.HeadBucket
instance Data.Hashable.Class.Hashable Network.AWS.S3.HeadBucket.HeadBucket
instance Control.DeepSeq.NFData Network.AWS.S3.HeadBucket.HeadBucket
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.HeadBucket.HeadBucket
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.HeadBucket.HeadBucket
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.HeadBucket.HeadBucket
instance Control.DeepSeq.NFData Network.AWS.S3.HeadBucket.HeadBucketResponse


module Network.AWS.S3.Waiters

-- | Polls <a>HeadObject</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
objectNotExists :: Wait HeadObject

-- | Polls <a>HeadBucket</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
bucketExists :: Wait HeadBucket

-- | Polls <a>HeadObject</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
objectExists :: Wait HeadObject

-- | Polls <a>HeadBucket</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
bucketNotExists :: Wait HeadBucket


-- | Return torrent files from a bucket.
module Network.AWS.S3.GetObjectTorrent

-- | Creates a value of <a>GetObjectTorrent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gotRequestPayer</a> - Undocumented member.</li>
--   <li><a>gotBucket</a> - Undocumented member.</li>
--   <li><a>gotKey</a> - Undocumented member.</li>
--   </ul>
getObjectTorrent :: BucketName -> ObjectKey -> GetObjectTorrent

-- | <i>See:</i> <a>getObjectTorrent</a> smart constructor.
data GetObjectTorrent

-- | Undocumented member.
gotRequestPayer :: Lens' GetObjectTorrent (Maybe RequestPayer)

-- | Undocumented member.
gotBucket :: Lens' GetObjectTorrent BucketName

-- | Undocumented member.
gotKey :: Lens' GetObjectTorrent ObjectKey

-- | Creates a value of <a>GetObjectTorrentResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>getrsRequestCharged</a> - Undocumented member.</li>
--   <li><a>getrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>getrsBody</a> - Undocumented member.</li>
--   </ul>
getObjectTorrentResponse :: Int -> RsBody -> GetObjectTorrentResponse

-- | <i>See:</i> <a>getObjectTorrentResponse</a> smart constructor.
data GetObjectTorrentResponse

-- | Undocumented member.
getrsRequestCharged :: Lens' GetObjectTorrentResponse (Maybe RequestCharged)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
getrsResponseStatus :: Lens' GetObjectTorrentResponse Int

-- | Undocumented member.
getrsBody :: Lens' GetObjectTorrentResponse RsBody
instance GHC.Generics.Generic Network.AWS.S3.GetObjectTorrent.GetObjectTorrentResponse
instance GHC.Show.Show Network.AWS.S3.GetObjectTorrent.GetObjectTorrentResponse
instance GHC.Generics.Generic Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance Data.Data.Data Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance GHC.Show.Show Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance GHC.Read.Read Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance GHC.Classes.Eq Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance Control.DeepSeq.NFData Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetObjectTorrent.GetObjectTorrent
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetObjectTorrent.GetObjectTorrent


-- | Returns the tag-set of an object.
module Network.AWS.S3.GetObjectTagging

-- | Creates a value of <a>GetObjectTagging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gotoBucket</a> - Undocumented member.</li>
--   <li><a>gotoKey</a> - Undocumented member.</li>
--   <li><a>gotoVersionId</a> - Undocumented member.</li>
--   </ul>
getObjectTagging :: BucketName -> ObjectKey -> ObjectVersionId -> GetObjectTagging

-- | <i>See:</i> <a>getObjectTagging</a> smart constructor.
data GetObjectTagging

-- | Undocumented member.
gotoBucket :: Lens' GetObjectTagging BucketName

-- | Undocumented member.
gotoKey :: Lens' GetObjectTagging ObjectKey

-- | Undocumented member.
gotoVersionId :: Lens' GetObjectTagging ObjectVersionId

-- | Creates a value of <a>GetObjectTaggingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gotrsVersionId</a> - Undocumented member.</li>
--   <li><a>gotrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gotrsTagSet</a> - Undocumented member.</li>
--   </ul>
getObjectTaggingResponse :: Int -> GetObjectTaggingResponse

-- | <i>See:</i> <a>getObjectTaggingResponse</a> smart constructor.
data GetObjectTaggingResponse

-- | Undocumented member.
gotrsVersionId :: Lens' GetObjectTaggingResponse (Maybe ObjectVersionId)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gotrsResponseStatus :: Lens' GetObjectTaggingResponse Int

-- | Undocumented member.
gotrsTagSet :: Lens' GetObjectTaggingResponse [Tag]
instance GHC.Generics.Generic Network.AWS.S3.GetObjectTagging.GetObjectTaggingResponse
instance Data.Data.Data Network.AWS.S3.GetObjectTagging.GetObjectTaggingResponse
instance GHC.Show.Show Network.AWS.S3.GetObjectTagging.GetObjectTaggingResponse
instance GHC.Read.Read Network.AWS.S3.GetObjectTagging.GetObjectTaggingResponse
instance GHC.Classes.Eq Network.AWS.S3.GetObjectTagging.GetObjectTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Data.Data.Data Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance GHC.Show.Show Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance GHC.Read.Read Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance GHC.Classes.Eq Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Control.DeepSeq.NFData Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetObjectTagging.GetObjectTagging
instance Control.DeepSeq.NFData Network.AWS.S3.GetObjectTagging.GetObjectTaggingResponse


-- | Returns the access control list (ACL) of an object.
module Network.AWS.S3.GetObjectACL

-- | Creates a value of <a>GetObjectACL</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>goaVersionId</a> - VersionId used to reference a specific
--   version of the object.</li>
--   <li><a>goaRequestPayer</a> - Undocumented member.</li>
--   <li><a>goaBucket</a> - Undocumented member.</li>
--   <li><a>goaKey</a> - Undocumented member.</li>
--   </ul>
getObjectACL :: BucketName -> ObjectKey -> GetObjectACL

-- | <i>See:</i> <a>getObjectACL</a> smart constructor.
data GetObjectACL

-- | VersionId used to reference a specific version of the object.
goaVersionId :: Lens' GetObjectACL (Maybe ObjectVersionId)

-- | Undocumented member.
goaRequestPayer :: Lens' GetObjectACL (Maybe RequestPayer)

-- | Undocumented member.
goaBucket :: Lens' GetObjectACL BucketName

-- | Undocumented member.
goaKey :: Lens' GetObjectACL ObjectKey

-- | Creates a value of <a>GetObjectACLResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>goarsRequestCharged</a> - Undocumented member.</li>
--   <li><a>goarsGrants</a> - A list of grants.</li>
--   <li><a>goarsOwner</a> - Undocumented member.</li>
--   <li><a>goarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getObjectACLResponse :: Int -> GetObjectACLResponse

-- | <i>See:</i> <a>getObjectACLResponse</a> smart constructor.
data GetObjectACLResponse

-- | Undocumented member.
goarsRequestCharged :: Lens' GetObjectACLResponse (Maybe RequestCharged)

-- | A list of grants.
goarsGrants :: Lens' GetObjectACLResponse [Grant]

-- | Undocumented member.
goarsOwner :: Lens' GetObjectACLResponse (Maybe Owner)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
goarsResponseStatus :: Lens' GetObjectACLResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetObjectACL.GetObjectACLResponse
instance Data.Data.Data Network.AWS.S3.GetObjectACL.GetObjectACLResponse
instance GHC.Show.Show Network.AWS.S3.GetObjectACL.GetObjectACLResponse
instance GHC.Read.Read Network.AWS.S3.GetObjectACL.GetObjectACLResponse
instance GHC.Classes.Eq Network.AWS.S3.GetObjectACL.GetObjectACLResponse
instance GHC.Generics.Generic Network.AWS.S3.GetObjectACL.GetObjectACL
instance Data.Data.Data Network.AWS.S3.GetObjectACL.GetObjectACL
instance GHC.Show.Show Network.AWS.S3.GetObjectACL.GetObjectACL
instance GHC.Read.Read Network.AWS.S3.GetObjectACL.GetObjectACL
instance GHC.Classes.Eq Network.AWS.S3.GetObjectACL.GetObjectACL
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetObjectACL.GetObjectACL
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetObjectACL.GetObjectACL
instance Control.DeepSeq.NFData Network.AWS.S3.GetObjectACL.GetObjectACL
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetObjectACL.GetObjectACL
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetObjectACL.GetObjectACL
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetObjectACL.GetObjectACL
instance Control.DeepSeq.NFData Network.AWS.S3.GetObjectACL.GetObjectACLResponse


-- | Retrieves objects from Amazon S3.
module Network.AWS.S3.GetObject

-- | Creates a value of <a>GetObject</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>goIfMatch</a> - Return the object only if its entity tag (ETag)
--   is the same as the one specified, otherwise return a 412 (precondition
--   failed).</li>
--   <li><a>goVersionId</a> - VersionId used to reference a specific
--   version of the object.</li>
--   <li><a>goResponseContentType</a> - Sets the Content-Type header of the
--   response.</li>
--   <li><a>goResponseContentDisposition</a> - Sets the Content-Disposition
--   header of the response</li>
--   <li><a>goResponseContentLanguage</a> - Sets the Content-Language
--   header of the response.</li>
--   <li><a>goSSECustomerAlgorithm</a> - Specifies the algorithm to use to
--   when encrypting the object (e.g., AES256).</li>
--   <li><a>goSSECustomerKey</a> - Specifies the customer-provided
--   encryption key for Amazon S3 to use in encrypting data. This value is
--   used to store the object and then it is discarded; Amazon does not
--   store the encryption key. The key must be appropriate for use with the
--   algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.</li>
--   <li><a>goRequestPayer</a> - Undocumented member.</li>
--   <li><a>goResponseContentEncoding</a> - Sets the Content-Encoding
--   header of the response.</li>
--   <li><a>goIfModifiedSince</a> - Return the object only if it has been
--   modified since the specified time, otherwise return a 304 (not
--   modified).</li>
--   <li><a>goPartNumber</a> - Part number of the object being read. This
--   is a positive integer between 1 and 10,000. Effectively performs a
--   <tt>ranged</tt> GET request for the part specified. Useful for
--   downloading just a part of an object.</li>
--   <li><a>goRange</a> - Downloads the specified range bytes of an object.
--   For more information about the HTTP Range header, go to
--   <a>http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35</a>.</li>
--   <li><a>goIfUnmodifiedSince</a> - Return the object only if it has not
--   been modified since the specified time, otherwise return a 412
--   (precondition failed).</li>
--   <li><a>goSSECustomerKeyMD5</a> - Specifies the 128-bit MD5 digest of
--   the encryption key according to RFC 1321. Amazon S3 uses this header
--   for a message integrity check to ensure the encryption key was
--   transmitted without error.</li>
--   <li><a>goResponseCacheControl</a> - Sets the Cache-Control header of
--   the response.</li>
--   <li><a>goResponseExpires</a> - Sets the Expires header of the
--   response.</li>
--   <li><a>goIfNoneMatch</a> - Return the object only if its entity tag
--   (ETag) is different from the one specified, otherwise return a 304
--   (not modified).</li>
--   <li><a>goBucket</a> - Undocumented member.</li>
--   <li><a>goKey</a> - Undocumented member.</li>
--   </ul>
getObject :: BucketName -> ObjectKey -> GetObject

-- | <i>See:</i> <a>getObject</a> smart constructor.
data GetObject

-- | Return the object only if its entity tag (ETag) is the same as the one
--   specified, otherwise return a 412 (precondition failed).
goIfMatch :: Lens' GetObject (Maybe Text)

-- | VersionId used to reference a specific version of the object.
goVersionId :: Lens' GetObject (Maybe ObjectVersionId)

-- | Sets the Content-Type header of the response.
goResponseContentType :: Lens' GetObject (Maybe Text)

-- | Sets the Content-Disposition header of the response
goResponseContentDisposition :: Lens' GetObject (Maybe Text)

-- | Sets the Content-Language header of the response.
goResponseContentLanguage :: Lens' GetObject (Maybe Text)

-- | Specifies the algorithm to use to when encrypting the object (e.g.,
--   AES256).
goSSECustomerAlgorithm :: Lens' GetObject (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use in
--   encrypting data. This value is used to store the object and then it is
--   discarded; Amazon does not store the encryption key. The key must be
--   appropriate for use with the algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.
goSSECustomerKey :: Lens' GetObject (Maybe Text)

-- | Undocumented member.
goRequestPayer :: Lens' GetObject (Maybe RequestPayer)

-- | Sets the Content-Encoding header of the response.
goResponseContentEncoding :: Lens' GetObject (Maybe Text)

-- | Return the object only if it has been modified since the specified
--   time, otherwise return a 304 (not modified).
goIfModifiedSince :: Lens' GetObject (Maybe UTCTime)

-- | Part number of the object being read. This is a positive integer
--   between 1 and 10,000. Effectively performs a <tt>ranged</tt> GET
--   request for the part specified. Useful for downloading just a part of
--   an object.
goPartNumber :: Lens' GetObject (Maybe Int)

-- | Downloads the specified range bytes of an object. For more information
--   about the HTTP Range header, go to
--   <a>http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35</a>.
goRange :: Lens' GetObject (Maybe Text)

-- | Return the object only if it has not been modified since the specified
--   time, otherwise return a 412 (precondition failed).
goIfUnmodifiedSince :: Lens' GetObject (Maybe UTCTime)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
goSSECustomerKeyMD5 :: Lens' GetObject (Maybe Text)

-- | Sets the Cache-Control header of the response.
goResponseCacheControl :: Lens' GetObject (Maybe Text)

-- | Sets the Expires header of the response.
goResponseExpires :: Lens' GetObject (Maybe UTCTime)

-- | Return the object only if its entity tag (ETag) is different from the
--   one specified, otherwise return a 304 (not modified).
goIfNoneMatch :: Lens' GetObject (Maybe Text)

-- | Undocumented member.
goBucket :: Lens' GetObject BucketName

-- | Undocumented member.
goKey :: Lens' GetObject ObjectKey

-- | Creates a value of <a>GetObjectResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gorsRequestCharged</a> - Undocumented member.</li>
--   <li><a>gorsPartsCount</a> - The count of parts this object has.</li>
--   <li><a>gorsETag</a> - An ETag is an opaque identifier assigned by a
--   web server to a specific version of a resource found at a URL</li>
--   <li><a>gorsVersionId</a> - Version of the object.</li>
--   <li><a>gorsContentLength</a> - Size of the body in bytes.</li>
--   <li><a>gorsExpires</a> - The date and time at which the object is no
--   longer cacheable.</li>
--   <li><a>gorsRestore</a> - Provides information about object restoration
--   operation and expiration time of the restored object copy.</li>
--   <li><a>gorsExpiration</a> - If the object expiration is configured
--   (see PUT Bucket lifecycle), the response includes this header. It
--   includes the expiry-date and rule-id key value pairs providing object
--   expiration information. The value of the rule-id is URL encoded.</li>
--   <li><a>gorsDeleteMarker</a> - Specifies whether the object retrieved
--   was (true) or was not (false) a Delete Marker. If false, this response
--   header does not appear in the response.</li>
--   <li><a>gorsSSECustomerAlgorithm</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header confirming the encryption algorithm used.</li>
--   <li><a>gorsTagCount</a> - The number of tags, if any, on the
--   object.</li>
--   <li><a>gorsMissingMeta</a> - This is set to the number of metadata
--   entries not returned in x-amz-meta headers. This can happen if you
--   create metadata using an API like SOAP that supports more flexible
--   metadata than the REST API. For example, using SOAP, you can create
--   metadata whose values are not legal HTTP headers.</li>
--   <li><a>gorsWebsiteRedirectLocation</a> - If the bucket is configured
--   as a website, redirects requests for this object to another object in
--   the same bucket or to an external URL. Amazon S3 stores the value of
--   this header in the object metadata.</li>
--   <li><a>gorsAcceptRanges</a> - Undocumented member.</li>
--   <li><a>gorsStorageClass</a> - Undocumented member.</li>
--   <li><a>gorsSSECustomerKeyMD5</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header to provide round trip message integrity
--   verification of the customer-provided encryption key.</li>
--   <li><a>gorsSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>gorsContentEncoding</a> - Specifies what content encodings have
--   been applied to the object and thus what decoding mechanisms must be
--   applied to obtain the media-type referenced by the Content-Type header
--   field.</li>
--   <li><a>gorsMetadata</a> - A map of metadata to store with the object
--   in S3.</li>
--   <li><a>gorsReplicationStatus</a> - Undocumented member.</li>
--   <li><a>gorsCacheControl</a> - Specifies caching behavior along the
--   request/reply chain.</li>
--   <li><a>gorsContentLanguage</a> - The language the content is in.</li>
--   <li><a>gorsLastModified</a> - Last modified date of the object</li>
--   <li><a>gorsContentDisposition</a> - Specifies presentational
--   information for the object.</li>
--   <li><a>gorsContentRange</a> - The portion of the object returned in
--   the response.</li>
--   <li><a>gorsServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>gorsContentType</a> - A standard MIME type describing the
--   format of the object data.</li>
--   <li><a>gorsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gorsBody</a> - Object data.</li>
--   </ul>
getObjectResponse :: Int -> RsBody -> GetObjectResponse

-- | <i>See:</i> <a>getObjectResponse</a> smart constructor.
data GetObjectResponse

-- | Undocumented member.
gorsRequestCharged :: Lens' GetObjectResponse (Maybe RequestCharged)

-- | The count of parts this object has.
gorsPartsCount :: Lens' GetObjectResponse (Maybe Int)

-- | An ETag is an opaque identifier assigned by a web server to a specific
--   version of a resource found at a URL
gorsETag :: Lens' GetObjectResponse (Maybe ETag)

-- | Version of the object.
gorsVersionId :: Lens' GetObjectResponse (Maybe ObjectVersionId)

-- | Size of the body in bytes.
gorsContentLength :: Lens' GetObjectResponse (Maybe Integer)

-- | The date and time at which the object is no longer cacheable.
gorsExpires :: Lens' GetObjectResponse (Maybe UTCTime)

-- | Provides information about object restoration operation and expiration
--   time of the restored object copy.
gorsRestore :: Lens' GetObjectResponse (Maybe Text)

-- | If the object expiration is configured (see PUT Bucket lifecycle), the
--   response includes this header. It includes the expiry-date and rule-id
--   key value pairs providing object expiration information. The value of
--   the rule-id is URL encoded.
gorsExpiration :: Lens' GetObjectResponse (Maybe Text)

-- | Specifies whether the object retrieved was (true) or was not (false) a
--   Delete Marker. If false, this response header does not appear in the
--   response.
gorsDeleteMarker :: Lens' GetObjectResponse (Maybe Bool)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header confirming the
--   encryption algorithm used.
gorsSSECustomerAlgorithm :: Lens' GetObjectResponse (Maybe Text)

-- | The number of tags, if any, on the object.
gorsTagCount :: Lens' GetObjectResponse (Maybe Int)

-- | This is set to the number of metadata entries not returned in
--   x-amz-meta headers. This can happen if you create metadata using an
--   API like SOAP that supports more flexible metadata than the REST API.
--   For example, using SOAP, you can create metadata whose values are not
--   legal HTTP headers.
gorsMissingMeta :: Lens' GetObjectResponse (Maybe Int)

-- | If the bucket is configured as a website, redirects requests for this
--   object to another object in the same bucket or to an external URL.
--   Amazon S3 stores the value of this header in the object metadata.
gorsWebsiteRedirectLocation :: Lens' GetObjectResponse (Maybe Text)

-- | Undocumented member.
gorsAcceptRanges :: Lens' GetObjectResponse (Maybe Text)

-- | Undocumented member.
gorsStorageClass :: Lens' GetObjectResponse (Maybe StorageClass)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header to provide round trip
--   message integrity verification of the customer-provided encryption
--   key.
gorsSSECustomerKeyMD5 :: Lens' GetObjectResponse (Maybe Text)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
gorsSSEKMSKeyId :: Lens' GetObjectResponse (Maybe Text)

-- | Specifies what content encodings have been applied to the object and
--   thus what decoding mechanisms must be applied to obtain the media-type
--   referenced by the Content-Type header field.
gorsContentEncoding :: Lens' GetObjectResponse (Maybe Text)

-- | A map of metadata to store with the object in S3.
gorsMetadata :: Lens' GetObjectResponse (HashMap Text Text)

-- | Undocumented member.
gorsReplicationStatus :: Lens' GetObjectResponse (Maybe ReplicationStatus)

-- | Specifies caching behavior along the request/reply chain.
gorsCacheControl :: Lens' GetObjectResponse (Maybe Text)

-- | The language the content is in.
gorsContentLanguage :: Lens' GetObjectResponse (Maybe Text)

-- | Last modified date of the object
gorsLastModified :: Lens' GetObjectResponse (Maybe UTCTime)

-- | Specifies presentational information for the object.
gorsContentDisposition :: Lens' GetObjectResponse (Maybe Text)

-- | The portion of the object returned in the response.
gorsContentRange :: Lens' GetObjectResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
gorsServerSideEncryption :: Lens' GetObjectResponse (Maybe ServerSideEncryption)

-- | A standard MIME type describing the format of the object data.
gorsContentType :: Lens' GetObjectResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gorsResponseStatus :: Lens' GetObjectResponse Int

-- | Object data.
gorsBody :: Lens' GetObjectResponse RsBody
instance GHC.Generics.Generic Network.AWS.S3.GetObject.GetObjectResponse
instance GHC.Show.Show Network.AWS.S3.GetObject.GetObjectResponse
instance GHC.Generics.Generic Network.AWS.S3.GetObject.GetObject
instance Data.Data.Data Network.AWS.S3.GetObject.GetObject
instance GHC.Show.Show Network.AWS.S3.GetObject.GetObject
instance GHC.Read.Read Network.AWS.S3.GetObject.GetObject
instance GHC.Classes.Eq Network.AWS.S3.GetObject.GetObject
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetObject.GetObject
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetObject.GetObject
instance Control.DeepSeq.NFData Network.AWS.S3.GetObject.GetObject
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetObject.GetObject
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetObject.GetObject
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetObject.GetObject


-- | Returns the website configuration for a bucket.
module Network.AWS.S3.GetBucketWebsite

-- | Creates a value of <a>GetBucketWebsite</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbwBucket</a> - Undocumented member.</li>
--   </ul>
getBucketWebsite :: BucketName -> GetBucketWebsite

-- | <i>See:</i> <a>getBucketWebsite</a> smart constructor.
data GetBucketWebsite

-- | Undocumented member.
gbwBucket :: Lens' GetBucketWebsite BucketName

-- | Creates a value of <a>GetBucketWebsiteResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbwrsRedirectAllRequestsTo</a> - Undocumented member.</li>
--   <li><a>gbwrsErrorDocument</a> - Undocumented member.</li>
--   <li><a>gbwrsIndexDocument</a> - Undocumented member.</li>
--   <li><a>gbwrsRoutingRules</a> - Undocumented member.</li>
--   <li><a>gbwrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketWebsiteResponse :: Int -> GetBucketWebsiteResponse

-- | <i>See:</i> <a>getBucketWebsiteResponse</a> smart constructor.
data GetBucketWebsiteResponse

-- | Undocumented member.
gbwrsRedirectAllRequestsTo :: Lens' GetBucketWebsiteResponse (Maybe RedirectAllRequestsTo)

-- | Undocumented member.
gbwrsErrorDocument :: Lens' GetBucketWebsiteResponse (Maybe ErrorDocument)

-- | Undocumented member.
gbwrsIndexDocument :: Lens' GetBucketWebsiteResponse (Maybe IndexDocument)

-- | Undocumented member.
gbwrsRoutingRules :: Lens' GetBucketWebsiteResponse [RoutingRule]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbwrsResponseStatus :: Lens' GetBucketWebsiteResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketWebsite.GetBucketWebsiteResponse
instance Data.Data.Data Network.AWS.S3.GetBucketWebsite.GetBucketWebsiteResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketWebsite.GetBucketWebsiteResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketWebsite.GetBucketWebsiteResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketWebsite.GetBucketWebsiteResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Data.Data.Data Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance GHC.Show.Show Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance GHC.Read.Read Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance GHC.Classes.Eq Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketWebsite.GetBucketWebsite
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketWebsite.GetBucketWebsiteResponse


-- | Returns the versioning state of a bucket.
module Network.AWS.S3.GetBucketVersioning

-- | Creates a value of <a>GetBucketVersioning</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbvBucket</a> - Undocumented member.</li>
--   </ul>
getBucketVersioning :: BucketName -> GetBucketVersioning

-- | <i>See:</i> <a>getBucketVersioning</a> smart constructor.
data GetBucketVersioning

-- | Undocumented member.
gbvBucket :: Lens' GetBucketVersioning BucketName

-- | Creates a value of <a>GetBucketVersioningResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbvrsStatus</a> - The versioning state of the bucket.</li>
--   <li><a>gbvrsMFADelete</a> - Specifies whether MFA delete is enabled in
--   the bucket versioning configuration. This element is only returned if
--   the bucket has been configured with MFA delete. If the bucket has
--   never been so configured, this element is not returned.</li>
--   <li><a>gbvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketVersioningResponse :: Int -> GetBucketVersioningResponse

-- | <i>See:</i> <a>getBucketVersioningResponse</a> smart constructor.
data GetBucketVersioningResponse

-- | The versioning state of the bucket.
gbvrsStatus :: Lens' GetBucketVersioningResponse (Maybe BucketVersioningStatus)

-- | Specifies whether MFA delete is enabled in the bucket versioning
--   configuration. This element is only returned if the bucket has been
--   configured with MFA delete. If the bucket has never been so
--   configured, this element is not returned.
gbvrsMFADelete :: Lens' GetBucketVersioningResponse (Maybe MFADeleteStatus)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbvrsResponseStatus :: Lens' GetBucketVersioningResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketVersioning.GetBucketVersioningResponse
instance Data.Data.Data Network.AWS.S3.GetBucketVersioning.GetBucketVersioningResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketVersioning.GetBucketVersioningResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketVersioning.GetBucketVersioningResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketVersioning.GetBucketVersioningResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Data.Data.Data Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance GHC.Show.Show Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance GHC.Read.Read Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance GHC.Classes.Eq Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketVersioning.GetBucketVersioning
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketVersioning.GetBucketVersioningResponse


-- | Returns the tag set associated with the bucket.
module Network.AWS.S3.GetBucketTagging

-- | Creates a value of <a>GetBucketTagging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbtBucket</a> - Undocumented member.</li>
--   </ul>
getBucketTagging :: BucketName -> GetBucketTagging

-- | <i>See:</i> <a>getBucketTagging</a> smart constructor.
data GetBucketTagging

-- | Undocumented member.
gbtBucket :: Lens' GetBucketTagging BucketName

-- | Creates a value of <a>GetBucketTaggingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbtrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gbtrsTagSet</a> - Undocumented member.</li>
--   </ul>
getBucketTaggingResponse :: Int -> GetBucketTaggingResponse

-- | <i>See:</i> <a>getBucketTaggingResponse</a> smart constructor.
data GetBucketTaggingResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbtrsResponseStatus :: Lens' GetBucketTaggingResponse Int

-- | Undocumented member.
gbtrsTagSet :: Lens' GetBucketTaggingResponse [Tag]
instance GHC.Generics.Generic Network.AWS.S3.GetBucketTagging.GetBucketTaggingResponse
instance Data.Data.Data Network.AWS.S3.GetBucketTagging.GetBucketTaggingResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketTagging.GetBucketTaggingResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketTagging.GetBucketTaggingResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketTagging.GetBucketTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Data.Data.Data Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance GHC.Show.Show Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance GHC.Read.Read Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance GHC.Classes.Eq Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketTagging.GetBucketTagging
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketTagging.GetBucketTaggingResponse


-- | Returns the request payment configuration of a bucket.
module Network.AWS.S3.GetBucketRequestPayment

-- | Creates a value of <a>GetBucketRequestPayment</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbrpBucket</a> - Undocumented member.</li>
--   </ul>
getBucketRequestPayment :: BucketName -> GetBucketRequestPayment

-- | <i>See:</i> <a>getBucketRequestPayment</a> smart constructor.
data GetBucketRequestPayment

-- | Undocumented member.
gbrpBucket :: Lens' GetBucketRequestPayment BucketName

-- | Creates a value of <a>GetBucketRequestPaymentResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbrprsPayer</a> - Specifies who pays for the download and
--   request fees.</li>
--   <li><a>gbrprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketRequestPaymentResponse :: Int -> GetBucketRequestPaymentResponse

-- | <i>See:</i> <a>getBucketRequestPaymentResponse</a> smart constructor.
data GetBucketRequestPaymentResponse

-- | Specifies who pays for the download and request fees.
gbrprsPayer :: Lens' GetBucketRequestPaymentResponse (Maybe Payer)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbrprsResponseStatus :: Lens' GetBucketRequestPaymentResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPaymentResponse
instance Data.Data.Data Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPaymentResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPaymentResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPaymentResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPaymentResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Data.Data.Data Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance GHC.Show.Show Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance GHC.Read.Read Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance GHC.Classes.Eq Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPayment
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketRequestPayment.GetBucketRequestPaymentResponse


-- | Returns the replication configuration of a bucket.
module Network.AWS.S3.GetBucketReplication

-- | Creates a value of <a>GetBucketReplication</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbrBucket</a> - Undocumented member.</li>
--   </ul>
getBucketReplication :: BucketName -> GetBucketReplication

-- | <i>See:</i> <a>getBucketReplication</a> smart constructor.
data GetBucketReplication

-- | Undocumented member.
gbrBucket :: Lens' GetBucketReplication BucketName

-- | Creates a value of <a>GetBucketReplicationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbrrsReplicationConfiguration</a> - Undocumented member.</li>
--   <li><a>gbrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketReplicationResponse :: Int -> GetBucketReplicationResponse

-- | <i>See:</i> <a>getBucketReplicationResponse</a> smart constructor.
data GetBucketReplicationResponse

-- | Undocumented member.
gbrrsReplicationConfiguration :: Lens' GetBucketReplicationResponse (Maybe ReplicationConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbrrsResponseStatus :: Lens' GetBucketReplicationResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketReplication.GetBucketReplicationResponse
instance Data.Data.Data Network.AWS.S3.GetBucketReplication.GetBucketReplicationResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketReplication.GetBucketReplicationResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketReplication.GetBucketReplicationResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketReplication.GetBucketReplicationResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Data.Data.Data Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance GHC.Show.Show Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance GHC.Read.Read Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance GHC.Classes.Eq Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketReplication.GetBucketReplication
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketReplication.GetBucketReplicationResponse


-- | Returns the policy of a specified bucket.
module Network.AWS.S3.GetBucketPolicy

-- | Creates a value of <a>GetBucketPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbpBucket</a> - Undocumented member.</li>
--   </ul>
getBucketPolicy :: BucketName -> GetBucketPolicy

-- | <i>See:</i> <a>getBucketPolicy</a> smart constructor.
data GetBucketPolicy

-- | Undocumented member.
gbpBucket :: Lens' GetBucketPolicy BucketName

-- | Creates a value of <a>GetBucketPolicyResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbprsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gbprsPolicy</a> - The bucket policy as a JSON document.</li>
--   </ul>
getBucketPolicyResponse :: Int -> HashMap Text Value -> GetBucketPolicyResponse

-- | <i>See:</i> <a>getBucketPolicyResponse</a> smart constructor.
data GetBucketPolicyResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbprsResponseStatus :: Lens' GetBucketPolicyResponse Int

-- | The bucket policy as a JSON document.
gbprsPolicy :: Lens' GetBucketPolicyResponse (HashMap Text Value)
instance GHC.Generics.Generic Network.AWS.S3.GetBucketPolicy.GetBucketPolicyResponse
instance Data.Data.Data Network.AWS.S3.GetBucketPolicy.GetBucketPolicyResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketPolicy.GetBucketPolicyResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketPolicy.GetBucketPolicyResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Data.Data.Data Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance GHC.Show.Show Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance GHC.Read.Read Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance GHC.Classes.Eq Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketPolicy.GetBucketPolicy
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketPolicy.GetBucketPolicyResponse


-- | Returns the notification configuration of a bucket.
module Network.AWS.S3.GetBucketNotificationConfiguration

-- | Creates a value of <a>GetBucketNotificationConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbncBucket</a> - Name of the bucket to get the notification
--   configuration for.</li>
--   </ul>
getBucketNotificationConfiguration :: BucketName -> GetBucketNotificationConfiguration

-- | <i>See:</i> <a>getBucketNotificationConfiguration</a> smart
--   constructor.
data GetBucketNotificationConfiguration

-- | Name of the bucket to get the notification configuration for.
gbncBucket :: Lens' GetBucketNotificationConfiguration BucketName

-- | Creates a value of <a>NotificationConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ncQueueConfigurations</a> - Undocumented member.</li>
--   <li><a>ncTopicConfigurations</a> - Undocumented member.</li>
--   <li><a>ncLambdaFunctionConfigurations</a> - Undocumented member.</li>
--   </ul>
notificationConfiguration :: NotificationConfiguration

-- | Container for specifying the notification configuration of the bucket.
--   If this element is empty, notifications are turned off on the bucket.
--   
--   <i>See:</i> <a>notificationConfiguration</a> smart constructor.
data NotificationConfiguration

-- | Undocumented member.
ncQueueConfigurations :: Lens' NotificationConfiguration [QueueConfiguration]

-- | Undocumented member.
ncTopicConfigurations :: Lens' NotificationConfiguration [TopicConfiguration]

-- | Undocumented member.
ncLambdaFunctionConfigurations :: Lens' NotificationConfiguration [LambdaFunctionConfiguration]
instance GHC.Generics.Generic Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance Data.Data.Data Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance GHC.Show.Show Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance GHC.Read.Read Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance GHC.Classes.Eq Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketNotificationConfiguration.GetBucketNotificationConfiguration


-- | Gets a metrics configuration (specified by the metrics configuration
--   ID) from the bucket.
module Network.AWS.S3.GetBucketMetricsConfiguration

-- | Creates a value of <a>GetBucketMetricsConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbmcBucket</a> - The name of the bucket containing the metrics
--   configuration to retrieve.</li>
--   <li><a>gbmcId</a> - The ID used to identify the metrics
--   configuration.</li>
--   </ul>
getBucketMetricsConfiguration :: BucketName -> Text -> GetBucketMetricsConfiguration

-- | <i>See:</i> <a>getBucketMetricsConfiguration</a> smart constructor.
data GetBucketMetricsConfiguration

-- | The name of the bucket containing the metrics configuration to
--   retrieve.
gbmcBucket :: Lens' GetBucketMetricsConfiguration BucketName

-- | The ID used to identify the metrics configuration.
gbmcId :: Lens' GetBucketMetricsConfiguration Text

-- | Creates a value of <a>GetBucketMetricsConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbmcrsMetricsConfiguration</a> - Specifies the metrics
--   configuration.</li>
--   <li><a>gbmcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketMetricsConfigurationResponse :: Int -> GetBucketMetricsConfigurationResponse

-- | <i>See:</i> <a>getBucketMetricsConfigurationResponse</a> smart
--   constructor.
data GetBucketMetricsConfigurationResponse

-- | Specifies the metrics configuration.
gbmcrsMetricsConfiguration :: Lens' GetBucketMetricsConfigurationResponse (Maybe MetricsConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbmcrsResponseStatus :: Lens' GetBucketMetricsConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfigurationResponse
instance Data.Data.Data Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Data.Data.Data Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance GHC.Show.Show Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance GHC.Read.Read Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance GHC.Classes.Eq Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketMetricsConfiguration.GetBucketMetricsConfigurationResponse


-- | Returns the logging status of a bucket and the permissions users have
--   to view and modify that status. To use GET, you must be the bucket
--   owner.
module Network.AWS.S3.GetBucketLogging

-- | Creates a value of <a>GetBucketLogging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gBucket</a> - Undocumented member.</li>
--   </ul>
getBucketLogging :: BucketName -> GetBucketLogging

-- | <i>See:</i> <a>getBucketLogging</a> smart constructor.
data GetBucketLogging

-- | Undocumented member.
gBucket :: Lens' GetBucketLogging BucketName

-- | Creates a value of <a>GetBucketLoggingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gblrsLoggingEnabled</a> - Undocumented member.</li>
--   <li><a>gblrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketLoggingResponse :: Int -> GetBucketLoggingResponse

-- | <i>See:</i> <a>getBucketLoggingResponse</a> smart constructor.
data GetBucketLoggingResponse

-- | Undocumented member.
gblrsLoggingEnabled :: Lens' GetBucketLoggingResponse (Maybe LoggingEnabled)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gblrsResponseStatus :: Lens' GetBucketLoggingResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketLogging.GetBucketLoggingResponse
instance Data.Data.Data Network.AWS.S3.GetBucketLogging.GetBucketLoggingResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketLogging.GetBucketLoggingResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketLogging.GetBucketLoggingResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketLogging.GetBucketLoggingResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Data.Data.Data Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance GHC.Show.Show Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance GHC.Read.Read Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance GHC.Classes.Eq Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketLogging.GetBucketLogging
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketLogging.GetBucketLoggingResponse


-- | Returns the region the bucket resides in.
module Network.AWS.S3.GetBucketLocation

-- | Creates a value of <a>GetBucketLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gblBucket</a> - Undocumented member.</li>
--   </ul>
getBucketLocation :: BucketName -> GetBucketLocation

-- | <i>See:</i> <a>getBucketLocation</a> smart constructor.
data GetBucketLocation

-- | Undocumented member.
gblBucket :: Lens' GetBucketLocation BucketName

-- | Creates a value of <a>GetBucketLocationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gblbrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gblbrsLocationConstraint</a> - Undocumented member.</li>
--   </ul>
getBucketLocationResponse :: Int -> LocationConstraint -> GetBucketLocationResponse

-- | <i>See:</i> <a>getBucketLocationResponse</a> smart constructor.
data GetBucketLocationResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gblbrsResponseStatus :: Lens' GetBucketLocationResponse Int

-- | Undocumented member.
gblbrsLocationConstraint :: Lens' GetBucketLocationResponse LocationConstraint
instance GHC.Generics.Generic Network.AWS.S3.GetBucketLocation.GetBucketLocationResponse
instance Data.Data.Data Network.AWS.S3.GetBucketLocation.GetBucketLocationResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketLocation.GetBucketLocationResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketLocation.GetBucketLocationResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketLocation.GetBucketLocationResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Data.Data.Data Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance GHC.Show.Show Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance GHC.Read.Read Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance GHC.Classes.Eq Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketLocation.GetBucketLocation
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketLocation.GetBucketLocationResponse


-- | Returns the lifecycle configuration information set on the bucket.
module Network.AWS.S3.GetBucketLifecycleConfiguration

-- | Creates a value of <a>GetBucketLifecycleConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gblcBucket</a> - Undocumented member.</li>
--   </ul>
getBucketLifecycleConfiguration :: BucketName -> GetBucketLifecycleConfiguration

-- | <i>See:</i> <a>getBucketLifecycleConfiguration</a> smart constructor.
data GetBucketLifecycleConfiguration

-- | Undocumented member.
gblcBucket :: Lens' GetBucketLifecycleConfiguration BucketName

-- | Creates a value of <a>GetBucketLifecycleConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gblcrsRules</a> - Undocumented member.</li>
--   <li><a>gblcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketLifecycleConfigurationResponse :: Int -> GetBucketLifecycleConfigurationResponse

-- | <i>See:</i> <a>getBucketLifecycleConfigurationResponse</a> smart
--   constructor.
data GetBucketLifecycleConfigurationResponse

-- | Undocumented member.
gblcrsRules :: Lens' GetBucketLifecycleConfigurationResponse [LifecycleRule]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gblcrsResponseStatus :: Lens' GetBucketLifecycleConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfigurationResponse
instance Data.Data.Data Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Data.Data.Data Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance GHC.Show.Show Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance GHC.Read.Read Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance GHC.Classes.Eq Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketLifecycleConfiguration.GetBucketLifecycleConfigurationResponse


-- | Returns an inventory configuration (identified by the inventory ID)
--   from the bucket.
module Network.AWS.S3.GetBucketInventoryConfiguration

-- | Creates a value of <a>GetBucketInventoryConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbicBucket</a> - The name of the bucket containing the
--   inventory configuration to retrieve.</li>
--   <li><a>gbicId</a> - The ID used to identify the inventory
--   configuration.</li>
--   </ul>
getBucketInventoryConfiguration :: BucketName -> Text -> GetBucketInventoryConfiguration

-- | <i>See:</i> <a>getBucketInventoryConfiguration</a> smart constructor.
data GetBucketInventoryConfiguration

-- | The name of the bucket containing the inventory configuration to
--   retrieve.
gbicBucket :: Lens' GetBucketInventoryConfiguration BucketName

-- | The ID used to identify the inventory configuration.
gbicId :: Lens' GetBucketInventoryConfiguration Text

-- | Creates a value of <a>GetBucketInventoryConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbicrsInventoryConfiguration</a> - Specifies the inventory
--   configuration.</li>
--   <li><a>gbicrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketInventoryConfigurationResponse :: Int -> GetBucketInventoryConfigurationResponse

-- | <i>See:</i> <a>getBucketInventoryConfigurationResponse</a> smart
--   constructor.
data GetBucketInventoryConfigurationResponse

-- | Specifies the inventory configuration.
gbicrsInventoryConfiguration :: Lens' GetBucketInventoryConfigurationResponse (Maybe InventoryConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbicrsResponseStatus :: Lens' GetBucketInventoryConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfigurationResponse
instance Data.Data.Data Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Data.Data.Data Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance GHC.Show.Show Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance GHC.Read.Read Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance GHC.Classes.Eq Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketInventoryConfiguration.GetBucketInventoryConfigurationResponse


-- | Returns the cors configuration for the bucket.
module Network.AWS.S3.GetBucketCORS

-- | Creates a value of <a>GetBucketCORS</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbcBucket</a> - Undocumented member.</li>
--   </ul>
getBucketCORS :: BucketName -> GetBucketCORS

-- | <i>See:</i> <a>getBucketCORS</a> smart constructor.
data GetBucketCORS

-- | Undocumented member.
gbcBucket :: Lens' GetBucketCORS BucketName

-- | Creates a value of <a>GetBucketCORSResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbcrsCORSRules</a> - Undocumented member.</li>
--   <li><a>gbcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketCORSResponse :: Int -> GetBucketCORSResponse

-- | <i>See:</i> <a>getBucketCORSResponse</a> smart constructor.
data GetBucketCORSResponse

-- | Undocumented member.
gbcrsCORSRules :: Lens' GetBucketCORSResponse [CORSRule]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbcrsResponseStatus :: Lens' GetBucketCORSResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketCORS.GetBucketCORSResponse
instance Data.Data.Data Network.AWS.S3.GetBucketCORS.GetBucketCORSResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketCORS.GetBucketCORSResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketCORS.GetBucketCORSResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketCORS.GetBucketCORSResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Data.Data.Data Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance GHC.Show.Show Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance GHC.Read.Read Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance GHC.Classes.Eq Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketCORS.GetBucketCORS
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketCORS.GetBucketCORSResponse


-- | Gets an analytics configuration for the bucket (specified by the
--   analytics configuration ID).
module Network.AWS.S3.GetBucketAnalyticsConfiguration

-- | Creates a value of <a>GetBucketAnalyticsConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>getBucket</a> - The name of the bucket from which an analytics
--   configuration is retrieved.</li>
--   <li><a>getId</a> - The identifier used to represent an analytics
--   configuration.</li>
--   </ul>
getBucketAnalyticsConfiguration :: BucketName -> Text -> GetBucketAnalyticsConfiguration

-- | <i>See:</i> <a>getBucketAnalyticsConfiguration</a> smart constructor.
data GetBucketAnalyticsConfiguration

-- | The name of the bucket from which an analytics configuration is
--   retrieved.
getBucket :: Lens' GetBucketAnalyticsConfiguration BucketName

-- | The identifier used to represent an analytics configuration.
getId :: Lens' GetBucketAnalyticsConfiguration Text

-- | Creates a value of <a>GetBucketAnalyticsConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbacrsAnalyticsConfiguration</a> - The configuration and any
--   analyses for the analytics filter.</li>
--   <li><a>gbacrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketAnalyticsConfigurationResponse :: Int -> GetBucketAnalyticsConfigurationResponse

-- | <i>See:</i> <a>getBucketAnalyticsConfigurationResponse</a> smart
--   constructor.
data GetBucketAnalyticsConfigurationResponse

-- | The configuration and any analyses for the analytics filter.
gbacrsAnalyticsConfiguration :: Lens' GetBucketAnalyticsConfigurationResponse (Maybe AnalyticsConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbacrsResponseStatus :: Lens' GetBucketAnalyticsConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfigurationResponse
instance Data.Data.Data Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Data.Data.Data Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance GHC.Show.Show Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance GHC.Read.Read Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance GHC.Classes.Eq Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketAnalyticsConfiguration.GetBucketAnalyticsConfigurationResponse


-- | Returns the accelerate configuration of a bucket.
module Network.AWS.S3.GetBucketAccelerateConfiguration

-- | Creates a value of <a>GetBucketAccelerateConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbacBucket</a> - Name of the bucket for which the accelerate
--   configuration is retrieved.</li>
--   </ul>
getBucketAccelerateConfiguration :: BucketName -> GetBucketAccelerateConfiguration

-- | <i>See:</i> <a>getBucketAccelerateConfiguration</a> smart constructor.
data GetBucketAccelerateConfiguration

-- | Name of the bucket for which the accelerate configuration is
--   retrieved.
gbacBucket :: Lens' GetBucketAccelerateConfiguration BucketName

-- | Creates a value of <a>GetBucketAccelerateConfigurationResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grsStatus</a> - The accelerate configuration of the
--   bucket.</li>
--   <li><a>grsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketAccelerateConfigurationResponse :: Int -> GetBucketAccelerateConfigurationResponse

-- | <i>See:</i> <a>getBucketAccelerateConfigurationResponse</a> smart
--   constructor.
data GetBucketAccelerateConfigurationResponse

-- | The accelerate configuration of the bucket.
grsStatus :: Lens' GetBucketAccelerateConfigurationResponse (Maybe BucketAccelerateStatus)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
grsResponseStatus :: Lens' GetBucketAccelerateConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfigurationResponse
instance Data.Data.Data Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Data.Data.Data Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance GHC.Show.Show Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance GHC.Read.Read Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance GHC.Classes.Eq Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketAccelerateConfiguration.GetBucketAccelerateConfigurationResponse


-- | Gets the access control policy for the bucket.
module Network.AWS.S3.GetBucketACL

-- | Creates a value of <a>GetBucketACL</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbaBucket</a> - Undocumented member.</li>
--   </ul>
getBucketACL :: BucketName -> GetBucketACL

-- | <i>See:</i> <a>getBucketACL</a> smart constructor.
data GetBucketACL

-- | Undocumented member.
gbaBucket :: Lens' GetBucketACL BucketName

-- | Creates a value of <a>GetBucketACLResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbarsGrants</a> - A list of grants.</li>
--   <li><a>gbarsOwner</a> - Undocumented member.</li>
--   <li><a>gbarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBucketACLResponse :: Int -> GetBucketACLResponse

-- | <i>See:</i> <a>getBucketACLResponse</a> smart constructor.
data GetBucketACLResponse

-- | A list of grants.
gbarsGrants :: Lens' GetBucketACLResponse [Grant]

-- | Undocumented member.
gbarsOwner :: Lens' GetBucketACLResponse (Maybe Owner)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbarsResponseStatus :: Lens' GetBucketACLResponse Int
instance GHC.Generics.Generic Network.AWS.S3.GetBucketACL.GetBucketACLResponse
instance Data.Data.Data Network.AWS.S3.GetBucketACL.GetBucketACLResponse
instance GHC.Show.Show Network.AWS.S3.GetBucketACL.GetBucketACLResponse
instance GHC.Read.Read Network.AWS.S3.GetBucketACL.GetBucketACLResponse
instance GHC.Classes.Eq Network.AWS.S3.GetBucketACL.GetBucketACLResponse
instance GHC.Generics.Generic Network.AWS.S3.GetBucketACL.GetBucketACL
instance Data.Data.Data Network.AWS.S3.GetBucketACL.GetBucketACL
instance GHC.Show.Show Network.AWS.S3.GetBucketACL.GetBucketACL
instance GHC.Read.Read Network.AWS.S3.GetBucketACL.GetBucketACL
instance GHC.Classes.Eq Network.AWS.S3.GetBucketACL.GetBucketACL
instance Network.AWS.Types.AWSRequest Network.AWS.S3.GetBucketACL.GetBucketACL
instance Data.Hashable.Class.Hashable Network.AWS.S3.GetBucketACL.GetBucketACL
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketACL.GetBucketACL
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.GetBucketACL.GetBucketACL
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.GetBucketACL.GetBucketACL
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.GetBucketACL.GetBucketACL
instance Control.DeepSeq.NFData Network.AWS.S3.GetBucketACL.GetBucketACLResponse


-- | This operation enables you to delete multiple objects from a bucket
--   using a single HTTP request. You may specify up to 1000 keys.
module Network.AWS.S3.DeleteObjects

-- | Creates a value of <a>DeleteObjects</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dosMFA</a> - The concatenation of the authentication device's
--   serial number, a space, and the value that is displayed on your
--   authentication device.</li>
--   <li><a>dosRequestPayer</a> - Undocumented member.</li>
--   <li><a>dosBucket</a> - Undocumented member.</li>
--   <li><a>dosDelete</a> - Undocumented member.</li>
--   </ul>
deleteObjects :: BucketName -> Delete -> DeleteObjects

-- | <i>See:</i> <a>deleteObjects</a> smart constructor.
data DeleteObjects

-- | The concatenation of the authentication device's serial number, a
--   space, and the value that is displayed on your authentication device.
dosMFA :: Lens' DeleteObjects (Maybe Text)

-- | Undocumented member.
dosRequestPayer :: Lens' DeleteObjects (Maybe RequestPayer)

-- | Undocumented member.
dosBucket :: Lens' DeleteObjects BucketName

-- | Undocumented member.
dosDelete :: Lens' DeleteObjects Delete

-- | Creates a value of <a>DeleteObjectsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsRequestCharged</a> - Undocumented member.</li>
--   <li><a>drsDeleted</a> - Undocumented member.</li>
--   <li><a>drsErrors</a> - Undocumented member.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteObjectsResponse :: Int -> DeleteObjectsResponse

-- | <i>See:</i> <a>deleteObjectsResponse</a> smart constructor.
data DeleteObjectsResponse

-- | Undocumented member.
drsRequestCharged :: Lens' DeleteObjectsResponse (Maybe RequestCharged)

-- | Undocumented member.
drsDeleted :: Lens' DeleteObjectsResponse [DeletedObject]

-- | Undocumented member.
drsErrors :: Lens' DeleteObjectsResponse [S3ServiceError]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DeleteObjectsResponse Int
instance GHC.Generics.Generic Network.AWS.S3.DeleteObjects.DeleteObjectsResponse
instance Data.Data.Data Network.AWS.S3.DeleteObjects.DeleteObjectsResponse
instance GHC.Show.Show Network.AWS.S3.DeleteObjects.DeleteObjectsResponse
instance GHC.Read.Read Network.AWS.S3.DeleteObjects.DeleteObjectsResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteObjects.DeleteObjectsResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteObjects.DeleteObjects
instance Data.Data.Data Network.AWS.S3.DeleteObjects.DeleteObjects
instance GHC.Show.Show Network.AWS.S3.DeleteObjects.DeleteObjects
instance GHC.Read.Read Network.AWS.S3.DeleteObjects.DeleteObjects
instance GHC.Classes.Eq Network.AWS.S3.DeleteObjects.DeleteObjects
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteObjects.DeleteObjects
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteObjects.DeleteObjects
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteObjects.DeleteObjects
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.DeleteObjects.DeleteObjects
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteObjects.DeleteObjects
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteObjects.DeleteObjects
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteObjects.DeleteObjects
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteObjects.DeleteObjectsResponse


-- | Removes the tag-set from an existing object.
module Network.AWS.S3.DeleteObjectTagging

-- | Creates a value of <a>DeleteObjectTagging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dotVersionId</a> - The versionId of the object that the tag-set
--   will be removed from.</li>
--   <li><a>dotBucket</a> - Undocumented member.</li>
--   <li><a>dotKey</a> - Undocumented member.</li>
--   </ul>
deleteObjectTagging :: BucketName -> ObjectKey -> DeleteObjectTagging

-- | <i>See:</i> <a>deleteObjectTagging</a> smart constructor.
data DeleteObjectTagging

-- | The versionId of the object that the tag-set will be removed from.
dotVersionId :: Lens' DeleteObjectTagging (Maybe ObjectVersionId)

-- | Undocumented member.
dotBucket :: Lens' DeleteObjectTagging BucketName

-- | Undocumented member.
dotKey :: Lens' DeleteObjectTagging ObjectKey

-- | Creates a value of <a>DeleteObjectTaggingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dotrsVersionId</a> - The versionId of the object the tag-set
--   was removed from.</li>
--   <li><a>dotrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteObjectTaggingResponse :: Int -> DeleteObjectTaggingResponse

-- | <i>See:</i> <a>deleteObjectTaggingResponse</a> smart constructor.
data DeleteObjectTaggingResponse

-- | The versionId of the object the tag-set was removed from.
dotrsVersionId :: Lens' DeleteObjectTaggingResponse (Maybe ObjectVersionId)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dotrsResponseStatus :: Lens' DeleteObjectTaggingResponse Int
instance GHC.Generics.Generic Network.AWS.S3.DeleteObjectTagging.DeleteObjectTaggingResponse
instance Data.Data.Data Network.AWS.S3.DeleteObjectTagging.DeleteObjectTaggingResponse
instance GHC.Show.Show Network.AWS.S3.DeleteObjectTagging.DeleteObjectTaggingResponse
instance GHC.Read.Read Network.AWS.S3.DeleteObjectTagging.DeleteObjectTaggingResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteObjectTagging.DeleteObjectTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Data.Data.Data Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance GHC.Show.Show Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance GHC.Read.Read Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance GHC.Classes.Eq Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteObjectTagging.DeleteObjectTagging
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteObjectTagging.DeleteObjectTaggingResponse


-- | Removes the null version (if there is one) of an object and inserts a
--   delete marker, which becomes the latest version of the object. If
--   there isn't a null version, Amazon S3 does not remove any objects.
module Network.AWS.S3.DeleteObject

-- | Creates a value of <a>DeleteObject</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>doVersionId</a> - VersionId used to reference a specific
--   version of the object.</li>
--   <li><a>doMFA</a> - The concatenation of the authentication device's
--   serial number, a space, and the value that is displayed on your
--   authentication device.</li>
--   <li><a>doRequestPayer</a> - Undocumented member.</li>
--   <li><a>doBucket</a> - Undocumented member.</li>
--   <li><a>doKey</a> - Undocumented member.</li>
--   </ul>
deleteObject :: BucketName -> ObjectKey -> DeleteObject

-- | <i>See:</i> <a>deleteObject</a> smart constructor.
data DeleteObject

-- | VersionId used to reference a specific version of the object.
doVersionId :: Lens' DeleteObject (Maybe ObjectVersionId)

-- | The concatenation of the authentication device's serial number, a
--   space, and the value that is displayed on your authentication device.
doMFA :: Lens' DeleteObject (Maybe Text)

-- | Undocumented member.
doRequestPayer :: Lens' DeleteObject (Maybe RequestPayer)

-- | Undocumented member.
doBucket :: Lens' DeleteObject BucketName

-- | Undocumented member.
doKey :: Lens' DeleteObject ObjectKey

-- | Creates a value of <a>DeleteObjectResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dorsRequestCharged</a> - Undocumented member.</li>
--   <li><a>dorsVersionId</a> - Returns the version ID of the delete marker
--   created as a result of the DELETE operation.</li>
--   <li><a>dorsDeleteMarker</a> - Specifies whether the versioned object
--   that was permanently deleted was (true) or was not (false) a delete
--   marker.</li>
--   <li><a>dorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteObjectResponse :: Int -> DeleteObjectResponse

-- | <i>See:</i> <a>deleteObjectResponse</a> smart constructor.
data DeleteObjectResponse

-- | Undocumented member.
dorsRequestCharged :: Lens' DeleteObjectResponse (Maybe RequestCharged)

-- | Returns the version ID of the delete marker created as a result of the
--   DELETE operation.
dorsVersionId :: Lens' DeleteObjectResponse (Maybe ObjectVersionId)

-- | Specifies whether the versioned object that was permanently deleted
--   was (true) or was not (false) a delete marker.
dorsDeleteMarker :: Lens' DeleteObjectResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dorsResponseStatus :: Lens' DeleteObjectResponse Int
instance GHC.Generics.Generic Network.AWS.S3.DeleteObject.DeleteObjectResponse
instance Data.Data.Data Network.AWS.S3.DeleteObject.DeleteObjectResponse
instance GHC.Show.Show Network.AWS.S3.DeleteObject.DeleteObjectResponse
instance GHC.Read.Read Network.AWS.S3.DeleteObject.DeleteObjectResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteObject.DeleteObjectResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteObject.DeleteObject
instance Data.Data.Data Network.AWS.S3.DeleteObject.DeleteObject
instance GHC.Show.Show Network.AWS.S3.DeleteObject.DeleteObject
instance GHC.Read.Read Network.AWS.S3.DeleteObject.DeleteObject
instance GHC.Classes.Eq Network.AWS.S3.DeleteObject.DeleteObject
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteObject.DeleteObject
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteObject.DeleteObject
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteObject.DeleteObject
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteObject.DeleteObject
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteObject.DeleteObject
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteObject.DeleteObject
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteObject.DeleteObjectResponse


-- | This operation removes the website configuration from the bucket.
module Network.AWS.S3.DeleteBucketWebsite

-- | Creates a value of <a>DeleteBucketWebsite</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbwBucket</a> - Undocumented member.</li>
--   </ul>
deleteBucketWebsite :: BucketName -> DeleteBucketWebsite

-- | <i>See:</i> <a>deleteBucketWebsite</a> smart constructor.
data DeleteBucketWebsite

-- | Undocumented member.
dbwBucket :: Lens' DeleteBucketWebsite BucketName

-- | Creates a value of <a>DeleteBucketWebsiteResponse</a> with the minimum
--   fields required to make a request.
deleteBucketWebsiteResponse :: DeleteBucketWebsiteResponse

-- | <i>See:</i> <a>deleteBucketWebsiteResponse</a> smart constructor.
data DeleteBucketWebsiteResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsiteResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsiteResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsiteResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsiteResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsiteResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Data.Data.Data Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance GHC.Show.Show Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance GHC.Read.Read Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsite
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketWebsite.DeleteBucketWebsiteResponse


-- | Deletes the tags from the bucket.
module Network.AWS.S3.DeleteBucketTagging

-- | Creates a value of <a>DeleteBucketTagging</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbtBucket</a> - Undocumented member.</li>
--   </ul>
deleteBucketTagging :: BucketName -> DeleteBucketTagging

-- | <i>See:</i> <a>deleteBucketTagging</a> smart constructor.
data DeleteBucketTagging

-- | Undocumented member.
dbtBucket :: Lens' DeleteBucketTagging BucketName

-- | Creates a value of <a>DeleteBucketTaggingResponse</a> with the minimum
--   fields required to make a request.
deleteBucketTaggingResponse :: DeleteBucketTaggingResponse

-- | <i>See:</i> <a>deleteBucketTaggingResponse</a> smart constructor.
data DeleteBucketTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketTagging.DeleteBucketTaggingResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketTagging.DeleteBucketTaggingResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketTagging.DeleteBucketTaggingResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketTagging.DeleteBucketTaggingResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketTagging.DeleteBucketTaggingResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Data.Data.Data Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance GHC.Show.Show Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance GHC.Read.Read Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketTagging.DeleteBucketTagging
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketTagging.DeleteBucketTaggingResponse


-- | Deletes the replication configuration from the bucket.
module Network.AWS.S3.DeleteBucketReplication

-- | Creates a value of <a>DeleteBucketReplication</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbrBucket</a> - Undocumented member.</li>
--   </ul>
deleteBucketReplication :: BucketName -> DeleteBucketReplication

-- | <i>See:</i> <a>deleteBucketReplication</a> smart constructor.
data DeleteBucketReplication

-- | Undocumented member.
dbrBucket :: Lens' DeleteBucketReplication BucketName

-- | Creates a value of <a>DeleteBucketReplicationResponse</a> with the
--   minimum fields required to make a request.
deleteBucketReplicationResponse :: DeleteBucketReplicationResponse

-- | <i>See:</i> <a>deleteBucketReplicationResponse</a> smart constructor.
data DeleteBucketReplicationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplicationResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplicationResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplicationResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplicationResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplicationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Data.Data.Data Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance GHC.Show.Show Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance GHC.Read.Read Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplication
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketReplication.DeleteBucketReplicationResponse


-- | Deletes the policy from the bucket.
module Network.AWS.S3.DeleteBucketPolicy

-- | Creates a value of <a>DeleteBucketPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbpBucket</a> - Undocumented member.</li>
--   </ul>
deleteBucketPolicy :: BucketName -> DeleteBucketPolicy

-- | <i>See:</i> <a>deleteBucketPolicy</a> smart constructor.
data DeleteBucketPolicy

-- | Undocumented member.
dbpBucket :: Lens' DeleteBucketPolicy BucketName

-- | Creates a value of <a>DeleteBucketPolicyResponse</a> with the minimum
--   fields required to make a request.
deleteBucketPolicyResponse :: DeleteBucketPolicyResponse

-- | <i>See:</i> <a>deleteBucketPolicyResponse</a> smart constructor.
data DeleteBucketPolicyResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicyResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicyResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicyResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicyResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicyResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Data.Data.Data Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance GHC.Show.Show Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance GHC.Read.Read Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicy
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketPolicy.DeleteBucketPolicyResponse


-- | Deletes a metrics configuration (specified by the metrics
--   configuration ID) from the bucket.
module Network.AWS.S3.DeleteBucketMetricsConfiguration

-- | Creates a value of <a>DeleteBucketMetricsConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbmcBucket</a> - The name of the bucket containing the metrics
--   configuration to delete.</li>
--   <li><a>dbmcId</a> - The ID used to identify the metrics
--   configuration.</li>
--   </ul>
deleteBucketMetricsConfiguration :: BucketName -> Text -> DeleteBucketMetricsConfiguration

-- | <i>See:</i> <a>deleteBucketMetricsConfiguration</a> smart constructor.
data DeleteBucketMetricsConfiguration

-- | The name of the bucket containing the metrics configuration to delete.
dbmcBucket :: Lens' DeleteBucketMetricsConfiguration BucketName

-- | The ID used to identify the metrics configuration.
dbmcId :: Lens' DeleteBucketMetricsConfiguration Text

-- | Creates a value of <a>DeleteBucketMetricsConfigurationResponse</a>
--   with the minimum fields required to make a request.
deleteBucketMetricsConfigurationResponse :: DeleteBucketMetricsConfigurationResponse

-- | <i>See:</i> <a>deleteBucketMetricsConfigurationResponse</a> smart
--   constructor.
data DeleteBucketMetricsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfigurationResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Data.Data.Data Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance GHC.Show.Show Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance GHC.Read.Read Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketMetricsConfiguration.DeleteBucketMetricsConfigurationResponse


-- | Deletes the lifecycle configuration from the bucket.
module Network.AWS.S3.DeleteBucketLifecycle

-- | Creates a value of <a>DeleteBucketLifecycle</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dblBucket</a> - Undocumented member.</li>
--   </ul>
deleteBucketLifecycle :: BucketName -> DeleteBucketLifecycle

-- | <i>See:</i> <a>deleteBucketLifecycle</a> smart constructor.
data DeleteBucketLifecycle

-- | Undocumented member.
dblBucket :: Lens' DeleteBucketLifecycle BucketName

-- | Creates a value of <a>DeleteBucketLifecycleResponse</a> with the
--   minimum fields required to make a request.
deleteBucketLifecycleResponse :: DeleteBucketLifecycleResponse

-- | <i>See:</i> <a>deleteBucketLifecycleResponse</a> smart constructor.
data DeleteBucketLifecycleResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycleResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycleResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycleResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycleResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycleResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Data.Data.Data Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance GHC.Show.Show Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance GHC.Read.Read Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycle
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketLifecycle.DeleteBucketLifecycleResponse


-- | Deletes an inventory configuration (identified by the inventory ID)
--   from the bucket.
module Network.AWS.S3.DeleteBucketInventoryConfiguration

-- | Creates a value of <a>DeleteBucketInventoryConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbicBucket</a> - The name of the bucket containing the
--   inventory configuration to delete.</li>
--   <li><a>dbicId</a> - The ID used to identify the inventory
--   configuration.</li>
--   </ul>
deleteBucketInventoryConfiguration :: BucketName -> Text -> DeleteBucketInventoryConfiguration

-- | <i>See:</i> <a>deleteBucketInventoryConfiguration</a> smart
--   constructor.
data DeleteBucketInventoryConfiguration

-- | The name of the bucket containing the inventory configuration to
--   delete.
dbicBucket :: Lens' DeleteBucketInventoryConfiguration BucketName

-- | The ID used to identify the inventory configuration.
dbicId :: Lens' DeleteBucketInventoryConfiguration Text

-- | Creates a value of <a>DeleteBucketInventoryConfigurationResponse</a>
--   with the minimum fields required to make a request.
deleteBucketInventoryConfigurationResponse :: DeleteBucketInventoryConfigurationResponse

-- | <i>See:</i> <a>deleteBucketInventoryConfigurationResponse</a> smart
--   constructor.
data DeleteBucketInventoryConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfigurationResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Data.Data.Data Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance GHC.Show.Show Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance GHC.Read.Read Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketInventoryConfiguration.DeleteBucketInventoryConfigurationResponse


-- | Deletes the cors configuration information set for the bucket.
module Network.AWS.S3.DeleteBucketCORS

-- | Creates a value of <a>DeleteBucketCORS</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbcBucket</a> - Undocumented member.</li>
--   </ul>
deleteBucketCORS :: BucketName -> DeleteBucketCORS

-- | <i>See:</i> <a>deleteBucketCORS</a> smart constructor.
data DeleteBucketCORS

-- | Undocumented member.
dbcBucket :: Lens' DeleteBucketCORS BucketName

-- | Creates a value of <a>DeleteBucketCORSResponse</a> with the minimum
--   fields required to make a request.
deleteBucketCORSResponse :: DeleteBucketCORSResponse

-- | <i>See:</i> <a>deleteBucketCORSResponse</a> smart constructor.
data DeleteBucketCORSResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORSResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORSResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORSResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORSResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORSResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Data.Data.Data Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance GHC.Show.Show Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance GHC.Read.Read Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORS
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketCORS.DeleteBucketCORSResponse


-- | Deletes an analytics configuration for the bucket (specified by the
--   analytics configuration ID).
module Network.AWS.S3.DeleteBucketAnalyticsConfiguration

-- | Creates a value of <a>DeleteBucketAnalyticsConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbacBucket</a> - The name of the bucket from which an analytics
--   configuration is deleted.</li>
--   <li><a>dbacId</a> - The identifier used to represent an analytics
--   configuration.</li>
--   </ul>
deleteBucketAnalyticsConfiguration :: BucketName -> Text -> DeleteBucketAnalyticsConfiguration

-- | <i>See:</i> <a>deleteBucketAnalyticsConfiguration</a> smart
--   constructor.
data DeleteBucketAnalyticsConfiguration

-- | The name of the bucket from which an analytics configuration is
--   deleted.
dbacBucket :: Lens' DeleteBucketAnalyticsConfiguration BucketName

-- | The identifier used to represent an analytics configuration.
dbacId :: Lens' DeleteBucketAnalyticsConfiguration Text

-- | Creates a value of <a>DeleteBucketAnalyticsConfigurationResponse</a>
--   with the minimum fields required to make a request.
deleteBucketAnalyticsConfigurationResponse :: DeleteBucketAnalyticsConfigurationResponse

-- | <i>See:</i> <a>deleteBucketAnalyticsConfigurationResponse</a> smart
--   constructor.
data DeleteBucketAnalyticsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfigurationResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfigurationResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfigurationResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfigurationResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfigurationResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Data.Data.Data Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance GHC.Show.Show Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance GHC.Read.Read Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfiguration
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucketAnalyticsConfiguration.DeleteBucketAnalyticsConfigurationResponse


-- | Deletes the bucket. All objects (including all object versions and
--   Delete Markers) in the bucket must be deleted before the bucket itself
--   can be deleted.
module Network.AWS.S3.DeleteBucket

-- | Creates a value of <a>DeleteBucket</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbBucket</a> - Undocumented member.</li>
--   </ul>
deleteBucket :: BucketName -> DeleteBucket

-- | <i>See:</i> <a>deleteBucket</a> smart constructor.
data DeleteBucket

-- | Undocumented member.
dbBucket :: Lens' DeleteBucket BucketName

-- | Creates a value of <a>DeleteBucketResponse</a> with the minimum fields
--   required to make a request.
deleteBucketResponse :: DeleteBucketResponse

-- | <i>See:</i> <a>deleteBucketResponse</a> smart constructor.
data DeleteBucketResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucket.DeleteBucketResponse
instance Data.Data.Data Network.AWS.S3.DeleteBucket.DeleteBucketResponse
instance GHC.Show.Show Network.AWS.S3.DeleteBucket.DeleteBucketResponse
instance GHC.Read.Read Network.AWS.S3.DeleteBucket.DeleteBucketResponse
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucket.DeleteBucketResponse
instance GHC.Generics.Generic Network.AWS.S3.DeleteBucket.DeleteBucket
instance Data.Data.Data Network.AWS.S3.DeleteBucket.DeleteBucket
instance GHC.Show.Show Network.AWS.S3.DeleteBucket.DeleteBucket
instance GHC.Read.Read Network.AWS.S3.DeleteBucket.DeleteBucket
instance GHC.Classes.Eq Network.AWS.S3.DeleteBucket.DeleteBucket
instance Network.AWS.Types.AWSRequest Network.AWS.S3.DeleteBucket.DeleteBucket
instance Data.Hashable.Class.Hashable Network.AWS.S3.DeleteBucket.DeleteBucket
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucket.DeleteBucket
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.DeleteBucket.DeleteBucket
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.DeleteBucket.DeleteBucket
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.DeleteBucket.DeleteBucket
instance Control.DeepSeq.NFData Network.AWS.S3.DeleteBucket.DeleteBucketResponse


-- | Initiates a multipart upload and returns an upload ID.
--   
--   <b>Note:</b> After you initiate multipart upload and upload one or
--   more parts, you must either complete or abort multipart upload in
--   order to stop getting charged for storage of the uploaded parts. Only
--   after you either complete or abort multipart upload, Amazon S3 frees
--   up the parts storage and stops charging you for the parts storage.
module Network.AWS.S3.CreateMultipartUpload

-- | Creates a value of <a>CreateMultipartUpload</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmuExpires</a> - The date and time at which the object is no
--   longer cacheable.</li>
--   <li><a>cmuGrantReadACP</a> - Allows grantee to read the object
--   ACL.</li>
--   <li><a>cmuSSECustomerAlgorithm</a> - Specifies the algorithm to use to
--   when encrypting the object (e.g., AES256).</li>
--   <li><a>cmuSSECustomerKey</a> - Specifies the customer-provided
--   encryption key for Amazon S3 to use in encrypting data. This value is
--   used to store the object and then it is discarded; Amazon does not
--   store the encryption key. The key must be appropriate for use with the
--   algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.</li>
--   <li><a>cmuRequestPayer</a> - Undocumented member.</li>
--   <li><a>cmuGrantWriteACP</a> - Allows grantee to write the ACL for the
--   applicable object.</li>
--   <li><a>cmuWebsiteRedirectLocation</a> - If the bucket is configured as
--   a website, redirects requests for this object to another object in the
--   same bucket or to an external URL. Amazon S3 stores the value of this
--   header in the object metadata.</li>
--   <li><a>cmuGrantRead</a> - Allows grantee to read the object data and
--   its metadata.</li>
--   <li><a>cmuStorageClass</a> - The type of storage to use for the
--   object. Defaults to <tt>STANDARD</tt>.</li>
--   <li><a>cmuSSECustomerKeyMD5</a> - Specifies the 128-bit MD5 digest of
--   the encryption key according to RFC 1321. Amazon S3 uses this header
--   for a message integrity check to ensure the encryption key was
--   transmitted without error.</li>
--   <li><a>cmuSSEKMSKeyId</a> - Specifies the AWS KMS key ID to use for
--   object encryption. All GET and PUT requests for an object protected by
--   AWS KMS will fail if not made via SSL or using SigV4. Documentation on
--   configuring any of the officially supported AWS SDKs and CLI can be
--   found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version</a></li>
--   <li><a>cmuGrantFullControl</a> - Gives the grantee READ, READ_ACP, and
--   WRITE_ACP permissions on the object.</li>
--   <li><a>cmuContentEncoding</a> - Specifies what content encodings have
--   been applied to the object and thus what decoding mechanisms must be
--   applied to obtain the media-type referenced by the Content-Type header
--   field.</li>
--   <li><a>cmuMetadata</a> - A map of metadata to store with the object in
--   S3.</li>
--   <li><a>cmuCacheControl</a> - Specifies caching behavior along the
--   request/reply chain.</li>
--   <li><a>cmuContentLanguage</a> - The language the content is in.</li>
--   <li><a>cmuACL</a> - The canned ACL to apply to the object.</li>
--   <li><a>cmuContentDisposition</a> - Specifies presentational
--   information for the object.</li>
--   <li><a>cmuServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>cmuContentType</a> - A standard MIME type describing the format
--   of the object data.</li>
--   <li><a>cmuBucket</a> - Undocumented member.</li>
--   <li><a>cmuKey</a> - Undocumented member.</li>
--   </ul>
createMultipartUpload :: BucketName -> ObjectKey -> CreateMultipartUpload

-- | <i>See:</i> <a>createMultipartUpload</a> smart constructor.
data CreateMultipartUpload

-- | The date and time at which the object is no longer cacheable.
cmuExpires :: Lens' CreateMultipartUpload (Maybe UTCTime)

-- | Allows grantee to read the object ACL.
cmuGrantReadACP :: Lens' CreateMultipartUpload (Maybe Text)

-- | Specifies the algorithm to use to when encrypting the object (e.g.,
--   AES256).
cmuSSECustomerAlgorithm :: Lens' CreateMultipartUpload (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use in
--   encrypting data. This value is used to store the object and then it is
--   discarded; Amazon does not store the encryption key. The key must be
--   appropriate for use with the algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.
cmuSSECustomerKey :: Lens' CreateMultipartUpload (Maybe Text)

-- | Undocumented member.
cmuRequestPayer :: Lens' CreateMultipartUpload (Maybe RequestPayer)

-- | Allows grantee to write the ACL for the applicable object.
cmuGrantWriteACP :: Lens' CreateMultipartUpload (Maybe Text)

-- | If the bucket is configured as a website, redirects requests for this
--   object to another object in the same bucket or to an external URL.
--   Amazon S3 stores the value of this header in the object metadata.
cmuWebsiteRedirectLocation :: Lens' CreateMultipartUpload (Maybe Text)

-- | Allows grantee to read the object data and its metadata.
cmuGrantRead :: Lens' CreateMultipartUpload (Maybe Text)

-- | The type of storage to use for the object. Defaults to
--   <tt>STANDARD</tt>.
cmuStorageClass :: Lens' CreateMultipartUpload (Maybe StorageClass)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
cmuSSECustomerKeyMD5 :: Lens' CreateMultipartUpload (Maybe Text)

-- | Specifies the AWS KMS key ID to use for object encryption. All GET and
--   PUT requests for an object protected by AWS KMS will fail if not made
--   via SSL or using SigV4. Documentation on configuring any of the
--   officially supported AWS SDKs and CLI can be found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version</a>
cmuSSEKMSKeyId :: Lens' CreateMultipartUpload (Maybe Text)

-- | Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the
--   object.
cmuGrantFullControl :: Lens' CreateMultipartUpload (Maybe Text)

-- | Specifies what content encodings have been applied to the object and
--   thus what decoding mechanisms must be applied to obtain the media-type
--   referenced by the Content-Type header field.
cmuContentEncoding :: Lens' CreateMultipartUpload (Maybe Text)

-- | A map of metadata to store with the object in S3.
cmuMetadata :: Lens' CreateMultipartUpload (HashMap Text Text)

-- | Specifies caching behavior along the request/reply chain.
cmuCacheControl :: Lens' CreateMultipartUpload (Maybe Text)

-- | The language the content is in.
cmuContentLanguage :: Lens' CreateMultipartUpload (Maybe Text)

-- | The canned ACL to apply to the object.
cmuACL :: Lens' CreateMultipartUpload (Maybe ObjectCannedACL)

-- | Specifies presentational information for the object.
cmuContentDisposition :: Lens' CreateMultipartUpload (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
cmuServerSideEncryption :: Lens' CreateMultipartUpload (Maybe ServerSideEncryption)

-- | A standard MIME type describing the format of the object data.
cmuContentType :: Lens' CreateMultipartUpload (Maybe Text)

-- | Undocumented member.
cmuBucket :: Lens' CreateMultipartUpload BucketName

-- | Undocumented member.
cmuKey :: Lens' CreateMultipartUpload ObjectKey

-- | Creates a value of <a>CreateMultipartUploadResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmursRequestCharged</a> - Undocumented member.</li>
--   <li><a>cmursBucket</a> - Name of the bucket to which the multipart
--   upload was initiated.</li>
--   <li><a>cmursSSECustomerAlgorithm</a> - If server-side encryption with
--   a customer-provided encryption key was requested, the response will
--   include this header confirming the encryption algorithm used.</li>
--   <li><a>cmursAbortDate</a> - Date when multipart upload will become
--   eligible for abort operation by lifecycle.</li>
--   <li><a>cmursAbortRuleId</a> - Id of the lifecycle rule that makes a
--   multipart upload eligible for abort operation.</li>
--   <li><a>cmursKey</a> - Object key for which the multipart upload was
--   initiated.</li>
--   <li><a>cmursSSECustomerKeyMD5</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header to provide round trip message integrity
--   verification of the customer-provided encryption key.</li>
--   <li><a>cmursSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>cmursUploadId</a> - ID for the initiated multipart upload.</li>
--   <li><a>cmursServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>cmursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createMultipartUploadResponse :: Int -> CreateMultipartUploadResponse

-- | <i>See:</i> <a>createMultipartUploadResponse</a> smart constructor.
data CreateMultipartUploadResponse

-- | Undocumented member.
cmursRequestCharged :: Lens' CreateMultipartUploadResponse (Maybe RequestCharged)

-- | Name of the bucket to which the multipart upload was initiated.
cmursBucket :: Lens' CreateMultipartUploadResponse (Maybe BucketName)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header confirming the
--   encryption algorithm used.
cmursSSECustomerAlgorithm :: Lens' CreateMultipartUploadResponse (Maybe Text)

-- | Date when multipart upload will become eligible for abort operation by
--   lifecycle.
cmursAbortDate :: Lens' CreateMultipartUploadResponse (Maybe UTCTime)

-- | Id of the lifecycle rule that makes a multipart upload eligible for
--   abort operation.
cmursAbortRuleId :: Lens' CreateMultipartUploadResponse (Maybe Text)

-- | Object key for which the multipart upload was initiated.
cmursKey :: Lens' CreateMultipartUploadResponse (Maybe ObjectKey)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header to provide round trip
--   message integrity verification of the customer-provided encryption
--   key.
cmursSSECustomerKeyMD5 :: Lens' CreateMultipartUploadResponse (Maybe Text)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
cmursSSEKMSKeyId :: Lens' CreateMultipartUploadResponse (Maybe Text)

-- | ID for the initiated multipart upload.
cmursUploadId :: Lens' CreateMultipartUploadResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
cmursServerSideEncryption :: Lens' CreateMultipartUploadResponse (Maybe ServerSideEncryption)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cmursResponseStatus :: Lens' CreateMultipartUploadResponse Int
instance GHC.Generics.Generic Network.AWS.S3.CreateMultipartUpload.CreateMultipartUploadResponse
instance Data.Data.Data Network.AWS.S3.CreateMultipartUpload.CreateMultipartUploadResponse
instance GHC.Show.Show Network.AWS.S3.CreateMultipartUpload.CreateMultipartUploadResponse
instance GHC.Read.Read Network.AWS.S3.CreateMultipartUpload.CreateMultipartUploadResponse
instance GHC.Classes.Eq Network.AWS.S3.CreateMultipartUpload.CreateMultipartUploadResponse
instance GHC.Generics.Generic Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Data.Data.Data Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance GHC.Show.Show Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance GHC.Read.Read Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance GHC.Classes.Eq Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Network.AWS.Types.AWSRequest Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Data.Hashable.Class.Hashable Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Control.DeepSeq.NFData Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.CreateMultipartUpload.CreateMultipartUpload
instance Control.DeepSeq.NFData Network.AWS.S3.CreateMultipartUpload.CreateMultipartUploadResponse


-- | Creates a new bucket.
module Network.AWS.S3.CreateBucket

-- | Creates a value of <a>CreateBucket</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbGrantReadACP</a> - Allows grantee to read the bucket
--   ACL.</li>
--   <li><a>cbGrantWriteACP</a> - Allows grantee to write the ACL for the
--   applicable bucket.</li>
--   <li><a>cbGrantRead</a> - Allows grantee to list the objects in the
--   bucket.</li>
--   <li><a>cbGrantFullControl</a> - Allows grantee the read, write, read
--   ACP, and write ACP permissions on the bucket.</li>
--   <li><a>cbCreateBucketConfiguration</a> - Undocumented member.</li>
--   <li><a>cbGrantWrite</a> - Allows grantee to create, overwrite, and
--   delete any object in the bucket.</li>
--   <li><a>cbACL</a> - The canned ACL to apply to the bucket.</li>
--   <li><a>cbBucket</a> - Undocumented member.</li>
--   </ul>
createBucket :: BucketName -> CreateBucket

-- | <i>See:</i> <a>createBucket</a> smart constructor.
data CreateBucket

-- | Allows grantee to read the bucket ACL.
cbGrantReadACP :: Lens' CreateBucket (Maybe Text)

-- | Allows grantee to write the ACL for the applicable bucket.
cbGrantWriteACP :: Lens' CreateBucket (Maybe Text)

-- | Allows grantee to list the objects in the bucket.
cbGrantRead :: Lens' CreateBucket (Maybe Text)

-- | Allows grantee the read, write, read ACP, and write ACP permissions on
--   the bucket.
cbGrantFullControl :: Lens' CreateBucket (Maybe Text)

-- | Undocumented member.
cbCreateBucketConfiguration :: Lens' CreateBucket (Maybe CreateBucketConfiguration)

-- | Allows grantee to create, overwrite, and delete any object in the
--   bucket.
cbGrantWrite :: Lens' CreateBucket (Maybe Text)

-- | The canned ACL to apply to the bucket.
cbACL :: Lens' CreateBucket (Maybe BucketCannedACL)

-- | Undocumented member.
cbBucket :: Lens' CreateBucket BucketName

-- | Creates a value of <a>CreateBucketResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbrsLocation</a> - Undocumented member.</li>
--   <li><a>cbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createBucketResponse :: Int -> CreateBucketResponse

-- | <i>See:</i> <a>createBucketResponse</a> smart constructor.
data CreateBucketResponse

-- | Undocumented member.
cbrsLocation :: Lens' CreateBucketResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cbrsResponseStatus :: Lens' CreateBucketResponse Int
instance GHC.Generics.Generic Network.AWS.S3.CreateBucket.CreateBucketResponse
instance Data.Data.Data Network.AWS.S3.CreateBucket.CreateBucketResponse
instance GHC.Show.Show Network.AWS.S3.CreateBucket.CreateBucketResponse
instance GHC.Read.Read Network.AWS.S3.CreateBucket.CreateBucketResponse
instance GHC.Classes.Eq Network.AWS.S3.CreateBucket.CreateBucketResponse
instance GHC.Generics.Generic Network.AWS.S3.CreateBucket.CreateBucket
instance Data.Data.Data Network.AWS.S3.CreateBucket.CreateBucket
instance GHC.Show.Show Network.AWS.S3.CreateBucket.CreateBucket
instance GHC.Read.Read Network.AWS.S3.CreateBucket.CreateBucket
instance GHC.Classes.Eq Network.AWS.S3.CreateBucket.CreateBucket
instance Network.AWS.Types.AWSRequest Network.AWS.S3.CreateBucket.CreateBucket
instance Data.Hashable.Class.Hashable Network.AWS.S3.CreateBucket.CreateBucket
instance Control.DeepSeq.NFData Network.AWS.S3.CreateBucket.CreateBucket
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.CreateBucket.CreateBucket
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.CreateBucket.CreateBucket
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.CreateBucket.CreateBucket
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.CreateBucket.CreateBucket
instance Control.DeepSeq.NFData Network.AWS.S3.CreateBucket.CreateBucketResponse


-- | Creates a copy of an object that is already stored in Amazon S3.
module Network.AWS.S3.CopyObject

-- | Creates a value of <a>CopyObject</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coCopySourceIfModifiedSince</a> - Copies the object if it has
--   been modified since the specified time.</li>
--   <li><a>coCopySourceIfUnmodifiedSince</a> - Copies the object if it
--   hasn't been modified since the specified time.</li>
--   <li><a>coCopySourceSSECustomerKeyMD5</a> - Specifies the 128-bit MD5
--   digest of the encryption key according to RFC 1321. Amazon S3 uses
--   this header for a message integrity check to ensure the encryption key
--   was transmitted without error.</li>
--   <li><a>coTaggingDirective</a> - Specifies whether the object tag-set
--   are copied from the source object or replaced with tag-set provided in
--   the request.</li>
--   <li><a>coMetadataDirective</a> - Specifies whether the metadata is
--   copied from the source object or replaced with metadata provided in
--   the request.</li>
--   <li><a>coExpires</a> - The date and time at which the object is no
--   longer cacheable.</li>
--   <li><a>coGrantReadACP</a> - Allows grantee to read the object
--   ACL.</li>
--   <li><a>coCopySourceIfNoneMatch</a> - Copies the object if its entity
--   tag (ETag) is different than the specified ETag.</li>
--   <li><a>coSSECustomerAlgorithm</a> - Specifies the algorithm to use to
--   when encrypting the object (e.g., AES256).</li>
--   <li><a>coSSECustomerKey</a> - Specifies the customer-provided
--   encryption key for Amazon S3 to use in encrypting data. This value is
--   used to store the object and then it is discarded; Amazon does not
--   store the encryption key. The key must be appropriate for use with the
--   algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.</li>
--   <li><a>coRequestPayer</a> - Undocumented member.</li>
--   <li><a>coGrantWriteACP</a> - Allows grantee to write the ACL for the
--   applicable object.</li>
--   <li><a>coCopySourceIfMatch</a> - Copies the object if its entity tag
--   (ETag) matches the specified tag.</li>
--   <li><a>coWebsiteRedirectLocation</a> - If the bucket is configured as
--   a website, redirects requests for this object to another object in the
--   same bucket or to an external URL. Amazon S3 stores the value of this
--   header in the object metadata.</li>
--   <li><a>coGrantRead</a> - Allows grantee to read the object data and
--   its metadata.</li>
--   <li><a>coStorageClass</a> - The type of storage to use for the object.
--   Defaults to <tt>STANDARD</tt>.</li>
--   <li><a>coSSECustomerKeyMD5</a> - Specifies the 128-bit MD5 digest of
--   the encryption key according to RFC 1321. Amazon S3 uses this header
--   for a message integrity check to ensure the encryption key was
--   transmitted without error.</li>
--   <li><a>coSSEKMSKeyId</a> - Specifies the AWS KMS key ID to use for
--   object encryption. All GET and PUT requests for an object protected by
--   AWS KMS will fail if not made via SSL or using SigV4. Documentation on
--   configuring any of the officially supported AWS SDKs and CLI can be
--   found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version</a></li>
--   <li><a>coGrantFullControl</a> - Gives the grantee READ, READ_ACP, and
--   WRITE_ACP permissions on the object.</li>
--   <li><a>coContentEncoding</a> - Specifies what content encodings have
--   been applied to the object and thus what decoding mechanisms must be
--   applied to obtain the media-type referenced by the Content-Type header
--   field.</li>
--   <li><a>coTagging</a> - The tag-set for the object destination object
--   this value must be used in conjunction with the TaggingDirective. The
--   tag-set must be encoded as URL Query parameters</li>
--   <li><a>coMetadata</a> - A map of metadata to store with the object in
--   S3.</li>
--   <li><a>coCacheControl</a> - Specifies caching behavior along the
--   request/reply chain.</li>
--   <li><a>coContentLanguage</a> - The language the content is in.</li>
--   <li><a>coCopySourceSSECustomerKey</a> - Specifies the
--   customer-provided encryption key for Amazon S3 to use to decrypt the
--   source object. The encryption key provided in this header must be one
--   that was used when the source object was created.</li>
--   <li><a>coCopySourceSSECustomerAlgorithm</a> - Specifies the algorithm
--   to use when decrypting the source object (e.g., AES256).</li>
--   <li><a>coACL</a> - The canned ACL to apply to the object.</li>
--   <li><a>coContentDisposition</a> - Specifies presentational information
--   for the object.</li>
--   <li><a>coServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>coContentType</a> - A standard MIME type describing the format
--   of the object data.</li>
--   <li><a>coBucket</a> - Undocumented member.</li>
--   <li><a>coCopySource</a> - The name of the source bucket and key name
--   of the source object, separated by a slash (/). Must be
--   URL-encoded.</li>
--   <li><a>coKey</a> - Undocumented member.</li>
--   </ul>
copyObject :: BucketName -> Text -> ObjectKey -> CopyObject

-- | <i>See:</i> <a>copyObject</a> smart constructor.
data CopyObject

-- | Copies the object if it has been modified since the specified time.
coCopySourceIfModifiedSince :: Lens' CopyObject (Maybe UTCTime)

-- | Copies the object if it hasn't been modified since the specified time.
coCopySourceIfUnmodifiedSince :: Lens' CopyObject (Maybe UTCTime)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
coCopySourceSSECustomerKeyMD5 :: Lens' CopyObject (Maybe Text)

-- | Specifies whether the object tag-set are copied from the source object
--   or replaced with tag-set provided in the request.
coTaggingDirective :: Lens' CopyObject (Maybe TaggingDirective)

-- | Specifies whether the metadata is copied from the source object or
--   replaced with metadata provided in the request.
coMetadataDirective :: Lens' CopyObject (Maybe MetadataDirective)

-- | The date and time at which the object is no longer cacheable.
coExpires :: Lens' CopyObject (Maybe UTCTime)

-- | Allows grantee to read the object ACL.
coGrantReadACP :: Lens' CopyObject (Maybe Text)

-- | Copies the object if its entity tag (ETag) is different than the
--   specified ETag.
coCopySourceIfNoneMatch :: Lens' CopyObject (Maybe Text)

-- | Specifies the algorithm to use to when encrypting the object (e.g.,
--   AES256).
coSSECustomerAlgorithm :: Lens' CopyObject (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use in
--   encrypting data. This value is used to store the object and then it is
--   discarded; Amazon does not store the encryption key. The key must be
--   appropriate for use with the algorithm specified in the
--   x-amz-server-side​-encryption​-customer-algorithm header.
coSSECustomerKey :: Lens' CopyObject (Maybe Text)

-- | Undocumented member.
coRequestPayer :: Lens' CopyObject (Maybe RequestPayer)

-- | Allows grantee to write the ACL for the applicable object.
coGrantWriteACP :: Lens' CopyObject (Maybe Text)

-- | Copies the object if its entity tag (ETag) matches the specified tag.
coCopySourceIfMatch :: Lens' CopyObject (Maybe Text)

-- | If the bucket is configured as a website, redirects requests for this
--   object to another object in the same bucket or to an external URL.
--   Amazon S3 stores the value of this header in the object metadata.
coWebsiteRedirectLocation :: Lens' CopyObject (Maybe Text)

-- | Allows grantee to read the object data and its metadata.
coGrantRead :: Lens' CopyObject (Maybe Text)

-- | The type of storage to use for the object. Defaults to
--   <tt>STANDARD</tt>.
coStorageClass :: Lens' CopyObject (Maybe StorageClass)

-- | Specifies the 128-bit MD5 digest of the encryption key according to
--   RFC 1321. Amazon S3 uses this header for a message integrity check to
--   ensure the encryption key was transmitted without error.
coSSECustomerKeyMD5 :: Lens' CopyObject (Maybe Text)

-- | Specifies the AWS KMS key ID to use for object encryption. All GET and
--   PUT requests for an object protected by AWS KMS will fail if not made
--   via SSL or using SigV4. Documentation on configuring any of the
--   officially supported AWS SDKs and CLI can be found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version</a>
coSSEKMSKeyId :: Lens' CopyObject (Maybe Text)

-- | Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the
--   object.
coGrantFullControl :: Lens' CopyObject (Maybe Text)

-- | Specifies what content encodings have been applied to the object and
--   thus what decoding mechanisms must be applied to obtain the media-type
--   referenced by the Content-Type header field.
coContentEncoding :: Lens' CopyObject (Maybe Text)

-- | The tag-set for the object destination object this value must be used
--   in conjunction with the TaggingDirective. The tag-set must be encoded
--   as URL Query parameters
coTagging :: Lens' CopyObject (Maybe Text)

-- | A map of metadata to store with the object in S3.
coMetadata :: Lens' CopyObject (HashMap Text Text)

-- | Specifies caching behavior along the request/reply chain.
coCacheControl :: Lens' CopyObject (Maybe Text)

-- | The language the content is in.
coContentLanguage :: Lens' CopyObject (Maybe Text)

-- | Specifies the customer-provided encryption key for Amazon S3 to use to
--   decrypt the source object. The encryption key provided in this header
--   must be one that was used when the source object was created.
coCopySourceSSECustomerKey :: Lens' CopyObject (Maybe Text)

-- | Specifies the algorithm to use when decrypting the source object
--   (e.g., AES256).
coCopySourceSSECustomerAlgorithm :: Lens' CopyObject (Maybe Text)

-- | The canned ACL to apply to the object.
coACL :: Lens' CopyObject (Maybe ObjectCannedACL)

-- | Specifies presentational information for the object.
coContentDisposition :: Lens' CopyObject (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
coServerSideEncryption :: Lens' CopyObject (Maybe ServerSideEncryption)

-- | A standard MIME type describing the format of the object data.
coContentType :: Lens' CopyObject (Maybe Text)

-- | Undocumented member.
coBucket :: Lens' CopyObject BucketName

-- | The name of the source bucket and key name of the source object,
--   separated by a slash (/). Must be URL-encoded.
coCopySource :: Lens' CopyObject Text

-- | Undocumented member.
coKey :: Lens' CopyObject ObjectKey

-- | Creates a value of <a>CopyObjectResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>corsRequestCharged</a> - Undocumented member.</li>
--   <li><a>corsVersionId</a> - Version ID of the newly created copy.</li>
--   <li><a>corsExpiration</a> - If the object expiration is configured,
--   the response includes this header.</li>
--   <li><a>corsSSECustomerAlgorithm</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header confirming the encryption algorithm used.</li>
--   <li><a>corsCopySourceVersionId</a> - Undocumented member.</li>
--   <li><a>corsSSECustomerKeyMD5</a> - If server-side encryption with a
--   customer-provided encryption key was requested, the response will
--   include this header to provide round trip message integrity
--   verification of the customer-provided encryption key.</li>
--   <li><a>corsSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>corsServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>corsCopyObjectResult</a> - Undocumented member.</li>
--   <li><a>corsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
copyObjectResponse :: Int -> CopyObjectResponse

-- | <i>See:</i> <a>copyObjectResponse</a> smart constructor.
data CopyObjectResponse

-- | Undocumented member.
corsRequestCharged :: Lens' CopyObjectResponse (Maybe RequestCharged)

-- | Version ID of the newly created copy.
corsVersionId :: Lens' CopyObjectResponse (Maybe ObjectVersionId)

-- | If the object expiration is configured, the response includes this
--   header.
corsExpiration :: Lens' CopyObjectResponse (Maybe Text)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header confirming the
--   encryption algorithm used.
corsSSECustomerAlgorithm :: Lens' CopyObjectResponse (Maybe Text)

-- | Undocumented member.
corsCopySourceVersionId :: Lens' CopyObjectResponse (Maybe Text)

-- | If server-side encryption with a customer-provided encryption key was
--   requested, the response will include this header to provide round trip
--   message integrity verification of the customer-provided encryption
--   key.
corsSSECustomerKeyMD5 :: Lens' CopyObjectResponse (Maybe Text)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
corsSSEKMSKeyId :: Lens' CopyObjectResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
corsServerSideEncryption :: Lens' CopyObjectResponse (Maybe ServerSideEncryption)

-- | Undocumented member.
corsCopyObjectResult :: Lens' CopyObjectResponse (Maybe CopyObjectResult)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
corsResponseStatus :: Lens' CopyObjectResponse Int
instance GHC.Generics.Generic Network.AWS.S3.CopyObject.CopyObjectResponse
instance Data.Data.Data Network.AWS.S3.CopyObject.CopyObjectResponse
instance GHC.Show.Show Network.AWS.S3.CopyObject.CopyObjectResponse
instance GHC.Read.Read Network.AWS.S3.CopyObject.CopyObjectResponse
instance GHC.Classes.Eq Network.AWS.S3.CopyObject.CopyObjectResponse
instance GHC.Generics.Generic Network.AWS.S3.CopyObject.CopyObject
instance Data.Data.Data Network.AWS.S3.CopyObject.CopyObject
instance GHC.Show.Show Network.AWS.S3.CopyObject.CopyObject
instance GHC.Read.Read Network.AWS.S3.CopyObject.CopyObject
instance GHC.Classes.Eq Network.AWS.S3.CopyObject.CopyObject
instance Network.AWS.Types.AWSRequest Network.AWS.S3.CopyObject.CopyObject
instance Data.Hashable.Class.Hashable Network.AWS.S3.CopyObject.CopyObject
instance Control.DeepSeq.NFData Network.AWS.S3.CopyObject.CopyObject
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.CopyObject.CopyObject
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.CopyObject.CopyObject
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.CopyObject.CopyObject
instance Control.DeepSeq.NFData Network.AWS.S3.CopyObject.CopyObjectResponse


-- | Completes a multipart upload by assembling previously uploaded parts.
module Network.AWS.S3.CompleteMultipartUpload

-- | Creates a value of <a>CompleteMultipartUpload</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cRequestPayer</a> - Undocumented member.</li>
--   <li><a>cMultipartUpload</a> - Undocumented member.</li>
--   <li><a>cBucket</a> - Undocumented member.</li>
--   <li><a>cKey</a> - Undocumented member.</li>
--   <li><a>cUploadId</a> - Undocumented member.</li>
--   </ul>
completeMultipartUpload :: BucketName -> ObjectKey -> Text -> CompleteMultipartUpload

-- | <i>See:</i> <a>completeMultipartUpload</a> smart constructor.
data CompleteMultipartUpload

-- | Undocumented member.
cRequestPayer :: Lens' CompleteMultipartUpload (Maybe RequestPayer)

-- | Undocumented member.
cMultipartUpload :: Lens' CompleteMultipartUpload (Maybe CompletedMultipartUpload)

-- | Undocumented member.
cBucket :: Lens' CompleteMultipartUpload BucketName

-- | Undocumented member.
cKey :: Lens' CompleteMultipartUpload ObjectKey

-- | Undocumented member.
cUploadId :: Lens' CompleteMultipartUpload Text

-- | Creates a value of <a>CompleteMultipartUploadResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsRequestCharged</a> - Undocumented member.</li>
--   <li><a>crsETag</a> - Entity tag of the object.</li>
--   <li><a>crsVersionId</a> - Version of the object.</li>
--   <li><a>crsLocation</a> - Undocumented member.</li>
--   <li><a>crsExpiration</a> - If the object expiration is configured,
--   this will contain the expiration date (expiry-date) and rule ID
--   (rule-id). The value of rule-id is URL encoded.</li>
--   <li><a>crsBucket</a> - Undocumented member.</li>
--   <li><a>crsKey</a> - Undocumented member.</li>
--   <li><a>crsSSEKMSKeyId</a> - If present, specifies the ID of the AWS
--   Key Management Service (KMS) master encryption key that was used for
--   the object.</li>
--   <li><a>crsServerSideEncryption</a> - The Server-side encryption
--   algorithm used when storing this object in S3 (e.g., AES256,
--   aws:kms).</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
completeMultipartUploadResponse :: Int -> CompleteMultipartUploadResponse

-- | <i>See:</i> <a>completeMultipartUploadResponse</a> smart constructor.
data CompleteMultipartUploadResponse

-- | Undocumented member.
crsRequestCharged :: Lens' CompleteMultipartUploadResponse (Maybe RequestCharged)

-- | Entity tag of the object.
crsETag :: Lens' CompleteMultipartUploadResponse (Maybe ETag)

-- | Version of the object.
crsVersionId :: Lens' CompleteMultipartUploadResponse (Maybe ObjectVersionId)

-- | Undocumented member.
crsLocation :: Lens' CompleteMultipartUploadResponse (Maybe Text)

-- | If the object expiration is configured, this will contain the
--   expiration date (expiry-date) and rule ID (rule-id). The value of
--   rule-id is URL encoded.
crsExpiration :: Lens' CompleteMultipartUploadResponse (Maybe Text)

-- | Undocumented member.
crsBucket :: Lens' CompleteMultipartUploadResponse (Maybe BucketName)

-- | Undocumented member.
crsKey :: Lens' CompleteMultipartUploadResponse (Maybe ObjectKey)

-- | If present, specifies the ID of the AWS Key Management Service (KMS)
--   master encryption key that was used for the object.
crsSSEKMSKeyId :: Lens' CompleteMultipartUploadResponse (Maybe Text)

-- | The Server-side encryption algorithm used when storing this object in
--   S3 (e.g., AES256, aws:kms).
crsServerSideEncryption :: Lens' CompleteMultipartUploadResponse (Maybe ServerSideEncryption)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crsResponseStatus :: Lens' CompleteMultipartUploadResponse Int
instance GHC.Generics.Generic Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUploadResponse
instance Data.Data.Data Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUploadResponse
instance GHC.Show.Show Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUploadResponse
instance GHC.Read.Read Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUploadResponse
instance GHC.Classes.Eq Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUploadResponse
instance GHC.Generics.Generic Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Data.Data.Data Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance GHC.Show.Show Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance GHC.Read.Read Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance GHC.Classes.Eq Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Network.AWS.Types.AWSRequest Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Data.Hashable.Class.Hashable Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Control.DeepSeq.NFData Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Network.AWS.Data.XML.ToElement Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUpload
instance Control.DeepSeq.NFData Network.AWS.S3.CompleteMultipartUpload.CompleteMultipartUploadResponse


-- | Aborts a multipart upload.
--   
--   To verify that all parts have been removed, so you don't get charged
--   for the part storage, you should call the List Parts operation and
--   ensure the parts list is empty.
module Network.AWS.S3.AbortMultipartUpload

-- | Creates a value of <a>AbortMultipartUpload</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>amuRequestPayer</a> - Undocumented member.</li>
--   <li><a>amuBucket</a> - Undocumented member.</li>
--   <li><a>amuKey</a> - Undocumented member.</li>
--   <li><a>amuUploadId</a> - Undocumented member.</li>
--   </ul>
abortMultipartUpload :: BucketName -> ObjectKey -> Text -> AbortMultipartUpload

-- | <i>See:</i> <a>abortMultipartUpload</a> smart constructor.
data AbortMultipartUpload

-- | Undocumented member.
amuRequestPayer :: Lens' AbortMultipartUpload (Maybe RequestPayer)

-- | Undocumented member.
amuBucket :: Lens' AbortMultipartUpload BucketName

-- | Undocumented member.
amuKey :: Lens' AbortMultipartUpload ObjectKey

-- | Undocumented member.
amuUploadId :: Lens' AbortMultipartUpload Text

-- | Creates a value of <a>AbortMultipartUploadResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>amursRequestCharged</a> - Undocumented member.</li>
--   <li><a>amursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
abortMultipartUploadResponse :: Int -> AbortMultipartUploadResponse

-- | <i>See:</i> <a>abortMultipartUploadResponse</a> smart constructor.
data AbortMultipartUploadResponse

-- | Undocumented member.
amursRequestCharged :: Lens' AbortMultipartUploadResponse (Maybe RequestCharged)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
amursResponseStatus :: Lens' AbortMultipartUploadResponse Int
instance GHC.Generics.Generic Network.AWS.S3.AbortMultipartUpload.AbortMultipartUploadResponse
instance Data.Data.Data Network.AWS.S3.AbortMultipartUpload.AbortMultipartUploadResponse
instance GHC.Show.Show Network.AWS.S3.AbortMultipartUpload.AbortMultipartUploadResponse
instance GHC.Read.Read Network.AWS.S3.AbortMultipartUpload.AbortMultipartUploadResponse
instance GHC.Classes.Eq Network.AWS.S3.AbortMultipartUpload.AbortMultipartUploadResponse
instance GHC.Generics.Generic Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Data.Data.Data Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance GHC.Show.Show Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance GHC.Read.Read Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance GHC.Classes.Eq Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Network.AWS.Types.AWSRequest Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Data.Hashable.Class.Hashable Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Control.DeepSeq.NFData Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Network.AWS.Data.Path.ToPath Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Network.AWS.Data.Query.ToQuery Network.AWS.S3.AbortMultipartUpload.AbortMultipartUpload
instance Control.DeepSeq.NFData Network.AWS.S3.AbortMultipartUpload.AbortMultipartUploadResponse


-- | Amazon Simple Storage Service is storage for the Internet. Amazon S3
--   has a simple web services interface that you can use to store and
--   retrieve any amount of data, at any time, from anywhere on the web. It
--   gives any developer access to the same highly scalable, reliable,
--   fast, inexpensive data storage infrastructure that Amazon uses to run
--   its own global network of web sites. The service aims to maximize
--   benefits of scale and to pass those benefits on to developers.
module Network.AWS.S3

-- | API version <tt>2006-03-01</tt> of the Amazon Simple Storage Service
--   SDK configuration.
s3 :: Service

-- | Prism for BucketAlreadyOwnedByYou' errors.
_BucketAlreadyOwnedByYou :: AsError a => Getting (First ServiceError) a ServiceError

-- | This operation is not allowed against this storage tier
_ObjectAlreadyInActiveTierError :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_BucketAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError

-- | The source object of the COPY operation is not in the active tier and
--   is only stored in Amazon Glacier.
_ObjectNotInActiveTierError :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified multipart upload does not exist.
_NoSuchUpload :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified bucket does not exist.
_NoSuchBucket :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified key does not exist.
_NoSuchKey :: AsError a => Getting (First ServiceError) a ServiceError

-- | Polls <a>HeadObject</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
objectNotExists :: Wait HeadObject

-- | Polls <a>HeadBucket</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
bucketExists :: Wait HeadBucket

-- | Polls <a>HeadObject</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
objectExists :: Wait HeadObject

-- | Polls <a>HeadBucket</a> every 5 seconds until a successful state is
--   reached. An error is returned after 20 failed checks.
bucketNotExists :: Wait HeadBucket

-- | The available AWS regions.
data Region :: *

-- | US East ('us-east-1').
NorthVirginia :: Region

-- | US East ('us-east-2').
Ohio :: Region

-- | US West ('us-west-1').
NorthCalifornia :: Region

-- | US West ('us-west-2').
Oregon :: Region

-- | Asia Pacific ('ap-northeast-1').
Tokyo :: Region

-- | Asia Pacific ('ap-northeast-2').
Seoul :: Region

-- | Asia Pacific ('ap-south-1').
Mumbai :: Region

-- | Asia Pacific ('ap-southeast-1').
Singapore :: Region

-- | Asia Pacific ('ap-southeast-2').
Sydney :: Region

-- | South America ('sa-east-1').
SaoPaulo :: Region

-- | EU ('eu-west-1').
Ireland :: Region

-- | EU ('eu-central-1').
Frankfurt :: Region

-- | US GovCloud ('us-gov-west-1').
GovCloud :: Region

-- | US GovCloud FIPS (S3 Only, 'fips-us-gov-west-1').
GovCloudFIPS :: Region

-- | China ('cn-north-1').
Beijing :: Region
newtype BucketName
BucketName :: Text -> BucketName
newtype ETag
ETag :: ByteString -> ETag
newtype ObjectVersionId
ObjectVersionId :: Text -> ObjectVersionId
newtype LocationConstraint
LocationConstraint :: Region -> LocationConstraint
[constraintRegion] :: LocationConstraint -> Region
_LocationConstraint :: Iso' LocationConstraint Region
type Delimiter = Char
newtype ObjectKey
ObjectKey :: Text -> ObjectKey
_ObjectKey :: Iso' ObjectKey Text

-- | Traverse the prefix of an object key.
--   
--   The prefix is classified as the entirety of the object key minus the
--   name. A leading prefix in the presence of a name, and no other
--   delimiters is interpreted as a blank prefix.
--   
--   <pre>
--   &gt;&gt;&gt; "/home/jsmith/base.wiki" ^? keyPrefix '/'
--   Just "/home/jsmith"
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; "/home/jsmith/" ^? keyPrefix '/'
--   Just "/home/jsmith"
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; "/home" ^? keyPrefix '/'
--   Nothing
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; "/" ^? keyPrefix '/'
--   Nothing
--   </pre>
keyPrefix :: Delimiter -> Traversal' ObjectKey Text

-- | Traverse the name of an object key.
keyName :: Delimiter -> Traversal' ObjectKey Text

-- | Traverse the path components of an object key using the specified
--   delimiter.
keyComponents :: Delimiter -> IndexedTraversal' Int ObjectKey Text

-- | Get the S3 website endpoint for a specific region.
--   
--   When you configure your bucket as a website, the website is available
--   using this region-specific website endpoint.
--   
--   <i>See:</i> <a>Amazon Simple Storage Service Website Endpoints</a>.
getWebsiteEndpoint :: Region -> Text
data AnalyticsS3ExportFileFormat
CSV :: AnalyticsS3ExportFileFormat
data BucketAccelerateStatus
BASEnabled :: BucketAccelerateStatus
BASSuspended :: BucketAccelerateStatus
data BucketCannedACL
BAuthenticatedRead :: BucketCannedACL
BPrivate :: BucketCannedACL
BPublicRead :: BucketCannedACL
BPublicReadWrite :: BucketCannedACL
data BucketLogsPermission
FullControl :: BucketLogsPermission
Read :: BucketLogsPermission
Write :: BucketLogsPermission
data BucketVersioningStatus
BVSEnabled :: BucketVersioningStatus
BVSSuspended :: BucketVersioningStatus

-- | Requests Amazon S3 to encode the object keys in the response and
--   specifies the encoding method to use. An object key may contain any
--   Unicode character; however, XML 1.0 parser cannot parse some
--   characters, such as characters with an ASCII value from 0 to 10. For
--   characters that are not supported in XML 1.0, you can add this
--   parameter to request that Amazon S3 encode the keys in the response.
data EncodingType
URL :: EncodingType

-- | Bucket event for which to send notifications.
data Event
S3ObjectCreated :: Event
S3ObjectCreatedCompleteMultipartUpload :: Event
S3ObjectCreatedCopy :: Event
S3ObjectCreatedPost :: Event
S3ObjectCreatedPut :: Event
S3ObjectRemoved :: Event
S3ObjectRemovedDelete :: Event
S3ObjectRemovedDeleteMarkerCreated :: Event
S3ReducedRedundancyLostObject :: Event
data ExpirationStatus
ESDisabled :: ExpirationStatus
ESEnabled :: ExpirationStatus
data FilterRuleName
Prefix :: FilterRuleName
Suffix :: FilterRuleName
data InventoryFormat
IFCSV :: InventoryFormat
data InventoryFrequency
Daily :: InventoryFrequency
Weekly :: InventoryFrequency
data InventoryIncludedObjectVersions
All :: InventoryIncludedObjectVersions
Current :: InventoryIncludedObjectVersions
data InventoryOptionalField
FieldETag :: InventoryOptionalField
FieldIsMultipartUploaded :: InventoryOptionalField
FieldLastModifiedDate :: InventoryOptionalField
FieldReplicationStatus :: InventoryOptionalField
FieldSize :: InventoryOptionalField
FieldStorageClass :: InventoryOptionalField
data MFADelete
MDDisabled :: MFADelete
MDEnabled :: MFADelete
data MFADeleteStatus
MDSDisabled :: MFADeleteStatus
MDSEnabled :: MFADeleteStatus
data MetadataDirective
MDCopy :: MetadataDirective
MDReplace :: MetadataDirective
data ObjectCannedACL
OAWSExecRead :: ObjectCannedACL
OAuthenticatedRead :: ObjectCannedACL
OBucketOwnerFullControl :: ObjectCannedACL
OBucketOwnerRead :: ObjectCannedACL
OPrivate :: ObjectCannedACL
OPublicRead :: ObjectCannedACL
OPublicReadWrite :: ObjectCannedACL
data ObjectStorageClass
OSCGlacier :: ObjectStorageClass
OSCReducedRedundancy :: ObjectStorageClass
OSCStandard :: ObjectStorageClass
OSCStandardIA :: ObjectStorageClass
data ObjectVersionStorageClass
OVSCStandard :: ObjectVersionStorageClass
data Payer
BucketOwner :: Payer
Requester :: Payer
data Permission
PFullControl :: Permission
PRead :: Permission
PReadAcp :: Permission
PWrite :: Permission
PWriteAcp :: Permission
data Protocol
HTTP :: Protocol
HTTPS :: Protocol
data ReplicationRuleStatus
Disabled :: ReplicationRuleStatus
Enabled :: ReplicationRuleStatus
data ReplicationStatus
Complete :: ReplicationStatus
Failed :: ReplicationStatus
Pending :: ReplicationStatus
Replica :: ReplicationStatus

-- | If present, indicates that the requester was successfully charged for
--   the request.
data RequestCharged
RCRequester :: RequestCharged

-- | Confirms that the requester knows that she or he will be charged for
--   the request. Bucket owners need not specify this parameter in their
--   requests. Documentation on downloading objects from requester pays
--   buckets can be found at
--   <a>http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html</a>
data RequestPayer
RPRequester :: RequestPayer
data ServerSideEncryption
AES256 :: ServerSideEncryption
AWSKMS :: ServerSideEncryption
data StorageClass
ReducedRedundancy :: StorageClass
Standard :: StorageClass
StandardIA :: StorageClass
data StorageClassAnalysisSchemaVersion
V1 :: StorageClassAnalysisSchemaVersion
data TaggingDirective
Copy :: TaggingDirective
Replace :: TaggingDirective
data Tier
TBulk :: Tier
TExpedited :: Tier
TStandard :: Tier
data TransitionStorageClass
TSCGlacier :: TransitionStorageClass
TSCStandardIA :: TransitionStorageClass
data Type
AmazonCustomerByEmail :: Type
CanonicalUser :: Type
Group :: Type

-- | Specifies the days since the initiation of an Incomplete Multipart
--   Upload that Lifecycle will wait before permanently removing all parts
--   of the upload.
--   
--   <i>See:</i> <a>abortIncompleteMultipartUpload</a> smart constructor.
data AbortIncompleteMultipartUpload

-- | Creates a value of <a>AbortIncompleteMultipartUpload</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aimuDaysAfterInitiation</a> - Indicates the number of days that
--   must pass since initiation for Lifecycle to abort an Incomplete
--   Multipart Upload.</li>
--   </ul>
abortIncompleteMultipartUpload :: AbortIncompleteMultipartUpload

-- | Indicates the number of days that must pass since initiation for
--   Lifecycle to abort an Incomplete Multipart Upload.
aimuDaysAfterInitiation :: Lens' AbortIncompleteMultipartUpload (Maybe Int)

-- | <i>See:</i> <a>accelerateConfiguration</a> smart constructor.
data AccelerateConfiguration

-- | Creates a value of <a>AccelerateConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acStatus</a> - The accelerate configuration of the bucket.</li>
--   </ul>
accelerateConfiguration :: AccelerateConfiguration

-- | The accelerate configuration of the bucket.
acStatus :: Lens' AccelerateConfiguration (Maybe BucketAccelerateStatus)

-- | <i>See:</i> <a>accessControlPolicy</a> smart constructor.
data AccessControlPolicy

-- | Creates a value of <a>AccessControlPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acpGrants</a> - A list of grants.</li>
--   <li><a>acpOwner</a> - Undocumented member.</li>
--   </ul>
accessControlPolicy :: AccessControlPolicy

-- | A list of grants.
acpGrants :: Lens' AccessControlPolicy [Grant]

-- | Undocumented member.
acpOwner :: Lens' AccessControlPolicy (Maybe Owner)

-- | <i>See:</i> <a>analyticsAndOperator</a> smart constructor.
data AnalyticsAndOperator

-- | Creates a value of <a>AnalyticsAndOperator</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaoPrefix</a> - The prefix to use when evaluating an AND
--   predicate.</li>
--   <li><a>aaoTags</a> - The list of tags to use when evaluating an AND
--   predicate.</li>
--   </ul>
analyticsAndOperator :: AnalyticsAndOperator

-- | The prefix to use when evaluating an AND predicate.
aaoPrefix :: Lens' AnalyticsAndOperator (Maybe Text)

-- | The list of tags to use when evaluating an AND predicate.
aaoTags :: Lens' AnalyticsAndOperator [Tag]

-- | <i>See:</i> <a>analyticsConfiguration</a> smart constructor.
data AnalyticsConfiguration

-- | Creates a value of <a>AnalyticsConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acFilter</a> - The filter used to describe a set of objects for
--   analyses. A filter must have exactly one prefix, one tag, or one
--   conjunction (AnalyticsAndOperator). If no filter is provided, all
--   objects will be considered in any analysis.</li>
--   <li><a>acId</a> - The identifier used to represent an analytics
--   configuration.</li>
--   <li><a>acStorageClassAnalysis</a> - If present, it indicates that data
--   related to access patterns will be collected and made available to
--   analyze the tradeoffs between different storage classes.</li>
--   </ul>
analyticsConfiguration :: Text -> StorageClassAnalysis -> AnalyticsConfiguration

-- | The filter used to describe a set of objects for analyses. A filter
--   must have exactly one prefix, one tag, or one conjunction
--   (AnalyticsAndOperator). If no filter is provided, all objects will be
--   considered in any analysis.
acFilter :: Lens' AnalyticsConfiguration (Maybe AnalyticsFilter)

-- | The identifier used to represent an analytics configuration.
acId :: Lens' AnalyticsConfiguration Text

-- | If present, it indicates that data related to access patterns will be
--   collected and made available to analyze the tradeoffs between
--   different storage classes.
acStorageClassAnalysis :: Lens' AnalyticsConfiguration StorageClassAnalysis

-- | <i>See:</i> <a>analyticsExportDestination</a> smart constructor.
data AnalyticsExportDestination

-- | Creates a value of <a>AnalyticsExportDestination</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aedS3BucketDestination</a> - A destination signifying output to
--   an S3 bucket.</li>
--   </ul>
analyticsExportDestination :: AnalyticsS3BucketDestination -> AnalyticsExportDestination

-- | A destination signifying output to an S3 bucket.
aedS3BucketDestination :: Lens' AnalyticsExportDestination AnalyticsS3BucketDestination

-- | <i>See:</i> <a>analyticsFilter</a> smart constructor.
data AnalyticsFilter

-- | Creates a value of <a>AnalyticsFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>afTag</a> - The tag to use when evaluating an analytics
--   filter.</li>
--   <li><a>afPrefix</a> - The prefix to use when evaluating an analytics
--   filter.</li>
--   <li><a>afAnd</a> - A conjunction (logical AND) of predicates, which is
--   used in evaluating an analytics filter. The operator must have at
--   least two predicates.</li>
--   </ul>
analyticsFilter :: AnalyticsFilter

-- | The tag to use when evaluating an analytics filter.
afTag :: Lens' AnalyticsFilter (Maybe Tag)

-- | The prefix to use when evaluating an analytics filter.
afPrefix :: Lens' AnalyticsFilter (Maybe Text)

-- | A conjunction (logical AND) of predicates, which is used in evaluating
--   an analytics filter. The operator must have at least two predicates.
afAnd :: Lens' AnalyticsFilter (Maybe AnalyticsAndOperator)

-- | <i>See:</i> <a>analyticsS3BucketDestination</a> smart constructor.
data AnalyticsS3BucketDestination

-- | Creates a value of <a>AnalyticsS3BucketDestination</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asbdBucketAccountId</a> - The account ID that owns the
--   destination bucket. If no account ID is provided, the owner will not
--   be validated prior to exporting data.</li>
--   <li><a>asbdPrefix</a> - The prefix to use when exporting data. The
--   exported data begins with this prefix.</li>
--   <li><a>asbdFormat</a> - The file format used when exporting data to
--   Amazon S3.</li>
--   <li><a>asbdBucket</a> - The Amazon resource name (ARN) of the bucket
--   to which data is exported.</li>
--   </ul>
analyticsS3BucketDestination :: AnalyticsS3ExportFileFormat -> BucketName -> AnalyticsS3BucketDestination

-- | The account ID that owns the destination bucket. If no account ID is
--   provided, the owner will not be validated prior to exporting data.
asbdBucketAccountId :: Lens' AnalyticsS3BucketDestination (Maybe Text)

-- | The prefix to use when exporting data. The exported data begins with
--   this prefix.
asbdPrefix :: Lens' AnalyticsS3BucketDestination (Maybe Text)

-- | The file format used when exporting data to Amazon S3.
asbdFormat :: Lens' AnalyticsS3BucketDestination AnalyticsS3ExportFileFormat

-- | The Amazon resource name (ARN) of the bucket to which data is
--   exported.
asbdBucket :: Lens' AnalyticsS3BucketDestination BucketName

-- | <i>See:</i> <a>bucket</a> smart constructor.
data Bucket

-- | Creates a value of <a>Bucket</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bCreationDate</a> - Date the bucket was created.</li>
--   <li><a>bName</a> - The name of the bucket.</li>
--   </ul>
bucket :: UTCTime -> BucketName -> Bucket

-- | Date the bucket was created.
bCreationDate :: Lens' Bucket UTCTime

-- | The name of the bucket.
bName :: Lens' Bucket BucketName

-- | <i>See:</i> <a>bucketLifecycleConfiguration</a> smart constructor.
data BucketLifecycleConfiguration

-- | Creates a value of <a>BucketLifecycleConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blcRules</a> - Undocumented member.</li>
--   </ul>
bucketLifecycleConfiguration :: BucketLifecycleConfiguration

-- | Undocumented member.
blcRules :: Lens' BucketLifecycleConfiguration [LifecycleRule]

-- | <i>See:</i> <a>bucketLoggingStatus</a> smart constructor.
data BucketLoggingStatus

-- | Creates a value of <a>BucketLoggingStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blsLoggingEnabled</a> - Undocumented member.</li>
--   </ul>
bucketLoggingStatus :: BucketLoggingStatus

-- | Undocumented member.
blsLoggingEnabled :: Lens' BucketLoggingStatus (Maybe LoggingEnabled)

-- | <i>See:</i> <a>corsConfiguration</a> smart constructor.
data CORSConfiguration

-- | Creates a value of <a>CORSConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccCORSRules</a> - Undocumented member.</li>
--   </ul>
corsConfiguration :: CORSConfiguration

-- | Undocumented member.
ccCORSRules :: Lens' CORSConfiguration [CORSRule]

-- | <i>See:</i> <a>corsRule</a> smart constructor.
data CORSRule

-- | Creates a value of <a>CORSRule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crMaxAgeSeconds</a> - The time in seconds that your browser is
--   to cache the preflight response for the specified resource.</li>
--   <li><a>crAllowedHeaders</a> - Specifies which headers are allowed in a
--   pre-flight OPTIONS request.</li>
--   <li><a>crExposeHeaders</a> - One or more headers in the response that
--   you want customers to be able to access from their applications (for
--   example, from a JavaScript XMLHttpRequest object).</li>
--   <li><a>crAllowedMethods</a> - Identifies HTTP methods that the
--   domain/origin specified in the rule is allowed to execute.</li>
--   <li><a>crAllowedOrigins</a> - One or more origins you want customers
--   to be able to access the bucket from.</li>
--   </ul>
corsRule :: CORSRule

-- | The time in seconds that your browser is to cache the preflight
--   response for the specified resource.
crMaxAgeSeconds :: Lens' CORSRule (Maybe Int)

-- | Specifies which headers are allowed in a pre-flight OPTIONS request.
crAllowedHeaders :: Lens' CORSRule [Text]

-- | One or more headers in the response that you want customers to be able
--   to access from their applications (for example, from a JavaScript
--   XMLHttpRequest object).
crExposeHeaders :: Lens' CORSRule [Text]

-- | Identifies HTTP methods that the domain/origin specified in the rule
--   is allowed to execute.
crAllowedMethods :: Lens' CORSRule [Text]

-- | One or more origins you want customers to be able to access the bucket
--   from.
crAllowedOrigins :: Lens' CORSRule [Text]

-- | <i>See:</i> <a>commonPrefix</a> smart constructor.
data CommonPrefix

-- | Creates a value of <a>CommonPrefix</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpPrefix</a> - Undocumented member.</li>
--   </ul>
commonPrefix :: CommonPrefix

-- | Undocumented member.
cpPrefix :: Lens' CommonPrefix (Maybe Text)

-- | <i>See:</i> <a>completedMultipartUpload</a> smart constructor.
data CompletedMultipartUpload

-- | Creates a value of <a>CompletedMultipartUpload</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmuParts</a> - Undocumented member.</li>
--   </ul>
completedMultipartUpload :: CompletedMultipartUpload

-- | Undocumented member.
cmuParts :: Lens' CompletedMultipartUpload (Maybe (NonEmpty CompletedPart))

-- | <i>See:</i> <a>completedPart</a> smart constructor.
data CompletedPart

-- | Creates a value of <a>CompletedPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpPartNumber</a> - Part number that identifies the part. This
--   is a positive integer between 1 and 10,000.</li>
--   <li><a>cpETag</a> - Entity tag returned when the part was
--   uploaded.</li>
--   </ul>
completedPart :: Int -> ETag -> CompletedPart

-- | Part number that identifies the part. This is a positive integer
--   between 1 and 10,000.
cpPartNumber :: Lens' CompletedPart Int

-- | Entity tag returned when the part was uploaded.
cpETag :: Lens' CompletedPart ETag

-- | <i>See:</i> <a>condition</a> smart constructor.
data Condition

-- | Creates a value of <a>Condition</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cKeyPrefixEquals</a> - The object key name prefix when the
--   redirect is applied. For example, to redirect requests for
--   ExamplePage.html, the key prefix will be ExamplePage.html. To redirect
--   request for all pages with the prefix docs<i>, the key prefix will be
--   </i>docs, which identifies all objects in the docs/ folder. Required
--   when the parent element Condition is specified and sibling
--   HttpErrorCodeReturnedEquals is not specified. If both conditions are
--   specified, both must be true for the redirect to be applied.</li>
--   <li><a>cHTTPErrorCodeReturnedEquals</a> - The HTTP error code when the
--   redirect is applied. In the event of an error, if the error code
--   equals this value, then the specified redirect is applied. Required
--   when parent element Condition is specified and sibling KeyPrefixEquals
--   is not specified. If both are specified, then both must be true for
--   the redirect to be applied.</li>
--   </ul>
condition :: Condition

-- | The object key name prefix when the redirect is applied. For example,
--   to redirect requests for ExamplePage.html, the key prefix will be
--   ExamplePage.html. To redirect request for all pages with the prefix
--   docs<i>, the key prefix will be </i>docs, which identifies all objects
--   in the docs/ folder. Required when the parent element Condition is
--   specified and sibling HttpErrorCodeReturnedEquals is not specified. If
--   both conditions are specified, both must be true for the redirect to
--   be applied.
cKeyPrefixEquals :: Lens' Condition (Maybe Text)

-- | The HTTP error code when the redirect is applied. In the event of an
--   error, if the error code equals this value, then the specified
--   redirect is applied. Required when parent element Condition is
--   specified and sibling KeyPrefixEquals is not specified. If both are
--   specified, then both must be true for the redirect to be applied.
cHTTPErrorCodeReturnedEquals :: Lens' Condition (Maybe Text)

-- | <i>See:</i> <a>copyObjectResult</a> smart constructor.
data CopyObjectResult

-- | Creates a value of <a>CopyObjectResult</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>corETag</a> - Undocumented member.</li>
--   <li><a>corLastModified</a> - Undocumented member.</li>
--   </ul>
copyObjectResult :: CopyObjectResult

-- | Undocumented member.
corETag :: Lens' CopyObjectResult (Maybe ETag)

-- | Undocumented member.
corLastModified :: Lens' CopyObjectResult (Maybe UTCTime)

-- | <i>See:</i> <a>copyPartResult</a> smart constructor.
data CopyPartResult

-- | Creates a value of <a>CopyPartResult</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cprETag</a> - Entity tag of the object.</li>
--   <li><a>cprLastModified</a> - Date and time at which the object was
--   uploaded.</li>
--   </ul>
copyPartResult :: CopyPartResult

-- | Entity tag of the object.
cprETag :: Lens' CopyPartResult (Maybe ETag)

-- | Date and time at which the object was uploaded.
cprLastModified :: Lens' CopyPartResult (Maybe UTCTime)

-- | <i>See:</i> <a>createBucketConfiguration</a> smart constructor.
data CreateBucketConfiguration

-- | Creates a value of <a>CreateBucketConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbcLocationConstraint</a> - Specifies the region where the
--   bucket will be created. If you don't specify a region, the bucket will
--   be created in US Standard.</li>
--   </ul>
createBucketConfiguration :: CreateBucketConfiguration

-- | Specifies the region where the bucket will be created. If you don't
--   specify a region, the bucket will be created in US Standard.
cbcLocationConstraint :: Lens' CreateBucketConfiguration (Maybe LocationConstraint)

-- | <i>See:</i> <a>delete'</a> smart constructor.
data Delete

-- | Creates a value of <a>Delete</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dQuiet</a> - Element to enable quiet mode for the request. When
--   you add this element, you must set its value to true.</li>
--   <li><a>dObjects</a> - Undocumented member.</li>
--   </ul>
delete' :: Delete

-- | Element to enable quiet mode for the request. When you add this
--   element, you must set its value to true.
dQuiet :: Lens' Delete (Maybe Bool)

-- | Undocumented member.
dObjects :: Lens' Delete [ObjectIdentifier]

-- | <i>See:</i> <a>deleteMarkerEntry</a> smart constructor.
data DeleteMarkerEntry

-- | Creates a value of <a>DeleteMarkerEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmeVersionId</a> - Version ID of an object.</li>
--   <li><a>dmeIsLatest</a> - Specifies whether the object is (true) or is
--   not (false) the latest version of an object.</li>
--   <li><a>dmeOwner</a> - Undocumented member.</li>
--   <li><a>dmeKey</a> - The object key.</li>
--   <li><a>dmeLastModified</a> - Date and time the object was last
--   modified.</li>
--   </ul>
deleteMarkerEntry :: DeleteMarkerEntry

-- | Version ID of an object.
dmeVersionId :: Lens' DeleteMarkerEntry (Maybe ObjectVersionId)

-- | Specifies whether the object is (true) or is not (false) the latest
--   version of an object.
dmeIsLatest :: Lens' DeleteMarkerEntry (Maybe Bool)

-- | Undocumented member.
dmeOwner :: Lens' DeleteMarkerEntry (Maybe Owner)

-- | The object key.
dmeKey :: Lens' DeleteMarkerEntry (Maybe ObjectKey)

-- | Date and time the object was last modified.
dmeLastModified :: Lens' DeleteMarkerEntry (Maybe UTCTime)

-- | <i>See:</i> <a>deletedObject</a> smart constructor.
data DeletedObject

-- | Creates a value of <a>DeletedObject</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dVersionId</a> - Undocumented member.</li>
--   <li><a>dDeleteMarker</a> - Undocumented member.</li>
--   <li><a>dDeleteMarkerVersionId</a> - Undocumented member.</li>
--   <li><a>dKey</a> - Undocumented member.</li>
--   </ul>
deletedObject :: DeletedObject

-- | Undocumented member.
dVersionId :: Lens' DeletedObject (Maybe ObjectVersionId)

-- | Undocumented member.
dDeleteMarker :: Lens' DeletedObject (Maybe Bool)

-- | Undocumented member.
dDeleteMarkerVersionId :: Lens' DeletedObject (Maybe Text)

-- | Undocumented member.
dKey :: Lens' DeletedObject (Maybe ObjectKey)

-- | <i>See:</i> <a>destination</a> smart constructor.
data Destination

-- | Creates a value of <a>Destination</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>dBucket</a> - Amazon resource name (ARN) of the bucket where
--   you want Amazon S3 to store replicas of the object identified by the
--   rule.</li>
--   </ul>
destination :: BucketName -> Destination

-- | The class of storage used to store the object.
dStorageClass :: Lens' Destination (Maybe StorageClass)

-- | Amazon resource name (ARN) of the bucket where you want Amazon S3 to
--   store replicas of the object identified by the rule.
dBucket :: Lens' Destination BucketName

-- | <i>See:</i> <a>errorDocument</a> smart constructor.
data ErrorDocument

-- | Creates a value of <a>ErrorDocument</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edKey</a> - The object key name to use when a 4XX class error
--   occurs.</li>
--   </ul>
errorDocument :: ObjectKey -> ErrorDocument

-- | The object key name to use when a 4XX class error occurs.
edKey :: Lens' ErrorDocument ObjectKey

-- | Container for key value pair that defines the criteria for the filter
--   rule.
--   
--   <i>See:</i> <a>filterRule</a> smart constructor.
data FilterRule

-- | Creates a value of <a>FilterRule</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>frValue</a> - Undocumented member.</li>
--   <li><a>frName</a> - <a>Configuring Event Notifications</a></li>
--   </ul>
filterRule :: FilterRule

-- | Undocumented member.
frValue :: Lens' FilterRule (Maybe Text)

-- | <a>Configuring Event Notifications</a>
frName :: Lens' FilterRule (Maybe FilterRuleName)

-- | <i>See:</i> <a>glacierJobParameters</a> smart constructor.
data GlacierJobParameters

-- | Creates a value of <a>GlacierJobParameters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gjpTier</a> - Glacier retrieval tier at which the restore will
--   be processed.</li>
--   </ul>
glacierJobParameters :: Tier -> GlacierJobParameters

-- | Glacier retrieval tier at which the restore will be processed.
gjpTier :: Lens' GlacierJobParameters Tier

-- | <i>See:</i> <a>grant</a> smart constructor.
data Grant

-- | Creates a value of <a>Grant</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gPermission</a> - Specifies the permission given to the
--   grantee.</li>
--   <li><a>gGrantee</a> - Undocumented member.</li>
--   </ul>
grant :: Grant

-- | Specifies the permission given to the grantee.
gPermission :: Lens' Grant (Maybe Permission)

-- | Undocumented member.
gGrantee :: Lens' Grant (Maybe Grantee)

-- | <i>See:</i> <a>grantee</a> smart constructor.
data Grantee

-- | Creates a value of <a>Grantee</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gURI</a> - URI of the grantee group.</li>
--   <li><a>gEmailAddress</a> - Email address of the grantee.</li>
--   <li><a>gDisplayName</a> - Screen name of the grantee.</li>
--   <li><a>gId</a> - The canonical user ID of the grantee.</li>
--   <li><a>gType</a> - Type of grantee</li>
--   </ul>
grantee :: Type -> Grantee

-- | URI of the grantee group.
gURI :: Lens' Grantee (Maybe Text)

-- | Email address of the grantee.
gEmailAddress :: Lens' Grantee (Maybe Text)

-- | Screen name of the grantee.
gDisplayName :: Lens' Grantee (Maybe Text)

-- | The canonical user ID of the grantee.
gId :: Lens' Grantee (Maybe Text)

-- | Type of grantee
gType :: Lens' Grantee Type

-- | <i>See:</i> <a>indexDocument</a> smart constructor.
data IndexDocument

-- | Creates a value of <a>IndexDocument</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idSuffix</a> - A suffix that is appended to a request that is
--   for a directory on the website endpoint (e.g. if the suffix is
--   index.html and you make a request to samplebucket<i>images</i> the
--   data that is returned will be for the object with the key name
--   images/index.html) The suffix must not be empty and must not include a
--   slash character.</li>
--   </ul>
indexDocument :: Text -> IndexDocument

-- | A suffix that is appended to a request that is for a directory on the
--   website endpoint (e.g. if the suffix is index.html and you make a
--   request to samplebucket<i>images</i> the data that is returned will be
--   for the object with the key name images/index.html) The suffix must
--   not be empty and must not include a slash character.
idSuffix :: Lens' IndexDocument Text

-- | <i>See:</i> <a>initiator</a> smart constructor.
data Initiator

-- | Creates a value of <a>Initiator</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iDisplayName</a> - Name of the Principal.</li>
--   <li><a>iId</a> - If the principal is an AWS account, it provides the
--   Canonical User ID. If the principal is an IAM User, it provides a user
--   ARN value.</li>
--   </ul>
initiator :: Initiator

-- | Name of the Principal.
iDisplayName :: Lens' Initiator (Maybe Text)

-- | If the principal is an AWS account, it provides the Canonical User ID.
--   If the principal is an IAM User, it provides a user ARN value.
iId :: Lens' Initiator (Maybe Text)

-- | <i>See:</i> <a>inventoryConfiguration</a> smart constructor.
data InventoryConfiguration

-- | Creates a value of <a>InventoryConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icOptionalFields</a> - Contains the optional fields that are
--   included in the inventory results.</li>
--   <li><a>icFilter</a> - Specifies an inventory filter. The inventory
--   only includes objects that meet the filter's criteria.</li>
--   <li><a>icDestination</a> - Contains information about where to publish
--   the inventory results.</li>
--   <li><a>icIsEnabled</a> - Specifies whether the inventory is enabled or
--   disabled.</li>
--   <li><a>icId</a> - The ID used to identify the inventory
--   configuration.</li>
--   <li><a>icIncludedObjectVersions</a> - Specifies which object
--   version(s) to included in the inventory results.</li>
--   <li><a>icSchedule</a> - Specifies the schedule for generating
--   inventory results.</li>
--   </ul>
inventoryConfiguration :: InventoryDestination -> Bool -> Text -> InventoryIncludedObjectVersions -> InventorySchedule -> InventoryConfiguration

-- | Contains the optional fields that are included in the inventory
--   results.
icOptionalFields :: Lens' InventoryConfiguration [InventoryOptionalField]

-- | Specifies an inventory filter. The inventory only includes objects
--   that meet the filter's criteria.
icFilter :: Lens' InventoryConfiguration (Maybe InventoryFilter)

-- | Contains information about where to publish the inventory results.
icDestination :: Lens' InventoryConfiguration InventoryDestination

-- | Specifies whether the inventory is enabled or disabled.
icIsEnabled :: Lens' InventoryConfiguration Bool

-- | The ID used to identify the inventory configuration.
icId :: Lens' InventoryConfiguration Text

-- | Specifies which object version(s) to included in the inventory
--   results.
icIncludedObjectVersions :: Lens' InventoryConfiguration InventoryIncludedObjectVersions

-- | Specifies the schedule for generating inventory results.
icSchedule :: Lens' InventoryConfiguration InventorySchedule

-- | <i>See:</i> <a>inventoryDestination</a> smart constructor.
data InventoryDestination

-- | Creates a value of <a>InventoryDestination</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idS3BucketDestination</a> - Contains the bucket name, file
--   format, bucket owner (optional), and prefix (optional) where inventory
--   results are published.</li>
--   </ul>
inventoryDestination :: InventoryS3BucketDestination -> InventoryDestination

-- | Contains the bucket name, file format, bucket owner (optional), and
--   prefix (optional) where inventory results are published.
idS3BucketDestination :: Lens' InventoryDestination InventoryS3BucketDestination

-- | <i>See:</i> <a>inventoryFilter</a> smart constructor.
data InventoryFilter

-- | Creates a value of <a>InventoryFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifPrefix</a> - The prefix that an object must have to be
--   included in the inventory results.</li>
--   </ul>
inventoryFilter :: Text -> InventoryFilter

-- | The prefix that an object must have to be included in the inventory
--   results.
ifPrefix :: Lens' InventoryFilter Text

-- | <i>See:</i> <a>inventoryS3BucketDestination</a> smart constructor.
data InventoryS3BucketDestination

-- | Creates a value of <a>InventoryS3BucketDestination</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isbdPrefix</a> - The prefix that is prepended to all inventory
--   results.</li>
--   <li><a>isbdAccountId</a> - The ID of the account that owns the
--   destination bucket.</li>
--   <li><a>isbdBucket</a> - The Amazon resource name (ARN) of the bucket
--   where inventory results will be published.</li>
--   <li><a>isbdFormat</a> - Specifies the output format of the inventory
--   results.</li>
--   </ul>
inventoryS3BucketDestination :: BucketName -> InventoryFormat -> InventoryS3BucketDestination

-- | The prefix that is prepended to all inventory results.
isbdPrefix :: Lens' InventoryS3BucketDestination (Maybe Text)

-- | The ID of the account that owns the destination bucket.
isbdAccountId :: Lens' InventoryS3BucketDestination (Maybe Text)

-- | The Amazon resource name (ARN) of the bucket where inventory results
--   will be published.
isbdBucket :: Lens' InventoryS3BucketDestination BucketName

-- | Specifies the output format of the inventory results.
isbdFormat :: Lens' InventoryS3BucketDestination InventoryFormat

-- | <i>See:</i> <a>inventorySchedule</a> smart constructor.
data InventorySchedule

-- | Creates a value of <a>InventorySchedule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isFrequency</a> - Specifies how frequently inventory results
--   are produced.</li>
--   </ul>
inventorySchedule :: InventoryFrequency -> InventorySchedule

-- | Specifies how frequently inventory results are produced.
isFrequency :: Lens' InventorySchedule InventoryFrequency

-- | Container for specifying the AWS Lambda notification configuration.
--   
--   <i>See:</i> <a>lambdaFunctionConfiguration</a> smart constructor.
data LambdaFunctionConfiguration

-- | Creates a value of <a>LambdaFunctionConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lfcId</a> - Undocumented member.</li>
--   <li><a>lfcFilter</a> - Undocumented member.</li>
--   <li><a>lfcLambdaFunctionARN</a> - Lambda cloud function ARN that
--   Amazon S3 can invoke when it detects events of the specified
--   type.</li>
--   <li><a>lfcEvents</a> - Undocumented member.</li>
--   </ul>
lambdaFunctionConfiguration :: Text -> LambdaFunctionConfiguration

-- | Undocumented member.
lfcId :: Lens' LambdaFunctionConfiguration (Maybe Text)

-- | Undocumented member.
lfcFilter :: Lens' LambdaFunctionConfiguration (Maybe NotificationConfigurationFilter)

-- | Lambda cloud function ARN that Amazon S3 can invoke when it detects
--   events of the specified type.
lfcLambdaFunctionARN :: Lens' LambdaFunctionConfiguration Text

-- | Undocumented member.
lfcEvents :: Lens' LambdaFunctionConfiguration [Event]

-- | <i>See:</i> <a>lifecycleExpiration</a> smart constructor.
data LifecycleExpiration

-- | Creates a value of <a>LifecycleExpiration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>leDays</a> - Indicates the lifetime, in days, of the objects
--   that are subject to the rule. The value must be a non-zero positive
--   integer.</li>
--   <li><a>leDate</a> - Indicates at what date the object is to be moved
--   or deleted. Should be in GMT ISO 8601 Format.</li>
--   <li><a>leExpiredObjectDeleteMarker</a> - Indicates whether Amazon S3
--   will remove a delete marker with no noncurrent versions. If set to
--   true, the delete marker will be expired; if set to false the policy
--   takes no action. This cannot be specified with Days or Date in a
--   Lifecycle Expiration Policy.</li>
--   </ul>
lifecycleExpiration :: LifecycleExpiration

-- | Indicates the lifetime, in days, of the objects that are subject to
--   the rule. The value must be a non-zero positive integer.
leDays :: Lens' LifecycleExpiration (Maybe Int)

-- | Indicates at what date the object is to be moved or deleted. Should be
--   in GMT ISO 8601 Format.
leDate :: Lens' LifecycleExpiration (Maybe UTCTime)

-- | Indicates whether Amazon S3 will remove a delete marker with no
--   noncurrent versions. If set to true, the delete marker will be
--   expired; if set to false the policy takes no action. This cannot be
--   specified with Days or Date in a Lifecycle Expiration Policy.
leExpiredObjectDeleteMarker :: Lens' LifecycleExpiration (Maybe Bool)

-- | <i>See:</i> <a>lifecycleRule</a> smart constructor.
data LifecycleRule

-- | Creates a value of <a>LifecycleRule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrTransitions</a> - Undocumented member.</li>
--   <li><a>lrNoncurrentVersionExpiration</a> - Undocumented member.</li>
--   <li><a>lrPrefix</a> - Prefix identifying one or more objects to which
--   the rule applies. This is deprecated; use Filter instead.</li>
--   <li><a>lrNoncurrentVersionTransitions</a> - Undocumented member.</li>
--   <li><a>lrExpiration</a> - Undocumented member.</li>
--   <li><a>lrId</a> - Unique identifier for the rule. The value cannot be
--   longer than 255 characters.</li>
--   <li><a>lrFilter</a> - Undocumented member.</li>
--   <li><a>lrAbortIncompleteMultipartUpload</a> - Undocumented
--   member.</li>
--   <li><a>lrStatus</a> - If <a>Enabled</a>, the rule is currently being
--   applied. If <a>Disabled</a>, the rule is not currently being
--   applied.</li>
--   </ul>
lifecycleRule :: ExpirationStatus -> LifecycleRule

-- | Undocumented member.
lrTransitions :: Lens' LifecycleRule [Transition]

-- | Undocumented member.
lrNoncurrentVersionExpiration :: Lens' LifecycleRule (Maybe NoncurrentVersionExpiration)

-- | Prefix identifying one or more objects to which the rule applies. This
--   is deprecated; use Filter instead.
lrPrefix :: Lens' LifecycleRule (Maybe Text)

-- | Undocumented member.
lrNoncurrentVersionTransitions :: Lens' LifecycleRule [NoncurrentVersionTransition]

-- | Undocumented member.
lrExpiration :: Lens' LifecycleRule (Maybe LifecycleExpiration)

-- | Unique identifier for the rule. The value cannot be longer than 255
--   characters.
lrId :: Lens' LifecycleRule (Maybe Text)

-- | Undocumented member.
lrFilter :: Lens' LifecycleRule (Maybe LifecycleRuleFilter)

-- | Undocumented member.
lrAbortIncompleteMultipartUpload :: Lens' LifecycleRule (Maybe AbortIncompleteMultipartUpload)

-- | If <a>Enabled</a>, the rule is currently being applied. If
--   <a>Disabled</a>, the rule is not currently being applied.
lrStatus :: Lens' LifecycleRule ExpirationStatus

-- | This is used in a Lifecycle Rule Filter to apply a logical AND to two
--   or more predicates. The Lifecycle Rule will apply to any object
--   matching all of the predicates configured inside the And operator.
--   
--   <i>See:</i> <a>lifecycleRuleAndOperator</a> smart constructor.
data LifecycleRuleAndOperator

-- | Creates a value of <a>LifecycleRuleAndOperator</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lraoPrefix</a> - Undocumented member.</li>
--   <li><a>lraoTags</a> - All of these tags must exist in the object's tag
--   set in order for the rule to apply.</li>
--   </ul>
lifecycleRuleAndOperator :: LifecycleRuleAndOperator

-- | Undocumented member.
lraoPrefix :: Lens' LifecycleRuleAndOperator (Maybe Text)

-- | All of these tags must exist in the object's tag set in order for the
--   rule to apply.
lraoTags :: Lens' LifecycleRuleAndOperator [Tag]

-- | The Filter is used to identify objects that a Lifecycle Rule applies
--   to. A Filter must have exactly one of Prefix, Tag, or And specified.
--   
--   <i>See:</i> <a>lifecycleRuleFilter</a> smart constructor.
data LifecycleRuleFilter

-- | Creates a value of <a>LifecycleRuleFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrfTag</a> - This tag must exist in the object's tag set in
--   order for the rule to apply.</li>
--   <li><a>lrfPrefix</a> - Prefix identifying one or more objects to which
--   the rule applies.</li>
--   <li><a>lrfAnd</a> - Undocumented member.</li>
--   </ul>
lifecycleRuleFilter :: LifecycleRuleFilter

-- | This tag must exist in the object's tag set in order for the rule to
--   apply.
lrfTag :: Lens' LifecycleRuleFilter (Maybe Tag)

-- | Prefix identifying one or more objects to which the rule applies.
lrfPrefix :: Lens' LifecycleRuleFilter (Maybe Text)

-- | Undocumented member.
lrfAnd :: Lens' LifecycleRuleFilter (Maybe LifecycleRuleAndOperator)

-- | <i>See:</i> <a>loggingEnabled</a> smart constructor.
data LoggingEnabled

-- | Creates a value of <a>LoggingEnabled</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>leTargetBucket</a> - Specifies the bucket where you want Amazon
--   S3 to store server access logs. You can have your logs delivered to
--   any bucket that you own, including the same bucket that is being
--   logged. You can also configure multiple buckets to deliver their logs
--   to the same target bucket. In this case you should choose a different
--   TargetPrefix for each source bucket so that the delivered log files
--   can be distinguished by key.</li>
--   <li><a>leTargetGrants</a> - Undocumented member.</li>
--   <li><a>leTargetPrefix</a> - This element lets you specify a prefix for
--   the keys that the log files will be stored under.</li>
--   </ul>
loggingEnabled :: LoggingEnabled

-- | Specifies the bucket where you want Amazon S3 to store server access
--   logs. You can have your logs delivered to any bucket that you own,
--   including the same bucket that is being logged. You can also configure
--   multiple buckets to deliver their logs to the same target bucket. In
--   this case you should choose a different TargetPrefix for each source
--   bucket so that the delivered log files can be distinguished by key.
leTargetBucket :: Lens' LoggingEnabled (Maybe Text)

-- | Undocumented member.
leTargetGrants :: Lens' LoggingEnabled [TargetGrant]

-- | This element lets you specify a prefix for the keys that the log files
--   will be stored under.
leTargetPrefix :: Lens' LoggingEnabled (Maybe Text)

-- | <i>See:</i> <a>metricsAndOperator</a> smart constructor.
data MetricsAndOperator

-- | Creates a value of <a>MetricsAndOperator</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>maoPrefix</a> - The prefix used when evaluating an AND
--   predicate.</li>
--   <li><a>maoTags</a> - The list of tags used when evaluating an AND
--   predicate.</li>
--   </ul>
metricsAndOperator :: MetricsAndOperator

-- | The prefix used when evaluating an AND predicate.
maoPrefix :: Lens' MetricsAndOperator (Maybe Text)

-- | The list of tags used when evaluating an AND predicate.
maoTags :: Lens' MetricsAndOperator [Tag]

-- | <i>See:</i> <a>metricsConfiguration</a> smart constructor.
data MetricsConfiguration

-- | Creates a value of <a>MetricsConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcFilter</a> - Specifies a metrics configuration filter. The
--   metrics configuration will only include objects that meet the filter's
--   criteria. A filter must be a prefix, a tag, or a conjunction
--   (MetricsAndOperator).</li>
--   <li><a>mcId</a> - The ID used to identify the metrics
--   configuration.</li>
--   </ul>
metricsConfiguration :: Text -> MetricsConfiguration

-- | Specifies a metrics configuration filter. The metrics configuration
--   will only include objects that meet the filter's criteria. A filter
--   must be a prefix, a tag, or a conjunction (MetricsAndOperator).
mcFilter :: Lens' MetricsConfiguration (Maybe MetricsFilter)

-- | The ID used to identify the metrics configuration.
mcId :: Lens' MetricsConfiguration Text

-- | <i>See:</i> <a>metricsFilter</a> smart constructor.
data MetricsFilter

-- | Creates a value of <a>MetricsFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mfTag</a> - The tag used when evaluating a metrics filter.</li>
--   <li><a>mfPrefix</a> - The prefix used when evaluating a metrics
--   filter.</li>
--   <li><a>mfAnd</a> - A conjunction (logical AND) of predicates, which is
--   used in evaluating a metrics filter. The operator must have at least
--   two predicates, and an object must match all of the predicates in
--   order for the filter to apply.</li>
--   </ul>
metricsFilter :: MetricsFilter

-- | The tag used when evaluating a metrics filter.
mfTag :: Lens' MetricsFilter (Maybe Tag)

-- | The prefix used when evaluating a metrics filter.
mfPrefix :: Lens' MetricsFilter (Maybe Text)

-- | A conjunction (logical AND) of predicates, which is used in evaluating
--   a metrics filter. The operator must have at least two predicates, and
--   an object must match all of the predicates in order for the filter to
--   apply.
mfAnd :: Lens' MetricsFilter (Maybe MetricsAndOperator)

-- | <i>See:</i> <a>multipartUpload</a> smart constructor.
data MultipartUpload

-- | Creates a value of <a>MultipartUpload</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>muInitiated</a> - Date and time at which the multipart upload
--   was initiated.</li>
--   <li><a>muInitiator</a> - Identifies who initiated the multipart
--   upload.</li>
--   <li><a>muOwner</a> - Undocumented member.</li>
--   <li><a>muKey</a> - Key of the object for which the multipart upload
--   was initiated.</li>
--   <li><a>muStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>muUploadId</a> - Upload ID that identifies the multipart
--   upload.</li>
--   </ul>
multipartUpload :: MultipartUpload

-- | Date and time at which the multipart upload was initiated.
muInitiated :: Lens' MultipartUpload (Maybe UTCTime)

-- | Identifies who initiated the multipart upload.
muInitiator :: Lens' MultipartUpload (Maybe Initiator)

-- | Undocumented member.
muOwner :: Lens' MultipartUpload (Maybe Owner)

-- | Key of the object for which the multipart upload was initiated.
muKey :: Lens' MultipartUpload (Maybe ObjectKey)

-- | The class of storage used to store the object.
muStorageClass :: Lens' MultipartUpload (Maybe StorageClass)

-- | Upload ID that identifies the multipart upload.
muUploadId :: Lens' MultipartUpload (Maybe Text)

-- | Specifies when noncurrent object versions expire. Upon expiration,
--   Amazon S3 permanently deletes the noncurrent object versions. You set
--   this lifecycle configuration action on a bucket that has versioning
--   enabled (or suspended) to request that Amazon S3 delete noncurrent
--   object versions at a specific period in the object's lifetime.
--   
--   <i>See:</i> <a>noncurrentVersionExpiration</a> smart constructor.
data NoncurrentVersionExpiration

-- | Creates a value of <a>NoncurrentVersionExpiration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nveNoncurrentDays</a> - <a>How Amazon S3 Calculates When an
--   Object Became Noncurrent</a></li>
--   </ul>
noncurrentVersionExpiration :: Int -> NoncurrentVersionExpiration

-- | <a>How Amazon S3 Calculates When an Object Became Noncurrent</a>
nveNoncurrentDays :: Lens' NoncurrentVersionExpiration Int

-- | Container for the transition rule that describes when noncurrent
--   objects transition to the STANDARD_IA or GLACIER storage class. If
--   your bucket is versioning-enabled (or versioning is suspended), you
--   can set this action to request that Amazon S3 transition noncurrent
--   object versions to the STANDARD_IA or GLACIER storage class at a
--   specific period in the object's lifetime.
--   
--   <i>See:</i> <a>noncurrentVersionTransition</a> smart constructor.
data NoncurrentVersionTransition

-- | Creates a value of <a>NoncurrentVersionTransition</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nvtNoncurrentDays</a> - <a>How Amazon S3 Calculates When an
--   Object Became Noncurrent</a></li>
--   <li><a>nvtStorageClass</a> - The class of storage used to store the
--   object.</li>
--   </ul>
noncurrentVersionTransition :: Int -> TransitionStorageClass -> NoncurrentVersionTransition

-- | <a>How Amazon S3 Calculates When an Object Became Noncurrent</a>
nvtNoncurrentDays :: Lens' NoncurrentVersionTransition Int

-- | The class of storage used to store the object.
nvtStorageClass :: Lens' NoncurrentVersionTransition TransitionStorageClass

-- | Container for specifying the notification configuration of the bucket.
--   If this element is empty, notifications are turned off on the bucket.
--   
--   <i>See:</i> <a>notificationConfiguration</a> smart constructor.
data NotificationConfiguration

-- | Creates a value of <a>NotificationConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ncQueueConfigurations</a> - Undocumented member.</li>
--   <li><a>ncTopicConfigurations</a> - Undocumented member.</li>
--   <li><a>ncLambdaFunctionConfigurations</a> - Undocumented member.</li>
--   </ul>
notificationConfiguration :: NotificationConfiguration

-- | Undocumented member.
ncQueueConfigurations :: Lens' NotificationConfiguration [QueueConfiguration]

-- | Undocumented member.
ncTopicConfigurations :: Lens' NotificationConfiguration [TopicConfiguration]

-- | Undocumented member.
ncLambdaFunctionConfigurations :: Lens' NotificationConfiguration [LambdaFunctionConfiguration]

-- | <a>Configuring Event Notifications</a>
--   
--   <i>See:</i> <a>notificationConfigurationFilter</a> smart constructor.
data NotificationConfigurationFilter

-- | Creates a value of <a>NotificationConfigurationFilter</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ncfKey</a> - Undocumented member.</li>
--   </ul>
notificationConfigurationFilter :: NotificationConfigurationFilter

-- | Undocumented member.
ncfKey :: Lens' NotificationConfigurationFilter (Maybe S3KeyFilter)

-- | <i>See:</i> <a>object'</a> smart constructor.
data Object

-- | Creates a value of <a>Object</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oOwner</a> - Undocumented member.</li>
--   <li><a>oETag</a> - Undocumented member.</li>
--   <li><a>oSize</a> - Undocumented member.</li>
--   <li><a>oKey</a> - Undocumented member.</li>
--   <li><a>oStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>oLastModified</a> - Undocumented member.</li>
--   </ul>
object' :: ETag -> Int -> ObjectKey -> ObjectStorageClass -> UTCTime -> Object

-- | Undocumented member.
oOwner :: Lens' Object (Maybe Owner)

-- | Undocumented member.
oETag :: Lens' Object ETag

-- | Undocumented member.
oSize :: Lens' Object Int

-- | Undocumented member.
oKey :: Lens' Object ObjectKey

-- | The class of storage used to store the object.
oStorageClass :: Lens' Object ObjectStorageClass

-- | Undocumented member.
oLastModified :: Lens' Object UTCTime

-- | <i>See:</i> <a>objectIdentifier</a> smart constructor.
data ObjectIdentifier

-- | Creates a value of <a>ObjectIdentifier</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oiVersionId</a> - VersionId for the specific version of the
--   object to delete.</li>
--   <li><a>oiKey</a> - Key name of the object to delete.</li>
--   </ul>
objectIdentifier :: ObjectKey -> ObjectIdentifier

-- | VersionId for the specific version of the object to delete.
oiVersionId :: Lens' ObjectIdentifier (Maybe ObjectVersionId)

-- | Key name of the object to delete.
oiKey :: Lens' ObjectIdentifier ObjectKey

-- | <i>See:</i> <a>objectVersion</a> smart constructor.
data ObjectVersion

-- | Creates a value of <a>ObjectVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ovETag</a> - Undocumented member.</li>
--   <li><a>ovVersionId</a> - Version ID of an object.</li>
--   <li><a>ovSize</a> - Size in bytes of the object.</li>
--   <li><a>ovIsLatest</a> - Specifies whether the object is (true) or is
--   not (false) the latest version of an object.</li>
--   <li><a>ovOwner</a> - Undocumented member.</li>
--   <li><a>ovKey</a> - The object key.</li>
--   <li><a>ovStorageClass</a> - The class of storage used to store the
--   object.</li>
--   <li><a>ovLastModified</a> - Date and time the object was last
--   modified.</li>
--   </ul>
objectVersion :: ObjectVersion

-- | Undocumented member.
ovETag :: Lens' ObjectVersion (Maybe ETag)

-- | Version ID of an object.
ovVersionId :: Lens' ObjectVersion (Maybe ObjectVersionId)

-- | Size in bytes of the object.
ovSize :: Lens' ObjectVersion (Maybe Int)

-- | Specifies whether the object is (true) or is not (false) the latest
--   version of an object.
ovIsLatest :: Lens' ObjectVersion (Maybe Bool)

-- | Undocumented member.
ovOwner :: Lens' ObjectVersion (Maybe Owner)

-- | The object key.
ovKey :: Lens' ObjectVersion (Maybe ObjectKey)

-- | The class of storage used to store the object.
ovStorageClass :: Lens' ObjectVersion (Maybe ObjectVersionStorageClass)

-- | Date and time the object was last modified.
ovLastModified :: Lens' ObjectVersion (Maybe UTCTime)

-- | <i>See:</i> <a>owner</a> smart constructor.
data Owner

-- | Creates a value of <a>Owner</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDisplayName</a> - Undocumented member.</li>
--   <li><a>oId</a> - Undocumented member.</li>
--   </ul>
owner :: Owner

-- | Undocumented member.
oDisplayName :: Lens' Owner (Maybe Text)

-- | Undocumented member.
oId :: Lens' Owner (Maybe Text)

-- | <i>See:</i> <a>part</a> smart constructor.
data Part

-- | Creates a value of <a>Part</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pETag</a> - Entity tag returned when the part was
--   uploaded.</li>
--   <li><a>pSize</a> - Size of the uploaded part data.</li>
--   <li><a>pPartNumber</a> - Part number identifying the part. This is a
--   positive integer between 1 and 10,000.</li>
--   <li><a>pLastModified</a> - Date and time at which the part was
--   uploaded.</li>
--   </ul>
part :: Part

-- | Entity tag returned when the part was uploaded.
pETag :: Lens' Part (Maybe ETag)

-- | Size of the uploaded part data.
pSize :: Lens' Part (Maybe Int)

-- | Part number identifying the part. This is a positive integer between 1
--   and 10,000.
pPartNumber :: Lens' Part (Maybe Int)

-- | Date and time at which the part was uploaded.
pLastModified :: Lens' Part (Maybe UTCTime)

-- | Container for specifying an configuration when you want Amazon S3 to
--   publish events to an Amazon Simple Queue Service (Amazon SQS) queue.
--   
--   <i>See:</i> <a>queueConfiguration</a> smart constructor.
data QueueConfiguration

-- | Creates a value of <a>QueueConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qcId</a> - Undocumented member.</li>
--   <li><a>qcFilter</a> - Undocumented member.</li>
--   <li><a>qcQueueARN</a> - Amazon SQS queue ARN to which Amazon S3 will
--   publish a message when it detects events of specified type.</li>
--   <li><a>qcEvents</a> - Undocumented member.</li>
--   </ul>
queueConfiguration :: Text -> QueueConfiguration

-- | Undocumented member.
qcId :: Lens' QueueConfiguration (Maybe Text)

-- | Undocumented member.
qcFilter :: Lens' QueueConfiguration (Maybe NotificationConfigurationFilter)

-- | Amazon SQS queue ARN to which Amazon S3 will publish a message when it
--   detects events of specified type.
qcQueueARN :: Lens' QueueConfiguration Text

-- | Undocumented member.
qcEvents :: Lens' QueueConfiguration [Event]

-- | <i>See:</i> <a>redirect</a> smart constructor.
data Redirect

-- | Creates a value of <a>Redirect</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rHostName</a> - The host name to use in the redirect
--   request.</li>
--   <li><a>rProtocol</a> - Protocol to use (http, https) when redirecting
--   requests. The default is the protocol that is used in the original
--   request.</li>
--   <li><a>rHTTPRedirectCode</a> - The HTTP redirect code to use on the
--   response. Not required if one of the siblings is present.</li>
--   <li><a>rReplaceKeyWith</a> - The specific object key to use in the
--   redirect request. For example, redirect request to error.html. Not
--   required if one of the sibling is present. Can be present only if
--   ReplaceKeyPrefixWith is not provided.</li>
--   <li><a>rReplaceKeyPrefixWith</a> - The object key prefix to use in the
--   redirect request. For example, to redirect requests for all pages with
--   prefix docs<i> (objects in the docs</i> folder) to documents<i>, you
--   can set a condition block with KeyPrefixEquals set to docs</i> and in
--   the Redirect set ReplaceKeyPrefixWith to /documents. Not required if
--   one of the siblings is present. Can be present only if ReplaceKeyWith
--   is not provided.</li>
--   </ul>
redirect :: Redirect

-- | The host name to use in the redirect request.
rHostName :: Lens' Redirect (Maybe Text)

-- | Protocol to use (http, https) when redirecting requests. The default
--   is the protocol that is used in the original request.
rProtocol :: Lens' Redirect (Maybe Protocol)

-- | The HTTP redirect code to use on the response. Not required if one of
--   the siblings is present.
rHTTPRedirectCode :: Lens' Redirect (Maybe Text)

-- | The specific object key to use in the redirect request. For example,
--   redirect request to error.html. Not required if one of the sibling is
--   present. Can be present only if ReplaceKeyPrefixWith is not provided.
rReplaceKeyWith :: Lens' Redirect (Maybe Text)

-- | The object key prefix to use in the redirect request. For example, to
--   redirect requests for all pages with prefix docs<i> (objects in the
--   docs</i> folder) to documents<i>, you can set a condition block with
--   KeyPrefixEquals set to docs</i> and in the Redirect set
--   ReplaceKeyPrefixWith to /documents. Not required if one of the
--   siblings is present. Can be present only if ReplaceKeyWith is not
--   provided.
rReplaceKeyPrefixWith :: Lens' Redirect (Maybe Text)

-- | <i>See:</i> <a>redirectAllRequestsTo</a> smart constructor.
data RedirectAllRequestsTo

-- | Creates a value of <a>RedirectAllRequestsTo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rartProtocol</a> - Protocol to use (http, https) when
--   redirecting requests. The default is the protocol that is used in the
--   original request.</li>
--   <li><a>rartHostName</a> - Name of the host where requests will be
--   redirected.</li>
--   </ul>
redirectAllRequestsTo :: Text -> RedirectAllRequestsTo

-- | Protocol to use (http, https) when redirecting requests. The default
--   is the protocol that is used in the original request.
rartProtocol :: Lens' RedirectAllRequestsTo (Maybe Protocol)

-- | Name of the host where requests will be redirected.
rartHostName :: Lens' RedirectAllRequestsTo Text

-- | Container for replication rules. You can add as many as 1,000 rules.
--   Total replication configuration size can be up to 2 MB.
--   
--   <i>See:</i> <a>replicationConfiguration</a> smart constructor.
data ReplicationConfiguration

-- | Creates a value of <a>ReplicationConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcRole</a> - Amazon Resource Name (ARN) of an IAM role for
--   Amazon S3 to assume when replicating the objects.</li>
--   <li><a>rcRules</a> - Container for information about a particular
--   replication rule. Replication configuration must have at least one
--   rule and can contain up to 1,000 rules.</li>
--   </ul>
replicationConfiguration :: Text -> ReplicationConfiguration

-- | Amazon Resource Name (ARN) of an IAM role for Amazon S3 to assume when
--   replicating the objects.
rcRole :: Lens' ReplicationConfiguration Text

-- | Container for information about a particular replication rule.
--   Replication configuration must have at least one rule and can contain
--   up to 1,000 rules.
rcRules :: Lens' ReplicationConfiguration [ReplicationRule]

-- | <i>See:</i> <a>replicationRule</a> smart constructor.
data ReplicationRule

-- | Creates a value of <a>ReplicationRule</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrId</a> - Unique identifier for the rule. The value cannot be
--   longer than 255 characters.</li>
--   <li><a>rrPrefix</a> - Object keyname prefix identifying one or more
--   objects to which the rule applies. Maximum prefix length can be up to
--   1,024 characters. Overlapping prefixes are not supported.</li>
--   <li><a>rrStatus</a> - The rule is ignored if status is not
--   Enabled.</li>
--   <li><a>rrDestination</a> - Undocumented member.</li>
--   </ul>
replicationRule :: Text -> ReplicationRuleStatus -> Destination -> ReplicationRule

-- | Unique identifier for the rule. The value cannot be longer than 255
--   characters.
rrId :: Lens' ReplicationRule (Maybe Text)

-- | Object keyname prefix identifying one or more objects to which the
--   rule applies. Maximum prefix length can be up to 1,024 characters.
--   Overlapping prefixes are not supported.
rrPrefix :: Lens' ReplicationRule Text

-- | The rule is ignored if status is not Enabled.
rrStatus :: Lens' ReplicationRule ReplicationRuleStatus

-- | Undocumented member.
rrDestination :: Lens' ReplicationRule Destination

-- | <i>See:</i> <a>requestPaymentConfiguration</a> smart constructor.
data RequestPaymentConfiguration

-- | Creates a value of <a>RequestPaymentConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rpcPayer</a> - Specifies who pays for the download and request
--   fees.</li>
--   </ul>
requestPaymentConfiguration :: Payer -> RequestPaymentConfiguration

-- | Specifies who pays for the download and request fees.
rpcPayer :: Lens' RequestPaymentConfiguration Payer

-- | <i>See:</i> <a>restoreRequest</a> smart constructor.
data RestoreRequest

-- | Creates a value of <a>RestoreRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrGlacierJobParameters</a> - Glacier related prameters
--   pertaining to this job.</li>
--   <li><a>rrDays</a> - Lifetime of the active copy in days</li>
--   </ul>
restoreRequest :: Int -> RestoreRequest

-- | Glacier related prameters pertaining to this job.
rrGlacierJobParameters :: Lens' RestoreRequest (Maybe GlacierJobParameters)

-- | Lifetime of the active copy in days
rrDays :: Lens' RestoreRequest Int

-- | <i>See:</i> <a>routingRule</a> smart constructor.
data RoutingRule

-- | Creates a value of <a>RoutingRule</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrCondition</a> - A container for describing a condition that
--   must be met for the specified redirect to apply. For example, 1. If
--   request is for pages in the <i>docs folder, redirect to the
--   </i>documents folder. 2. If request results in HTTP error 4xx,
--   redirect request to another host where you might process the
--   error.</li>
--   <li><a>rrRedirect</a> - Container for redirect information. You can
--   redirect requests to another host, to another page, or with another
--   protocol. In the event of an error, you can can specify a different
--   error code to return.</li>
--   </ul>
routingRule :: Redirect -> RoutingRule

-- | A container for describing a condition that must be met for the
--   specified redirect to apply. For example, 1. If request is for pages
--   in the <i>docs folder, redirect to the </i>documents folder. 2. If
--   request results in HTTP error 4xx, redirect request to another host
--   where you might process the error.
rrCondition :: Lens' RoutingRule (Maybe Condition)

-- | Container for redirect information. You can redirect requests to
--   another host, to another page, or with another protocol. In the event
--   of an error, you can can specify a different error code to return.
rrRedirect :: Lens' RoutingRule Redirect

-- | Container for object key name prefix and suffix filtering rules.
--   
--   <i>See:</i> <a>s3KeyFilter</a> smart constructor.
data S3KeyFilter

-- | Creates a value of <a>S3KeyFilter</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>skfFilterRules</a> - Undocumented member.</li>
--   </ul>
s3KeyFilter :: S3KeyFilter

-- | Undocumented member.
skfFilterRules :: Lens' S3KeyFilter [FilterRule]

-- | <i>See:</i> <a>s3ServiceError</a> smart constructor.
data S3ServiceError

-- | Creates a value of <a>S3ServiceError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sseVersionId</a> - Undocumented member.</li>
--   <li><a>sseKey</a> - Undocumented member.</li>
--   <li><a>sseCode</a> - Undocumented member.</li>
--   <li><a>sseMessage</a> - Undocumented member.</li>
--   </ul>
s3ServiceError :: S3ServiceError

-- | Undocumented member.
sseVersionId :: Lens' S3ServiceError (Maybe ObjectVersionId)

-- | Undocumented member.
sseKey :: Lens' S3ServiceError (Maybe ObjectKey)

-- | Undocumented member.
sseCode :: Lens' S3ServiceError (Maybe Text)

-- | Undocumented member.
sseMessage :: Lens' S3ServiceError (Maybe Text)

-- | <i>See:</i> <a>storageClassAnalysis</a> smart constructor.
data StorageClassAnalysis

-- | Creates a value of <a>StorageClassAnalysis</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scaDataExport</a> - A container used to describe how data
--   related to the storage class analysis should be exported.</li>
--   </ul>
storageClassAnalysis :: StorageClassAnalysis

-- | A container used to describe how data related to the storage class
--   analysis should be exported.
scaDataExport :: Lens' StorageClassAnalysis (Maybe StorageClassAnalysisDataExport)

-- | <i>See:</i> <a>storageClassAnalysisDataExport</a> smart constructor.
data StorageClassAnalysisDataExport

-- | Creates a value of <a>StorageClassAnalysisDataExport</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scadeOutputSchemaVersion</a> - The version of the output schema
--   to use when exporting data. Must be V_1.</li>
--   <li><a>scadeDestination</a> - The place to store the data for an
--   analysis.</li>
--   </ul>
storageClassAnalysisDataExport :: StorageClassAnalysisSchemaVersion -> AnalyticsExportDestination -> StorageClassAnalysisDataExport

-- | The version of the output schema to use when exporting data. Must be
--   V_1.
scadeOutputSchemaVersion :: Lens' StorageClassAnalysisDataExport StorageClassAnalysisSchemaVersion

-- | The place to store the data for an analysis.
scadeDestination :: Lens' StorageClassAnalysisDataExport AnalyticsExportDestination

-- | <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - Name of the tag.</li>
--   <li><a>tagValue</a> - Value of the tag.</li>
--   </ul>
tag :: ObjectKey -> Text -> Tag

-- | Name of the tag.
tagKey :: Lens' Tag ObjectKey

-- | Value of the tag.
tagValue :: Lens' Tag Text

-- | <i>See:</i> <a>tagging</a> smart constructor.
data Tagging

-- | Creates a value of <a>Tagging</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tTagSet</a> - Undocumented member.</li>
--   </ul>
tagging :: Tagging

-- | Undocumented member.
tTagSet :: Lens' Tagging [Tag]

-- | <i>See:</i> <a>targetGrant</a> smart constructor.
data TargetGrant

-- | Creates a value of <a>TargetGrant</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgPermission</a> - Logging permissions assigned to the Grantee
--   for the bucket.</li>
--   <li><a>tgGrantee</a> - Undocumented member.</li>
--   </ul>
targetGrant :: TargetGrant

-- | Logging permissions assigned to the Grantee for the bucket.
tgPermission :: Lens' TargetGrant (Maybe BucketLogsPermission)

-- | Undocumented member.
tgGrantee :: Lens' TargetGrant (Maybe Grantee)

-- | Container for specifying the configuration when you want Amazon S3 to
--   publish events to an Amazon Simple Notification Service (Amazon SNS)
--   topic.
--   
--   <i>See:</i> <a>topicConfiguration</a> smart constructor.
data TopicConfiguration

-- | Creates a value of <a>TopicConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcId</a> - Undocumented member.</li>
--   <li><a>tcFilter</a> - Undocumented member.</li>
--   <li><a>tcTopicARN</a> - Amazon SNS topic ARN to which Amazon S3 will
--   publish a message when it detects events of specified type.</li>
--   <li><a>tcEvents</a> - Undocumented member.</li>
--   </ul>
topicConfiguration :: Text -> TopicConfiguration

-- | Undocumented member.
tcId :: Lens' TopicConfiguration (Maybe Text)

-- | Undocumented member.
tcFilter :: Lens' TopicConfiguration (Maybe NotificationConfigurationFilter)

-- | Amazon SNS topic ARN to which Amazon S3 will publish a message when it
--   detects events of specified type.
tcTopicARN :: Lens' TopicConfiguration Text

-- | Undocumented member.
tcEvents :: Lens' TopicConfiguration [Event]

-- | <i>See:</i> <a>transition</a> smart constructor.
data Transition

-- | Creates a value of <a>Transition</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tDays</a> - Indicates the lifetime, in days, of the objects
--   that are subject to the rule. The value must be a non-zero positive
--   integer.</li>
--   <li><a>tDate</a> - Indicates at what date the object is to be moved or
--   deleted. Should be in GMT ISO 8601 Format.</li>
--   <li><a>tStorageClass</a> - The class of storage used to store the
--   object.</li>
--   </ul>
transition :: Transition

-- | Indicates the lifetime, in days, of the objects that are subject to
--   the rule. The value must be a non-zero positive integer.
tDays :: Lens' Transition (Maybe Int)

-- | Indicates at what date the object is to be moved or deleted. Should be
--   in GMT ISO 8601 Format.
tDate :: Lens' Transition (Maybe UTCTime)

-- | The class of storage used to store the object.
tStorageClass :: Lens' Transition (Maybe TransitionStorageClass)

-- | <i>See:</i> <a>versioningConfiguration</a> smart constructor.
data VersioningConfiguration

-- | Creates a value of <a>VersioningConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcStatus</a> - The versioning state of the bucket.</li>
--   <li><a>vcMFADelete</a> - Specifies whether MFA delete is enabled in
--   the bucket versioning configuration. This element is only returned if
--   the bucket has been configured with MFA delete. If the bucket has
--   never been so configured, this element is not returned.</li>
--   </ul>
versioningConfiguration :: VersioningConfiguration

-- | The versioning state of the bucket.
vcStatus :: Lens' VersioningConfiguration (Maybe BucketVersioningStatus)

-- | Specifies whether MFA delete is enabled in the bucket versioning
--   configuration. This element is only returned if the bucket has been
--   configured with MFA delete. If the bucket has never been so
--   configured, this element is not returned.
vcMFADelete :: Lens' VersioningConfiguration (Maybe MFADelete)

-- | <i>See:</i> <a>websiteConfiguration</a> smart constructor.
data WebsiteConfiguration

-- | Creates a value of <a>WebsiteConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wcRedirectAllRequestsTo</a> - Undocumented member.</li>
--   <li><a>wcErrorDocument</a> - Undocumented member.</li>
--   <li><a>wcIndexDocument</a> - Undocumented member.</li>
--   <li><a>wcRoutingRules</a> - Undocumented member.</li>
--   </ul>
websiteConfiguration :: WebsiteConfiguration

-- | Undocumented member.
wcRedirectAllRequestsTo :: Lens' WebsiteConfiguration (Maybe RedirectAllRequestsTo)

-- | Undocumented member.
wcErrorDocument :: Lens' WebsiteConfiguration (Maybe ErrorDocument)

-- | Undocumented member.
wcIndexDocument :: Lens' WebsiteConfiguration (Maybe IndexDocument)

-- | Undocumented member.
wcRoutingRules :: Lens' WebsiteConfiguration [RoutingRule]
