{-# 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.Manufacturers.Accounts.Products.Update -- Copyright : (c) 2015-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Inserts or updates the attributes of the product in a Manufacturer -- Center account. Creates a product with the provided attributes. If the -- product already exists, then all attributes are replaced with the new -- ones. The checks at upload time are minimal. All required attributes -- need to be present for a product to be valid. Issues may show up later -- after the API has accepted a new upload for a product and it is possible -- to overwrite an existing valid product with an invalid product. To -- detect this, you should retrieve the product and check it for issues -- once the new version is available. Uploaded attributes first need to be -- processed before they can be retrieved. Until then, new products will be -- unavailable, and retrieval of previously uploaded products will return -- the original state of the product. -- -- /See:/ for @manufacturers.accounts.products.update@. module Network.Google.Resource.Manufacturers.Accounts.Products.Update ( -- * REST Resource AccountsProductsUpdateResource -- * Creating a Request , accountsProductsUpdate , AccountsProductsUpdate -- * Request Lenses , apuParent , apuXgafv , apuUploadProtocol , apuAccessToken , apuUploadType , apuPayload , apuName , apuCallback ) where import Network.Google.Manufacturers.Types import Network.Google.Prelude -- | A resource alias for @manufacturers.accounts.products.update@ method which the -- 'AccountsProductsUpdate' request conforms to. type AccountsProductsUpdateResource = "v1" :> Capture "parent" Text :> "products" :> Capture "name" Text :> QueryParam "$.xgafv" Xgafv :> QueryParam "upload_protocol" Text :> QueryParam "access_token" Text :> QueryParam "uploadType" Text :> QueryParam "callback" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Attributes :> Put '[JSON] Empty -- | Inserts or updates the attributes of the product in a Manufacturer -- Center account. Creates a product with the provided attributes. If the -- product already exists, then all attributes are replaced with the new -- ones. The checks at upload time are minimal. All required attributes -- need to be present for a product to be valid. Issues may show up later -- after the API has accepted a new upload for a product and it is possible -- to overwrite an existing valid product with an invalid product. To -- detect this, you should retrieve the product and check it for issues -- once the new version is available. Uploaded attributes first need to be -- processed before they can be retrieved. Until then, new products will be -- unavailable, and retrieval of previously uploaded products will return -- the original state of the product. -- -- /See:/ 'accountsProductsUpdate' smart constructor. data AccountsProductsUpdate = AccountsProductsUpdate' { _apuParent :: !Text , _apuXgafv :: !(Maybe Xgafv) , _apuUploadProtocol :: !(Maybe Text) , _apuAccessToken :: !(Maybe Text) , _apuUploadType :: !(Maybe Text) , _apuPayload :: !Attributes , _apuName :: !Text , _apuCallback :: !(Maybe Text) } deriving (Eq, Show, Data, Typeable, Generic) -- | Creates a value of 'AccountsProductsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'apuParent' -- -- * 'apuXgafv' -- -- * 'apuUploadProtocol' -- -- * 'apuAccessToken' -- -- * 'apuUploadType' -- -- * 'apuPayload' -- -- * 'apuName' -- -- * 'apuCallback' accountsProductsUpdate :: Text -- ^ 'apuParent' -> Attributes -- ^ 'apuPayload' -> Text -- ^ 'apuName' -> AccountsProductsUpdate accountsProductsUpdate pApuParent_ pApuPayload_ pApuName_ = AccountsProductsUpdate' { _apuParent = pApuParent_ , _apuXgafv = Nothing , _apuUploadProtocol = Nothing , _apuAccessToken = Nothing , _apuUploadType = Nothing , _apuPayload = pApuPayload_ , _apuName = pApuName_ , _apuCallback = Nothing } -- | Parent ID in the format \`accounts\/{account_id}\`. \`account_id\` - The -- ID of the Manufacturer Center account. apuParent :: Lens' AccountsProductsUpdate Text apuParent = lens _apuParent (\ s a -> s{_apuParent = a}) -- | V1 error format. apuXgafv :: Lens' AccountsProductsUpdate (Maybe Xgafv) apuXgafv = lens _apuXgafv (\ s a -> s{_apuXgafv = a}) -- | Upload protocol for media (e.g. \"raw\", \"multipart\"). apuUploadProtocol :: Lens' AccountsProductsUpdate (Maybe Text) apuUploadProtocol = lens _apuUploadProtocol (\ s a -> s{_apuUploadProtocol = a}) -- | OAuth access token. apuAccessToken :: Lens' AccountsProductsUpdate (Maybe Text) apuAccessToken = lens _apuAccessToken (\ s a -> s{_apuAccessToken = a}) -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\"). apuUploadType :: Lens' AccountsProductsUpdate (Maybe Text) apuUploadType = lens _apuUploadType (\ s a -> s{_apuUploadType = a}) -- | Multipart request metadata. apuPayload :: Lens' AccountsProductsUpdate Attributes apuPayload = lens _apuPayload (\ s a -> s{_apuPayload = a}) -- | Name in the format \`{target_country}:{content_language}:{product_id}\`. -- \`target_country\` - The target country of the product as a CLDR -- territory code (for example, US). \`content_language\` - The content -- language of the product as a two-letter ISO 639-1 language code (for -- example, en). \`product_id\` - The ID of the product. For more -- information, see -- https:\/\/support.google.com\/manufacturers\/answer\/6124116#id. apuName :: Lens' AccountsProductsUpdate Text apuName = lens _apuName (\ s a -> s{_apuName = a}) -- | JSONP apuCallback :: Lens' AccountsProductsUpdate (Maybe Text) apuCallback = lens _apuCallback (\ s a -> s{_apuCallback = a}) instance GoogleRequest AccountsProductsUpdate where type Rs AccountsProductsUpdate = Empty type Scopes AccountsProductsUpdate = '["https://www.googleapis.com/auth/manufacturercenter"] requestClient AccountsProductsUpdate'{..} = go _apuParent _apuName _apuXgafv _apuUploadProtocol _apuAccessToken _apuUploadType _apuCallback (Just AltJSON) _apuPayload manufacturersService where go = buildClient (Proxy :: Proxy AccountsProductsUpdateResource) mempty