# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.

# Define variable `repository`
repository: &repository "git@github.com:<YOUR-NAME-OR-ORG>/dvc-data-repository-example.git" 

# Define the workflow
workflow:
  name: "DVC"
  release_state: "offline"

# Define the tasks within the workflow
tasks:
  - name: init_dvc 
    task_type: DVCInit
    repository: *repository
    store_url: ~/dvc_data

  - name: upload_data
    task_type: DVCUpload
    repository: *repository
    data_path_in_dvc_repository: "iris"
    data_path_in_worker: ~/source/iris
    version: v1
    message: upload iris data v1

  - name: download_data
    task_type: DVCDownload
    repository: *repository
    data_path_in_dvc_repository: "iris"
    data_path_in_worker: ~/target/iris
    version: v1
