import { Value } from '../../cloudformation/Value';
import { VpcConfigProps } from './project/VpcConfigProps';
import { SourceProps } from './project/SourceProps';
import { ProjectTriggersProps } from './project/ProjectTriggersProps';
import { ArtifactsProps } from './project/ArtifactsProps';
import { LogsConfigProps } from './project/LogsConfigProps';
import { ProjectFileSystemLocationProps } from './project/ProjectFileSystemLocationProps';
import { EnvironmentProps } from './project/EnvironmentProps';
import { ProjectSourceVersionProps } from './project/ProjectSourceVersionProps';
import { ProjectBuildBatchConfigProps } from './project/ProjectBuildBatchConfigProps';
import { Tag } from '../Tag';
import { ProjectCacheProps } from './project/ProjectCacheProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ProjectAttributes = {
    Arn: Attribute<string>;
};
export type Project = AwsResource<'AWS::CodeBuild::Project', ProjectProperties, ProjectAttributes>;
/**
  The <code>AWS::CodeBuild::Project</code> 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.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html">the AWS Docs</a>
*/
export declare function project(projectProps: ProjectProperties): Project;
/**
  The <code>AWS::CodeBuild::Project</code> 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.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html">the AWS Docs</a>
*/
export interface ProjectProperties {
    /** <code>Description</code>  <a name="cfn-codebuild-project-description"></a>
  A description that makes the build project easy to identify.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>255</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>ResourceAccessRole</code>  <a name="cfn-codebuild-project-resourceaccessrole"></a>
  The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the project’s builds.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    resourceAccessRole?: Value<string>;
    /** <code>VpcConfig</code>  <a name="cfn-codebuild-project-vpcconfig"></a>
  <code>VpcConfig</code> specifies settings that enable AWS CodeBuild to access resources in an Amazon VPC. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html">Use AWS CodeBuild with Amazon Virtual Private Cloud</a> in the
  AWS CodeBuild User Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    vpcConfig?: VpcConfigProps;
    /** <code>SecondarySources</code>  <a name="cfn-codebuild-project-secondarysources"></a>
  An array of <code>ProjectSource</code> objects.<br />
  
  Required: No<br />
  
  Maximum: <code>12</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    secondarySources?: SourceProps[];
    /** <code>EncryptionKey</code>  <a name="cfn-codebuild-project-encryptionkey"></a>
  The AWS Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts.<br />
  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 <code>alias/&lt;alias-name&gt;</code>). If you don’t specify a value, CodeBuild uses the managed CMK for Amazon Simple Storage Service (Amazon S3).<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    encryptionKey?: Value<string>;
    /** <p> */
    sourceVersion?: Value<string>;
    /** <code>Triggers</code>  <a name="cfn-codebuild-project-triggers"></a>
  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.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    triggers?: ProjectTriggersProps;
    /** <code>SecondaryArtifacts</code>  <a name="cfn-codebuild-project-secondaryartifacts"></a>
  A list of <code>Artifacts</code> objects. Each artifacts object specifies output settings that the project generates during a build.<br />
  
  Required: No<br />
  
  Maximum: <code>12</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    secondaryArtifacts?: ArtifactsProps[];
    /** <code>Source</code>  <a name="cfn-codebuild-project-source"></a>
  The source code settings for the project, such as the source code’s repository type and location.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    source: SourceProps;
    /** <code>Name</code>  <a name="cfn-codebuild-project-name"></a>
  The name of the build project. The name must be unique across all of the projects in your AWS account.<br />
  
  Required: No<br />
  
  Minimum: <code>2</code><br />
  
  Maximum: <code>255</code><br />
  
  Pattern: <code>[A-Za-z0-9][A-Za-z0-9\-_]{1,254}</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name?: Value<string>;
    /** <code>Artifacts</code>  <a name="cfn-codebuild-project-artifacts"></a>
  <code>Artifacts</code> is a property of the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html"> AWS::CodeBuild::Project</a> resource that specifies output settings for artifacts generated by an AWS CodeBuild build.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    artifacts: ArtifactsProps;
    /** <code>BadgeEnabled</code>  <a name="cfn-codebuild-project-badgeenabled"></a>
  Indicates whether AWS CodeBuild generates a publicly accessible URL for your project’s build badge. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-badges.html">Build Badges Sample</a> in the
  AWS CodeBuild User Guide: br />
  Including build badges with your project is currently not supported if the source type is CodePipeline. If you specify <code>CODEPIPELINE</code> for the <code>Source</code> property, do not specify the <code>BadgeEnabled</code> property.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    badgeEnabled?: Value<boolean>;
    /** <code>LogsConfig</code>  <a name="cfn-codebuild-project-logsconfig"></a>
  Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or both.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    logsConfig?: LogsConfigProps;
    /** <code>ServiceRole</code>  <a name="cfn-codebuild-project-servicerole"></a>
  The ARN of the IAM role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    serviceRole: Value<string>;
    /** <code>QueuedTimeoutInMinutes</code>  <a name="cfn-codebuild-project-queuedtimeoutinminutes"></a>
  The number of minutes a build is allowed to be queued before it times out.<br />
  
  Required: No<br />
  
  Minimum: <code>5</code><br />
  
  Maximum: <code>480</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    queuedTimeoutInMinutes?: Value<number>;
    /** <code>FileSystemLocations</code>  <a name="cfn-codebuild-project-filesystemlocations"></a>
  An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    fileSystemLocations?: ProjectFileSystemLocationProps[];
    /** <code>Environment</code>  <a name="cfn-codebuild-project-environment"></a>
  The build environment settings for the project, such as the environment type or the environment variables to use for the build environment.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    environment: EnvironmentProps;
    /** <code>SecondarySourceVersions</code>  <a name="cfn-codebuild-project-secondarysourceversions"></a>
  An array of <code>ProjectSourceVersion</code> objects. If <code>secondarySourceVersions</code> is specified at the build level, then they take over these <code>secondarySourceVersions</code> (at the project level).<br />
  
  Required: No<br />
  
  Maximum: <code>12</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    secondarySourceVersions?: ProjectSourceVersionProps[];
    /** <code>ConcurrentBuildLimit</code>  <a name="cfn-codebuild-project-concurrentbuildlimit"></a>
  The maximum number of concurrent builds that are allowed for this project.<br />
  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.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    concurrentBuildLimit?: Value<number>;
    /** <code>Visibility</code>  <a name="cfn-codebuild-project-visibility"></a>
  Specifies the visibility of the project’s builds. Possible values are:<br />
  PUBLIC_READ<br />
  The project builds are visible to the public.<br />
  PRIVATE<br />
  The project builds are not visible to the public.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    visibility?: Value<string>;
    /** <code>BuildBatchConfig</code>  <a name="cfn-codebuild-project-buildbatchconfig"></a>
  A <code>ProjectBuildBatchConfig</code> object that defines the batch build options for the project.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    buildBatchConfig?: ProjectBuildBatchConfigProps;
    /** <code>Tags</code>  <a name="cfn-codebuild-project-tags"></a>
  An arbitrary set of tags (key-value pairs) for the AWS CodeBuild project.<br />
  These tags are available for use by AWS services that support AWS CodeBuild build project tags.<br />
  
  Required: No<br />
  
  Maximum: <code>50</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
    /** <code>TimeoutInMinutes</code>  <a name="cfn-codebuild-project-timeoutinminutes"></a>
  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.<br />
  
  Required: No<br />
  
  Minimum: <code>5</code><br />
  
  Maximum: <code>480</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    timeoutInMinutes?: Value<number>;
    /** <code>Cache</code>  <a name="cfn-codebuild-project-cache"></a>
  Settings that AWS CodeBuild uses to store and reuse build dependencies.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    cache?: ProjectCacheProps;
}
