/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CodeBuild { namespace Model { /** *

Information about the build environment of the build project.

See * Also:

AWS * API Reference

*/ class ProjectEnvironment { public: AWS_CODEBUILD_API ProjectEnvironment(); AWS_CODEBUILD_API ProjectEnvironment(Aws::Utils::Json::JsonView jsonValue); AWS_CODEBUILD_API ProjectEnvironment& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CODEBUILD_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The type of build environment to use for related builds.

  • The * environment type ARM_CONTAINER is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt).

    *
  • The environment type LINUX_CONTAINER with compute * type build.general1.2xlarge is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), * EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China * (Ningxia).

  • The environment type * LINUX_GPU_CONTAINER is available only in regions US East (N. * Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU * (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China * (Ningxia).

  • The environment types * WINDOWS_CONTAINER and WINDOWS_SERVER_2019_CONTAINER * are available only in regions US East (N. Virginia), US East (Ohio), US West * (Oregon), and EU (Ireland).

For more information, see Build * environment compute types in the CodeBuild user guide.

*/ inline const EnvironmentType& GetType() const{ return m_type; } /** *

The type of build environment to use for related builds.

  • The * environment type ARM_CONTAINER is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt).

    *
  • The environment type LINUX_CONTAINER with compute * type build.general1.2xlarge is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), * EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China * (Ningxia).

  • The environment type * LINUX_GPU_CONTAINER is available only in regions US East (N. * Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU * (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China * (Ningxia).

  • The environment types * WINDOWS_CONTAINER and WINDOWS_SERVER_2019_CONTAINER * are available only in regions US East (N. Virginia), US East (Ohio), US West * (Oregon), and EU (Ireland).

For more information, see Build * environment compute types in the CodeBuild user guide.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of build environment to use for related builds.

  • The * environment type ARM_CONTAINER is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt).

    *
  • The environment type LINUX_CONTAINER with compute * type build.general1.2xlarge is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), * EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China * (Ningxia).

  • The environment type * LINUX_GPU_CONTAINER is available only in regions US East (N. * Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU * (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China * (Ningxia).

  • The environment types * WINDOWS_CONTAINER and WINDOWS_SERVER_2019_CONTAINER * are available only in regions US East (N. Virginia), US East (Ohio), US West * (Oregon), and EU (Ireland).

For more information, see Build * environment compute types in the CodeBuild user guide.

*/ inline void SetType(const EnvironmentType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of build environment to use for related builds.

  • The * environment type ARM_CONTAINER is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt).

    *
  • The environment type LINUX_CONTAINER with compute * type build.general1.2xlarge is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), * EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China * (Ningxia).

  • The environment type * LINUX_GPU_CONTAINER is available only in regions US East (N. * Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU * (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China * (Ningxia).

  • The environment types * WINDOWS_CONTAINER and WINDOWS_SERVER_2019_CONTAINER * are available only in regions US East (N. Virginia), US East (Ohio), US West * (Oregon), and EU (Ireland).

For more information, see Build * environment compute types in the CodeBuild user guide.

*/ inline void SetType(EnvironmentType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of build environment to use for related builds.

  • The * environment type ARM_CONTAINER is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt).

    *
  • The environment type LINUX_CONTAINER with compute * type build.general1.2xlarge is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), * EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China * (Ningxia).

  • The environment type * LINUX_GPU_CONTAINER is available only in regions US East (N. * Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU * (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China * (Ningxia).

  • The environment types * WINDOWS_CONTAINER and WINDOWS_SERVER_2019_CONTAINER * are available only in regions US East (N. Virginia), US East (Ohio), US West * (Oregon), and EU (Ireland).

For more information, see Build * environment compute types in the CodeBuild user guide.

*/ inline ProjectEnvironment& WithType(const EnvironmentType& value) { SetType(value); return *this;} /** *

The type of build environment to use for related builds.

  • The * environment type ARM_CONTAINER is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt).

    *
  • The environment type LINUX_CONTAINER with compute * type build.general1.2xlarge is available only in regions US East * (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), * EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China * (Ningxia).

  • The environment type * LINUX_GPU_CONTAINER is available only in regions US East (N. * Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU * (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia * Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China * (Ningxia).

  • The environment types * WINDOWS_CONTAINER and WINDOWS_SERVER_2019_CONTAINER * are available only in regions US East (N. Virginia), US East (Ohio), US West * (Oregon), and EU (Ireland).

For more information, see Build * environment compute types in the CodeBuild user guide.

*/ inline ProjectEnvironment& WithType(EnvironmentType&& value) { SetType(std::move(value)); return *this;} /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline const Aws::String& GetImage() const{ return m_image; } /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline bool ImageHasBeenSet() const { return m_imageHasBeenSet; } /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline void SetImage(const Aws::String& value) { m_imageHasBeenSet = true; m_image = value; } /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline void SetImage(Aws::String&& value) { m_imageHasBeenSet = true; m_image = std::move(value); } /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline void SetImage(const char* value) { m_imageHasBeenSet = true; m_image.assign(value); } /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline ProjectEnvironment& WithImage(const Aws::String& value) { SetImage(value); return *this;} /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline ProjectEnvironment& WithImage(Aws::String&& value) { SetImage(std::move(value)); return *this;} /** *

The image tag or image digest that identifies the Docker image to use for * this build project. Use the following formats:

  • For an image * tag: <registry>/<repository>:<tag>. For example, * in the Docker repository that CodeBuild uses to manage its Docker images, this * would be aws/codebuild/standard:4.0.

  • For an * image digest: <registry>/<repository>@<digest>. * For example, to specify an image with the digest * "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use * <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf.

    *

For more information, see Docker * images provided by CodeBuild in the CodeBuild user guide.

*/ inline ProjectEnvironment& WithImage(const char* value) { SetImage(value); return *this;} /** *

Information about the compute resources the build project uses. Available * values include:

  • BUILD_GENERAL1_SMALL: Use up to 3 * GB memory and 2 vCPUs for builds.

  • * BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for * builds.

  • BUILD_GENERAL1_LARGE: Use up to 16 GB * memory and 8 vCPUs for builds, depending on your environment type.

  • *
  • BUILD_GENERAL1_2XLARGE: Use up to 145 GB memory, 72 vCPUs, * and 824 GB of SSD storage for builds. This compute type supports Docker images * up to 100 GB uncompressed.

If you use * BUILD_GENERAL1_LARGE:

  • For environment type * LINUX_CONTAINER, you can use up to 15 GB memory and 8 vCPUs for * builds.

  • For environment type * LINUX_GPU_CONTAINER, you can use up to 255 GB memory, 32 vCPUs, and * 4 NVIDIA Tesla V100 GPUs for builds.

  • For environment type * ARM_CONTAINER, you can use up to 16 GB memory and 8 vCPUs on * ARM-based processors for builds.

For more information, see Build * Environment Compute Types in the CodeBuild User Guide.

*/ inline const ComputeType& GetComputeType() const{ return m_computeType; } /** *

Information about the compute resources the build project uses. Available * values include:

  • BUILD_GENERAL1_SMALL: Use up to 3 * GB memory and 2 vCPUs for builds.

  • * BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for * builds.

  • BUILD_GENERAL1_LARGE: Use up to 16 GB * memory and 8 vCPUs for builds, depending on your environment type.

  • *
  • BUILD_GENERAL1_2XLARGE: Use up to 145 GB memory, 72 vCPUs, * and 824 GB of SSD storage for builds. This compute type supports Docker images * up to 100 GB uncompressed.

If you use * BUILD_GENERAL1_LARGE:

  • For environment type * LINUX_CONTAINER, you can use up to 15 GB memory and 8 vCPUs for * builds.

  • For environment type * LINUX_GPU_CONTAINER, you can use up to 255 GB memory, 32 vCPUs, and * 4 NVIDIA Tesla V100 GPUs for builds.

  • For environment type * ARM_CONTAINER, you can use up to 16 GB memory and 8 vCPUs on * ARM-based processors for builds.

For more information, see Build * Environment Compute Types in the CodeBuild User Guide.

*/ inline bool ComputeTypeHasBeenSet() const { return m_computeTypeHasBeenSet; } /** *

Information about the compute resources the build project uses. Available * values include:

  • BUILD_GENERAL1_SMALL: Use up to 3 * GB memory and 2 vCPUs for builds.

  • * BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for * builds.

  • BUILD_GENERAL1_LARGE: Use up to 16 GB * memory and 8 vCPUs for builds, depending on your environment type.

  • *
  • BUILD_GENERAL1_2XLARGE: Use up to 145 GB memory, 72 vCPUs, * and 824 GB of SSD storage for builds. This compute type supports Docker images * up to 100 GB uncompressed.

If you use * BUILD_GENERAL1_LARGE:

  • For environment type * LINUX_CONTAINER, you can use up to 15 GB memory and 8 vCPUs for * builds.

  • For environment type * LINUX_GPU_CONTAINER, you can use up to 255 GB memory, 32 vCPUs, and * 4 NVIDIA Tesla V100 GPUs for builds.

  • For environment type * ARM_CONTAINER, you can use up to 16 GB memory and 8 vCPUs on * ARM-based processors for builds.

For more information, see Build * Environment Compute Types in the CodeBuild User Guide.

*/ inline void SetComputeType(const ComputeType& value) { m_computeTypeHasBeenSet = true; m_computeType = value; } /** *

Information about the compute resources the build project uses. Available * values include:

  • BUILD_GENERAL1_SMALL: Use up to 3 * GB memory and 2 vCPUs for builds.

  • * BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for * builds.

  • BUILD_GENERAL1_LARGE: Use up to 16 GB * memory and 8 vCPUs for builds, depending on your environment type.

  • *
  • BUILD_GENERAL1_2XLARGE: Use up to 145 GB memory, 72 vCPUs, * and 824 GB of SSD storage for builds. This compute type supports Docker images * up to 100 GB uncompressed.

If you use * BUILD_GENERAL1_LARGE:

  • For environment type * LINUX_CONTAINER, you can use up to 15 GB memory and 8 vCPUs for * builds.

  • For environment type * LINUX_GPU_CONTAINER, you can use up to 255 GB memory, 32 vCPUs, and * 4 NVIDIA Tesla V100 GPUs for builds.

  • For environment type * ARM_CONTAINER, you can use up to 16 GB memory and 8 vCPUs on * ARM-based processors for builds.

For more information, see Build * Environment Compute Types in the CodeBuild User Guide.

*/ inline void SetComputeType(ComputeType&& value) { m_computeTypeHasBeenSet = true; m_computeType = std::move(value); } /** *

Information about the compute resources the build project uses. Available * values include:

  • BUILD_GENERAL1_SMALL: Use up to 3 * GB memory and 2 vCPUs for builds.

  • * BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for * builds.

  • BUILD_GENERAL1_LARGE: Use up to 16 GB * memory and 8 vCPUs for builds, depending on your environment type.

  • *
  • BUILD_GENERAL1_2XLARGE: Use up to 145 GB memory, 72 vCPUs, * and 824 GB of SSD storage for builds. This compute type supports Docker images * up to 100 GB uncompressed.

If you use * BUILD_GENERAL1_LARGE:

  • For environment type * LINUX_CONTAINER, you can use up to 15 GB memory and 8 vCPUs for * builds.

  • For environment type * LINUX_GPU_CONTAINER, you can use up to 255 GB memory, 32 vCPUs, and * 4 NVIDIA Tesla V100 GPUs for builds.

  • For environment type * ARM_CONTAINER, you can use up to 16 GB memory and 8 vCPUs on * ARM-based processors for builds.

For more information, see Build * Environment Compute Types in the CodeBuild User Guide.

*/ inline ProjectEnvironment& WithComputeType(const ComputeType& value) { SetComputeType(value); return *this;} /** *

Information about the compute resources the build project uses. Available * values include:

  • BUILD_GENERAL1_SMALL: Use up to 3 * GB memory and 2 vCPUs for builds.

  • * BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for * builds.

  • BUILD_GENERAL1_LARGE: Use up to 16 GB * memory and 8 vCPUs for builds, depending on your environment type.

  • *
  • BUILD_GENERAL1_2XLARGE: Use up to 145 GB memory, 72 vCPUs, * and 824 GB of SSD storage for builds. This compute type supports Docker images * up to 100 GB uncompressed.

If you use * BUILD_GENERAL1_LARGE:

  • For environment type * LINUX_CONTAINER, you can use up to 15 GB memory and 8 vCPUs for * builds.

  • For environment type * LINUX_GPU_CONTAINER, you can use up to 255 GB memory, 32 vCPUs, and * 4 NVIDIA Tesla V100 GPUs for builds.

  • For environment type * ARM_CONTAINER, you can use up to 16 GB memory and 8 vCPUs on * ARM-based processors for builds.

For more information, see Build * Environment Compute Types in the CodeBuild User Guide.

*/ inline ProjectEnvironment& WithComputeType(ComputeType&& value) { SetComputeType(std::move(value)); return *this;} /** *

A set of environment variables to make available to builds for this build * project.

*/ inline const Aws::Vector& GetEnvironmentVariables() const{ return m_environmentVariables; } /** *

A set of environment variables to make available to builds for this build * project.

*/ inline bool EnvironmentVariablesHasBeenSet() const { return m_environmentVariablesHasBeenSet; } /** *

A set of environment variables to make available to builds for this build * project.

*/ inline void SetEnvironmentVariables(const Aws::Vector& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables = value; } /** *

A set of environment variables to make available to builds for this build * project.

*/ inline void SetEnvironmentVariables(Aws::Vector&& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables = std::move(value); } /** *

A set of environment variables to make available to builds for this build * project.

*/ inline ProjectEnvironment& WithEnvironmentVariables(const Aws::Vector& value) { SetEnvironmentVariables(value); return *this;} /** *

A set of environment variables to make available to builds for this build * project.

*/ inline ProjectEnvironment& WithEnvironmentVariables(Aws::Vector&& value) { SetEnvironmentVariables(std::move(value)); return *this;} /** *

A set of environment variables to make available to builds for this build * project.

*/ inline ProjectEnvironment& AddEnvironmentVariables(const EnvironmentVariable& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.push_back(value); return *this; } /** *

A set of environment variables to make available to builds for this build * project.

*/ inline ProjectEnvironment& AddEnvironmentVariables(EnvironmentVariable&& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.push_back(std::move(value)); return *this; } /** *

Enables running the Docker daemon inside a Docker container. Set to true only * if the build project is used to build Docker images. Otherwise, a build that * attempts to interact with the Docker daemon fails. The default setting is * false.

You can initialize the Docker daemon during the * install phase of your build by adding one of the following sets of commands to * the install phase of your buildspec file:

If the operating system's base * image is Ubuntu Linux:

- nohup /usr/local/bin/dockerd * --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 * --storage-driver=overlay&

- timeout 15 sh -c "until * docker info; do echo .; sleep 1; done"

If the operating system's * base image is Alpine Linux and the previous command does not work, add the * -t argument to timeout:

- nohup * /usr/local/bin/dockerd --host=unix:///var/run/docker.sock * --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- * timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

*/ inline bool GetPrivilegedMode() const{ return m_privilegedMode; } /** *

Enables running the Docker daemon inside a Docker container. Set to true only * if the build project is used to build Docker images. Otherwise, a build that * attempts to interact with the Docker daemon fails. The default setting is * false.

You can initialize the Docker daemon during the * install phase of your build by adding one of the following sets of commands to * the install phase of your buildspec file:

If the operating system's base * image is Ubuntu Linux:

- nohup /usr/local/bin/dockerd * --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 * --storage-driver=overlay&

- timeout 15 sh -c "until * docker info; do echo .; sleep 1; done"

If the operating system's * base image is Alpine Linux and the previous command does not work, add the * -t argument to timeout:

- nohup * /usr/local/bin/dockerd --host=unix:///var/run/docker.sock * --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- * timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

*/ inline bool PrivilegedModeHasBeenSet() const { return m_privilegedModeHasBeenSet; } /** *

Enables running the Docker daemon inside a Docker container. Set to true only * if the build project is used to build Docker images. Otherwise, a build that * attempts to interact with the Docker daemon fails. The default setting is * false.

You can initialize the Docker daemon during the * install phase of your build by adding one of the following sets of commands to * the install phase of your buildspec file:

If the operating system's base * image is Ubuntu Linux:

- nohup /usr/local/bin/dockerd * --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 * --storage-driver=overlay&

- timeout 15 sh -c "until * docker info; do echo .; sleep 1; done"

If the operating system's * base image is Alpine Linux and the previous command does not work, add the * -t argument to timeout:

- nohup * /usr/local/bin/dockerd --host=unix:///var/run/docker.sock * --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- * timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

*/ inline void SetPrivilegedMode(bool value) { m_privilegedModeHasBeenSet = true; m_privilegedMode = value; } /** *

Enables running the Docker daemon inside a Docker container. Set to true only * if the build project is used to build Docker images. Otherwise, a build that * attempts to interact with the Docker daemon fails. The default setting is * false.

You can initialize the Docker daemon during the * install phase of your build by adding one of the following sets of commands to * the install phase of your buildspec file:

If the operating system's base * image is Ubuntu Linux:

- nohup /usr/local/bin/dockerd * --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 * --storage-driver=overlay&

- timeout 15 sh -c "until * docker info; do echo .; sleep 1; done"

If the operating system's * base image is Alpine Linux and the previous command does not work, add the * -t argument to timeout:

- nohup * /usr/local/bin/dockerd --host=unix:///var/run/docker.sock * --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- * timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

*/ inline ProjectEnvironment& WithPrivilegedMode(bool value) { SetPrivilegedMode(value); return *this;} /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline const Aws::String& GetCertificate() const{ return m_certificate; } /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline bool CertificateHasBeenSet() const { return m_certificateHasBeenSet; } /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline void SetCertificate(const Aws::String& value) { m_certificateHasBeenSet = true; m_certificate = value; } /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline void SetCertificate(Aws::String&& value) { m_certificateHasBeenSet = true; m_certificate = std::move(value); } /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline void SetCertificate(const char* value) { m_certificateHasBeenSet = true; m_certificate.assign(value); } /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline ProjectEnvironment& WithCertificate(const Aws::String& value) { SetCertificate(value); return *this;} /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline ProjectEnvironment& WithCertificate(Aws::String&& value) { SetCertificate(std::move(value)); return *this;} /** *

The ARN of the Amazon S3 bucket, path prefix, and object key that contains * the PEM-encoded certificate for the build project. For more information, see certificate * in the CodeBuild User Guide.

*/ inline ProjectEnvironment& WithCertificate(const char* value) { SetCertificate(value); return *this;} /** *

The credentials for access to a private registry.

*/ inline const RegistryCredential& GetRegistryCredential() const{ return m_registryCredential; } /** *

The credentials for access to a private registry.

*/ inline bool RegistryCredentialHasBeenSet() const { return m_registryCredentialHasBeenSet; } /** *

The credentials for access to a private registry.

*/ inline void SetRegistryCredential(const RegistryCredential& value) { m_registryCredentialHasBeenSet = true; m_registryCredential = value; } /** *

The credentials for access to a private registry.

*/ inline void SetRegistryCredential(RegistryCredential&& value) { m_registryCredentialHasBeenSet = true; m_registryCredential = std::move(value); } /** *

The credentials for access to a private registry.

*/ inline ProjectEnvironment& WithRegistryCredential(const RegistryCredential& value) { SetRegistryCredential(value); return *this;} /** *

The credentials for access to a private registry.

*/ inline ProjectEnvironment& WithRegistryCredential(RegistryCredential&& value) { SetRegistryCredential(std::move(value)); return *this;} /** *

The type of credentials CodeBuild uses to pull images in your build. There * are two valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust CodeBuild service principal.

  • * SERVICE_ROLE specifies that CodeBuild uses your build project's * service role.

When you use a cross-account or private * registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild * curated image, you must use CODEBUILD credentials.

*/ inline const ImagePullCredentialsType& GetImagePullCredentialsType() const{ return m_imagePullCredentialsType; } /** *

The type of credentials CodeBuild uses to pull images in your build. There * are two valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust CodeBuild service principal.

  • * SERVICE_ROLE specifies that CodeBuild uses your build project's * service role.

When you use a cross-account or private * registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild * curated image, you must use CODEBUILD credentials.

*/ inline bool ImagePullCredentialsTypeHasBeenSet() const { return m_imagePullCredentialsTypeHasBeenSet; } /** *

The type of credentials CodeBuild uses to pull images in your build. There * are two valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust CodeBuild service principal.

  • * SERVICE_ROLE specifies that CodeBuild uses your build project's * service role.

When you use a cross-account or private * registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild * curated image, you must use CODEBUILD credentials.

*/ inline void SetImagePullCredentialsType(const ImagePullCredentialsType& value) { m_imagePullCredentialsTypeHasBeenSet = true; m_imagePullCredentialsType = value; } /** *

The type of credentials CodeBuild uses to pull images in your build. There * are two valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust CodeBuild service principal.

  • * SERVICE_ROLE specifies that CodeBuild uses your build project's * service role.

When you use a cross-account or private * registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild * curated image, you must use CODEBUILD credentials.

*/ inline void SetImagePullCredentialsType(ImagePullCredentialsType&& value) { m_imagePullCredentialsTypeHasBeenSet = true; m_imagePullCredentialsType = std::move(value); } /** *

The type of credentials CodeBuild uses to pull images in your build. There * are two valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust CodeBuild service principal.

  • * SERVICE_ROLE specifies that CodeBuild uses your build project's * service role.

When you use a cross-account or private * registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild * curated image, you must use CODEBUILD credentials.

*/ inline ProjectEnvironment& WithImagePullCredentialsType(const ImagePullCredentialsType& value) { SetImagePullCredentialsType(value); return *this;} /** *

The type of credentials CodeBuild uses to pull images in your build. There * are two valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust CodeBuild service principal.

  • * SERVICE_ROLE specifies that CodeBuild uses your build project's * service role.

When you use a cross-account or private * registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild * curated image, you must use CODEBUILD credentials.

*/ inline ProjectEnvironment& WithImagePullCredentialsType(ImagePullCredentialsType&& value) { SetImagePullCredentialsType(std::move(value)); return *this;} private: EnvironmentType m_type; bool m_typeHasBeenSet = false; Aws::String m_image; bool m_imageHasBeenSet = false; ComputeType m_computeType; bool m_computeTypeHasBeenSet = false; Aws::Vector m_environmentVariables; bool m_environmentVariablesHasBeenSet = false; bool m_privilegedMode; bool m_privilegedModeHasBeenSet = false; Aws::String m_certificate; bool m_certificateHasBeenSet = false; RegistryCredential m_registryCredential; bool m_registryCredentialHasBeenSet = false; ImagePullCredentialsType m_imagePullCredentialsType; bool m_imagePullCredentialsTypeHasBeenSet = false; }; } // namespace Model } // namespace CodeBuild } // namespace Aws