pub fn modes(mut self, input: crate::model::CacheMode) -> Self {
            let mut v = self.modes.unwrap_or_default();
            v.push(input);
            self.modes = Some(v);
            self
        }
/// Appends an item to `modes`.
///
/// To override the contents of this collection use [`set_modes`](Self::set_modes).
///
/// <p>An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types.</p>
/// <p>Possible values are:</p>
/// <dl>
/// <dt>
/// LOCAL_SOURCE_CACHE
/// </dt>
/// <dd>
/// <p>Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored. </p>
/// </dd>
/// <dt>
/// LOCAL_DOCKER_LAYER_CACHE
/// </dt>
/// <dd>
/// <p>Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network. </p> <note>
/// <ul>
/// <li> <p>You can use a Docker layer cache in the Linux environment only. </p> </li>
/// <li> <p>The <code>privileged</code> flag must be set so that your project has the required Docker permissions. </p> </li>
/// <li> <p>You should consider the security implications before you use a Docker layer cache. </p> </li>
/// </ul>
/// </note>
/// </dd>
/// <dt>
/// LOCAL_CUSTOM_CACHE
/// </dt>
/// <dd>
/// <p>Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache: </p>
/// <ul>
/// <li> <p>Only directories can be specified for caching. You cannot specify individual files. </p> </li>
/// <li> <p>Symlinks are used to reference cached directories. </p> </li>
/// <li> <p>Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file. </p> </li>
/// </ul>
/// </dd>
/// </dl>
Appends an item to `modes`.
To override the contents of this collection use [`set_modes`](Self::set_modes).

An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for LOCAL cache types.
Possible values are:


LOCAL_SOURCE_CACHE


Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored. 


LOCAL_DOCKER_LAYER_CACHE


Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  

 You can use a Docker layer cache in the Linux environment only.  
 The privileged flag must be set so that your project has the required Docker permissions.  
 You should consider the security implications before you use a Docker layer cache.  




LOCAL_CUSTOM_CACHE


Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache: 

 Only directories can be specified for caching. You cannot specify individual files.  
 Symlinks are used to reference cached directories.  
 Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.
Appends an item to ` modes ` . To override the contents of this collection use [ ` set_modes ` ] ( Self :: set_modes ) . An array of strings that specify the local cache modes . You can use one or more local cache modes at the same time . This is only used for LOCAL cache types . Possible values are : LOCAL_SOURCE_CACHE Caches Git metadata for primary and secondary sources . After the cache is created subsequent builds pull only the change between commits . This mode is a good choice for projects with a clean working directory and a source that is a large Git repository . If you choose this option and your project does not use a Git repository ( GitHub GitHub Enterprise or Bitbucket ) the option is ignored . LOCAL_DOCKER_LAYER_CACHE Caches existing Docker layers . This mode is a good choice for projects that build or pull large Docker images . It can prevent the performance issues caused by pulling large Docker images down from the network . You can use a Docker layer cache in the Linux environment only . The privileged flag must be set so that your project has the required Docker permissions . You should consider the security implications before you use a Docker layer cache . LOCAL_CUSTOM_CACHE Caches directories you specify in the buildspec file . This mode is a good choice if your build scenario is not suited to one of the other three local cache modes . If you use a custom cache : Only directories can be specified for caching . You cannot specify individual files . Symlinks are used to reference cached directories . Cached directories are linked to your build before it downloads its project sources . Cached items are overridden if a source item has the same name . Directories are specified using cache paths in the buildspec file .
pub fn modes(mut self, input: crate::model::CacheMode) -> Self {
            let mut v = self.modes.unwrap_or_default();
            v.push(input);
            self.modes = Some(v);
            self
        }
pub fn modes ( mut self , input : crate :: model :: CacheMode ) -> Self { let mut v = self . modes . unwrap_or_default ( ) ; v . push ( input ) ; self . modes = Some ( v ) ; self }
Appends an item to `modes`.
Appends an item to ` modes ` .
mut self
input
crate::model::CacheMode
mut self
input
crate::model::CacheMode