{-# 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