/*
* 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
{
///
/// Container for the parameters to the CreateProject operation.
/// Creates a build project.
///
public partial class CreateProjectRequest : AmazonCodeBuildRequest
{
private ProjectArtifacts _artifacts;
private bool? _badgeEnabled;
private ProjectBuildBatchConfig _buildBatchConfig;
private ProjectCache _cache;
private int? _concurrentBuildLimit;
private string _description;
private string _encryptionKey;
private ProjectEnvironment _environment;
private List _fileSystemLocations = new List();
private LogsConfig _logsConfig;
private string _name;
private int? _queuedTimeoutInMinutes;
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;
///
/// Gets and sets the property Artifacts.
///
/// Information about the build output artifacts for the build project.
///
///
[AWSProperty(Required=true)]
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 BadgeEnabled.
///
/// Set this to true to generate a publicly accessible URL for your project's build badge.
///
///
public bool BadgeEnabled
{
get { return this._badgeEnabled.GetValueOrDefault(); }
set { this._badgeEnabled = value; }
}
// Check to see if BadgeEnabled property is set
internal bool IsSetBadgeEnabled()
{
return this._badgeEnabled.HasValue;
}
///
/// 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.
///
/// Stores recently used information so that it can be quickly accessed at a later time.
///
///
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 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>
).
///
///
[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 the build project.
///
///
[AWSProperty(Required=true)]
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 LogsConfig.
///
/// Information about logs for the build project. These can be logs in CloudWatch Logs,
/// logs uploaded to a specified 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(Required=true, 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 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 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 precedence 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(Required=true, 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 the build project.
///
///
[AWSProperty(Required=true)]
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 it times
/// out any build that has not been 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.
///
/// VpcConfig enables CodeBuild to access resources in an Amazon VPC.
///
///
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;
}
}
}