gogol-composer-0.4.0: gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Patch.hs
{-# 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.Composer.Projects.Locations.Environments.Patch
-- Copyright : (c) 2015-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Update an environment.
--
-- /See:/ <https://cloud.google.com/composer/ Cloud Composer API Reference> for @composer.projects.locations.environments.patch@.
module Network.Google.Resource.Composer.Projects.Locations.Environments.Patch
(
-- * REST Resource
ProjectsLocationsEnvironmentsPatchResource
-- * Creating a Request
, projectsLocationsEnvironmentsPatch
, ProjectsLocationsEnvironmentsPatch
-- * Request Lenses
, plepXgafv
, plepUploadProtocol
, plepUpdateMask
, plepAccessToken
, plepUploadType
, plepPayload
, plepName
, plepCallback
) where
import Network.Google.Composer.Types
import Network.Google.Prelude
-- | A resource alias for @composer.projects.locations.environments.patch@ method which the
-- 'ProjectsLocationsEnvironmentsPatch' request conforms to.
type ProjectsLocationsEnvironmentsPatchResource =
"v1" :>
Capture "name" Text :>
QueryParam "$.xgafv" Xgafv :>
QueryParam "upload_protocol" Text :>
QueryParam "updateMask" GFieldMask :>
QueryParam "access_token" Text :>
QueryParam "uploadType" Text :>
QueryParam "callback" Text :>
QueryParam "alt" AltJSON :>
ReqBody '[JSON] Environment :>
Patch '[JSON] Operation
-- | Update an environment.
--
-- /See:/ 'projectsLocationsEnvironmentsPatch' smart constructor.
data ProjectsLocationsEnvironmentsPatch = ProjectsLocationsEnvironmentsPatch'
{ _plepXgafv :: !(Maybe Xgafv)
, _plepUploadProtocol :: !(Maybe Text)
, _plepUpdateMask :: !(Maybe GFieldMask)
, _plepAccessToken :: !(Maybe Text)
, _plepUploadType :: !(Maybe Text)
, _plepPayload :: !Environment
, _plepName :: !Text
, _plepCallback :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
-- | Creates a value of 'ProjectsLocationsEnvironmentsPatch' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'plepXgafv'
--
-- * 'plepUploadProtocol'
--
-- * 'plepUpdateMask'
--
-- * 'plepAccessToken'
--
-- * 'plepUploadType'
--
-- * 'plepPayload'
--
-- * 'plepName'
--
-- * 'plepCallback'
projectsLocationsEnvironmentsPatch
:: Environment -- ^ 'plepPayload'
-> Text -- ^ 'plepName'
-> ProjectsLocationsEnvironmentsPatch
projectsLocationsEnvironmentsPatch pPlepPayload_ pPlepName_ =
ProjectsLocationsEnvironmentsPatch'
{ _plepXgafv = Nothing
, _plepUploadProtocol = Nothing
, _plepUpdateMask = Nothing
, _plepAccessToken = Nothing
, _plepUploadType = Nothing
, _plepPayload = pPlepPayload_
, _plepName = pPlepName_
, _plepCallback = Nothing
}
-- | V1 error format.
plepXgafv :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe Xgafv)
plepXgafv
= lens _plepXgafv (\ s a -> s{_plepXgafv = a})
-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
plepUploadProtocol :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe Text)
plepUploadProtocol
= lens _plepUploadProtocol
(\ s a -> s{_plepUploadProtocol = a})
-- | Required. A comma-separated list of paths, relative to \`Environment\`,
-- of fields to update. For example, to set the version of scikit-learn to
-- install in the environment to 0.19.0 and to remove an existing
-- installation of numpy, the \`updateMask\` parameter would include the
-- following two \`paths\` values:
-- \"config.softwareConfig.pypiPackages.scikit-learn\" and
-- \"config.softwareConfig.pypiPackages.numpy\". The included patch
-- environment would specify the scikit-learn version as follows: {
-- \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{
-- \"scikit-learn\":\"==0.19.0\" } } } } Note that in the above example,
-- any existing PyPI packages other than scikit-learn and numpy will be
-- unaffected. Only one update type may be included in a single request\'s
-- \`updateMask\`. For example, one cannot update both the PyPI packages
-- and labels in the same request. However, it is possible to update
-- multiple members of a map field simultaneously in the same request. For
-- example, to set the labels \"label1\" and \"label2\" while clearing
-- \"label3\" (assuming it already exists), one can provide the paths
-- \"labels.label1\", \"labels.label2\", and \"labels.label3\" and populate
-- the patch environment as follows: { \"labels\":{
-- \"label1\":\"new-label1-value\" \"label2\":\"new-label2-value\" } } Note
-- that in the above example, any existing labels that are not included in
-- the \`updateMask\` will be unaffected. It is also possible to replace an
-- entire map field by providing the map field\'s path in the
-- \`updateMask\`. The new value of the field will be that which is
-- provided in the patch environment. For example, to delete all
-- pre-existing user-specified PyPI packages and install botocore at
-- version 1.7.14, the \`updateMask\` would contain the path
-- \"config.softwareConfig.pypiPackages\", and the patch environment would
-- be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{
-- \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields
-- can be updated:
-- > ----------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- > __Mask__ __Purpose__
-- > config.softwareConfig.pypiPackages Replace all custom custom PyPI packages. If a replacement package map is not included in \`environment\`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package.
-- > config.softwareConfig.pypiPackages.packagename Update the custom PyPI package packagename, preserving other packages. To delete the package, include it in \`updateMask\`, and omit the mapping for it in \`environment.config.softwareConfig.pypiPackages\`. It is an error to provide both a mask of this form and the \"config.softwareConfig.pypiPackages\" mask.
-- > labels Replace all environment labels. If a replacement labels map is not included in \`environment\`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels.
-- > labels.labelName Set the label named labelName, while preserving other labels. To delete the label, include it in \`updateMask\` and omit its mapping in \`environment.labels\`. It is an error to provide both a mask of this form and the \"labels\" mask.
-- > config.nodeCount Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the \`config.nodeCount\` field.
-- > config.softwareConfig.airflowConfigOverrides Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in \`environment\`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides.
-- > config.softwareConfig.airflowConfigOverrides.section-name Override the Apache Airflow config property name in the section named section, preserving other properties. To delete the property override, include it in \`updateMask\` and omit its mapping in \`environment.config.softwareConfig.airflowConfigOverrides\`. It is an error to provide both a mask of this form and the \"config.softwareConfig.airflowConfigOverrides\" mask.
-- > config.softwareConfig.envVariables Replace all environment variables. If a replacement environment variable map is not included in \`environment\`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables.
-- > ----------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
plepUpdateMask :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe GFieldMask)
plepUpdateMask
= lens _plepUpdateMask
(\ s a -> s{_plepUpdateMask = a})
-- | OAuth access token.
plepAccessToken :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe Text)
plepAccessToken
= lens _plepAccessToken
(\ s a -> s{_plepAccessToken = a})
-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
plepUploadType :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe Text)
plepUploadType
= lens _plepUploadType
(\ s a -> s{_plepUploadType = a})
-- | Multipart request metadata.
plepPayload :: Lens' ProjectsLocationsEnvironmentsPatch Environment
plepPayload
= lens _plepPayload (\ s a -> s{_plepPayload = a})
-- | The relative resource name of the environment to update, in the form:
-- \"projects\/{projectId}\/locations\/{locationId}\/environments\/{environmentId}\"
plepName :: Lens' ProjectsLocationsEnvironmentsPatch Text
plepName = lens _plepName (\ s a -> s{_plepName = a})
-- | JSONP
plepCallback :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe Text)
plepCallback
= lens _plepCallback (\ s a -> s{_plepCallback = a})
instance GoogleRequest
ProjectsLocationsEnvironmentsPatch where
type Rs ProjectsLocationsEnvironmentsPatch =
Operation
type Scopes ProjectsLocationsEnvironmentsPatch =
'["https://www.googleapis.com/auth/cloud-platform"]
requestClient ProjectsLocationsEnvironmentsPatch'{..}
= go _plepName _plepXgafv _plepUploadProtocol
_plepUpdateMask
_plepAccessToken
_plepUploadType
_plepCallback
(Just AltJSON)
_plepPayload
composerService
where go
= buildClient
(Proxy ::
Proxy ProjectsLocationsEnvironmentsPatchResource)
mempty