metadata:
  name: abapEnvironmentCheckoutBranch
  description: Switches between branches of a git repository on a SAP BTP ABAP Environment system
  longDescription: |
    This step switches between branches of a git repository (Software Component) on a SAP BTP ABAP Environment system.
    Please provide either of the following options:

    * The host and credentials the BTP ABAP Environment system itself. The credentials must be configured for the Communication Scenario [SAP_COM_0510](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/b04a9ae412894725a2fc539bfb1ca055.html).
    * The Cloud Foundry parameters (API endpoint, organization, space), credentials, the service instance for the ABAP service and the service key for the Communication Scenario SAP_COM_0510.
    * Only provide one of those options with the respective credentials. If all values are provided, the direct communication (via host) has priority.

spec:
  inputs:
    secrets:
      - name: abapCredentialsId
        description: Jenkins credentials ID containing user and password to authenticate to the BTP ABAP Environment system or the Cloud Foundry API
        type: jenkins
        aliases:
          - name: cfCredentialsId
          - name: credentialsId
    params:
      - name: username
        type: string
        description: User for either the Cloud Foundry API or the Communication Arrangement for SAP_COM_0510
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: true
        secret: true
        resourceRef:
          - name: abapCredentialsId
            type: secret
            param: username
      - name: password
        type: string
        description: Password for either the Cloud Foundry API or the Communication Arrangement for SAP_COM_0510
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: true
        secret: true
        resourceRef:
          - name: abapCredentialsId
            type: secret
            param: password
      - name: repositoryName
        type: string
        description: Specifies a Repository (Software Component) on the SAP BTP ABAP Environment system
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
      - name: branchName
        type: string
        description: Specifies a Branch of a Repository (Software Component) on the SAP BTP ABAP Environment system
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
      - name: host
        type: string
        description: Specifies the host address of the SAP BTP ABAP Environment system
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
      - name: repositories
        type: string
        description: Specifies a YAML file containing the repositories configuration
        scope:
          - GENERAL
          - PARAMETERS
          - STAGES
          - STEPS
      - name: cfApiEndpoint
        type: string
        description: Cloud Foundry API Enpoint
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        aliases:
          - name: cloudFoundry/apiEndpoint
      - name: cfOrg
        type: string
        description: Cloud Foundry target organization
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        aliases:
          - name: cloudFoundry/org
      - name: cfSpace
        type: string
        description: Cloud Foundry target space
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        aliases:
          - name: cloudFoundry/space
      - name: cfServiceInstance
        type: string
        description: Cloud Foundry Service Instance
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        aliases:
          - name: cloudFoundry/serviceInstance
      - name: cfServiceKeyName
        type: string
        description: Cloud Foundry Service Key
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        aliases:
          - name: cloudFoundry/serviceKey
          - name: cloudFoundry/serviceKeyName
          - name: cfServiceKeyName
  containers:
    - name: cf
      image: ppiper/cf-cli:7
