/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠP iv otal ĠSoftware , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License ") Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . piv otal . kan al . model Ċ Ċ data Ġclass ĠPipeline ( ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġparameters : ĠList < Parameter >, ĊĠĠĠĠĠĠĠ Ġval Ġnotifications : ĠList < Notification >, ĊĠĠĠĠĠĠĠ Ġval Ġtriggers : ĠList < Trigger >, ĊĠĠĠĠĠĠĠ Ġval Ġstage Graph : ĠStage Graph Ċ ) Ċ Ċ data Ġclass ĠPipeline Stage ( ĊĠĠĠĠĠĠĠ Ġval Ġref Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġattrs : ĠStage Ċ ) Ċ Ċ data Ġclass ĠStage Graph Ġ( ĊĠĠĠĠĠĠĠ Ġval Ġstages : ĠList < Pipeline Stage >, ĊĠĠĠĠĠĠĠ Ġval Ġstage Requirements : ĠMap < Int , ĠList < Int >> Ċ ) Ċ Ċ interface ĠNamed Ġ{ ĊĠĠĠ Ġval Ġname : ĠString Ċ } Ċ Ċ data Ġclass ĠParameter ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġrequired : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġlabel : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġoptions : ĠList < Value >, ĊĠĠĠĠĠĠĠ Ġval Ġdefault : ĠString ? Ċ ) Ġ: ĠNamed Ġ{ ĊĠĠĠ Ġconstructor ( name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequired : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions : ĠList < String > Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault : ĠString ?) Ġ: Ġthis ( name , Ġrequired , Ġlabel , Ġdescription , Ġoptions . map Ġ{ ĠValue ( it ) Ġ}, Ġdefault ) ĊĠĠĠ Ġvar Ġhas Options Ġ= Ġoptions . isNotEmpty () Ċ } Ċ Ċ data Ġclass ĠValue Ġ( val Ġvalue : ĠString ) Ċ Ċ interface ĠTyped Ġ{ ĊĠĠĠ Ġval Ġtype : ĠString Ċ } Ċ Ċ interface ĠHas Cloud Provider Ġ{ ĊĠĠĠ Ġval Ġcloud Provider : ĠString Ċ } Ċ Ċ interface ĠStage Ġ: ĠNamed , ĠTyped Ġ{ Ċ } Ċ Ċ data Ġclass ĠCheck Preconditions Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġpre conditions : ĠList < Precondition > Ċ ) Ġ: ĠStage Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" check Preconditions " Ċ } Ċ Ċ data Ġclass ĠDestroy Server Group Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcloud Provider : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcluster : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcredentials : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġregions : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġval Ġstage Enabled : ĠCondition , ĊĠĠĠĠĠĠĠ Ġval Ġtarget : ĠString Ċ ) Ġ: ĠStage , ĠHas Cloud Provider Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" destroy Server Group " ĊĠĠĠ Ġvar Ġcloud Provider Type Ġ= Ġcloud Provider ĊĠĠĠ Ġvar Ġcomplete Other Branches Then Fail Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcontinue Pipeline Ġ= Ġtrue ĊĠĠĠ Ġvar Ġfail Pipeline Ġ= Ġfalse Ċ } Ċ Ċ data Ġclass ĠDeploy Service Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcloud Provider : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcomments : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcredentials : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġparameters : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġregion : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġservice : ĠString , ĊĠĠĠĠĠĠĠ Ġval ĠserviceName : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġservice Plan : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġstage Enabled : ĠCondition , ĊĠĠĠĠĠĠĠ Ġval Ġtags : ĠString Ċ ) Ġ: ĠStage , ĠHas Cloud Provider Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" deploy Service " ĊĠĠĠ Ġvar Ġaction Ġ= Ġtype ĊĠĠĠ Ġvar Ġcloud Provider Type Ġ= Ġcloud Provider Ċ } Ċ Ċ data Ġclass ĠDestroy Service Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcloud Provider : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcredentials : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġregion : ĠString , ĊĠĠĠĠĠĠĠ Ġval ĠserviceName : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġstage Enabled : ĠCondition Ċ ) Ġ: ĠStage , ĠHas Cloud Provider Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" destroy Service " ĊĠĠĠ Ġvar Ġaction Ġ= Ġtype ĊĠĠĠ Ġvar Ġcloud Provider Type Ġ= Ġcloud Provider ĊĠĠĠ Ġvar Ġcomplete Other Branches Then Fail Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcontinue Pipeline Ġ= Ġtrue ĊĠĠĠ Ġvar Ġfail Pipeline Ġ= Ġfalse Ċ } Ċ Ċ data Ġclass ĠWait Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcomments : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġwait Time : ĠString Ċ ) Ġ: ĠStage Ġ{ ĊĠĠĠ Ġconstructor ( name : ĠString , Ġcomments : ĠString , Ġwait Time : ĠLong ) Ġ: Ġthis ( name , Ġcomments , Ġwait Time . toString ()) ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" wait " Ċ } Ċ Ċ interface ĠCondition Ġ: ĠTyped Ċ Ċ data Ġclass ĠExpression Condition ( ĊĠĠĠĠĠĠĠ Ġval Ġexpression : ĠString Ċ ) Ġ: ĠCondition Ġ{ ĊĠĠĠ Ġconstructor ( expression : ĠBoolean ) Ġ: Ġthis ( expression . toString ()) ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" expression " Ċ } Ċ Ċ interface ĠPre condition Ġ: ĠTyped Ċ Ċ data Ġclass ĠExpression Precondition ( ĊĠĠĠĠĠĠĠ Ġval Ġcontext : ĠExpression Context Ċ ) Ġ: ĠPre condition Ġ{ ĊĠĠĠ Ġconstructor ( expression : ĠString ) Ġ: Ġthis ( Expression Context ( expression )) ĊĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" expression " ĊĠĠĠ Ġvar Ġfail Pipeline Ġ= Ġtrue Ċ } Ċ Ċ data Ġclass ĠExpression Context ( ĊĠĠĠĠĠĠĠ Ġval Ġexpression : ĠString Ċ ) Ċ Ċ data Ġclass ĠManual J ud gment Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġinstructions : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġnotifications : ĠList < Notification > Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠ Ġval Ġjud gment Inputs : ĠList < String > Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠ Ġval Ġfail Pipeline : ĠBoolean Ġ= Ġtrue Ċ ) Ġ: ĠStage Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" manual J ud gment " Ċ } Ċ Ċ data Ġclass ĠWeb hook Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġmethod : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġurl : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġuser : ĠString , ĊĠĠĠĠĠĠĠ Ġval ĠwaitFor Completion : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġfail Pipeline : ĠBoolean Ġ= Ġtrue Ċ ) Ġ: ĠStage Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" webhook " Ċ } Ċ Ċ data Ġclass ĠCan ary Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġanalysis Type : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcan ary Config : ĠCan ary Config Ċ Ċ ) Ġ: ĠStage Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" k ay enta Can ary " Ċ } Ċ Ċ data Ġclass ĠCan ary Config ( ĊĠĠĠĠĠĠĠ Ġval Ġlifetime Duration : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġscore Threshold s : ĠScore Threshold s , ĊĠĠĠĠĠĠĠ Ġval Ġstorage AccountName : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġmetrics AccountName : ĠString Ċ ) Ċ Ċ data Ġclass ĠScore Threshold s ( ĊĠĠĠĠĠĠĠ Ġval Ġm arginal : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġpass : ĠInt Ċ ) Ċ Ċ data Ġclass ĠDeploy Stage ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcomments : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġclusters : ĠList < Cloud Found ry Cluster >, ĊĠĠĠĠĠĠĠ Ġval Ġstage Enabled : ĠCondition Ċ ) Ġ: ĠStage Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" deploy " Ċ } Ċ Ċ data Ġclass ĠCloud Found ry Cluster ( ĊĠĠĠĠĠĠĠ Ġval Ġaccount : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġregion : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġstack : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġstrategy : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġstart Application : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġapplication : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġfree Form Details : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġartifact : ĠArtifact , ĊĠĠĠĠĠĠĠ Ġval Ġmanifest : ĠManifest Ċ ) Ġ: ĠHas Cloud Provider Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġcloud Provider Ġ= Ġ" cloudfoundry " ĊĠĠĠ Ġvar Ġprovider Ġ= Ġcloud Provider Ċ } Ċ Ċ interface ĠManifest Ġ: ĠTyped Ġ{ ĊĠĠĠ Ġval Ġaccount : ĠString Ċ } Ċ Ċ data Ġclass ĠArtifact Manifest ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġaccount : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġreference : ĠString Ċ ) Ġ: ĠManifest Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" artifact " Ċ } Ċ Ċ interface ĠArtifact Ġ: ĠTyped Ċ Ċ data Ġclass ĠRefer enced Artifact ( ĊĠĠĠĠĠĠĠ Ġval Ġaccount : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġreference : ĠString Ċ ) Ġ: ĠArtifact Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" artifact " Ċ } ĊĊ Ċ interface ĠNotification Ġ: ĠTyped Ċ Ċ data Ġclass ĠEmail Notification ( ĊĠĠĠĠĠĠĠ Ġval Ġaddress : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġlevel : ĠString Ċ ) Ġ: ĠNotification Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" email " Ċ } Ċ Ċ interface ĠTrigger Ġ: ĠTyped Ġ{ ĊĠĠĠ Ġval Ġenabled : ĠBoolean Ċ } Ċ Ċ data Ġclass ĠJenkins Trigger ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġenabled : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġjob : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġmaster : ĠString Ċ ) Ġ: ĠTrigger Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" jenkins " Ċ } Ċ Ċ data Ġclass ĠGit Trigger ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġenabled : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġbranch : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġproject : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġsecret : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġslug : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġsource : ĠString Ċ ) Ġ: ĠTrigger Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= Ġ" git " Ċ }