package Ġio . po yar z un . con cour sed sl . resources Ċ Ċ import Ġcom . fasterxml . jackson . databind . Property Naming Strategy Ċ import Ġcom . fasterxml . jackson . databind . annotation . Json Naming Ċ import Ġio . po yar z un . con cour sed sl . domain . Con course Dsl Marker Ċ import Ġio . po yar z un . con cour sed sl . domain . Resource Ċ import Ġio . po yar z un . con cour sed sl . domain . Step Ċ import Ġio . po yar z un . con cour sed sl . dsl . Config Block Ċ import Ġio . po yar z un . con cour sed sl . dsl . Dsl Object Ċ Ċ // Ġhttps :// github . com / con course / semver - resource Ċ Ċ enum Ġclass ĠBump Ġ{ ĊĠĠĠ Ġmajor , Ġminor , Ġpatch , Ġfinal Ċ } Ċ Ċ class ĠSem ver Resource ( name : ĠString ) Ġ: ĠResource < Sem ver Resource . Source Params >( name , Ġ" semver ") Ġ{ ĊĠĠĠ Ġoverride Ġval Ġsource Ġ= ĠSource Params () ĊĊĠĠĠ Ġobject ĠGit ĊĠĠĠ Ġobject ĠG cs ĊĠĠĠ Ġobject ĠS 3 ĊĠĠĠ Ġobject ĠSwift ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġclass ĠSource Params Ġ: ĠD sl Object < Sem ver Driver >( null ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( driver : ĠGit , Ġuri : ĠString , Ġbranch : ĠString , Ġfile : ĠString , Ġconfig Block : ĠConfig Block < Git Driver >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠGit Driver ( uri , Ġbranch , Ġfile ). apply ( config Block ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( driver : ĠG cs , Ġbucket : ĠString , Ġkey : ĠString , Ġjson Key : ĠString , Ġconfig Block : ĠConfig Block < G cs Driver >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠG cs Driver ( bucket , Ġkey , Ġjson Key ). apply ( config Block ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( driver : ĠS 3 , Ġbucket : ĠString , Ġkey : ĠString , Ġaccess KeyId : ĠString , Ġsecret AccessKey : ĠString , Ġconfig Block : ĠConfig Block < S 3 Driver >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠS 3 Driver ( bucket , Ġkey , Ġaccess KeyId , Ġsecret AccessKey ). apply ( config Block ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( driver : ĠSwift , Ġconfig Block : ĠConfig Block < Swift Driver >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠSwift Driver (). apply ( config Block ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġclass ĠGet Params Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbump : ĠBump ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġpre : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġclass ĠPut Params Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfile : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġbump : ĠBump ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġpre : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠGet Step ( name : ĠString ) Ġ: ĠStep . Get Step < Dsl Object < Get Params >>( name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġparams Ġ= ĠD sl Object . from ( Sem ver Resource :: Get Params ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠPut Step ( name : ĠString ) Ġ: ĠStep . Put Step < Dsl Object < Get Params >, ĠD sl Object < Put Params >>( name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġparams Ġ= ĠD sl Object . from ( Sem ver Resource :: Put Params ) ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġget Params Ġ= ĠD sl Object . from ( Sem ver Resource :: Get Params ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Con course Dsl Marker ĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġopen Ġclass ĠSem ver Driver Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġinitial Version : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġdata Ġclass ĠGit Driver ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbranch : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile : ĠString ) Ġ: ĠSem ver Driver () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdriver Ġ= Ġ" git " ĊĠĠĠĠĠĠĠ Ġvar ĠprivateKey : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġusername : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġpassword : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġgit User : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdepth : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġcommit Message : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġdata Ġclass ĠS 3 Driver ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbucket : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccess KeyId : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecret AccessKey : ĠString ) Ġ: ĠSem ver Driver () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdriver Ġ= Ġ" s 3 " ĊĠĠĠĠĠĠĠ Ġvar Ġregion Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġendpoint : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdisable Ssl : ĠBoolean ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġskip Ssl Verification : ĠBoolean ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġserver Side Encryption : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġuse V 2 Signing : ĠBoolean ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġclass ĠG cs Driver ( val Ġbucket : ĠString , Ġval Ġkey : ĠString , Ġval Ġjson Key : ĠString ) Ġ: ĠSem ver Driver () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdriver Ġ= Ġ" g cs " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġclass ĠSwift Driver Ġ: ĠSem ver Driver () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdriver Ġ= Ġ" swift " ĊĠĠĠĠĠĠĠ Ġval Ġopen stack Ġ= ĠD sl Object . from (:: Open Stack ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Naming ( Property Naming Strategy . Snake Case Strategy :: class ) ĊĠĠĠ Ġdata Ġclass ĠOpen Stack ( val Ġcontainer : ĠString , Ġval Ġitem Name : ĠString , Ġval Ġregion : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġidentity Endpoint : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġusername : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar ĠuserId : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġpassword : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar ĠapiKey : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdomain Id : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdomain Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġtenant Id : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġtenant Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġallow Re auth : ĠBoolean ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġtoken Id : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġsemver Resource ( name : ĠString , Ġconfig Block : ĠConfig Block < Sem ver Resource >) Ġ= ĊĠĠĠĠĠĠĠ ĠSem ver Resource ( name ). apply ( config Block ) Ċ Ċ fun Ġget ( resource : ĠSem ver Resource , Ġconfig Block : ĠConfig Block < Sem ver Resource . Get Step >) Ġ= ĊĠĠĠĠĠĠĠ ĠSem ver Resource . Get Step ( resource . name ). apply ( config Block ) Ċ Ċ fun Ġput ( resource : ĠSem ver Resource , Ġconfig Block : ĠConfig Block < Sem ver Resource . Put Step >) Ġ= ĊĠĠĠĠĠĠĠ ĠSem ver Resource . Put Step ( resource . name ). apply ( config Block ) Ċ