# Copyright 2018 The Kubeflow Authors
#
# 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.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  annotations:
    pipelines.kubeflow.org/pipeline_spec: '{"description": "A pipeline with parameter and default value.", "inputs": [{"default": "gs://ml-pipeline/shakespeare1.txt", "name": "url"}], "name": "Default Value"}'
  generateName: default-value-
spec:
  arguments:
    parameters:
    - name: url
      value: gs://ml-pipeline/shakespeare1.txt
  entrypoint: default-value
  serviceAccountName: pipeline-runner
  templates:
  - dag:
      tasks:
      - arguments:
          parameters:
          - name: url
            value: '{{inputs.parameters.url}}'
        name: download
        template: download
      - arguments:
          parameters:
          - name: download-downloaded
            value: '{{tasks.download.outputs.parameters.download-downloaded}}'
        dependencies:
        - download
        name: echo
        template: echo
    inputs:
      parameters:
      - name: url
    name: default-value
  - container:
      args:
      - gsutil cat {{inputs.parameters.url}} | tee /tmp/results.txt
      command:
      - sh
      - -c
      image: google/cloud-sdk
    inputs:
      parameters:
      - name: url
    name: download
    outputs:
      artifacts:
      - name: download-downloaded
        path: /tmp/results.txt
      parameters:
      - name: download-downloaded
        valueFrom:
          path: /tmp/results.txt
  - container:
      args:
      - echo {{inputs.parameters.download-downloaded}}
      command:
      - sh
      - -c
      image: library/bash
    inputs:
      parameters:
      - name: download-downloaded
    name: echo
