/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the codebuild-2016-10-06.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.CodeBuild.Model
{
///
/// Information about the build environment of the build project.
///
public partial class ProjectEnvironment
{
private string _certificate;
private ComputeType _computeType;
private List _environmentVariables = new List();
private string _image;
private ImagePullCredentialsType _imagePullCredentialsType;
private bool? _privilegedMode;
private RegistryCredential _registryCredential;
private EnvironmentType _type;
///
/// Gets and sets the property 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.
///
///
public string Certificate
{
get { return this._certificate; }
set { this._certificate = value; }
}
// Check to see if Certificate property is set
internal bool IsSetCertificate()
{
return this._certificate != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public ComputeType ComputeType
{
get { return this._computeType; }
set { this._computeType = value; }
}
// Check to see if ComputeType property is set
internal bool IsSetComputeType()
{
return this._computeType != null;
}
///
/// Gets and sets the property EnvironmentVariables.
///
/// A set of environment variables to make available to builds for this build project.
///
///
public List EnvironmentVariables
{
get { return this._environmentVariables; }
set { this._environmentVariables = value; }
}
// Check to see if EnvironmentVariables property is set
internal bool IsSetEnvironmentVariables()
{
return this._environmentVariables != null && this._environmentVariables.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true, Min=1)]
public string Image
{
get { return this._image; }
set { this._image = value; }
}
// Check to see if Image property is set
internal bool IsSetImage()
{
return this._image != null;
}
///
/// Gets and sets the property 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.
///
///
///
public ImagePullCredentialsType ImagePullCredentialsType
{
get { return this._imagePullCredentialsType; }
set { this._imagePullCredentialsType = value; }
}
// Check to see if ImagePullCredentialsType property is set
internal bool IsSetImagePullCredentialsType()
{
return this._imagePullCredentialsType != null;
}
///
/// Gets and sets the property 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"
///
///
///
public bool PrivilegedMode
{
get { return this._privilegedMode.GetValueOrDefault(); }
set { this._privilegedMode = value; }
}
// Check to see if PrivilegedMode property is set
internal bool IsSetPrivilegedMode()
{
return this._privilegedMode.HasValue;
}
///
/// Gets and sets the property RegistryCredential.
///
/// The credentials for access to a private registry.
///
///
public RegistryCredential RegistryCredential
{
get { return this._registryCredential; }
set { this._registryCredential = value; }
}
// Check to see if RegistryCredential property is set
internal bool IsSetRegistryCredential()
{
return this._registryCredential != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public EnvironmentType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}