{-# 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 -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Update an environment. -- -- /See:/ 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