/*
* 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 StartBuild operation.
/// Starts running a build.
///
public partial class StartBuildRequest : AmazonCodeBuildRequest
{
private ProjectArtifacts _artifactsOverride;
private string _buildspecOverride;
private BuildStatusConfig _buildStatusConfigOverride;
private ProjectCache _cacheOverride;
private string _certificateOverride;
private ComputeType _computeTypeOverride;
private bool? _debugSessionEnabled;
private string _encryptionKeyOverride;
private EnvironmentType _environmentTypeOverride;
private List _environmentVariablesOverride = new List();
private int? _gitCloneDepthOverride;
private GitSubmodulesConfig _gitSubmodulesConfigOverride;
private string _idempotencyToken;
private string _imageOverride;
private ImagePullCredentialsType _imagePullCredentialsTypeOverride;
private bool? _insecureSslOverride;
private LogsConfig _logsConfigOverride;
private bool? _privilegedModeOverride;
private string _projectName;
private int? _queuedTimeoutInMinutesOverride;
private RegistryCredential _registryCredentialOverride;
private bool? _reportBuildStatusOverride;
private List _secondaryArtifactsOverride = new List();
private List _secondarySourcesOverride = new List();
private List _secondarySourcesVersionOverride = new List();
private string _serviceRoleOverride;
private SourceAuth _sourceAuthOverride;
private string _sourceLocationOverride;
private SourceType _sourceTypeOverride;
private string _sourceVersion;
private int? _timeoutInMinutesOverride;
///
/// Gets and sets the property ArtifactsOverride.
///
/// Build output artifact settings that override, for this build only, the latest ones
/// already defined in the build project.
///
///
public ProjectArtifacts ArtifactsOverride
{
get { return this._artifactsOverride; }
set { this._artifactsOverride = value; }
}
// Check to see if ArtifactsOverride property is set
internal bool IsSetArtifactsOverride()
{
return this._artifactsOverride != null;
}
///
/// Gets and sets the property BuildspecOverride.
///
/// A buildspec file declaration that overrides, for this build only, the latest one already
/// defined in the build project.
///
///
///
/// If this value is set, it can be either an inline buildspec definition, the path to
/// an alternate buildspec file relative to the value of the built-in CODEBUILD_SRC_DIR
/// environment variable, or the path to an S3 bucket. The bucket must be in the same
/// Amazon Web Services Region as the build project. Specify the buildspec file using
/// its ARN (for example, arn:aws:s3:::my-codebuild-sample2/buildspec.yml
).
/// If this value is not provided or is set to an empty string, the source code must contain
/// a buildspec file in its root directory. For more information, see Buildspec
/// File Name and Storage Location.
///
///
public string BuildspecOverride
{
get { return this._buildspecOverride; }
set { this._buildspecOverride = value; }
}
// Check to see if BuildspecOverride property is set
internal bool IsSetBuildspecOverride()
{
return this._buildspecOverride != null;
}
///
/// Gets and sets the property BuildStatusConfigOverride.
///
/// Contains information that defines how the build project reports the build status to
/// the source provider. This option is only used when the source provider is GITHUB
,
/// GITHUB_ENTERPRISE
, or BITBUCKET
.
///
///
public BuildStatusConfig BuildStatusConfigOverride
{
get { return this._buildStatusConfigOverride; }
set { this._buildStatusConfigOverride = value; }
}
// Check to see if BuildStatusConfigOverride property is set
internal bool IsSetBuildStatusConfigOverride()
{
return this._buildStatusConfigOverride != null;
}
///
/// Gets and sets the property CacheOverride.
///
/// A ProjectCache object specified for this build that overrides the one defined in the
/// build project.
///
///
public ProjectCache CacheOverride
{
get { return this._cacheOverride; }
set { this._cacheOverride = value; }
}
// Check to see if CacheOverride property is set
internal bool IsSetCacheOverride()
{
return this._cacheOverride != null;
}
///
/// Gets and sets the property CertificateOverride.
///
/// The name of a certificate for this build that overrides the one specified in the build
/// project.
///
///
public string CertificateOverride
{
get { return this._certificateOverride; }
set { this._certificateOverride = value; }
}
// Check to see if CertificateOverride property is set
internal bool IsSetCertificateOverride()
{
return this._certificateOverride != null;
}
///
/// Gets and sets the property ComputeTypeOverride.
///
/// The name of a compute type for this build that overrides the one specified in the
/// build project.
///
///
public ComputeType ComputeTypeOverride
{
get { return this._computeTypeOverride; }
set { this._computeTypeOverride = value; }
}
// Check to see if ComputeTypeOverride property is set
internal bool IsSetComputeTypeOverride()
{
return this._computeTypeOverride != null;
}
///
/// Gets and sets the property DebugSessionEnabled.
///
/// Specifies if session debugging is enabled for this build. For more information, see
/// Viewing
/// a running build in Session Manager.
///
///
public bool DebugSessionEnabled
{
get { return this._debugSessionEnabled.GetValueOrDefault(); }
set { this._debugSessionEnabled = value; }
}
// Check to see if DebugSessionEnabled property is set
internal bool IsSetDebugSessionEnabled()
{
return this._debugSessionEnabled.HasValue;
}
///
/// Gets and sets the property EncryptionKeyOverride.
///
/// The Key Management Service customer master key (CMK) that overrides the one specified
/// in the build project. The CMK key encrypts 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 EncryptionKeyOverride
{
get { return this._encryptionKeyOverride; }
set { this._encryptionKeyOverride = value; }
}
// Check to see if EncryptionKeyOverride property is set
internal bool IsSetEncryptionKeyOverride()
{
return this._encryptionKeyOverride != null;
}
///
/// Gets and sets the property EnvironmentTypeOverride.
///
/// A container type for this build that overrides the one specified in the build project.
///
///
public EnvironmentType EnvironmentTypeOverride
{
get { return this._environmentTypeOverride; }
set { this._environmentTypeOverride = value; }
}
// Check to see if EnvironmentTypeOverride property is set
internal bool IsSetEnvironmentTypeOverride()
{
return this._environmentTypeOverride != null;
}
///
/// Gets and sets the property EnvironmentVariablesOverride.
///
/// A set of environment variables that overrides, for this build only, the latest ones
/// already defined in the build project.
///
///
public List EnvironmentVariablesOverride
{
get { return this._environmentVariablesOverride; }
set { this._environmentVariablesOverride = value; }
}
// Check to see if EnvironmentVariablesOverride property is set
internal bool IsSetEnvironmentVariablesOverride()
{
return this._environmentVariablesOverride != null && this._environmentVariablesOverride.Count > 0;
}
///
/// Gets and sets the property GitCloneDepthOverride.
///
/// The user-defined depth of history, with a minimum value of 0, that overrides, for
/// this build only, any previous depth of history defined in the build project.
///
///
[AWSProperty(Min=0)]
public int GitCloneDepthOverride
{
get { return this._gitCloneDepthOverride.GetValueOrDefault(); }
set { this._gitCloneDepthOverride = value; }
}
// Check to see if GitCloneDepthOverride property is set
internal bool IsSetGitCloneDepthOverride()
{
return this._gitCloneDepthOverride.HasValue;
}
///
/// Gets and sets the property GitSubmodulesConfigOverride.
///
/// Information about the Git submodules configuration for this build of an CodeBuild
/// build project.
///
///
public GitSubmodulesConfig GitSubmodulesConfigOverride
{
get { return this._gitSubmodulesConfigOverride; }
set { this._gitSubmodulesConfigOverride = value; }
}
// Check to see if GitSubmodulesConfigOverride property is set
internal bool IsSetGitSubmodulesConfigOverride()
{
return this._gitSubmodulesConfigOverride != null;
}
///
/// Gets and sets the property IdempotencyToken.
///
/// A unique, case sensitive identifier you provide to ensure the idempotency of the StartBuild
/// request. The token is included in the StartBuild request and is valid for 5 minutes.
/// If you repeat the StartBuild request with the same token, but change a parameter,
/// CodeBuild returns a parameter mismatch error.
///
///
public string IdempotencyToken
{
get { return this._idempotencyToken; }
set { this._idempotencyToken = value; }
}
// Check to see if IdempotencyToken property is set
internal bool IsSetIdempotencyToken()
{
return this._idempotencyToken != null;
}
///
/// Gets and sets the property ImageOverride.
///
/// The name of an image for this build that overrides the one specified in the build
/// project.
///
///
[AWSProperty(Min=1)]
public string ImageOverride
{
get { return this._imageOverride; }
set { this._imageOverride = value; }
}
// Check to see if ImageOverride property is set
internal bool IsSetImageOverride()
{
return this._imageOverride != null;
}
///
/// Gets and sets the property ImagePullCredentialsTypeOverride.
///
/// 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's service principal.
///
///
- SERVICE_ROLE
-
///
/// Specifies that CodeBuild uses your build project's service role.
///
///
///
/// When using a cross-account or private registry image, you must use SERVICE_ROLE
/// credentials. When using an CodeBuild curated image, you must use CODEBUILD
/// credentials.
///
///
public ImagePullCredentialsType ImagePullCredentialsTypeOverride
{
get { return this._imagePullCredentialsTypeOverride; }
set { this._imagePullCredentialsTypeOverride = value; }
}
// Check to see if ImagePullCredentialsTypeOverride property is set
internal bool IsSetImagePullCredentialsTypeOverride()
{
return this._imagePullCredentialsTypeOverride != null;
}
///
/// Gets and sets the property InsecureSslOverride.
///
/// Enable this flag to override the insecure SSL setting that is specified in the build
/// project. The insecure SSL setting determines whether to ignore SSL warnings while
/// connecting to the project source code. This override applies only if the build's source
/// is GitHub Enterprise.
///
///
public bool InsecureSslOverride
{
get { return this._insecureSslOverride.GetValueOrDefault(); }
set { this._insecureSslOverride = value; }
}
// Check to see if InsecureSslOverride property is set
internal bool IsSetInsecureSslOverride()
{
return this._insecureSslOverride.HasValue;
}
///
/// Gets and sets the property LogsConfigOverride.
///
/// Log settings for this build that override the log settings defined in the build project.
///
///
///
public LogsConfig LogsConfigOverride
{
get { return this._logsConfigOverride; }
set { this._logsConfigOverride = value; }
}
// Check to see if LogsConfigOverride property is set
internal bool IsSetLogsConfigOverride()
{
return this._logsConfigOverride != null;
}
///
/// Gets and sets the property PrivilegedModeOverride.
///
/// Enable this flag to override privileged mode in the build project.
///
///
public bool PrivilegedModeOverride
{
get { return this._privilegedModeOverride.GetValueOrDefault(); }
set { this._privilegedModeOverride = value; }
}
// Check to see if PrivilegedModeOverride property is set
internal bool IsSetPrivilegedModeOverride()
{
return this._privilegedModeOverride.HasValue;
}
///
/// Gets and sets the property ProjectName.
///
/// The name of the CodeBuild build project to start running a build.
///
///
[AWSProperty(Required=true, Min=1)]
public string ProjectName
{
get { return this._projectName; }
set { this._projectName = value; }
}
// Check to see if ProjectName property is set
internal bool IsSetProjectName()
{
return this._projectName != null;
}
///
/// Gets and sets the property QueuedTimeoutInMinutesOverride.
///
/// The number of minutes a build is allowed to be queued before it times out.
///
///
[AWSProperty(Min=5, Max=480)]
public int QueuedTimeoutInMinutesOverride
{
get { return this._queuedTimeoutInMinutesOverride.GetValueOrDefault(); }
set { this._queuedTimeoutInMinutesOverride = value; }
}
// Check to see if QueuedTimeoutInMinutesOverride property is set
internal bool IsSetQueuedTimeoutInMinutesOverride()
{
return this._queuedTimeoutInMinutesOverride.HasValue;
}
///
/// Gets and sets the property RegistryCredentialOverride.
///
/// The credentials for access to a private registry.
///
///
public RegistryCredential RegistryCredentialOverride
{
get { return this._registryCredentialOverride; }
set { this._registryCredentialOverride = value; }
}
// Check to see if RegistryCredentialOverride property is set
internal bool IsSetRegistryCredentialOverride()
{
return this._registryCredentialOverride != null;
}
///
/// Gets and sets the property ReportBuildStatusOverride.
///
/// Set to true to report to your source provider the status of a build's start and completion.
/// If you use this option with a source provider other than GitHub, GitHub Enterprise,
/// or Bitbucket, an invalidInputException
is thrown.
///
///
///
/// To be able to report the build status to the source provider, the user associated
/// with the source provider must have write access to the repo. If the user does not
/// have write access, the build status cannot be updated. For more information, see Source
/// provider access in the CodeBuild User Guide.
///
///
///
/// The status of a build triggered by a webhook is always reported to your source provider.
///
///
///
///
public bool ReportBuildStatusOverride
{
get { return this._reportBuildStatusOverride.GetValueOrDefault(); }
set { this._reportBuildStatusOverride = value; }
}
// Check to see if ReportBuildStatusOverride property is set
internal bool IsSetReportBuildStatusOverride()
{
return this._reportBuildStatusOverride.HasValue;
}
///
/// Gets and sets the property SecondaryArtifactsOverride.
///
/// An array of ProjectArtifacts
objects.
///
///
[AWSProperty(Min=0, Max=12)]
public List SecondaryArtifactsOverride
{
get { return this._secondaryArtifactsOverride; }
set { this._secondaryArtifactsOverride = value; }
}
// Check to see if SecondaryArtifactsOverride property is set
internal bool IsSetSecondaryArtifactsOverride()
{
return this._secondaryArtifactsOverride != null && this._secondaryArtifactsOverride.Count > 0;
}
///
/// Gets and sets the property SecondarySourcesOverride.
///
/// An array of ProjectSource
objects.
///
///
[AWSProperty(Min=0, Max=12)]
public List SecondarySourcesOverride
{
get { return this._secondarySourcesOverride; }
set { this._secondarySourcesOverride = value; }
}
// Check to see if SecondarySourcesOverride property is set
internal bool IsSetSecondarySourcesOverride()
{
return this._secondarySourcesOverride != null && this._secondarySourcesOverride.Count > 0;
}
///
/// Gets and sets the property SecondarySourcesVersionOverride.
///
/// An array of ProjectSourceVersion
objects that specify one or more versions
/// of the project's secondary sources to be used for this build only.
///
///
[AWSProperty(Min=0, Max=12)]
public List SecondarySourcesVersionOverride
{
get { return this._secondarySourcesVersionOverride; }
set { this._secondarySourcesVersionOverride = value; }
}
// Check to see if SecondarySourcesVersionOverride property is set
internal bool IsSetSecondarySourcesVersionOverride()
{
return this._secondarySourcesVersionOverride != null && this._secondarySourcesVersionOverride.Count > 0;
}
///
/// Gets and sets the property ServiceRoleOverride.
///
/// The name of a service role for this build that overrides the one specified in the
/// build project.
///
///
[AWSProperty(Min=1)]
public string ServiceRoleOverride
{
get { return this._serviceRoleOverride; }
set { this._serviceRoleOverride = value; }
}
// Check to see if ServiceRoleOverride property is set
internal bool IsSetServiceRoleOverride()
{
return this._serviceRoleOverride != null;
}
///
/// Gets and sets the property SourceAuthOverride.
///
/// An authorization type for this build that overrides the one defined in the build project.
/// This override applies only if the build project's source is BitBucket or GitHub.
///
///
public SourceAuth SourceAuthOverride
{
get { return this._sourceAuthOverride; }
set { this._sourceAuthOverride = value; }
}
// Check to see if SourceAuthOverride property is set
internal bool IsSetSourceAuthOverride()
{
return this._sourceAuthOverride != null;
}
///
/// Gets and sets the property SourceLocationOverride.
///
/// A location that overrides, for this build, the source location for the one defined
/// in the build project.
///
///
public string SourceLocationOverride
{
get { return this._sourceLocationOverride; }
set { this._sourceLocationOverride = value; }
}
// Check to see if SourceLocationOverride property is set
internal bool IsSetSourceLocationOverride()
{
return this._sourceLocationOverride != null;
}
///
/// Gets and sets the property SourceTypeOverride.
///
/// A source input type, for this build, that overrides the source input defined in the
/// build project.
///
///
public SourceType SourceTypeOverride
{
get { return this._sourceTypeOverride; }
set { this._sourceTypeOverride = value; }
}
// Check to see if SourceTypeOverride property is set
internal bool IsSetSourceTypeOverride()
{
return this._sourceTypeOverride != null;
}
///
/// Gets and sets the property SourceVersion.
///
/// The version of the build input to be built, for this build only. If not specified,
/// the latest version is used. If specified, the contents depends on the source provider:
///
/// - CodeCommit
-
///
/// The commit ID, branch, or Git tag to use.
///
///
- 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.
///
/// - 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.
///
///
- Amazon S3
-
///
/// The version ID of the object that represents the build input ZIP file to use.
///
///
///
/// If sourceVersion
is specified at the project level, then this sourceVersion
/// (at the build level) takes precedence.
///
///
///
/// 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 TimeoutInMinutesOverride.
///
/// The number of build timeout minutes, from 5 to 480 (8 hours), that overrides, for
/// this build only, the latest setting already defined in the build project.
///
///
[AWSProperty(Min=5, Max=480)]
public int TimeoutInMinutesOverride
{
get { return this._timeoutInMinutesOverride.GetValueOrDefault(); }
set { this._timeoutInMinutesOverride = value; }
}
// Check to see if TimeoutInMinutesOverride property is set
internal bool IsSetTimeoutInMinutesOverride()
{
return this._timeoutInMinutesOverride.HasValue;
}
}
}