/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #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 AWS_SECURITYHUB_API AwsCodeBuildProjectEnvironment { public: AwsCodeBuildProjectEnvironment(); AwsCodeBuildProjectEnvironment(Aws::Utils::Json::JsonView jsonValue); AwsCodeBuildProjectEnvironment& operator=(Aws::Utils::Json::JsonView jsonValue); 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;} /** *

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

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS CodeBuild curated image, you must use CODEBUILD * credentials.

*/ inline const Aws::String& GetImagePullCredentialsType() const{ return m_imagePullCredentialsType; } /** *

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

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS CodeBuild curated image, you must use CODEBUILD * credentials.

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

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

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS 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 AWS CodeBuild uses to pull images in your build.

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS 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 AWS CodeBuild uses to pull images in your build.

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS 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 AWS CodeBuild uses to pull images in your build.

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS CodeBuild curated image, you must use CODEBUILD * credentials.

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

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

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS CodeBuild curated image, you must use CODEBUILD * credentials.

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

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

*

Valid values:

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

  • *

    SERVICE_ROLE specifies that AWS 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 AWS 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; Aws::String m_imagePullCredentialsType; bool m_imagePullCredentialsTypeHasBeenSet; AwsCodeBuildProjectEnvironmentRegistryCredential m_registryCredential; bool m_registryCredentialHasBeenSet; Aws::String m_type; bool m_typeHasBeenSet; }; } // namespace Model } // namespace SecurityHub } // namespace Aws