{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.Google.Resource.Storage.Objects.Copy
(
ObjectsCopyResource
, objectsCopy
, ObjectsCopy
, ocDestinationPredefinedACL
, ocIfSourceGenerationMatch
, ocIfMetagenerationMatch
, ocIfGenerationNotMatch
, ocIfSourceMetagenerationNotMatch
, ocIfSourceMetagenerationMatch
, ocIfGenerationMatch
, ocSourceObject
, ocSourceBucket
, ocPayload
, ocDestinationBucket
, ocIfMetagenerationNotMatch
, ocIfSourceGenerationNotMatch
, ocProjection
, ocSourceGeneration
, ocDestinationObject
) where
import Network.Google.Prelude
import Network.Google.Storage.Types
type ObjectsCopyResource =
"storage" :>
"v1" :>
"b" :>
Capture "sourceBucket" Text :>
"o" :>
Capture "sourceObject" Text :>
"copyTo" :>
"b" :>
Capture "destinationBucket" Text :>
"o" :>
Capture "destinationObject" Text :>
QueryParam "destinationPredefinedAcl"
ObjectsCopyDestinationPredefinedACL
:>
QueryParam "ifSourceGenerationMatch"
(Textual Int64)
:>
QueryParam "ifMetagenerationMatch"
(Textual Int64)
:>
QueryParam "ifGenerationNotMatch"
(Textual Int64)
:>
QueryParam "ifSourceMetagenerationNotMatch"
(Textual Int64)
:>
QueryParam "ifSourceMetagenerationMatch"
(Textual Int64)
:>
QueryParam "ifGenerationMatch"
(Textual Int64)
:>
QueryParam "ifMetagenerationNotMatch"
(Textual Int64)
:>
QueryParam
"ifSourceGenerationNotMatch"
(Textual Int64)
:>
QueryParam "projection"
ObjectsCopyProjection
:>
QueryParam "sourceGeneration"
(Textual Int64)
:>
QueryParam "alt" AltJSON :>
ReqBody '[JSON] Object :>
Post '[JSON] Object
:<|>
"storage" :>
"v1" :>
"b" :>
Capture "sourceBucket" Text :>
"o" :>
Capture "sourceObject" Text :>
"copyTo" :>
"b" :>
Capture "destinationBucket" Text :>
"o" :>
Capture "destinationObject" Text :>
QueryParam "destinationPredefinedAcl"
ObjectsCopyDestinationPredefinedACL
:>
QueryParam "ifSourceGenerationMatch"
(Textual Int64)
:>
QueryParam "ifMetagenerationMatch"
(Textual Int64)
:>
QueryParam "ifGenerationNotMatch"
(Textual Int64)
:>
QueryParam "ifSourceMetagenerationNotMatch"
(Textual Int64)
:>
QueryParam "ifSourceMetagenerationMatch"
(Textual Int64)
:>
QueryParam "ifGenerationMatch"
(Textual Int64)
:>
QueryParam "ifMetagenerationNotMatch"
(Textual Int64)
:>
QueryParam
"ifSourceGenerationNotMatch"
(Textual Int64)
:>
QueryParam "projection"
ObjectsCopyProjection
:>
QueryParam "sourceGeneration"
(Textual Int64)
:>
QueryParam "alt" AltMedia :>
Post '[OctetStream] Stream
-- | Copies a source object to a destination object. Optionally overrides
-- metadata.
--
-- /See:/ 'objectsCopy' smart constructor.
data ObjectsCopy = ObjectsCopy'
{ _ocDestinationPredefinedACL :: !(Maybe ObjectsCopyDestinationPredefinedACL)
, _ocIfSourceGenerationMatch :: !(Maybe (Textual Int64))
, _ocIfMetagenerationMatch :: !(Maybe (Textual Int64))
, _ocIfGenerationNotMatch :: !(Maybe (Textual Int64))
, _ocIfSourceMetagenerationNotMatch :: !(Maybe (Textual Int64))
, _ocIfSourceMetagenerationMatch :: !(Maybe (Textual Int64))
, _ocIfGenerationMatch :: !(Maybe (Textual Int64))
, _ocSourceObject :: !Text
, _ocSourceBucket :: !Text
, _ocPayload :: !Object
, _ocDestinationBucket :: !Text
, _ocIfMetagenerationNotMatch :: !(Maybe (Textual Int64))
, _ocIfSourceGenerationNotMatch :: !(Maybe (Textual Int64))
, _ocProjection :: !(Maybe ObjectsCopyProjection)
, _ocSourceGeneration :: !(Maybe (Textual Int64))
, _ocDestinationObject :: !Text
} deriving (Eq,Show,Data,Typeable,Generic)
-- | Creates a value of 'ObjectsCopy' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ocDestinationPredefinedACL'
--
-- * 'ocIfSourceGenerationMatch'
--
-- * 'ocIfMetagenerationMatch'
--
-- * 'ocIfGenerationNotMatch'
--
-- * 'ocIfSourceMetagenerationNotMatch'
--
-- * 'ocIfSourceMetagenerationMatch'
--
-- * 'ocIfGenerationMatch'
--
-- * 'ocSourceObject'
--
-- * 'ocSourceBucket'
--
-- * 'ocPayload'
--
-- * 'ocDestinationBucket'
--
-- * 'ocIfMetagenerationNotMatch'
--
-- * 'ocIfSourceGenerationNotMatch'
--
-- * 'ocProjection'
--
-- * 'ocSourceGeneration'
--
-- * 'ocDestinationObject'
objectsCopy
:: Text -- ^ 'ocSourceObject'
-> Text -- ^ 'ocSourceBucket'
-> Object -- ^ 'ocPayload'
-> Text -- ^ 'ocDestinationBucket'
-> Text -- ^ 'ocDestinationObject'
-> ObjectsCopy
objectsCopy pOcSourceObject_ pOcSourceBucket_ pOcPayload_ pOcDestinationBucket_ pOcDestinationObject_ =
ObjectsCopy'
{ _ocDestinationPredefinedACL = Nothing
, _ocIfSourceGenerationMatch = Nothing
, _ocIfMetagenerationMatch = Nothing
, _ocIfGenerationNotMatch = Nothing
, _ocIfSourceMetagenerationNotMatch = Nothing
, _ocIfSourceMetagenerationMatch = Nothing
, _ocIfGenerationMatch = Nothing
, _ocSourceObject = pOcSourceObject_
, _ocSourceBucket = pOcSourceBucket_
, _ocPayload = pOcPayload_
, _ocDestinationBucket = pOcDestinationBucket_
, _ocIfMetagenerationNotMatch = Nothing
, _ocIfSourceGenerationNotMatch = Nothing
, _ocProjection = Nothing
, _ocSourceGeneration = Nothing
, _ocDestinationObject = pOcDestinationObject_
}
-- | Apply a predefined set of access controls to the destination object.
ocDestinationPredefinedACL :: Lens' ObjectsCopy (Maybe ObjectsCopyDestinationPredefinedACL)
ocDestinationPredefinedACL
= lens _ocDestinationPredefinedACL
(\ s a -> s{_ocDestinationPredefinedACL = a})
-- | Makes the operation conditional on whether the source object\'s
-- generation matches the given value.
ocIfSourceGenerationMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfSourceGenerationMatch
= lens _ocIfSourceGenerationMatch
(\ s a -> s{_ocIfSourceGenerationMatch = a})
. mapping _Coerce
-- | Makes the operation conditional on whether the destination object\'s
-- current metageneration matches the given value.
ocIfMetagenerationMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfMetagenerationMatch
= lens _ocIfMetagenerationMatch
(\ s a -> s{_ocIfMetagenerationMatch = a})
. mapping _Coerce
-- | Makes the operation conditional on whether the destination object\'s
-- current generation does not match the given value.
ocIfGenerationNotMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfGenerationNotMatch
= lens _ocIfGenerationNotMatch
(\ s a -> s{_ocIfGenerationNotMatch = a})
. mapping _Coerce
-- | Makes the operation conditional on whether the source object\'s current
-- metageneration does not match the given value.
ocIfSourceMetagenerationNotMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfSourceMetagenerationNotMatch
= lens _ocIfSourceMetagenerationNotMatch
(\ s a -> s{_ocIfSourceMetagenerationNotMatch = a})
. mapping _Coerce
-- | Makes the operation conditional on whether the source object\'s current
-- metageneration matches the given value.
ocIfSourceMetagenerationMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfSourceMetagenerationMatch
= lens _ocIfSourceMetagenerationMatch
(\ s a -> s{_ocIfSourceMetagenerationMatch = a})
. mapping _Coerce
-- | Makes the operation conditional on whether the destination object\'s
-- current generation matches the given value.
ocIfGenerationMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfGenerationMatch
= lens _ocIfGenerationMatch
(\ s a -> s{_ocIfGenerationMatch = a})
. mapping _Coerce
-- | Name of the source object. For information about how to URL encode
-- object names to be path safe, see Encoding URI Path Parts.
ocSourceObject :: Lens' ObjectsCopy Text
ocSourceObject
= lens _ocSourceObject
(\ s a -> s{_ocSourceObject = a})
-- | Name of the bucket in which to find the source object.
ocSourceBucket :: Lens' ObjectsCopy Text
ocSourceBucket
= lens _ocSourceBucket
(\ s a -> s{_ocSourceBucket = a})
-- | Multipart request metadata.
ocPayload :: Lens' ObjectsCopy Object
ocPayload
= lens _ocPayload (\ s a -> s{_ocPayload = a})
-- | Name of the bucket in which to store the new object. Overrides the
-- provided object metadata\'s bucket value, if any.For information about
-- how to URL encode object names to be path safe, see Encoding URI Path
-- Parts.
ocDestinationBucket :: Lens' ObjectsCopy Text
ocDestinationBucket
= lens _ocDestinationBucket
(\ s a -> s{_ocDestinationBucket = a})
-- | Makes the operation conditional on whether the destination object\'s
-- current metageneration does not match the given value.
ocIfMetagenerationNotMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfMetagenerationNotMatch
= lens _ocIfMetagenerationNotMatch
(\ s a -> s{_ocIfMetagenerationNotMatch = a})
. mapping _Coerce
-- | Makes the operation conditional on whether the source object\'s
-- generation does not match the given value.
ocIfSourceGenerationNotMatch :: Lens' ObjectsCopy (Maybe Int64)
ocIfSourceGenerationNotMatch
= lens _ocIfSourceGenerationNotMatch
(\ s a -> s{_ocIfSourceGenerationNotMatch = a})
. mapping _Coerce
-- | Set of properties to return. Defaults to noAcl, unless the object
-- resource specifies the acl property, when it defaults to full.
ocProjection :: Lens' ObjectsCopy (Maybe ObjectsCopyProjection)
ocProjection
= lens _ocProjection (\ s a -> s{_ocProjection = a})
-- | If present, selects a specific revision of the source object (as opposed
-- to the latest version, the default).
ocSourceGeneration :: Lens' ObjectsCopy (Maybe Int64)
ocSourceGeneration
= lens _ocSourceGeneration
(\ s a -> s{_ocSourceGeneration = a})
. mapping _Coerce
-- | Name of the new object. Required when the object metadata is not
-- otherwise provided. Overrides the object metadata\'s name value, if any.
ocDestinationObject :: Lens' ObjectsCopy Text
ocDestinationObject
= lens _ocDestinationObject
(\ s a -> s{_ocDestinationObject = a})
instance GoogleRequest ObjectsCopy where
type Rs ObjectsCopy = Object
type Scopes ObjectsCopy =
'["https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/devstorage.full_control",
"https://www.googleapis.com/auth/devstorage.read_write"]
requestClient ObjectsCopy'{..}
= go _ocSourceBucket _ocSourceObject
_ocDestinationBucket
_ocDestinationObject
_ocDestinationPredefinedACL
_ocIfSourceGenerationMatch
_ocIfMetagenerationMatch
_ocIfGenerationNotMatch
_ocIfSourceMetagenerationNotMatch
_ocIfSourceMetagenerationMatch
_ocIfGenerationMatch
_ocIfMetagenerationNotMatch
_ocIfSourceGenerationNotMatch
_ocProjection
_ocSourceGeneration
(Just AltJSON)
_ocPayload
storageService
where go :<|> _
= buildClient (Proxy :: Proxy ObjectsCopyResource)
mempty
instance GoogleRequest (MediaDownload ObjectsCopy)
where
type Rs (MediaDownload ObjectsCopy) = Stream
type Scopes (MediaDownload ObjectsCopy) =
Scopes ObjectsCopy
requestClient (MediaDownload ObjectsCopy'{..})
= go _ocSourceBucket _ocSourceObject
_ocDestinationBucket
_ocDestinationObject
_ocDestinationPredefinedACL
_ocIfSourceGenerationMatch
_ocIfMetagenerationMatch
_ocIfGenerationNotMatch
_ocIfSourceMetagenerationNotMatch
_ocIfSourceMetagenerationMatch
_ocIfGenerationMatch
_ocIfMetagenerationNotMatch
_ocIfSourceGenerationNotMatch
_ocProjection
_ocSourceGeneration
(Just AltMedia)
storageService
where _ :<|> go
= buildClient (Proxy :: Proxy ObjectsCopyResource)
mempty