awscodebuild

package
v2.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2022 License: Apache-2.0 Imports: 18 Imported by: 12

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BitBucketSourceCredentials_IsConstruct

func BitBucketSourceCredentials_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func BitBucketSourceCredentials_IsResource

func BitBucketSourceCredentials_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func CfnProject_CFN_RESOURCE_TYPE_NAME

func CfnProject_CFN_RESOURCE_TYPE_NAME() *string

func CfnProject_IsCfnElement

func CfnProject_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnProject_IsCfnResource

func CfnProject_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnProject_IsConstruct

func CfnProject_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnReportGroup_CFN_RESOURCE_TYPE_NAME

func CfnReportGroup_CFN_RESOURCE_TYPE_NAME() *string

func CfnReportGroup_IsCfnElement

func CfnReportGroup_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnReportGroup_IsCfnResource

func CfnReportGroup_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnReportGroup_IsConstruct

func CfnReportGroup_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnSourceCredential_CFN_RESOURCE_TYPE_NAME

func CfnSourceCredential_CFN_RESOURCE_TYPE_NAME() *string

func CfnSourceCredential_IsCfnElement

func CfnSourceCredential_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnSourceCredential_IsCfnResource

func CfnSourceCredential_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnSourceCredential_IsConstruct

func CfnSourceCredential_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func GitHubEnterpriseSourceCredentials_IsConstruct

func GitHubEnterpriseSourceCredentials_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func GitHubEnterpriseSourceCredentials_IsResource

func GitHubEnterpriseSourceCredentials_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func GitHubSourceCredentials_IsConstruct

func GitHubSourceCredentials_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func GitHubSourceCredentials_IsResource

func GitHubSourceCredentials_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NewArtifacts_Override

func NewArtifacts_Override(a Artifacts, props *ArtifactsProps)

func NewBitBucketSourceCredentials_Override

func NewBitBucketSourceCredentials_Override(b BitBucketSourceCredentials, scope constructs.Construct, id *string, props *BitBucketSourceCredentialsProps)

func NewBuildSpec_Override

func NewBuildSpec_Override(b BuildSpec)

func NewCache_Override

func NewCache_Override(c Cache)

func NewCfnProject_Override

func NewCfnProject_Override(c CfnProject, scope constructs.Construct, id *string, props *CfnProjectProps)

Create a new `AWS::CodeBuild::Project`.

func NewCfnReportGroup_Override

func NewCfnReportGroup_Override(c CfnReportGroup, scope constructs.Construct, id *string, props *CfnReportGroupProps)

Create a new `AWS::CodeBuild::ReportGroup`.

func NewCfnSourceCredential_Override

func NewCfnSourceCredential_Override(c CfnSourceCredential, scope constructs.Construct, id *string, props *CfnSourceCredentialProps)

Create a new `AWS::CodeBuild::SourceCredential`.

func NewFileSystemLocation_Override

func NewFileSystemLocation_Override(f FileSystemLocation)

func NewGitHubEnterpriseSourceCredentials_Override

func NewGitHubEnterpriseSourceCredentials_Override(g GitHubEnterpriseSourceCredentials, scope constructs.Construct, id *string, props *GitHubEnterpriseSourceCredentialsProps)

func NewGitHubSourceCredentials_Override

func NewGitHubSourceCredentials_Override(g GitHubSourceCredentials, scope constructs.Construct, id *string, props *GitHubSourceCredentialsProps)

func NewPipelineProject_Override

func NewPipelineProject_Override(p PipelineProject, scope constructs.Construct, id *string, props *PipelineProjectProps)

func NewProject_Override

func NewProject_Override(p Project, scope constructs.Construct, id *string, props *ProjectProps)

func NewReportGroup_Override

func NewReportGroup_Override(r ReportGroup, scope constructs.Construct, id *string, props *ReportGroupProps)

func NewSource_Override

func NewSource_Override(s Source, props *SourceProps)

func NewUntrustedCodeBoundaryPolicy_Override

func NewUntrustedCodeBoundaryPolicy_Override(u UntrustedCodeBoundaryPolicy, scope constructs.Construct, id *string, props *UntrustedCodeBoundaryPolicyProps)

func PhaseChangeEvent_BuildComplete

func PhaseChangeEvent_BuildComplete() *string

func PhaseChangeEvent_BuildId

func PhaseChangeEvent_BuildId() *string

func PhaseChangeEvent_CompletedPhase

func PhaseChangeEvent_CompletedPhase() *string

func PhaseChangeEvent_CompletedPhaseDurationSeconds

func PhaseChangeEvent_CompletedPhaseDurationSeconds() *string

func PhaseChangeEvent_CompletedPhaseStatus

func PhaseChangeEvent_CompletedPhaseStatus() *string

func PhaseChangeEvent_ProjectName

func PhaseChangeEvent_ProjectName() *string

func PipelineProject_IsConstruct

func PipelineProject_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func PipelineProject_IsResource

func PipelineProject_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func PipelineProject_SerializeEnvVariables

func PipelineProject_SerializeEnvVariables(environmentVariables *map[string]*BuildEnvironmentVariable, validateNoPlainTextSecrets *bool, principal awsiam.IGrantable) *[]*CfnProject_EnvironmentVariableProperty

Convert the environment variables map of string to {@link BuildEnvironmentVariable}, which is the customer-facing type, to a list of {@link CfnProject.EnvironmentVariableProperty}, which is the representation of environment variables in CloudFormation.

Returns: an array of {@link CfnProject.EnvironmentVariableProperty} instances

func Project_IsConstruct

func Project_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Project_IsResource

func Project_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Project_SerializeEnvVariables

func Project_SerializeEnvVariables(environmentVariables *map[string]*BuildEnvironmentVariable, validateNoPlainTextSecrets *bool, principal awsiam.IGrantable) *[]*CfnProject_EnvironmentVariableProperty

Convert the environment variables map of string to {@link BuildEnvironmentVariable}, which is the customer-facing type, to a list of {@link CfnProject.EnvironmentVariableProperty}, which is the representation of environment variables in CloudFormation.

Returns: an array of {@link CfnProject.EnvironmentVariableProperty} instances

func ReportGroup_IsConstruct

func ReportGroup_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func ReportGroup_IsResource

func ReportGroup_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func StateChangeEvent_BuildId

func StateChangeEvent_BuildId() *string

func StateChangeEvent_BuildStatus

func StateChangeEvent_BuildStatus() *string

func StateChangeEvent_CurrentPhase

func StateChangeEvent_CurrentPhase() *string

func StateChangeEvent_ProjectName

func StateChangeEvent_ProjectName() *string

func UntrustedCodeBoundaryPolicy_FromAwsManagedPolicyName

func UntrustedCodeBoundaryPolicy_FromAwsManagedPolicyName(managedPolicyName *string) awsiam.IManagedPolicy

Import a managed policy from one of the policies that AWS manages.

For this managed policy, you only need to know the name to be able to use it.

Some managed policy names start with "service-role/", some start with "job-function/", and some don't start with anything. Include the prefix when constructing this object.

func UntrustedCodeBoundaryPolicy_FromManagedPolicyArn

func UntrustedCodeBoundaryPolicy_FromManagedPolicyArn(scope constructs.Construct, id *string, managedPolicyArn *string) awsiam.IManagedPolicy

Import an external managed policy by ARN.

For this managed policy, you only need to know the ARN to be able to use it. This can be useful if you got the ARN from a CloudFormation Export.

If the imported Managed Policy ARN is a Token (such as a `CfnParameter.valueAsString` or a `Fn.importValue()`) *and* the referenced managed policy has a `path` (like `arn:...:policy/AdminPolicy/AdminAllow`), the `managedPolicyName` property will not resolve to the correct value. Instead it will resolve to the first path component. We unfortunately cannot express the correct calculation of the full path name as a CloudFormation expression. In this scenario the Managed Policy ARN should be supplied without the `path` in order to resolve the correct managed policy resource.

func UntrustedCodeBoundaryPolicy_FromManagedPolicyName

func UntrustedCodeBoundaryPolicy_FromManagedPolicyName(scope constructs.Construct, id *string, managedPolicyName *string) awsiam.IManagedPolicy

Import a customer managed policy from the managedPolicyName.

For this managed policy, you only need to know the name to be able to use it.

func UntrustedCodeBoundaryPolicy_IsConstruct

func UntrustedCodeBoundaryPolicy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func UntrustedCodeBoundaryPolicy_IsResource

func UntrustedCodeBoundaryPolicy_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

Types

type Artifacts

type Artifacts interface {
	IArtifacts
	Identifier() *string
	Type() *string
	Bind(_scope constructs.Construct, _project IProject) *ArtifactsConfig
}

Artifacts definition for a CodeBuild Project.

TODO: EXAMPLE

type ArtifactsConfig

type ArtifactsConfig struct {
	// The low-level CloudFormation artifacts property.
	ArtifactsProperty *CfnProject_ArtifactsProperty `json:"artifactsProperty" yaml:"artifactsProperty"`
}

The type returned from {@link IArtifacts#bind}.

TODO: EXAMPLE

type ArtifactsProps

type ArtifactsProps struct {
	// The artifact identifier.
	//
	// This property is required on secondary artifacts.
	Identifier *string `json:"identifier" yaml:"identifier"`
}

Properties common to all Artifacts classes.

TODO: EXAMPLE

type BatchBuildConfig

type BatchBuildConfig struct {
	// The IAM batch service Role of this Project.
	Role awsiam.IRole `json:"role" yaml:"role"`
}

The type returned from {@link IProject#enableBatchBuilds}.

TODO: EXAMPLE

type BindToCodePipelineOptions

type BindToCodePipelineOptions struct {
	// The artifact bucket that will be used by the action that invokes this project.
	ArtifactBucket awss3.IBucket `json:"artifactBucket" yaml:"artifactBucket"`
}

The extra options passed to the {@link IProject.bindToCodePipeline} method.

TODO: EXAMPLE

type BitBucketSourceCredentials

type BitBucketSourceCredentials interface {
	awscdk.Resource
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

The source credentials used when contacting the BitBucket API.

**Note**: CodeBuild only allows a single credential for BitBucket to be saved in a given AWS account in a given region - any attempt to add more than one will result in an error.

TODO: EXAMPLE

func NewBitBucketSourceCredentials

func NewBitBucketSourceCredentials(scope constructs.Construct, id *string, props *BitBucketSourceCredentialsProps) BitBucketSourceCredentials

type BitBucketSourceCredentialsProps

type BitBucketSourceCredentialsProps struct {
	// Your BitBucket application password.
	Password awscdk.SecretValue `json:"password" yaml:"password"`
	// Your BitBucket username.
	Username awscdk.SecretValue `json:"username" yaml:"username"`
}

Construction properties of {@link BitBucketSourceCredentials}.

TODO: EXAMPLE

type BitBucketSourceProps

type BitBucketSourceProps struct {
	// The source identifier.
	//
	// This property is required on secondary sources.
	Identifier *string `json:"identifier" yaml:"identifier"`
	// The BitBucket account/user that owns the repo.
	//
	// TODO: EXAMPLE
	//
	Owner *string `json:"owner" yaml:"owner"`
	// The name of the repo (without the username).
	//
	// TODO: EXAMPLE
	//
	Repo *string `json:"repo" yaml:"repo"`
	// The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build.
	//
	// TODO: EXAMPLE
	//
	BranchOrRef *string `json:"branchOrRef" yaml:"branchOrRef"`
	// The depth of history to download.
	//
	// Minimum value is 0.
	// If this value is 0, greater than 25, or not provided,
	// then the full history is downloaded with each build of the project.
	CloneDepth *float64 `json:"cloneDepth" yaml:"cloneDepth"`
	// Whether to fetch submodules while cloning git repo.
	FetchSubmodules *bool `json:"fetchSubmodules" yaml:"fetchSubmodules"`
	// Whether to send notifications on your build's start and end.
	ReportBuildStatus *bool `json:"reportBuildStatus" yaml:"reportBuildStatus"`
	// Whether to create a webhook that will trigger a build every time an event happens in the repository.
	Webhook *bool `json:"webhook" yaml:"webhook"`
	// A list of webhook filters that can constraint what events in the repository will trigger a build.
	//
	// A build is triggered if any of the provided filter groups match.
	// Only valid if `webhook` was not provided as false.
	WebhookFilters *[]FilterGroup `json:"webhookFilters" yaml:"webhookFilters"`
	// Trigger a batch build from a webhook instead of a standard one.
	//
	// Enabling this will enable batch builds on the CodeBuild project.
	WebhookTriggersBatchBuild *bool `json:"webhookTriggersBatchBuild" yaml:"webhookTriggersBatchBuild"`
}

Construction properties for {@link BitBucketSource}.

TODO: EXAMPLE

type BucketCacheOptions

type BucketCacheOptions struct {
	// The prefix to use to store the cache in the bucket.
	Prefix *string `json:"prefix" yaml:"prefix"`
}

TODO: EXAMPLE

type BuildEnvironment

type BuildEnvironment struct {
	// The image used for the builds.
	BuildImage IBuildImage `json:"buildImage" yaml:"buildImage"`
	// The location of the PEM-encoded certificate for the build project.
	Certificate *BuildEnvironmentCertificate `json:"certificate" yaml:"certificate"`
	// The type of compute to use for this build.
	//
	// See the {@link ComputeType} enum for the possible values.
	ComputeType ComputeType `json:"computeType" yaml:"computeType"`
	// The environment variables that your builds can use.
	EnvironmentVariables *map[string]*BuildEnvironmentVariable `json:"environmentVariables" yaml:"environmentVariables"`
	// Indicates how the project builds Docker images.
	//
	// Specify true to enable
	// running the Docker daemon inside a Docker container. This value must be
	// set to true only if this build project will be used to build Docker
	// images, and the specified build environment image is not one provided by
	// AWS CodeBuild with Docker support. Otherwise, all associated builds that
	// attempt to interact with the Docker daemon will fail.
	Privileged *bool `json:"privileged" yaml:"privileged"`
}

TODO: EXAMPLE

type BuildEnvironmentCertificate

type BuildEnvironmentCertificate struct {
	// The bucket where the certificate is.
	Bucket awss3.IBucket `json:"bucket" yaml:"bucket"`
	// The full path and name of the key file.
	ObjectKey *string `json:"objectKey" yaml:"objectKey"`
}

Location of a PEM certificate on S3.

TODO: EXAMPLE

type BuildEnvironmentVariable

type BuildEnvironmentVariable struct {
	// The value of the environment variable.
	//
	// For plain-text variables (the default), this is the literal value of variable.
	// For SSM parameter variables, pass the name of the parameter here (`parameterName` property of `IParameter`).
	// For SecretsManager variables secrets, pass either the secret name (`secretName` property of `ISecret`)
	// or the secret ARN (`secretArn` property of `ISecret`) here,
	// along with optional SecretsManager qualifiers separated by ':', like the JSON key, or the version or stage
	// (see https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.secrets-manager for details).
	Value interface{} `json:"value" yaml:"value"`
	// The type of environment variable.
	Type BuildEnvironmentVariableType `json:"type" yaml:"type"`
}

TODO: EXAMPLE

type BuildEnvironmentVariableType

type BuildEnvironmentVariableType string

TODO: EXAMPLE

const (
	BuildEnvironmentVariableType_PLAINTEXT       BuildEnvironmentVariableType = "PLAINTEXT"
	BuildEnvironmentVariableType_PARAMETER_STORE BuildEnvironmentVariableType = "PARAMETER_STORE"
	BuildEnvironmentVariableType_SECRETS_MANAGER BuildEnvironmentVariableType = "SECRETS_MANAGER"
)

type BuildImageBindOptions

type BuildImageBindOptions struct {
}

Optional arguments to {@link IBuildImage.binder} - currently empty.

TODO: EXAMPLE

type BuildImageConfig

type BuildImageConfig struct {
}

The return type from {@link IBuildImage.binder} - currently empty.

TODO: EXAMPLE

type BuildSpec

type BuildSpec interface {
	IsImmediate() *bool
	ToBuildSpec() *string
}

BuildSpec for CodeBuild projects.

TODO: EXAMPLE

func BuildSpec_FromObject

func BuildSpec_FromObject(value *map[string]interface{}) BuildSpec

func BuildSpec_FromObjectToYaml

func BuildSpec_FromObjectToYaml(value *map[string]interface{}) BuildSpec

Create a buildspec from an object that will be rendered as YAML in the resulting CloudFormation template.

func BuildSpec_FromSourceFilename

func BuildSpec_FromSourceFilename(filename *string) BuildSpec

Use a file from the source as buildspec.

Use this if you want to use a file different from 'buildspec.yml'`

type Cache

type Cache interface {
}

Cache options for CodeBuild Project.

A cache can store reusable pieces of your build environment and use them across multiple builds.

TODO: EXAMPLE

See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-caching.html

func Cache_Bucket

func Cache_Bucket(bucket awss3.IBucket, options *BucketCacheOptions) Cache

Create an S3 caching strategy.

func Cache_Local

func Cache_Local(modes ...LocalCacheMode) Cache

Create a local caching strategy.

func Cache_None

func Cache_None() Cache

type CfnProject

type CfnProject interface {
	awscdk.CfnResource
	awscdk.IInspectable
	Artifacts() interface{}
	SetArtifacts(val interface{})
	AttrArn() *string
	BadgeEnabled() interface{}
	SetBadgeEnabled(val interface{})
	BuildBatchConfig() interface{}
	SetBuildBatchConfig(val interface{})
	Cache() interface{}
	SetCache(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ConcurrentBuildLimit() *float64
	SetConcurrentBuildLimit(val *float64)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	EncryptionKey() *string
	SetEncryptionKey(val *string)
	Environment() interface{}
	SetEnvironment(val interface{})
	FileSystemLocations() interface{}
	SetFileSystemLocations(val interface{})
	LogicalId() *string
	LogsConfig() interface{}
	SetLogsConfig(val interface{})
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	QueuedTimeoutInMinutes() *float64
	SetQueuedTimeoutInMinutes(val *float64)
	Ref() *string
	ResourceAccessRole() *string
	SetResourceAccessRole(val *string)
	SecondaryArtifacts() interface{}
	SetSecondaryArtifacts(val interface{})
	SecondarySources() interface{}
	SetSecondarySources(val interface{})
	SecondarySourceVersions() interface{}
	SetSecondarySourceVersions(val interface{})
	ServiceRole() *string
	SetServiceRole(val *string)
	Source() interface{}
	SetSource(val interface{})
	SourceVersion() *string
	SetSourceVersion(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TimeoutInMinutes() *float64
	SetTimeoutInMinutes(val *float64)
	Triggers() interface{}
	SetTriggers(val interface{})
	UpdatedProperites() *map[string]interface{}
	Visibility() *string
	SetVisibility(val *string)
	VpcConfig() interface{}
	SetVpcConfig(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::CodeBuild::Project`.

The `AWS::CodeBuild::Project` resource configures how AWS CodeBuild builds your source code. For example, it tells CodeBuild where to get the source code and which build environment to use.

TODO: EXAMPLE

func NewCfnProject

func NewCfnProject(scope constructs.Construct, id *string, props *CfnProjectProps) CfnProject

Create a new `AWS::CodeBuild::Project`.

type CfnProjectProps

type CfnProjectProps struct {
	// `Artifacts` is a property of the [AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies output settings for artifacts generated by an AWS CodeBuild build.
	Artifacts interface{} `json:"artifacts" yaml:"artifacts"`
	// The build environment settings for the project, such as the environment type or the environment variables to use for the build environment.
	Environment interface{} `json:"environment" yaml:"environment"`
	// The ARN of the IAM role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.
	ServiceRole *string `json:"serviceRole" yaml:"serviceRole"`
	// The source code settings for the project, such as the source code's repository type and location.
	Source interface{} `json:"source" yaml:"source"`
	// Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge.
	//
	// For more information, see [Build Badges Sample](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-badges.html) in the *AWS CodeBuild User Guide* .
	//
	// > Including build badges with your project is currently not supported if the source type is CodePipeline. If you specify `CODEPIPELINE` for the `Source` property, do not specify the `BadgeEnabled` property.
	BadgeEnabled interface{} `json:"badgeEnabled" yaml:"badgeEnabled"`
	// A `ProjectBuildBatchConfig` object that defines the batch build options for the project.
	BuildBatchConfig interface{} `json:"buildBatchConfig" yaml:"buildBatchConfig"`
	// Settings that AWS CodeBuild uses to store and reuse build dependencies.
	Cache interface{} `json:"cache" yaml:"cache"`
	// 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.
	ConcurrentBuildLimit *float64 `json:"concurrentBuildLimit" yaml:"concurrentBuildLimit"`
	// A description that makes the build project easy to identify.
	Description *string `json:"description" yaml:"description"`
	// The AWS 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).
	EncryptionKey *string `json:"encryptionKey" yaml:"encryptionKey"`
	// 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.
	FileSystemLocations interface{} `json:"fileSystemLocations" yaml:"fileSystemLocations"`
	// Information about logs for the build project.
	//
	// A project can create logs in CloudWatch Logs, an S3 bucket, or both.
	LogsConfig interface{} `json:"logsConfig" yaml:"logsConfig"`
	// The name of the build project.
	//
	// The name must be unique across all of the projects in your AWS account .
	Name *string `json:"name" yaml:"name"`
	// The number of minutes a build is allowed to be queued before it times out.
	QueuedTimeoutInMinutes *float64 `json:"queuedTimeoutInMinutes" yaml:"queuedTimeoutInMinutes"`
	// The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the project's builds.
	ResourceAccessRole *string `json:"resourceAccessRole" yaml:"resourceAccessRole"`
	// A list of `Artifacts` objects.
	//
	// Each artifacts object specifies output settings that the project generates during a build.
	SecondaryArtifacts interface{} `json:"secondaryArtifacts" yaml:"secondaryArtifacts"`
	// An array of `ProjectSource` objects.
	SecondarySources interface{} `json:"secondarySources" yaml:"secondarySources"`
	// An array of `ProjectSourceVersion` objects.
	//
	// If `secondarySourceVersions` is specified at the build level, then they take over these `secondarySourceVersions` (at the project level).
	SecondarySourceVersions interface{} `json:"secondarySourceVersions" yaml:"secondarySourceVersions"`
	// 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](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the *AWS CodeBuild User Guide* .
	SourceVersion *string `json:"sourceVersion" yaml:"sourceVersion"`
	// An arbitrary set of tags (key-value pairs) for the AWS CodeBuild project.
	//
	// These tags are available for use by AWS services that support AWS CodeBuild build project tags.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// How long, in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed.
	//
	// The default is 60 minutes.
	TimeoutInMinutes *float64 `json:"timeoutInMinutes" yaml:"timeoutInMinutes"`
	// For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository.
	Triggers interface{} `json:"triggers" yaml:"triggers"`
	// Specifies the visibility of the project's builds. Possible values are:.
	//
	// - **PUBLIC_READ** - The project builds are visible to the public.
	// - **PRIVATE** - The project builds are not visible to the public.
	Visibility *string `json:"visibility" yaml:"visibility"`
	// `VpcConfig` specifies settings that enable AWS CodeBuild to access resources in an Amazon VPC.
	//
	// For more information, see [Use AWS CodeBuild with Amazon Virtual Private Cloud](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html) in the *AWS CodeBuild User Guide* .
	VpcConfig interface{} `json:"vpcConfig" yaml:"vpcConfig"`
}

Properties for defining a `CfnProject`.

TODO: EXAMPLE

type CfnProject_ArtifactsProperty

type CfnProject_ArtifactsProperty struct {
	// The type of build output artifact. Valid values include:.
	//
	// - `CODEPIPELINE` : The build project has build output generated through CodePipeline.
	//
	// > The `CODEPIPELINE` type is not supported for `secondaryArtifacts` .
	// - `NO_ARTIFACTS` : The build project does not produce any build output.
	// - `S3` : The build project stores build output in Amazon S3.
	Type *string `json:"type" yaml:"type"`
	// An identifier for this artifact definition.
	ArtifactIdentifier *string `json:"artifactIdentifier" yaml:"artifactIdentifier"`
	// Set to true if you do not want your output artifacts encrypted.
	//
	// This option is valid only if your artifacts type is Amazon Simple Storage Service (Amazon S3). If this is set with another artifacts type, an `invalidInputException` is thrown.
	EncryptionDisabled interface{} `json:"encryptionDisabled" yaml:"encryptionDisabled"`
	// Information about the build output artifact location:.
	//
	// - If `type` is set to `CODEPIPELINE` , AWS CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild .
	// - If `type` is set to `NO_ARTIFACTS` , this value is ignored if specified, because no build output is produced.
	// - If `type` is set to `S3` , this is the name of the output bucket.
	//
	// If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property. For all of the other types, you must specify this property.
	Location *string `json:"location" yaml:"location"`
	// Along with `path` and `namespaceType` , the pattern that AWS CodeBuild uses to name and store the output artifact:.
	//
	// - If `type` is set to `CODEPIPELINE` , AWS CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of AWS CodeBuild .
	// - If `type` is set to `NO_ARTIFACTS` , this value is ignored if specified, because no build output is produced.
	// - If `type` is set to `S3` , this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket.
	//
	// For example:
	//
	// - If `path` is set to `MyArtifacts` , `namespaceType` is set to `BUILD_ID` , and `name` is set to `MyArtifact.zip` , then the output artifact is stored in `MyArtifacts/ *build-ID* /MyArtifact.zip` .
	// - If `path` is empty, `namespaceType` is set to `NONE` , and `name` is set to " `/` ", the output artifact is stored in the root of the output bucket.
	// - If `path` is set to `MyArtifacts` , `namespaceType` is set to `BUILD_ID` , and `name` is set to " `/` ", the output artifact is stored in `MyArtifacts/ *build-ID*` .
	//
	// If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property. For all of the other types, you must specify this property.
	Name *string `json:"name" yaml:"name"`
	// Along with `path` and `name` , the pattern that AWS CodeBuild uses to determine the name and location to store the output artifact:  - If `type` is set to `CODEPIPELINE` , CodePipeline ignores this value if specified.
	//
	// This is because CodePipeline manages its build output names instead of AWS CodeBuild .
	// - If `type` is set to `NO_ARTIFACTS` , this value is ignored if specified, because no build output is produced.
	// - If `type` is set to `S3` , valid values include:
	//
	// - `BUILD_ID` : Include the build ID in the location of the build output artifact.
	// - `NONE` : Do not include the build ID. This is the default if `namespaceType` is not specified.
	//
	// For example, if `path` is set to `MyArtifacts` , `namespaceType` is set to `BUILD_ID` , and `name` is set to `MyArtifact.zip` , the output artifact is stored in `MyArtifacts/<build-ID>/MyArtifact.zip` .
	NamespaceType *string `json:"namespaceType" yaml:"namespaceType"`
	// If set to true a name specified in the buildspec file overrides the artifact name.
	//
	// The name specified in a buildspec file is calculated at build time and uses the Shell command language. For example, you can append a date and time to your artifact name so that it is always unique.
	OverrideArtifactName interface{} `json:"overrideArtifactName" yaml:"overrideArtifactName"`
	// The type of build output artifact to create:.
	//
	// - If `type` is set to `CODEPIPELINE` , CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of AWS CodeBuild .
	// - If `type` is set to `NO_ARTIFACTS` , this value is ignored if specified, because no build output is produced.
	// - If `type` is set to `S3` , valid values include:
	//
	// - `NONE` : AWS CodeBuild creates in the output bucket a folder that contains the build output. This is the default if `packaging` is not specified.
	// - `ZIP` : AWS CodeBuild creates in the output bucket a ZIP file that contains the build output.
	Packaging *string `json:"packaging" yaml:"packaging"`
	// Along with `namespaceType` and `name` , the pattern that AWS CodeBuild uses to name and store the output artifact:.
	//
	// - If `type` is set to `CODEPIPELINE` , CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of AWS CodeBuild .
	// - If `type` is set to `NO_ARTIFACTS` , this value is ignored if specified, because no build output is produced.
	// - If `type` is set to `S3` , this is the path to the output artifact. If `path` is not specified, `path` is not used.
	//
	// For example, if `path` is set to `MyArtifacts` , `namespaceType` is set to `NONE` , and `name` is set to `MyArtifact.zip` , the output artifact is stored in the output bucket at `MyArtifacts/MyArtifact.zip` .
	Path *string `json:"path" yaml:"path"`
}

`Artifacts` is a property of the [AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies output settings for artifacts generated by an AWS CodeBuild build.

TODO: EXAMPLE

type CfnProject_BatchRestrictionsProperty

type CfnProject_BatchRestrictionsProperty struct {
	// An array of strings that specify the compute types that are allowed for the batch build.
	//
	// See [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the *AWS CodeBuild User Guide* for these values.
	ComputeTypesAllowed *[]*string `json:"computeTypesAllowed" yaml:"computeTypesAllowed"`
	// Specifies the maximum number of builds allowed.
	MaximumBuildsAllowed *float64 `json:"maximumBuildsAllowed" yaml:"maximumBuildsAllowed"`
}

Specifies restrictions for the batch build.

TODO: EXAMPLE

type CfnProject_BuildStatusConfigProperty

type CfnProject_BuildStatusConfigProperty struct {
	// Specifies the context of the build status CodeBuild sends to the source provider.
	//
	// The usage of this parameter depends on the source provider.
	//
	// - **Bitbucket** - This parameter is used for the `name` parameter in the Bitbucket commit status. For more information, see [build](https://docs.aws.amazon.com/https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation.
	// - **GitHub/GitHub Enterprise Server** - This parameter is used for the `context` parameter in the GitHub commit status. For more information, see [Create a commit status](https://docs.aws.amazon.com/https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide.
	Context *string `json:"context" yaml:"context"`
	// Specifies the target url of the build status CodeBuild sends to the source provider.
	//
	// The usage of this parameter depends on the source provider.
	//
	// - **Bitbucket** - This parameter is used for the `url` parameter in the Bitbucket commit status. For more information, see [build](https://docs.aws.amazon.com/https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation.
	// - **GitHub/GitHub Enterprise Server** - This parameter is used for the `target_url` parameter in the GitHub commit status. For more information, see [Create a commit status](https://docs.aws.amazon.com/https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide.
	TargetUrl *string `json:"targetUrl" yaml:"targetUrl"`
}

Contains information that defines how the AWS CodeBuild build project reports the build status to the source provider.

TODO: EXAMPLE

type CfnProject_CloudWatchLogsConfigProperty

type CfnProject_CloudWatchLogsConfigProperty struct {
	// The current status of the logs in CloudWatch Logs for a build project. Valid values are:.
	//
	// - `ENABLED` : CloudWatch Logs are enabled for this build project.
	// - `DISABLED` : CloudWatch Logs are not enabled for this build project.
	Status *string `json:"status" yaml:"status"`
	// The group name of the logs in CloudWatch Logs.
	//
	// For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) .
	GroupName *string `json:"groupName" yaml:"groupName"`
	// The prefix of the stream name of the CloudWatch Logs.
	//
	// For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) .
	StreamName *string `json:"streamName" yaml:"streamName"`
}

`CloudWatchLogs` is a property of the [AWS CodeBuild Project LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html) property type that specifies settings for CloudWatch logs generated by an AWS CodeBuild build.

TODO: EXAMPLE

type CfnProject_EnvironmentProperty

type CfnProject_EnvironmentProperty struct {
	// The type of compute environment.
	//
	// This determines the number of CPU cores and memory the build environment 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 15 GB memory and 8 vCPUs for builds.
	//
	// For more information, see [Build Environment Compute Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the *AWS CodeBuild User Guide.*
	ComputeType *string `json:"computeType" yaml:"computeType"`
	// 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](https://docs.aws.amazon.com//codebuild/latest/userguide/build-env-ref-available.html) in the *AWS CodeBuild user guide* .
	Image *string `json:"image" yaml:"image"`
	// 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](https://docs.aws.amazon.com//codebuild/latest/userguide/build-env-ref-compute-types.html) in the *AWS CodeBuild user guide* .
	Type *string `json:"type" yaml:"type"`
	// 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](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate) in the *AWS CodeBuild User Guide* .
	Certificate *string `json:"certificate" yaml:"certificate"`
	// A set of environment variables to make available to builds for this build project.
	EnvironmentVariables interface{} `json:"environmentVariables" yaml:"environmentVariables"`
	// The type of credentials AWS CodeBuild uses to pull images in your build. There are two valid values:.
	//
	// - `CODEBUILD` specifies that AWS CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust 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.
	ImagePullCredentialsType *string `json:"imagePullCredentialsType" yaml:"imagePullCredentialsType"`
	// 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"`
	PrivilegedMode interface{} `json:"privilegedMode" yaml:"privilegedMode"`
	// `RegistryCredential` is a property of the [AWS::CodeBuild::Project Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment) property that specifies information about credentials that provide access to a private Docker registry. When this is set:.
	//
	// - `imagePullCredentialsType` must be set to `SERVICE_ROLE` .
	// - images cannot be curated or an Amazon ECR image.
	RegistryCredential interface{} `json:"registryCredential" yaml:"registryCredential"`
}

`Environment` is a property of the [AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies the environment for an AWS CodeBuild project.

TODO: EXAMPLE

type CfnProject_EnvironmentVariableProperty

type CfnProject_EnvironmentVariableProperty struct {
	// The name or key of the environment variable.
	Name *string `json:"name" yaml:"name"`
	// The value of the environment variable.
	//
	// > We strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs and secret access keys. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI . For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER` .
	Value *string `json:"value" yaml:"value"`
	// The type of environment variable. Valid values include:.
	//
	// - `PARAMETER_STORE` : An environment variable stored in Systems Manager Parameter Store. To learn how to specify a parameter store environment variable, see [env/parameter-store](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.parameter-store) in the *AWS CodeBuild User Guide* .
	// - `PLAINTEXT` : An environment variable in plain text format. This is the default value.
	// - `SECRETS_MANAGER` : An environment variable stored in AWS Secrets Manager . To learn how to specify a secrets manager environment variable, see [env/secrets-manager](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.secrets-manager) in the *AWS CodeBuild User Guide* .
	Type *string `json:"type" yaml:"type"`
}

`EnvironmentVariable` is a property of the [AWS CodeBuild Project Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html) property type that specifies the name and value of an environment variable for an AWS CodeBuild project environment. When you use the environment to run a build, these variables are available for your builds to use. `EnvironmentVariable` contains a list of `EnvironmentVariable` property types.

TODO: EXAMPLE

type CfnProject_GitSubmodulesConfigProperty

type CfnProject_GitSubmodulesConfigProperty struct {
	// Set to true to fetch Git submodules for your AWS CodeBuild build project.
	FetchSubmodules interface{} `json:"fetchSubmodules" yaml:"fetchSubmodules"`
}

`GitSubmodulesConfig` is a property of the [AWS CodeBuild Project Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) property type that specifies information about the Git submodules configuration for the build project.

TODO: EXAMPLE

type CfnProject_LogsConfigProperty

type CfnProject_LogsConfigProperty struct {
	// Information about CloudWatch Logs for a build project.
	//
	// CloudWatch Logs are enabled by default.
	CloudWatchLogs interface{} `json:"cloudWatchLogs" yaml:"cloudWatchLogs"`
	// Information about logs built to an S3 bucket for a build project.
	//
	// S3 logs are not enabled by default.
	S3Logs interface{} `json:"s3Logs" yaml:"s3Logs"`
}

`LogsConfig` is a property of the [AWS CodeBuild Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies information about logs for a build project. These can be logs in Amazon CloudWatch Logs, built in a specified S3 bucket, or both.

TODO: EXAMPLE

type CfnProject_ProjectBuildBatchConfigProperty

type CfnProject_ProjectBuildBatchConfigProperty struct {
	// Specifies how build status reports are sent to the source provider for the batch build.
	//
	// This property is only used when the source provider for your project is Bitbucket, GitHub, or GitHub Enterprise, and your project is configured to report build statuses to the source provider.
	//
	// - **REPORT_AGGREGATED_BATCH** - (Default) Aggregate all of the build statuses into a single status report.
	// - **REPORT_INDIVIDUAL_BUILDS** - Send a separate status report for each individual build.
	BatchReportMode *string `json:"batchReportMode" yaml:"batchReportMode"`
	// Specifies if the build artifacts for the batch build should be combined into a single artifact location.
	CombineArtifacts interface{} `json:"combineArtifacts" yaml:"combineArtifacts"`
	// A `BatchRestrictions` object that specifies the restrictions for the batch build.
	Restrictions interface{} `json:"restrictions" yaml:"restrictions"`
	// Specifies the service role ARN for the batch build project.
	ServiceRole *string `json:"serviceRole" yaml:"serviceRole"`
	// Specifies the maximum amount of time, in minutes, that the batch build must be completed in.
	TimeoutInMins *float64 `json:"timeoutInMins" yaml:"timeoutInMins"`
}

Contains configuration information about a batch build project.

TODO: EXAMPLE

type CfnProject_ProjectCacheProperty

type CfnProject_ProjectCacheProperty struct {
	// The type of cache used by the build project. Valid values include:.
	//
	// - `NO_CACHE` : The build project does not use any cache.
	// - `S3` : The build project reads and writes from and to S3.
	// - `LOCAL` : The build project stores a cache locally on a build host that is only available to that build host.
	Type *string `json:"type" yaml:"type"`
	// Information about the cache location:.
	//
	// - `NO_CACHE` or `LOCAL` : This value is ignored.
	// - `S3` : This is the S3 bucket name/prefix.
	Location *string `json:"location" yaml:"location"`
	// An array of strings that specify the local cache modes.
	//
	// You can use one or more local cache modes at the same time. This is only used for `LOCAL` cache types.
	//
	// Possible values are:
	//
	// - **LOCAL_SOURCE_CACHE** - Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.
	// - **LOCAL_DOCKER_LAYER_CACHE** - Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.
	//
	// > - You can use a Docker layer cache in the Linux environment only.
	// > - The `privileged` flag must be set so that your project has the required Docker permissions.
	// > - You should consider the security implications before you use a Docker layer cache.
	// - **LOCAL_CUSTOM_CACHE** - Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:
	//
	// - Only directories can be specified for caching. You cannot specify individual files.
	// - Symlinks are used to reference cached directories.
	// - Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.
	Modes *[]*string `json:"modes" yaml:"modes"`
}

`ProjectCache` is a property of the [AWS CodeBuild Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies information about the cache for the build project. If `ProjectCache` is not specified, then both of its properties default to `NO_CACHE` .

TODO: EXAMPLE

type CfnProject_ProjectFileSystemLocationProperty

type CfnProject_ProjectFileSystemLocationProperty struct {
	// The name used to access a file system created by Amazon EFS.
	//
	// CodeBuild creates an environment variable by appending the `identifier` in all capital letters to `CODEBUILD_` . For example, if you specify `my_efs` for `identifier` , a new environment variable is create named `CODEBUILD_MY_EFS` .
	//
	// The `identifier` is used to mount your file system.
	Identifier *string `json:"identifier" yaml:"identifier"`
	// A string that specifies the location of the file system created by Amazon EFS.
	//
	// Its format is `efs-dns-name:/directory-path` . You can find the DNS name of file system when you view it in the Amazon EFS console. The directory path is a path to a directory in the file system that CodeBuild mounts. For example, if the DNS name of a file system is `fs-abcd1234.efs.us-west-2.amazonaws.com` , and its mount directory is `my-efs-mount-directory` , then the `location` is `fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory` .
	//
	// The directory path in the format `efs-dns-name:/directory-path` is optional. If you do not specify a directory path, the location is only the DNS name and CodeBuild mounts the entire file system.
	Location *string `json:"location" yaml:"location"`
	// The location in the container where you mount the file system.
	MountPoint *string `json:"mountPoint" yaml:"mountPoint"`
	// The type of the file system.
	//
	// The one supported type is `EFS` .
	Type *string `json:"type" yaml:"type"`
	// The mount options for a file system created by Amazon EFS.
	//
	// The default mount options used by CodeBuild are `nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2` . For more information, see [Recommended NFS Mount Options](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html) .
	MountOptions *string `json:"mountOptions" yaml:"mountOptions"`
}

Information about a file system created by Amazon Elastic File System (EFS).

For more information, see [What Is Amazon Elastic File System?](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)

TODO: EXAMPLE

type CfnProject_ProjectSourceVersionProperty

type CfnProject_ProjectSourceVersionProperty struct {
	// An identifier for a source in the build project.
	//
	// The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length.
	SourceIdentifier *string `json:"sourceIdentifier" yaml:"sourceIdentifier"`
	// The source version for the corresponding source identifier. If specified, 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.
	//
	// For more information, see [Source Version Sample with CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the *AWS CodeBuild User Guide* .
	SourceVersion *string `json:"sourceVersion" yaml:"sourceVersion"`
}

A source identifier and its corresponding version.

TODO: EXAMPLE

type CfnProject_ProjectTriggersProperty

type CfnProject_ProjectTriggersProperty struct {
	// Specifies the type of build this webhook will trigger. Allowed values are:.
	//
	// - **BUILD** - A single build
	// - **BUILD_BATCH** - A batch build
	BuildType *string `json:"buildType" yaml:"buildType"`
	// A list of lists of `WebhookFilter` objects used to determine which webhook events are triggered.
	//
	// At least one `WebhookFilter` in the array must specify `EVENT` as its type.
	FilterGroups interface{} `json:"filterGroups" yaml:"filterGroups"`
	// Specifies whether or not to begin automatically rebuilding the source code every time a code change is pushed to the repository.
	Webhook interface{} `json:"webhook" yaml:"webhook"`
}

`ProjectTriggers` is a property of the [AWS CodeBuild Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies webhooks that trigger an AWS CodeBuild build.

TODO: EXAMPLE

type CfnProject_RegistryCredentialProperty

type CfnProject_RegistryCredentialProperty struct {
	// The Amazon Resource Name (ARN) or name of credentials created using AWS Secrets Manager .
	//
	// > The `credential` can use the name of the credentials only if they exist in your current AWS Region .
	Credential *string `json:"credential" yaml:"credential"`
	// The service that created the credentials to access a private Docker registry.
	//
	// The valid value, SECRETS_MANAGER, is for AWS Secrets Manager .
	CredentialProvider *string `json:"credentialProvider" yaml:"credentialProvider"`
}

`RegistryCredential` is a property of the [AWS CodeBuild Project Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html) property type that specifies information about credentials that provide access to a private Docker registry. When this is set:.

- `imagePullCredentialsType` must be set to `SERVICE_ROLE` . - images cannot be curated or an Amazon ECR image.

For more information, see [Private Registry with AWS Secrets Manager Sample for AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-private-registry.html) .

TODO: EXAMPLE

type CfnProject_S3LogsConfigProperty

type CfnProject_S3LogsConfigProperty struct {
	// The current status of the S3 build logs. Valid values are:.
	//
	// - `ENABLED` : S3 build logs are enabled for this build project.
	// - `DISABLED` : S3 build logs are not enabled for this build project.
	Status *string `json:"status" yaml:"status"`
	// Set to true if you do not want your S3 build log output encrypted.
	//
	// By default S3 build logs are encrypted.
	EncryptionDisabled interface{} `json:"encryptionDisabled" yaml:"encryptionDisabled"`
	// The ARN of an S3 bucket and the path prefix for S3 logs.
	//
	// If your Amazon S3 bucket name is `my-bucket` , and your path prefix is `build-log` , then acceptable formats are `my-bucket/build-log` or `arn:aws:s3:::my-bucket/build-log` .
	Location *string `json:"location" yaml:"location"`
}

`S3Logs` is a property of the [AWS CodeBuild Project LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html) property type that specifies settings for logs generated by an AWS CodeBuild build in an S3 bucket.

TODO: EXAMPLE

type CfnProject_SourceAuthProperty

type CfnProject_SourceAuthProperty struct {
	// The authorization type to use. The only valid value is `OAUTH` , which represents the OAuth authorization type.
	//
	// > This data type is used by the AWS CodeBuild console only.
	Type *string `json:"type" yaml:"type"`
	// The resource value that applies to the specified authorization type.
	//
	// > This data type is used by the AWS CodeBuild console only.
	Resource *string `json:"resource" yaml:"resource"`
}

`SourceAuth` is a property of the [AWS CodeBuild Project Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) property type that specifies authorization settings for AWS CodeBuild to access the source code to be built.

`SourceAuth` is for use by the CodeBuild console only. Do not get or set it directly.

TODO: EXAMPLE

type CfnProject_SourceProperty

type CfnProject_SourceProperty struct {
	// The type of repository that contains the source code to be built. Valid values include:.
	//
	// - `BITBUCKET` : The source code is in a Bitbucket repository.
	// - `CODECOMMIT` : The source code is in an CodeCommit repository.
	// - `CODEPIPELINE` : The source code settings are specified in the source action of a pipeline in CodePipeline.
	// - `GITHUB` : The source code is in a GitHub or GitHub Enterprise Cloud repository.
	// - `GITHUB_ENTERPRISE` : The source code is in a GitHub Enterprise Server repository.
	// - `NO_SOURCE` : The project does not have input source code.
	// - `S3` : The source code is in an Amazon S3 bucket.
	Type *string `json:"type" yaml:"type"`
	// Information about the authorization settings for AWS CodeBuild to access the source code to be built.
	//
	// This information is for the AWS CodeBuild console's use only. Your code should not get or set `Auth` directly.
	Auth interface{} `json:"auth" yaml:"auth"`
	// The build specification for the project.
	//
	// If this value is not provided, then the source code must contain a buildspec file named `buildspec.yml` at the root level. If this value is provided, it can be either a single string containing the entire build specification, or the path to an alternate buildspec file relative to the value of the built-in environment variable `CODEBUILD_SRC_DIR` . The alternate buildspec file can have a name other than `buildspec.yml` , for example `myspec.yml` or `build_spec_qa.yml` or similar. For more information, see the [Build Spec Reference](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-example) in the *AWS CodeBuild User Guide* .
	BuildSpec *string `json:"buildSpec" yaml:"buildSpec"`
	// 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` .
	BuildStatusConfig interface{} `json:"buildStatusConfig" yaml:"buildStatusConfig"`
	// The depth of history to download.
	//
	// Minimum value is 0. If this value is 0, greater than 25, or not provided, then the full history is downloaded with each build project. If your source type is Amazon S3, this value is not supported.
	GitCloneDepth *float64 `json:"gitCloneDepth" yaml:"gitCloneDepth"`
	// Information about the Git submodules configuration for the build project.
	GitSubmodulesConfig interface{} `json:"gitSubmodulesConfig" yaml:"gitSubmodulesConfig"`
	// This is used with GitHub Enterprise only.
	//
	// Set to true to ignore SSL warnings while connecting to your GitHub Enterprise project repository. The default value is `false` . `InsecureSsl` should be used for testing purposes only. It should not be used in a production environment.
	InsecureSsl interface{} `json:"insecureSsl" yaml:"insecureSsl"`
	// Information about the location of the source code to be built. Valid values include:.
	//
	// - For source code settings that are specified in the source action of a pipeline in CodePipeline, `location` should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value.
	// - For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, `https://git-codecommit.<region-ID>.amazonaws.com/v1/repos/<repo-name>` ).
	// - For source code in an Amazon S3 input bucket, one of the following.
	//
	// - The path to the ZIP file that contains the source code (for example, `<bucket-name>/<path>/<object-name>.zip` ).
	// - The path to the folder that contains the source code (for example, `<bucket-name>/<path-to-source-code>/<folder>/` ).
	// - For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your AWS account to your GitHub account. Use the AWS CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub *Authorize application* page, for *Organization access* , choose *Request access* next to each repository you want to allow AWS CodeBuild to have access to, and then choose *Authorize application* . (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the AWS CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH` .
	// - For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your AWS account to your Bitbucket account. Use the AWS CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket *Confirm access to your account* page, choose *Grant access* . (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the AWS CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH` .
	//
	// If you specify `CODEPIPELINE` for the `Type` property, don't specify this property. For all of the other types, you must specify `Location` .
	Location *string `json:"location" yaml:"location"`
	// Set to true to report the status of a build's start and finish to your source provider.
	//
	// This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket. If this is set and you use a different source provider, an `invalidInputException` is thrown.
	ReportBuildStatus interface{} `json:"reportBuildStatus" yaml:"reportBuildStatus"`
	// An identifier for this project source.
	//
	// The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length.
	SourceIdentifier *string `json:"sourceIdentifier" yaml:"sourceIdentifier"`
}

`Source` is a property of the [AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies the source code settings for the project, such as the source code's repository type and location.

TODO: EXAMPLE

type CfnProject_VpcConfigProperty

type CfnProject_VpcConfigProperty struct {
	// A list of one or more security groups IDs in your Amazon VPC.
	//
	// The maximum count is 5.
	SecurityGroupIds *[]*string `json:"securityGroupIds" yaml:"securityGroupIds"`
	// A list of one or more subnet IDs in your Amazon VPC.
	//
	// The maximum count is 16.
	Subnets *[]*string `json:"subnets" yaml:"subnets"`
	// The ID of the Amazon VPC.
	VpcId *string `json:"vpcId" yaml:"vpcId"`
}

`VpcConfig` is a property of the [AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that enable AWS CodeBuild to access resources in an Amazon VPC. For more information, see [Use AWS CodeBuild with Amazon Virtual Private Cloud](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html) in the *AWS CodeBuild User Guide* .

TODO: EXAMPLE

type CfnProject_WebhookFilterProperty

type CfnProject_WebhookFilterProperty struct {
	// For a `WebHookFilter` that uses `EVENT` type, a comma-separated string that specifies one or more events.
	//
	// For example, the webhook filter `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` allows all push, pull request created, and pull request updated events to trigger a build.
	//
	// For a `WebHookFilter` that uses any of the other filter types, a regular expression pattern. For example, a `WebHookFilter` that uses `HEAD_REF` for its `type` and the pattern `^refs/heads/` triggers a build when the head reference is a branch with a reference name `refs/heads/branch-name` .
	Pattern *string `json:"pattern" yaml:"pattern"`
	// The type of webhook filter.
	//
	// There are six webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` , `FILE_PATH` , and `COMMIT_MESSAGE` .
	//
	// - **EVENT** - A webhook event triggers a build when the provided `pattern` matches one of five event types: `PUSH` , `PULL_REQUEST_CREATED` , `PULL_REQUEST_UPDATED` , `PULL_REQUEST_REOPENED` , and `PULL_REQUEST_MERGED` . The `EVENT` patterns are specified as a comma-separated string. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request created, and pull request updated events.
	//
	// > The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only.
	// - **ACTOR_ACCOUNT_ID** - A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression `pattern` .
	// - **HEAD_REF** - A webhook event triggers a build when the head reference matches the regular expression `pattern` . For example, `refs/heads/branch-name` and `refs/tags/tag-name` .
	//
	// Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events.
	// - **BASE_REF** - A webhook event triggers a build when the base reference matches the regular expression `pattern` . For example, `refs/heads/branch-name` .
	//
	// > Works with pull request events only.
	// - **FILE_PATH** - A webhook triggers a build when the path of a changed file matches the regular expression `pattern` .
	//
	// > Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events.
	// - **COMMIT_MESSAGE** - A webhook triggers a build when the head commit message matches the regular expression `pattern` .
	//
	// > Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events.
	Type *string `json:"type" yaml:"type"`
	// Used to indicate that the `pattern` determines which webhook events do not trigger a build.
	//
	// If true, then a webhook event that does not match the `pattern` triggers a build. If false, then a webhook event that matches the `pattern` triggers a build.
	ExcludeMatchedPattern interface{} `json:"excludeMatchedPattern" yaml:"excludeMatchedPattern"`
}

`WebhookFilter` is a structure of the `FilterGroups` property on the [AWS CodeBuild Project ProjectTriggers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html) property type that specifies which webhooks trigger an AWS CodeBuild build.

TODO: EXAMPLE

type CfnReportGroup

type CfnReportGroup interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrArn() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DeleteReports() interface{}
	SetDeleteReports(val interface{})
	ExportConfig() interface{}
	SetExportConfig(val interface{})
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	Type() *string
	SetType(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::CodeBuild::ReportGroup`.

Represents a report group. A report group contains a collection of reports.

TODO: EXAMPLE

func NewCfnReportGroup

func NewCfnReportGroup(scope constructs.Construct, id *string, props *CfnReportGroupProps) CfnReportGroup

Create a new `AWS::CodeBuild::ReportGroup`.

type CfnReportGroupProps

type CfnReportGroupProps struct {
	// Information about the destination where the raw data of this `ReportGroup` is exported.
	ExportConfig interface{} `json:"exportConfig" yaml:"exportConfig"`
	// The type of the `ReportGroup` . This can be one of the following values:.
	//
	// - **CODE_COVERAGE** - The report group contains code coverage reports.
	// - **TEST** - The report group contains test reports.
	Type *string `json:"type" yaml:"type"`
	// When deleting a report group, specifies if reports within the report group should be deleted.
	//
	// - **true** - Deletes any reports that belong to the report group before deleting the report group.
	// - **false** - You must delete any reports in the report group. This is the default value. If you delete a report group that contains one or more reports, an exception is thrown.
	DeleteReports interface{} `json:"deleteReports" yaml:"deleteReports"`
	// The name of the `ReportGroup` .
	Name *string `json:"name" yaml:"name"`
	// A list of tag key and value pairs associated with this report group.
	//
	// These tags are available for use by AWS services that support AWS CodeBuild report group tags.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnReportGroup`.

TODO: EXAMPLE

type CfnReportGroup_ReportExportConfigProperty

type CfnReportGroup_ReportExportConfigProperty struct {
	// The export configuration type. Valid values are:.
	//
	// - `S3` : The report results are exported to an S3 bucket.
	// - `NO_EXPORT` : The report results are not exported.
	ExportConfigType *string `json:"exportConfigType" yaml:"exportConfigType"`
	// A `S3ReportExportConfig` object that contains information about the S3 bucket where the run of a report is exported.
	S3Destination interface{} `json:"s3Destination" yaml:"s3Destination"`
}

Information about the location where the run of a report is exported.

TODO: EXAMPLE

type CfnReportGroup_S3ReportExportConfigProperty

type CfnReportGroup_S3ReportExportConfigProperty struct {
	// The name of the S3 bucket where the raw data of a report are exported.
	Bucket *string `json:"bucket" yaml:"bucket"`
	// The AWS account identifier of the owner of the Amazon S3 bucket.
	//
	// This allows report data to be exported to an Amazon S3 bucket that is owned by an account other than the account running the build.
	BucketOwner *string `json:"bucketOwner" yaml:"bucketOwner"`
	// A boolean value that specifies if the results of a report are encrypted.
	EncryptionDisabled interface{} `json:"encryptionDisabled" yaml:"encryptionDisabled"`
	// The encryption key for the report's encrypted raw data.
	EncryptionKey *string `json:"encryptionKey" yaml:"encryptionKey"`
	// The type of build output artifact to create. Valid values include:.
	//
	// - `NONE` : CodeBuild creates the raw data in the output bucket. This is the default if packaging is not specified.
	// - `ZIP` : CodeBuild creates a ZIP file with the raw data in the output bucket.
	Packaging *string `json:"packaging" yaml:"packaging"`
	// The path to the exported report's raw data results.
	Path *string `json:"path" yaml:"path"`
}

Information about the S3 bucket where the raw data of a report are exported.

TODO: EXAMPLE

type CfnSourceCredential

type CfnSourceCredential interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AuthType() *string
	SetAuthType(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	ServerType() *string
	SetServerType(val *string)
	Stack() awscdk.Stack
	Token() *string
	SetToken(val *string)
	UpdatedProperites() *map[string]interface{}
	Username() *string
	SetUsername(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::CodeBuild::SourceCredential`.

Information about the credentials for a GitHub, GitHub Enterprise, or Bitbucket repository. We strongly recommend that you use AWS Secrets Manager to store your credentials. If you use Secrets Manager , you must have secrets in your secrets manager. For more information, see [Using Dynamic References to Specify Template Values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) .

> For security purposes, do not use plain text in your AWS CloudFormation template to store your credentials.

TODO: EXAMPLE

func NewCfnSourceCredential

func NewCfnSourceCredential(scope constructs.Construct, id *string, props *CfnSourceCredentialProps) CfnSourceCredential

Create a new `AWS::CodeBuild::SourceCredential`.

type CfnSourceCredentialProps

type CfnSourceCredentialProps struct {
	// The type of authentication used by the credentials.
	//
	// Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN.
	AuthType *string `json:"authType" yaml:"authType"`
	// The type of source provider.
	//
	// The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET.
	ServerType *string `json:"serverType" yaml:"serverType"`
	// For GitHub or GitHub Enterprise, this is the personal access token.
	//
	// For Bitbucket, this is the app password.
	Token *string `json:"token" yaml:"token"`
	// The Bitbucket username when the `authType` is BASIC_AUTH.
	//
	// This parameter is not valid for other types of source providers or connections.
	Username *string `json:"username" yaml:"username"`
}

Properties for defining a `CfnSourceCredential`.

TODO: EXAMPLE

type CloudWatchLoggingOptions

type CloudWatchLoggingOptions struct {
	// The current status of the logs in Amazon CloudWatch Logs for a build project.
	Enabled *bool `json:"enabled" yaml:"enabled"`
	// The Log Group to send logs to.
	LogGroup awslogs.ILogGroup `json:"logGroup" yaml:"logGroup"`
	// The prefix of the stream name of the Amazon CloudWatch Logs.
	Prefix *string `json:"prefix" yaml:"prefix"`
}

Information about logs built to a CloudWatch Log Group for a build project.

TODO: EXAMPLE

type CodeCommitSourceProps

type CodeCommitSourceProps struct {
	// The source identifier.
	//
	// This property is required on secondary sources.
	Identifier *string                   `json:"identifier" yaml:"identifier"`
	Repository awscodecommit.IRepository `json:"repository" yaml:"repository"`
	// The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build.
	//
	// TODO: EXAMPLE
	//
	BranchOrRef *string `json:"branchOrRef" yaml:"branchOrRef"`
	// The depth of history to download.
	//
	// Minimum value is 0.
	// If this value is 0, greater than 25, or not provided,
	// then the full history is downloaded with each build of the project.
	CloneDepth *float64 `json:"cloneDepth" yaml:"cloneDepth"`
	// Whether to fetch submodules while cloning git repo.
	FetchSubmodules *bool `json:"fetchSubmodules" yaml:"fetchSubmodules"`
}

Construction properties for {@link CodeCommitSource}.

TODO: EXAMPLE

type CommonProjectProps

type CommonProjectProps struct {
	// Whether to allow the CodeBuild to send all network traffic.
	//
	// If set to false, you must individually add traffic rules to allow the
	// CodeBuild project to connect to network targets.
	//
	// Only used if 'vpc' is supplied.
	AllowAllOutbound *bool `json:"allowAllOutbound" yaml:"allowAllOutbound"`
	// Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge.
	//
	// For more information, see Build Badges Sample
	// in the AWS CodeBuild User Guide.
	Badge *bool `json:"badge" yaml:"badge"`
	// Filename or contents of buildspec in JSON format.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-example
	//
	BuildSpec BuildSpec `json:"buildSpec" yaml:"buildSpec"`
	// Caching strategy to use.
	Cache Cache `json:"cache" yaml:"cache"`
	// Whether to check for the presence of any secrets in the environment variables of the default type, BuildEnvironmentVariableType.PLAINTEXT. Since using a secret for the value of that kind of variable would result in it being displayed in plain text in the AWS Console, the construct will throw an exception if it detects a secret was passed there. Pass this property as false if you want to skip this validation, and keep using a secret in a plain text environment variable.
	CheckSecretsInPlainTextEnvVariables *bool `json:"checkSecretsInPlainTextEnvVariables" yaml:"checkSecretsInPlainTextEnvVariables"`
	// Maximum number of concurrent builds.
	//
	// Minimum value is 1 and maximum is account build limit.
	ConcurrentBuildLimit *float64 `json:"concurrentBuildLimit" yaml:"concurrentBuildLimit"`
	// A description of the project.
	//
	// Use the description to identify the purpose
	// of the project.
	Description *string `json:"description" yaml:"description"`
	// Encryption key to use to read and write artifacts.
	EncryptionKey awskms.IKey `json:"encryptionKey" yaml:"encryptionKey"`
	// Build environment to use for the build.
	Environment *BuildEnvironment `json:"environment" yaml:"environment"`
	// Additional environment variables to add to the build environment.
	EnvironmentVariables *map[string]*BuildEnvironmentVariable `json:"environmentVariables" yaml:"environmentVariables"`
	// An  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.
	FileSystemLocations *[]IFileSystemLocation `json:"fileSystemLocations" yaml:"fileSystemLocations"`
	// Add permissions to this project's role to create and use test report groups with name starting with the name of this project.
	//
	// That is the standard report group that gets created when a simple name
	// (in contrast to an ARN)
	// is used in the 'reports' section of the buildspec of this project.
	// This is usually harmless, but you can turn these off if you don't plan on using test
	// reports in this project.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/test-report-group-naming.html
	//
	GrantReportGroupPermissions *bool `json:"grantReportGroupPermissions" yaml:"grantReportGroupPermissions"`
	// Information about logs for the build project.
	//
	// A project can create logs in Amazon CloudWatch Logs, an S3 bucket, or both.
	Logging *LoggingOptions `json:"logging" yaml:"logging"`
	// The physical, human-readable name of the CodeBuild Project.
	ProjectName *string `json:"projectName" yaml:"projectName"`
	// The number of minutes after which AWS CodeBuild stops the build if it's still in queue.
	//
	// For valid values, see the timeoutInMinutes field in the AWS
	// CodeBuild User Guide.
	QueuedTimeout awscdk.Duration `json:"queuedTimeout" yaml:"queuedTimeout"`
	// Service Role to assume while running the build.
	Role awsiam.IRole `json:"role" yaml:"role"`
	// What security group to associate with the codebuild project's network interfaces.
	//
	// If no security group is identified, one will be created automatically.
	//
	// Only used if 'vpc' is supplied.
	SecurityGroups *[]awsec2.ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
	// Where to place the network interfaces within the VPC.
	//
	// Only used if 'vpc' is supplied.
	SubnetSelection *awsec2.SubnetSelection `json:"subnetSelection" yaml:"subnetSelection"`
	// The number of minutes after which AWS CodeBuild stops the build if it's not complete.
	//
	// For valid values, see the timeoutInMinutes field in the AWS
	// CodeBuild User Guide.
	Timeout awscdk.Duration `json:"timeout" yaml:"timeout"`
	// VPC network to place codebuild network interfaces.
	//
	// Specify this if the codebuild project needs to access resources in a VPC.
	Vpc awsec2.IVpc `json:"vpc" yaml:"vpc"`
}

TODO: EXAMPLE

type ComputeType

type ComputeType string

Build machine compute type.

TODO: EXAMPLE

const (
	ComputeType_SMALL    ComputeType = "SMALL"
	ComputeType_MEDIUM   ComputeType = "MEDIUM"
	ComputeType_LARGE    ComputeType = "LARGE"
	ComputeType_X2_LARGE ComputeType = "X2_LARGE"
)

type DockerImageOptions

type DockerImageOptions struct {
	// The credentials, stored in Secrets Manager, used for accessing the repository holding the image, if the repository is private.
	SecretsManagerCredentials awssecretsmanager.ISecret `json:"secretsManagerCredentials" yaml:"secretsManagerCredentials"`
}

The options when creating a CodeBuild Docker build image using {@link LinuxBuildImage.fromDockerRegistry} or {@link WindowsBuildImage.fromDockerRegistry}.

TODO: EXAMPLE

type EfsFileSystemLocationProps

type EfsFileSystemLocationProps struct {
	// The name used to access a file system created by Amazon EFS.
	Identifier *string `json:"identifier" yaml:"identifier"`
	// A string that specifies the location of the file system, like Amazon EFS.
	//
	// This value looks like `fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory`.
	Location *string `json:"location" yaml:"location"`
	// The location in the container where you mount the file system.
	MountPoint *string `json:"mountPoint" yaml:"mountPoint"`
	// The mount options for a file system such as Amazon EFS.
	MountOptions *string `json:"mountOptions" yaml:"mountOptions"`
}

Construction properties for {@link EfsFileSystemLocation}.

TODO: EXAMPLE

type EventAction

type EventAction string

The types of webhook event actions.

TODO: EXAMPLE

const (
	EventAction_PUSH                  EventAction = "PUSH"
	EventAction_PULL_REQUEST_CREATED  EventAction = "PULL_REQUEST_CREATED"
	EventAction_PULL_REQUEST_UPDATED  EventAction = "PULL_REQUEST_UPDATED"
	EventAction_PULL_REQUEST_MERGED   EventAction = "PULL_REQUEST_MERGED"
	EventAction_PULL_REQUEST_REOPENED EventAction = "PULL_REQUEST_REOPENED"
)

type FileSystemConfig

type FileSystemConfig struct {
	// File system location wrapper property.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html
	//
	Location *CfnProject_ProjectFileSystemLocationProperty `json:"location" yaml:"location"`
}

The type returned from {@link IFileSystemLocation#bind}.

TODO: EXAMPLE

type FileSystemLocation

type FileSystemLocation interface {
}

FileSystemLocation provider definition for a CodeBuild Project.

TODO: EXAMPLE

func NewFileSystemLocation

func NewFileSystemLocation() FileSystemLocation

type FilterGroup

type FilterGroup interface {
	AndActorAccountIs(pattern *string) FilterGroup
	AndActorAccountIsNot(pattern *string) FilterGroup
	AndBaseBranchIs(branchName *string) FilterGroup
	AndBaseBranchIsNot(branchName *string) FilterGroup
	AndBaseRefIs(pattern *string) FilterGroup
	AndBaseRefIsNot(pattern *string) FilterGroup
	AndBranchIs(branchName *string) FilterGroup
	AndBranchIsNot(branchName *string) FilterGroup
	AndCommitMessageIs(commitMessage *string) FilterGroup
	AndCommitMessageIsNot(commitMessage *string) FilterGroup
	AndFilePathIs(pattern *string) FilterGroup
	AndFilePathIsNot(pattern *string) FilterGroup
	AndHeadRefIs(pattern *string) FilterGroup
	AndHeadRefIsNot(pattern *string) FilterGroup
	AndTagIs(tagName *string) FilterGroup
	AndTagIsNot(tagName *string) FilterGroup
}

An object that represents a group of filter conditions for a webhook.

Every condition in a given FilterGroup must be true in order for the whole group to be true. You construct instances of it by calling the {@link #inEventOf} static factory method, and then calling various `andXyz` instance methods to create modified instances of it (this class is immutable).

You pass instances of this class to the `webhookFilters` property when constructing a source.

TODO: EXAMPLE

func FilterGroup_InEventOf

func FilterGroup_InEventOf(actions ...EventAction) FilterGroup

Creates a new event FilterGroup that triggers on any of the provided actions.

type GitHubEnterpriseSourceCredentials

type GitHubEnterpriseSourceCredentials interface {
	awscdk.Resource
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

The source credentials used when contacting the GitHub Enterprise API.

**Note**: CodeBuild only allows a single credential for GitHub Enterprise to be saved in a given AWS account in a given region - any attempt to add more than one will result in an error.

TODO: EXAMPLE

func NewGitHubEnterpriseSourceCredentials

func NewGitHubEnterpriseSourceCredentials(scope constructs.Construct, id *string, props *GitHubEnterpriseSourceCredentialsProps) GitHubEnterpriseSourceCredentials

type GitHubEnterpriseSourceCredentialsProps

type GitHubEnterpriseSourceCredentialsProps struct {
	// The personal access token to use when contacting the instance of the GitHub Enterprise API.
	AccessToken awscdk.SecretValue `json:"accessToken" yaml:"accessToken"`
}

Creation properties for {@link GitHubEnterpriseSourceCredentials}.

TODO: EXAMPLE

type GitHubEnterpriseSourceProps

type GitHubEnterpriseSourceProps struct {
	// The source identifier.
	//
	// This property is required on secondary sources.
	Identifier *string `json:"identifier" yaml:"identifier"`
	// The HTTPS URL of the repository in your GitHub Enterprise installation.
	HttpsCloneUrl *string `json:"httpsCloneUrl" yaml:"httpsCloneUrl"`
	// The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build.
	//
	// TODO: EXAMPLE
	//
	BranchOrRef *string `json:"branchOrRef" yaml:"branchOrRef"`
	// The depth of history to download.
	//
	// Minimum value is 0.
	// If this value is 0, greater than 25, or not provided,
	// then the full history is downloaded with each build of the project.
	CloneDepth *float64 `json:"cloneDepth" yaml:"cloneDepth"`
	// Whether to fetch submodules while cloning git repo.
	FetchSubmodules *bool `json:"fetchSubmodules" yaml:"fetchSubmodules"`
	// Whether to ignore SSL errors when connecting to the repository.
	IgnoreSslErrors *bool `json:"ignoreSslErrors" yaml:"ignoreSslErrors"`
	// Whether to send notifications on your build's start and end.
	ReportBuildStatus *bool `json:"reportBuildStatus" yaml:"reportBuildStatus"`
	// Whether to create a webhook that will trigger a build every time an event happens in the repository.
	Webhook *bool `json:"webhook" yaml:"webhook"`
	// A list of webhook filters that can constraint what events in the repository will trigger a build.
	//
	// A build is triggered if any of the provided filter groups match.
	// Only valid if `webhook` was not provided as false.
	WebhookFilters *[]FilterGroup `json:"webhookFilters" yaml:"webhookFilters"`
	// Trigger a batch build from a webhook instead of a standard one.
	//
	// Enabling this will enable batch builds on the CodeBuild project.
	WebhookTriggersBatchBuild *bool `json:"webhookTriggersBatchBuild" yaml:"webhookTriggersBatchBuild"`
}

Construction properties for {@link GitHubEnterpriseSource}.

TODO: EXAMPLE

type GitHubSourceCredentials

type GitHubSourceCredentials interface {
	awscdk.Resource
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

The source credentials used when contacting the GitHub API.

**Note**: CodeBuild only allows a single credential for GitHub to be saved in a given AWS account in a given region - any attempt to add more than one will result in an error.

TODO: EXAMPLE

func NewGitHubSourceCredentials

func NewGitHubSourceCredentials(scope constructs.Construct, id *string, props *GitHubSourceCredentialsProps) GitHubSourceCredentials

type GitHubSourceCredentialsProps

type GitHubSourceCredentialsProps struct {
	// The personal access token to use when contacting the GitHub API.
	AccessToken awscdk.SecretValue `json:"accessToken" yaml:"accessToken"`
}

Creation properties for {@link GitHubSourceCredentials}.

TODO: EXAMPLE

type GitHubSourceProps

type GitHubSourceProps struct {
	// The source identifier.
	//
	// This property is required on secondary sources.
	Identifier *string `json:"identifier" yaml:"identifier"`
	// The GitHub account/user that owns the repo.
	//
	// TODO: EXAMPLE
	//
	Owner *string `json:"owner" yaml:"owner"`
	// The name of the repo (without the username).
	//
	// TODO: EXAMPLE
	//
	Repo *string `json:"repo" yaml:"repo"`
	// The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build.
	//
	// TODO: EXAMPLE
	//
	BranchOrRef *string `json:"branchOrRef" yaml:"branchOrRef"`
	// The depth of history to download.
	//
	// Minimum value is 0.
	// If this value is 0, greater than 25, or not provided,
	// then the full history is downloaded with each build of the project.
	CloneDepth *float64 `json:"cloneDepth" yaml:"cloneDepth"`
	// Whether to fetch submodules while cloning git repo.
	FetchSubmodules *bool `json:"fetchSubmodules" yaml:"fetchSubmodules"`
	// Whether to send notifications on your build's start and end.
	ReportBuildStatus *bool `json:"reportBuildStatus" yaml:"reportBuildStatus"`
	// Whether to create a webhook that will trigger a build every time an event happens in the repository.
	Webhook *bool `json:"webhook" yaml:"webhook"`
	// A list of webhook filters that can constraint what events in the repository will trigger a build.
	//
	// A build is triggered if any of the provided filter groups match.
	// Only valid if `webhook` was not provided as false.
	WebhookFilters *[]FilterGroup `json:"webhookFilters" yaml:"webhookFilters"`
	// Trigger a batch build from a webhook instead of a standard one.
	//
	// Enabling this will enable batch builds on the CodeBuild project.
	WebhookTriggersBatchBuild *bool `json:"webhookTriggersBatchBuild" yaml:"webhookTriggersBatchBuild"`
}

Construction properties for {@link GitHubSource} and {@link GitHubEnterpriseSource}.

TODO: EXAMPLE

type IArtifacts

type IArtifacts interface {
	// Callback when an Artifacts class is used in a CodeBuild Project.
	Bind(scope constructs.Construct, project IProject) *ArtifactsConfig
	// The artifact identifier.
	//
	// This property is required on secondary artifacts.
	Identifier() *string
	// The CodeBuild type of this artifact.
	Type() *string
}

The abstract interface of a CodeBuild build output.

Implemented by {@link Artifacts}.

func Artifacts_S3

func Artifacts_S3(props *S3ArtifactsProps) IArtifacts

type IBindableBuildImage

type IBindableBuildImage interface {
	IBuildImage
	// Function that allows the build image access to the construct tree.
	Bind(scope constructs.Construct, project IProject, options *BuildImageBindOptions) *BuildImageConfig
}

A variant of {@link IBuildImage} that allows binding to the project.

type IBuildImage

type IBuildImage interface {
	// Make a buildspec to run the indicated script.
	RunScriptBuildspec(entrypoint *string) BuildSpec
	// Allows the image a chance to validate whether the passed configuration is correct.
	Validate(buildEnvironment *BuildEnvironment) *[]*string
	// The default {@link ComputeType} to use with this image, if one was not specified in {@link BuildEnvironment#computeType} explicitly.
	DefaultComputeType() ComputeType
	// The Docker image identifier that the build environment uses.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html
	//
	ImageId() *string
	// The type of principal that CodeBuild will use to pull this build Docker image.
	ImagePullPrincipalType() ImagePullPrincipalType
	// An optional ECR repository that the image is hosted in.
	Repository() awsecr.IRepository
	// The secretsManagerCredentials for access to a private registry.
	SecretsManagerCredentials() awssecretsmanager.ISecret
	// The type of build environment.
	Type() *string
}

Represents a Docker image used for the CodeBuild Project builds.

Use the concrete subclasses, either: {@link LinuxBuildImage} or {@link WindowsBuildImage}.

func LinuxBuildImage_AMAZON_LINUX_2

func LinuxBuildImage_AMAZON_LINUX_2() IBuildImage

func LinuxBuildImage_AMAZON_LINUX_2_2

func LinuxBuildImage_AMAZON_LINUX_2_2() IBuildImage

func LinuxBuildImage_AMAZON_LINUX_2_3

func LinuxBuildImage_AMAZON_LINUX_2_3() IBuildImage

func LinuxBuildImage_AMAZON_LINUX_2_ARM

func LinuxBuildImage_AMAZON_LINUX_2_ARM() IBuildImage

func LinuxBuildImage_AMAZON_LINUX_2_ARM_2

func LinuxBuildImage_AMAZON_LINUX_2_ARM_2() IBuildImage

func LinuxBuildImage_FromAsset

func LinuxBuildImage_FromAsset(scope constructs.Construct, id *string, props *awsecrassets.DockerImageAssetProps) IBuildImage

Uses an Docker image asset as a Linux build image.

func LinuxBuildImage_FromCodeBuildImageId

func LinuxBuildImage_FromCodeBuildImageId(id *string) IBuildImage

Uses a Docker image provided by CodeBuild.

Returns: A Docker image provided by CodeBuild.

TODO: EXAMPLE

See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html

func LinuxBuildImage_FromDockerRegistry

func LinuxBuildImage_FromDockerRegistry(name *string, options *DockerImageOptions) IBuildImage

Returns: a Linux build image from a Docker Hub image.

func LinuxBuildImage_FromEcrRepository

func LinuxBuildImage_FromEcrRepository(repository awsecr.IRepository, tag *string) IBuildImage

Returns: A Linux build image from an ECR repository.

NOTE: if the repository is external (i.e. imported), then we won't be able to add a resource policy statement for it so CodeBuild can pull the image. See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html

func LinuxBuildImage_STANDARD_1_0

func LinuxBuildImage_STANDARD_1_0() IBuildImage

func LinuxBuildImage_STANDARD_2_0

func LinuxBuildImage_STANDARD_2_0() IBuildImage

func LinuxBuildImage_STANDARD_3_0

func LinuxBuildImage_STANDARD_3_0() IBuildImage

func LinuxBuildImage_STANDARD_4_0

func LinuxBuildImage_STANDARD_4_0() IBuildImage

func LinuxBuildImage_STANDARD_5_0

func LinuxBuildImage_STANDARD_5_0() IBuildImage

func LinuxGpuBuildImage_AwsDeepLearningContainersImage

func LinuxGpuBuildImage_AwsDeepLearningContainersImage(repositoryName *string, tag *string, account *string) IBuildImage

Returns a Linux GPU build image from AWS Deep Learning Containers. See: https://aws.amazon.com/releasenotes/available-deep-learning-containers-images

func LinuxGpuBuildImage_DLC_MXNET_1_4_1

func LinuxGpuBuildImage_DLC_MXNET_1_4_1() IBuildImage

func LinuxGpuBuildImage_DLC_MXNET_1_6_0

func LinuxGpuBuildImage_DLC_MXNET_1_6_0() IBuildImage

func LinuxGpuBuildImage_DLC_PYTORCH_1_2_0

func LinuxGpuBuildImage_DLC_PYTORCH_1_2_0() IBuildImage

func LinuxGpuBuildImage_DLC_PYTORCH_1_3_1

func LinuxGpuBuildImage_DLC_PYTORCH_1_3_1() IBuildImage

func LinuxGpuBuildImage_DLC_PYTORCH_1_4_0_INFERENCE

func LinuxGpuBuildImage_DLC_PYTORCH_1_4_0_INFERENCE() IBuildImage

func LinuxGpuBuildImage_DLC_PYTORCH_1_4_0_TRAINING

func LinuxGpuBuildImage_DLC_PYTORCH_1_4_0_TRAINING() IBuildImage

func LinuxGpuBuildImage_DLC_PYTORCH_1_5_0_INFERENCE

func LinuxGpuBuildImage_DLC_PYTORCH_1_5_0_INFERENCE() IBuildImage

func LinuxGpuBuildImage_DLC_PYTORCH_1_5_0_TRAINING

func LinuxGpuBuildImage_DLC_PYTORCH_1_5_0_TRAINING() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_14_0

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_14_0() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_15_0

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_15_0() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_15_2_INFERENCE

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_15_2_INFERENCE() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_15_2_TRAINING

func LinuxGpuBuildImage_DLC_TENSORFLOW_1_15_2_TRAINING() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_0_0

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_0_0() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_0_1

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_0_1() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_1_0_INFERENCE

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_1_0_INFERENCE() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_1_0_TRAINING

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_1_0_TRAINING() IBuildImage

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_2_0_TRAINING

func LinuxGpuBuildImage_DLC_TENSORFLOW_2_2_0_TRAINING() IBuildImage

func LinuxGpuBuildImage_FromEcrRepository

func LinuxGpuBuildImage_FromEcrRepository(repository awsecr.IRepository, tag *string) IBuildImage

Returns a GPU image running Linux from an ECR repository.

NOTE: if the repository is external (i.e. imported), then we won't be able to add a resource policy statement for it so CodeBuild can pull the image. See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html

func WindowsBuildImage_FromAsset

func WindowsBuildImage_FromAsset(scope constructs.Construct, id *string, props *awsecrassets.DockerImageAssetProps, imageType WindowsImageType) IBuildImage

Uses an Docker image asset as a Windows build image.

func WindowsBuildImage_FromDockerRegistry

func WindowsBuildImage_FromDockerRegistry(name *string, options *DockerImageOptions, imageType WindowsImageType) IBuildImage

Returns: a Windows build image from a Docker Hub image.

func WindowsBuildImage_FromEcrRepository

func WindowsBuildImage_FromEcrRepository(repository awsecr.IRepository, tag *string, imageType WindowsImageType) IBuildImage

Returns: A Linux build image from an ECR repository.

NOTE: if the repository is external (i.e. imported), then we won't be able to add a resource policy statement for it so CodeBuild can pull the image. See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html

func WindowsBuildImage_WINDOWS_BASE_2_0

func WindowsBuildImage_WINDOWS_BASE_2_0() IBuildImage

func WindowsBuildImage_WIN_SERVER_CORE_2019_BASE

func WindowsBuildImage_WIN_SERVER_CORE_2019_BASE() IBuildImage

type IFileSystemLocation

type IFileSystemLocation interface {
	// Called by the project when a file system is added so it can perform binding operations on this file system location.
	Bind(scope constructs.Construct, project IProject) *FileSystemConfig
}

The interface of a CodeBuild FileSystemLocation.

Implemented by {@link EfsFileSystemLocation}.

func FileSystemLocation_Efs

func FileSystemLocation_Efs(props *EfsFileSystemLocationProps) IFileSystemLocation

EFS file system provider.

type IProject

type IProject interface {
	awsec2.IConnectable
	awsiam.IGrantable
	awscodestarnotifications.INotificationRuleSource
	awscdk.IResource
	AddToRolePolicy(policyStatement awsiam.PolicyStatement)
	// Enable batch builds.
	//
	// Returns an object contining the batch service role if batch builds
	// could be enabled.
	EnableBatchBuilds() *BatchBuildConfig
	// Returns: a CloudWatch metric associated with this build project.
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Measures the number of builds triggered.
	//
	// Units: Count
	//
	// Valid CloudWatch statistics: Sum
	MetricBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Measures the duration of all builds over time.
	//
	// Units: Seconds
	//
	// Valid CloudWatch statistics: Average (recommended), Maximum, Minimum
	MetricDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Measures the number of builds that failed because of client error or because of a timeout.
	//
	// Units: Count
	//
	// Valid CloudWatch statistics: Sum
	MetricFailedBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Measures the number of successful builds.
	//
	// Units: Count
	//
	// Valid CloudWatch statistics: Sum
	MetricSucceededBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Defines a CodeStar Notification rule triggered when the project events emitted by you specified, it very similar to `onEvent` API.
	//
	// You can also use the methods `notifyOnBuildSucceeded` and
	// `notifyOnBuildFailed` to define rules for these specific event emitted.
	//
	// Returns: CodeStar Notifications rule associated with this build project.
	NotifyOn(id *string, target awscodestarnotifications.INotificationRuleTarget, options *ProjectNotifyOnOptions) awscodestarnotifications.INotificationRule
	// Defines a CodeStar notification rule which triggers when a build fails.
	NotifyOnBuildFailed(id *string, target awscodestarnotifications.INotificationRuleTarget, options *awscodestarnotifications.NotificationRuleOptions) awscodestarnotifications.INotificationRule
	// Defines a CodeStar notification rule which triggers when a build completes successfully.
	NotifyOnBuildSucceeded(id *string, target awscodestarnotifications.INotificationRuleTarget, options *awscodestarnotifications.NotificationRuleOptions) awscodestarnotifications.INotificationRule
	// Defines an event rule which triggers when a build fails.
	OnBuildFailed(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// Defines an event rule which triggers when a build starts.
	OnBuildStarted(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// Defines an event rule which triggers when a build completes successfully.
	OnBuildSucceeded(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// Defines a CloudWatch event rule triggered when something happens with this project.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-notifications.html
	//
	OnEvent(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// Defines a CloudWatch event rule that triggers upon phase change of this build project.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-notifications.html
	//
	OnPhaseChange(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// Defines a CloudWatch event rule triggered when the build project state changes.
	//
	// You can filter specific build status events using an event
	// pattern filter on the `build-status` detail field:
	//
	//     const rule = project.onStateChange('OnBuildStarted', { target });
	//     rule.addEventPattern({
	//       detail: {
	//         'build-status': [
	//           "IN_PROGRESS",
	//           "SUCCEEDED",
	//           "FAILED",
	//           "STOPPED"
	//         ]
	//       }
	//     });
	//
	// You can also use the methods `onBuildFailed` and `onBuildSucceeded` to define rules for
	// these specific state changes.
	//
	// To access fields from the event in the event target input,
	// use the static fields on the `StateChangeEvent` class.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-notifications.html
	//
	OnStateChange(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// The ARN of this Project.
	ProjectArn() *string
	// The human-visible name of this Project.
	ProjectName() *string
	// The IAM service Role of this Project.
	//
	// Undefined for imported Projects.
	Role() awsiam.IRole
}

func PipelineProject_FromProjectArn

func PipelineProject_FromProjectArn(scope constructs.Construct, id *string, projectArn *string) IProject

func PipelineProject_FromProjectName

func PipelineProject_FromProjectName(scope constructs.Construct, id *string, projectName *string) IProject

Import a Project defined either outside the CDK, or in a different CDK Stack (and exported using the {@link export} method).

Returns: a reference to the existing Project

func Project_FromProjectArn

func Project_FromProjectArn(scope constructs.Construct, id *string, projectArn *string) IProject

func Project_FromProjectName

func Project_FromProjectName(scope constructs.Construct, id *string, projectName *string) IProject

Import a Project defined either outside the CDK, or in a different CDK Stack (and exported using the {@link export} method).

Returns: a reference to the existing Project

type IReportGroup

type IReportGroup interface {
	awscdk.IResource
	// Grants the given entity permissions to write (that is, upload reports to) this report group.
	GrantWrite(identity awsiam.IGrantable) awsiam.Grant
	// The ARN of the ReportGroup.
	ReportGroupArn() *string
	// The name of the ReportGroup.
	ReportGroupName() *string
}

The interface representing the ReportGroup resource - either an existing one, imported using the {@link ReportGroup.fromReportGroupName} method, or a new one, created with the {@link ReportGroup} class.

func ReportGroup_FromReportGroupName

func ReportGroup_FromReportGroupName(scope constructs.Construct, id *string, reportGroupName *string) IReportGroup

Reference an existing ReportGroup, defined outside of the CDK code, by name.

type ISource

type ISource interface {
	Bind(scope constructs.Construct, project IProject) *SourceConfig
	BadgeSupported() *bool
	Identifier() *string
	Type() *string
}

The abstract interface of a CodeBuild source.

Implemented by {@link Source}.

func Source_BitBucket

func Source_BitBucket(props *BitBucketSourceProps) ISource

func Source_CodeCommit

func Source_CodeCommit(props *CodeCommitSourceProps) ISource

func Source_GitHub

func Source_GitHub(props *GitHubSourceProps) ISource

func Source_GitHubEnterprise

func Source_GitHubEnterprise(props *GitHubEnterpriseSourceProps) ISource

func Source_S3

func Source_S3(props *S3SourceProps) ISource

type ImagePullPrincipalType

type ImagePullPrincipalType string

The type of principal CodeBuild will use to pull your build Docker image.

const (
	ImagePullPrincipalType_CODEBUILD    ImagePullPrincipalType = "CODEBUILD"
	ImagePullPrincipalType_SERVICE_ROLE ImagePullPrincipalType = "SERVICE_ROLE"
)

type LinuxBuildImage

type LinuxBuildImage interface {
	IBuildImage
	DefaultComputeType() ComputeType
	ImageId() *string
	ImagePullPrincipalType() ImagePullPrincipalType
	Repository() awsecr.IRepository
	SecretsManagerCredentials() awssecretsmanager.ISecret
	Type() *string
	RunScriptBuildspec(entrypoint *string) BuildSpec
	Validate(_arg *BuildEnvironment) *[]*string
}

A CodeBuild image running Linux.

This class has a bunch of public constants that represent the most popular images.

You can also specify a custom image using one of the static methods:

- LinuxBuildImage.fromDockerRegistry(image[, { secretsManagerCredentials }]) - LinuxBuildImage.fromEcrRepository(repo[, tag]) - LinuxBuildImage.fromAsset(parent, id, props)

TODO: EXAMPLE

See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html

type LinuxGpuBuildImage

type LinuxGpuBuildImage interface {
	IBindableBuildImage
	DefaultComputeType() ComputeType
	ImageId() *string
	ImagePullPrincipalType() ImagePullPrincipalType
	Type() *string
	Bind(scope constructs.Construct, project IProject, _options *BuildImageBindOptions) *BuildImageConfig
	RunScriptBuildspec(entrypoint *string) BuildSpec
	Validate(buildEnvironment *BuildEnvironment) *[]*string
}

A CodeBuild GPU image running Linux.

This class has public constants that represent the most popular GPU images from AWS Deep Learning Containers.

TODO: EXAMPLE

See: https://aws.amazon.com/releasenotes/available-deep-learning-containers-images

type LocalCacheMode

type LocalCacheMode string

Local cache modes to enable for the CodeBuild Project.

TODO: EXAMPLE

const (
	LocalCacheMode_SOURCE       LocalCacheMode = "SOURCE"
	LocalCacheMode_DOCKER_LAYER LocalCacheMode = "DOCKER_LAYER"
	LocalCacheMode_CUSTOM       LocalCacheMode = "CUSTOM"
)

type LoggingOptions

type LoggingOptions struct {
	// Information about Amazon CloudWatch Logs for a build project.
	CloudWatch *CloudWatchLoggingOptions `json:"cloudWatch" yaml:"cloudWatch"`
	// Information about logs built to an S3 bucket for a build project.
	S3 *S3LoggingOptions `json:"s3" yaml:"s3"`
}

Information about logs for the build project.

A project can create logs in Amazon CloudWatch Logs, an S3 bucket, or both.

TODO: EXAMPLE

type PhaseChangeEvent

type PhaseChangeEvent interface {
}

Event fields for the CodeBuild "phase change" event. See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-notifications.html#sample-build-notifications-ref

type PipelineProject

type PipelineProject interface {
	Project
	Connections() awsec2.Connections
	Env() *awscdk.ResourceEnvironment
	GrantPrincipal() awsiam.IPrincipal
	Node() constructs.Node
	PhysicalName() *string
	ProjectArn() *string
	ProjectName() *string
	Role() awsiam.IRole
	Stack() awscdk.Stack
	AddFileSystemLocation(fileSystemLocation IFileSystemLocation)
	AddSecondaryArtifact(secondaryArtifact IArtifacts)
	AddSecondarySource(secondarySource ISource)
	AddToRolePolicy(statement awsiam.PolicyStatement)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	BindAsNotificationRuleSource(_scope constructs.Construct) *awscodestarnotifications.NotificationRuleSourceConfig
	BindToCodePipeline(_scope constructs.Construct, options *BindToCodePipelineOptions)
	EnableBatchBuilds() *BatchBuildConfig
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricFailedBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricSucceededBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	NotifyOn(id *string, target awscodestarnotifications.INotificationRuleTarget, options *ProjectNotifyOnOptions) awscodestarnotifications.INotificationRule
	NotifyOnBuildFailed(id *string, target awscodestarnotifications.INotificationRuleTarget, options *awscodestarnotifications.NotificationRuleOptions) awscodestarnotifications.INotificationRule
	NotifyOnBuildSucceeded(id *string, target awscodestarnotifications.INotificationRuleTarget, options *awscodestarnotifications.NotificationRuleOptions) awscodestarnotifications.INotificationRule
	OnBuildFailed(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnBuildStarted(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnBuildSucceeded(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnEvent(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnPhaseChange(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnStateChange(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	ToString() *string
}

A convenience class for CodeBuild Projects that are used in CodePipeline.

TODO: EXAMPLE

func NewPipelineProject

func NewPipelineProject(scope constructs.Construct, id *string, props *PipelineProjectProps) PipelineProject

type PipelineProjectProps

type PipelineProjectProps struct {
	// Whether to allow the CodeBuild to send all network traffic.
	//
	// If set to false, you must individually add traffic rules to allow the
	// CodeBuild project to connect to network targets.
	//
	// Only used if 'vpc' is supplied.
	AllowAllOutbound *bool `json:"allowAllOutbound" yaml:"allowAllOutbound"`
	// Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge.
	//
	// For more information, see Build Badges Sample
	// in the AWS CodeBuild User Guide.
	Badge *bool `json:"badge" yaml:"badge"`
	// Filename or contents of buildspec in JSON format.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-example
	//
	BuildSpec BuildSpec `json:"buildSpec" yaml:"buildSpec"`
	// Caching strategy to use.
	Cache Cache `json:"cache" yaml:"cache"`
	// Whether to check for the presence of any secrets in the environment variables of the default type, BuildEnvironmentVariableType.PLAINTEXT. Since using a secret for the value of that kind of variable would result in it being displayed in plain text in the AWS Console, the construct will throw an exception if it detects a secret was passed there. Pass this property as false if you want to skip this validation, and keep using a secret in a plain text environment variable.
	CheckSecretsInPlainTextEnvVariables *bool `json:"checkSecretsInPlainTextEnvVariables" yaml:"checkSecretsInPlainTextEnvVariables"`
	// Maximum number of concurrent builds.
	//
	// Minimum value is 1 and maximum is account build limit.
	ConcurrentBuildLimit *float64 `json:"concurrentBuildLimit" yaml:"concurrentBuildLimit"`
	// A description of the project.
	//
	// Use the description to identify the purpose
	// of the project.
	Description *string `json:"description" yaml:"description"`
	// Encryption key to use to read and write artifacts.
	EncryptionKey awskms.IKey `json:"encryptionKey" yaml:"encryptionKey"`
	// Build environment to use for the build.
	Environment *BuildEnvironment `json:"environment" yaml:"environment"`
	// Additional environment variables to add to the build environment.
	EnvironmentVariables *map[string]*BuildEnvironmentVariable `json:"environmentVariables" yaml:"environmentVariables"`
	// An  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.
	FileSystemLocations *[]IFileSystemLocation `json:"fileSystemLocations" yaml:"fileSystemLocations"`
	// Add permissions to this project's role to create and use test report groups with name starting with the name of this project.
	//
	// That is the standard report group that gets created when a simple name
	// (in contrast to an ARN)
	// is used in the 'reports' section of the buildspec of this project.
	// This is usually harmless, but you can turn these off if you don't plan on using test
	// reports in this project.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/test-report-group-naming.html
	//
	GrantReportGroupPermissions *bool `json:"grantReportGroupPermissions" yaml:"grantReportGroupPermissions"`
	// Information about logs for the build project.
	//
	// A project can create logs in Amazon CloudWatch Logs, an S3 bucket, or both.
	Logging *LoggingOptions `json:"logging" yaml:"logging"`
	// The physical, human-readable name of the CodeBuild Project.
	ProjectName *string `json:"projectName" yaml:"projectName"`
	// The number of minutes after which AWS CodeBuild stops the build if it's still in queue.
	//
	// For valid values, see the timeoutInMinutes field in the AWS
	// CodeBuild User Guide.
	QueuedTimeout awscdk.Duration `json:"queuedTimeout" yaml:"queuedTimeout"`
	// Service Role to assume while running the build.
	Role awsiam.IRole `json:"role" yaml:"role"`
	// What security group to associate with the codebuild project's network interfaces.
	//
	// If no security group is identified, one will be created automatically.
	//
	// Only used if 'vpc' is supplied.
	SecurityGroups *[]awsec2.ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
	// Where to place the network interfaces within the VPC.
	//
	// Only used if 'vpc' is supplied.
	SubnetSelection *awsec2.SubnetSelection `json:"subnetSelection" yaml:"subnetSelection"`
	// The number of minutes after which AWS CodeBuild stops the build if it's not complete.
	//
	// For valid values, see the timeoutInMinutes field in the AWS
	// CodeBuild User Guide.
	Timeout awscdk.Duration `json:"timeout" yaml:"timeout"`
	// VPC network to place codebuild network interfaces.
	//
	// Specify this if the codebuild project needs to access resources in a VPC.
	Vpc awsec2.IVpc `json:"vpc" yaml:"vpc"`
}

TODO: EXAMPLE

type Project

type Project interface {
	awscdk.Resource
	IProject
	Connections() awsec2.Connections
	Env() *awscdk.ResourceEnvironment
	GrantPrincipal() awsiam.IPrincipal
	Node() constructs.Node
	PhysicalName() *string
	ProjectArn() *string
	ProjectName() *string
	Role() awsiam.IRole
	Stack() awscdk.Stack
	AddFileSystemLocation(fileSystemLocation IFileSystemLocation)
	AddSecondaryArtifact(secondaryArtifact IArtifacts)
	AddSecondarySource(secondarySource ISource)
	AddToRolePolicy(statement awsiam.PolicyStatement)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	BindAsNotificationRuleSource(_scope constructs.Construct) *awscodestarnotifications.NotificationRuleSourceConfig
	BindToCodePipeline(_scope constructs.Construct, options *BindToCodePipelineOptions)
	EnableBatchBuilds() *BatchBuildConfig
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricDuration(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricFailedBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricSucceededBuilds(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	NotifyOn(id *string, target awscodestarnotifications.INotificationRuleTarget, options *ProjectNotifyOnOptions) awscodestarnotifications.INotificationRule
	NotifyOnBuildFailed(id *string, target awscodestarnotifications.INotificationRuleTarget, options *awscodestarnotifications.NotificationRuleOptions) awscodestarnotifications.INotificationRule
	NotifyOnBuildSucceeded(id *string, target awscodestarnotifications.INotificationRuleTarget, options *awscodestarnotifications.NotificationRuleOptions) awscodestarnotifications.INotificationRule
	OnBuildFailed(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnBuildStarted(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnBuildSucceeded(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnEvent(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnPhaseChange(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	OnStateChange(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	ToString() *string
}

A representation of a CodeBuild Project.

TODO: EXAMPLE

func NewProject

func NewProject(scope constructs.Construct, id *string, props *ProjectProps) Project

type ProjectNotificationEvents

type ProjectNotificationEvents string

The list of event types for AWS Codebuild. See: https://docs.aws.amazon.com/dtconsole/latest/userguide/concepts.html#events-ref-buildproject

const (
	ProjectNotificationEvents_BUILD_FAILED          ProjectNotificationEvents = "BUILD_FAILED"
	ProjectNotificationEvents_BUILD_SUCCEEDED       ProjectNotificationEvents = "BUILD_SUCCEEDED"
	ProjectNotificationEvents_BUILD_IN_PROGRESS     ProjectNotificationEvents = "BUILD_IN_PROGRESS"
	ProjectNotificationEvents_BUILD_STOPPED         ProjectNotificationEvents = "BUILD_STOPPED"
	ProjectNotificationEvents_BUILD_PHASE_FAILED    ProjectNotificationEvents = "BUILD_PHASE_FAILED"
	ProjectNotificationEvents_BUILD_PHASE_SUCCEEDED ProjectNotificationEvents = "BUILD_PHASE_SUCCEEDED"
)

type ProjectNotifyOnOptions

type ProjectNotifyOnOptions struct {
	// The level of detail to include in the notifications for this resource.
	//
	// BASIC will include only the contents of the event as it would appear in AWS CloudWatch.
	// FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.
	DetailType awscodestarnotifications.DetailType `json:"detailType" yaml:"detailType"`
	// The status of the notification rule.
	//
	// If the enabled is set to DISABLED, notifications aren't sent for the notification rule.
	Enabled *bool `json:"enabled" yaml:"enabled"`
	// The name for the notification rule.
	//
	// Notification rule names must be unique in your AWS account.
	NotificationRuleName *string `json:"notificationRuleName" yaml:"notificationRuleName"`
	// A list of event types associated with this notification rule for CodeBuild Project.
	//
	// For a complete list of event types and IDs, see Notification concepts in the Developer Tools Console User Guide.
	// See: https://docs.aws.amazon.com/dtconsole/latest/userguide/concepts.html#concepts-api
	//
	Events *[]ProjectNotificationEvents `json:"events" yaml:"events"`
}

Additional options to pass to the notification rule.

TODO: EXAMPLE

type ProjectProps

type ProjectProps struct {
	// Whether to allow the CodeBuild to send all network traffic.
	//
	// If set to false, you must individually add traffic rules to allow the
	// CodeBuild project to connect to network targets.
	//
	// Only used if 'vpc' is supplied.
	AllowAllOutbound *bool `json:"allowAllOutbound" yaml:"allowAllOutbound"`
	// Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge.
	//
	// For more information, see Build Badges Sample
	// in the AWS CodeBuild User Guide.
	Badge *bool `json:"badge" yaml:"badge"`
	// Filename or contents of buildspec in JSON format.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-example
	//
	BuildSpec BuildSpec `json:"buildSpec" yaml:"buildSpec"`
	// Caching strategy to use.
	Cache Cache `json:"cache" yaml:"cache"`
	// Whether to check for the presence of any secrets in the environment variables of the default type, BuildEnvironmentVariableType.PLAINTEXT. Since using a secret for the value of that kind of variable would result in it being displayed in plain text in the AWS Console, the construct will throw an exception if it detects a secret was passed there. Pass this property as false if you want to skip this validation, and keep using a secret in a plain text environment variable.
	CheckSecretsInPlainTextEnvVariables *bool `json:"checkSecretsInPlainTextEnvVariables" yaml:"checkSecretsInPlainTextEnvVariables"`
	// Maximum number of concurrent builds.
	//
	// Minimum value is 1 and maximum is account build limit.
	ConcurrentBuildLimit *float64 `json:"concurrentBuildLimit" yaml:"concurrentBuildLimit"`
	// A description of the project.
	//
	// Use the description to identify the purpose
	// of the project.
	Description *string `json:"description" yaml:"description"`
	// Encryption key to use to read and write artifacts.
	EncryptionKey awskms.IKey `json:"encryptionKey" yaml:"encryptionKey"`
	// Build environment to use for the build.
	Environment *BuildEnvironment `json:"environment" yaml:"environment"`
	// Additional environment variables to add to the build environment.
	EnvironmentVariables *map[string]*BuildEnvironmentVariable `json:"environmentVariables" yaml:"environmentVariables"`
	// An  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.
	FileSystemLocations *[]IFileSystemLocation `json:"fileSystemLocations" yaml:"fileSystemLocations"`
	// Add permissions to this project's role to create and use test report groups with name starting with the name of this project.
	//
	// That is the standard report group that gets created when a simple name
	// (in contrast to an ARN)
	// is used in the 'reports' section of the buildspec of this project.
	// This is usually harmless, but you can turn these off if you don't plan on using test
	// reports in this project.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/test-report-group-naming.html
	//
	GrantReportGroupPermissions *bool `json:"grantReportGroupPermissions" yaml:"grantReportGroupPermissions"`
	// Information about logs for the build project.
	//
	// A project can create logs in Amazon CloudWatch Logs, an S3 bucket, or both.
	Logging *LoggingOptions `json:"logging" yaml:"logging"`
	// The physical, human-readable name of the CodeBuild Project.
	ProjectName *string `json:"projectName" yaml:"projectName"`
	// The number of minutes after which AWS CodeBuild stops the build if it's still in queue.
	//
	// For valid values, see the timeoutInMinutes field in the AWS
	// CodeBuild User Guide.
	QueuedTimeout awscdk.Duration `json:"queuedTimeout" yaml:"queuedTimeout"`
	// Service Role to assume while running the build.
	Role awsiam.IRole `json:"role" yaml:"role"`
	// What security group to associate with the codebuild project's network interfaces.
	//
	// If no security group is identified, one will be created automatically.
	//
	// Only used if 'vpc' is supplied.
	SecurityGroups *[]awsec2.ISecurityGroup `json:"securityGroups" yaml:"securityGroups"`
	// Where to place the network interfaces within the VPC.
	//
	// Only used if 'vpc' is supplied.
	SubnetSelection *awsec2.SubnetSelection `json:"subnetSelection" yaml:"subnetSelection"`
	// The number of minutes after which AWS CodeBuild stops the build if it's not complete.
	//
	// For valid values, see the timeoutInMinutes field in the AWS
	// CodeBuild User Guide.
	Timeout awscdk.Duration `json:"timeout" yaml:"timeout"`
	// VPC network to place codebuild network interfaces.
	//
	// Specify this if the codebuild project needs to access resources in a VPC.
	Vpc awsec2.IVpc `json:"vpc" yaml:"vpc"`
	// Defines where build artifacts will be stored.
	//
	// Could be: PipelineBuildArtifacts, NoArtifacts and S3Artifacts.
	Artifacts IArtifacts `json:"artifacts" yaml:"artifacts"`
	// The secondary artifacts for the Project.
	//
	// Can also be added after the Project has been created by using the {@link Project#addSecondaryArtifact} method.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html
	//
	SecondaryArtifacts *[]IArtifacts `json:"secondaryArtifacts" yaml:"secondaryArtifacts"`
	// The secondary sources for the Project.
	//
	// Can be also added after the Project has been created by using the {@link Project#addSecondarySource} method.
	// See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html
	//
	SecondarySources *[]ISource `json:"secondarySources" yaml:"secondarySources"`
	// The source of the build.
	//
	// *Note*: if {@link NoSource} is given as the source,
	// then you need to provide an explicit `buildSpec`.
	Source ISource `json:"source" yaml:"source"`
}

TODO: EXAMPLE

type ReportGroup

type ReportGroup interface {
	awscdk.Resource
	IReportGroup
	Env() *awscdk.ResourceEnvironment
	ExportBucket() awss3.IBucket
	Node() constructs.Node
	PhysicalName() *string
	ReportGroupArn() *string
	ReportGroupName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	GrantWrite(identity awsiam.IGrantable) awsiam.Grant
	ToString() *string
}

The ReportGroup resource class.

TODO: EXAMPLE

func NewReportGroup

func NewReportGroup(scope constructs.Construct, id *string, props *ReportGroupProps) ReportGroup

type ReportGroupProps

type ReportGroupProps struct {
	// An optional S3 bucket to export the reports to.
	ExportBucket awss3.IBucket `json:"exportBucket" yaml:"exportBucket"`
	// What to do when this resource is deleted from a stack.
	//
	// As CodeBuild does not allow deleting a ResourceGroup that has reports inside of it,
	// this is set to retain the resource by default.
	RemovalPolicy awscdk.RemovalPolicy `json:"removalPolicy" yaml:"removalPolicy"`
	// The physical name of the report group.
	ReportGroupName *string `json:"reportGroupName" yaml:"reportGroupName"`
	// Whether to output the report files into the export bucket as-is, or create a ZIP from them before doing the export.
	//
	// Ignored if {@link exportBucket} has not been provided.
	ZipExport *bool `json:"zipExport" yaml:"zipExport"`
}

Construction properties for {@link ReportGroup}.

TODO: EXAMPLE

type S3ArtifactsProps

type S3ArtifactsProps struct {
	// The artifact identifier.
	//
	// This property is required on secondary artifacts.
	Identifier *string `json:"identifier" yaml:"identifier"`
	// The name of the output bucket.
	Bucket awss3.IBucket `json:"bucket" yaml:"bucket"`
	// If this is false, build output will not be encrypted.
	//
	// This is useful if the artifact to publish a static website or sharing content with others
	Encryption *bool `json:"encryption" yaml:"encryption"`
	// Indicates if the build ID should be included in the path.
	//
	// If this is set to true,
	// then the build artifact will be stored in "<path>/<build-id>/<name>".
	IncludeBuildId *bool `json:"includeBuildId" yaml:"includeBuildId"`
	// The name of the build output ZIP file or folder inside the bucket.
	//
	// The full S3 object key will be "<path>/<build-id>/<name>" or
	// "<path>/<name>" depending on whether `includeBuildId` is set to true.
	//
	// If not set, `overrideArtifactName` will be set and the name from the
	// buildspec will be used instead.
	Name *string `json:"name" yaml:"name"`
	// If this is true, all build output will be packaged into a single .zip file. Otherwise, all files will be uploaded to <path>/<name>.
	PackageZip *bool `json:"packageZip" yaml:"packageZip"`
	// The path inside of the bucket for the build output .zip file or folder. If a value is not specified, then build output will be stored at the root of the bucket (or under the <build-id> directory if `includeBuildId` is set to true).
	Path *string `json:"path" yaml:"path"`
}

Construction properties for {@link S3Artifacts}.

TODO: EXAMPLE

type S3LoggingOptions

type S3LoggingOptions struct {
	// The S3 Bucket to send logs to.
	Bucket awss3.IBucket `json:"bucket" yaml:"bucket"`
	// The current status of the logs in Amazon CloudWatch Logs for a build project.
	Enabled *bool `json:"enabled" yaml:"enabled"`
	// Encrypt the S3 build log output.
	Encrypted *bool `json:"encrypted" yaml:"encrypted"`
	// The path prefix for S3 logs.
	Prefix *string `json:"prefix" yaml:"prefix"`
}

Information about logs built to an S3 bucket for a build project.

TODO: EXAMPLE

type S3SourceProps

type S3SourceProps struct {
	// The source identifier.
	//
	// This property is required on secondary sources.
	Identifier *string       `json:"identifier" yaml:"identifier"`
	Bucket     awss3.IBucket `json:"bucket" yaml:"bucket"`
	Path       *string       `json:"path" yaml:"path"`
	// The version ID of the object that represents the build input ZIP file to use.
	Version *string `json:"version" yaml:"version"`
}

Construction properties for {@link S3Source}.

TODO: EXAMPLE

type Source

type Source interface {
	ISource
	BadgeSupported() *bool
	Identifier() *string
	Type() *string
	Bind(_scope constructs.Construct, _project IProject) *SourceConfig
}

Source provider definition for a CodeBuild Project.

TODO: EXAMPLE

type SourceConfig

type SourceConfig struct {
	SourceProperty *CfnProject_SourceProperty          `json:"sourceProperty" yaml:"sourceProperty"`
	BuildTriggers  *CfnProject_ProjectTriggersProperty `json:"buildTriggers" yaml:"buildTriggers"`
	// `AWS::CodeBuild::Project.SourceVersion`.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-sourceversion
	//
	SourceVersion *string `json:"sourceVersion" yaml:"sourceVersion"`
}

The type returned from {@link ISource#bind}.

TODO: EXAMPLE

type SourceProps

type SourceProps struct {
	// The source identifier.
	//
	// This property is required on secondary sources.
	Identifier *string `json:"identifier" yaml:"identifier"`
}

Properties common to all Source classes.

TODO: EXAMPLE

type StateChangeEvent

type StateChangeEvent interface {
}

Event fields for the CodeBuild "state change" event. See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-notifications.html#sample-build-notifications-ref

type UntrustedCodeBoundaryPolicy

type UntrustedCodeBoundaryPolicy interface {
	awsiam.ManagedPolicy
	Description() *string
	Document() awsiam.PolicyDocument
	Env() *awscdk.ResourceEnvironment
	ManagedPolicyArn() *string
	ManagedPolicyName() *string
	Node() constructs.Node
	Path() *string
	PhysicalName() *string
	Stack() awscdk.Stack
	AddStatements(statement ...awsiam.PolicyStatement)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	AttachToGroup(group awsiam.IGroup)
	AttachToRole(role awsiam.IRole)
	AttachToUser(user awsiam.IUser)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Permissions Boundary for a CodeBuild Project running untrusted code.

This class is a Policy, intended to be used as a Permissions Boundary for a CodeBuild project. It allows most of the actions necessary to run the CodeBuild project, but disallows reading from Parameter Store and Secrets Manager.

Use this when your CodeBuild project is running untrusted code (for example, if you are using one to automatically build Pull Requests that anyone can submit), and you want to prevent your future self from accidentally exposing Secrets to this build.

(The reason you might want to do this is because otherwise anyone who can submit a Pull Request to your project can write a script to email those secrets to themselves).

TODO: EXAMPLE

func NewUntrustedCodeBoundaryPolicy

func NewUntrustedCodeBoundaryPolicy(scope constructs.Construct, id *string, props *UntrustedCodeBoundaryPolicyProps) UntrustedCodeBoundaryPolicy

type UntrustedCodeBoundaryPolicyProps

type UntrustedCodeBoundaryPolicyProps struct {
	// Additional statements to add to the default set of statements.
	AdditionalStatements *[]awsiam.PolicyStatement `json:"additionalStatements" yaml:"additionalStatements"`
	// The name of the managed policy.
	ManagedPolicyName *string `json:"managedPolicyName" yaml:"managedPolicyName"`
}

Construction properties for UntrustedCodeBoundaryPolicy.

TODO: EXAMPLE

type WindowsBuildImage

type WindowsBuildImage interface {
	IBuildImage
	DefaultComputeType() ComputeType
	ImageId() *string
	ImagePullPrincipalType() ImagePullPrincipalType
	Repository() awsecr.IRepository
	SecretsManagerCredentials() awssecretsmanager.ISecret
	Type() *string
	RunScriptBuildspec(entrypoint *string) BuildSpec
	Validate(buildEnvironment *BuildEnvironment) *[]*string
}

A CodeBuild image running Windows.

This class has a bunch of public constants that represent the most popular images.

You can also specify a custom image using one of the static methods:

- WindowsBuildImage.fromDockerRegistry(image[, { secretsManagerCredentials }, imageType]) - WindowsBuildImage.fromEcrRepository(repo[, tag, imageType]) - WindowsBuildImage.fromAsset(parent, id, props, [, imageType])

TODO: EXAMPLE

See: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html

type WindowsImageType

type WindowsImageType string

Environment type for Windows Docker images.

TODO: EXAMPLE

const (
	WindowsImageType_STANDARD    WindowsImageType = "STANDARD"
	WindowsImageType_SERVER_2019 WindowsImageType = "SERVER_2019"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL