gogol-composer-0.5.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.pypiPackage | Replace all custom custom PyPI |
-- > | s | 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.pypiPackage | Update the custom PyPI package |
-- > | s.packagename | packagename, preserving other |
-- > | | packages. To delete the package, |
-- > | | include it in \`updateMask\`, and |
-- > | | omit the mapping for it in |
-- > | | \`environment.config.softwareConf |
-- > | | ig.pypiPackages\`. |
-- > | | It is an error to provide both a |
-- > | | mask of this form and the |
-- > | | \"config.softwareConfig.pypiPacka |
-- > | | ges\" |
-- > | | 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.airflowConf | Replace all Apache Airflow config |
-- > | igOverrides | 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.airflowConf | Override the Apache Airflow |
-- > | igOverrides.section-name | 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.softwareConf |
-- > | | ig.airflowConfigOverrides\`. |
-- > | | It is an error to provide both a |
-- > | | mask of this form and the |
-- > | | \"config.softwareConfig.airflowCo |
-- > | | nfigOverrides\" |
-- > | | mask. |
-- > +-----------------------------------+-----------------------------------+
-- > | config.softwareConfig.envVariable | Replace all environment |
-- > | s | 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