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

Information about the build environment for this build project.

See * Also:

AWS * API Reference

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

The certificate to use with this build project.

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

The certificate to use with this build project.

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

The certificate to use with this build project.

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

The certificate to use with this build project.

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

The certificate to use with this build project.

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

The certificate to use with this build project.

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

The certificate to use with this build project.

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

The certificate to use with this build project.

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

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

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

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

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

A set of environment variables to make available to builds for the 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 the 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 the build * project.

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

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

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

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

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

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

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

Whether to allow the Docker daemon to run inside a Docker container. Set to * true if the build project is used to build Docker images.

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

Whether to allow the Docker daemon to run inside a Docker container. Set to * true if the build project is used to build Docker images.

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

Whether to allow the Docker daemon to run inside a Docker container. Set to * true if the build project is used to build Docker images.

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

Whether to allow the Docker daemon to run inside a Docker container. Set to * true if the build project is used to build Docker images.

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

The type of credentials CodeBuild uses to pull images in your build.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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 Aws::String& GetImagePullCredentialsType() const{ return m_imagePullCredentialsType; } /** *

The type of credentials CodeBuild uses to pull images in your build.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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 Aws::String& value) { m_imagePullCredentialsTypeHasBeenSet = true; m_imagePullCredentialsType = value; } /** *

The type of credentials CodeBuild uses to pull images in your build.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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(Aws::String&& value) { m_imagePullCredentialsTypeHasBeenSet = true; m_imagePullCredentialsType = std::move(value); } /** *

The type of credentials CodeBuild uses to pull images in your build.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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 char* value) { m_imagePullCredentialsTypeHasBeenSet = true; m_imagePullCredentialsType.assign(value); } /** *

The type of credentials CodeBuild uses to pull images in your build.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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 AwsCodeBuildProjectEnvironment& WithImagePullCredentialsType(const Aws::String& value) { SetImagePullCredentialsType(value); return *this;} /** *

The type of credentials CodeBuild uses to pull images in your build.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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 AwsCodeBuildProjectEnvironment& WithImagePullCredentialsType(Aws::String&& value) { SetImagePullCredentialsType(std::move(value)); return *this;} /** *

The type of credentials CodeBuild uses to pull images in your build.

*

Valid values:

  • CODEBUILD specifies that * CodeBuild uses its own credentials. This requires that you modify your ECR * repository policy to trust the 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 AwsCodeBuildProjectEnvironment& WithImagePullCredentialsType(const char* value) { SetImagePullCredentialsType(value); return *this;} /** *

The credentials for access to a private registry.

*/ inline const AwsCodeBuildProjectEnvironmentRegistryCredential& 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 AwsCodeBuildProjectEnvironmentRegistryCredential& value) { m_registryCredentialHasBeenSet = true; m_registryCredential = value; } /** *

The credentials for access to a private registry.

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

The credentials for access to a private registry.

*/ inline AwsCodeBuildProjectEnvironment& WithRegistryCredential(const AwsCodeBuildProjectEnvironmentRegistryCredential& value) { SetRegistryCredential(value); return *this;} /** *

The credentials for access to a private registry.

*/ inline AwsCodeBuildProjectEnvironment& WithRegistryCredential(AwsCodeBuildProjectEnvironmentRegistryCredential&& value) { SetRegistryCredential(std::move(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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ inline const Aws::String& 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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ 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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ inline void SetType(const Aws::String& 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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ inline void SetType(Aws::String&& 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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ inline AwsCodeBuildProjectEnvironment& WithType(const Aws::String& 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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ inline AwsCodeBuildProjectEnvironment& WithType(Aws::String&& value) { SetType(std::move(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), Europe (Ireland), Asia Pacific * (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe * (Frankfurt).

The environment type LINUX_CONTAINER with * compute type build.general1.2xlarge is available only in Regions US East (N. * Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (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 (N. Virginia), US West (Oregon), Canada (Central), Europe * (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), Asia * Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China * (Beijing), and China (Ningxia).

Valid values: * WINDOWS_CONTAINER | LINUX_CONTAINER | * LINUX_GPU_CONTAINER | ARM_CONTAINER

*/ inline AwsCodeBuildProjectEnvironment& WithType(const char* value) { SetType(value); return *this;} private: Aws::String m_certificate; bool m_certificateHasBeenSet = false; Aws::Vector m_environmentVariables; bool m_environmentVariablesHasBeenSet = false; bool m_privilegedMode; bool m_privilegedModeHasBeenSet = false; Aws::String m_imagePullCredentialsType; bool m_imagePullCredentialsTypeHasBeenSet = false; AwsCodeBuildProjectEnvironmentRegistryCredential m_registryCredential; bool m_registryCredentialHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws