metadata:
  name: cloudFoundryCreateServiceKey
  description: cloudFoundryCreateServiceKey
  longDescription: |
    Create CloudFoundryServiceKey
spec:
  inputs:
    secrets:
      - name: cfCredentialsId
        description: Jenkins 'Username with password' credentials ID containing user and password to authenticate to the Cloud Foundry API.
        type: jenkins
    params:
      - name: cfApiEndpoint
        type: string
        description: Cloud Foundry API endpoint
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: true
        aliases:
          - name: cloudFoundry/apiEndpoint
      - name: username
        type: string
        description: User or E-Mail for CF
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: true
        secret: true
        resourceRef:
          - name: cfCredentialsId
            type: secret
            param: username
          - type: vaultSecret
            default: cloudfoundry-$(org)-$(space)
            name: cloudfoundryVaultSecretName
      - name: password
        type: string
        description: User Password for CF User
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: true
        secret: true
        resourceRef:
          - name: cfCredentialsId
            type: secret
            param: password
          - type: vaultSecret
            default: cloudfoundry-$(org)-$(space)
            name: cloudfoundryVaultSecretName
      - name: cfOrg
        type: string
        description: CF org
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: true
        aliases:
          - name: cloudFoundry/org
      - name: cfSpace
        type: string
        description: CF Space
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: true
        aliases:
          - name: cloudFoundry/space
      - name: cfServiceInstance
        type: string
        description: Parameter for CloudFoundry Service Instance Name
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: true
        aliases:
          - name: cloudFoundry/serviceInstance
      - name: cfServiceKeyName
        type: string
        description: Parameter for Service Key name for CloudFoundry Service Key to be created
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: true
        aliases:
          - name: cloudFoundry/serviceKey
          - name: cloudFoundry/serviceKeyName
          - name: cfServiceKey
      - name: cfServiceKeyConfig
        type: string
        description: Path to JSON config file path or JSON in-line string for Cloud Foundry Service Key creation
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: false
        aliases:
          - name: cloudFoundry/serviceKeyConfig
  containers:
    - name: cf
      image: ppiper/cf-cli:latest
