import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Environment { Type ! : Value < string > ; EnvironmentVariables ? : List < EnvironmentVariable > ; PrivilegedMode ? : Value < boolean > ; ImagePullCredentialsType ? : Value < string > ; Image ! : Value < string > ; RegistryCredential ? : RegistryCredential ; ComputeType ! : Value < string > ; Certificate ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class GitSubmodulesConfig { FetchSubmodules ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class VpcConfig { Subnets ? : List < Value < string > > ; VpcId ? : Value < string > ; SecurityGroupIds ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Artifacts { Path ? : Value < string > ; Type ! : Value < string > ; ArtifactIdentifier ? : Value < string > ; OverrideArtifactName ? : Value < boolean > ; Packaging ? : Value < string > ; EncryptionDisabled ? : Value < boolean > ; Location ? : Value < string > ; Name ? : Value < string > ; NamespaceType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RegistryCredential { Credential ! : Value < string > ; CredentialProvider ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CloudWatchLogsConfig { Status ! : Value < string > ; GroupName ? : Value < string > ; StreamName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProjectCache { Modes ? : List < Value < string > > ; Type ! : Value < string > ; Location ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProjectBuildBatchConfig { CombineArtifacts ? : Value < boolean > ; ServiceRole ? : Value < string > ; TimeoutInMins ? : Value < number > ; Restrictions ? : BatchRestrictions ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export type FilterGroup = List < WebhookFilter > ; export class BatchRestrictions { ComputeTypesAllowed ? : List < Value < string > > ; MaximumBuildsAllowed ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProjectTriggers { FilterGroups ? : List < FilterGroup > ; BuildType ? : Value < string > ; Webhook ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Source { Type ! : Value < string > ; ReportBuildStatus ? : Value < boolean > ; Auth ? : SourceAuth ; SourceIdentifier ? : Value < string > ; BuildSpec ? : Value < string > ; GitCloneDepth ? : Value < number > ; BuildStatusConfig ? : BuildStatusConfig ; GitSubmodulesConfig ? : GitSubmodulesConfig ; InsecureSsl ? : Value < boolean > ; Location ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProjectSourceVersion { SourceIdentifier ! : Value < string > ; SourceVersion ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LogsConfig { CloudWatchLogs ? : CloudWatchLogsConfig ; S3Logs ? : S3LogsConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SourceAuth { Type ! : Value < string > ; Resource ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProjectFileSystemLocation { MountPoint ! : Value < string > ; Type ! : Value < string > ; Identifier ! : Value < string > ; MountOptions ? : Value < string > ; Location ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class S3LogsConfig { Status ! : Value < string > ; EncryptionDisabled ? : Value < boolean > ; Location ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class WebhookFilter { Pattern ! : Value < string > ; Type ! : Value < string > ; ExcludeMatchedPattern ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BuildStatusConfig { Context ? : Value < string > ; TargetUrl ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EnvironmentVariable { Type ? : Value < string > ; Value ! : Value < string > ; Name ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ProjectProperties { Description ? : Value < string > ; VpcConfig ? : VpcConfig ; SecondarySources ? : List < Source > ; EncryptionKey ? : Value < string > ; SourceVersion ? : Value < string > ; Triggers ? : ProjectTriggers ; SecondaryArtifacts ? : List < Artifacts > ; Source : Source ; Name ? : Value < string > ; Artifacts : Artifacts ; BadgeEnabled ? : Value < boolean > ; LogsConfig ? : LogsConfig ; ServiceRole : Value < string > ; QueuedTimeoutInMinutes ? : Value < number > ; FileSystemLocations ? : List < ProjectFileSystemLocation > ; Environment : Environment ; SecondarySourceVersions ? : List < ProjectSourceVersion > ; ConcurrentBuildLimit ? : Value < number > ; BuildBatchConfig ? : ProjectBuildBatchConfig ; Tags ? : List < ResourceTag > ; TimeoutInMinutes ? : Value < number > ; Cache ? : ProjectCache ; } export default class Project extends ResourceBase < ProjectProperties > { static Environment = Environment ; static GitSubmodulesConfig = GitSubmodulesConfig ; static VpcConfig = VpcConfig ; static Artifacts = Artifacts ; static RegistryCredential = RegistryCredential ; static CloudWatchLogsConfig = CloudWatchLogsConfig ; static ProjectCache = ProjectCache ; static ProjectBuildBatchConfig = ProjectBuildBatchConfig ; static BatchRestrictions = BatchRestrictions ; static ProjectTriggers = ProjectTriggers ; static Source = Source ; static ProjectSourceVersion = ProjectSourceVersion ; static LogsConfig = LogsConfig ; static SourceAuth = SourceAuth ; static ProjectFileSystemLocation = ProjectFileSystemLocation ; static S3LogsConfig = S3LogsConfig ; static WebhookFilter = WebhookFilter ; static BuildStatusConfig = BuildStatusConfig ; static EnvironmentVariable = EnvironmentVariable ; constructor ( properties ) { super ( 'AWS::CodeBuild::Project' , properties ) ; } }