/*
* 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 a build project.
///
public partial class Project
{
private string _arn;
private ProjectArtifacts _artifacts;
private ProjectBadge _badge;
private ProjectBuildBatchConfig _buildBatchConfig;
private ProjectCache _cache;
private int? _concurrentBuildLimit;
private DateTime? _created;
private string _description;
private string _encryptionKey;
private ProjectEnvironment _environment;
private List _fileSystemLocations = new List();
private DateTime? _lastModified;
private LogsConfig _logsConfig;
private string _name;
private ProjectVisibilityType _projectVisibility;
private string _publicProjectAlias;
private int? _queuedTimeoutInMinutes;
private string _resourceAccessRole;
private List _secondaryArtifacts = new List();
private List _secondarySources = new List();
private List _secondarySourceVersions = new List();
private string _serviceRole;
private ProjectSource _source;
private string _sourceVersion;
private List _tags = new List();
private int? _timeoutInMinutes;
private VpcConfig _vpcConfig;
private Webhook _webhook;
///
/// Gets and sets the property Arn.
///
/// The Amazon Resource Name (ARN) of the build project.
///
///
public string Arn
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if Arn property is set
internal bool IsSetArn()
{
return this._arn != null;
}
///
/// Gets and sets the property Artifacts.
///
/// Information about the build output artifacts for the build project.
///
///
public ProjectArtifacts Artifacts
{
get { return this._artifacts; }
set { this._artifacts = value; }
}
// Check to see if Artifacts property is set
internal bool IsSetArtifacts()
{
return this._artifacts != null;
}
///
/// Gets and sets the property Badge.
///
/// Information about the build badge for the build project.
///
///
public ProjectBadge Badge
{
get { return this._badge; }
set { this._badge = value; }
}
// Check to see if Badge property is set
internal bool IsSetBadge()
{
return this._badge != null;
}
///
/// Gets and sets the property BuildBatchConfig.
///
/// A ProjectBuildBatchConfig object that defines the batch build options for the
/// project.
///
///
public ProjectBuildBatchConfig BuildBatchConfig
{
get { return this._buildBatchConfig; }
set { this._buildBatchConfig = value; }
}
// Check to see if BuildBatchConfig property is set
internal bool IsSetBuildBatchConfig()
{
return this._buildBatchConfig != null;
}
///
/// Gets and sets the property Cache.
///
/// Information about the cache for the build project.
///
///
public ProjectCache Cache
{
get { return this._cache; }
set { this._cache = value; }
}
// Check to see if Cache property is set
internal bool IsSetCache()
{
return this._cache != null;
}
///
/// Gets and sets the property ConcurrentBuildLimit.
///
/// The maximum number of concurrent builds that are allowed for this project.
///
///
///
/// New builds are only started if the current number of builds is less than or equal
/// to this limit. If the current build count meets this limit, new builds are throttled
/// and are not run.
///
///
public int ConcurrentBuildLimit
{
get { return this._concurrentBuildLimit.GetValueOrDefault(); }
set { this._concurrentBuildLimit = value; }
}
// Check to see if ConcurrentBuildLimit property is set
internal bool IsSetConcurrentBuildLimit()
{
return this._concurrentBuildLimit.HasValue;
}
///
/// Gets and sets the property Created.
///
/// When the build project was created, expressed in Unix time format.
///
///
public DateTime Created
{
get { return this._created.GetValueOrDefault(); }
set { this._created = value; }
}
// Check to see if Created property is set
internal bool IsSetCreated()
{
return this._created.HasValue;
}
///
/// Gets and sets the property Description.
///
/// A description that makes the build project easy to identify.
///
///
[AWSProperty(Min=0, Max=255)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property EncryptionKey.
///
/// The Key Management Service customer master key (CMK) to be used for encrypting the
/// build output artifacts.
///
///
///
/// You can use a cross-account KMS key to encrypt the build output artifacts if your
/// service role has permission to that key.
///
///
///
/// You can specify either the Amazon Resource Name (ARN) of the CMK or, if available,
/// the CMK's alias (using the format alias/<alias-name>
). If you don't
/// specify a value, CodeBuild uses the managed CMK for Amazon Simple Storage Service
/// (Amazon S3).
///
///
[AWSProperty(Min=1)]
public string EncryptionKey
{
get { return this._encryptionKey; }
set { this._encryptionKey = value; }
}
// Check to see if EncryptionKey property is set
internal bool IsSetEncryptionKey()
{
return this._encryptionKey != null;
}
///
/// Gets and sets the property Environment.
///
/// Information about the build environment for this build project.
///
///
public ProjectEnvironment Environment
{
get { return this._environment; }
set { this._environment = value; }
}
// Check to see if Environment property is set
internal bool IsSetEnvironment()
{
return this._environment != null;
}
///
/// Gets and sets the property FileSystemLocations.
///
/// An array of ProjectFileSystemLocation
objects for a CodeBuild build
/// project. A ProjectFileSystemLocation
object specifies the identifier
,
/// location
, mountOptions
, mountPoint
, and type
/// of a file system created using Amazon Elastic File System.
///
///
public List FileSystemLocations
{
get { return this._fileSystemLocations; }
set { this._fileSystemLocations = value; }
}
// Check to see if FileSystemLocations property is set
internal bool IsSetFileSystemLocations()
{
return this._fileSystemLocations != null && this._fileSystemLocations.Count > 0;
}
///
/// Gets and sets the property LastModified.
///
/// When the build project's settings were last modified, expressed in Unix time format.
///
///
public DateTime LastModified
{
get { return this._lastModified.GetValueOrDefault(); }
set { this._lastModified = value; }
}
// Check to see if LastModified property is set
internal bool IsSetLastModified()
{
return this._lastModified.HasValue;
}
///
/// Gets and sets the property LogsConfig.
///
/// Information about logs for the build project. A project can create logs in CloudWatch
/// Logs, an S3 bucket, or both.
///
///
public LogsConfig LogsConfig
{
get { return this._logsConfig; }
set { this._logsConfig = value; }
}
// Check to see if LogsConfig property is set
internal bool IsSetLogsConfig()
{
return this._logsConfig != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the build project.
///
///
[AWSProperty(Min=2, Max=255)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property ProjectVisibility.
///
public ProjectVisibilityType ProjectVisibility
{
get { return this._projectVisibility; }
set { this._projectVisibility = value; }
}
// Check to see if ProjectVisibility property is set
internal bool IsSetProjectVisibility()
{
return this._projectVisibility != null;
}
///
/// Gets and sets the property PublicProjectAlias.
///
/// Contains the project identifier used with the public build APIs.
///
///
[AWSProperty(Min=1)]
public string PublicProjectAlias
{
get { return this._publicProjectAlias; }
set { this._publicProjectAlias = value; }
}
// Check to see if PublicProjectAlias property is set
internal bool IsSetPublicProjectAlias()
{
return this._publicProjectAlias != null;
}
///
/// Gets and sets the property QueuedTimeoutInMinutes.
///
/// The number of minutes a build is allowed to be queued before it times out.
///
///
[AWSProperty(Min=5, Max=480)]
public int QueuedTimeoutInMinutes
{
get { return this._queuedTimeoutInMinutes.GetValueOrDefault(); }
set { this._queuedTimeoutInMinutes = value; }
}
// Check to see if QueuedTimeoutInMinutes property is set
internal bool IsSetQueuedTimeoutInMinutes()
{
return this._queuedTimeoutInMinutes.HasValue;
}
///
/// Gets and sets the property ResourceAccessRole.
///
/// The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon
/// S3 artifacts for the project's builds.
///
///
[AWSProperty(Min=1)]
public string ResourceAccessRole
{
get { return this._resourceAccessRole; }
set { this._resourceAccessRole = value; }
}
// Check to see if ResourceAccessRole property is set
internal bool IsSetResourceAccessRole()
{
return this._resourceAccessRole != null;
}
///
/// Gets and sets the property SecondaryArtifacts.
///
/// An array of ProjectArtifacts
objects.
///
///
[AWSProperty(Min=0, Max=12)]
public List SecondaryArtifacts
{
get { return this._secondaryArtifacts; }
set { this._secondaryArtifacts = value; }
}
// Check to see if SecondaryArtifacts property is set
internal bool IsSetSecondaryArtifacts()
{
return this._secondaryArtifacts != null && this._secondaryArtifacts.Count > 0;
}
///
/// Gets and sets the property SecondarySources.
///
/// An array of ProjectSource
objects.
///
///
[AWSProperty(Min=0, Max=12)]
public List SecondarySources
{
get { return this._secondarySources; }
set { this._secondarySources = value; }
}
// Check to see if SecondarySources property is set
internal bool IsSetSecondarySources()
{
return this._secondarySources != null && this._secondarySources.Count > 0;
}
///
/// Gets and sets the property SecondarySourceVersions.
///
/// An array of ProjectSourceVersion
objects. If secondarySourceVersions
/// is specified at the build level, then they take over these secondarySourceVersions
/// (at the project level).
///
///
[AWSProperty(Min=0, Max=12)]
public List SecondarySourceVersions
{
get { return this._secondarySourceVersions; }
set { this._secondarySourceVersions = value; }
}
// Check to see if SecondarySourceVersions property is set
internal bool IsSetSecondarySourceVersions()
{
return this._secondarySourceVersions != null && this._secondarySourceVersions.Count > 0;
}
///
/// Gets and sets the property ServiceRole.
///
/// The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web
/// Services services on behalf of the Amazon Web Services account.
///
///
[AWSProperty(Min=1)]
public string ServiceRole
{
get { return this._serviceRole; }
set { this._serviceRole = value; }
}
// Check to see if ServiceRole property is set
internal bool IsSetServiceRole()
{
return this._serviceRole != null;
}
///
/// Gets and sets the property Source.
///
/// Information about the build input source code for this build project.
///
///
public ProjectSource Source
{
get { return this._source; }
set { this._source = value; }
}
// Check to see if Source property is set
internal bool IsSetSource()
{
return this._source != null;
}
///
/// Gets and sets the property SourceVersion.
///
/// A version of the build input to be built for this project. If not specified, the latest
/// version is used. If specified, it must be one of:
///
/// -
///
/// For CodeCommit: the commit ID, branch, or Git tag to use.
///
///
-
///
/// For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds
/// to the version of the source code you want to build. If a pull request ID is specified,
/// it must use the format
pr/pull-request-ID
(for example pr/25
).
/// If a branch name is specified, the branch's HEAD commit ID is used. If not specified,
/// the default branch's HEAD commit ID is used.
///
/// -
///
/// For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version
/// of the source code you want to build. If a branch name is specified, the branch's
/// HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
///
///
-
///
/// For Amazon S3: the version ID of the object that represents the build input ZIP file
/// to use.
///
///
///
/// If sourceVersion
is specified at the build level, then that version takes
/// precedence over this sourceVersion
(at the project level).
///
///
///
/// For more information, see Source
/// Version Sample with CodeBuild in the CodeBuild User Guide.
///
///
public string SourceVersion
{
get { return this._sourceVersion; }
set { this._sourceVersion = value; }
}
// Check to see if SourceVersion property is set
internal bool IsSetSourceVersion()
{
return this._sourceVersion != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of tag key and value pairs associated with this build project.
///
///
///
/// These tags are available for use by Amazon Web Services services that support CodeBuild
/// build project tags.
///
///
[AWSProperty(Min=0, Max=50)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TimeoutInMinutes.
///
/// How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before timing
/// out any related build that did not get marked as completed. The default is 60 minutes.
///
///
[AWSProperty(Min=5, Max=480)]
public int TimeoutInMinutes
{
get { return this._timeoutInMinutes.GetValueOrDefault(); }
set { this._timeoutInMinutes = value; }
}
// Check to see if TimeoutInMinutes property is set
internal bool IsSetTimeoutInMinutes()
{
return this._timeoutInMinutes.HasValue;
}
///
/// Gets and sets the property VpcConfig.
///
/// Information about the VPC configuration that CodeBuild accesses.
///
///
public VpcConfig VpcConfig
{
get { return this._vpcConfig; }
set { this._vpcConfig = value; }
}
// Check to see if VpcConfig property is set
internal bool IsSetVpcConfig()
{
return this._vpcConfig != null;
}
///
/// Gets and sets the property Webhook.
///
/// Information about a webhook that connects repository events to a build project in
/// CodeBuild.
///
///
public Webhook Webhook
{
get { return this._webhook; }
set { this._webhook = value; }
}
// Check to see if Webhook property is set
internal bool IsSetWebhook()
{
return this._webhook != null;
}
}
}