/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.codebuild.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* Information about the cache for the build project. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ProjectCache implements Serializable, Cloneable, StructuredPojo { /** *

* The type of cache used by the build project. Valid values include: *

* */ private String type; /** *

* Information about the cache location: *

* */ private String location; /** *

* 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: *

* *
*
*/ private java.util.List modes; /** *

* The type of cache used by the build project. Valid values include: *

* * * @param type * The type of cache used by the build project. Valid values include:

*