import groovy.transform.Field
import com.sap.piper.Utils

import static com.sap.piper.Prerequisites.checkScript

@Field String STEP_NAME = getClass().getName()
@Field Set GENERAL_CONFIG_KEYS = []
@Field STAGE_STEP_KEYS = [
    /** Creates a SAP Cloud Platform ABAP Environment instance via the cloud foundry command line interface */
    'abapEnvironmentCreateSystem',
    /** Creates Communication Arrangements for ABAP Environment instance via the cloud foundry command line interface */
    'cloudFoundryCreateServiceKey'
]
@Field Set STEP_CONFIG_KEYS = GENERAL_CONFIG_KEYS.plus(STAGE_STEP_KEYS)
@Field Set PARAMETER_KEYS = STEP_CONFIG_KEYS
/**
 * This stage prepares the SAP Cloud Platform ABAP Environment systems
 */
void call(Map parameters = [:]) {
    def script = checkScript(this, parameters) ?: this
    def stageName = parameters.stageName?:env.STAGE_NAME

    piperStageWrapper (script: script, stageName: stageName, stashContent: [], stageLocking: false) {
        abapEnvironmentCreateSystem script: parameters.script
    }

}
