diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index d943c48cf8bf..000000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.234.0/containers/debian/.devcontainer/base.Dockerfile - -ARG VARIANT="bullseye" -FROM --platform=linux/amd64 mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT} - -ARG NEW_USERNAME="" -ARG HOME="" -ARG OLD_USERNAME="vscode" -ARG VSCODE_SCRIPT_VERSION="" - -ARG PROTOC_ZIP="protoc-3.14.0-linux-x86_64.zip" -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get install -y apt-transport-https ca-certificates git sudo \ - # use new user instead of vscode user - && usermod -l $NEW_USERNAME -d /home/$NEW_USERNAME -m $OLD_USERNAME \ - && groupmod -n $NEW_USERNAME $OLD_USERNAME \ - && echo $NEW_USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$NEW_USERNAME \ - && chmod 0440 /etc/sudoers.d/$NEW_USERNAME \ - # kubectl - && curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg \ - && echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list \ - && apt-get update \ - && apt-get install -y kubectl \ - # protobuf - && curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/${PROTOC_ZIP} \ - && unzip -o ${PROTOC_ZIP} -d /usr/local bin/protoc \ - && unzip -o ${PROTOC_ZIP} -d /usr/local 'include/*' \ - && rm -f ${PROTOC_ZIP} \ - && chmod 755 /usr/local/bin/protoc \ - && chmod -R 755 /usr/local/include/ \ - # k3d - && wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash \ - # go - && bash -ec "$(curl -fsSL "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/$VSCODE_SCRIPT_VERSION/script-library/go-debian.sh")" -- "1.18" "/usr/local/go" "$HOME/go" "automatic" "true" "false" \ - # dind - && bash -ec "$(curl -fsSL "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/$VSCODE_SCRIPT_VERSION/script-library/docker-in-docker-debian.sh")" -- "true" "automatic" "true" "20.10" "v1" \ - # node - && bash -ec "$(curl -fsSL "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/$VSCODE_SCRIPT_VERSION/script-library/node-debian.sh")" -- "/usr/local/share/nvm" "16" "automatic" "true" "true" \ - # python - && bash -ec "$(curl -fsSL "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/$VSCODE_SCRIPT_VERSION/script-library/python-debian.sh")" -- "3.9" \ - && apt-get clean -y && rm -rf /var/lib/apt/lists/* diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 3ef93ba144bc..411aa3c45ba7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,30 +1,23 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.234.0/containers/debian { - "name": "Debian", - "build": { - "dockerfile": "Dockerfile", - "args": { - "VARIANT": "bullseye", - "NEW_USERNAME": "${localEnv:USER}", - "HOME": "${localEnv:HOME}", - "VSCODE_SCRIPT_VERSION": "v0.234.0" - } - }, - - "settings": {}, - - "extensions": [], - - "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ], - - "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], - - "remoteUser": "${localEnv:USER}", - "features": {}, - - "workspaceMount": "source=${localWorkspaceFolder},target=${localEnv:HOME}/go/src/github.com/argoproj/argo-workflows,type=bind", - "workspaceFolder": "${localEnv:HOME}/go/src/github.com/argoproj/argo-workflows", - - "postStartCommand": "bash -i .devcontainer/startup.sh" + "image": "mcr.microsoft.com/vscode/devcontainers/base:ubuntu", + "features": { + "ghcr.io/devcontainers/features/go:1": { + "version": "1.19" + }, + "ghcr.io/devcontainers/features/node:1": { + "version": "20" + }, + "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/python:1": {} + }, + "hostRequirements": { + "cpus": 4 + }, + "onCreateCommand": ".devcontainer/pre-build.sh", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/vscode/go/src/github.com/argoproj/argo-workflows,type=bind", + "workspaceFolder": "/home/vscode/go/src/github.com/argoproj/argo-workflows" + "remoteEnv": { + "PATH": "${containerEnv:PATH}:/home/vscode/go/bin", + "GOPATH": "/home/vscode/go" + } } diff --git a/.devcontainer/pre-build.sh b/.devcontainer/pre-build.sh new file mode 100755 index 000000000000..3c028bd84d26 --- /dev/null +++ b/.devcontainer/pre-build.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env sh +set -eux + +# Add hosts +sudo bash -c 'echo "127.0.0.1 dex" >> /etc/hosts' +sudo bash -c 'echo "127.0.0.1 minio" >> /etc/hosts' +sudo bash -c 'echo "127.0.0.1 postgres" >> /etc/hosts' +sudo bash -c 'echo "127.0.0.1 mysql" >> /etc/hosts' +sudo bash -c 'echo "127.0.0.1 azurite" >> /etc/hosts' + +# install kubernetes +wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash +k3d cluster get k3s-default || k3d cluster create --image rancher/k3s:v1.27.3-k3s1 --wait +k3d kubeconfig merge --kubeconfig-merge-default + +# install kubectl +curl -LO https://dl.k8s.io/release/v1.27.3/bin/linux/$(go env GOARCH)/kubectl +chmod +x ./kubectl +sudo mv ./kubectl /usr/local/bin/kubectl +kubectl cluster-info + +# install kit +curl -q https://raw.githubusercontent.com/kitproj/kit/main/install.sh | sh + +# install protocol buffer compiler (protoc) +sudo apt update +sudo apt install -y protobuf-compiler + +# Make sure go path is owned by vscode +sudo chown -R vscode:vscode /home/vscode/go + +# download dependencies and do first-pass compile +CI=1 kit pre-up diff --git a/.devcontainer/startup.sh b/.devcontainer/startup.sh deleted file mode 100644 index 2e3c1f39c4b6..000000000000 --- a/.devcontainer/startup.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -set -e - -sudo apt update -sudo chown $USER:docker /var/run/docker.sock -sudo chown -fR $USER:golang $GOPATH - -echo $'127.0.0.1 dex\n127.0.0.1 minio\n127.0.0.1 postgres\n127.0.0.1 mysql\n127.0.0.1 azurite' | sudo tee -a /etc/hosts - -if k3d cluster list | grep k3s-default; -then - echo "skip k3s creation, k3s-default cluster already exist" -else - k3d cluster create -fi - -until k3d cluster start --wait ; do sleep 5 ; done -k3d kubeconfig merge k3s-default --kubeconfig-merge-default --kubeconfig-switch-context diff --git a/.dockerignore b/.dockerignore index 37c2602814ed..f027dd582079 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,6 +3,9 @@ *.iml *.md *.yaml +.devcontainer +# The .git folder gets modified every time git runs preventing caching of builds. Once removed, we must pass GIT_COMMIT as Docker build-args. +.git .github .idea .run @@ -12,9 +15,12 @@ coverage.out dist docs examples +logs manifests plugins sdks +site +tasks.yaml test/e2e ui/dist ui/node_modules diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index a8865c0269f1..1997838a5c37 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,7 +2,7 @@ blank_issues_enabled: false contact_links: - name: Have you read the docs? - url: https://argoproj.github.io/argo-workflows/ + url: https://argo-workflows.readthedoc.io/en/latest about: Much help can be found in the docs - name: Ask a question url: https://github.com/argoproj/argo-workflows/discussions/new diff --git a/.github/dependabot.yml b/.github/dependabot.yml index caa13f04034f..a581c343f2a7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,4 +25,6 @@ updates: ignore: - dependency-name: raw-loader - dependency-name: style-loader + - dependency-name: react-router-dom + - dependency-name: @types/react-router-dom open-pull-requests-limit: 10 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e5bb6d68ed49..4e0e46694d31 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,14 +1,25 @@ +TODO: Say why you made your changes. +TODO: Say what changes you made. +TODO: Say how you tested your changes. +TODO: Attach screenshots if you changed the UI. + Fixes #TODO -Please do not open a pull request until you have checked ALL of these: + diff --git a/.github/semantic.yml b/.github/semantic.yml deleted file mode 100644 index 3bd5b4b6a00a..000000000000 --- a/.github/semantic.yml +++ /dev/null @@ -1,2 +0,0 @@ -# Documentation: https://github.com/zeke/semantic-pull-requests -titleOnly: true diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index e9eea357dbe1..30ed976f44c6 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -25,7 +25,7 @@ jobs: - run: git tag -l 'v*' # avoid invoking `make` to reduce the risk of a Makefile bug failing this workflow - run: ./hack/changelog.sh > CHANGELOG.md - - uses: peter-evans/create-pull-request@v4 + - uses: peter-evans/create-pull-request@v5 with: title: 'docs: updated CHANGELOG.md' commit-message: 'docs: updated CHANGELOG.md' diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml index 9539c5266eef..4484eaecaa6e 100644 --- a/.github/workflows/ci-build.yaml +++ b/.github/workflows/ci-build.yaml @@ -20,12 +20,12 @@ jobs: tests: name: Unit Tests runs-on: ubuntu-latest - timeout-minutes: 8 + timeout-minutes: 10 steps: - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: - go-version: "1.18" + go-version: "1.20" cache: true - run: make test STATIC_FILES=false GOTEST='go test -p 20 -covermode=atomic -coverprofile=coverage.out' # engineers just ignore this in PRs, so lets not even run it @@ -41,7 +41,7 @@ jobs: - uses: actions/checkout@v3 - uses: docker/setup-buildx-action@v2 - name: Build and export - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . tags: quay.io/argoproj/argoexec:latest @@ -58,7 +58,7 @@ jobs: e2e-tests: name: E2E Tests runs-on: ubuntu-latest - timeout-minutes: 25 + timeout-minutes: 30 needs: [ argoexec-image ] env: KUBECONFIG: /home/runner/.kubeconfig @@ -100,9 +100,9 @@ jobs: # needed by Kubernetes v1.25 run: sudo apt-get -y install socat - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: - go-version: "1.18" + go-version: "1.20" cache: true - uses: actions/setup-java@v3 if: ${{matrix.test == 'test-java-sdk'}} @@ -117,7 +117,12 @@ jobs: cache: pip - name: Install and start K3S run: | - curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=${{matrix.install_k3s_version}} INSTALL_K3S_CHANNEL=stable INSTALL_K3S_EXEC=--docker K3S_KUBECONFIG_MODE=644 sh - + if ! echo "${{ matrix.install_k3s_version }}" | egrep '^v[0-9]+\.[0-9]+\.[0-9]+\+k3s1$'; then + export INSTALL_K3S_VERSION=v1.26.3+k3s1 + else + export INSTALL_K3S_VERSION=${{ matrix.install_k3s_version }} + fi + curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=stable INSTALL_K3S_EXEC=--docker K3S_KUBECONFIG_MODE=644 sh - until kubectl --kubeconfig=/etc/rancher/k3s/k3s.yaml cluster-info ; do sleep 10s ; done cp /etc/rancher/k3s/k3s.yaml /home/runner/.kubeconfig echo "- name: fake_token_user" >> $KUBECONFIG @@ -140,25 +145,18 @@ jobs: echo '127.0.0.1 azurite' | sudo tee -a /etc/hosts - run: make install PROFILE=${{matrix.profile}} STATIC_FILES=false name: Install manifests - - run: make controller $(go env GOPATH)/bin/goreman STATIC_FILES=false + - run: make controller kit STATIC_FILES=false name: Build controller - run: make cli STATIC_FILES=false if: ${{matrix.test == 'test-api' || matrix.test == 'test-cli' || matrix.test == 'test-java-sdk' || matrix.test == 'test-python-sdk'}} name: Build CLI - - run: ./hack/port-forward.sh - name: Start port forward - - run: make start PROFILE=${{matrix.profile}} AUTH_MODE=client STATIC_FILES=false LOG_LEVEL=info API=${{matrix.test == 'test-api' || matrix.test == 'test-cli' || matrix.test == 'test-java-sdk' || matrix.test == 'test-python-sdk'}} UI=false LOGS=false > /tmp/argo.log 2>&1 & + - run: make start PROFILE=${{matrix.profile}} AUTH_MODE=client STATIC_FILES=false LOG_LEVEL=info API=${{matrix.test == 'test-api' || matrix.test == 'test-cli' || matrix.test == 'test-java-sdk' || matrix.test == 'test-python-sdk'}} UI=false > /tmp/argo.log 2>&1 & name: Start controller/API - - run: make wait + - run: make wait API=${{matrix.test == 'test-api' || matrix.test == 'test-cli' || matrix.test == 'test-java-sdk' || matrix.test == 'test-python-sdk'}} timeout-minutes: 4 name: Wait for controller to be up - name: Run tests ${{matrix.test}} - # https://github.com/marketplace/actions/retry-step - uses: nick-fields/retry@v2.8.3 - with: - timeout_minutes: 20 - max_attempts: 2 - command: make ${{matrix.test}} E2E_SUITE_TIMEOUT=20m STATIC_FILES=false + run: make ${{matrix.test}} E2E_SUITE_TIMEOUT=20m STATIC_FILES=false - if: ${{ failure() }} name: MinIO/MySQL deployment run: | @@ -202,9 +200,9 @@ jobs: GOPATH: /home/runner/go steps: - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: - go-version: "1.19" + go-version: "1.20" cache: true - name: Install protoc run: | @@ -235,9 +233,9 @@ jobs: GOPATH: /home/runner/go steps: - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: - go-version: "1.18" + go-version: "1.20" cache: true - run: make lint STATIC_FILES=false - run: git diff --exit-code @@ -252,7 +250,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: "16" + node-version: "20" # change in all GH Workflows cache: yarn cache-dependency-path: ui/yarn.lock - run: yarn --cwd ui install diff --git a/.github/workflows/dependabot-reviewer.yml b/.github/workflows/dependabot-reviewer.yml index 2aac560da9bc..43b27d3512be 100644 --- a/.github/workflows/dependabot-reviewer.yml +++ b/.github/workflows/dependabot-reviewer.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.3.6 + uses: dependabot/fetch-metadata@v1.5.1 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Approve PR diff --git a/.github/workflows/gh-pages.yaml b/.github/workflows/gh-pages.yaml index dc08efb64d51..0ccc55d04d04 100644 --- a/.github/workflows/gh-pages.yaml +++ b/.github/workflows/gh-pages.yaml @@ -23,12 +23,12 @@ jobs: - uses: actions/setup-python@v4 with: python-version: 3.9 - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: - go-version: '1.18' + go-version: '1.20' - uses: actions/setup-node@v3 with: - node-version: "16" + node-version: "19" # Use the same make target both locally and on CI to make it easier to debug failures. - run: make docs # If markdownlint fixes issues, files will be changed. If so, fail the build. diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 54896192003e..714f59b6807c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,7 +34,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 with: - version: v0.9.1 + version: v0.10.4 - name: Cache Docker layers uses: actions/cache@v3 @@ -64,11 +64,16 @@ jobs: PLATFORM: ${{ matrix.platform }} TARGET: ${{ matrix.target }} run: | + set -eux tag=$(basename $GITHUB_REF) if [ $tag = "master" ]; then tag="latest" fi - + # copied verbatim from Makefile + GIT_COMMIT=$(git rev-parse HEAD || echo unknown) + GIT_TAG=$(git describe --exact-match --tags --abbrev=0 2> /dev/null || echo untagged) + GIT_TREE_STATE=$(if [ -z "`git status --porcelain`" ]; then echo "clean" ; else echo "dirty"; fi) + tag_suffix=$(echo $PLATFORM | sed -r "s/\//-/g") image_name="${DOCKERIO_ORG}/${TARGET}:${tag}-${tag_suffix}" @@ -76,16 +81,24 @@ jobs: --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \ --output "type=image,push=true" \ + --build-arg GIT_COMMIT=$GIT_COMMIT \ + --build-arg GIT_TAG=$GIT_TAG \ + --build-arg GIT_TREE_STATE=$GIT_TREE_STATE \ --platform="${PLATFORM}" \ --target $TARGET \ + --provenance=false \ --tag $image_name . docker buildx build \ --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \ --output "type=image,push=true" \ + --build-arg GIT_COMMIT=$GIT_COMMIT \ + --build-arg GIT_TAG=$GIT_TAG \ + --build-arg GIT_TREE_STATE=$GIT_TREE_STATE \ --platform="${PLATFORM}" \ --target $TARGET \ + --provenance=false \ --tag quay.io/$image_name . build-linux-arm64: @@ -107,7 +120,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 with: - version: v0.9.1 + version: v0.10.4 - name: Cache Docker layers uses: actions/cache@v3 @@ -119,13 +132,13 @@ jobs: ${{ runner.os }}-${{ matrix.platform }}-${{ matrix.target }}-buildx- - name: Docker Login - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERIO_USERNAME }} password: ${{ secrets.DOCKERIO_PASSWORD }} - name: Docker Login - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: quay.io username: ${{ secrets.QUAYIO_USERNAME }} @@ -137,11 +150,16 @@ jobs: PLATFORM: ${{ matrix.platform }} TARGET: ${{ matrix.target }} run: | + set -eux tag=$(basename $GITHUB_REF) if [ $tag = "master" ]; then tag="latest" fi - + # copied verbatim from Makefile + GIT_COMMIT=$(git rev-parse HEAD || echo unknown) + GIT_TAG=$(git describe --exact-match --tags --abbrev=0 2> /dev/null || echo untagged) + GIT_TREE_STATE=$(if [ -z "`git status --porcelain`" ]; then echo "clean" ; else echo "dirty"; fi) + tag_suffix=$(echo $PLATFORM | sed -r "s/\//-/g") image_name="${DOCKERIO_ORG}/${TARGET}:${tag}-${tag_suffix}" @@ -149,22 +167,30 @@ jobs: --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \ --output "type=image,push=true" \ + --build-arg GIT_COMMIT=$GIT_COMMIT \ + --build-arg GIT_TAG=$GIT_TAG \ + --build-arg GIT_TREE_STATE=$GIT_TREE_STATE \ --platform="${PLATFORM}" \ --target $TARGET \ + --provenance=false \ --tag $image_name . docker buildx build \ --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \ --output "type=image,push=true" \ + --build-arg GIT_COMMIT=$GIT_COMMIT \ + --build-arg GIT_TAG=$GIT_TAG \ + --build-arg GIT_TREE_STATE=$GIT_TREE_STATE \ --platform="${PLATFORM}" \ --target $TARGET \ + --provenance=false \ --tag quay.io/$image_name . build-windows: name: Build & push windows if: github.repository == 'argoproj/argo-workflows' - runs-on: windows-2019 + runs-on: windows-2022 steps: - uses: actions/checkout@v3 - name: Docker Login @@ -179,7 +205,7 @@ jobs: login-server: quay.io username: ${{ secrets.QUAYIO_USERNAME }} password: ${{ secrets.QUAYIO_PASSWORD }} - + - name: Build & Push Windows Docker Images env: DOCKERIO_ORG: ${{ secrets.DOCKERIO_ORG }} @@ -194,7 +220,15 @@ jobs: targets="argoexec" for target in $targets; do image_name="${docker_org}/${target}:${tag}-windows" - docker build --target $target -t $image_name -f Dockerfile.windows . + docker build \ + --build-arg GIT_COMMIT=$tag \ + --build-arg GIT_BRANCH=$branch \ + --build-arg GIT_TREE_STATE=$tree_state \ + --target $target \ + -t $image_name \ + -f Dockerfile.windows \ + . + docker push $image_name docker tag $image_name quay.io/$image_name @@ -302,7 +336,7 @@ jobs: test-images-windows: name: Try pulling windows if: github.repository == 'argoproj/argo-workflows' - runs-on: windows-2019 + runs-on: windows-2022 needs: [ push-images ] steps: - name: Docker Login @@ -348,10 +382,10 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: "16" - - uses: actions/setup-go@v3 + node-version: "20" # change in all GH Workflows + - uses: actions/setup-go@v4 with: - go-version: "1.18" + go-version: "1.20" - uses: actions/cache@v3 with: path: ui/node_modules diff --git a/.github/workflows/snyk.yml b/.github/workflows/snyk.yml index 903e150218ea..4b5b30ed1808 100644 --- a/.github/workflows/snyk.yml +++ b/.github/workflows/snyk.yml @@ -2,6 +2,11 @@ name: Snyk on: schedule: - cron: "30 2 * * *" + push: + branches: + - master + - release-* + permissions: contents: read @@ -27,6 +32,11 @@ jobs: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} steps: - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: "20" # change in all GH Workflows + cache: yarn + cache-dependency-path: ui/yarn.lock - run: yarn --cwd ui install - name: Run Snyk to check for vulnerabilities uses: snyk/actions/node@master diff --git a/.gitignore b/.gitignore index 012b8b068077..c436318d182f 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ sdks/python/client/dist/* # Do not commit rendered installation manifests since they are misleading to users. manifests/install.yaml manifests/namespace-install.yaml +/logs diff --git a/.golangci.yml b/.golangci.yml index f0b13cf5ee53..e9de691ae418 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -61,7 +61,8 @@ issues: exclude: # We are leaving io/ioutil for now to make backports easier # https://github.com/argoproj/argo-workflows/pull/6964#issuecomment-946827019 - - "SA1019: \"io/ioutil\" has been deprecated since Go 1.16" + - "SA1019: \"io/ioutil\" has been deprecated since Go 1.19" + - "SA1019: rand.Seed has been deprecated since Go 1.20" exclude-rules: - path: server/artifacts/artifact_server_test.go text: "response body must be closed" diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 000000000000..71bd86159aeb --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,11 @@ +version: 2 +formats: all +mkdocs: + fail_on_warning: false +python: + install: + - requirements: docs/requirements.txt +build: + os: "ubuntu-22.04" + tools: + python: "3.12" diff --git a/.spelling b/.spelling index 1d2cca6f3d19..ac7cad6d6c15 100644 --- a/.spelling +++ b/.spelling @@ -66,6 +66,7 @@ J.P. Jemison JetBrains KNative +Kaniko Katacoda Kerberos Killercoda @@ -134,6 +135,7 @@ cron daemoned dev-container dinever +dockershim dropdown e.g. e2e diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d7a899bb010..440894ba5483 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,167 @@ # Changelog +## v3.4.6 (2023-03-30) + + * [988706dd1](https://github.com/argoproj/argo-workflows/commit/988706dd131cf98808f09fb7cc03780e2af94c73) fix: Support v1 PDB in k8s v1.25+. Fixes #10649 (#10712) + * [72a0e5b74](https://github.com/argoproj/argo-workflows/commit/72a0e5b74fe10c1b9c030e9b447f2d72d9713f4c) fix: Update GitHub RSA SSH host key (#10779) + * [8eedf94c6](https://github.com/argoproj/argo-workflows/commit/8eedf94c64da5955c110c8d20529927434c4ae4e) fix: metrics don't get emitted properly during retry. Fixes #8207 #10463 (#10489) + * [edc00836c](https://github.com/argoproj/argo-workflows/commit/edc00836cbd5fe031e4509e997f50ab93501f5f5) fix: Immediately release locks by pending workflows that are shutting down. Fixes #10733 (#10735) + * [1819e3067](https://github.com/argoproj/argo-workflows/commit/1819e3067a015550e6ea1a4c220c4b77c54d7555) fix: DB sessions are recreated whenever controller configmap updates. Fixes #10498 (#10734) + * [e71548868](https://github.com/argoproj/argo-workflows/commit/e715488680ad7bfd5bb3298418d8e38d352c3e38) fix: Workflow stuck at running when init container failed but wait container did not. Fixes #10717 (#10740) + * [a3d64b2d4](https://github.com/argoproj/argo-workflows/commit/a3d64b2d483d256b945a595c70097ef61039517c) fix: Improve templating diagnostics. Fixes #8311 (#10741) + * [99105c142](https://github.com/argoproj/argo-workflows/commit/99105c1424286f9c52be8d5dfc63296d93766740) fix: ensure children containers are killed for container sets. Fixes #10491 (#10639) + * [86b82f316](https://github.com/argoproj/argo-workflows/commit/86b82f316477b2d53351366f99cc33e003ace080) fix: PVC in wf.status should be reset when retrying workflow (#10685) + * [c56f65528](https://github.com/argoproj/argo-workflows/commit/c56f655289c4238de91d9169bed1eb9543831f34) fix: ensure error returns before attrs is accessed. Fixes #10691 (#10692) + * [6b7b4b3bc](https://github.com/argoproj/argo-workflows/commit/6b7b4b3bca44b82634e61e159581bc006f63179e) fix: get configmap data when updating controller config Fixes #10659 (#10660) + * [ac8e7e32b](https://github.com/argoproj/argo-workflows/commit/ac8e7e32ba8b75f1664f4817f6dabd0bc25743c9) fix: executor dir perm changed to 755. Fixes #9651 (#10664) + * [ac84d00a4](https://github.com/argoproj/argo-workflows/commit/ac84d00a4183aa763c94c93bf1beb58269c6e9d3) fix: Fix broken archive UI Fixes #10606 (#10622) + * [584998a7a](https://github.com/argoproj/argo-workflows/commit/584998a7aa777c484ca64f485e4b1acc83bdd343) fix: added logs related to executing commands in the container (#10530) + * [ae06f8519](https://github.com/argoproj/argo-workflows/commit/ae06f85192b708c73f2405b331849365045231d5) fix: Priority don't work in workflow spec. Fixes #10374 (#10483) + * [8470ed295](https://github.com/argoproj/argo-workflows/commit/8470ed295ed57f5b3e6dd744b62004f2a7973fa4) fix: change log severity when artifact is not found (#10561) + * [fe522b69c](https://github.com/argoproj/argo-workflows/commit/fe522b69cb6db0255934a6051fc5652212c01807) fix: Correct SIGTERM handling. Fixes #10518 #10337 #10033 #10490 (#10523) + * [4978d3b25](https://github.com/argoproj/argo-workflows/commit/4978d3b25be3935124c44d6f5ca7667c07ef3984) fix: exit handler variables don't get resolved correctly. Fixes #10393 (#10449) + * [e50c915ce](https://github.com/argoproj/argo-workflows/commit/e50c915ce1376492e20b02da89f186a75e2f3599) fix: evaluated debug env vars value (#10493) + * [ecd0d93d5](https://github.com/argoproj/argo-workflows/commit/ecd0d93d5139e0d633b100b991cadde306f3ed8c) fix: use env when pod version annotation is missing. Fixes #10237 (#10457) + * [5c5c6504a](https://github.com/argoproj/argo-workflows/commit/5c5c6504abdf40ff95c1f04ecbca93b59eb08f66) fix: stop writing RawClaim into authorization cookie to reduce cookie size. Fixes #9530, #10153 (#10170) + * [17ea4bc82](https://github.com/argoproj/argo-workflows/commit/17ea4bc821a9bc1537736759726501aa37b88fac) fix: delete PVCs upon onExit error when OnWorkflowCompletion is enabled. Fixes #10408 (#10424) + +### Contributors + + * Alex Collins + * Ciprian Anton + * GoshaDo + * Isitha Subasinghe + * Jiacheng Xu + * John Daniel Maguire + * Petri Kivikangas + * Sandeep Vagulapuram + * Shraddha + * Yuan Tang + * kolorful + * wangxiang + * weafscast + +## v3.4.5 (2023-02-06) + + * [dc30da81f](https://github.com/argoproj/argo-workflows/commit/dc30da81f8b75804c2cbd4df667be1288d294c8d) fix: return if nil pointer in dag.go. Fixes #10401 (#10402) + * [7d2a8c3d2](https://github.com/argoproj/argo-workflows/commit/7d2a8c3d20107786b9177a8e7b78a889c1e13c45) fix(docs): container-set-template workflow example (#10452) + * [3f329080e](https://github.com/argoproj/argo-workflows/commit/3f329080e49792690a650e14986342e39ed94956) chore(deps): bump google.golang.org/api from 0.108.0 to 0.109.0 (#10467) + * [79c012e19](https://github.com/argoproj/argo-workflows/commit/79c012e195f3b5f94ffce4fbed9e24ebd77a2528) chore(deps): bump docker/build-push-action from 3 to 4 (#10464) + * [898f0649f](https://github.com/argoproj/argo-workflows/commit/898f0649fa15d8899a7561f3c1cf953a21dcf34f) fix: Return correct http error codes. Fixes #9237 (#9916) + * [49647896e](https://github.com/argoproj/argo-workflows/commit/49647896e1db3bf36ea3aa879a77c7756d648190) chore(deps-dev): bump sass from 1.57.1 to 1.58.0 in /ui (#10446) + * [cfdf80ea1](https://github.com/argoproj/argo-workflows/commit/cfdf80ea10be5cf47508532ebf6193d013b6617f) chore(deps): bump react-datepicker and @types/react-datepicker in /ui (#10437) + * [fd6fd79e7](https://github.com/argoproj/argo-workflows/commit/fd6fd79e7a5b0f331bbe41ae2c73127153a94017) chore(deps): bump react-moment from 1.1.2 to 1.1.3 in /ui (#10355) + * [2a0e91b44](https://github.com/argoproj/argo-workflows/commit/2a0e91b447aa3e1bb644995375d85da50c59c80b) fix(controller): Add locking for read operationin controller. Fixes #… (#9985) + * [f48717ccf](https://github.com/argoproj/argo-workflows/commit/f48717ccf03bbcd7b68639a6fdc7515a6d468e3a) Fixes #10003: retries force exit handlers (#10159) + * [6bb290638](https://github.com/argoproj/argo-workflows/commit/6bb290638e789e61e2ff5576df82c451486eeaa3) feat: support set generateName in the eventbinding (#10371) + * [e7b5b25ef](https://github.com/argoproj/argo-workflows/commit/e7b5b25efa28c78719a3685f8addc02478a186ed) fix(executor): make the comment of reportOutputs clearer (#10443) + * [d46d5e9fb](https://github.com/argoproj/argo-workflows/commit/d46d5e9fb45b5ff7d9dd974c6d961ef65397ec39) HasArtifactGC() can't access Status through execWf (#10423) + * [1d87b45cc](https://github.com/argoproj/argo-workflows/commit/1d87b45ccca7707bb568906b7ef22bbc5123da25) fix: add message when parse of private key fails due to existing sso secret. Fixes #10420 (#10421) + * [f9e392f2f](https://github.com/argoproj/argo-workflows/commit/f9e392f2fa12f0f4405fbe95eb854e04805b7b17) chore(deps): bump moment-timezone from 0.5.39 to 0.5.40 in /ui (#10438) + * [5ad423eed](https://github.com/argoproj/argo-workflows/commit/5ad423eed7370c41715f5852f0a1c4bb05c7f7bb) chore(deps): bump cronstrue from 2.21.0 to 2.22.0 in /ui (#10436) + * [133b4a384](https://github.com/argoproj/argo-workflows/commit/133b4a384364079e5c82580c4969ded636cbadf5) Fix: Enable users to use Archived Workflows functionality when RBAC is Namespace delegated (#10399) + * [8e7c73447](https://github.com/argoproj/argo-workflows/commit/8e7c7344720994ea1139914953844ee67c67e068) feat: allow switching timezone for date rendering. Fixes #3474 (#10120) + * [22fa3403a](https://github.com/argoproj/argo-workflows/commit/22fa3403ae720342a90fd7eb1b317653ba73c40d) fix: in gcs driver ensure prefix omitted if folder. Fixes #9732 (#10214) + * [605d590ec](https://github.com/argoproj/argo-workflows/commit/605d590ec25f05c3155aaa971d8b2f6421eb0056) chore(deps): bump github.com/go-openapi/jsonreference from 0.20.0 to 0.20.2 (#10382) + * [b690d3889](https://github.com/argoproj/argo-workflows/commit/b690d3889883f6377d9560b3f2f7e50720759fa6) chore(deps-dev): bump babel-jest from 29.3.1 to 29.4.1 in /ui (#10417) + * [689df36af](https://github.com/argoproj/argo-workflows/commit/689df36af126bdf2af35b6f7f31a27aeb527d20a) chore(deps): bump superagent from 8.0.8 to 8.0.9 in /ui (#10416) + * [c3c71b955](https://github.com/argoproj/argo-workflows/commit/c3c71b955de9b0f7bab2c54ac2258b4e1fff766c) chore(deps): bump golang.org/x/time from 0.1.0 to 0.3.0 (#10412) + * [4d1e1c07b](https://github.com/argoproj/argo-workflows/commit/4d1e1c07b31cc1bb86cae79cf491658113008be6) chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.1.0 to 1.2.1 (#10411) + * [bca7e7ba1](https://github.com/argoproj/argo-workflows/commit/bca7e7ba1901e1e99aa275230ff2244868b4cb67) chore(deps): bump github.com/gavv/httpexpect/v2 from 2.9.0 to 2.10.0 (#10414) + * [e1be54ed3](https://github.com/argoproj/argo-workflows/commit/e1be54ed32288c5d6a6eb73102c88de2820f49fd) chore(deps): bump github.com/antonmedv/expr from 1.10.1 to 1.10.5 (#10413) + * [0bad1bb0a](https://github.com/argoproj/argo-workflows/commit/0bad1bb0a17e1a40596681aad5ef4cf97425f304) chore(deps): bump dependabot/fetch-metadata from 1.3.5 to 1.3.6 (#10410) + * [5a5de6728](https://github.com/argoproj/argo-workflows/commit/5a5de6728ad717754c14f574d398228edb2cf999) chore(deps): bump google.golang.org/api from 0.107.0 to 0.108.0 (#10385) + * [9e35c9cc0](https://github.com/argoproj/argo-workflows/commit/9e35c9cc0db1630b5d546a661f67ec10bea64463) chore(deps): bump github.com/antonmedv/expr from 1.9.0 to 1.10.1 (#10384) + * [b37cf46b8](https://github.com/argoproj/argo-workflows/commit/b37cf46b87a3ed37e5f55588d75d2ddca6d75530) chore(deps): bump github.com/spf13/viper from 1.14.0 to 1.15.0 (#10380) + * [ba0b7338e](https://github.com/argoproj/argo-workflows/commit/ba0b7338eb6c55e3248edf767094bff216ffe126) chore(deps-dev): bump glob from 8.0.3 to 8.1.0 in /ui (#10387) + * [7fc6ecc84](https://github.com/argoproj/argo-workflows/commit/7fc6ecc84db2832a25ae203b58e67769657b9991) chore(deps): bump superagent from 8.0.6 to 8.0.8 in /ui (#10386) + * [adc7a7060](https://github.com/argoproj/argo-workflows/commit/adc7a7060786531acfcf6cbc8a71092fe65b6fd7) chore(deps): bump github.com/gavv/httpexpect/v2 from 2.8.0 to 2.9.0 (#10383) + * [782717980](https://github.com/argoproj/argo-workflows/commit/7827179808491c8c5a9411eee4d30fdbeeeba3c3) chore(deps): bump cloud.google.com/go/storage from 1.28.0 to 1.29.0 (#10381) + * [651ec79ae](https://github.com/argoproj/argo-workflows/commit/651ec79ae278d45b3fd240d95a40b4108bbae43a) chore(deps): bump google.golang.org/api from 0.106.0 to 0.107.0 (#10353) + * [548f53261](https://github.com/argoproj/argo-workflows/commit/548f53261f8e04a563239eae61354d3899495f15) chore(deps): bump github.com/minio/minio-go/v7 from 7.0.45 to 7.0.47 (#10352) + * [a1db45a60](https://github.com/argoproj/argo-workflows/commit/a1db45a60a7878db3b19d50eeada6416b4e8dd5f) fix: fix not working dex deployment in quickstart manifests (#10346) + * [0e981e44b](https://github.com/argoproj/argo-workflows/commit/0e981e44b40186071c6ea77168eedf080c543f07) chore(deps-dev): bump @babel/core from 7.20.7 to 7.20.12 in /ui (#10330) + * [f1959c8de](https://github.com/argoproj/argo-workflows/commit/f1959c8def101b146876fd128b4383663a719b95) chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 (#10325) + * [08ef2928e](https://github.com/argoproj/argo-workflows/commit/08ef2928e4c15de7ef7c5973559543fa7ce2ee33) fix: print template and pod name in workflow controller logs for node failure scenario (#10332) + * [b386d03e0](https://github.com/argoproj/argo-workflows/commit/b386d03e0a2ca16c911665613427325ab32eb252) chore(deps): bump golang.org/x/oauth2 from 0.3.0 to 0.4.0 (#10323) + * [13adf5e4a](https://github.com/argoproj/argo-workflows/commit/13adf5e4a615c18baf237db16253c5324c5e0091) chore(deps): bump github.com/coreos/go-oidc/v3 from 3.4.0 to 3.5.0 (#10324) + * [b414ab4c6](https://github.com/argoproj/argo-workflows/commit/b414ab4c684531351e7b2a72ed711deceb250249) chore(deps-dev): bump @types/superagent from 4.1.15 to 4.1.16 in /ui (#10326) + * [2c580b31c](https://github.com/argoproj/argo-workflows/commit/2c580b31c61e168e5f58b8357a72a97923ece952) chore(deps): bump golang.org/x/crypto from 0.4.0 to 0.5.0 (#10322) + * [75ce0af25](https://github.com/argoproj/argo-workflows/commit/75ce0af253d6d2441f518cf69fe1f8398f2fcad0) fix: fix minio image at older working version (#10314) + * [12e1b985c](https://github.com/argoproj/argo-workflows/commit/12e1b985c176dee1ea8b70a81e3fe5e3a91bf241) feat: cleanup code (#10316) + * [0f58387c7](https://github.com/argoproj/argo-workflows/commit/0f58387c79728b84037aa96221d1c97a974402a4) feat: HTTP Template respect podMetadata. Fixes #10062 (#10274) + * [a06e83182](https://github.com/argoproj/argo-workflows/commit/a06e83182e06261145d5127cb20a433ca2d82ac4) fix: improve rate at which we catch transient gcp errors in artifact driver Fixes #10282 #10174 (#10292) + * [5b450f6d7](https://github.com/argoproj/argo-workflows/commit/5b450f6d77d47116ed744f9831c77c8ebb3a9ed5) chore(deps): bump nick-fields/retry from 2.8.2 to 2.8.3 (#10293) + * [002641262](https://github.com/argoproj/argo-workflows/commit/002641262319081033ec81e4b1c18c2e4003cbf4) chore(deps): bump superagent from 8.0.5 to 8.0.6 in /ui (#10208) + * [eeaf2c415](https://github.com/argoproj/argo-workflows/commit/eeaf2c415f3968406200ca7289290c51e59c9c0a) Update USERS.md (#10241) + * [28a9ee593](https://github.com/argoproj/argo-workflows/commit/28a9ee593c7e73a10b6d42c44e1cfbe9427a3c97) fix: remove url encoding/decoding on user-supplied URL. Fixes #9935 (#9944) + * [4e25739cb](https://github.com/argoproj/argo-workflows/commit/4e25739cbb966340cee1a9ba251dc8614ef7ebb4) remove debug println (#10252) + * [2607867ab](https://github.com/argoproj/argo-workflows/commit/2607867ab4f424086998ea15fa50126360c3bba8) fix: use podname in failure podName instead of ID. Fixes #10124 (#10268) + * [13620fad8](https://github.com/argoproj/argo-workflows/commit/13620fad8e3d34477911270c3f3bf75c5aa7f27e) Skip Artifact GC test if Workflow fails (#10298) + * [6078d6fd5](https://github.com/argoproj/argo-workflows/commit/6078d6fd5af929e73c94d876333b76b16d63bde0) chore(deps-dev): bump @babel/core from 7.20.2 to 7.20.7 in /ui (#10277) + * [511c6f973](https://github.com/argoproj/argo-workflows/commit/511c6f973f216cfd8a930456de22fee6eb63efca) chore(deps-dev): bump sass from 1.56.2 to 1.57.1 in /ui (#10275) + * [f4a65b11a](https://github.com/argoproj/argo-workflows/commit/f4a65b11a184f7429d0615a6fa65bc2cea4cc425) feat: support finalizers in workflowMetadata (#10243) + * [6c5b50678](https://github.com/argoproj/argo-workflows/commit/6c5b506786957bc7f948fd4cd63c0e58ba7a7584) chore(deps): bump github.com/prometheus/common from 0.38.0 to 0.39.0 (#10247) + * [ae93d0316](https://github.com/argoproj/argo-workflows/commit/ae93d03166b5ca2b0ad8e90db7784e51ee9da8ad) chore(deps): bump google.golang.org/api from 0.104.0 to 0.105.0 (#10245) + * [cd9a9f2bf](https://github.com/argoproj/argo-workflows/commit/cd9a9f2bfb6da1e4d5f259c12110d76e55f9f012) chore(deps): bump github.com/gavv/httpexpect/v2 from 2.7.0 to 2.8.0 (#10246) + * [4ed945425](https://github.com/argoproj/argo-workflows/commit/4ed94542521ea3889e179a5c4721726d7f6bb430) fix: ensure metadata is not undefined when accessing label. Fixes #10227 (#10228) + * [896830dd3](https://github.com/argoproj/argo-workflows/commit/896830dd366cf1a308a341003bacc650119e1f30) fix: ensure HTTP reconciliation occurs for onExit step nodes (#10195) + * [b0f0c589e](https://github.com/argoproj/argo-workflows/commit/b0f0c589e626650ca01a635f773af983e213fbec) fix: Auto update workflow controller configmap (#10218) + * [7b34cb1cf](https://github.com/argoproj/argo-workflows/commit/7b34cb1cf7f5a490992e307493446950b954c9b7) chore(deps): bump golang.org/x/net from 0.2.0 to 0.4.0 (#10204) + * [9283b40b6](https://github.com/argoproj/argo-workflows/commit/9283b40b6a5d520ce04e07b586f04822440df869) chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 (#10206) + * [a37c3f0a5](https://github.com/argoproj/argo-workflows/commit/a37c3f0a502f711a4d760bd8d0e728c8f1373dd5) chore(deps): bump github.com/prometheus/common from 0.37.0 to 0.38.0 (#10205) + * [a57e0fd6b](https://github.com/argoproj/argo-workflows/commit/a57e0fd6bd90a89e15bfb1f6c3b0ccd0696891c7) chore(deps-dev): bump sass from 1.56.1 to 1.56.2 in /ui (#10209) + * [5775c12c5](https://github.com/argoproj/argo-workflows/commit/5775c12c5c736a596830c35582949abba88a5903) chore(deps): bump cronstrue from 2.20.0 to 2.21.0 in /ui (#10210) + * [54e4e4899](https://github.com/argoproj/argo-workflows/commit/54e4e4899d0eb35f7213041547a609423f2633a9) chore(deps): bump github.com/gavv/httpexpect/v2 from 2.6.1 to 2.7.0 (#10202) + * [4e2471aa2](https://github.com/argoproj/argo-workflows/commit/4e2471aa288dd145968e612c75315b5be1fb3f5c) chore(deps): bump golang.org/x/crypto from 0.3.0 to 0.4.0 (#10201) + * [f390f6128](https://github.com/argoproj/argo-workflows/commit/f390f61280cf435c209deddaae55e5710e7f7135) fix: Artifact GC should not reference execWf.Status (#10160) + * [898f738c0](https://github.com/argoproj/argo-workflows/commit/898f738c09334059614be61bb7d75f6895c5861b) fix: add omitted children to the dag Fixes #9852 (#9918) + * [5634c2f21](https://github.com/argoproj/argo-workflows/commit/5634c2f21d2c1484de5c2c0e2f37fb393dd97226) chore(deps-dev): bump @types/react-helmet from 6.1.5 to 6.1.6 in /ui (#10169) + * [73771ab7d](https://github.com/argoproj/argo-workflows/commit/73771ab7dd7304e068b27fd669935ba8c2574686) chore(deps): bump github.com/Masterminds/sprig/v3 from 3.2.2 to 3.2.3 (#10164) + * [5caf65efa](https://github.com/argoproj/argo-workflows/commit/5caf65efa41df2a924853e34a6d5f018ddd2951d) chore(deps): bump superagent from 8.0.4 to 8.0.5 in /ui (#10166) + * [b9a96c0d5](https://github.com/argoproj/argo-workflows/commit/b9a96c0d56915167b2cf7780eac53e45bd867815) chore(deps): bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.0 (#10163) + * [f9931743d](https://github.com/argoproj/argo-workflows/commit/f9931743d9b35bd18c75568f2e8c7bf048cf3970) chore(deps): bump github.com/minio/minio-go/v7 from 7.0.44 to 7.0.45 (#10162) + * [18aa5615b](https://github.com/argoproj/argo-workflows/commit/18aa5615b17eb0b3c46582c634c2b2e52334774e) chore(deps): bump cronstrue from 2.19.0 to 2.20.0 in /ui (#10161) + * [55e96972e](https://github.com/argoproj/argo-workflows/commit/55e96972ec67d0fb5b871d1b1acc649837904fd3) fix: Make `jq` work. Fixes #9860 (#10150) + * [a6aca18e1](https://github.com/argoproj/argo-workflows/commit/a6aca18e1d6f73022263628c6e64e317a4d1b326) fix (argo wait): use functions to constrain ctx instead of blocks (#10140) + * [d91544212](https://github.com/argoproj/argo-workflows/commit/d9154421280a82745fcd08c5c5f0e9d075e69b4a) fix: go-git error empty git-upload-pack given. Fixes #9613 (#9982) + * [22c4fca36](https://github.com/argoproj/argo-workflows/commit/22c4fca36f011a4b5ee501727ad2042d20afaea8) feat(server): add kube-api throttle options (#10110) + * [6166464aa](https://github.com/argoproj/argo-workflows/commit/6166464aa6961bcb375705753ed0b58707d68222) feat: Ignore SIGURG in argoexec emissary. Fixes #10129 (#10141) + * [652970c39](https://github.com/argoproj/argo-workflows/commit/652970c39041a552add999825a3419224fbe4d82) feat: implement backoff when deleting artifacts. Fixes #9294. (#10088) + * [f9f231e9f](https://github.com/argoproj/argo-workflows/commit/f9f231e9f56d114ed7467d8d3e30bbd102dda6c6) fix: emissary detects tty and wraps command in pseudo terminal. Fixes #9179 (#10039) + * [c7310079e](https://github.com/argoproj/argo-workflows/commit/c7310079e67f2dca12867309cf811532e0a56b4c) fix: Ensure the SSO http client takes into consideration http proxies, Fixes #9259 (#10046) + * [51625c2c5](https://github.com/argoproj/argo-workflows/commit/51625c2c5f751534635b01758747daedb5efea06) fix: Add --tls-certificate-secret-name parameter to server command. Fixes #5582 (#9789) + * [1225d8b54](https://github.com/argoproj/argo-workflows/commit/1225d8b546c1e5093047d8e6e8a46d053f051d97) fix: error component showing inaccurate errors. Fixes #9274 (#10128) + +### Contributors + + * Alex Collins + * Dana Pieluszczak + * Dillen Padhiar + * Isitha Subasinghe + * Jiacheng Xu + * Jordan (Tao Zhang) + * Julie Vogelman + * Kazuki Suda + * Kevin Holmes + * Mayursinh Sarvaiya + * Nandita + * Paolo Quadri + * Rick + * Rohan Kumar + * Ruben Jenster + * Sarah Henkens + * Saravanan Balasubramanian + * Sushant20 + * Takahiro Yoshikawa + * Tianchu Zhao + * Vladimir Ivanov + * Yuuki Takahashi + * dependabot[bot] + * huiwq1990 + * jessonzj + * shiraOvadia + * wangxiang ## v3.4.4 (2022-11-28) @@ -70,6 +232,7 @@ * dependabot[bot] * fsiegmund * neo502721 + ## v3.4.3 (2022-10-30) * [23e3d4d6f](https://github.com/argoproj/argo-workflows/commit/23e3d4d6f646c413d66145ee3e2210ff71eef21d) fix(ui): Apply url encode and decode to a `ProcessURL`. Fixes #9791 (#9912) diff --git a/Dockerfile b/Dockerfile index 2d75f6e38cd9..8fad7f246239 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,9 @@ #syntax=docker/dockerfile:1.2 +ARG GIT_COMMIT=unknown +ARG GIT_TAG=unknown +ARG GIT_TREE_STATE=unknown -FROM golang:1.18-alpine3.16 as builder +FROM golang:1.20-alpine3.18 as builder RUN apk update && apk add --no-cache \ git \ @@ -21,7 +24,7 @@ COPY . . #################################################################################################### -FROM node:16-alpine as argo-ui +FROM node:20-alpine as argo-ui RUN apk update && apk add --no-cache git @@ -36,58 +39,45 @@ COPY api api RUN --mount=type=cache,target=/root/.yarn \ YARN_CACHE_FOLDER=/root/.yarn JOBS=max \ - NODE_OPTIONS="--max-old-space-size=2048" JOBS=max yarn --cwd ui build + NODE_OPTIONS="--openssl-legacy-provider --max-old-space-size=2048" JOBS=max yarn --cwd ui build #################################################################################################### FROM builder as argoexec-build -RUN curl -L -o /usr/local/bin/jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 && \ - chmod +x /usr/local/bin/jq +ARG GIT_COMMIT +ARG GIT_TAG +ARG GIT_TREE_STATE -# Tell git to forget about all of the files that were not included because of .dockerignore in order to ensure that -# the git state is "clean" even though said .dockerignore files are not present -RUN cat .dockerignore >> .gitignore -RUN git status --porcelain | cut -c4- | xargs git update-index --skip-worktree - -RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build make dist/argoexec +RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build make dist/argoexec GIT_COMMIT=${GIT_COMMIT} GIT_TAG=${GIT_TAG} GIT_TREE_STATE=${GIT_TREE_STATE} #################################################################################################### FROM builder as workflow-controller-build -# Tell git to forget about all of the files that were not included because of .dockerignore in order to ensure that -# the git state is "clean" even though said .dockerignore files are not present -RUN cat .dockerignore >> .gitignore -RUN git status --porcelain | cut -c4- | xargs git update-index --skip-worktree +ARG GIT_COMMIT +ARG GIT_TAG +ARG GIT_TREE_STATE -RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build make dist/workflow-controller +RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build make dist/workflow-controller GIT_COMMIT=${GIT_COMMIT} GIT_TAG=${GIT_TAG} GIT_TREE_STATE=${GIT_TREE_STATE} #################################################################################################### FROM builder as argocli-build +ARG GIT_COMMIT +ARG GIT_TAG +ARG GIT_TREE_STATE + RUN mkdir -p ui/dist COPY --from=argo-ui ui/dist/app ui/dist/app -# Tell git to forget about all of the files that were not included because of .dockerignore in order to ensure that -# the git state is "clean" even though said .dockerignore files are not present -RUN cat .dockerignore >> .gitignore -RUN git status --porcelain | cut -c4- | xargs git update-index --skip-worktree - -RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build make dist/argo - -#################################################################################################### - -# NOTE: kubectl version should be one minor version less than https://storage.googleapis.com/kubernetes-release/release/stable.txt -FROM bitnami/kubectl:1.24.8 as kubectl +RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build STATIC_FILES=true make dist/argo GIT_COMMIT=${GIT_COMMIT} GIT_TAG=${GIT_TAG} GIT_TREE_STATE=${GIT_TREE_STATE} #################################################################################################### FROM gcr.io/distroless/static as argoexec -COPY --from=kubectl /opt/bitnami/kubectl/bin/kubectl /bin/ -COPY --from=argoexec-build /usr/local/bin/jq /bin/ COPY --from=argoexec-build /go/src/github.com/argoproj/argo-workflows/dist/argoexec /bin/ COPY --from=argoexec-build /etc/mime.types /etc/mime.types COPY hack/ssh_known_hosts /etc/ssh/ diff --git a/Dockerfile.windows b/Dockerfile.windows index 1bd49c86ab26..dd1cab5ff353 100644 --- a/Dockerfile.windows +++ b/Dockerfile.windows @@ -4,11 +4,14 @@ # Also used as the image in CI jobs so needs all dependencies #################################################################################################### -ARG IMAGE_OS_VERSION=1809 +ARG IMAGE_OS_VERSION=ltsc2022-amd64 +ARG GIT_COMMIT=unknown +ARG GIT_TAG=unknown +ARG GIT_TREE_STATE=unknown # had issues with official golange image for windows so I'm using plain servercore FROM mcr.microsoft.com/windows/servercore:${IMAGE_OS_VERSION} as builder -ENV GOLANG_VERSION=1.18 +ENV GOLANG_VERSION=1.20 SHELL ["powershell", "-Command"] # install chocolatey package manager @@ -28,14 +31,6 @@ RUN choco install golang --version=$env:GOLANG_VERSION ; \ FROM mcr.microsoft.com/windows/nanoserver:${IMAGE_OS_VERSION} as argoexec-base COPY --from=builder /windows/system32/netapi32.dll /windows/system32/netapi32.dll -# NOTE: kubectl version should be one minor version less than https://storage.googleapis.com/kubernetes-release/release/stable.txt -ENV KUBECTL_VERSION=1.24.8 -ENV JQ_VERSION=1.6 - -RUN mkdir C:\app && \ - curl -L -o C:\app\kubectl.exe "https://storage.googleapis.com/kubernetes-release/release/v%KUBECTL_VERSION%/bin/windows/amd64/kubectl.exe" && \ - curl -L -o C:\app\jq.exe "https://github.com/stedolan/jq/releases/download/jq-%JQ_VERSION%/jq-win64.exe" - COPY --from=builder C:/ProgramData/chocolatey/lib/7zip.portable/tools/7z-extra/x64/7za.exe C:/app/7za.exe # add binaries to path @@ -47,13 +42,15 @@ RUN SETX /m path C:\app;%path% #################################################################################################### FROM builder as argo-build +ARG GIT_COMMIT +ARG GIT_TAG +ARG GIT_TREE_STATE + # Perform the build WORKDIR C:/Users/ContainerAdministrator/go/src/github.com/argoproj/argo-workflows COPY . . -# check we can use Git -RUN git rev-parse HEAD # run in git bash for all the shell commands in Makefile to work -RUN bash -c 'make dist/argoexec' +RUN bash -c 'make dist/argoexec GIT_COMMIT=${GIT_COMMIT} GIT_TAG=${GIT_TAG} GIT_TREE_STATE=${GIT_TREE_STATE}' #################################################################################################### # argoexec diff --git a/Makefile b/Makefile index b844dc52c2b5..10bff1f5d868 100644 --- a/Makefile +++ b/Makefile @@ -6,17 +6,17 @@ MAKEFLAGS += --no-builtin-rules .SUFFIXES: BUILD_DATE := $(shell date -u +'%Y-%m-%dT%H:%M:%SZ') -GIT_COMMIT := $(shell git rev-parse HEAD) +# copied verbatim to release.yaml +GIT_COMMIT := $(shell git rev-parse HEAD || echo unknown) GIT_REMOTE := origin GIT_BRANCH := $(shell git rev-parse --symbolic-full-name --verify --quiet --abbrev-ref HEAD) +# copied verbatim to release.yaml GIT_TAG := $(shell git describe --exact-match --tags --abbrev=0 2> /dev/null || echo untagged) GIT_TREE_STATE := $(shell if [ -z "`git status --porcelain`" ]; then echo "clean" ; else echo "dirty"; fi) RELEASE_TAG := $(shell if [[ "$(GIT_TAG)" =~ ^v[0-9]+\.[0-9]+\.[0-9]+.*$$ ]]; then echo "true"; else echo "false"; fi) -DEV_BRANCH := $(shell [ $(GIT_BRANCH) = master ] || [ `echo $(GIT_BRANCH) | cut -c -8` = release- ] || [ `echo $(GIT_BRANCH) | cut -c -4` = dev- ] || [ $(RELEASE_TAG) = true ] && echo false || echo true) +DEV_BRANCH := $(shell [ "$(GIT_BRANCH)" = master ] || [ `echo $(GIT_BRANCH) | cut -c -8` = release- ] || [ `echo $(GIT_BRANCH) | cut -c -4` = dev- ] || [ $(RELEASE_TAG) = true ] && echo false || echo true) SRC := $(GOPATH)/src/github.com/argoproj/argo-workflows -GREP_LOGS := "" - # docker image publishing options IMAGE_NAMESPACE ?= quay.io/argoproj @@ -36,7 +36,7 @@ E2E_PARALLEL ?= 20 E2E_SUITE_TIMEOUT ?= 15m VERSION := latest -DOCKER_PUSH := false +DOCKER_PUSH ?= false # VERSION is the version to be used for files in manifests and should always be latest unless we are releasing # we assume HEAD means you are on a tag @@ -51,14 +51,17 @@ else STATIC_FILES ?= $(shell [ $(DEV_BRANCH) = true ] && echo false || echo true) endif -# start the Controller -CTRL ?= true -# tail logs -LOGS ?= $(CTRL) # start the UI -UI ?= $(shell [ $(CTRL) = true ] && echo false || echo true) +UI ?= false # start the Argo Server API ?= $(UI) +TASKS := controller +ifeq ($(API),true) +TASKS := controller server +endif +ifeq ($(UI),true) +TASKS := controller server ui +endif GOTEST ?= go test -v -p 20 PROFILE ?= minimal PLUGINS ?= $(shell [ $PROFILE = plugins ] && echo false || echo true) @@ -96,9 +99,9 @@ $(info RUN_MODE=$(RUN_MODE) PROFILE=$(PROFILE) AUTH_MODE=$(AUTH_MODE) SECURE=$(S override LDFLAGS += \ -X github.com/argoproj/argo-workflows/v3.version=$(VERSION) \ - -X github.com/argoproj/argo-workflows/v3.buildDate=${BUILD_DATE} \ - -X github.com/argoproj/argo-workflows/v3.gitCommit=${GIT_COMMIT} \ - -X github.com/argoproj/argo-workflows/v3.gitTreeState=${GIT_TREE_STATE} + -X github.com/argoproj/argo-workflows/v3.buildDate=$(BUILD_DATE) \ + -X github.com/argoproj/argo-workflows/v3.gitCommit=$(GIT_COMMIT) \ + -X github.com/argoproj/argo-workflows/v3.gitTreeState=$(GIT_TREE_STATE) ifneq ($(GIT_TAG),) override LDFLAGS += -X github.com/argoproj/argo-workflows/v3.gitTag=${GIT_TAG} @@ -232,6 +235,9 @@ argoexec-image: %-image: [ ! -e dist/$* ] || mv dist/$* . docker buildx build \ + --build-arg GIT_COMMIT=$(GIT_COMMIT) \ + --build-arg GIT_TAG=$(GIT_TAG) \ + --build-arg GIT_TREE_STATE=$(GIT_TREE_STATE) \ -t $(IMAGE_NAMESPACE)/$*:$(VERSION) \ --target $* \ --load \ @@ -275,7 +281,7 @@ swagger: \ $(GOPATH)/bin/mockery: - go install github.com/vektra/mockery/v2@v2.10.0 + go install github.com/vektra/mockery/v2@v2.26.0 $(GOPATH)/bin/controller-gen: go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.4.1 $(GOPATH)/bin/go-to-protobuf: @@ -302,7 +308,8 @@ ifeq (, $(shell which clang-format)) ifeq ($(shell uname),Darwin) brew install clang-format else - sudo apt-get install clang-format + sudo apt update + sudo apt install clang-format endif endif @@ -315,7 +322,7 @@ pkg/apis/workflow/v1alpha1/generated.proto: $(GOPATH)/bin/go-to-protobuf $(PROTO $(GOPATH)/bin/go-to-protobuf \ --go-header-file=./hack/custom-boilerplate.go.txt \ --packages=github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1 \ - --apimachinery-packages=+k8s.io/apimachinery/pkg/util/intstr,+k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/runtime/schema,+k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/core/v1,k8s.io/api/policy/v1beta1 \ + --apimachinery-packages=+k8s.io/apimachinery/pkg/util/intstr,+k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/runtime/schema,+k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/core/v1,k8s.io/api/policy/v1 \ --proto-import $(GOPATH)/src # Delete the link [ -e ./v3 ] && rm -rf v3 @@ -394,7 +401,7 @@ dist/manifests/%: manifests/% # lint/test/etc $(GOPATH)/bin/golangci-lint: - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b `go env GOPATH`/bin v1.49.0 + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b `go env GOPATH`/bin v1.52.2 .PHONY: lint lint: server/static/files.go $(GOPATH)/bin/golangci-lint @@ -435,38 +442,62 @@ endif .PHONY: argosay argosay: - cd test/e2e/images/argosay/v2 && docker build . -t argoproj/argosay:v2 +ifeq ($(DOCKER_PUSH),true) + cd test/e2e/images/argosay/v2 && \ + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t argoproj/argosay:v2 \ + --push \ + . +else + cd test/e2e/images/argosay/v2 && \ + docker build . -t argoproj/argosay:v2 +endif ifeq ($(K3D),true) k3d image import -c $(K3D_CLUSTER_NAME) argoproj/argosay:v2 endif + +.PHONY: argosayv1 +argosayv1: ifeq ($(DOCKER_PUSH),true) - docker push argoproj/argosay:v2 + cd test/e2e/images/argosay/v1 && \ + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t argoproj/argosay:v1 \ + --push \ + . +else + cd test/e2e/images/argosay/v1 && \ + docker build . -t argoproj/argosay:v1 endif dist/argosay: mkdir -p dist cp test/e2e/images/argosay/v2/argosay dist/ -$(GOPATH)/bin/goreman: - go install github.com/mattn/goreman@v0.3.11 +.PHONY: kit +kit: +ifeq ($(shell command -v kit),) +ifeq ($(shell uname),Darwin) + brew tap kitproj/kit --custom-remote https://github.com/kitproj/kit + brew install kit +else + curl -q https://raw.githubusercontent.com/kitproj/kit/main/install.sh | tag=v0.1.8 sh +endif +endif + .PHONY: start ifeq ($(RUN_MODE),local) ifeq ($(API),true) -start: install controller cli $(GOPATH)/bin/goreman +start: install controller kit cli else -start: install controller $(GOPATH)/bin/goreman +start: install controller kit endif else -start: install +start: install kit endif @echo "starting STATIC_FILES=$(STATIC_FILES) (DEV_BRANCH=$(DEV_BRANCH), GIT_BRANCH=$(GIT_BRANCH)), AUTH_MODE=$(AUTH_MODE), RUN_MODE=$(RUN_MODE), MANAGED_NAMESPACE=$(MANAGED_NAMESPACE)" -ifneq ($(CTRL),true) - @echo "⚠️️ not starting controller. If you want to test the controller, use 'make start CTRL=true' to start it" -endif -ifneq ($(LOGS),true) - @echo "⚠️️ not starting logs. If you want to tail logs, use 'make start LOGS=true' to start it" -endif ifneq ($(API),true) @echo "⚠️️ not starting API. If you want to test the API, use 'make start API=true' to start it" endif @@ -484,18 +515,10 @@ endif grep '127.0.0.1.*minio' /etc/hosts grep '127.0.0.1.*postgres' /etc/hosts grep '127.0.0.1.*mysql' /etc/hosts - ./hack/port-forward.sh ifeq ($(RUN_MODE),local) - env DEFAULT_REQUEUE_TIME=$(DEFAULT_REQUEUE_TIME) SECURE=$(SECURE) ALWAYS_OFFLOAD_NODE_STATUS=$(ALWAYS_OFFLOAD_NODE_STATUS) LOG_LEVEL=$(LOG_LEVEL) UPPERIO_DB_DEBUG=$(UPPERIO_DB_DEBUG) IMAGE_NAMESPACE=$(IMAGE_NAMESPACE) VERSION=$(VERSION) AUTH_MODE=$(AUTH_MODE) NAMESPACED=$(NAMESPACED) NAMESPACE=$(KUBE_NAMESPACE) MANAGED_NAMESPACE=$(MANAGED_NAMESPACE) CTRL=$(CTRL) LOGS=$(LOGS) UI=$(UI) API=$(API) PLUGINS=$(PLUGINS) $(GOPATH)/bin/goreman -set-ports=false -logtime=false start $(shell if [ -z $GREP_LOGS ]; then echo; else echo "| grep \"$(GREP_LOGS)\""; fi) + env DEFAULT_REQUEUE_TIME=$(DEFAULT_REQUEUE_TIME) ARGO_SECURE=$(SECURE) ALWAYS_OFFLOAD_NODE_STATUS=$(ALWAYS_OFFLOAD_NODE_STATUS) ARGO_LOG_LEVEL=$(LOG_LEVEL) UPPERIO_DB_DEBUG=$(UPPERIO_DB_DEBUG) ARGO_AUTH_MODE=$(AUTH_MODE) ARGO_NAMESPACED=$(NAMESPACED) ARGO_NAMESPACE=$(KUBE_NAMESPACE) ARGO_MANAGED_NAMESPACE=$(MANAGED_NAMESPACE) ARGO_EXECUTOR_PLUGINS=$(PLUGINS) PROFILE=$(PROFILE) kit $(TASKS) endif -$(GOPATH)/bin/stern: - go install github.com/stern/stern@latest - -.PHONY: logs -logs: $(GOPATH)/bin/stern - $(GOPATH)/bin/stern -l workflows.argoproj.io/workflow 2>&1 - .PHONY: wait wait: # Wait for workflow controller @@ -635,21 +658,20 @@ docs-lint: /usr/local/bin/markdownlint markdownlint docs --fix --ignore docs/fields.md --ignore docs/executor_swagger.md --ignore docs/cli --ignore docs/walk-through/the-structure-of-workflow-specs.md /usr/local/bin/mkdocs: - python -m pip install mkdocs==1.2.4 mkdocs_material==8.1.9 mkdocs-spellcheck==0.2.1 + python -m pip install --no-cache-dir -r docs/requirements.txt .PHONY: docs docs: /usr/local/bin/mkdocs \ docs-spellcheck \ docs-lint \ - docs-linkcheck + # TODO: This is temporarily disabled to unblock merging PRs. + # docs-linkcheck # check environment-variables.md contains all variables mentioned in the code ./hack/check-env-doc.sh # check all docs are listed in mkdocs.yml ./hack/check-mkdocs.sh # build the docs mkdocs build - # fix the fields.md document - go run -tags fields ./hack parseexamples # tell the user the fastest way to edit docs @echo "ℹ️ If you want to preview you docs, open site/index.html. If you want to edit them with hot-reload, run 'make docs-serve' to start mkdocs on port 8000" diff --git a/Procfile b/Procfile deleted file mode 100644 index bdf3714af7bd..000000000000 --- a/Procfile +++ /dev/null @@ -1,4 +0,0 @@ -controller: [ "$CTRL" = "true" ] && ./hack/free-port.sh 9090 && ARGO_EXECUTOR_PLUGINS=${PLUGINS} ARGO_REMOVE_PVC_PROTECTION_FINALIZER=true ARGO_PROGRESS_PATCH_TICK_DURATION=7s DEFAULT_REQUEUE_TIME=${DEFAULT_REQUEUE_TIME} LEADER_ELECTION_IDENTITY=local ALWAYS_OFFLOAD_NODE_STATUS=${ALWAYS_OFFLOAD_NODE_STATUS} OFFLOAD_NODE_STATUS_TTL=30s WORKFLOW_GC_PERIOD=30s UPPERIO_DB_DEBUG=${UPPERIO_DB_DEBUG} ARCHIVED_WORKFLOW_GC_PERIOD=30s ./dist/workflow-controller --executor-image ${IMAGE_NAMESPACE}/argoexec:${VERSION} --namespaced=${NAMESPACED} --namespace ${NAMESPACE} --managed-namespace=${MANAGED_NAMESPACE} --loglevel ${LOG_LEVEL} -argo-server: [ "$API" = "true" ] &&./hack/free-port.sh 2746 && UPPERIO_DB_DEBUG=${UPPERIO_DB_DEBUG} ./dist/argo --loglevel ${LOG_LEVEL} server --namespaced=${NAMESPACED} --namespace ${NAMESPACE} --auth-mode ${AUTH_MODE} --secure=$SECURE --x-frame-options=SAMEORIGIN -ui: [ "$UI" = "true" ] && ./hack/free-port.sh 8080 && yarn --cwd ui install && yarn --cwd ui start -logs: [ "$LOGS" = "true" ] && make logs \ No newline at end of file diff --git a/README.md b/README.md index a38ffab20ae6..15da75e52ed8 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,12 @@ Argo is a [Cloud Native Computing Foundation (CNCF)](https://cncf.io/) hosted pr ## Use Cases -* [Machine Learning pipelines](https://argoproj.github.io/argo-workflows/use-cases/machine-learning/) -* [Data and batch processing](https://argoproj.github.io/argo-workflows/use-cases/data-processing/) -* [Infrastructure automation](https://argoproj.github.io/argo-workflows/use-cases/infrastructure-automation/) -* [CI/CD](https://argoproj.github.io/argo-workflows/use-cases/ci-cd/) +* [Machine Learning pipelines](https://argo-workflows.readthedocs.io/en/release-3.4/use-cases/machine-learning/) +* [Data and batch processing](https://argo-workflows.readthedocs.io/en/release-3.4/use-cases/data-processing/) +* [Infrastructure automation](https://argo-workflows.readthedocs.io/en/release-3.4/use-cases/infrastructure-automation/) +* [CI/CD](https://argo-workflows.readthedocs.io/en/release-3.4/use-cases/ci-cd/) * ETL -* [Other use cases](https://argoproj.github.io/argo-workflows/use-cases/other/) +* [Other use cases](https://argo-workflows.readthedocs.io/en/release-3.4/use-cases/other/) ## Why Argo Workflows? @@ -47,7 +47,7 @@ Argo is a [Cloud Native Computing Foundation (CNCF)](https://cncf.io/) hosted pr ## Documentation -[View the docs](https://argoproj.github.io/argo-workflows/) +[View the docs](https://argo-workflows.readthedocs.io/en/release-3.4/) ## Ecosystem @@ -55,15 +55,16 @@ Just some of the projects that use or rely on Argo Workflows: * [Argo Events](https://github.com/argoproj/argo-events) * [Couler](https://github.com/couler-proj/couler) +* [Hera](https://github.com/argoproj-labs/hera-workflows) * [Katib](https://github.com/kubeflow/katib) * [Kedro](https://kedro.readthedocs.io/en/stable/) * [Kubeflow Pipelines](https://github.com/kubeflow/pipelines) * [Netflix Metaflow](https://metaflow.org) * [Onepanel](https://www.onepanel.ai/) +* [Orchest](https://github.com/orchest/orchest/) * [Ploomber](https://github.com/ploomber/ploomber) * [Seldon](https://github.com/SeldonIO/seldon-core) * [SQLFlow](https://github.com/sql-machine-learning/sqlflow) -* [Orchest](https://github.com/orchest/orchest/) ## Client Libraries diff --git a/SECURITY.md b/SECURITY.md index acb4b3ad0aff..84354566f941 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -22,6 +22,20 @@ feature to keep our community well informed, and will credit you for your findin See [static code analysis](docs/static-code-analysis.md). +## Internet Bug Bounty collaboration + +We're happy to announce that the Argo project is collaborating with the great +folks over at +[Hacker One](https://hackerone.com/) and their +[Internet Bug Bounty program](https://hackerone.com/ibb) +to reward the awesome people who find security vulnerabilities in the four +main Argo projects (CD, Events, Rollouts and Workflows) and then work with +us to fix and disclose them in a responsible manner. + +If you report a vulnerability to us as outlined in this security policy, we +will work together with you to find out whether your finding is eligible for +claiming a bounty, and also on how to claim it. + ## Securing Argo Workflows See [docs/security.md](docs/security.md) for information about securing your Argo Workflows instance. diff --git a/USERS.md b/USERS.md index f0827fdb2619..36128045f853 100644 --- a/USERS.md +++ b/USERS.md @@ -106,6 +106,7 @@ Currently, the following organizations are **officially** using Argo Workflows: 1. [İşbank](https://www.isbank.com.tr/en) 1. [Jungle](https://www.jungle.ai/) 1. [Karius](https://www.kariusdx.com/) +1. [Karrot](https://www.daangn.com/) 1. [KarrotPay](https://www.daangnpay.com/) 1. [Kasa](https://www.kasa.co.kr/) 1. [KintoHub](https://www.kintohub.com/) @@ -156,6 +157,7 @@ Currently, the following organizations are **officially** using Argo Workflows: 1. [SAP Fieldglass](https://www.fieldglass.com/) 1. [SAP Hybris](https://cx.sap.com/) 1. [SAS](https://www.sas.com/) +1. [Salesforce](https://salesforce.com) 1. [Schlumberger](https://slb.com/) 1. [Securitas](https://securitas.com/) 1. [SegmentStream](https://segmentstream.com) @@ -174,6 +176,7 @@ Currently, the following organizations are **officially** using Argo Workflows: 1. [Tiger Analytics](https://www.tigeranalytics.com/) 1. [Tradeshift](https://tradeshift.com/) 1. [Trendyol](https://trendyol.com) +1. [Tuhu](https://www.tuhu.cn/) 1. [Tulip](https://tulip.com/) 1. [Ubie](https://ubie.life/) 1. [UFirstGroup](https://www.ufirstgroup.com) diff --git a/api/jsonschema/schema.json b/api/jsonschema/schema.json index 359839f20952..f6ee970bdded 100644 --- a/api/jsonschema/schema.json +++ b/api/jsonschema/schema.json @@ -4151,6 +4151,31 @@ "io.argoproj.workflow.v1alpha1.CollectEventResponse": { "type": "object" }, + "io.argoproj.workflow.v1alpha1.Column": { + "description": "Column is a custom column that will be exposed in the Workflow List View.", + "properties": { + "key": { + "description": "The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\".", + "type": "string" + }, + "name": { + "description": "The name of this column, e.g., \"Workflow Completed\".", + "type": "string" + }, + "type": { + "description": "The type of this column, \"label\" or \"annotation\".", + "type": "string" + } + }, + "required": [ + "name", + "type", + "key" + ], + "type": "object", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, "io.argoproj.workflow.v1alpha1.Condition": { "properties": { "message": { @@ -5112,6 +5137,12 @@ }, "io.argoproj.workflow.v1alpha1.InfoResponse": { "properties": { + "columns": { + "items": { + "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Column" + }, + "type": "array" + }, "links": { "items": { "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Link" @@ -5225,7 +5256,7 @@ "type": "string" }, "scope": { - "description": "\"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\" or \"chat\"", + "description": "\"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\"", "type": "string" }, "url": { @@ -5501,7 +5532,7 @@ "description": "Outputs captures output parameter values and artifact locations produced by this template invocation" }, "phase": { - "description": "Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine.", + "description": "Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state.", "type": "string" }, "podIP": { @@ -7296,7 +7327,7 @@ "type": "integer" }, "podDisruptionBudget": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", + "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetSpec", "description": "PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow's Pods. Controller will automatically add the selector with workflow name, if selector is empty. Optional: Defaults to empty." }, "podGC": { @@ -7386,9 +7417,7 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" + "type": "array" }, "volumes": { "description": "Volumes is a list of volumes that can be mounted by containers in a io.argoproj.workflow.v1alpha1.", @@ -7467,7 +7496,7 @@ "type": "array" }, "phase": { - "description": "Phase a simple, high-level summary of where the workflow is in its lifecycle.", + "description": "Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed.", "type": "string" }, "progress": { @@ -10325,7 +10354,7 @@ }, "type": "object" }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { + "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": { "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", "properties": { "maxUnavailable": { @@ -10338,7 +10367,7 @@ }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label query over pods whose evictions are managed by the disruption budget. A null selector selects no pods. An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. In policy/v1, an empty selector will select all pods in the namespace.", + "description": "Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.", "x-kubernetes-patch-strategy": "replace" } }, diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 54a56294af3f..662be1068370 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -11,7 +11,7 @@ ], "swagger": "2.0", "info": { - "description": "Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/", + "description": "Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/", "title": "Argo Workflows API", "version": "VERSION" }, @@ -8090,6 +8090,31 @@ "io.argoproj.workflow.v1alpha1.CollectEventResponse": { "type": "object" }, + "io.argoproj.workflow.v1alpha1.Column": { + "description": "Column is a custom column that will be exposed in the Workflow List View.", + "type": "object", + "required": [ + "name", + "type", + "key" + ], + "properties": { + "key": { + "description": "The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\".", + "type": "string" + }, + "name": { + "description": "The name of this column, e.g., \"Workflow Completed\".", + "type": "string" + }, + "type": { + "description": "The type of this column, \"label\" or \"annotation\".", + "type": "string" + } + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, "io.argoproj.workflow.v1alpha1.Condition": { "type": "object", "properties": { @@ -9043,6 +9068,12 @@ "io.argoproj.workflow.v1alpha1.InfoResponse": { "type": "object", "properties": { + "columns": { + "type": "array", + "items": { + "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Column" + } + }, "links": { "type": "array", "items": { @@ -9161,7 +9192,7 @@ "type": "string" }, "scope": { - "description": "\"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\" or \"chat\"", + "description": "\"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\"", "type": "string" }, "url": { @@ -9437,7 +9468,7 @@ "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Outputs" }, "phase": { - "description": "Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine.", + "description": "Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state.", "type": "string" }, "podIP": { @@ -11210,7 +11241,7 @@ }, "podDisruptionBudget": { "description": "PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow's Pods. Controller will automatically add the selector with workflow name, if selector is empty. Optional: Defaults to empty.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec" + "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetSpec" }, "podGC": { "description": "PodGC describes the strategy to use when deleting completed pods", @@ -11299,9 +11330,7 @@ "type": "array", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" + } }, "volumes": { "description": "Volumes is a list of volumes that can be mounted by containers in a io.argoproj.workflow.v1alpha1.", @@ -11380,7 +11409,7 @@ } }, "phase": { - "description": "Phase a simple, high-level summary of where the workflow is in its lifecycle.", + "description": "Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed.", "type": "string" }, "progress": { @@ -14228,7 +14257,7 @@ } } }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { + "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": { "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", "type": "object", "properties": { @@ -14241,7 +14270,7 @@ "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" }, "selector": { - "description": "Label query over pods whose evictions are managed by the disruption budget. A null selector selects no pods. An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. In policy/v1, an empty selector will select all pods in the namespace.", + "description": "Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.", "x-kubernetes-patch-strategy": "replace", "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" } diff --git a/cmd/argo/commands/client/conn.go b/cmd/argo/commands/client/conn.go index 5f28d1d8268d..8d92587bbcab 100644 --- a/cmd/argo/commands/client/conn.go +++ b/cmd/argo/commands/client/conn.go @@ -25,6 +25,7 @@ var overrides = clientcmd.ConfigOverrides{} var ( explicitPath string Offline bool + OfflineFiles []string ) func AddKubectlFlagsToCmd(cmd *cobra.Command) { @@ -63,6 +64,7 @@ func NewAPIClient(ctx context.Context) (context.Context, apiclient.Client) { }, ClientConfigSupplier: func() clientcmd.ClientConfig { return GetConfig() }, Offline: Offline, + OfflineFiles: OfflineFiles, Context: ctx, }) if err != nil { diff --git a/cmd/argo/commands/client/conn_test.go b/cmd/argo/commands/client/conn_test.go index 3029af566034..f98a4e9f6c2b 100644 --- a/cmd/argo/commands/client/conn_test.go +++ b/cmd/argo/commands/client/conn_test.go @@ -1,9 +1,11 @@ package client import ( + "context" "os" "testing" + "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" ) @@ -18,3 +20,29 @@ func TestNamespace(t *testing.T) { defer func() { _ = os.Unsetenv("ARGO_NAMESPACE") }() assert.Equal(t, "my-ns", Namespace()) } + +func TestCreateOfflineClient(t *testing.T) { + t.Run("creating an offline client with no files should not fail", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + Offline = true + OfflineFiles = []string{} + NewAPIClient(context.TODO()) + + assert.False(t, fatal, "should have exited") + }) + + t.Run("creating an offline client with a non-existing file should fail", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + Offline = true + OfflineFiles = []string{"non-existing-file"} + NewAPIClient(context.TODO()) + + assert.True(t, fatal, "should have exited") + }) +} diff --git a/cmd/argo/commands/common/get.go b/cmd/argo/commands/common/get.go index fb9551fe843e..0740978b0307 100644 --- a/cmd/argo/commands/common/get.go +++ b/cmd/argo/commands/common/get.go @@ -478,25 +478,25 @@ func renderChild(w *tabwriter.Writer, wf *wfv1.Workflow, nInfo renderNode, depth // Main method to print information of node in get func printNode(w *tabwriter.Writer, node wfv1.NodeStatus, wfName, nodePrefix string, getArgs GetFlags, podNameVersion util.PodNameVersion) { - nodeName := fmt.Sprintf("%s %s", JobStatusIconMap[node.Phase], node.DisplayName) + nodeName := node.Name + fmtNodeName := fmt.Sprintf("%s %s", JobStatusIconMap[node.Phase], node.DisplayName) if node.IsActiveSuspendNode() { - nodeName = fmt.Sprintf("%s %s", NodeTypeIconMap[node.Type], node.DisplayName) + fmtNodeName = fmt.Sprintf("%s %s", NodeTypeIconMap[node.Type], node.DisplayName) } - templateName := "" + templateName := util.GetTemplateFromNode(node) + fmtTemplateName := "" if node.TemplateRef != nil { - templateName = fmt.Sprintf("%s/%s", node.TemplateRef.Name, node.TemplateRef.Template) + fmtTemplateName = fmt.Sprintf("%s/%s", node.TemplateRef.Name, node.TemplateRef.Template) } else if node.TemplateName != "" { - templateName = node.TemplateName + fmtTemplateName = node.TemplateName } var args []interface{} duration := humanize.RelativeDurationShort(node.StartedAt.Time, node.FinishedAt.Time) if node.Type == wfv1.NodeTypePod { - // node.Name is used here because nodeName may contain additionally formatting. - // We want to use the original naming to ensure the correct hash is dervied - podName := util.GeneratePodName(wfName, node.Name, templateName, node.ID, podNameVersion) - args = []interface{}{nodePrefix, nodeName, templateName, podName, duration, node.Message, ""} + podName := util.GeneratePodName(wfName, nodeName, templateName, node.ID, podNameVersion) + args = []interface{}{nodePrefix, fmtNodeName, fmtTemplateName, podName, duration, node.Message, ""} } else { - args = []interface{}{nodePrefix, nodeName, templateName, "", "", node.Message, ""} + args = []interface{}{nodePrefix, fmtNodeName, fmtTemplateName, "", "", node.Message, ""} } if getArgs.Output == "wide" { msg := args[len(args)-2] diff --git a/cmd/argo/commands/common/get_test.go b/cmd/argo/commands/common/get_test.go index 135e1bc8ef9b..ace2ab3d02cb 100644 --- a/cmd/argo/commands/common/get_test.go +++ b/cmd/argo/commands/common/get_test.go @@ -59,6 +59,8 @@ func TestPrintNode(t *testing.T) { timestamp := metav1.Time{ Time: time.Now(), } + + // Node without TemplateRef node := wfv1.NodeStatus{ Name: nodeName, Phase: wfv1.NodeRunning, @@ -72,7 +74,9 @@ func TestPrintNode(t *testing.T) { } node.HostNodeName = kubernetesNodeName // derive expected pod name: - expectedPodName := util.GeneratePodName(workflowName, nodeName, nodeTemplateName, nodeID, util.GetPodNameVersion()) + templateName := util.GetTemplateFromNode(node) + expectedPodName := util.GeneratePodName(workflowName, nodeName, templateName, nodeID, util.GetPodNameVersion()) + t.Log(expectedPodName) testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s\t%s\t%s\t%s\t%s\n", JobStatusIconMap[wfv1.NodeRunning], nodeName, nodeTemplateName, expectedPodName, "0s", nodeMessage, ""), node, getArgs) @@ -104,17 +108,18 @@ func TestPrintNode(t *testing.T) { } node.TemplateName = nodeTemplateName - expectedPodName = util.GeneratePodName(workflowName, nodeName, nodeTemplateName, nodeID, util.GetPodNameVersion()) testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s\t%s\t%s\t%s\t%s\n", JobStatusIconMap[wfv1.NodeRunning], nodeName, nodeTemplateName, expectedPodName, "0s", nodeMessage, ""), node, getArgs) node.Type = wfv1.NodeTypeSuspend testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s\t%s\t%s\t%s\t%s\n", NodeTypeIconMap[wfv1.NodeTypeSuspend], nodeName, nodeTemplateName, "", "", nodeMessage, ""), node, getArgs) + // Node with templateRef + node.TemplateName = "" node.TemplateRef = &wfv1.TemplateRef{ Name: nodeTemplateRefName, Template: nodeTemplateRefName, } - templateName := fmt.Sprintf("%s/%s", node.TemplateRef.Name, node.TemplateRef.Template) + templateName = util.GetTemplateFromNode(node) expectedPodName = util.GeneratePodName(workflowName, nodeName, templateName, nodeID, util.GetPodNameVersion()) testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s/%s\t%s\t%s\t%s\t%s\n", NodeTypeIconMap[wfv1.NodeTypeSuspend], nodeName, nodeTemplateRefName, nodeTemplateRefName, "", "", nodeMessage, ""), node, getArgs) @@ -417,7 +422,7 @@ func Test_printWorkflowHelperNudges(t *testing.T) { securityNudges := "This workflow does not have security context set. " + "You can run your workflow pods more securely by setting it.\n" + - "Learn more at https://argoproj.github.io/argo-workflows/workflow-pod-security-context/\n" + "Learn more at https://argo-workflows.readthedocs.io/en/release-3.4/workflow-pod-security-context/\n" t.Run("SecuredWorkflow", func(t *testing.T) { output := PrintWorkflowHelper(&securedWf, GetFlags{}) diff --git a/cmd/argo/commands/completion.go b/cmd/argo/commands/completion.go index 60afda5d21e1..e7f35aa05d85 100644 --- a/cmd/argo/commands/completion.go +++ b/cmd/argo/commands/completion.go @@ -42,22 +42,13 @@ __argo_get_cron_workflow() { __argo_get_logs() { # Determine if were completing a workflow or not. - local workflow=0 - for comp_word in "${COMP_WORDS[@]}"; do - if [[ $comp_word =~ ^(-w|--workflow)$ ]]; then - workflow=1 - break - fi - done - - # If completing a workflow, call normal function. - if [[ $workflow -eq 1 ]]; then + if [[ $prev == "logs" ]]; then __argo_get_workflow && return $? - fi - + fi + local workflow=$prev # Otherwise, complete the list of pods local -a kubectl_out - if kubectl_out=($(kubectl get pods --no-headers --label-columns=workflows.argoproj.io/workflow 2>/dev/null | awk '{if ($6!="") print $1}' 2>/dev/null)); then + if kubectl_out=($(kubectl get pods --no-headers --selector=workflows.argoproj.io/workflow="${workflow}" 2>/dev/null | awk '{print $1}' 2>/dev/null)); then COMPREPLY+=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) ) fi } @@ -108,7 +99,7 @@ __argo_custom_func() { __argo_list_files return ;; - argo_cron_get | argo_cron_delete | argo_cron_resume | argo_cron_subspend) + argo_cron_get | argo_cron_delete | argo_cron_resume | argo_cron_suspend) __argo_get_cron_workflow return ;; diff --git a/cmd/argo/commands/lint.go b/cmd/argo/commands/lint.go index 608be5835efc..f730ae3729a7 100644 --- a/cmd/argo/commands/lint.go +++ b/cmd/argo/commands/lint.go @@ -1,6 +1,7 @@ package commands import ( + "context" "fmt" "os" "strings" @@ -12,6 +13,8 @@ import ( wf "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow" ) +var allKinds = []string{wf.WorkflowPlural, wf.WorkflowTemplatePlural, wf.CronWorkflowPlural, wf.ClusterWorkflowTemplatePlural} + func NewLintCommand() *cobra.Command { var ( strict bool @@ -20,8 +23,6 @@ func NewLintCommand() *cobra.Command { offline bool ) - allKinds := []string{wf.WorkflowPlural, wf.WorkflowTemplatePlural, wf.CronWorkflowPlural, wf.ClusterWorkflowTemplatePlural} - command := &cobra.Command{ Use: "lint FILE...", Short: "validate files or directories of manifests", @@ -34,29 +35,36 @@ func NewLintCommand() *cobra.Command { cat manifests.yaml | argo lint --kinds=workflows,cronworkflows -`, Run: func(cmd *cobra.Command, args []string) { - client.Offline = offline - ctx, apiClient := client.NewAPIClient(cmd.Context()) if len(args) == 0 { cmd.HelpFunc()(cmd, args) os.Exit(1) } - if len(lintKinds) == 0 || strings.Contains(strings.Join(lintKinds, ","), "all") { - lintKinds = allKinds - } - ops := lint.LintOptions{ - Files: args, - Strict: strict, - DefaultNamespace: client.Namespace(), - Printer: os.Stdout, - } - lint.RunLint(ctx, apiClient, lintKinds, output, offline, ops) + + runLint(cmd.Context(), args, offline, lintKinds, output, strict) }, } command.Flags().StringSliceVar(&lintKinds, "kinds", []string{"all"}, fmt.Sprintf("Which kinds will be linted. Can be: %s", strings.Join(allKinds, "|"))) command.Flags().StringVarP(&output, "output", "o", "pretty", "Linting results output format. One of: pretty|simple") command.Flags().BoolVar(&strict, "strict", true, "Perform strict workflow validation") - command.Flags().BoolVar(&offline, "offline", false, "perform offline linting") + command.Flags().BoolVar(&offline, "offline", false, "perform offline linting. For resources referencing other resources, the references will be resolved from the provided args") return command } + +func runLint(ctx context.Context, args []string, offline bool, lintKinds []string, output string, strict bool) { + client.Offline = offline + client.OfflineFiles = args + ctx, apiClient := client.NewAPIClient(ctx) + + if len(lintKinds) == 0 || strings.Contains(strings.Join(lintKinds, ","), "all") { + lintKinds = allKinds + } + ops := lint.LintOptions{ + Files: args, + Strict: strict, + DefaultNamespace: client.Namespace(), + Printer: os.Stdout, + } + lint.RunLint(ctx, apiClient, lintKinds, output, offline, ops) +} diff --git a/cmd/argo/commands/lint_test.go b/cmd/argo/commands/lint_test.go new file mode 100644 index 000000000000..f26d922c1d7a --- /dev/null +++ b/cmd/argo/commands/lint_test.go @@ -0,0 +1,172 @@ +package commands + +import ( + "context" + "os" + "path/filepath" + "testing" + + "github.com/sirupsen/logrus" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func Test_OfflineLint(t *testing.T) { + dir := t.TempDir() + + subdir := filepath.Join(dir, "subdir") + require.NoError(t, os.Mkdir(subdir, 0755)) + wftmplPath := filepath.Join(subdir, "wftmpl.yaml") + err := os.WriteFile(wftmplPath, []byte(` +apiVersion: argoproj.io/v1alpha1 +kind: WorkflowTemplate +metadata: + name: hello-world-template-local-arg + namespace: test +spec: + templates: + - name: hello-world + inputs: + parameters: + - name: msg + value: hello world + container: + image: docker/whalesay + command: + - cowsay + args: + - '{{inputs.parameters.msg}}' +`), 0644) + require.NoError(t, err) + + clusterWftmplPath := filepath.Join(subdir, "cluster-workflow-template.yaml") + err = os.WriteFile(clusterWftmplPath, []byte(` +apiVersion: argoproj.io/v1alpha1 +kind: ClusterWorkflowTemplate +metadata: + name: hello-world-cluster +spec: + templates: + - name: hello-world + inputs: + parameters: + - name: msg + value: hello world + container: + image: docker/whalesay + command: + - cowsay + args: + - '{{inputs.parameters.msg}}' +`), 0644) + require.NoError(t, err) + + workflowPath := filepath.Join(subdir, "workflow.yaml") + err = os.WriteFile(workflowPath, []byte(` +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: hello-world-local-arg- + namespace: test +spec: + entrypoint: whalesay + templates: + - name: whalesay + steps: + - - name: hello-world + templateRef: + name: hello-world-template-local-arg + template: hello-world + - name: hello-world-cluster + templateRef: + name: hello-world-cluster + template: hello-world + clusterScope: true +`), 0644) + require.NoError(t, err) + + t.Run("linting a workflow missing references", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + runLint(context.Background(), []string{workflowPath}, true, nil, "pretty", true) + + assert.True(t, fatal, "should have exited") + }) + + t.Run("linting a workflow missing a workflow template ref", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + runLint(context.Background(), []string{workflowPath, clusterWftmplPath}, true, nil, "pretty", true) + + assert.True(t, fatal, "should have exited") + }) + + t.Run("linting a workflow missing a cluster workflow template ref", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + runLint(context.Background(), []string{workflowPath, wftmplPath}, true, nil, "pretty", true) + + assert.True(t, fatal, "should have exited") + }) + + t.Run("linting a workflow template on its own", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + runLint(context.Background(), []string{wftmplPath}, true, nil, "pretty", true) + + assert.False(t, fatal, "should not have exited") + }) + + t.Run("linting a cluster workflow template on its own", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + runLint(context.Background(), []string{clusterWftmplPath}, true, nil, "pretty", true) + + assert.False(t, fatal, "should not have exited") + }) + + t.Run("linting a workflow and templates", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + runLint(context.Background(), []string{workflowPath, wftmplPath, clusterWftmplPath}, true, nil, "pretty", true) + + assert.False(t, fatal, "should not have exited") + }) + + t.Run("linting a directory", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + runLint(context.Background(), []string{dir}, true, nil, "pretty", true) + + assert.False(t, fatal, "should not have exited") + }) + + t.Run("linting one file from stdin", func(t *testing.T) { + defer func() { logrus.StandardLogger().ExitFunc = nil }() + var fatal bool + logrus.StandardLogger().ExitFunc = func(int) { fatal = true } + + oldStdin := os.Stdin + defer func() { os.Stdin = oldStdin }() // Restore original Stdin + os.Stdin, err = os.Open(clusterWftmplPath) + require.NoError(t, err) + + runLint(context.Background(), []string{workflowPath, wftmplPath, "-"}, true, nil, "pretty", true) + + assert.False(t, fatal, "should not have exited") + }) +} diff --git a/cmd/argo/commands/resubmit.go b/cmd/argo/commands/resubmit.go index d643dd2c8373..7eb4b7e9697b 100644 --- a/cmd/argo/commands/resubmit.go +++ b/cmd/argo/commands/resubmit.go @@ -37,6 +37,7 @@ func NewResubmitCommand() *cobra.Command { command := &cobra.Command{ Use: "resubmit [WORKFLOW...]", Short: "resubmit one or more workflows", + Long: "Submit a completed workflow again. Optionally override parameters and memoize. Similar to running `argo submit` again with the same parameters.", Example: `# Resubmit a workflow: argo resubmit my-wf diff --git a/cmd/argo/commands/resume.go b/cmd/argo/commands/resume.go index 2a9a51105214..a4d68db05a59 100644 --- a/cmd/argo/commands/resume.go +++ b/cmd/argo/commands/resume.go @@ -20,8 +20,8 @@ func NewResumeCommand() *cobra.Command { command := &cobra.Command{ Use: "resume WORKFLOW1 WORKFLOW2...", - Short: "resume zero or more workflows", - Example: `# Resume a workflow that has been stopped or suspended: + Short: "resume zero or more workflows (opposite of suspend)", + Example: `# Resume a workflow that has been suspended: argo resume my-wf diff --git a/cmd/argo/commands/retry.go b/cmd/argo/commands/retry.go index 32f05ab81d2a..d7cbf6359ce2 100644 --- a/cmd/argo/commands/retry.go +++ b/cmd/argo/commands/retry.go @@ -40,11 +40,12 @@ func NewRetryCommand() *cobra.Command { command := &cobra.Command{ Use: "retry [WORKFLOW...]", Short: "retry zero or more workflows", + Long: "Rerun a failed Workflow. Specifically, rerun all failed steps. The same Workflow object is used and no new Workflows are created.", Example: `# Retry a workflow: argo retry my-wf -# Retry multiple workflows: +# Retry multiple workflows: argo retry my-wf my-other-wf my-third-wf diff --git a/cmd/argo/commands/server.go b/cmd/argo/commands/server.go index 95d9ae49a8c1..ae66ec41f760 100644 --- a/cmd/argo/commands/server.go +++ b/cmd/argo/commands/server.go @@ -138,7 +138,7 @@ See %s`, help.ArgoServer), } } else { - log.Warn("You are running in insecure mode. Learn how to enable transport layer security: https://argoproj.github.io/argo-workflows/tls/") + log.Warn("You are running in insecure mode. Learn how to enable transport layer security: https://argo-workflows.readthedocs.io/en/release-3.4/tls/") } modes := auth.Modes{} @@ -149,7 +149,7 @@ See %s`, help.ArgoServer), } } if reflect.DeepEqual(modes, auth.Modes{auth.Server: true}) { - log.Warn("You are running without client authentication. Learn how to enable client authentication: https://argoproj.github.io/argo-workflows/argo-server-auth-mode/") + log.Warn("You are running without client authentication. Learn how to enable client authentication: https://argo-workflows.readthedocs.io/en/release-3.4/argo-server-auth-mode/") } opts := apiserver.ArgoServerOpts{ diff --git a/cmd/argo/commands/stop.go b/cmd/argo/commands/stop.go index b289b264001d..43a89b0782f3 100644 --- a/cmd/argo/commands/stop.go +++ b/cmd/argo/commands/stop.go @@ -38,6 +38,7 @@ func NewStopCommand() *cobra.Command { command := &cobra.Command{ Use: "stop WORKFLOW WORKFLOW2...", Short: "stop zero or more workflows allowing all exit handlers to run", + Long: "Stop a workflow but still run exit handlers.", Example: `# Stop a workflow: argo stop my-wf diff --git a/cmd/argo/commands/submit.go b/cmd/argo/commands/submit.go index 1454ba0929fc..ef5da1421434 100644 --- a/cmd/argo/commands/submit.go +++ b/cmd/argo/commands/submit.go @@ -205,7 +205,9 @@ func submitWorkflows(ctx context.Context, serviceClient workflowpkg.WorkflowServ } err := util.ApplySubmitOpts(&wf, submitOpts) errors.CheckError(err) - wf.Spec.Priority = cliOpts.Priority + if cliOpts.Priority != nil { + wf.Spec.Priority = cliOpts.Priority + } options := &metav1.CreateOptions{} if submitOpts.DryRun { options.DryRun = []string{"All"} diff --git a/cmd/argo/commands/submit_test.go b/cmd/argo/commands/submit_test.go new file mode 100644 index 000000000000..f3c8767d8f1b --- /dev/null +++ b/cmd/argo/commands/submit_test.go @@ -0,0 +1,53 @@ +package commands + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/argoproj/argo-workflows/v3/cmd/argo/commands/common" + workflowpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflow" + workflowmocks "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflow/mocks" + wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" +) + +func Test_submitWorkflows(t *testing.T) { + t.Run("Submit workflow with priority set in spec", func(t *testing.T) { + c := &workflowmocks.WorkflowServiceClient{} + priority := int32(70) + workflow := wfv1.Workflow{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "argo"}, Spec: wfv1.WorkflowSpec{Priority: &priority}} + + c.On("CreateWorkflow", mock.Anything, mock.Anything).Return(&wfv1.Workflow{}, nil) + submitWorkflows(context.TODO(), c, "argo", []wfv1.Workflow{workflow}, &wfv1.SubmitOpts{}, &common.CliSubmitOpts{}) + + arg := c.Mock.Calls[0].Arguments[1] + wfC, ok := arg.(*workflowpkg.WorkflowCreateRequest) + if !ok { + assert.Fail(t, "type is not WorkflowCreateRequest") + } + assert.Equal(t, priority, *wfC.Workflow.Spec.Priority) + + }) + + t.Run("Submit workflow with priority set from cli", func(t *testing.T) { + c := &workflowmocks.WorkflowServiceClient{} + priority := int32(70) + workflow := wfv1.Workflow{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "argo"}, Spec: wfv1.WorkflowSpec{Priority: &priority}} + + priorityCLI := int32(100) + cliSubmitOpts := common.CliSubmitOpts{Priority: &priorityCLI} + + c.On("CreateWorkflow", mock.Anything, mock.Anything).Return(&wfv1.Workflow{}, nil) + submitWorkflows(context.TODO(), c, "argo", []wfv1.Workflow{workflow}, &wfv1.SubmitOpts{}, &cliSubmitOpts) + + arg := c.Mock.Calls[0].Arguments[1] + wfC, ok := arg.(*workflowpkg.WorkflowCreateRequest) + if !ok { + assert.Fail(t, "type is not WorkflowCreateRequest") + } + assert.Equal(t, priorityCLI, *wfC.Workflow.Spec.Priority) + }) +} diff --git a/cmd/argo/commands/suspend.go b/cmd/argo/commands/suspend.go index f7a5fed34b5a..814b3796a0aa 100644 --- a/cmd/argo/commands/suspend.go +++ b/cmd/argo/commands/suspend.go @@ -13,7 +13,7 @@ import ( func NewSuspendCommand() *cobra.Command { command := &cobra.Command{ Use: "suspend WORKFLOW1 WORKFLOW2...", - Short: "suspend zero or more workflow", + Short: "suspend zero or more workflows (opposite of resume)", Example: `# Suspend a workflow: argo suspend my-wf diff --git a/cmd/argo/commands/terminate.go b/cmd/argo/commands/terminate.go index c20b75d374be..c10e669bbae2 100644 --- a/cmd/argo/commands/terminate.go +++ b/cmd/argo/commands/terminate.go @@ -46,6 +46,7 @@ func NewTerminateCommand() *cobra.Command { command := &cobra.Command{ Use: "terminate WORKFLOW WORKFLOW2...", Short: "terminate zero or more workflows immediately", + Long: "Immediately stop a workflow and do not run any exit handlers.", Example: `# Terminate a workflow: argo terminate my-wf diff --git a/cmd/argo/lint/lint.go b/cmd/argo/lint/lint.go index 35ef9ad1b431..1c31223917f4 100644 --- a/cmd/argo/lint/lint.go +++ b/cmd/argo/lint/lint.go @@ -5,8 +5,6 @@ import ( "fmt" "io" "io/ioutil" - "os" - "path/filepath" "strings" "github.com/argoproj/pkg/errors" @@ -20,6 +18,7 @@ import ( workflowtemplatepkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflowtemplate" wf "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow" wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + fileutil "github.com/argoproj/argo-workflows/v3/util/file" "github.com/argoproj/argo-workflows/v3/workflow/common" ) @@ -64,12 +63,6 @@ type Formatter interface { } var ( - lintExt = map[string]bool{ - ".yaml": true, - ".yml": true, - ".json": true, - } - defaultFormatter = formatterPretty{} formatters = map[string]Formatter{ @@ -99,7 +92,7 @@ func RunLint(ctx context.Context, client apiclient.Client, kinds []string, outpu errors.CheckError(err) if !res.Success { - os.Exit(1) + log.StandardLogger().Exit(1) } } @@ -121,41 +114,11 @@ func Lint(ctx context.Context, opts *LintOptions) (*LintResults, error) { } for _, file := range opts.Files { - err := filepath.Walk(file, func(path string, info os.FileInfo, err error) error { - var r io.Reader - switch { - case path == "-": - path = "stdin" - r = os.Stdin - case err != nil: - return err - case strings.HasPrefix(path, "/dev/") || lintExt[filepath.Ext(path)]: - f, err := os.Open(filepath.Clean(path)) - if err != nil { - return err - } - defer func() { - if err := f.Close(); err != nil { - log.Fatalf("Error closing file[%s]: %v", path, err) - } - }() - r = f - case info.IsDir(): - return nil // skip - default: - log.Debugf("ignoring file with unknown extension: %s", path) - return nil - } - - data, err := ioutil.ReadAll(r) - if err != nil { - return err - } - + err := fileutil.WalkManifests(file, func(path string, data []byte) error { res := lintData(ctx, path, data, opts) results.Results = append(results.Results, res) - _, err = w.Write([]byte(results.fmtr.Format(res))) + _, err := w.Write([]byte(results.fmtr.Format(res))) return err }) if err != nil { diff --git a/cmd/argoexec/commands/emissary.go b/cmd/argoexec/commands/emissary.go index 0ae07e530de0..ba1a5179524b 100644 --- a/cmd/argoexec/commands/emissary.go +++ b/cmd/argoexec/commands/emissary.go @@ -71,24 +71,42 @@ func NewEmissaryCommand() *cobra.Command { return fmt.Errorf("failed to unmarshal template: %w", err) } + // setup signal handlers + signals := make(chan os.Signal, 1) + defer close(signals) + signal.Notify(signals) + defer signal.Reset() + for _, x := range template.ContainerSet.GetGraph() { if x.Name == containerName { for _, y := range x.Dependencies { logger.Infof("waiting for dependency %q", y) + WaitForDependency: for { - data, err := ioutil.ReadFile(filepath.Clean(varRunArgo + "/ctr/" + y + "/exitcode")) - if os.IsNotExist(err) { - time.Sleep(time.Second) - continue - } - exitCode, err := strconv.Atoi(string(data)) - if err != nil { - return fmt.Errorf("failed to read exit-code of dependency %q: %w", y, err) + select { + // If we receive a terminated or killed signal, we should exit immediately. + case s := <-signals: + switch s { + case osspecific.Term: + // exit with 128 + 15 (SIGTERM) + return errors.NewExitErr(143) + case os.Kill: + // exit with 128 + 9 (SIGKILL) + return errors.NewExitErr(137) + } + default: + data, _ := os.ReadFile(filepath.Clean(varRunArgo + "/ctr/" + y + "/exitcode")) + exitCode, err := strconv.Atoi(string(data)) + if err != nil { + time.Sleep(time.Second) + continue + } + if exitCode != 0 { + return fmt.Errorf("dependency %q exited with non-zero code: %d", y, exitCode) + } + + break WaitForDependency } - if exitCode != 0 { - return fmt.Errorf("dependency %q exited with non-zero code: %d", y, exitCode) - } - break } } } @@ -99,7 +117,7 @@ func NewEmissaryCommand() *cobra.Command { return fmt.Errorf("failed to find name in PATH: %w", err) } - if _, ok := os.LookupEnv("ARGO_DEBUG_PAUSE_BEFORE"); ok { + if os.Getenv("ARGO_DEBUG_PAUSE_BEFORE") == "true" { for { // User can create the file: /ctr/NAME_OF_THE_CONTAINER/before // in order to break out of the sleep and release the container from @@ -111,17 +129,13 @@ func NewEmissaryCommand() *cobra.Command { break } } + backoff, err := template.GetRetryStrategy() if err != nil { return fmt.Errorf("failed to get retry strategy: %w", err) } cmdErr := retry.OnError(backoff, func(error) bool { return true }, func() error { - // setup signal handlers - signals := make(chan os.Signal, 1) - defer close(signals) - signal.Notify(signals) - defer signal.Reset() command, closer, err := startCommand(name, args, template) if err != nil { @@ -164,7 +178,7 @@ func NewEmissaryCommand() *cobra.Command { }) logger.WithError(err).Info("sub-process exited") - if _, ok := os.LookupEnv("ARGO_DEBUG_PAUSE_AFTER"); ok { + if os.Getenv("ARGO_DEBUG_PAUSE_AFTER") == "true" { for { // User can create the file: /ctr/NAME_OF_THE_CONTAINER/after // in order to break out of the sleep and release the container from @@ -263,7 +277,7 @@ func saveArtifact(srcPath string) error { return nil } if _, err := os.Stat(srcPath); os.IsNotExist(err) { // might be optional, so we ignore - logger.WithError(err).Errorf("cannot save artifact %s", srcPath) + logger.WithError(err).Warnf("cannot save artifact %s", srcPath) return nil } dstPath := filepath.Join(varRunArgo, "/outputs/artifacts/", strings.TrimSuffix(srcPath, "/")+".tgz") diff --git a/cmd/argoexec/commands/emissary_test.go b/cmd/argoexec/commands/emissary_test.go index 2c2d56306579..96b1260697cd 100644 --- a/cmd/argoexec/commands/emissary_test.go +++ b/cmd/argoexec/commands/emissary_test.go @@ -1,3 +1,5 @@ +//go:build !windows + package commands import ( @@ -39,13 +41,22 @@ func TestEmissary(t *testing.T) { assert.Equal(t, "1", string(data)) }) t.Run("Stdout", func(t *testing.T) { + _ = os.Remove(varRunArgo + "/ctr/main/stdout") err := run("echo hello") assert.NoError(t, err) data, err := ioutil.ReadFile(varRunArgo + "/ctr/main/stdout") assert.NoError(t, err) assert.Contains(t, string(data), "hello") }) - t.Run("Comined", func(t *testing.T) { + t.Run("Sub-process", func(t *testing.T) { + _ = os.Remove(varRunArgo + "/ctr/main/stdout") + err := run(`(sleep 60; echo 'should not wait for sub-process')& echo "hello\c"`) + assert.NoError(t, err) + data, err := os.ReadFile(varRunArgo + "/ctr/main/stdout") + assert.NoError(t, err) + assert.Equal(t, "hello", string(data)) + }) + t.Run("Combined", func(t *testing.T) { err := run("echo hello > /dev/stderr") assert.NoError(t, err) data, err := ioutil.ReadFile(varRunArgo + "/ctr/main/combined") diff --git a/cmd/argoexec/commands/emissary_windows_test.go b/cmd/argoexec/commands/emissary_windows_test.go new file mode 100644 index 000000000000..7fabd31febba --- /dev/null +++ b/cmd/argoexec/commands/emissary_windows_test.go @@ -0,0 +1,48 @@ +//go:build windows + +package commands + +import ( + "os" + "testing" + + "github.com/argoproj/argo-workflows/v3/util/errors" + "github.com/stretchr/testify/assert" +) + +func TestEmissary(t *testing.T) { + tmp := t.TempDir() + + varRunArgo = tmp + includeScriptOutput = true + + err := os.WriteFile(varRunArgo+"/template", []byte(`{}`), 0o600) + assert.NoError(t, err) + + t.Run("Exit0", func(t *testing.T) { + err := run("exit") + assert.NoError(t, err) + data, err := os.ReadFile(varRunArgo + "/ctr/main/exitcode") + assert.NoError(t, err) + assert.Equal(t, "0", string(data)) + }) + + t.Run("Exit1", func(t *testing.T) { + err := run("exit 1") + assert.Equal(t, 1, err.(errors.Exited).ExitCode()) + data, err := os.ReadFile(varRunArgo + "/ctr/main/exitcode") + assert.NoError(t, err) + assert.Equal(t, "1", string(data)) + }) + t.Run("Exit13", func(t *testing.T) { + err := run("exit 13") + assert.Equal(t, 13, err.(errors.Exited).ExitCode()) + assert.EqualError(t, err, "exit status 13") + }) +} + +func run(script string) error { + cmd := NewEmissaryCommand() + containerName = "main" + return cmd.RunE(cmd, append([]string{"powershell", "-c"}, script)) +} diff --git a/cmd/argoexec/commands/resource.go b/cmd/argoexec/commands/resource.go index 94ca7686a945..e5d8fcf32328 100644 --- a/cmd/argoexec/commands/resource.go +++ b/cmd/argoexec/commands/resource.go @@ -21,7 +21,7 @@ func NewResourceCommand() *cobra.Command { os.Exit(1) } - ctx := context.Background() + ctx := cmd.Context() err := execResource(ctx, args[0]) if err != nil { log.Fatalf("%+v", err) diff --git a/cmd/argoexec/commands/root.go b/cmd/argoexec/commands/root.go index c01aa58c02dc..8fcf4d59df4b 100644 --- a/cmd/argoexec/commands/root.go +++ b/cmd/argoexec/commands/root.go @@ -39,10 +39,6 @@ var ( logFormat string // --log-format ) -func init() { - cobra.OnInitialize(initConfig) -} - func initConfig() { cmd.SetLogFormatter(logFormat) cli.SetLogLevel(logLevel) @@ -56,6 +52,9 @@ func NewRootCommand() *cobra.Command { Run: func(cmd *cobra.Command, args []string) { cmd.HelpFunc()(cmd, args) }, + PersistentPreRun: func(cmd *cobra.Command, args []string) { + initConfig() + }, } command.AddCommand(NewAgentCommand()) diff --git a/cmd/argoexec/commands/wait.go b/cmd/argoexec/commands/wait.go index 170f7e1521ee..9d05aec88174 100644 --- a/cmd/argoexec/commands/wait.go +++ b/cmd/argoexec/commands/wait.go @@ -2,8 +2,6 @@ package commands import ( "context" - "os/signal" - "syscall" "time" "github.com/argoproj/pkg/stats" @@ -16,7 +14,7 @@ func NewWaitCommand() *cobra.Command { Use: "wait", Short: "wait for main container to finish and save artifacts", Run: func(cmd *cobra.Command, args []string) { - ctx := context.Background() + ctx := cmd.Context() err := waitContainer(ctx) if err != nil { log.Fatalf("%+v", err) @@ -32,20 +30,14 @@ func waitContainer(ctx context.Context) error { defer stats.LogStats() stats.StartStatsTicker(5 * time.Minute) - // use a function to constrain the scope of ctx - func() { - // this allows us to gracefully shutdown, capturing artifacts - ctx, cancel := signal.NotifyContext(ctx, syscall.SIGTERM) - defer cancel() - - // Wait for main container to complete - err := wfExecutor.Wait(ctx) - if err != nil { - wfExecutor.AddError(err) - } - }() + // Wait for main container to complete + err := wfExecutor.Wait(ctx) + if err != nil { + wfExecutor.AddError(err) + } + ctx = context.Background() // don't allow cancellation to impact capture of results, parameters,or artifacts // Capture output script result - err := wfExecutor.CaptureScriptResult(ctx) + err = wfExecutor.CaptureScriptResult(ctx) if err != nil { wfExecutor.AddError(err) } diff --git a/cmd/argoexec/main.go b/cmd/argoexec/main.go index 1bd6c581bc19..8ae2e0d512c5 100644 --- a/cmd/argoexec/main.go +++ b/cmd/argoexec/main.go @@ -1,7 +1,10 @@ package main import ( + "context" "os" + "os/signal" + "syscall" "github.com/argoproj/argo-workflows/v3/util/errors" @@ -13,7 +16,9 @@ import ( ) func main() { - err := commands.NewRootCommand().Execute() + ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGTERM) + defer stop() + err := commands.NewRootCommand().ExecuteContext(ctx) if err != nil { if exitError, ok := err.(errors.Exited); ok { if exitError.ExitCode() >= 0 { diff --git a/cmd/workflow-controller/main.go b/cmd/workflow-controller/main.go index c45e3dbabd95..f9abfea00330 100644 --- a/cmd/workflow-controller/main.go +++ b/cmd/workflow-controller/main.go @@ -117,6 +117,7 @@ func NewRootCommand() *cobra.Command { log.Info("Leader election is turned off. Running in single-instance mode") log.WithField("id", "single-instance").Info("starting leading") go wfController.Run(ctx, workflowWorkers, workflowTTLWorkers, podCleanupWorkers) + go wfController.RunMetricsServer(ctx, false) } else { nodeID, ok := os.LookupEnv("LEADER_ELECTION_IDENTITY") if !ok { @@ -128,6 +129,11 @@ func NewRootCommand() *cobra.Command { leaderName = fmt.Sprintf("%s-%s", leaderName, wfController.Config.InstanceID) } + // for controlling the dummy metrics server + dummyCtx, dummyCancel := context.WithCancel(context.Background()) + defer dummyCancel() + go wfController.RunMetricsServer(dummyCtx, true) + go leaderelection.RunOrDie(ctx, leaderelection.LeaderElectionConfig{ Lock: &resourcelock.LeaseLock{ LeaseMeta: metav1.ObjectMeta{Name: leaderName, Namespace: namespace}, Client: kubeclientset.CoordinationV1(), @@ -139,11 +145,14 @@ func NewRootCommand() *cobra.Command { RetryPeriod: env.LookupEnvDurationOr("LEADER_ELECTION_RETRY_PERIOD", 5*time.Second), Callbacks: leaderelection.LeaderCallbacks{ OnStartedLeading: func(ctx context.Context) { + dummyCancel() go wfController.Run(ctx, workflowWorkers, workflowTTLWorkers, podCleanupWorkers) + go wfController.RunMetricsServer(ctx, false) }, OnStoppedLeading: func() { log.WithField("id", nodeID).Info("stopped leading") cancel() + go wfController.RunMetricsServer(dummyCtx, true) }, OnNewLeader: func(identity string) { log.WithField("leader", identity).Info("new leader") diff --git a/config/config.go b/config/config.go index 5cba294100c1..8711761eb4f3 100644 --- a/config/config.go +++ b/config/config.go @@ -71,6 +71,9 @@ type Config struct { // Links to related apps. Links []*wfv1.Link `json:"links,omitempty"` + // Columns are custom columns that will be exposed in the Workflow List View. + Columns []*wfv1.Column `json:"columns,omitempty"` + // WorkflowDefaults are values that will apply to all Workflows from this controller, unless overridden on the Workflow-level WorkflowDefaults *wfv1.Workflow `json:"workflowDefaults,omitempty"` @@ -94,7 +97,7 @@ type Config struct { InitialDelay metav1.Duration `json:"initialDelay,omitempty"` // The command/args for each image, needed when the command is not specified and the emissary executor is used. - // https://argoproj.github.io/argo-workflows/workflow-executors/#emissary-emissary + // https://argo-workflows.readthedocs.io/en/release-3.4/workflow-executors/#emissary-emissary Images map[string]Image `json:"images,omitempty"` RetentionPolicy *RetentionPolicy `json:"retentionPolicy,omitempty"` diff --git a/config/sso.go b/config/sso.go index 4c1a18254e2f..6e288d2d3cf2 100644 --- a/config/sso.go +++ b/config/sso.go @@ -18,9 +18,10 @@ type SSOConfig struct { Scopes []string `json:"scopes,omitempty"` SessionExpiry metav1.Duration `json:"sessionExpiry,omitempty"` // customGroupClaimName will override the groups claim name - CustomGroupClaimName string `json:"customGroupClaimName,omitempty"` - UserInfoPath string `json:"userInfoPath,omitempty"` - InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"` + CustomGroupClaimName string `json:"customGroupClaimName,omitempty"` + UserInfoPath string `json:"userInfoPath,omitempty"` + InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"` + FilterGroupsRegex []string `json:"filterGroupsRegex,omitempty"` } func (c SSOConfig) GetSessionExpiry() time.Duration { diff --git a/docs/argo-server-auth-mode.md b/docs/argo-server-auth-mode.md index e748f53adc3f..d5feb03d36c4 100644 --- a/docs/argo-server-auth-mode.md +++ b/docs/argo-server-auth-mode.md @@ -11,5 +11,5 @@ The server used to start with auth mode of "server" by default, but since v3.0 i To change the server auth mode specify the list as multiple auth-mode flags: ```bash -argo server --auth-mode sso --auth-mode ... +argo server --auth-mode=sso --auth-mode=... ``` diff --git a/docs/argo-server-sso-argocd.md b/docs/argo-server-sso-argocd.md index f7dc998606d3..78f3d89c170d 100644 --- a/docs/argo-server-sso-argocd.md +++ b/docs/argo-server-sso-argocd.md @@ -85,7 +85,7 @@ metadata: data: # SSO Configuration for the Argo server. # You must also start argo server with `--auth-mode sso`. - # https://argoproj.github.io/argo-workflows/argo-server-auth-mode/ + # https://argo-workflows.readthedocs.io/en/release-3.4/argo-server-auth-mode/ sso: | # This is the root URL of the OIDC provider (required). issuer: https://argo-cd.mydomain.com/api/dex diff --git a/docs/cli/argo.md b/docs/cli/argo.md index 890da67d4f44..9723e6af8d33 100644 --- a/docs/cli/argo.md +++ b/docs/cli/argo.md @@ -117,12 +117,12 @@ argo [flags] * [argo logs](argo_logs.md) - view logs of a pod or workflow * [argo node](argo_node.md) - perform action on a node in a workflow * [argo resubmit](argo_resubmit.md) - resubmit one or more workflows -* [argo resume](argo_resume.md) - resume zero or more workflows +* [argo resume](argo_resume.md) - resume zero or more workflows (opposite of suspend) * [argo retry](argo_retry.md) - retry zero or more workflows * [argo server](argo_server.md) - start the Argo Server * [argo stop](argo_stop.md) - stop zero or more workflows allowing all exit handlers to run * [argo submit](argo_submit.md) - submit a workflow -* [argo suspend](argo_suspend.md) - suspend zero or more workflow +* [argo suspend](argo_suspend.md) - suspend zero or more workflows (opposite of resume) * [argo template](argo_template.md) - manipulate workflow templates * [argo terminate](argo_terminate.md) - terminate zero or more workflows immediately * [argo version](argo_version.md) - print version information diff --git a/docs/cli/argo_lint.md b/docs/cli/argo_lint.md index 3bab859412c3..426d8b928710 100644 --- a/docs/cli/argo_lint.md +++ b/docs/cli/argo_lint.md @@ -24,7 +24,7 @@ argo lint FILE... [flags] ``` -h, --help help for lint --kinds strings Which kinds will be linted. Can be: workflows|workflowtemplates|cronworkflows|clusterworkflowtemplates (default [all]) - --offline perform offline linting + --offline perform offline linting. For resources referencing other resources, the references will be resolved from the provided args -o, --output string Linting results output format. One of: pretty|simple (default "pretty") --strict Perform strict workflow validation (default true) ``` diff --git a/docs/cli/argo_resubmit.md b/docs/cli/argo_resubmit.md index 0d32b3e27e35..0aa383f8be8e 100644 --- a/docs/cli/argo_resubmit.md +++ b/docs/cli/argo_resubmit.md @@ -2,6 +2,10 @@ resubmit one or more workflows +### Synopsis + +Submit a completed workflow again. Optionally override parameters and memoize. Similar to running `argo submit` again with the same parameters. + ``` argo resubmit [WORKFLOW...] [flags] ``` diff --git a/docs/cli/argo_resume.md b/docs/cli/argo_resume.md index 70c400ccad09..53f3a9c034f6 100644 --- a/docs/cli/argo_resume.md +++ b/docs/cli/argo_resume.md @@ -1,6 +1,6 @@ ## argo resume -resume zero or more workflows +resume zero or more workflows (opposite of suspend) ``` argo resume WORKFLOW1 WORKFLOW2... [flags] @@ -9,7 +9,7 @@ argo resume WORKFLOW1 WORKFLOW2... [flags] ### Examples ``` -# Resume a workflow that has been stopped or suspended: +# Resume a workflow that has been suspended: argo resume my-wf diff --git a/docs/cli/argo_retry.md b/docs/cli/argo_retry.md index dd8670100255..a763482f5f66 100644 --- a/docs/cli/argo_retry.md +++ b/docs/cli/argo_retry.md @@ -2,6 +2,10 @@ retry zero or more workflows +### Synopsis + +Rerun a failed Workflow. Specifically, rerun all failed steps. The same Workflow object is used and no new Workflows are created. + ``` argo retry [WORKFLOW...] [flags] ``` @@ -13,7 +17,7 @@ argo retry [WORKFLOW...] [flags] argo retry my-wf -# Retry multiple workflows: +# Retry multiple workflows: argo retry my-wf my-other-wf my-third-wf diff --git a/docs/cli/argo_server.md b/docs/cli/argo_server.md index 77ef709c1fe1..aa6d0b4e93f3 100644 --- a/docs/cli/argo_server.md +++ b/docs/cli/argo_server.md @@ -10,7 +10,7 @@ argo server [flags] ``` -See https://argoproj.github.io/argo-workflows/argo-server/ +See https://argo-workflows.readthedocs.io/en/release-3.4/argo-server/ ``` ### Options diff --git a/docs/cli/argo_stop.md b/docs/cli/argo_stop.md index c39c73b9d33a..8475e44af78a 100644 --- a/docs/cli/argo_stop.md +++ b/docs/cli/argo_stop.md @@ -2,6 +2,10 @@ stop zero or more workflows allowing all exit handlers to run +### Synopsis + +Stop a workflow but still run exit handlers. + ``` argo stop WORKFLOW WORKFLOW2... [flags] ``` diff --git a/docs/cli/argo_suspend.md b/docs/cli/argo_suspend.md index daa8119ff96b..bb06db3a0f54 100644 --- a/docs/cli/argo_suspend.md +++ b/docs/cli/argo_suspend.md @@ -1,6 +1,6 @@ ## argo suspend -suspend zero or more workflow +suspend zero or more workflows (opposite of resume) ``` argo suspend WORKFLOW1 WORKFLOW2... [flags] diff --git a/docs/cli/argo_terminate.md b/docs/cli/argo_terminate.md index 463c84c38b02..9f3530709571 100644 --- a/docs/cli/argo_terminate.md +++ b/docs/cli/argo_terminate.md @@ -2,6 +2,10 @@ terminate zero or more workflows immediately +### Synopsis + +Immediately stop a workflow and do not run any exit handlers. + ``` argo terminate WORKFLOW WORKFLOW2... [flags] ``` diff --git a/docs/configure-artifact-repository.md b/docs/configure-artifact-repository.md index 361cd8dfef25..a90476c68573 100644 --- a/docs/configure-artifact-repository.md +++ b/docs/configure-artifact-repository.md @@ -73,7 +73,8 @@ $ cat > policy.json < access-key.json ``` -If you have Artifact Garbage Collection configured, you should also add "s3:DeleteObject" to the list of Actions above. +If you do not have Artifact Garbage Collection configured, you should remove `s3:DeleteObject` from the list of Actions above. NOTE: if you want argo to figure out which region your buckets belong in, you must additionally set the following statement policy. Otherwise, you must @@ -110,6 +111,20 @@ specify a bucket region in your workflow configuration. ... ``` +### AWS S3 IRSA + +If you wish to use S3 IRSA instead of passing in an `accessKey` and `secretKey`, you need to annotate the service account of both the running workflow (in order to save logs/artifacts) and the argo-server pod (in order to retrieve the logs/artifacts). + +```yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + annotations: + eks.amazonaws.com/role-arn: arn:aws:iam::012345678901:role/mybucket + name: myserviceaccount + namespace: mynamespace +``` + ## Configuring GCS (Google Cloud Storage) Create a bucket from the GCP Console @@ -398,7 +413,7 @@ data: artifactRepository: | gcs: bucket: my-bucket - keyFormat: prefix/in/bucket #optional, it could reference workflow variables, such as "{{workflow.name}}/{{pod.name}}" + keyFormat: prefix/in/bucket/{{workflow.name}}/{{pod.name}} #it should reference workflow variables, such as "{{workflow.name}}/{{pod.name}}" serviceAccountKeySecret: name: my-gcs-credentials key: serviceAccountKey diff --git a/docs/environment-variables.md b/docs/environment-variables.md index d68a639525ed..c8b782a5d33f 100644 --- a/docs/environment-variables.md +++ b/docs/environment-variables.md @@ -33,7 +33,6 @@ most users. Environment variables may be removed at any time. | `GZIP_IMPLEMENTATION` | `string` | `PGZip` | The implementation of compression/decompression. Currently only "`PGZip`" and "`GZip`" are supported. | | `INFORMER_WRITE_BACK` | `bool` | `true` | Whether to write back to informer instead of catching up. | | `HEALTHZ_AGE` | `time.Duration` | `5m` | How old a un-reconciled workflow is to report unhealthy. | -| `HEALTHZ_LIST_LIMIT` | `int` | `200` | The maximum number of responses to return for a list call on workflows for liveness check. | | `INDEX_WORKFLOW_SEMAPHORE_KEYS` | `bool` | `true` | Whether or not to index semaphores. | | `LEADER_ELECTION_IDENTITY` | `string` | Controller's `metadata.name` | The ID used for workflow controllers to elect a leader. | | `LEADER_ELECTION_DISABLE` | `bool` | `false` | Whether leader election should be disabled. | diff --git a/docs/fields.md b/docs/fields.md index 6ccaf8aa9055..7ff705a74ac1 100644 --- a/docs/fields.md +++ b/docs/fields.md @@ -4,9 +4,8 @@ Workflow is the definition of a workflow resource -
+
Examples (click to open) -
- [`archive-location.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/archive-location.yaml) @@ -370,9 +369,8 @@ Workflow is the definition of a workflow resource CronWorkflow is the definition of a scheduled workflow resource -
+
Examples (click to open) -
- [`cron-backfill.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cron-backfill.yaml) @@ -394,9 +392,8 @@ CronWorkflow is the definition of a scheduled workflow resource WorkflowTemplate is the definition of a workflow template resource -
+
Examples (click to open) -
- [`artifacts-workflowtemplate.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifacts-workflowtemplate.yaml) @@ -425,9 +422,8 @@ WorkflowTemplate is the definition of a workflow template resource WorkflowSpec is the specification of a Workflow. -
+
Examples with this field (click to open) -
- [`archive-location.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/archive-location.yaml) @@ -846,7 +842,7 @@ WorkflowStatus contains overall status information about a workflow |`offloadNodeStatusVersion`|`string`|Whether on not node status has been offloaded to a database. If exists, then Nodes and CompressedNodes will be empty. This will actually be populated with a hash of the offloaded data.| |`outputs`|[`Outputs`](#outputs)|Outputs captures output values and artifact locations produced by the workflow via global outputs| |`persistentVolumeClaims`|`Array<`[`Volume`](#volume)`>`|PersistentVolumeClaims tracks all PVCs that were created as part of the io.argoproj.workflow.v1alpha1. The contents of this list are drained at the end of the workflow.| -|`phase`|`string`|Phase a simple, high-level summary of where the workflow is in its lifecycle.| +|`phase`|`string`|Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be "" (Unknown), "Pending", or "Running" before the workflow is completed, and "Succeeded", "Failed" or "Error" once the workflow has completed.| |`progress`|`string`|Progress to completion| |`resourcesDuration`|`Map< integer , int64 >`|ResourcesDuration is the total for the workflow| |`startedAt`|[`Time`](#time)|Time at which this workflow started| @@ -858,9 +854,8 @@ WorkflowStatus contains overall status information about a workflow CronWorkflowSpec is the specification of a CronWorkflow -
+
Examples with this field (click to open) -
- [`archive-location.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/archive-location.yaml) @@ -1243,9 +1238,8 @@ CronWorkflowStatus is the status of a CronWorkflow Arguments to a template -
+
Examples with this field (click to open) -
- [`arguments-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-artifacts.yaml) @@ -1436,9 +1430,8 @@ Arguments to a template ArtifactGC describes how to delete artifacts from completed Workflows -
+
Examples with this field (click to open) -
- [`artifact-gc-workflow.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-gc-workflow.yaml)
@@ -1454,9 +1447,8 @@ ArtifactGC describes how to delete artifacts from completed Workflows _No description available_ -
+
Examples with this field (click to open) -
- [`artifact-repository-ref.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-repository-ref.yaml)
@@ -1480,9 +1472,8 @@ ExecutorConfig holds configurations of an executor container. _No description available_ -
+
Examples with this field (click to open) -
- [`exit-handler-with-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/exit-handler-with-artifacts.yaml) @@ -1505,9 +1496,8 @@ _No description available_ Metrics are a list of metrics emitted from a Workflow/Template -
+
Examples with this field (click to open) -
- [`custom-metrics.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/custom-metrics.yaml) @@ -1523,9 +1513,8 @@ Metrics are a list of metrics emitted from a Workflow/Template PodGC describes how to delete completed pods as they complete -
+
Examples with this field (click to open) -
- [`pod-gc-strategy-with-label-selector.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/pod-gc-strategy-with-label-selector.yaml) @@ -1542,9 +1531,8 @@ PodGC describes how to delete completed pods as they complete Pod metdata -
+
Examples with this field (click to open) -
- [`pod-metadata-wf-field.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/pod-metadata-wf-field.yaml)
@@ -1559,9 +1547,8 @@ Pod metdata RetryStrategy provides controls on how to retry a workflow step -
+
Examples with this field (click to open) -
- [`clustertemplates.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cluster-workflow-template/clustertemplates.yaml) @@ -1599,9 +1586,8 @@ RetryStrategy provides controls on how to retry a workflow step Synchronization holds synchronization lock configuration -
+
Examples with this field (click to open) -
- [`synchronization-mutex-tmpl-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/synchronization-mutex-tmpl-level.yaml) @@ -1618,9 +1604,8 @@ Synchronization holds synchronization lock configuration Template is a reusable and composable unit of execution in a workflow -
+
Examples with this field (click to open) -
- [`template-defaults.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/template-defaults.yaml)
@@ -1672,9 +1657,8 @@ Template is a reusable and composable unit of execution in a workflow TTLStrategy is the strategy for the time to live depending on if the workflow succeeded or failed -
+
Examples with this field (click to open) -
- [`gc-ttl.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/gc-ttl.yaml)
@@ -1699,9 +1683,8 @@ VolumeClaimGC describes how to delete volumes from completed Workflows _No description available_ -
+
Examples with this field (click to open) -
- [`label-value-from-workflow.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/label-value-from-workflow.yaml)
@@ -1717,9 +1700,8 @@ _No description available_ WorkflowTemplateRef is a reference to a WorkflowTemplate resource. -
+
Examples with this field (click to open) -
- [`workflow-template-ref-with-entrypoint-arg-passing.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cluster-workflow-template/workflow-template-ref-with-entrypoint-arg-passing.yaml) @@ -1757,9 +1739,8 @@ ArtGCStatus maintains state related to ArtifactGC _No description available_ -
+
Examples with this field (click to open) -
- [`artifact-repository-ref.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-repository-ref.yaml)
@@ -1805,7 +1786,7 @@ NodeStatus contains status information about an individual node in the workflow |`name`|`string`|Name is unique name in the node tree used to generate the node ID| |`outboundNodes`|`Array< string >`|OutboundNodes tracks the node IDs which are considered "outbound" nodes to a template invocation. For every invocation of a template, there are nodes which we considered as "outbound". Essentially, these are last nodes in the execution sequence to run, before the template is considered completed. These nodes are then connected as parents to a following step.In the case of single pod steps (i.e. container, script, resource templates), this list will be nil since the pod itself is already considered the "outbound" node. In the case of DAGs, outbound nodes are the "target" tasks (tasks with no children). In the case of steps, outbound nodes are all the containers involved in the last step group. NOTE: since templates are composable, the list of outbound nodes are carried upwards when a DAG/steps template invokes another DAG/steps template. In other words, the outbound nodes of a template, will be a superset of the outbound nodes of its last children.| |`outputs`|[`Outputs`](#outputs)|Outputs captures output parameter values and artifact locations produced by this template invocation| -|`phase`|`string`|Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine.| +|`phase`|`string`|Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values "Pending", "Running" before the node is completed, or "Succeeded", "Skipped", "Failed", "Error", or "Omitted" as a final state.| |`podIP`|`string`|PodIP captures the IP of the pod for daemoned steps| |`progress`|`string`|Progress to completion| |`resourcesDuration`|`Map< integer , int64 >`|ResourcesDuration is indicative, but not accurate, resource duration. This is populated when the nodes completes.| @@ -1820,9 +1801,8 @@ NodeStatus contains status information about an individual node in the workflow Outputs hold parameters, artifacts, and results from a step -
+
Examples with this field (click to open) -
- [`artifact-disable-archive.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-disable-archive.yaml) @@ -1917,9 +1897,8 @@ Outputs hold parameters, artifacts, and results from a step SynchronizationStatus stores the status of semaphore and mutex. -
+
Examples with this field (click to open) -
- [`synchronization-mutex-tmpl-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/synchronization-mutex-tmpl-level.yaml) @@ -1936,9 +1915,8 @@ SynchronizationStatus stores the status of semaphore and mutex. Artifact indicates an artifact to place at a specified path -
+
Examples with this field (click to open) -
- [`arguments-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-artifacts.yaml) @@ -2045,9 +2023,8 @@ Artifact indicates an artifact to place at a specified path Parameter indicate a passed string parameter to a service template with an optional default value -
+
Examples with this field (click to open) -
- [`arguments-parameters-from-configmap.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-parameters-from-configmap.yaml) @@ -2239,9 +2216,8 @@ Parameter indicate a passed string parameter to a service template with an optio TemplateRef is a reference of template resource. -
+
Examples with this field (click to open) -
- [`cluster-wftmpl-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cluster-workflow-template/cluster-wftmpl-dag.yaml) @@ -2273,9 +2249,8 @@ TemplateRef is a reference of template resource. Prometheus is a prometheus metric to be emitted -
+
Examples with this field (click to open) -
- [`custom-metrics.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/custom-metrics.yaml) @@ -2306,9 +2281,8 @@ RetryAffinity prevents running steps on the same host. Backoff is a backoff strategy to use within retryStrategy -
+
Examples with this field (click to open) -
- [`retry-backoff.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/retry-backoff.yaml)
@@ -2324,9 +2298,8 @@ Backoff is a backoff strategy to use within retryStrategy Mutex holds Mutex configuration -
+
Examples with this field (click to open) -
- [`synchronization-mutex-tmpl-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/synchronization-mutex-tmpl-level.yaml) @@ -2351,9 +2324,8 @@ SemaphoreRef is a reference of Semaphore ArtifactLocation describes a location for a single or multiple artifacts. It is used as single artifact in the context of inputs/outputs (e.g. outputs.artifacts.artname). It is also used to describe the location of multiple artifacts such as the archive location of a single workflow step, which the executor will use as a default location to store its files. -
+
Examples with this field (click to open) -
- [`archive-location.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/archive-location.yaml)
@@ -2376,9 +2348,8 @@ ArtifactLocation describes a location for a single or multiple artifacts. It is _No description available_ -
+
Examples with this field (click to open) -
- [`artifacts-workflowtemplate.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifacts-workflowtemplate.yaml) @@ -2404,9 +2375,8 @@ _No description available_ DAGTemplate is a template subtype for directed acyclic graph templates -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) @@ -2486,9 +2456,8 @@ DAGTemplate is a template subtype for directed acyclic graph templates Data is a data template -
+
Examples with this field (click to open) -
- [`artifact-path-placeholders.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-path-placeholders.yaml) @@ -2507,9 +2476,8 @@ Data is a data template _No description available_ -
+
Examples with this field (click to open) -
- [`arguments-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-artifacts.yaml) @@ -2560,9 +2528,8 @@ _No description available_ UserContainer is a container specified by a user. -
+
Examples with this field (click to open) -
- [`init-container.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/init-container.yaml)
@@ -2598,9 +2565,8 @@ UserContainer is a container specified by a user. Inputs are the mechanism for passing parameters, artifacts, volumes from one template to another -
+
Examples with this field (click to open) -
- [`arguments-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-artifacts.yaml) @@ -2785,9 +2751,8 @@ Inputs are the mechanism for passing parameters, artifacts, volumes from one tem Memoization enables caching for the Outputs of the template -
+
Examples with this field (click to open) -
- [`fibonacci-seq-conditional-param.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/fibonacci-seq-conditional-param.yaml)
@@ -2807,9 +2772,8 @@ Plugin is an Object with exactly one key ResourceTemplate is a template subtype to manipulate kubernetes resources -
+
Examples with this field (click to open) -
- [`cron-backfill.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cron-backfill.yaml) @@ -2840,9 +2804,8 @@ ResourceTemplate is a template subtype to manipulate kubernetes resources ScriptTemplate is a template subtype to enable scripting through code steps -
+
Examples with this field (click to open) -
- [`coinflip-recursive.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/coinflip-recursive.yaml) @@ -2932,9 +2895,8 @@ ScriptTemplate is a template subtype to enable scripting through code steps WorkflowStep is a reference to a template to execute in a series of step -
+
Examples with this field (click to open) -
- [`artifact-disable-archive.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-disable-archive.yaml) @@ -3123,9 +3085,8 @@ WorkflowStep is a reference to a template to execute in a series of step SuspendTemplate is a template subtype to suspend a workflow at a predetermined point in time -
+
Examples with this field (click to open) -
- [`cron-workflow.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cron-workflow.yaml) @@ -3143,9 +3104,8 @@ SuspendTemplate is a template subtype to suspend a workflow at a predetermined p _No description available_ -
+
Examples with this field (click to open) -
- [`label-value-from-workflow.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/label-value-from-workflow.yaml)
@@ -3194,9 +3154,8 @@ NodeSynchronizationStatus stores the status of a node MutexStatus contains which objects hold mutex locks, and which objects this workflow is waiting on to release locks. -
+
Examples with this field (click to open) -
- [`synchronization-mutex-tmpl-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/synchronization-mutex-tmpl-level.yaml) @@ -3223,9 +3182,8 @@ _No description available_ ArchiveStrategy describes how to archive files/directory when saving artifacts -
+
Examples with this field (click to open) -
- [`artifact-disable-archive.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-disable-archive.yaml) @@ -3251,9 +3209,8 @@ ArchiveStrategy describes how to archive files/directory when saving artifacts ArtifactoryArtifact is the location of an artifactory artifact -
+
Examples with this field (click to open) -
- [`artifactory-artifact.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifactory-artifact.yaml)
@@ -3269,9 +3226,8 @@ ArtifactoryArtifact is the location of an artifactory artifact AzureArtifact is the location of a an Azure Storage artifact -
+
Examples with this field (click to open) -
- [`input-artifact-azure.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/input-artifact-azure.yaml) @@ -3291,9 +3247,8 @@ AzureArtifact is the location of a an Azure Storage artifact GCSArtifact is the location of a GCS artifact -
+
Examples with this field (click to open) -
- [`input-artifact-gcs.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/input-artifact-gcs.yaml) @@ -3311,9 +3266,8 @@ GCSArtifact is the location of a GCS artifact GitArtifact is the location of an git artifact -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) @@ -3345,9 +3299,8 @@ GitArtifact is the location of an git artifact HDFSArtifact is the location of an HDFS artifact -
+
Examples with this field (click to open) -
- [`hdfs-artifact.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/hdfs-artifact.yaml)
@@ -3370,9 +3323,8 @@ HDFSArtifact is the location of an HDFS artifact HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container -
+
Examples with this field (click to open) -
- [`arguments-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-artifacts.yaml) @@ -3418,9 +3370,8 @@ HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a OSSArtifact is the location of an Alibaba Cloud OSS artifact -
+
Examples with this field (click to open) -
- [`input-artifact-oss.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/input-artifact-oss.yaml)
@@ -3441,9 +3392,8 @@ OSSArtifact is the location of an Alibaba Cloud OSS artifact RawArtifact allows raw string content to be placed as an artifact in a container -
+
Examples with this field (click to open) -
- [`artifact-path-placeholders.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-path-placeholders.yaml) @@ -3478,9 +3428,8 @@ S3Artifact is the location of an S3 artifact ValueFrom describes a location in which to obtain the value to a parameter -
+
Examples with this field (click to open) -
- [`arguments-parameters-from-configmap.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-parameters-from-configmap.yaml) @@ -3542,9 +3491,8 @@ ValueFrom describes a location in which to obtain the value to a parameter Counter is a Counter prometheus metric -
+
Examples with this field (click to open) -
- [`custom-metrics.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/custom-metrics.yaml) @@ -3560,9 +3508,8 @@ Counter is a Counter prometheus metric Gauge is a Gauge prometheus metric -
+
Examples with this field (click to open) -
- [`custom-metrics.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/custom-metrics.yaml) @@ -3579,9 +3526,8 @@ Gauge is a Gauge prometheus metric Histogram is a Histogram prometheus metric -
+
Examples with this field (click to open) -
- [`custom-metrics.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/custom-metrics.yaml)
@@ -3596,9 +3542,8 @@ Histogram is a Histogram prometheus metric MetricLabel is a single label for a prometheus metric -
+
Examples with this field (click to open) -
- [`arguments-parameters-from-configmap.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-parameters-from-configmap.yaml) @@ -3640,8 +3585,6 @@ MetricLabel is a single label for a prometheus metric - [`http-hello-world.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/http-hello-world.yaml) -- [`http-success-condition.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/http-success-condition.yaml) - - [`k8s-owner-reference.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/k8s-owner-reference.yaml) - [`k8s-patch.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/k8s-patch.yaml) @@ -3669,9 +3612,8 @@ RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAnti _No description available_ -
+
Examples with this field (click to open) -
- [`artifacts-workflowtemplate.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifacts-workflowtemplate.yaml) @@ -3721,9 +3663,8 @@ _No description available_ _No description available_ -
+
Examples with this field (click to open) -
- [`clustertemplates.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cluster-workflow-template/clustertemplates.yaml) @@ -3758,9 +3699,8 @@ _No description available_ DAGTask represents a node in the graph during DAG execution -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) @@ -3851,9 +3791,8 @@ DAGTask represents a node in the graph during DAG execution DataSource sources external data into a data template -
+
Examples with this field (click to open) -
- [`coinflip-recursive.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/coinflip-recursive.yaml) @@ -3923,9 +3862,8 @@ DataSource sources external data into a data template _No description available_ -
+
Examples with this field (click to open) -
- [`data-transformations.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/data-transformations.yaml)
@@ -3948,9 +3886,8 @@ HTTPBodySource contains the source of the HTTP body. _No description available_ -
+
Examples with this field (click to open) -
- [`webhdfs-input-output-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/webhdfs-input-output-artifacts.yaml)
@@ -3966,9 +3903,8 @@ _No description available_ Cache is the configuration for the type of cache to be used -
+
Examples with this field (click to open) -
- [`fibonacci-seq-conditional-param.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/fibonacci-seq-conditional-param.yaml)
@@ -3991,9 +3927,8 @@ _No description available_ ContinueOn defines if a workflow should continue even if a task or step fails/errors. It can be specified if the workflow should continue when the pod errors, fails or both. -
+
Examples with this field (click to open) -
- [`continue-on-fail.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/continue-on-fail.yaml) @@ -4016,9 +3951,8 @@ ContinueOn defines if a workflow should continue even if a task or step fails/er Item expands a single workflow step into multiple parallel steps The value of Item can be a map, string, bool, or number -
+
Examples with this field (click to open) -
- [`ci-output-artifact.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/ci-output-artifact.yaml) @@ -4051,9 +3985,8 @@ Item expands a single workflow step into multiple parallel steps The value of It Sequence expands a workflow step into numeric range -
+
Examples with this field (click to open) -
- [`cron-backfill.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cron-backfill.yaml) @@ -4076,9 +4009,8 @@ Sequence expands a workflow step into numeric range ArtifactoryArtifactRepository defines the controller configuration for an artifactory artifact repository -
+
Examples with this field (click to open) -
- [`artifactory-artifact.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifactory-artifact.yaml)
@@ -4094,9 +4026,8 @@ ArtifactoryArtifactRepository defines the controller configuration for an artifa AzureArtifactRepository defines the controller configuration for an Azure Blob Storage artifact repository -
+
Examples with this field (click to open) -
- [`input-artifact-azure.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/input-artifact-azure.yaml) @@ -4116,9 +4047,8 @@ AzureArtifactRepository defines the controller configuration for an Azure Blob S GCSArtifactRepository defines the controller configuration for a GCS artifact repository -
+
Examples with this field (click to open) -
- [`input-artifact-gcs.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/input-artifact-gcs.yaml) @@ -4136,9 +4066,8 @@ GCSArtifactRepository defines the controller configuration for a GCS artifact re HDFSArtifactRepository defines the controller configuration for an HDFS artifact repository -
+
Examples with this field (click to open) -
- [`hdfs-artifact.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/hdfs-artifact.yaml)
@@ -4161,9 +4090,8 @@ HDFSArtifactRepository defines the controller configuration for an HDFS artifact OSSArtifactRepository defines the controller configuration for an OSS artifact repository -
+
Examples with this field (click to open) -
- [`input-artifact-oss.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/input-artifact-oss.yaml)
@@ -4224,9 +4152,8 @@ _No description available_ NoneStrategy indicates to skip tar process and upload the files or directory tree as independent files. Note that if the artifact is a directory, the artifact driver must support the ability to save/load the directory appropriately. -
+
Examples with this field (click to open) -
- [`artifact-disable-archive.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-disable-archive.yaml) @@ -4245,9 +4172,8 @@ NoneStrategy indicates to skip tar process and upload the files or directory tre TarStrategy will tar and gzip the file or directory when saving -
+
Examples with this field (click to open) -
- [`artifact-disable-archive.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifact-disable-archive.yaml)
@@ -4265,9 +4191,8 @@ ZipStrategy will unzip zipped input artifacts _No description available_ -
+
Examples with this field (click to open) -
- [`webhdfs-input-output-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/webhdfs-input-output-artifacts.yaml)
@@ -4283,9 +4208,8 @@ _No description available_ Header indicate a key-value request header to be used when fetching artifacts over HTTP -
+
Examples with this field (click to open) -
- [`webhdfs-input-output-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/webhdfs-input-output-artifacts.yaml)
@@ -4331,9 +4255,8 @@ S3EncryptionOptions used to determine encryption options during s3 operations SuppliedValueFrom is a placeholder for a value to be filled in directly, either through the CLI, API, etc. -
+
Examples with this field (click to open) -
- [`suspend-template-outputs.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/suspend-template-outputs.yaml)
@@ -4342,9 +4265,8 @@ SuppliedValueFrom is a placeholder for a value to be filled in directly, either Amount represent a numeric amount. -
+
Examples with this field (click to open) -
- [`custom-metrics.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/custom-metrics.yaml)
@@ -4353,9 +4275,8 @@ Amount represent a numeric amount. ArtifactPaths expands a step from a collection of artifacts -
+
Examples with this field (click to open) -
- [`data-transformations.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/data-transformations.yaml)
@@ -4390,9 +4311,8 @@ ArtifactPaths expands a step from a collection of artifacts _No description available_ -
+
Examples with this field (click to open) -
- [`arguments-parameters-from-configmap.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-parameters-from-configmap.yaml) @@ -4456,9 +4376,8 @@ BasicAuth describes the secret selectors required for basic authentication ClientCertAuth holds necessary information for client authentication via certificates -
+
Examples with this field (click to open) -
- [`webhdfs-input-output-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/webhdfs-input-output-artifacts.yaml)
@@ -4486,9 +4405,8 @@ OAuth2Auth holds all information for client authentication via OAuth2 tokens EndpointParam is for requesting optional fields that should be sent in the oauth request -
+
Examples with this field (click to open) -
- [`webhdfs-input-output-artifacts.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/webhdfs-input-output-artifacts.yaml)
@@ -4506,9 +4424,8 @@ EndpointParam is for requesting optional fields that should be sent in the oauth ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. -
+
Examples with this field (click to open) -
- [`archive-location.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/archive-location.yaml) @@ -4898,9 +4815,8 @@ Affinity is a group of affinity scheduling rules. PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. -
+
Examples with this field (click to open) -
- [`dns-config.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/dns-config.yaml)
@@ -4926,9 +4842,8 @@ HostAlias holds the mapping between IP and hostnames that will be injected as an LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. -
+
Examples with this field (click to open) -
- [`image-pull-secrets.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/image-pull-secrets.yaml)
@@ -4942,9 +4857,8 @@ LocalObjectReference contains enough information to let you locate the reference PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. -
+
Examples with this field (click to open) -
- [`default-pdb-support.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/default-pdb-support.yaml)
@@ -4954,15 +4868,14 @@ PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. |:----------:|:----------:|---------------| |`maxUnavailable`|[`IntOrString`](#intorstring)|An eviction is allowed if at most "maxUnavailable" pods selected by "selector" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with "minAvailable".| |`minAvailable`|[`IntOrString`](#intorstring)|An eviction is allowed if at least "minAvailable" pods selected by "selector" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying "100%".| -|`selector`|[`LabelSelector`](#labelselector)|Label query over pods whose evictions are managed by the disruption budget. A null selector selects no pods. An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. In policy/v1, an empty selector will select all pods in the namespace.| +|`selector`|[`LabelSelector`](#labelselector)|Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.| ## PodSecurityContext PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext. -
+
Examples with this field (click to open) -
- [`sidecar-dind.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/sidecar-dind.yaml)
@@ -4998,9 +4911,8 @@ The pod this Toleration is attached to tolerates any taint that matches the trip PersistentVolumeClaim is a user's request for and claim to a persistent volume -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) @@ -5030,9 +4942,8 @@ PersistentVolumeClaim is a user's request for and claim to a persistent volume Volume represents a named volume in a pod that may be accessed by any container in the pod. -
+
Examples with this field (click to open) -
- [`artifacts-workflowtemplate.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifacts-workflowtemplate.yaml) @@ -5106,9 +5017,8 @@ ObjectReference contains enough information to let you inspect or modify the ref A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. -
+
Examples with this field (click to open) -
- [`pod-gc-strategy-with-label-selector.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/pod-gc-strategy-with-label-selector.yaml)
@@ -5123,9 +5033,8 @@ A label selector is a label query over a set of resources. The result of matchLa _No description available_ -
+
Examples with this field (click to open) -
- [`clustertemplates.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/cluster-workflow-template/clustertemplates.yaml) @@ -5152,9 +5061,8 @@ _No description available_ A single application container that you want to run within a pod. -
+
Examples with this field (click to open) -
- [`archive-location.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/archive-location.yaml) @@ -5467,9 +5375,8 @@ A single application container that you want to run within a pod. Selects a key from a ConfigMap. -
+
Examples with this field (click to open) -
- [`arguments-parameters-from-configmap.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-parameters-from-configmap.yaml) @@ -5489,9 +5396,8 @@ Selects a key from a ConfigMap. VolumeMount describes a mounting of a Volume within a container. -
+
Examples with this field (click to open) -
- [`artifacts-workflowtemplate.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifacts-workflowtemplate.yaml) @@ -5534,9 +5440,8 @@ VolumeMount describes a mounting of a Volume within a container. EnvVar represents an environment variable present in a Container. -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) @@ -5614,9 +5519,8 @@ ContainerPort represents a network port in a single container. ResourceRequirements describes the compute resource requirements. -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) @@ -5651,9 +5555,8 @@ ResourceRequirements describes the compute resource requirements. SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. -
+
Examples with this field (click to open) -
- [`sidecar-dind.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/sidecar-dind.yaml)
@@ -5687,9 +5590,8 @@ volumeDevice describes a mapping of a raw block device within a container. SecretKeySelector selects a key of a Secret. -
+
Examples with this field (click to open) -
- [`artifactory-artifact.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifactory-artifact.yaml) @@ -5766,9 +5668,8 @@ Pod anti affinity is a group of inter pod anti affinity scheduling rules. PodDNSConfigOption defines DNS resolver options of a pod. -
+
Examples with this field (click to open) -
- [`dns-config.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/dns-config.yaml)
@@ -5827,9 +5728,8 @@ WindowsSecurityContextOptions contain Windows-specific options and credentials. PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes -
+
Examples with this field (click to open) -
- [`archive-location.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/archive-location.yaml) @@ -6277,9 +6177,8 @@ Represents a cinder volume resource in Openstack. A Cinder volume must exist bef Adapts a ConfigMap into a volume.The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling. -
+
Examples with this field (click to open) -
- [`fibonacci-seq-conditional-param.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/fibonacci-seq-conditional-param.yaml)
@@ -6319,9 +6218,8 @@ DownwardAPIVolumeSource represents a volume containing downward API info. Downwa Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling. -
+
Examples with this field (click to open) -
- [`artifacts-workflowtemplate.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/artifacts-workflowtemplate.yaml) @@ -6461,9 +6359,8 @@ Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not sup PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system). -
+
Examples with this field (click to open) -
- [`volumes-existing.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/volumes-existing.yaml)
@@ -6557,9 +6454,8 @@ ScaleIOVolumeSource represents a persistent ScaleIO volume Adapts a Secret into a volume.The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling. -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) @@ -6614,9 +6510,8 @@ A label selector requirement is a selector that contains values, a key, and an o EnvVarSource represents a source for the value of an EnvVar. -
+
Examples with this field (click to open) -
- [`arguments-parameters-from-configmap.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/arguments-parameters-from-configmap.yaml) @@ -6723,9 +6618,8 @@ _No description available_ HTTPGetAction describes an action based on HTTP Get requests. -
+
Examples with this field (click to open) -
- [`daemon-nginx.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/daemon-nginx.yaml) @@ -6759,9 +6653,8 @@ TCPSocketAction describes an action based on opening a socket Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.The serialization format is: ::= (Note that may be empty, from the "" case in .) ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= "+" | "-" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html) ::= m | "" | k | M | G | T | P | E (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.) ::= "e" | "E" No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that: a. No precision is lost b. No fractional digits will be emitted c. The exponent (or suffix) is as large as possible.The sign will be omitted unless the number is negative.Examples: 1.5 will be serialized as "1500m" 1.5Gi will be serialized as "1536Mi"Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation. -
+
Examples with this field (click to open) -
- [`dns-config.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/dns-config.yaml) @@ -6940,9 +6833,8 @@ A null or empty node selector term matches no objects. The requirements of them Adapts a ConfigMap into a projected volume.The contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode. -
+
Examples with this field (click to open) -
- [`fibonacci-seq-conditional-param.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/fibonacci-seq-conditional-param.yaml)
@@ -6967,9 +6859,8 @@ Represents downward API info for projecting into a projected volume. Note that t Adapts a secret into a projected volume.The contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode. -
+
Examples with this field (click to open) -
- [`buildkit-template.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/buildkit-template.yaml) diff --git a/docs/lifecyclehook.md b/docs/lifecyclehook.md index 2da5f0f93111..de27ed23ec86 100644 --- a/docs/lifecyclehook.md +++ b/docs/lifecyclehook.md @@ -4,7 +4,7 @@ ## Introduction -A [`LifecycleHook`](https://argoproj.github.io/argo-workflows/fields/#lifecyclehook) triggers an action based on a conditional expression. It is configured either at the workflow-level or template-level, for instance as a function of the `workflow.status` or `steps.status`, respectively. A `LifecycleHook` executes during execution time and executes once. +A [`LifecycleHook`](https://argo-workflows.readthedocs.io/en/release-3.4/fields/#lifecyclehook) triggers an action based on a conditional expression. It is configured either at the workflow-level or template-level, for instance as a function of the `workflow.status` or `steps.status`, respectively. A `LifecycleHook` executes during execution time and executes once. In other words, a `LifecycleHook` functions like an [exit handler](https://github.com/argoproj/argo-workflows/blob/master/examples/exit-handlers.yaml) with a conditional expression. @@ -19,13 +19,13 @@ In other words, a `LifecycleHook` functions like an [exit handler](https://githu ## Supported conditions - [Exit handler variables](https://github.com/argoproj/argo-workflows/blob/ebd3677c7a9c973b22fa81ef3b409404a38ec331/docs/variables.md#exit-handler): `workflow.status` and `workflow.failures` -- [`template`](https://argoproj.github.io/argo-workflows/fields/#template) -- [`templateRef`](https://argoproj.github.io/argo-workflows/fields/#templateref) +- [`template`](https://argo-workflows.readthedocs.io/en/release-3.4/fields/#template) +- [`templateRef`](https://argo-workflows.readthedocs.io/en/release-3.4/fields/#templateref) - [`arguments`](https://github.com/argoproj/argo-workflows/blob/master/examples/conditionals.yaml) ## Unsupported conditions -- [`outputs`](https://argoproj.github.io/argo-workflows/fields/#outputs) are not usable since `LifecycleHook` executes during execution time and `outputs` are not produced until the step is completed. +- [`outputs`](https://argo-workflows.readthedocs.io/en/release-3.4/fields/#outputs) are not usable since `LifecycleHook` executes during execution time and `outputs` are not produced until the step is completed. ## Notification use case diff --git a/docs/links.md b/docs/links.md index 08b0574ce6fa..b6e906e073d1 100644 --- a/docs/links.md +++ b/docs/links.md @@ -6,6 +6,7 @@ You can configure Argo Server to show custom links: * A "Get Help" button in the bottom right of the window linking to you organization help pages or chat room. * Deep-links to your facilities (e.g. logging facility) in the UI for both the workflow and each workflow pod. +* Adds a button to the top of workflow view to navigate to customized views. Links can contain placeholder variables. Placeholder variables are indicated by the dollar sign and curly braces: `${variable}`. diff --git a/docs/memoization.md b/docs/memoization.md index 8945013433d1..596e023bd244 100644 --- a/docs/memoization.md +++ b/docs/memoization.md @@ -11,7 +11,8 @@ it stores the outputs of a template into a specified cache with a variable key. ## Cache Method Currently, caching can only be performed with config-maps. -This allows you to easily manipulate cache entries manually through `kubectl` and the Kubernetes API without having to go through Argo. +This allows you to easily manipulate cache entries manually through `kubectl` and the Kubernetes API without having to go through Argo. +All cache config-maps must have the label `workflows.argoproj.io/configmap-type: Cache` to be used as a cache. This prevents accidental access to other important config-maps in the system ## Using Memoization diff --git a/docs/metrics.md b/docs/metrics.md index 69c23d778a79..3a8de3f6eac2 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -290,3 +290,70 @@ To define a real-time metric simply add `realtime: true` to a gauge metric with realtime: true value: "{{duration}}" ``` + +## Metrics endpoint + +By default, metrics are emitted by the workflow-controller on port 9090 on the `/metrics` path. By port-forwarding to the pod you can view the metrics in your browser at `http://localhost:9090/metrics`: + +`kubectl -n argo port-forward deploy/workflow-controller 9090:9090` + +A metrics service is not installed as part of [the default installation](quick-start.md) so you will need to add one if you wish to use a Prometheus Service Monitor: + +```yaml +cat <. Due to the self-signed certificate, you will receive a TLS error which you will need to manually approve. +> Pay close attention to the URI. It uses `https` and not `http`. Navigating to `http://localhost:2746` result in server-side error that breaks the port-forwarding. + ## Install the Argo Workflows CLI Next, Download the latest Argo CLI from the same [releases page](https://github.com/argoproj/argo-workflows/releases/latest). diff --git a/docs/releases.md b/docs/releases.md index 30914725dfb7..078c3d273b1c 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -40,7 +40,7 @@ Otherwise, we typically release every two weeks: | Argo Workflows \ Kubernetes | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | |-----------------------|------|------|------|------|------|------|------|------|------| -| **3.4** | `x` | `x` | `x` | `?` | `✓` | `✓` | `✓` | `✓` | `?` | +| **3.4** | `x` | `x` | `x` | `?` | `✓` | `✓` | `✓` | `✓` | `✓` | | **3.3** | `?` | `?` | `?` | `?` | `✓` | `✓` | `✓` | `?` | `?` | | **3.2** | `?` | `?` | `✓` | `✓` | `✓` | `?` | `?` | `?` | `?` | | **3.1** | `✓` | `✓` | `✓` | `?` | `?` | `?` | `?` | `?` | `?` | diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 000000000000..4eab2e00983f --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1 @@ +mkdocs-material==8.2.6 diff --git a/docs/retries.md b/docs/retries.md index e0618a68d950..9d6aa1ff7a8e 100644 --- a/docs/retries.md +++ b/docs/retries.md @@ -29,7 +29,7 @@ Use `retryPolicy` to choose which failures to retry: - `Always`: Retry all failed steps - `OnFailure`: Retry steps whose main container is marked as failed in Kubernetes (this is the default) - `OnError`: Retry steps that encounter Argo controller errors, or whose init or wait containers fail -- `OnTransientError`: Retry steps that encounter errors [defined as transient](https://github.com/argoproj/argo-workflows/blob/master/util/errors/errors.go), or errors matching the `TRANSIENT_ERROR_PATTERN` [environment variable](https://argoproj.github.io/argo-workflows/environment-variables/). Available in version 3.0 and later. +- `OnTransientError`: Retry steps that encounter errors [defined as transient](https://github.com/argoproj/argo-workflows/blob/master/util/errors/errors.go), or errors matching the `TRANSIENT_ERROR_PATTERN` [environment variable](https://argo-workflows.readthedocs.io/en/release-3.4/environment-variables/). Available in version 3.0 and later. For example: diff --git a/docs/running-locally.md b/docs/running-locally.md index fc7a997d47d0..0233a92c2a44 100644 --- a/docs/running-locally.md +++ b/docs/running-locally.md @@ -38,12 +38,11 @@ Note: ## Requirements -* [Go 1.18](https://golang.org/dl/) +* [Go](https://golang.org/dl/) * [Yarn](https://classic.yarnpkg.com/en/docs/install/#mac-stable) * [Docker](https://docs.docker.com/get-docker/) * [`protoc`](http://google.github.io/proto-lens/installing-protoc.html) -* [`jq`](https://stedolan.github.io/jq/download/) -* [`node` >= 16.15.0](https://nodejs.org/download/release/latest-v16.x/) for running the UI +* [`node`](https://nodejs.org/download/release/latest-v16.x/) for running the UI * A local Kubernetes cluster ([`k3d`](https://k3d.io/), [`kind`](https://kind.sigs.k8s.io/docs/user/quick-start/#installation), or [`minikube`](https://minikube.sigs.k8s.io/docs/start/)) We recommend using [K3D](https://k3d.io/) to set up the local Kubernetes cluster since this will allow you to test RBAC diff --git a/docs/walk-through/argo-cli.md b/docs/walk-through/argo-cli.md index 196e5871b18e..42cf3d637e14 100644 --- a/docs/walk-through/argo-cli.md +++ b/docs/walk-through/argo-cli.md @@ -16,7 +16,7 @@ You can also run workflow specs directly using `kubectl` but the Argo CLI provid kubectl create -f hello-world.yaml kubectl get wf kubectl get wf hello-world-xxx -kubectl get po --selector=workflows.argoproj.io/workflow=hello-world-xxx --show-all # similar to argo +kubectl get po --selector=workflows.argoproj.io/workflow=hello-world-xxx kubectl logs hello-world-xxx-yyy -c main kubectl delete wf hello-world-xxx ``` diff --git a/docs/walk-through/artifacts.md b/docs/walk-through/artifacts.md index 52367aaeaa53..6b3be7084bfa 100644 --- a/docs/walk-through/artifacts.md +++ b/docs/walk-through/artifacts.md @@ -2,7 +2,7 @@ **Note:** You will need to configure an artifact repository to run this example. -[Configuring an artifact repository here](https://argoproj.github.io/argo-workflows/configure-artifact-repository/). +[Configuring an artifact repository here](https://argo-workflows.readthedocs.io/en/release-3.4/configure-artifact-repository/). When running workflows, it is very common to have steps that generate or consume artifacts. Often, the output artifacts of one step may be used as input artifacts to a subsequent step. @@ -114,7 +114,7 @@ Artifacts are packaged as Tarballs and gzipped by default. You may customize thi ## Artifact Garbage Collection -As of version 3.4 you can configure your Workflow to automatically delete Artifacts that you don't need (visit [artifact repository capability](https://argoproj.github.io/argo-workflows/configure-artifact-repository/) for the current supported store engine). +As of version 3.4 you can configure your Workflow to automatically delete Artifacts that you don't need (visit [artifact repository capability](https://argo-workflows.readthedocs.io/en/release-3.4/configure-artifact-repository/) for the current supported store engine). Artifacts can be deleted `OnWorkflowCompletion` or `OnWorkflowDeletion`. You can specify your Garbage Collection strategy on both the Workflow level and the Artifact level, so for example, you may have temporary artifacts that can be deleted right away but a final output that should be persisted: diff --git a/docs/walk-through/docker-in-docker-using-sidecars.md b/docs/walk-through/docker-in-docker-using-sidecars.md index 5ac9e41987fa..0c841f6ac2a7 100644 --- a/docs/walk-through/docker-in-docker-using-sidecars.md +++ b/docs/walk-through/docker-in-docker-using-sidecars.md @@ -1,5 +1,9 @@ # Docker-in-Docker Using Sidecars +Note: It is increasingly unlikely that the below example will work for you on your version of Kubernetes. [Since Kubernetes 1.24, the dockershim has been unavailable as part of Kubernetes](https://kubernetes.io/blog/2022/02/17/dockershim-faq/), rendering Docker-in-Docker unworkable. It is recommended to seek alternative methods of building containers, such as [Kaniko](https://github.com/GoogleContainerTools/kaniko) or [Buildkit](https://github.com/moby/buildkit). A [Buildkit Workflow example](https://raw.githubusercontent.com/argoproj/argo-workflows/master/examples/buildkit-template.yaml) is available in the examples directory of the Argo Workflows repository. + +--- + An application of sidecars is to implement Docker-in-Docker (DIND). DIND is useful when you want to run Docker commands from inside a container. For example, you may want to build and push a container image from inside your build container. In the following example, we use the `docker:dind` image to run a Docker daemon in a sidecar and give the main container access to the daemon. ```yaml diff --git a/docs/walk-through/loops.md b/docs/walk-through/loops.md index 6c04a702aead..0e7fa089362c 100644 --- a/docs/walk-through/loops.md +++ b/docs/walk-through/loops.md @@ -1,6 +1,17 @@ # Loops -When writing workflows, it is often very useful to be able to iterate over a set of inputs as shown in this example: +When writing workflows, it is often very useful to be able to iterate over a set of inputs, as this is how argo-workflows can perform loops. + +There are two basic ways of running a template multiple times. + +- `withItems` takes a list of things to work on. Either + - plain, single values, which are then usable in your template as '{{item}}' + - a JSON object where each element in the object can be addressed by it's key as '{{item.key}}' +- `withParam` takes a JSON array of items, and iterates over it - again the items can be objects like with `withItems`. This is very powerful, as you can generate the JSON in another step in your workflow, so creating a dynamic workflow. + +## `withItems` basic example + +This example is the simplest. We are taking a basic list of items and iterating over it with `withItems`. It is limited to one varying field for each of the workflow templates instantiated. ```yaml apiVersion: argoproj.io/v1alpha1 @@ -32,7 +43,9 @@ spec: args: ["{{inputs.parameters.message}}"] ``` -We can also iterate over sets of items: +## `withItems` more complex example + +If we'd like to pass more than one piece of information in each workflow, you can instead use a JSON object for each entry in `withItems` and then address the elements by key, as shown in this example. ```yaml apiVersion: argoproj.io/v1alpha1 @@ -42,7 +55,9 @@ metadata: spec: entrypoint: loop-map-example templates: - - name: loop-map-example + - name: loop-map-example parameter specifies the list to iterate over + + steps: - - name: test-linux template: cat-os-release @@ -69,7 +84,9 @@ spec: args: [/etc/os-release] ``` -We can pass lists of items as parameters: +## `withParam` example + +This example does exactly the same job as the previous example, but using `withParam` to pass the information as a JSON array argument, instead of hard-coding it into the template. ```yaml apiVersion: argoproj.io/v1alpha1 @@ -117,7 +134,9 @@ spec: args: [/etc/os-release] ``` -We can even dynamically generate the list of items to iterate over! +## `withParam` example from another step in the workflow + +Finally, the most powerful form of this is to generate that JSON array of objects dynamically in one step, and then pass it to the next step so that the number and values used in the second step are only calculated at runtime. ```yaml apiVersion: argoproj.io/v1alpha1 diff --git a/docs/workflow-controller-configmap.yaml b/docs/workflow-controller-configmap.yaml index c9567585cac3..e9e79a6d42b0 100644 --- a/docs/workflow-controller-configmap.yaml +++ b/docs/workflow-controller-configmap.yaml @@ -73,6 +73,10 @@ data: - name: Get help scope: chat url: http://my-chat + # Adds a button to the top of workflow view to navigate to customized views. + - name: Completed Workflows + scope: workflow-list + url: http://workflows?label=workflows.argoproj.io/completed=true # uncomment following lines if you want to change navigation bar background color # navColor: red @@ -183,7 +187,7 @@ data: kubeletInsecure: false # The command/args for each image, needed when the command is not specified and the emissary executor is used. - # https://argoproj.github.io/argo-workflows/workflow-executors/#emissary-emissary + # https://argo-workflows.readthedocs.io/en/release-3.4/workflow-executors/#emissary-emissary images: | argoproj/argosay:v2: cmd: [/argosay] @@ -330,7 +334,7 @@ data: # SSO Configuration for the Argo server. # You must also start argo server with `--auth-mode sso`. - # https://argoproj.github.io/argo-workflows/argo-server-auth-mode/ + # https://argo-workflows.readthedocs.io/en/release-3.4/argo-server-auth-mode/ sso: | # This is the root URL of the OIDC provider (required). issuer: https://issuer.root.url/ diff --git a/examples/README.md b/examples/README.md index 8cb416a8781b..445766043a52 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,3 +1,3 @@ # Documentation by Example -This has been moved to [the docs](https://argoproj.github.io/argo-workflows/walk-through/). \ No newline at end of file +This has been moved to [the docs](https://argo-workflows.readthedocs.io/en/release-3.4/walk-through/). \ No newline at end of file diff --git a/examples/cluster-workflow-template/clustertemplates.yaml b/examples/cluster-workflow-template/clustertemplates.yaml index a2c4db448f0d..a3a13f75381c 100644 --- a/examples/cluster-workflow-template/clustertemplates.yaml +++ b/examples/cluster-workflow-template/clustertemplates.yaml @@ -135,7 +135,7 @@ kind: ClusterWorkflowTemplate metadata: name: cluster-workflow-template-submittable spec: - entryPoint: whalesay-template + entrypoint: whalesay-template arguments: parameters: - name: message diff --git a/examples/conditional-artifacts.yaml b/examples/conditional-artifacts.yaml index ddc8e8cac0fa..93ad9107f14d 100644 --- a/examples/conditional-artifacts.yaml +++ b/examples/conditional-artifacts.yaml @@ -6,7 +6,7 @@ metadata: workflows.argoproj.io/test: "true" annotations: workflows.argoproj.io/description: | - Conditional aartifacts provide a way to choose the output artifacts based on expression. + Conditional artifacts provide a way to choose the output artifacts based on expression. In this example the main template has two steps which will run conditionall using `when` . diff --git a/examples/default-pdb-support.yaml b/examples/default-pdb-support.yaml index 8fcbb2ffb379..86b0a5c31e6a 100644 --- a/examples/default-pdb-support.yaml +++ b/examples/default-pdb-support.yaml @@ -7,7 +7,7 @@ spec: entrypoint: pdbcreate serviceAccountName: default podDisruptionBudget: - minAvailable: "9999" # Provide arbitrary big number if you don't know how many pods workflow creates + minAvailable: 9999 # Provide arbitrary big number if you don't know how many pods workflow creates templates: - name: pdbcreate container: diff --git a/examples/http-success-condition.yaml b/examples/http-success-condition.yaml index 7de3e0675566..7bcb232b336c 100644 --- a/examples/http-success-condition.yaml +++ b/examples/http-success-condition.yaml @@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: http-template-condition- - labels: - workflows.argoproj.io/test: "true" annotations: workflows.argoproj.io/description: | Exemplifies usage of successCondition in HTTP template (available since v3.3) diff --git a/examples/input-artifact-s3.yaml b/examples/input-artifact-s3.yaml index 046831c08164..e511df2bb025 100644 --- a/examples/input-artifact-s3.yaml +++ b/examples/input-artifact-s3.yaml @@ -27,7 +27,7 @@ spec: key: path/in/bucket # Specify the bucket region. Note that if you want Argo to figure out this automatically, # you can set additional statement policy that allows `s3:GetBucketLocation` action. - # For details, check out: https://argoproj.github.io/argo-workflows/configure-artifact-repository/#configuring-aws-s3 + # For details, check out: https://argo-workflows.readthedocs.io/en/release-3.4/configure-artifact-repository/#configuring-aws-s3 region: us-west-2 # accessKeySecret and secretKeySecret are secret selectors. # It references the k8s secret named 'my-s3-credentials'. diff --git a/examples/key-only-artifact.yaml b/examples/key-only-artifact.yaml index 7dd8404f0c92..edd688127c91 100644 --- a/examples/key-only-artifact.yaml +++ b/examples/key-only-artifact.yaml @@ -1,5 +1,5 @@ # this example shows how to use key-only artifacts - introduced in v3.0 -# https://argoproj.github.io/argo-workflows/key-only-artifacts/ +# https://argo-workflows.readthedocs.io/en/release-3.4/key-only-artifacts/ apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: diff --git a/examples/output-artifact-s3.yaml b/examples/output-artifact-s3.yaml index 7c39a49529b4..c404f76bf582 100644 --- a/examples/output-artifact-s3.yaml +++ b/examples/output-artifact-s3.yaml @@ -32,7 +32,7 @@ spec: bucket: my-bucket # Specify the bucket region. Note that if you want Argo to figure out this automatically, # you can set additional statement policy that allows `s3:GetBucketLocation` action. - # For details, check out: https://argoproj.github.io/argo-workflows/configure-artifact-repository/#configuring-aws-s3 + # For details, check out: https://argo-workflows.readthedocs.io/en/release-3.4/configure-artifact-repository/#configuring-aws-s3 region: us-west-2 # NOTE: by default, output artifacts are automatically tarred and gzipped before saving. diff --git a/examples/retry-backoff.yaml b/examples/retry-backoff.yaml index 294b9fc8a027..beddb9ba50d2 100644 --- a/examples/retry-backoff.yaml +++ b/examples/retry-backoff.yaml @@ -10,9 +10,9 @@ spec: retryStrategy: limit: "10" backoff: - duration: "1" # Must be a string. Default unit is seconds. Could also be a Duration, e.g.: "2m", "6h", "1d" + duration: "1" # Must be a string. Default unit is seconds. Could also be a Duration, e.g.: "2m", "6h" factor: "2" - maxDuration: "1m" # Must be a string. Default unit is seconds. Could also be a Duration, e.g.: "2m", "6h", "1d" + maxDuration: "1m" # Must be a string. Default unit is seconds. Could also be a Duration, e.g.: "2m", "6h" container: image: python:alpine3.6 command: ["python", -c] diff --git a/examples/validator.go b/examples/validator.go index 42919f3b4b6c..2e9899aa2271 100644 --- a/examples/validator.go +++ b/examples/validator.go @@ -4,8 +4,8 @@ import ( "fmt" "io/ioutil" "os" - "strings" "path/filepath" + "strings" "github.com/xeipuuv/gojsonschema" "sigs.k8s.io/yaml" @@ -67,15 +67,16 @@ func ValidateArgoYamlRecursively(fromPath string, skipFileNames []string) (map[s errorDescriptions := []string{} for _, err := range result.Errors() { // port should be port number or port reference string, using string port number will cause issue - // due swagger 2.0 limitation, we can only specify one data type (we use string, same as k8s api swagger) - if strings.HasSuffix(err.Field(), "httpGet.port") && err.Description() == "Invalid type. Expected: string, given: integer" { + // due swagger 2.0 limitation, we can only specify one data type (we use string, same as k8s api swagger). + // Similarly, we cannot use string minAvailable either. + if (strings.HasSuffix(err.Field(), "httpGet.port") || strings.HasSuffix(err.Field(), "podDisruptionBudget.minAvailable")) && err.Description() == "Invalid type. Expected: string, given: integer" { incorrectError = true continue } else { errorDescriptions = append(errorDescriptions, fmt.Sprintf("%s in %s", err.Description(), err.Context().String())) } } - + if !(incorrectError && len(errorDescriptions) == 1) { failed[path] = errorDescriptions } diff --git a/examples/workflow-of-workflows.yaml b/examples/workflow-of-workflows.yaml index 778336b0e8ae..162b462218d2 100644 --- a/examples/workflow-of-workflows.yaml +++ b/examples/workflow-of-workflows.yaml @@ -10,13 +10,13 @@ spec: - name: main steps: - - name: workflow1 - template: triggerWorkflowUsingResourceWithoutArgument + template: resource-without-argument arguments: parameters: - name: workflowtemplate value: "workflow-template-submittable" - - name: workflow2 - template: triggerWorkflowUsingResourceWithArgument + template: resource-with-argument arguments: parameters: - name: workflowtemplate @@ -24,7 +24,7 @@ spec: - name: message value: "Welcome Argo" - - name: triggerWorkflowUsingResourceWithoutArgument + - name: resource-without-argument inputs: parameters: - name: workflowtemplate @@ -40,7 +40,7 @@ spec: name: {{inputs.parameters.workflowtemplate}} successCondition: status.phase == Succeeded failureCondition: status.phase in (Failed, Error) - - name: triggerWorkflowUsingResourceWithArgument + - name: resource-with-argument inputs: parameters: - name: workflowtemplate diff --git a/go.mod b/go.mod index d919ce5b19cc..c0846adcdc28 100644 --- a/go.mod +++ b/go.mod @@ -1,30 +1,30 @@ module github.com/argoproj/argo-workflows/v3 -go 1.18 +go 1.20 require ( - cloud.google.com/go/storage v1.29.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 + cloud.google.com/go/storage v1.30.1 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible github.com/Masterminds/sprig/v3 v3.2.3 github.com/TwiN/go-color v1.4.0 - github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible - github.com/antonmedv/expr v1.10.5 + github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible + github.com/antonmedv/expr v1.12.6 github.com/argoproj/argo-events v1.7.3 github.com/argoproj/pkg v0.13.6 github.com/blushft/go-diagrams v0.0.0-20201006005127-c78c821223d9 - github.com/colinmarc/hdfs v1.1.4-0.20180805212432-9746310a4d31 + github.com/colinmarc/hdfs/v2 v2.4.0 github.com/coreos/go-oidc/v3 v3.5.0 github.com/doublerebel/bellows v0.0.0-20160303004610-f177d92a03d3 github.com/evanphx/json-patch v5.6.0+incompatible github.com/gavv/httpexpect/v2 v2.10.0 github.com/go-git/go-git/v5 v5.4.2 - github.com/go-jose/go-jose/v3 v3.0.0 + github.com/go-jose/go-jose/v3 v3.0.1 github.com/go-openapi/jsonreference v0.20.2 - github.com/go-sql-driver/mysql v1.7.0 + github.com/go-sql-driver/mysql v1.7.1 github.com/gogo/protobuf v1.3.2 - github.com/golang/protobuf v1.5.2 + github.com/golang/protobuf v1.5.3 github.com/google/go-containerregistry v0.11.0 github.com/google/go-containerregistry/pkg/authn/k8schain v0.0.0-20220411142604-2042cc9d6401 github.com/gorilla/handlers v1.5.1 @@ -32,53 +32,67 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/klauspost/pgzip v1.2.5 - github.com/minio/minio-go/v7 v7.0.47 + github.com/itchyny/gojq v0.12.13 + github.com/jcmturner/gokrb5/v8 v8.4.4 + github.com/klauspost/pgzip v1.2.6 + github.com/minio/minio-go/v7 v7.0.61 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.14.0 + github.com/prometheus/client_golang v1.16.0 github.com/prometheus/client_model v0.3.0 - github.com/prometheus/common v0.39.0 + github.com/prometheus/common v0.42.0 github.com/robfig/cron/v3 v3.0.1 github.com/sethvargo/go-limiter v0.7.2 - github.com/sirupsen/logrus v1.9.0 + github.com/sirupsen/logrus v1.9.3 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/soheilhy/cmux v0.1.5 github.com/spf13/cobra v1.5.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.15.0 - github.com/stretchr/testify v1.8.1 - github.com/tidwall/gjson v1.14.4 + github.com/stretchr/testify v1.8.4 + github.com/tidwall/gjson v1.15.0 github.com/valyala/fasttemplate v1.2.2 github.com/xeipuuv/gojsonschema v1.2.0 - golang.org/x/crypto v0.5.0 + golang.org/x/crypto v0.14.0 golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f - golang.org/x/oauth2 v0.4.0 - golang.org/x/sync v0.1.0 + golang.org/x/oauth2 v0.13.0 + golang.org/x/sync v0.3.0 golang.org/x/time v0.3.0 - google.golang.org/api v0.109.0 - google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f - google.golang.org/grpc v1.52.0 + google.golang.org/api v0.143.0 + google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb + google.golang.org/grpc v1.58.3 gopkg.in/go-playground/webhooks.v5 v5.17.0 - gopkg.in/jcmturner/gokrb5.v5 v5.3.0 k8s.io/api v0.24.3 k8s.io/apimachinery v0.24.3 + k8s.io/cli-runtime v0.24.3 k8s.io/client-go v0.24.3 k8s.io/gengo v0.0.0-20220613173612-397b4ae3bce7 k8s.io/klog/v2 v2.60.1 k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8 + k8s.io/kubectl v0.24.3 k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 sigs.k8s.io/yaml v1.3.0 upper.io/db.v3 v3.8.0+incompatible ) require ( - cloud.google.com/go v0.107.0 // indirect - cloud.google.com/go/compute v1.14.0 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/jcmturner/aescts/v2 v2.0.0 // indirect + github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect + github.com/jcmturner/goidentity/v6 v6.0.1 // indirect + github.com/jcmturner/rpc/v2 v2.0.3 // indirect + google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect +) + +require ( + cloud.google.com/go v0.110.7 // indirect + cloud.google.com/go/compute v1.23.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.8.0 // indirect + cloud.google.com/go/iam v1.1.1 // indirect github.com/Azure/azure-sdk-for-go v62.0.0+incompatible // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 + github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest v0.11.24 // indirect github.com/Azure/go-autorest/autorest/adal v0.9.18 // indirect @@ -87,7 +101,8 @@ require ( github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0 // indirect + github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/Microsoft/go-winio v0.5.2 // indirect @@ -112,76 +127,94 @@ require ( github.com/aws/smithy-go v1.11.2 // indirect github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20220228164355-396b2034c795 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 // indirect github.com/chrismellard/docker-credential-acr-env v0.0.0-20220119192733-fe33c00cee21 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/creack/pty v1.1.18 github.com/davecgh/go-spew v1.1.1 // indirect + github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/docker/cli v20.10.17+incompatible // indirect - github.com/docker/distribution v2.8.1+incompatible // indirect - github.com/docker/docker v20.10.17+incompatible // indirect + github.com/docker/distribution v2.8.2+incompatible // indirect + github.com/docker/docker v20.10.24+incompatible // indirect github.com/docker/docker-credential-helpers v0.6.4 // indirect - github.com/dustin/go-humanize v1.0.0 // indirect - github.com/emicklei/go-restful/v3 v3.8.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/emicklei/go-restful/v3 v3.10.0 // indirect github.com/emirpasic/gods v1.12.0 // indirect + github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect + github.com/fatih/camelcase v1.0.0 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fvbommel/sortorder v1.0.1 // indirect + github.com/go-errors/errors v1.0.1 // indirect github.com/go-git/gcfg v1.5.0 // indirect github.com/go-git/go-billy/v5 v5.3.1 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/swag v0.22.3 // indirect - github.com/golang-jwt/jwt/v4 v4.4.2 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/google/btree v1.0.1 // indirect github.com/google/gnostic v0.5.7-v3refs // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/go-containerregistry/pkg/authn/kubernetes v0.0.0-20220301182634-bfe2ffc6b6bd // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.1 // indirect - github.com/googleapis/gax-go/v2 v2.7.0 // indirect - github.com/hashicorp/go-uuid v1.0.2 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/google/uuid v1.3.1 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.1 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.3.3 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/imkira/go-interpol v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/itchyny/timefmt-go v0.1.5 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/jcmturner/gofork v1.0.0 // indirect + github.com/jcmturner/gofork v1.7.6 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/jonboulle/clockwork v0.2.2 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.15.9 // indirect - github.com/klauspost/cpuid/v2 v2.1.0 // indirect + github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/lib/pq v1.10.4 // indirect + github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect + github.com/lithammer/dedent v1.1.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/md5-simd v1.1.2 // indirect - github.com/minio/sha256-simd v1.0.0 // indirect + github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/spdystream v0.2.0 // indirect + github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect github.com/onsi/ginkgo v1.16.5 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.0.3-0.20220114050600-8b9d41f48198 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect + github.com/peterbourgon/diskv v2.0.1+incompatible // indirect + github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect - github.com/rs/xid v1.4.0 // indirect + github.com/prometheus/procfs v0.10.1 // indirect + github.com/rs/xid v1.5.0 // indirect + github.com/russross/blackfriday v1.6.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect github.com/sergi/go-diff v1.1.0 // indirect @@ -199,28 +232,33 @@ require ( github.com/xanzy/ssh-agent v0.3.1 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca // indirect github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 // indirect github.com/yudai/gojsondiff v1.0.0 // indirect github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/net v0.5.0 // indirect - golang.org/x/sys v0.4.0 // indirect - golang.org/x/term v0.4.0 - golang.org/x/text v0.6.0 // indirect + go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 + golang.org/x/text v0.13.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.28.1 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect - gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect - gopkg.in/jcmturner/rpc.v0 v0.0.2 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/component-base v0.24.3 // indirect + k8s.io/component-helpers v0.24.3 // indirect + k8s.io/metrics v0.24.3 // indirect moul.io/http2curl/v2 v2.3.0 // indirect sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect + sigs.k8s.io/kustomize/api v0.11.4 // indirect + sigs.k8s.io/kustomize/kustomize/v4 v4.5.4 // indirect + sigs.k8s.io/kustomize/kyaml v0.13.6 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect ) diff --git a/go.sum b/go.sum index 007e669143ce..9651aab28604 100644 --- a/go.sum +++ b/go.sum @@ -28,16 +28,16 @@ cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSU cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.7 h1:rJyC7nWRg2jWGZ4wSJ5nY65GTdYJkg0cd/uXb+ACI6o= +cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0= -cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= +cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= @@ -45,9 +45,8 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= -cloud.google.com/go/iam v0.8.0 h1:E2osAkZzxI/+8pZcxVLcDtAQx/u+hZXVryUaYQ5O0Kk= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= -cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= +cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y= +cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -60,8 +59,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Antonboom/errname v0.1.5/go.mod h1:DugbBstvPFQbv/5uLcRRzfrNqKE9tVdVCqWCLp6Cifo= @@ -69,14 +68,16 @@ github.com/Antonboom/nilnil v0.1.0/go.mod h1:PhHLvRPSghY5Y7mX4TW+BHZQYo1A8flE5H2 github.com/Azure/azure-sdk-for-go v46.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v62.0.0+incompatible h1:8N2k27SYtc12qj5nTsuFMFJPZn5CGmgMWqTy4y9I7Jw= github.com/Azure/azure-sdk-for-go v62.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 h1:sVPhtT2qjO86rTUaWMr4WoES4TkjGnzcioXcnHV9s5k= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1 h1:T8quHYlUGyb/oqtSTwqlCr1ilJHrDv+ZtpSfo+hm1BU= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.1/go.mod h1:gLa1CL2RNE4s7M3yopJ/p0iq5DdY6Yv5ZUt9MTRZOQM= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2 h1:uqM+VoHjVH6zdlkLF2b6O0ZANcHoj3rO0PoQ3jglUJA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2/go.mod h1:twTKAa1E6hLmSDjLhaCkbTMQKc7p/rNLU40rLxGEOCI= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 h1:QSdcrd/UFJv6Bp/CfoVf2SrENpFn9P6Yh8yb+xNhYMM= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= @@ -110,14 +111,16 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 h1:oPdPEZFSbl7oSPEAIPMPBMUmiL+mqgzBJwM/9qYcwNg= -github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1/go.mod h1:4qFor3D/HDsvBME35Xy9rwW9DecL+M2sNw1ybjPtwA0= +github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0 h1:UE9n9rkJF62ArLb1F3DEjRt8O3jLwMWdSoypKV4f3MU= +github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU= +github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= @@ -153,9 +156,10 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible h1:KXeJoM1wo9I/6xPTyt6qCxoSZnmASiAjlrr0dyTUKt8= -github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= +github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= +github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= @@ -164,8 +168,8 @@ github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/antonmedv/expr v1.10.5 h1:uzMxTbpHpOqV20RrNvBKHGojNwdRpcrgoFtgF4J8xtg= -github.com/antonmedv/expr v1.10.5/go.mod h1:FPC8iWArxls7axbVLsW+kpg1mz29A1b2M6jt+hZfDkU= +github.com/antonmedv/expr v1.12.6 h1:qtgMHOFissxhePwokx0xB9eqS6PUy0SbhDRPD67PInA= +github.com/antonmedv/expr v1.12.6/go.mod h1:FPC8iWArxls7axbVLsW+kpg1mz29A1b2M6jt+hZfDkU= github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= github.com/argoproj-labs/go-git/v5 v5.4.6 h1:qSXJlgYSkDvpCFMN647SSUoUmB6LtPmair3iW9xWSfo= github.com/argoproj-labs/go-git/v5 v5.4.6/go.mod h1:Lv1K45bcCda9jDMEZCGCVuXSGdBaSGAXUvptnVtaEsA= @@ -234,6 +238,8 @@ github.com/aws/smithy-go v1.11.2 h1:eG/N+CcUMAvsdffgMvjMKwfyDzIkjM6pfxMJ8Mzc6mE= github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20220228164355-396b2034c795 h1:IWeCJzU+IYaO2rVEBlGPTBfe90cmGXFTLdhUFlzDGsY= github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20220228164355-396b2034c795/go.mod h1:8vJsEZ4iRqG+Vx6pKhWK6U00qcj0KC37IsfszMkY6UE= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -242,6 +248,7 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/blizzy78/varnamelen v0.3.0/go.mod h1:hbwRdBvoBqxk34XyQ6HA0UH3G0/1TKuv5AC4eaBT0Ec= github.com/blushft/go-diagrams v0.0.0-20201006005127-c78c821223d9 h1:mV+hh0rMjzrhg7Jc/GKwpa+y/0BMHGOHdM9yY1GYyFI= github.com/blushft/go-diagrams v0.0.0-20201006005127-c78c821223d9/go.mod h1:nDeXEIaeDV+mAK1gBD3/RJH67DYPC0GdaznWN7sB07s= @@ -252,8 +259,11 @@ github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacM github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8= +github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af/go.mod h1:Qjyv4H3//PWVzTeCezG2b9IRn6myJxJSr4TD/xo6ojU= github.com/chrismellard/docker-credential-acr-env v0.0.0-20220119192733-fe33c00cee21 h1:XlpL9EHrPOBJMLDDOf35/G4t5rGAFNNAZQ3cDcWavtc= @@ -267,8 +277,8 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/colinmarc/hdfs v1.1.4-0.20180805212432-9746310a4d31 h1:ow7T77012NSZVW0uOWoQxz3yj9fHKYeZ4QmNrMtWMbM= -github.com/colinmarc/hdfs v1.1.4-0.20180805212432-9746310a4d31/go.mod h1:vSBumefK4HA5uiRSwNP+3ofgrEoScpCS2MMWcWXEuQ4= +github.com/colinmarc/hdfs/v2 v2.4.0 h1:v6R8oBx/Wu9fHpdPoJJjpGSUxo8NhHIwrwsfhFvU9W0= +github.com/colinmarc/hdfs/v2 v2.4.0/go.mod h1:0NAO+/3knbMx6+5pCv+Hcbaz4xn/Zzbn9+WIib2rKVI= github.com/containerd/stargz-snapshotter/estargz v0.12.0 h1:idtwRTLjk2erqiYhPWy2L844By8NRFYEwYHcXhoIWPM= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -287,10 +297,12 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/daixiang0/gci v0.2.9/go.mod h1:+4dZ7TISfSmqfAGv59ePaHfNzgGtIkHAhhdKggP1JAc= @@ -300,6 +312,8 @@ github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd h1:uVsMphB1eRx7xB1njzL3fuMdWRN8HtVzoUOItHMwv5c= +github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/denis-tingajkin/go-header v0.4.2/go.mod h1:eLRHAVXzE5atsKAnNRDB90WHCFFnBUn4RN0nRcs1LJA= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= @@ -309,10 +323,11 @@ github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/ github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M= github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.17+incompatible h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE= -github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= +github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/docker-credential-helpers v0.6.4 h1:axCks+yV+2MR3/kZhAmy07yC56WZ2Pwu/fKWtKuZB0o= github.com/docker/docker-credential-helpers v0.6.4/go.mod h1:ofX3UI0Gz1TteYBjtgs07O36Pyasyp66D2uKT7H8W1c= @@ -321,15 +336,16 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3 github.com/doublerebel/bellows v0.0.0-20160303004610-f177d92a03d3 h1:7nllYTGLnq4CqBL27lV6oNfXzM2tJ2mrKF8E+aBXOV0= github.com/doublerebel/bellows v0.0.0-20160303004610-f177d92a03d3/go.mod h1:v/MTKot4he5oRHGirOYGN4/hEOONNnWtDBLAzllSGMw= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.8.0 h1:eCZ8ulSerjdAiaNpF7GxXIE7ZCMo1moN1qX+S609eVw= -github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= +github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -344,11 +360,16 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/esimonov/ifshort v1.0.3/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= +github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fasthttp/websocket v1.4.3-rc.6 h1:omHqsl8j+KXpmzRjF8bmzOSYJ8GnS0E3efi1wYT+niY= github.com/fasthttp/websocket v1.4.3-rc.6/go.mod h1:43W9OM2T8FeXpCWMsBd9Cb7nE2CACNqNvCqQCoty/Lc= +github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= +github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= @@ -369,6 +390,8 @@ github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5 github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= +github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE= +github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= github.com/gavv/httpexpect/v2 v2.10.0 h1:nWvTFP2Yq8wV9fIiUAfrCuWGl2MB9Pye7H+LJ2TNLVw= github.com/gavv/httpexpect/v2 v2.10.0/go.mod h1:ra5Uy9iyQe0CljXH6LQJ00u8aeY1SKN2f4I6jPiD4Ng= @@ -379,6 +402,8 @@ github.com/gizak/termui/v3 v3.1.0/go.mod h1:bXQEBkJpzxUAKf0+xq9MSWAvWZlE7c+aidmy github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-critic/go-critic v0.6.1/go.mod h1:SdNCfU0yF3UBjtaZGw6586/WocupMOJuiqgom5DsQxM= +github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= github.com/go-git/go-billy/v5 v5.3.1 h1:CPiOUAzKtMRvolEKw+bG1PLRpT7D3LIs3/3ey4Aiu34= @@ -388,18 +413,22 @@ github.com/go-git/go-git-fixtures/v4 v4.3.1/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-jose/go-jose/v3 v3.0.0 h1:s6rrhirfEP/CGIoc6p+PZAeogN2SxKav6Wp7+dyMWVo= github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= +github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= +github.com/go-jose/go-jose/v3 v3.0.1/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= @@ -421,8 +450,8 @@ github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+ github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= -github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= +github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= @@ -449,8 +478,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -486,8 +515,9 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= @@ -499,8 +529,11 @@ github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZ github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= +github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e h1:KhcknUwkWHKZPbFy2P7jH5LKJ3La+0ZeknkkmrSgqb0= +github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= github.com/google/certificate-transparency-go v1.1.1/go.mod h1:FDKqPvSXawb2ecErVRrD+nfy23RCzyl7eqVCEmlT1Zs= @@ -538,8 +571,8 @@ github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPg github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -557,22 +590,28 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw= github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.1 h1:RY7tHKZcRlk788d5WSo/e83gOyyy742E8GSs771ySpg= -github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.1 h1:SBWmZhjUDRorQxrN0nwzf+AHBxnbFjViHQS4P0yVpmQ= +github.com/googleapis/enterprise-certificate-proxy v0.3.1/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= @@ -583,6 +622,10 @@ github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b0 github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= +github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -602,6 +645,7 @@ github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -631,11 +675,11 @@ github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v0.0.0-20180228145832-27454136f036/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -669,11 +713,24 @@ github.com/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/itchyny/gojq v0.12.13 h1:IxyYlHYIlspQHHTE0f3cJF0NKDMfajxViuhBLnHd/QU= +github.com/itchyny/gojq v0.12.13/go.mod h1:JzwzAqenfhrPUuwbmEz3nu3JQmFLlQTQMUcOdnu/Sf4= +github.com/itchyny/timefmt-go v0.1.5 h1:G0INE2la8S6ru/ZI5JecgyzbbJNs5lG1RcBqa7Jm6GE= +github.com/itchyny/timefmt-go v0.1.5/go.mod h1:nEP7L+2YmAbT2kZ2HfSs1d8Xtw9LY8D2stDBckWakZ8= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jcmturner/gofork v0.0.0-20180107083740-2aebee971930/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= -github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= -github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= +github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= +github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= +github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= +github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg= +github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= +github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= +github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= +github.com/jcmturner/gokrb5/v8 v8.4.4 h1:x1Sv4HaTpepFkXbt2IkL29DXRf8sOfZXo8eRKh687T8= +github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= +github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= +github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= @@ -687,9 +744,12 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfC github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/josharian/txtarfs v0.0.0-20210218200122-0702f000015a/go.mod h1:izVPOvVRsHiKkeGCT6tYBNWyDVuzj9wAaBb5R9qamfw= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -702,6 +762,7 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.0.0-20210419104244-841f0c0fe66d/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= @@ -717,16 +778,15 @@ github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8 github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.1.0 h1:eyi1Ad2aNJMW95zcSbmGg7Cg6cq3ADwLpMAP96d8rF0= -github.com/klauspost/cpuid/v2 v2.1.0/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= -github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= -github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= +github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -735,7 +795,7 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -756,6 +816,10 @@ github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= +github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -767,6 +831,7 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= @@ -790,15 +855,17 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= @@ -813,11 +880,11 @@ github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77Z github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/minio-go/v7 v7.0.29/go.mod h1:x81+AX5gHSfCSqw7jxRKHvxUXMlE5uKX0Vb75Xk5yYg= -github.com/minio/minio-go/v7 v7.0.47 h1:sLiuCKGSIcn/MI6lREmTzX91DX/oRau4ia0j6e6eOSs= -github.com/minio/minio-go/v7 v7.0.47/go.mod h1:nCrRzjoSUQh8hgKKtu3Y708OLvRLtuASMg2/nvmbarw= +github.com/minio/minio-go/v7 v7.0.61 h1:87c+x8J3jxQ5VUGimV9oHdpjsAvy3fhneEBKuoKEVUI= +github.com/minio/minio-go/v7 v7.0.61/go.mod h1:BTu8FcrEw+HidY0zd/0eny43QnVNkXRPXrLXFuQBHXg= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= -github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= -github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= @@ -847,6 +914,8 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -855,6 +924,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s= @@ -862,8 +933,10 @@ github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8m github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo= github.com/mwitkow/go-proto-validators v0.2.0/go.mod h1:ZfA1hW+UH/2ZHOWvQ3HnQaU0DtnpXu850MZiy+YUgcc= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= @@ -879,6 +952,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= +github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 h1:Yl0tPBa8QPjGmesFh1D0rDy+q1Twx6FyU7VWHi8wZbI= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= @@ -909,7 +983,6 @@ github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6 github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/getopt v0.0.0-20180729010549-6fdd0a2c7117/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= @@ -917,10 +990,11 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -938,8 +1012,10 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -950,15 +1026,18 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= -github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA= github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= @@ -979,9 +1058,10 @@ github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -1014,8 +1094,8 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/tenv v1.4.7/go.mod h1:5nF+bITvkebQVanjU6IuMbvIot/7ReNsUV7I5NbprB0= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= @@ -1042,6 +1122,7 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= +github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= @@ -1063,6 +1144,7 @@ github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRk github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -1079,8 +1161,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= @@ -1090,8 +1173,8 @@ github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0 github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= -github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.15.0 h1:5n/pM+v3r5ujuNl4YLZLsQ+UE5jlkLVm7jMzT5Mpolw= +github.com/tidwall/gjson v1.15.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= @@ -1137,6 +1220,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI= +github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 h1:6fRhSjgLCkTD3JnJxvaJ4Sj+TYblw757bqYgZaOq5ZY= @@ -1154,6 +1239,7 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -1172,11 +1258,24 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc= +go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= @@ -1185,8 +1284,8 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180723164146-c126467f60eb/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1214,8 +1313,9 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1257,6 +1357,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1314,7 +1415,9 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1322,8 +1425,10 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1342,8 +1447,8 @@ golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1357,8 +1462,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1386,6 +1491,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1433,8 +1539,10 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1445,25 +1553,28 @@ golang.org/x/sys v0.0.0-20210915083310-ed5796bab164/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1476,8 +1587,9 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1507,6 +1619,7 @@ golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1591,6 +1704,7 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1627,8 +1741,8 @@ google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNe google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.109.0 h1:sW9hgHyX497PP5//NUM7nqfV8D0iDfBApqq7sOh1XR8= -google.golang.org/api v0.109.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.143.0 h1:o8cekTkqhywkbZT6p1UHJPZ9+9uuCAJs/KYomxZB8fA= +google.golang.org/api v0.143.0/go.mod h1:FoX9DO9hT7DLNn97OuoZAGSDuNAXdJRuGK98rSUgurk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1699,8 +1813,13 @@ google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKr google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA= +google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb h1:lK0oleSc7IQsUxO3U5TjL9DWlsxpEBemh+zpB7IqhWI= +google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1731,8 +1850,8 @@ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.52.0 h1:kd48UiU7EHsV4rnLyOJRuP/Il/UHE7gdDAQ+SZI7nZk= -google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1748,8 +1867,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1772,15 +1891,6 @@ gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= -gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= -gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= -gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= -gopkg.in/jcmturner/goidentity.v2 v2.0.0 h1:6Bmcdaxb0dD3HyHbo/MtJ2Q1wXLDuZJFwXZmuZvM+zw= -gopkg.in/jcmturner/gokrb5.v5 v5.3.0 h1:RS1MYApX27Hx1Xw7NECs7XxGxxrm69/4OmaRuX9kwec= -gopkg.in/jcmturner/gokrb5.v5 v5.3.0/go.mod h1:oQz8Wc5GsctOTgCVyKad1Vw4TCWz5G6gfIQr88RPv4k= -gopkg.in/jcmturner/rpc.v0 v0.0.2 h1:wBTgrbL1qmLBUPsYVCqdJiI5aJgQhexmK+JkTHPUNJI= -gopkg.in/jcmturner/rpc.v0 v0.0.2/go.mod h1:NzMq6cRzR9lipgw7WxRBHNx5N8SifBuaCQsOT1kWY/E= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -1805,6 +1915,8 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= gotest.tools/v3 v3.1.0 h1:rVV8Tcg/8jHUkPUorwjaMTtemIMVXfIPKiOqnhEhakk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1821,11 +1933,20 @@ k8s.io/api v0.24.3/go.mod h1:elGR/XSZrS7z7cSZPzVWaycpJuGIw57j9b95/1PdJNI= k8s.io/apimachinery v0.17.8/go.mod h1:Lg8zZ5iC/O8UjCqW6DNhcQG2m4TdjF9kwG3891OWbbA= k8s.io/apimachinery v0.24.3 h1:hrFiNSA2cBZqllakVYyH/VyEh4B581bQRmqATJSeQTg= k8s.io/apimachinery v0.24.3/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/cli-runtime v0.24.3 h1:O9YvUHrDSCQUPlsqVmaqDrueqjpJ7IO6Yas9B6xGSoo= +k8s.io/cli-runtime v0.24.3/go.mod h1:In84wauoMOqa7JDvDSXGbf8lTNlr70fOGpYlYfJtSqA= k8s.io/client-go v0.17.8/go.mod h1:SJsDS64AAtt9VZyeaQMb4Ck5etCitZ/FwajWdzua5eY= k8s.io/client-go v0.24.3 h1:Nl1840+6p4JqkFWEW2LnMKU667BUxw03REfLAVhuKQY= k8s.io/client-go v0.24.3/go.mod h1:AAovolf5Z9bY1wIg2FZ8LPQlEdKHjLI7ZD4rw920BJw= +k8s.io/code-generator v0.24.3/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= +k8s.io/component-base v0.24.3 h1:u99WjuHYCRJjS1xeLOx72DdRaghuDnuMgueiGMFy1ec= +k8s.io/component-base v0.24.3/go.mod h1:bqom2IWN9Lj+vwAkPNOv2TflsP1PeVDIwIN0lRthxYY= +k8s.io/component-helpers v0.24.3 h1:HKZTNf77K96StY2+FAgKvsXvHwoLvexeGDJatyuWlyI= +k8s.io/component-helpers v0.24.3/go.mod h1:/1WNW8TfBOijQ1ED2uCHb4wtXYWDVNMqUll8h36iNVo= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20220613173612-397b4ae3bce7 h1:RGb68G3yotdQggcyenx9y0+lnVJCXXcLa6geXOMlf5o= k8s.io/gengo v0.0.0-20220613173612-397b4ae3bce7/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= @@ -1837,9 +1958,14 @@ k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc= k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29/go.mod h1:F+5wygcW0wmRTnM3cOgIqGivxkwSWIWT5YdsDbeAOaU= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8 h1:yEQKdMCjzAOvGeiTwG4hO/hNVNtDOuUFvMUZ0OlaIzs= k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8/go.mod h1:mbJ+NSUoAhuR14N0S63bPkh8MGVSo3VYSGZtH/mfMe0= +k8s.io/kubectl v0.24.3 h1:PqY8ho/S/KuE2/hCC3Iee7X+lOtARYo0LQsNzvV/edE= +k8s.io/kubectl v0.24.3/go.mod h1:PYLcvw96sC1NLbxZEDbdlOEd6/C76VIWjGmWV5QjSk0= +k8s.io/metrics v0.24.3 h1:pXzh+PG8L8ANg0PD3Ce8+yG5oj8BLvzBgsz8yCVEXyg= +k8s.io/metrics v0.24.3/go.mod h1:p1M0lhMySWfhISkSd3HEj8xIgrVnJTK3PPhFq2rA3To= k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 h1:HNSDgDCrr/6Ly3WEGKZftiE7IY19Vz2GdbOCyI4qqhc= @@ -1855,6 +1981,13 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 h1:kDi4JBNAsJWfz1aEXhO8Jg87JJaPNLh5tIzYHgStQ9Y= sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= +sigs.k8s.io/kustomize/api v0.11.4 h1:/0Mr3kfBBNcNPOW5Qwk/3eb8zkswCwnqQxxKtmrTkRo= +sigs.k8s.io/kustomize/api v0.11.4/go.mod h1:k+8RsqYbgpkIrJ4p9jcdPqe8DprLxFUUO0yNOq8C+xI= +sigs.k8s.io/kustomize/cmd/config v0.10.6/go.mod h1:/S4A4nUANUa4bZJ/Edt7ZQTyKOY9WCER0uBS1SW2Rco= +sigs.k8s.io/kustomize/kustomize/v4 v4.5.4 h1:rzGrL+DA4k8bT6SMz7/U+2z3iiZf1t2RaYJWx8OeTmE= +sigs.k8s.io/kustomize/kustomize/v4 v4.5.4/go.mod h1:Zo/Xc5FKD6sHl0lilbrieeGeZHVYCA4BzxeAaLI05Bg= +sigs.k8s.io/kustomize/kyaml v0.13.6 h1:eF+wsn4J7GOAXlvajv6OknSunxpcOBQQqsnPxObtkGs= +sigs.k8s.io/kustomize/kyaml v0.13.6/go.mod h1:yHP031rn1QX1lr/Xd934Ri/xdVNG8BE2ECa78Ht/kEg= sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7mRH6DGaRcixXEJXTsE= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y= diff --git a/hack/cherry-pick.sh b/hack/cherry-pick.sh new file mode 100755 index 000000000000..a4d1a15b3981 --- /dev/null +++ b/hack/cherry-pick.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +set -eu +# See docs/releasing.md for instructions. + +br="$1" # branch name, e.g. release-3.3 +commitPrefix="$2" # prefix to use to filter commits, e.g. fix, chore(deps), build, ci +# whether this is dry-run. If set to `true`, this script will only print out the list +# of commits. Otherwise, this script will automatically cherry-pick the commits to the branch. +dryRun="$3" + +commitGrepPattern="^${commitPrefix}(*.*)*:.*(#" + +# find the branch point +base=$(git merge-base "$br" master) + +# extract the PRs from stdin +prNo() { + set -eu + cat | sed "s|.*(\(#[0-9]*\))|\1|" +} + +# list the PRs on each branch +prs() { + set -eu + git log --format="%s" --grep "${commitGrepPattern}" "$1...$2" | prNo | sort > "/tmp/$2" +} + +prs "$base" "$br" +prs "$base" master + +# find PRs added to master +diff "/tmp/$br" /tmp/master | grep "^> " | cut -c 3- > /tmp/prs + +# print all the commits that need cherry-picking +git log --oneline --grep "${commitGrepPattern}" "$base...master" | while read -r m; do + if [[ "$dryRun" == "true" ]]; then + grep -q "$(echo "$m" | prNo)" /tmp/prs && echo "$m" + else + commit=$(grep -q "$(echo "$m" | prNo)" /tmp/prs && echo "${m:0:9}") + echo "cherry-picking: $commit" + if ! git cp "$commit"; then + echo "failed to cherry-pick $commit" + git cp --abort + fi + fi +done diff --git a/hack/docgen.go b/hack/docgen.go index 3948424df7ff..6c7a22211cda 100644 --- a/hack/docgen.go +++ b/hack/docgen.go @@ -37,11 +37,11 @@ const tableRow = ` const depTableRow = ` |~` + "`%s`" + `~|~%s~|%s|` +// `markdown` attribute for MD in HTML: https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#markdown-in-html const dropdownOpener = ` -
-%s (click to open) -
` +
+%s (click to open)` const listElement = ` diff --git a/hack/main.go b/hack/main.go index 654d0d880263..a44511357ca9 100644 --- a/hack/main.go +++ b/hack/main.go @@ -12,8 +12,6 @@ func main() { removeCRDValidation(os.Args[2]) case "docgen": generateDocs() - case "parseexamples": - parseExamples() default: panic(os.Args[1]) } diff --git a/hack/parse_examples.go b/hack/parse_examples.go deleted file mode 100644 index d13afeacf36b..000000000000 --- a/hack/parse_examples.go +++ /dev/null @@ -1,42 +0,0 @@ -package main - -import ( - "io/ioutil" - "regexp" -) - -const ( - newHeader = `Examples with this field (click to open) -
-
    ` - newHeaderAlt = `Examples (click to open) -
    -
      ` - newLink = `
    • $1` - newDetails = `
    -
` -) - -var ( - headerRegex = regexp.MustCompile(`Examples with this field \(click to open\)\n
`) - headerAltRegex = regexp.MustCompile(`Examples \(click to open\)\n
`) - linkRegex = regexp.MustCompile(`- \[\x60(.+?)\x60\]\((.+?)\)`) - detailsRegex = regexp.MustCompile(`
`) -) - -func parseExamples() { - file, err := ioutil.ReadFile("site/fields/index.html") - if err != nil { - panic(err) - } - - file = headerRegex.ReplaceAll(file, []byte(newHeader)) - file = headerAltRegex.ReplaceAll(file, []byte(newHeaderAlt)) - file = linkRegex.ReplaceAll(file, []byte(newLink)) - file = detailsRegex.ReplaceAll(file, []byte(newDetails)) - - err = ioutil.WriteFile("site/fields/index.html", file, 0o600) - if err != nil { - panic(err) - } -} diff --git a/hack/port-forward.sh b/hack/port-forward.sh index 6a8bb086840b..e2e7cce7e1e7 100755 --- a/hack/port-forward.sh +++ b/hack/port-forward.sh @@ -18,9 +18,6 @@ wait-for() { kubectl -n argo wait --timeout 2m --for=condition=Available deploy/$1 } -wait-for minio -pf minio 9000 -pf minio 9001 dex=$(kubectl -n argo get pod -l app=dex -o name) if [[ "$dex" != "" ]]; then @@ -63,3 +60,8 @@ if [[ "$azurite" != "" ]]; then wait-for azurite pf azurite 10000 fi + +# forward MinIO last, so we can just wait for port 9000, and know that all ports are ready +wait-for minio +pf minio 9000 +pf minio 9001 \ No newline at end of file diff --git a/hack/release-notes.md b/hack/release-notes.md index 876da8c8ae97..d7528a0f0992 100644 --- a/hack/release-notes.md +++ b/hack/release-notes.md @@ -6,7 +6,7 @@ Find out on [our blog](https://blog.argoproj.io) and [changelog](https://github. ## Breaking Changes and Known Issues -Can be found in the [installation guide](https://argoproj.github.io/argo-workflows/installation/). +Check the [upgrading guide](https://argo-workflows.readthedocs.io/en/release-3.4/upgrading/) and search for [existing issues on GitHub](https://github.com/argoproj/argo-workflows/issues). ## Installation diff --git a/hack/ssh_known_hosts b/hack/ssh_known_hosts index a89bb62154a5..1eb9d3e5d3a5 100644 --- a/hack/ssh_known_hosts +++ b/hack/ssh_known_hosts @@ -1,8 +1,10 @@ # This file was automatically generated. DO NOT EDIT -bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw== +bitbucket.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPIQmuzMBuKdWeF4+a2sjSSpBK0iqitSQ+5BM9KhpexuGt20JpTVM7u5BDZngncgrqDMbWdxMWWOGtZ9UgbqgZE= +bitbucket.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO +bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQeJzhupRu0u0cdegZIa8e86EG2qOCsIsD1Xw0xSeiPDlCr7kq97NLmMbpKTX6Esc30NuoqEEHCuc7yWtwp8dI76EEEB1VqY9QJq6vk+aySyboD5QF61I/1WeTwu+deCbgKMGbUijeXhtfbxSxm6JwGrXrhBdofTsbKRUsrN1WoNgUa8uqN1Vx6WAJw1JHPhglEGGHea6QICwJOAr/6mrui/oB7pkaWKHj3z7d1IC4KWLtY47elvjbaTlkN04Kc/5LFEirorGYVbt15kAUlqGM65pk6ZBxtaO3+30LVlORZkxOh+LKL/BvbZ/iRNhItLqNyieoQj/uh/7Iv4uyH/cV/0b4WDSd3DptigWq84lJubb9t/DnZlrJazxyDCulTmKdOR7vs9gMTo+uoIrPSb8ScTtvw65+odKAlBj59dhnVp9zd7QUojOpXlL62Aw56U4oO+FALuevvMjiWeavKhJqlR7i5n9srYcrNV7ttmDw7kf/97P5zauIhxcjX+xHv4M= github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg= github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl -github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== +github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk= gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY= gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9 diff --git a/manifests/README.md b/manifests/README.md index d671b387d0a6..3cfdaceb4723 100644 --- a/manifests/README.md +++ b/manifests/README.md @@ -1,4 +1,4 @@ # Argo Install Manifests -Please read [installation](https://argoproj.github.io/argo-workflows/installation/) +Please read [installation](https://argo-workflows.readthedocs.io/en/release-3.4/installation/) diff --git a/manifests/quick-start-minimal.yaml b/manifests/quick-start-minimal.yaml index d2aa84ecc78d..247f80566812 100644 --- a/manifests/quick-start-minimal.yaml +++ b/manifests/quick-start-minimal.yaml @@ -1396,6 +1396,10 @@ data: secretKeySecret: name: my-minio-cred key: secretkey + columns: | + - name: Workflow Completed + type: label + key: workflows.argoproj.io/completed executor: | resources: requests: @@ -1420,6 +1424,9 @@ data: - name: Sensor Logs Link scope: sensor-logs url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt} + - name: Completed Workflows + scope: workflow-list + url: http://workflows?label=workflows.argoproj.io/completed=true metricsConfig: | enabled: true path: /metrics @@ -1703,7 +1710,7 @@ spec: spec: automountServiceAccountToken: false containers: - - image: kennethreitz/httpbin + - image: kong/httpbin livenessProbe: httpGet: path: /get diff --git a/manifests/quick-start-mysql.yaml b/manifests/quick-start-mysql.yaml index 6c29aeebf4af..ee7adf876d60 100644 --- a/manifests/quick-start-mysql.yaml +++ b/manifests/quick-start-mysql.yaml @@ -1396,6 +1396,10 @@ data: secretKeySecret: name: my-minio-cred key: secretkey + columns: | + - name: Workflow Completed + type: label + key: workflows.argoproj.io/completed executor: | resources: requests: @@ -1420,6 +1424,9 @@ data: - name: Sensor Logs Link scope: sensor-logs url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt} + - name: Completed Workflows + scope: workflow-list + url: http://workflows?label=workflows.argoproj.io/completed=true metricsConfig: | enabled: true path: /metrics @@ -1747,7 +1754,7 @@ spec: spec: automountServiceAccountToken: false containers: - - image: kennethreitz/httpbin + - image: kong/httpbin livenessProbe: httpGet: path: /get diff --git a/manifests/quick-start-postgres.yaml b/manifests/quick-start-postgres.yaml index af01952d2e77..fc2c6b3a47b1 100644 --- a/manifests/quick-start-postgres.yaml +++ b/manifests/quick-start-postgres.yaml @@ -1396,6 +1396,10 @@ data: secretKeySecret: name: my-minio-cred key: secretkey + columns: | + - name: Workflow Completed + type: label + key: workflows.argoproj.io/completed executor: | resources: requests: @@ -1420,6 +1424,9 @@ data: - name: Sensor Logs Link scope: sensor-logs url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt} + - name: Completed Workflows + scope: workflow-list + url: http://workflows?label=workflows.argoproj.io/completed=true metricsConfig: | enabled: true path: /metrics @@ -1747,7 +1754,7 @@ spec: spec: automountServiceAccountToken: false containers: - - image: kennethreitz/httpbin + - image: kong/httpbin livenessProbe: httpGet: path: /get diff --git a/manifests/quick-start/base/agent-role.yaml b/manifests/quick-start/base/agent-role.yaml index 6f7f52ed121b..afad9c3dbf3d 100644 --- a/manifests/quick-start/base/agent-role.yaml +++ b/manifests/quick-start/base/agent-role.yaml @@ -1,4 +1,4 @@ -# https://argoproj.github.io/argo-workflows/workflow-rbac/ +# https://argo-workflows.readthedocs.io/en/release-3.4/workflow-rbac/ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/manifests/quick-start/base/artifactgc-role.yaml b/manifests/quick-start/base/artifactgc-role.yaml index 11fd836d9421..591f7f813340 100644 --- a/manifests/quick-start/base/artifactgc-role.yaml +++ b/manifests/quick-start/base/artifactgc-role.yaml @@ -1,4 +1,4 @@ -# https://argoproj.github.io/argo-workflows/workflow-rbac/ +# https://argo-workflows.readthedocs.io/en/release-3.4/workflow-rbac/ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/manifests/quick-start/base/httpbin/httpbin-deploy.yaml b/manifests/quick-start/base/httpbin/httpbin-deploy.yaml index 222a86c04eae..8569b663d3d0 100644 --- a/manifests/quick-start/base/httpbin/httpbin-deploy.yaml +++ b/manifests/quick-start/base/httpbin/httpbin-deploy.yaml @@ -16,7 +16,7 @@ spec: automountServiceAccountToken: false containers: - name: main - image: kennethreitz/httpbin + image: kong/httpbin ports: - containerPort: 80 name: api diff --git a/manifests/quick-start/base/overlays/workflow-controller-configmap.yaml b/manifests/quick-start/base/overlays/workflow-controller-configmap.yaml index c62fb16c3b08..4d4778ade7cf 100644 --- a/manifests/quick-start/base/overlays/workflow-controller-configmap.yaml +++ b/manifests/quick-start/base/overlays/workflow-controller-configmap.yaml @@ -40,6 +40,13 @@ data: - name: Sensor Logs Link scope: sensor-logs url: http://logging-facility?namespace=${metadata.namespace}&podName=${metadata.name}&startedAt=${status.startedAt}&finishedAt=${status.finishedAt} + - name: Completed Workflows + scope: workflow-list + url: http://workflows?label=workflows.argoproj.io/completed=true + columns: | + - name: Workflow Completed + type: label + key: workflows.argoproj.io/completed kind: ConfigMap metadata: name: workflow-controller-configmap diff --git a/mkdocs.yml b/mkdocs.yml index d636b8144152..5287fce59dfe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -29,10 +29,24 @@ extra: markdown_extensions: - codehilite - admonition - - pymdownx.superfences + - md_in_html - pymdownx.details + - pymdownx.superfences: + custom_fences: + # support mermaid diagrams per https://squidfunk.github.io/mkdocs-material/reference/diagrams/#configuration + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format - toc: permalink: true +validation: + omitted_files: warn + absolute_links: warn + unrecognized_links: warn +exclude_docs: | + /proposals/ + /requirements.txt + nav: - Home: README.md - Getting Started: diff --git a/persist/sqldb/mocks/WorkflowArchive.go b/persist/sqldb/mocks/WorkflowArchive.go index 687c8b8810c2..08f43bc65ef6 100644 --- a/persist/sqldb/mocks/WorkflowArchive.go +++ b/persist/sqldb/mocks/WorkflowArchive.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.10.0. DO NOT EDIT. +// Code generated by mockery v2.26.0. DO NOT EDIT. package mocks @@ -35,13 +35,16 @@ func (_m *WorkflowArchive) CountWorkflows(namespace string, name string, namePre ret := _m.Called(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements) var r0 int64 + var r1 error + if rf, ok := ret.Get(0).(func(string, string, string, time.Time, time.Time, labels.Requirements) (int64, error)); ok { + return rf(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements) + } if rf, ok := ret.Get(0).(func(string, string, string, time.Time, time.Time, labels.Requirements) int64); ok { r0 = rf(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements) } else { r0 = ret.Get(0).(int64) } - var r1 error if rf, ok := ret.Get(1).(func(string, string, string, time.Time, time.Time, labels.Requirements) error); ok { r1 = rf(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements) } else { @@ -84,6 +87,10 @@ func (_m *WorkflowArchive) GetWorkflow(uid string) (*v1alpha1.Workflow, error) { ret := _m.Called(uid) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(string) (*v1alpha1.Workflow, error)); ok { + return rf(uid) + } if rf, ok := ret.Get(0).(func(string) *v1alpha1.Workflow); ok { r0 = rf(uid) } else { @@ -92,7 +99,6 @@ func (_m *WorkflowArchive) GetWorkflow(uid string) (*v1alpha1.Workflow, error) { } } - var r1 error if rf, ok := ret.Get(1).(func(string) error); ok { r1 = rf(uid) } else { @@ -121,6 +127,10 @@ func (_m *WorkflowArchive) ListWorkflows(namespace string, name string, namePref ret := _m.Called(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements, limit, offset) var r0 v1alpha1.Workflows + var r1 error + if rf, ok := ret.Get(0).(func(string, string, string, time.Time, time.Time, labels.Requirements, int, int) (v1alpha1.Workflows, error)); ok { + return rf(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements, limit, offset) + } if rf, ok := ret.Get(0).(func(string, string, string, time.Time, time.Time, labels.Requirements, int, int) v1alpha1.Workflows); ok { r0 = rf(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements, limit, offset) } else { @@ -129,7 +139,6 @@ func (_m *WorkflowArchive) ListWorkflows(namespace string, name string, namePref } } - var r1 error if rf, ok := ret.Get(1).(func(string, string, string, time.Time, time.Time, labels.Requirements, int, int) error); ok { r1 = rf(namespace, name, namePrefix, minStartAt, maxStartAt, labelRequirements, limit, offset) } else { @@ -144,6 +153,10 @@ func (_m *WorkflowArchive) ListWorkflowsLabelKeys() (*v1alpha1.LabelKeys, error) ret := _m.Called() var r0 *v1alpha1.LabelKeys + var r1 error + if rf, ok := ret.Get(0).(func() (*v1alpha1.LabelKeys, error)); ok { + return rf() + } if rf, ok := ret.Get(0).(func() *v1alpha1.LabelKeys); ok { r0 = rf() } else { @@ -152,7 +165,6 @@ func (_m *WorkflowArchive) ListWorkflowsLabelKeys() (*v1alpha1.LabelKeys, error) } } - var r1 error if rf, ok := ret.Get(1).(func() error); ok { r1 = rf() } else { @@ -167,6 +179,10 @@ func (_m *WorkflowArchive) ListWorkflowsLabelValues(key string) (*v1alpha1.Label ret := _m.Called(key) var r0 *v1alpha1.LabelValues + var r1 error + if rf, ok := ret.Get(0).(func(string) (*v1alpha1.LabelValues, error)); ok { + return rf(key) + } if rf, ok := ret.Get(0).(func(string) *v1alpha1.LabelValues); ok { r0 = rf(key) } else { @@ -175,7 +191,6 @@ func (_m *WorkflowArchive) ListWorkflowsLabelValues(key string) (*v1alpha1.Label } } - var r1 error if rf, ok := ret.Get(1).(func(string) error); ok { r1 = rf(key) } else { @@ -184,3 +199,18 @@ func (_m *WorkflowArchive) ListWorkflowsLabelValues(key string) (*v1alpha1.Label return r0, r1 } + +type mockConstructorTestingTNewWorkflowArchive interface { + mock.TestingT + Cleanup(func()) +} + +// NewWorkflowArchive creates a new instance of WorkflowArchive. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewWorkflowArchive(t mockConstructorTestingTNewWorkflowArchive) *WorkflowArchive { + mock := &WorkflowArchive{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/persist/sqldb/sqldb.go b/persist/sqldb/sqldb.go index b51f4e0703e4..f9c31b7a96ae 100644 --- a/persist/sqldb/sqldb.go +++ b/persist/sqldb/sqldb.go @@ -15,10 +15,25 @@ import ( "github.com/argoproj/argo-workflows/v3/util" ) +func GetTableName(persistConfig *config.PersistConfig) (string, error) { + var tableName string + if persistConfig.PostgreSQL != nil { + tableName = persistConfig.PostgreSQL.TableName + + } else if persistConfig.MySQL != nil { + tableName = persistConfig.MySQL.TableName + } + if tableName == "" { + return "", errors.InternalError("TableName is empty") + } else { + return tableName, nil + } +} + // CreateDBSession creates the dB session -func CreateDBSession(kubectlConfig kubernetes.Interface, namespace string, persistConfig *config.PersistConfig) (sqlbuilder.Database, string, error) { +func CreateDBSession(kubectlConfig kubernetes.Interface, namespace string, persistConfig *config.PersistConfig) (sqlbuilder.Database, error) { if persistConfig == nil { - return nil, "", errors.InternalError("Persistence config is not found") + return nil, errors.InternalError("Persistence config is not found") } if persistConfig.PostgreSQL != nil { @@ -26,23 +41,19 @@ func CreateDBSession(kubectlConfig kubernetes.Interface, namespace string, persi } else if persistConfig.MySQL != nil { return CreateMySQLDBSession(kubectlConfig, namespace, persistConfig.MySQL, persistConfig.ConnectionPool) } - return nil, "", fmt.Errorf("no databases are configured") + return nil, fmt.Errorf("no databases are configured") } // CreatePostGresDBSession creates postgresDB session -func CreatePostGresDBSession(kubectlConfig kubernetes.Interface, namespace string, cfg *config.PostgreSQLConfig, persistPool *config.ConnectionPool) (sqlbuilder.Database, string, error) { - if cfg.TableName == "" { - return nil, "", errors.InternalError("tableName is empty") - } - +func CreatePostGresDBSession(kubectlConfig kubernetes.Interface, namespace string, cfg *config.PostgreSQLConfig, persistPool *config.ConnectionPool) (sqlbuilder.Database, error) { ctx := context.Background() userNameByte, err := util.GetSecrets(ctx, kubectlConfig, namespace, cfg.UsernameSecret.Name, cfg.UsernameSecret.Key) if err != nil { - return nil, "", err + return nil, err } passwordByte, err := util.GetSecrets(ctx, kubectlConfig, namespace, cfg.PasswordSecret.Name, cfg.PasswordSecret.Key) if err != nil { - return nil, "", err + return nil, err } settings := postgresql.ConnectionURL{ @@ -63,31 +74,26 @@ func CreatePostGresDBSession(kubectlConfig kubernetes.Interface, namespace strin session, err := postgresql.Open(settings) if err != nil { - return nil, "", err + return nil, err } - - if persistPool != nil { - session.SetMaxOpenConns(persistPool.MaxOpenConns) - session.SetMaxIdleConns(persistPool.MaxIdleConns) - session.SetConnMaxLifetime(time.Duration(persistPool.ConnMaxLifetime)) - } - return session, cfg.TableName, nil + session = ConfigureDBSession(session, persistPool) + return session, nil } // CreateMySQLDBSession creates Mysql DB session -func CreateMySQLDBSession(kubectlConfig kubernetes.Interface, namespace string, cfg *config.MySQLConfig, persistPool *config.ConnectionPool) (sqlbuilder.Database, string, error) { +func CreateMySQLDBSession(kubectlConfig kubernetes.Interface, namespace string, cfg *config.MySQLConfig, persistPool *config.ConnectionPool) (sqlbuilder.Database, error) { if cfg.TableName == "" { - return nil, "", errors.InternalError("tableName is empty") + return nil, errors.InternalError("tableName is empty") } ctx := context.Background() userNameByte, err := util.GetSecrets(ctx, kubectlConfig, namespace, cfg.UsernameSecret.Name, cfg.UsernameSecret.Key) if err != nil { - return nil, "", err + return nil, err } passwordByte, err := util.GetSecrets(ctx, kubectlConfig, namespace, cfg.PasswordSecret.Name, cfg.PasswordSecret.Key) if err != nil { - return nil, "", err + return nil, err } session, err := mysql.Open(mysql.ConnectionURL{ @@ -98,22 +104,27 @@ func CreateMySQLDBSession(kubectlConfig kubernetes.Interface, namespace string, Options: cfg.Options, }) if err != nil { - return nil, "", err - } - - if persistPool != nil { - session.SetMaxOpenConns(persistPool.MaxOpenConns) - session.SetMaxIdleConns(persistPool.MaxIdleConns) - session.SetConnMaxLifetime(time.Duration(persistPool.ConnMaxLifetime)) + return nil, err } + session = ConfigureDBSession(session, persistPool) // this is needed to make MySQL run in a Golang-compatible UTF-8 character set. _, err = session.Exec("SET NAMES 'utf8mb4'") if err != nil { - return nil, "", err + return nil, err } _, err = session.Exec("SET CHARACTER SET utf8mb4") if err != nil { - return nil, "", err + return nil, err + } + return session, nil +} + +// ConfigureDBSession configures the DB session +func ConfigureDBSession(session sqlbuilder.Database, persistPool *config.ConnectionPool) sqlbuilder.Database { + if persistPool != nil { + session.SetMaxOpenConns(persistPool.MaxOpenConns) + session.SetMaxIdleConns(persistPool.MaxIdleConns) + session.SetConnMaxLifetime(time.Duration(persistPool.ConnMaxLifetime)) } - return session, cfg.TableName, nil + return session } diff --git a/pkg/apiclient/_.primary.swagger.json b/pkg/apiclient/_.primary.swagger.json index d56f71c02c70..1a0ae1c6d746 100644 --- a/pkg/apiclient/_.primary.swagger.json +++ b/pkg/apiclient/_.primary.swagger.json @@ -13,7 +13,7 @@ "host": "localhost:2746", "info": { "title": "Argo Workflows API", - "description": "Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/", + "description": "Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/", "version": "VERSION" }, "securityDefinitions": { diff --git a/pkg/apiclient/apiclient.go b/pkg/apiclient/apiclient.go index 40fa69bd62be..e1a90e9f2efe 100644 --- a/pkg/apiclient/apiclient.go +++ b/pkg/apiclient/apiclient.go @@ -33,6 +33,7 @@ type Opts struct { ClientConfig clientcmd.ClientConfig ClientConfigSupplier func() clientcmd.ClientConfig Offline bool + OfflineFiles []string Context context.Context } @@ -63,7 +64,7 @@ func NewClient(argoServer string, authSupplier func() string, clientConfig clien func NewClientFromOpts(opts Opts) (context.Context, Client, error) { log.WithField("opts", opts).Debug("Client options") if opts.Offline { - return newOfflineClient() + return newOfflineClient(opts.OfflineFiles) } if opts.ArgoServerOpts.URL != "" && opts.InstanceID != "" { return nil, nil, fmt.Errorf("cannot use instance ID with Argo Server") diff --git a/pkg/apiclient/http1/facade.go b/pkg/apiclient/http1/facade.go index 597b1f315ebd..5329f72219bb 100644 --- a/pkg/apiclient/http1/facade.go +++ b/pkg/apiclient/http1/facade.go @@ -78,6 +78,7 @@ func (h Facade) EventStreamReader(in interface{}, path string) (*bufio.Reader, e } err = errFromResponse(resp) if err != nil { + resp.Body.Close() return nil, err } return bufio.NewReader(resp.Body), nil diff --git a/pkg/apiclient/info/info.pb.go b/pkg/apiclient/info/info.pb.go index c0a6d6b50aa3..6fee0d16b780 100644 --- a/pkg/apiclient/info/info.pb.go +++ b/pkg/apiclient/info/info.pb.go @@ -71,11 +71,12 @@ type InfoResponse struct { ManagedNamespace string `protobuf:"bytes,1,opt,name=managedNamespace,proto3" json:"managedNamespace,omitempty"` Links []*v1alpha1.Link `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"` // which modals to show - Modals map[string]bool `protobuf:"bytes,3,rep,name=modals,proto3" json:"modals,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - NavColor string `protobuf:"bytes,4,opt,name=navColor,proto3" json:"navColor,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Modals map[string]bool `protobuf:"bytes,3,rep,name=modals,proto3" json:"modals,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + NavColor string `protobuf:"bytes,4,opt,name=navColor,proto3" json:"navColor,omitempty"` + Columns []*v1alpha1.Column `protobuf:"bytes,5,rep,name=columns,proto3" json:"columns,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *InfoResponse) Reset() { *m = InfoResponse{} } @@ -139,6 +140,13 @@ func (m *InfoResponse) GetNavColor() string { return "" } +func (m *InfoResponse) GetColumns() []*v1alpha1.Column { + if m != nil { + return m.Columns + } + return nil +} + type GetVersionRequest struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -412,49 +420,50 @@ func init() { func init() { proto.RegisterFile("pkg/apiclient/info/info.proto", fileDescriptor_96940c93018255fa) } var fileDescriptor_96940c93018255fa = []byte{ - // 662 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xc1, 0x4e, 0x14, 0x4b, - 0x14, 0x4d, 0xcf, 0xc0, 0x00, 0x77, 0x78, 0xbc, 0xa1, 0x98, 0x40, 0xbf, 0x7e, 0xef, 0x4d, 0xb0, - 0xe3, 0x02, 0x49, 0xec, 0x0e, 0x10, 0x0d, 0xb2, 0x53, 0x82, 0x84, 0x44, 0x5c, 0x8c, 0x91, 0x85, - 0x21, 0x31, 0x45, 0xcf, 0x9d, 0xa6, 0x98, 0x9e, 0xaa, 0xb6, 0xaa, 0xba, 0x09, 0x5b, 0x13, 0x17, - 0xae, 0xfd, 0x08, 0x37, 0x7e, 0x88, 0x4b, 0x13, 0x7f, 0xc0, 0x10, 0x3f, 0xc4, 0x74, 0x75, 0xf5, - 0x30, 0x23, 0x63, 0x62, 0xe2, 0xa6, 0x73, 0xef, 0xad, 0x5b, 0xe7, 0x9c, 0x3a, 0x75, 0xbb, 0xe0, - 0xff, 0x74, 0x10, 0x87, 0x34, 0x65, 0x51, 0xc2, 0x90, 0xeb, 0x90, 0xf1, 0xbe, 0x30, 0x9f, 0x20, - 0x95, 0x42, 0x0b, 0x32, 0x53, 0xc4, 0xde, 0x7f, 0xb1, 0x10, 0x71, 0x82, 0x45, 0x5f, 0x48, 0x39, - 0x17, 0x9a, 0x6a, 0x26, 0xb8, 0x2a, 0x7b, 0xbc, 0xe3, 0x98, 0xe9, 0xf3, 0xec, 0x2c, 0x88, 0xc4, - 0x30, 0xa4, 0x32, 0x16, 0xa9, 0x14, 0x17, 0x26, 0xb8, 0x7f, 0x29, 0xe4, 0xa0, 0x9f, 0x88, 0x4b, - 0x15, 0x5a, 0x16, 0x15, 0x56, 0xa5, 0x30, 0xdf, 0xa2, 0x49, 0x7a, 0x4e, 0xb7, 0xc2, 0x18, 0x39, - 0x4a, 0xaa, 0xb1, 0x57, 0xc2, 0xf9, 0x2d, 0x58, 0x3a, 0x44, 0x7d, 0xc4, 0xfb, 0xa2, 0x8b, 0x6f, - 0x32, 0x54, 0xda, 0xff, 0x58, 0x83, 0xc5, 0x32, 0x57, 0xa9, 0xe0, 0x0a, 0xc9, 0x26, 0xb4, 0x86, - 0x94, 0xd3, 0x18, 0x7b, 0xcf, 0xe9, 0x10, 0x55, 0x4a, 0x23, 0x74, 0x9d, 0x75, 0x67, 0x63, 0xa1, - 0x7b, 0xab, 0x4e, 0x4e, 0x61, 0x36, 0x61, 0x7c, 0xa0, 0xdc, 0xda, 0x7a, 0x7d, 0xa3, 0xb9, 0xfd, - 0x34, 0xb8, 0x51, 0x1b, 0x54, 0x6a, 0x4d, 0xf0, 0x7a, 0xa4, 0x36, 0xc8, 0x77, 0x82, 0x74, 0x10, - 0x07, 0x85, 0xe0, 0xa0, 0xaa, 0x06, 0x95, 0xe0, 0xe0, 0x19, 0xe3, 0x83, 0x6e, 0x09, 0x4a, 0x1e, - 0x42, 0x63, 0x28, 0x7a, 0x34, 0x51, 0x6e, 0xdd, 0xc0, 0x77, 0x02, 0x63, 0xde, 0xb8, 0xda, 0xe0, - 0xd8, 0x34, 0x1c, 0x70, 0x2d, 0xaf, 0xba, 0xb6, 0x9b, 0x78, 0x30, 0xcf, 0x69, 0xbe, 0x2f, 0x12, - 0x21, 0xdd, 0x19, 0xa3, 0x7c, 0x94, 0x7b, 0x8f, 0xa0, 0x39, 0xb6, 0x85, 0xb4, 0xa0, 0x3e, 0xc0, - 0x2b, 0x7b, 0xbe, 0x22, 0x24, 0x6d, 0x98, 0xcd, 0x69, 0x92, 0xa1, 0x5b, 0x5b, 0x77, 0x36, 0xe6, - 0xbb, 0x65, 0xb2, 0x57, 0xdb, 0x75, 0xfc, 0x15, 0x58, 0x3e, 0x44, 0x7d, 0x82, 0x52, 0x31, 0xc1, - 0x2b, 0xfb, 0xda, 0x40, 0x0e, 0x51, 0xbf, 0x54, 0x28, 0xc7, 0x4d, 0x7d, 0x57, 0x83, 0x95, 0x89, - 0xb2, 0xf5, 0x76, 0x15, 0x1a, 0x4c, 0xa9, 0x0c, 0xa5, 0x65, 0xb4, 0x19, 0x71, 0x61, 0x4e, 0x65, - 0x67, 0x17, 0x18, 0x69, 0x43, 0xbb, 0xd0, 0xad, 0xd2, 0x62, 0x47, 0x2c, 0x45, 0x96, 0x96, 0x1e, - 0x2c, 0x74, 0x6d, 0x56, 0xc8, 0xc4, 0x21, 0x65, 0x89, 0x3d, 0x60, 0x99, 0x90, 0xbb, 0xf0, 0x97, - 0x09, 0x4e, 0x50, 0xb2, 0x3e, 0xc3, 0x9e, 0x3b, 0x6b, 0x0e, 0x31, 0x59, 0x24, 0x01, 0x10, 0x85, - 0x32, 0x67, 0x11, 0x3e, 0x8e, 0x22, 0x91, 0x71, 0x5d, 0x5c, 0xa8, 0xdb, 0x30, 0x40, 0x53, 0x56, - 0xc8, 0x2e, 0xac, 0xdd, 0xae, 0x96, 0x83, 0x31, 0x67, 0x36, 0xfd, 0x6a, 0xd9, 0xbf, 0x07, 0x2b, - 0xfb, 0x22, 0x49, 0x30, 0xd2, 0x07, 0x39, 0x72, 0x6d, 0xed, 0x21, 0x04, 0x66, 0x78, 0x41, 0x59, - 0x9a, 0x60, 0x62, 0x7f, 0x15, 0xda, 0x93, 0xad, 0xa5, 0x65, 0xdb, 0x9f, 0xea, 0xd0, 0x2c, 0x3c, - 0x7c, 0x51, 0x52, 0x90, 0x23, 0x98, 0xb3, 0x13, 0x4c, 0xda, 0xe5, 0x3c, 0x4c, 0x0e, 0xb4, 0x47, - 0x6e, 0x4f, 0x89, 0xdf, 0x7e, 0xfb, 0xf5, 0xfb, 0x87, 0xda, 0x12, 0x59, 0x34, 0x7f, 0x59, 0xbe, - 0x65, 0xfe, 0x42, 0xf2, 0xde, 0x01, 0xb8, 0xb9, 0x51, 0xb2, 0x36, 0x82, 0x9b, 0xbc, 0x63, 0xef, - 0xe8, 0xcf, 0xc7, 0xda, 0x22, 0xfa, 0x6b, 0x46, 0xc8, 0x32, 0xf9, 0xbb, 0x12, 0x92, 0x5b, 0xf2, - 0x53, 0x68, 0x8e, 0x0d, 0x0c, 0x71, 0x47, 0x5a, 0x7e, 0x1a, 0x2d, 0xef, 0x9f, 0x29, 0x2b, 0xf6, - 0x94, 0xae, 0x01, 0x27, 0xa4, 0x55, 0x81, 0x67, 0x0a, 0xa5, 0x39, 0xe9, 0x39, 0x2c, 0x8e, 0x9b, - 0x4b, 0x2c, 0xc8, 0x94, 0xbb, 0xf1, 0xbc, 0x69, 0x4b, 0x96, 0xe0, 0x8e, 0x21, 0xf8, 0xd7, 0x5f, - 0xad, 0x08, 0xb4, 0xa4, 0xd1, 0x80, 0xf1, 0x38, 0xc4, 0xa2, 0x6f, 0xcf, 0xd9, 0x7c, 0xb2, 0xff, - 0xf9, 0xba, 0xe3, 0x7c, 0xb9, 0xee, 0x38, 0xdf, 0xae, 0x3b, 0xce, 0xab, 0x07, 0xbf, 0xff, 0x7a, - 0x8d, 0xbd, 0x91, 0x67, 0x0d, 0xf3, 0x58, 0xed, 0xfc, 0x08, 0x00, 0x00, 0xff, 0xff, 0x93, 0x7e, - 0xb8, 0xbe, 0x40, 0x05, 0x00, 0x00, + // 681 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xc1, 0x6e, 0xd3, 0x4c, + 0x10, 0x96, 0x93, 0x26, 0x69, 0x37, 0xfd, 0xfb, 0xa7, 0xdb, 0xa8, 0x35, 0x06, 0xa2, 0x62, 0x71, + 0x28, 0x95, 0xb0, 0xd5, 0x56, 0xa0, 0xd2, 0x1b, 0x44, 0xa5, 0x54, 0xa2, 0x1c, 0x8c, 0xe8, 0x01, + 0x55, 0x42, 0x1b, 0x67, 0xe2, 0x6e, 0xe3, 0xec, 0x9a, 0xdd, 0xb5, 0xab, 0x5e, 0x91, 0x38, 0x20, + 0x8e, 0xbc, 0x06, 0x0f, 0xc2, 0x11, 0x89, 0x17, 0x40, 0x15, 0x0f, 0x82, 0xbc, 0x5e, 0xa7, 0x09, + 0x0d, 0x12, 0x52, 0x2f, 0xd6, 0xcc, 0xec, 0xf8, 0x9b, 0x6f, 0xbf, 0x99, 0x59, 0x74, 0x37, 0x19, + 0x46, 0x3e, 0x49, 0x68, 0x18, 0x53, 0x60, 0xca, 0xa7, 0x6c, 0xc0, 0xf5, 0xc7, 0x4b, 0x04, 0x57, + 0x1c, 0xcf, 0xe5, 0xb6, 0x73, 0x27, 0xe2, 0x3c, 0x8a, 0x21, 0xcf, 0xf3, 0x09, 0x63, 0x5c, 0x11, + 0x45, 0x39, 0x93, 0x45, 0x8e, 0x73, 0x14, 0x51, 0x75, 0x9a, 0xf6, 0xbc, 0x90, 0x8f, 0x7c, 0x22, + 0x22, 0x9e, 0x08, 0x7e, 0xa6, 0x8d, 0x87, 0xe7, 0x5c, 0x0c, 0x07, 0x31, 0x3f, 0x97, 0xbe, 0xa9, + 0x22, 0xfd, 0x32, 0xe4, 0x67, 0x5b, 0x24, 0x4e, 0x4e, 0xc9, 0x96, 0x1f, 0x01, 0x03, 0x41, 0x14, + 0xf4, 0x0b, 0x38, 0xb7, 0x85, 0x96, 0x0e, 0x40, 0x1d, 0xb2, 0x01, 0x0f, 0xe0, 0x7d, 0x0a, 0x52, + 0xb9, 0x9f, 0xab, 0x68, 0xb1, 0xf0, 0x65, 0xc2, 0x99, 0x04, 0xbc, 0x89, 0x5a, 0x23, 0xc2, 0x48, + 0x04, 0xfd, 0x57, 0x64, 0x04, 0x32, 0x21, 0x21, 0xd8, 0xd6, 0xba, 0xb5, 0xb1, 0x10, 0x5c, 0x8b, + 0xe3, 0x13, 0x54, 0x8b, 0x29, 0x1b, 0x4a, 0xbb, 0xb2, 0x5e, 0xdd, 0x68, 0x6e, 0x3f, 0xf7, 0xae, + 0xd8, 0x7a, 0x25, 0x5b, 0x6d, 0xbc, 0x1b, 0xb3, 0xf5, 0xb2, 0x1d, 0x2f, 0x19, 0x46, 0x5e, 0x4e, + 0xd8, 0x2b, 0xa3, 0x5e, 0x49, 0xd8, 0x7b, 0x49, 0xd9, 0x30, 0x28, 0x40, 0xf1, 0x63, 0x54, 0x1f, + 0xf1, 0x3e, 0x89, 0xa5, 0x5d, 0xd5, 0xf0, 0x1d, 0x4f, 0x8b, 0x37, 0xc9, 0xd6, 0x3b, 0xd2, 0x09, + 0xfb, 0x4c, 0x89, 0x8b, 0xc0, 0x64, 0x63, 0x07, 0xcd, 0x33, 0x92, 0x75, 0x79, 0xcc, 0x85, 0x3d, + 0xa7, 0x99, 0x8f, 0x7d, 0xdc, 0x43, 0x8d, 0x90, 0xc7, 0xe9, 0x88, 0x49, 0xbb, 0xa6, 0x41, 0x5f, + 0xdc, 0x9c, 0x73, 0x57, 0x03, 0x06, 0x25, 0xb0, 0xf3, 0x04, 0x35, 0x27, 0x68, 0xe1, 0x16, 0xaa, + 0x0e, 0xe1, 0xc2, 0x68, 0x98, 0x9b, 0xb8, 0x8d, 0x6a, 0x19, 0x89, 0x53, 0xb0, 0x2b, 0xeb, 0xd6, + 0xc6, 0x7c, 0x50, 0x38, 0x7b, 0x95, 0x5d, 0xcb, 0x5d, 0x41, 0xcb, 0x07, 0xa0, 0x8e, 0x41, 0x48, + 0xca, 0x59, 0xd9, 0xa2, 0x36, 0xc2, 0x07, 0xa0, 0xde, 0x48, 0x10, 0x93, 0x8d, 0xfb, 0x58, 0x41, + 0x2b, 0x53, 0x61, 0xd3, 0xbf, 0x55, 0x54, 0xa7, 0x52, 0xa6, 0x20, 0x4c, 0x45, 0xe3, 0x61, 0x1b, + 0x35, 0x64, 0xda, 0x3b, 0x83, 0x50, 0xe9, 0xb2, 0x0b, 0x41, 0xe9, 0xe6, 0x7f, 0x44, 0x82, 0xa7, + 0x49, 0xa1, 0xf3, 0x42, 0x60, 0xbc, 0x9c, 0x26, 0x8c, 0x08, 0x8d, 0x8d, 0x88, 0x85, 0x83, 0xef, + 0xa3, 0xff, 0xb4, 0x71, 0x0c, 0x82, 0x0e, 0x28, 0xf4, 0xed, 0x9a, 0xbe, 0xc4, 0x74, 0x10, 0x7b, + 0x08, 0x4b, 0x10, 0x19, 0x0d, 0xe1, 0x69, 0x18, 0xf2, 0x94, 0xa9, 0x7c, 0x68, 0xec, 0xba, 0x06, + 0x9a, 0x71, 0x82, 0x77, 0xd1, 0xda, 0xf5, 0x68, 0x31, 0x7c, 0x0d, 0xfd, 0xd3, 0xdf, 0x8e, 0xdd, + 0x07, 0x68, 0xa5, 0xcb, 0xe3, 0x18, 0x42, 0xb5, 0x9f, 0x01, 0x53, 0x46, 0x1e, 0x8c, 0xd1, 0x1c, + 0xcb, 0x4b, 0x16, 0x22, 0x68, 0xdb, 0x5d, 0x45, 0xed, 0xe9, 0xd4, 0x42, 0xb2, 0xed, 0xaf, 0x55, + 0xd4, 0xcc, 0x35, 0x7c, 0x5d, 0x94, 0xc0, 0x87, 0xa8, 0x61, 0xb6, 0x04, 0xb7, 0x8b, 0x99, 0x9b, + 0x5e, 0x1a, 0x07, 0x5f, 0x9f, 0x44, 0xb7, 0xfd, 0xe1, 0xc7, 0xaf, 0x2f, 0x95, 0x25, 0xbc, 0xa8, + 0x37, 0x39, 0xdb, 0xd2, 0x9b, 0x8e, 0x3f, 0x59, 0x08, 0x5d, 0x75, 0x14, 0xaf, 0x8d, 0xe1, 0xa6, + 0x7b, 0xec, 0x1c, 0xde, 0x7c, 0x0c, 0x0d, 0xa2, 0xbb, 0xa6, 0x89, 0x2c, 0xe3, 0xff, 0x4b, 0x22, + 0x99, 0x29, 0x7e, 0x82, 0x9a, 0x13, 0x03, 0x83, 0xed, 0x31, 0x97, 0x3f, 0x46, 0xcb, 0xb9, 0x35, + 0xe3, 0xc4, 0xdc, 0xd2, 0xd6, 0xe0, 0x18, 0xb7, 0x4a, 0xf0, 0x54, 0x82, 0xd0, 0x37, 0x3d, 0x45, + 0x8b, 0x93, 0xe2, 0x62, 0x03, 0x32, 0xa3, 0x37, 0x8e, 0x33, 0xeb, 0xc8, 0x14, 0xb8, 0xa7, 0x0b, + 0xdc, 0x76, 0x57, 0xcb, 0x02, 0x4a, 0x90, 0x70, 0x48, 0x59, 0xe4, 0x43, 0x9e, 0xb7, 0x67, 0x6d, + 0x3e, 0xeb, 0x7e, 0xbb, 0xec, 0x58, 0xdf, 0x2f, 0x3b, 0xd6, 0xcf, 0xcb, 0x8e, 0xf5, 0xf6, 0xd1, + 0xbf, 0xbf, 0x90, 0x13, 0xef, 0x70, 0xaf, 0xae, 0x1f, 0xc4, 0x9d, 0xdf, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x8b, 0x9e, 0x82, 0xa4, 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -696,6 +705,20 @@ func (m *InfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.Columns) > 0 { + for iNdEx := len(m.Columns) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Columns[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintInfo(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } if len(m.NavColor) > 0 { i -= len(m.NavColor) copy(dAtA[i:], m.NavColor) @@ -996,6 +1019,12 @@ func (m *InfoResponse) Size() (n int) { if l > 0 { n += 1 + l + sovInfo(uint64(l)) } + if len(m.Columns) > 0 { + for _, e := range m.Columns { + l = e.Size() + n += 1 + l + sovInfo(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1394,6 +1423,40 @@ func (m *InfoResponse) Unmarshal(dAtA []byte) error { } m.NavColor = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Columns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowInfo + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthInfo + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthInfo + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Columns = append(m.Columns, &v1alpha1.Column{}) + if err := m.Columns[len(m.Columns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipInfo(dAtA[iNdEx:]) diff --git a/pkg/apiclient/info/info.proto b/pkg/apiclient/info/info.proto index 118d71c8a960..4af6030dd00c 100644 --- a/pkg/apiclient/info/info.proto +++ b/pkg/apiclient/info/info.proto @@ -15,6 +15,7 @@ message InfoResponse { // which modals to show map modals = 3; string navColor = 4; + repeated jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.Column columns = 5; } message GetVersionRequest { diff --git a/pkg/apiclient/offline-client.go b/pkg/apiclient/offline-client.go index e260b2c06c08..9446a71240b0 100644 --- a/pkg/apiclient/offline-client.go +++ b/pkg/apiclient/offline-client.go @@ -10,38 +10,152 @@ import ( workflowpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflow" workflowarchivepkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflowarchive" "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflowtemplate" + wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/util/file" + "github.com/argoproj/argo-workflows/v3/workflow/templateresolution" + + "sigs.k8s.io/yaml" ) -type offlineClient struct{} +type offlineWorkflowTemplateGetterMap map[string]templateresolution.WorkflowTemplateNamespacedGetter + +func (m offlineWorkflowTemplateGetterMap) GetNamespaceGetter(namespace string) templateresolution.WorkflowTemplateNamespacedGetter { + v := m[namespace] + if v == nil { + return offlineWorkflowTemplateNamespacedGetter{ + workflowTemplates: map[string]*wfv1.WorkflowTemplate{}, + namespace: namespace, + } + } + + return m[namespace] +} + +type offlineClient struct { + clusterWorkflowTemplateGetter templateresolution.ClusterWorkflowTemplateGetter + namespacedWorkflowTemplateGetterMap offlineWorkflowTemplateGetterMap +} -var NotImplError error = fmt.Errorf("Not implemented for offline client, only valid for kind '--kinds=workflows'") +var OfflineErr = fmt.Errorf("not supported when you are in offline mode") var _ Client = &offlineClient{} -func newOfflineClient() (context.Context, Client, error) { - return context.Background(), &offlineClient{}, nil +// newOfflineClient creates a client that keeps all files (or files recursively contained within a path) given to it in memory. +// It is useful for linting a set of files without having to connect to a cluster. +func newOfflineClient(paths []string) (context.Context, Client, error) { + clusterWorkflowTemplateGetter := &offlineClusterWorkflowTemplateGetter{ + clusterWorkflowTemplates: map[string]*wfv1.ClusterWorkflowTemplate{}, + } + workflowTemplateGetters := offlineWorkflowTemplateGetterMap{} + + for _, basePath := range paths { + err := file.WalkManifests(basePath, func(path string, bytes []byte) error { + var generic map[string]interface{} + if err := yaml.Unmarshal(bytes, &generic); err != nil { + return fmt.Errorf("failed to parse YAML from file %s: %w", path, err) + } + switch generic["kind"] { + case "ClusterWorkflowTemplate": + cwftmpl := new(wfv1.ClusterWorkflowTemplate) + if err := yaml.Unmarshal(bytes, &cwftmpl); err != nil { + return fmt.Errorf("failed to unmarshal file %s as a ClusterWorkflowTemplate: %w", path, err) + } + + if _, ok := clusterWorkflowTemplateGetter.clusterWorkflowTemplates[cwftmpl.Name]; ok { + return fmt.Errorf("duplicate ClusterWorkflowTemplate found: %q", cwftmpl.Name) + } + clusterWorkflowTemplateGetter.clusterWorkflowTemplates[cwftmpl.Name] = cwftmpl + + case "WorkflowTemplate": + wftmpl := new(wfv1.WorkflowTemplate) + if err := yaml.Unmarshal(bytes, &wftmpl); err != nil { + return fmt.Errorf("failed to unmarshal file %s as a WorkflowTemplate: %w", path, err) + } + getter, ok := workflowTemplateGetters[wftmpl.Namespace] + if !ok { + getter = &offlineWorkflowTemplateNamespacedGetter{ + namespace: wftmpl.Namespace, + workflowTemplates: map[string]*wfv1.WorkflowTemplate{}, + } + workflowTemplateGetters[wftmpl.Namespace] = getter + } + + if _, ok := getter.(*offlineWorkflowTemplateNamespacedGetter).workflowTemplates[wftmpl.Name]; ok { + return fmt.Errorf("duplicate WorkflowTemplate found: %q", wftmpl.Name) + } + getter.(*offlineWorkflowTemplateNamespacedGetter).workflowTemplates[wftmpl.Name] = wftmpl + } + + return nil + }) + + if err != nil { + return nil, nil, err + } + } + + return context.Background(), &offlineClient{ + clusterWorkflowTemplateGetter: clusterWorkflowTemplateGetter, + namespacedWorkflowTemplateGetterMap: workflowTemplateGetters, + }, nil +} + +func (c *offlineClient) NewWorkflowServiceClient() workflowpkg.WorkflowServiceClient { + return &errorTranslatingWorkflowServiceClient{OfflineWorkflowServiceClient{ + clusterWorkflowTemplateGetter: c.clusterWorkflowTemplateGetter, + namespacedWorkflowTemplateGetterMap: c.namespacedWorkflowTemplateGetterMap, + }} +} + +func (c *offlineClient) NewCronWorkflowServiceClient() (cronworkflow.CronWorkflowServiceClient, error) { + return &errorTranslatingCronWorkflowServiceClient{OfflineCronWorkflowServiceClient{ + clusterWorkflowTemplateGetter: c.clusterWorkflowTemplateGetter, + namespacedWorkflowTemplateGetterMap: c.namespacedWorkflowTemplateGetterMap, + }}, nil } -func (a *offlineClient) NewWorkflowServiceClient() workflowpkg.WorkflowServiceClient { - return &errorTranslatingWorkflowServiceClient{OfflineWorkflowServiceClient{}} +func (c *offlineClient) NewWorkflowTemplateServiceClient() (workflowtemplate.WorkflowTemplateServiceClient, error) { + return &errorTranslatingWorkflowTemplateServiceClient{OfflineWorkflowTemplateServiceClient{ + clusterWorkflowTemplateGetter: c.clusterWorkflowTemplateGetter, + namespacedWorkflowTemplateGetterMap: c.namespacedWorkflowTemplateGetterMap, + }}, nil } -func (a *offlineClient) NewCronWorkflowServiceClient() (cronworkflow.CronWorkflowServiceClient, error) { - return nil, NotImplError +func (c *offlineClient) NewClusterWorkflowTemplateServiceClient() (clusterworkflowtemplate.ClusterWorkflowTemplateServiceClient, error) { + return &errorTranslatingWorkflowClusterTemplateServiceClient{OfflineClusterWorkflowTemplateServiceClient{ + clusterWorkflowTemplateGetter: c.clusterWorkflowTemplateGetter, + namespacedWorkflowTemplateGetterMap: c.namespacedWorkflowTemplateGetterMap, + }}, nil } -func (a *offlineClient) NewWorkflowTemplateServiceClient() (workflowtemplate.WorkflowTemplateServiceClient, error) { - return nil, NotImplError +func (c *offlineClient) NewArchivedWorkflowServiceClient() (workflowarchivepkg.ArchivedWorkflowServiceClient, error) { + return nil, NoArgoServerErr } -func (a *offlineClient) NewArchivedWorkflowServiceClient() (workflowarchivepkg.ArchivedWorkflowServiceClient, error) { - return nil, NotImplError +func (c *offlineClient) NewInfoServiceClient() (infopkg.InfoServiceClient, error) { + return nil, NoArgoServerErr } -func (a *offlineClient) NewInfoServiceClient() (infopkg.InfoServiceClient, error) { - return nil, NotImplError +type offlineWorkflowTemplateNamespacedGetter struct { + namespace string + workflowTemplates map[string]*wfv1.WorkflowTemplate } -func (a *offlineClient) NewClusterWorkflowTemplateServiceClient() (clusterworkflowtemplate.ClusterWorkflowTemplateServiceClient, error) { - return nil, NotImplError +func (w offlineWorkflowTemplateNamespacedGetter) Get(name string) (*wfv1.WorkflowTemplate, error) { + if v, ok := w.workflowTemplates[name]; ok { + return v, nil + } + return nil, fmt.Errorf("couldn't find workflow template %q in namespace %q", name, w.namespace) +} + +type offlineClusterWorkflowTemplateGetter struct { + clusterWorkflowTemplates map[string]*wfv1.ClusterWorkflowTemplate +} + +func (o offlineClusterWorkflowTemplateGetter) Get(name string) (*wfv1.ClusterWorkflowTemplate, error) { + if v, ok := o.clusterWorkflowTemplates[name]; ok { + return v, nil + } + + return nil, fmt.Errorf("couldn't find cluster workflow template %q", name) } diff --git a/pkg/apiclient/offline-cluster-workflow-template-service-client.go b/pkg/apiclient/offline-cluster-workflow-template-service-client.go new file mode 100644 index 000000000000..51795f5ed856 --- /dev/null +++ b/pkg/apiclient/offline-cluster-workflow-template-service-client.go @@ -0,0 +1,47 @@ +package apiclient + +import ( + "context" + + "google.golang.org/grpc" + + clusterworkflowtmplpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/clusterworkflowtemplate" + "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/workflow/templateresolution" + "github.com/argoproj/argo-workflows/v3/workflow/validate" +) + +type OfflineClusterWorkflowTemplateServiceClient struct { + clusterWorkflowTemplateGetter templateresolution.ClusterWorkflowTemplateGetter + namespacedWorkflowTemplateGetterMap offlineWorkflowTemplateGetterMap +} + +var _ clusterworkflowtmplpkg.ClusterWorkflowTemplateServiceClient = &OfflineClusterWorkflowTemplateServiceClient{} + +func (o OfflineClusterWorkflowTemplateServiceClient) CreateClusterWorkflowTemplate(ctx context.Context, req *clusterworkflowtmplpkg.ClusterWorkflowTemplateCreateRequest, opts ...grpc.CallOption) (*v1alpha1.ClusterWorkflowTemplate, error) { + return nil, OfflineErr +} + +func (o OfflineClusterWorkflowTemplateServiceClient) GetClusterWorkflowTemplate(ctx context.Context, req *clusterworkflowtmplpkg.ClusterWorkflowTemplateGetRequest, opts ...grpc.CallOption) (*v1alpha1.ClusterWorkflowTemplate, error) { + return nil, OfflineErr +} + +func (o OfflineClusterWorkflowTemplateServiceClient) ListClusterWorkflowTemplates(ctx context.Context, req *clusterworkflowtmplpkg.ClusterWorkflowTemplateListRequest, opts ...grpc.CallOption) (*v1alpha1.ClusterWorkflowTemplateList, error) { + return nil, OfflineErr +} + +func (o OfflineClusterWorkflowTemplateServiceClient) UpdateClusterWorkflowTemplate(ctx context.Context, req *clusterworkflowtmplpkg.ClusterWorkflowTemplateUpdateRequest, opts ...grpc.CallOption) (*v1alpha1.ClusterWorkflowTemplate, error) { + return nil, OfflineErr +} + +func (o OfflineClusterWorkflowTemplateServiceClient) DeleteClusterWorkflowTemplate(ctx context.Context, req *clusterworkflowtmplpkg.ClusterWorkflowTemplateDeleteRequest, opts ...grpc.CallOption) (*clusterworkflowtmplpkg.ClusterWorkflowTemplateDeleteResponse, error) { + return nil, OfflineErr +} + +func (o OfflineClusterWorkflowTemplateServiceClient) LintClusterWorkflowTemplate(ctx context.Context, req *clusterworkflowtmplpkg.ClusterWorkflowTemplateLintRequest, opts ...grpc.CallOption) (*v1alpha1.ClusterWorkflowTemplate, error) { + err := validate.ValidateClusterWorkflowTemplate(nil, o.clusterWorkflowTemplateGetter, req.Template, validate.ValidateOpts{Lint: true}) + if err != nil { + return nil, err + } + return req.Template, nil +} diff --git a/pkg/apiclient/offline-cron-workflow-service-client.go b/pkg/apiclient/offline-cron-workflow-service-client.go new file mode 100644 index 000000000000..6104a207c89b --- /dev/null +++ b/pkg/apiclient/offline-cron-workflow-service-client.go @@ -0,0 +1,55 @@ +package apiclient + +import ( + "context" + + "google.golang.org/grpc" + + "github.com/argoproj/argo-workflows/v3/pkg/apiclient/cronworkflow" + "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/workflow/templateresolution" + "github.com/argoproj/argo-workflows/v3/workflow/validate" +) + +type OfflineCronWorkflowServiceClient struct { + clusterWorkflowTemplateGetter templateresolution.ClusterWorkflowTemplateGetter + namespacedWorkflowTemplateGetterMap offlineWorkflowTemplateGetterMap +} + +var _ cronworkflow.CronWorkflowServiceClient = &OfflineCronWorkflowServiceClient{} + +func (o OfflineCronWorkflowServiceClient) LintCronWorkflow(ctx context.Context, req *cronworkflow.LintCronWorkflowRequest, _ ...grpc.CallOption) (*v1alpha1.CronWorkflow, error) { + err := validate.ValidateCronWorkflow(o.namespacedWorkflowTemplateGetterMap.GetNamespaceGetter(req.Namespace), o.clusterWorkflowTemplateGetter, req.CronWorkflow) + if err != nil { + return nil, err + } + return req.CronWorkflow, nil +} + +func (o OfflineCronWorkflowServiceClient) CreateCronWorkflow(ctx context.Context, req *cronworkflow.CreateCronWorkflowRequest, _ ...grpc.CallOption) (*v1alpha1.CronWorkflow, error) { + return nil, OfflineErr +} + +func (o OfflineCronWorkflowServiceClient) ListCronWorkflows(ctx context.Context, req *cronworkflow.ListCronWorkflowsRequest, _ ...grpc.CallOption) (*v1alpha1.CronWorkflowList, error) { + return nil, OfflineErr +} + +func (o OfflineCronWorkflowServiceClient) GetCronWorkflow(ctx context.Context, req *cronworkflow.GetCronWorkflowRequest, _ ...grpc.CallOption) (*v1alpha1.CronWorkflow, error) { + return nil, OfflineErr +} + +func (o OfflineCronWorkflowServiceClient) UpdateCronWorkflow(ctx context.Context, req *cronworkflow.UpdateCronWorkflowRequest, _ ...grpc.CallOption) (*v1alpha1.CronWorkflow, error) { + return nil, OfflineErr +} + +func (o OfflineCronWorkflowServiceClient) DeleteCronWorkflow(ctx context.Context, req *cronworkflow.DeleteCronWorkflowRequest, _ ...grpc.CallOption) (*cronworkflow.CronWorkflowDeletedResponse, error) { + return nil, OfflineErr +} + +func (o OfflineCronWorkflowServiceClient) ResumeCronWorkflow(ctx context.Context, req *cronworkflow.CronWorkflowResumeRequest, _ ...grpc.CallOption) (*v1alpha1.CronWorkflow, error) { + return nil, OfflineErr +} + +func (o OfflineCronWorkflowServiceClient) SuspendCronWorkflow(ctx context.Context, req *cronworkflow.CronWorkflowSuspendRequest, _ ...grpc.CallOption) (*v1alpha1.CronWorkflow, error) { + return nil, OfflineErr +} diff --git a/pkg/apiclient/offline-workflow-service-client.go b/pkg/apiclient/offline-workflow-service-client.go index add75290ceaf..706db86518fb 100644 --- a/pkg/apiclient/offline-workflow-service-client.go +++ b/pkg/apiclient/offline-workflow-service-client.go @@ -2,18 +2,19 @@ package apiclient import ( "context" - "fmt" "google.golang.org/grpc" workflowpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflow" wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/workflow/templateresolution" "github.com/argoproj/argo-workflows/v3/workflow/validate" ) -var OfflineErr = fmt.Errorf("not supported when you are in offline mode") - -type OfflineWorkflowServiceClient struct{} +type OfflineWorkflowServiceClient struct { + clusterWorkflowTemplateGetter templateresolution.ClusterWorkflowTemplateGetter + namespacedWorkflowTemplateGetterMap offlineWorkflowTemplateGetterMap +} var _ workflowpkg.WorkflowServiceClient = &OfflineWorkflowServiceClient{} @@ -69,20 +70,8 @@ func (o OfflineWorkflowServiceClient) SetWorkflow(context.Context, *workflowpkg. return nil, OfflineErr } -type offlineWorkflowTemplateNamespacedGetter struct{} - -func (w offlineWorkflowTemplateNamespacedGetter) Get(name string) (*wfv1.WorkflowTemplate, error) { - return nil, OfflineErr -} - -type offlineClusterWorkflowTemplateNamespacedGetter struct{} - -func (o offlineClusterWorkflowTemplateNamespacedGetter) Get(name string) (*wfv1.ClusterWorkflowTemplate, error) { - return nil, OfflineErr -} - func (o OfflineWorkflowServiceClient) LintWorkflow(_ context.Context, req *workflowpkg.WorkflowLintRequest, _ ...grpc.CallOption) (*wfv1.Workflow, error) { - err := validate.ValidateWorkflow(&offlineWorkflowTemplateNamespacedGetter{}, &offlineClusterWorkflowTemplateNamespacedGetter{}, req.Workflow, validate.ValidateOpts{Lint: true}) + err := validate.ValidateWorkflow(o.namespacedWorkflowTemplateGetterMap.GetNamespaceGetter(req.Namespace), o.clusterWorkflowTemplateGetter, req.Workflow, validate.ValidateOpts{Lint: true}) if err != nil { return nil, err } diff --git a/pkg/apiclient/offline-workflow-template-service-client.go b/pkg/apiclient/offline-workflow-template-service-client.go new file mode 100644 index 000000000000..429c232d1094 --- /dev/null +++ b/pkg/apiclient/offline-workflow-template-service-client.go @@ -0,0 +1,47 @@ +package apiclient + +import ( + "context" + + "google.golang.org/grpc" + + workflowtemplatepkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflowtemplate" + "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/workflow/templateresolution" + "github.com/argoproj/argo-workflows/v3/workflow/validate" +) + +type OfflineWorkflowTemplateServiceClient struct { + clusterWorkflowTemplateGetter templateresolution.ClusterWorkflowTemplateGetter + namespacedWorkflowTemplateGetterMap offlineWorkflowTemplateGetterMap +} + +var _ workflowtemplatepkg.WorkflowTemplateServiceClient = &OfflineWorkflowTemplateServiceClient{} + +func (o OfflineWorkflowTemplateServiceClient) CreateWorkflowTemplate(ctx context.Context, req *workflowtemplatepkg.WorkflowTemplateCreateRequest, _ ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error) { + return nil, OfflineErr +} + +func (o OfflineWorkflowTemplateServiceClient) GetWorkflowTemplate(ctx context.Context, req *workflowtemplatepkg.WorkflowTemplateGetRequest, _ ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error) { + return nil, OfflineErr +} + +func (o OfflineWorkflowTemplateServiceClient) ListWorkflowTemplates(ctx context.Context, req *workflowtemplatepkg.WorkflowTemplateListRequest, _ ...grpc.CallOption) (*v1alpha1.WorkflowTemplateList, error) { + return nil, OfflineErr +} + +func (o OfflineWorkflowTemplateServiceClient) UpdateWorkflowTemplate(ctx context.Context, req *workflowtemplatepkg.WorkflowTemplateUpdateRequest, _ ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error) { + return nil, OfflineErr +} + +func (o OfflineWorkflowTemplateServiceClient) DeleteWorkflowTemplate(ctx context.Context, req *workflowtemplatepkg.WorkflowTemplateDeleteRequest, _ ...grpc.CallOption) (*workflowtemplatepkg.WorkflowTemplateDeleteResponse, error) { + return nil, OfflineErr +} + +func (o OfflineWorkflowTemplateServiceClient) LintWorkflowTemplate(ctx context.Context, req *workflowtemplatepkg.WorkflowTemplateLintRequest, _ ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error) { + err := validate.ValidateWorkflowTemplate(o.namespacedWorkflowTemplateGetterMap.GetNamespaceGetter(req.Namespace), o.clusterWorkflowTemplateGetter, req.Template, validate.ValidateOpts{Lint: true}) + if err != nil { + return nil, err + } + return req.Template, nil +} diff --git a/pkg/apiclient/workflow/mocks/WorkflowServiceClient.go b/pkg/apiclient/workflow/mocks/WorkflowServiceClient.go index 226a1c1a24ae..0e5ee916a994 100644 --- a/pkg/apiclient/workflow/mocks/WorkflowServiceClient.go +++ b/pkg/apiclient/workflow/mocks/WorkflowServiceClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.10.0. DO NOT EDIT. +// Code generated by mockery v2.26.0. DO NOT EDIT. package mocks @@ -31,6 +31,10 @@ func (_m *WorkflowServiceClient) CreateWorkflow(ctx context.Context, in *workflo ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowCreateRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowCreateRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -39,7 +43,6 @@ func (_m *WorkflowServiceClient) CreateWorkflow(ctx context.Context, in *workflo } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowCreateRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -61,6 +64,10 @@ func (_m *WorkflowServiceClient) DeleteWorkflow(ctx context.Context, in *workflo ret := _m.Called(_ca...) var r0 *workflow.WorkflowDeleteResponse + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowDeleteRequest, ...grpc.CallOption) (*workflow.WorkflowDeleteResponse, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowDeleteRequest, ...grpc.CallOption) *workflow.WorkflowDeleteResponse); ok { r0 = rf(ctx, in, opts...) } else { @@ -69,7 +76,6 @@ func (_m *WorkflowServiceClient) DeleteWorkflow(ctx context.Context, in *workflo } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowDeleteRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -91,6 +97,10 @@ func (_m *WorkflowServiceClient) GetWorkflow(ctx context.Context, in *workflow.W ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowGetRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowGetRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -99,7 +109,6 @@ func (_m *WorkflowServiceClient) GetWorkflow(ctx context.Context, in *workflow.W } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowGetRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -121,6 +130,10 @@ func (_m *WorkflowServiceClient) LintWorkflow(ctx context.Context, in *workflow. ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowLintRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowLintRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -129,7 +142,6 @@ func (_m *WorkflowServiceClient) LintWorkflow(ctx context.Context, in *workflow. } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowLintRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -151,6 +163,10 @@ func (_m *WorkflowServiceClient) ListWorkflows(ctx context.Context, in *workflow ret := _m.Called(_ca...) var r0 *v1alpha1.WorkflowList + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowListRequest, ...grpc.CallOption) (*v1alpha1.WorkflowList, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowListRequest, ...grpc.CallOption) *v1alpha1.WorkflowList); ok { r0 = rf(ctx, in, opts...) } else { @@ -159,7 +175,6 @@ func (_m *WorkflowServiceClient) ListWorkflows(ctx context.Context, in *workflow } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowListRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -181,6 +196,10 @@ func (_m *WorkflowServiceClient) PodLogs(ctx context.Context, in *workflow.Workf ret := _m.Called(_ca...) var r0 workflow.WorkflowService_PodLogsClient + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowLogRequest, ...grpc.CallOption) (workflow.WorkflowService_PodLogsClient, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowLogRequest, ...grpc.CallOption) workflow.WorkflowService_PodLogsClient); ok { r0 = rf(ctx, in, opts...) } else { @@ -189,7 +208,6 @@ func (_m *WorkflowServiceClient) PodLogs(ctx context.Context, in *workflow.Workf } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowLogRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -211,6 +229,10 @@ func (_m *WorkflowServiceClient) ResubmitWorkflow(ctx context.Context, in *workf ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowResubmitRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowResubmitRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -219,7 +241,6 @@ func (_m *WorkflowServiceClient) ResubmitWorkflow(ctx context.Context, in *workf } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowResubmitRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -241,6 +262,10 @@ func (_m *WorkflowServiceClient) ResumeWorkflow(ctx context.Context, in *workflo ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowResumeRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowResumeRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -249,7 +274,6 @@ func (_m *WorkflowServiceClient) ResumeWorkflow(ctx context.Context, in *workflo } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowResumeRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -271,6 +295,10 @@ func (_m *WorkflowServiceClient) RetryWorkflow(ctx context.Context, in *workflow ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowRetryRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowRetryRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -279,7 +307,6 @@ func (_m *WorkflowServiceClient) RetryWorkflow(ctx context.Context, in *workflow } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowRetryRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -301,6 +328,10 @@ func (_m *WorkflowServiceClient) SetWorkflow(ctx context.Context, in *workflow.W ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowSetRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowSetRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -309,7 +340,6 @@ func (_m *WorkflowServiceClient) SetWorkflow(ctx context.Context, in *workflow.W } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowSetRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -331,6 +361,10 @@ func (_m *WorkflowServiceClient) StopWorkflow(ctx context.Context, in *workflow. ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowStopRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowStopRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -339,7 +373,6 @@ func (_m *WorkflowServiceClient) StopWorkflow(ctx context.Context, in *workflow. } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowStopRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -361,6 +394,10 @@ func (_m *WorkflowServiceClient) SubmitWorkflow(ctx context.Context, in *workflo ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowSubmitRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowSubmitRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -369,7 +406,6 @@ func (_m *WorkflowServiceClient) SubmitWorkflow(ctx context.Context, in *workflo } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowSubmitRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -391,6 +427,10 @@ func (_m *WorkflowServiceClient) SuspendWorkflow(ctx context.Context, in *workfl ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowSuspendRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowSuspendRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -399,7 +439,6 @@ func (_m *WorkflowServiceClient) SuspendWorkflow(ctx context.Context, in *workfl } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowSuspendRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -421,6 +460,10 @@ func (_m *WorkflowServiceClient) TerminateWorkflow(ctx context.Context, in *work ret := _m.Called(_ca...) var r0 *v1alpha1.Workflow + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowTerminateRequest, ...grpc.CallOption) (*v1alpha1.Workflow, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowTerminateRequest, ...grpc.CallOption) *v1alpha1.Workflow); ok { r0 = rf(ctx, in, opts...) } else { @@ -429,7 +472,6 @@ func (_m *WorkflowServiceClient) TerminateWorkflow(ctx context.Context, in *work } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowTerminateRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -451,6 +493,10 @@ func (_m *WorkflowServiceClient) WatchEvents(ctx context.Context, in *workflow.W ret := _m.Called(_ca...) var r0 workflow.WorkflowService_WatchEventsClient + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WatchEventsRequest, ...grpc.CallOption) (workflow.WorkflowService_WatchEventsClient, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WatchEventsRequest, ...grpc.CallOption) workflow.WorkflowService_WatchEventsClient); ok { r0 = rf(ctx, in, opts...) } else { @@ -459,7 +505,6 @@ func (_m *WorkflowServiceClient) WatchEvents(ctx context.Context, in *workflow.W } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WatchEventsRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -481,6 +526,10 @@ func (_m *WorkflowServiceClient) WatchWorkflows(ctx context.Context, in *workflo ret := _m.Called(_ca...) var r0 workflow.WorkflowService_WatchWorkflowsClient + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WatchWorkflowsRequest, ...grpc.CallOption) (workflow.WorkflowService_WatchWorkflowsClient, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WatchWorkflowsRequest, ...grpc.CallOption) workflow.WorkflowService_WatchWorkflowsClient); ok { r0 = rf(ctx, in, opts...) } else { @@ -489,7 +538,6 @@ func (_m *WorkflowServiceClient) WatchWorkflows(ctx context.Context, in *workflo } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WatchWorkflowsRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -511,6 +559,10 @@ func (_m *WorkflowServiceClient) WorkflowLogs(ctx context.Context, in *workflow. ret := _m.Called(_ca...) var r0 workflow.WorkflowService_WorkflowLogsClient + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowLogRequest, ...grpc.CallOption) (workflow.WorkflowService_WorkflowLogsClient, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflow.WorkflowLogRequest, ...grpc.CallOption) workflow.WorkflowService_WorkflowLogsClient); ok { r0 = rf(ctx, in, opts...) } else { @@ -519,7 +571,6 @@ func (_m *WorkflowServiceClient) WorkflowLogs(ctx context.Context, in *workflow. } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflow.WorkflowLogRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -528,3 +579,18 @@ func (_m *WorkflowServiceClient) WorkflowLogs(ctx context.Context, in *workflow. return r0, r1 } + +type mockConstructorTestingTNewWorkflowServiceClient interface { + mock.TestingT + Cleanup(func()) +} + +// NewWorkflowServiceClient creates a new instance of WorkflowServiceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewWorkflowServiceClient(t mockConstructorTestingTNewWorkflowServiceClient) *WorkflowServiceClient { + mock := &WorkflowServiceClient{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/apiclient/workflowtemplate/mocks/WorkflowTemplateServiceClient.go b/pkg/apiclient/workflowtemplate/mocks/WorkflowTemplateServiceClient.go index 9be32335d0a5..1e5a68880d64 100644 --- a/pkg/apiclient/workflowtemplate/mocks/WorkflowTemplateServiceClient.go +++ b/pkg/apiclient/workflowtemplate/mocks/WorkflowTemplateServiceClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.10.0. DO NOT EDIT. +// Code generated by mockery v2.26.0. DO NOT EDIT. package mocks @@ -31,6 +31,10 @@ func (_m *WorkflowTemplateServiceClient) CreateWorkflowTemplate(ctx context.Cont ret := _m.Called(_ca...) var r0 *v1alpha1.WorkflowTemplate + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateCreateRequest, ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateCreateRequest, ...grpc.CallOption) *v1alpha1.WorkflowTemplate); ok { r0 = rf(ctx, in, opts...) } else { @@ -39,7 +43,6 @@ func (_m *WorkflowTemplateServiceClient) CreateWorkflowTemplate(ctx context.Cont } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflowtemplate.WorkflowTemplateCreateRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -61,6 +64,10 @@ func (_m *WorkflowTemplateServiceClient) DeleteWorkflowTemplate(ctx context.Cont ret := _m.Called(_ca...) var r0 *workflowtemplate.WorkflowTemplateDeleteResponse + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateDeleteRequest, ...grpc.CallOption) (*workflowtemplate.WorkflowTemplateDeleteResponse, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateDeleteRequest, ...grpc.CallOption) *workflowtemplate.WorkflowTemplateDeleteResponse); ok { r0 = rf(ctx, in, opts...) } else { @@ -69,7 +76,6 @@ func (_m *WorkflowTemplateServiceClient) DeleteWorkflowTemplate(ctx context.Cont } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflowtemplate.WorkflowTemplateDeleteRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -91,6 +97,10 @@ func (_m *WorkflowTemplateServiceClient) GetWorkflowTemplate(ctx context.Context ret := _m.Called(_ca...) var r0 *v1alpha1.WorkflowTemplate + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateGetRequest, ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateGetRequest, ...grpc.CallOption) *v1alpha1.WorkflowTemplate); ok { r0 = rf(ctx, in, opts...) } else { @@ -99,7 +109,6 @@ func (_m *WorkflowTemplateServiceClient) GetWorkflowTemplate(ctx context.Context } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflowtemplate.WorkflowTemplateGetRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -121,6 +130,10 @@ func (_m *WorkflowTemplateServiceClient) LintWorkflowTemplate(ctx context.Contex ret := _m.Called(_ca...) var r0 *v1alpha1.WorkflowTemplate + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateLintRequest, ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateLintRequest, ...grpc.CallOption) *v1alpha1.WorkflowTemplate); ok { r0 = rf(ctx, in, opts...) } else { @@ -129,7 +142,6 @@ func (_m *WorkflowTemplateServiceClient) LintWorkflowTemplate(ctx context.Contex } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflowtemplate.WorkflowTemplateLintRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -151,6 +163,10 @@ func (_m *WorkflowTemplateServiceClient) ListWorkflowTemplates(ctx context.Conte ret := _m.Called(_ca...) var r0 *v1alpha1.WorkflowTemplateList + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateListRequest, ...grpc.CallOption) (*v1alpha1.WorkflowTemplateList, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateListRequest, ...grpc.CallOption) *v1alpha1.WorkflowTemplateList); ok { r0 = rf(ctx, in, opts...) } else { @@ -159,7 +175,6 @@ func (_m *WorkflowTemplateServiceClient) ListWorkflowTemplates(ctx context.Conte } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflowtemplate.WorkflowTemplateListRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -181,6 +196,10 @@ func (_m *WorkflowTemplateServiceClient) UpdateWorkflowTemplate(ctx context.Cont ret := _m.Called(_ca...) var r0 *v1alpha1.WorkflowTemplate + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateUpdateRequest, ...grpc.CallOption) (*v1alpha1.WorkflowTemplate, error)); ok { + return rf(ctx, in, opts...) + } if rf, ok := ret.Get(0).(func(context.Context, *workflowtemplate.WorkflowTemplateUpdateRequest, ...grpc.CallOption) *v1alpha1.WorkflowTemplate); ok { r0 = rf(ctx, in, opts...) } else { @@ -189,7 +208,6 @@ func (_m *WorkflowTemplateServiceClient) UpdateWorkflowTemplate(ctx context.Cont } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, *workflowtemplate.WorkflowTemplateUpdateRequest, ...grpc.CallOption) error); ok { r1 = rf(ctx, in, opts...) } else { @@ -198,3 +216,18 @@ func (_m *WorkflowTemplateServiceClient) UpdateWorkflowTemplate(ctx context.Cont return r0, r1 } + +type mockConstructorTestingTNewWorkflowTemplateServiceClient interface { + mock.TestingT + Cleanup(func()) +} + +// NewWorkflowTemplateServiceClient creates a new instance of WorkflowTemplateServiceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewWorkflowTemplateServiceClient(t mockConstructorTestingTNewWorkflowTemplateServiceClient) *WorkflowTemplateServiceClient { + mock := &WorkflowTemplateServiceClient{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/apis/workflow/v1alpha1/generated.pb.go b/pkg/apis/workflow/v1alpha1/generated.pb.go index c5c1d1aaa6e3..57b68ccd7ce8 100644 --- a/pkg/apis/workflow/v1alpha1/generated.pb.go +++ b/pkg/apis/workflow/v1alpha1/generated.pb.go @@ -13,7 +13,7 @@ import ( github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" k8s_io_api_core_v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1" - v1beta1 "k8s.io/api/policy/v1beta1" + v12 "k8s.io/api/policy/v1" k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" v11 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -876,10 +876,38 @@ func (m *ClusterWorkflowTemplateList) XXX_DiscardUnknown() { var xxx_messageInfo_ClusterWorkflowTemplateList proto.InternalMessageInfo +func (m *Column) Reset() { *m = Column{} } +func (*Column) ProtoMessage() {} +func (*Column) Descriptor() ([]byte, []int) { + return fileDescriptor_724696e352c3df5f, []int{30} +} +func (m *Column) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Column) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Column) XXX_Merge(src proto.Message) { + xxx_messageInfo_Column.Merge(m, src) +} +func (m *Column) XXX_Size() int { + return m.Size() +} +func (m *Column) XXX_DiscardUnknown() { + xxx_messageInfo_Column.DiscardUnknown(m) +} + +var xxx_messageInfo_Column proto.InternalMessageInfo + func (m *Condition) Reset() { *m = Condition{} } func (*Condition) ProtoMessage() {} func (*Condition) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{30} + return fileDescriptor_724696e352c3df5f, []int{31} } func (m *Condition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -907,7 +935,7 @@ var xxx_messageInfo_Condition proto.InternalMessageInfo func (m *ContainerNode) Reset() { *m = ContainerNode{} } func (*ContainerNode) ProtoMessage() {} func (*ContainerNode) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{31} + return fileDescriptor_724696e352c3df5f, []int{32} } func (m *ContainerNode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -935,7 +963,7 @@ var xxx_messageInfo_ContainerNode proto.InternalMessageInfo func (m *ContainerSetRetryStrategy) Reset() { *m = ContainerSetRetryStrategy{} } func (*ContainerSetRetryStrategy) ProtoMessage() {} func (*ContainerSetRetryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{32} + return fileDescriptor_724696e352c3df5f, []int{33} } func (m *ContainerSetRetryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -963,7 +991,7 @@ var xxx_messageInfo_ContainerSetRetryStrategy proto.InternalMessageInfo func (m *ContainerSetTemplate) Reset() { *m = ContainerSetTemplate{} } func (*ContainerSetTemplate) ProtoMessage() {} func (*ContainerSetTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{33} + return fileDescriptor_724696e352c3df5f, []int{34} } func (m *ContainerSetTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -991,7 +1019,7 @@ var xxx_messageInfo_ContainerSetTemplate proto.InternalMessageInfo func (m *ContinueOn) Reset() { *m = ContinueOn{} } func (*ContinueOn) ProtoMessage() {} func (*ContinueOn) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{34} + return fileDescriptor_724696e352c3df5f, []int{35} } func (m *ContinueOn) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1019,7 +1047,7 @@ var xxx_messageInfo_ContinueOn proto.InternalMessageInfo func (m *Counter) Reset() { *m = Counter{} } func (*Counter) ProtoMessage() {} func (*Counter) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{35} + return fileDescriptor_724696e352c3df5f, []int{36} } func (m *Counter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1047,7 +1075,7 @@ var xxx_messageInfo_Counter proto.InternalMessageInfo func (m *CreateS3BucketOptions) Reset() { *m = CreateS3BucketOptions{} } func (*CreateS3BucketOptions) ProtoMessage() {} func (*CreateS3BucketOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{36} + return fileDescriptor_724696e352c3df5f, []int{37} } func (m *CreateS3BucketOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1075,7 +1103,7 @@ var xxx_messageInfo_CreateS3BucketOptions proto.InternalMessageInfo func (m *CronWorkflow) Reset() { *m = CronWorkflow{} } func (*CronWorkflow) ProtoMessage() {} func (*CronWorkflow) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{37} + return fileDescriptor_724696e352c3df5f, []int{38} } func (m *CronWorkflow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1103,7 +1131,7 @@ var xxx_messageInfo_CronWorkflow proto.InternalMessageInfo func (m *CronWorkflowList) Reset() { *m = CronWorkflowList{} } func (*CronWorkflowList) ProtoMessage() {} func (*CronWorkflowList) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{38} + return fileDescriptor_724696e352c3df5f, []int{39} } func (m *CronWorkflowList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1131,7 +1159,7 @@ var xxx_messageInfo_CronWorkflowList proto.InternalMessageInfo func (m *CronWorkflowSpec) Reset() { *m = CronWorkflowSpec{} } func (*CronWorkflowSpec) ProtoMessage() {} func (*CronWorkflowSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{39} + return fileDescriptor_724696e352c3df5f, []int{40} } func (m *CronWorkflowSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1159,7 +1187,7 @@ var xxx_messageInfo_CronWorkflowSpec proto.InternalMessageInfo func (m *CronWorkflowStatus) Reset() { *m = CronWorkflowStatus{} } func (*CronWorkflowStatus) ProtoMessage() {} func (*CronWorkflowStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{40} + return fileDescriptor_724696e352c3df5f, []int{41} } func (m *CronWorkflowStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1187,7 +1215,7 @@ var xxx_messageInfo_CronWorkflowStatus proto.InternalMessageInfo func (m *DAGTask) Reset() { *m = DAGTask{} } func (*DAGTask) ProtoMessage() {} func (*DAGTask) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{41} + return fileDescriptor_724696e352c3df5f, []int{42} } func (m *DAGTask) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1215,7 +1243,7 @@ var xxx_messageInfo_DAGTask proto.InternalMessageInfo func (m *DAGTemplate) Reset() { *m = DAGTemplate{} } func (*DAGTemplate) ProtoMessage() {} func (*DAGTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{42} + return fileDescriptor_724696e352c3df5f, []int{43} } func (m *DAGTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1243,7 +1271,7 @@ var xxx_messageInfo_DAGTemplate proto.InternalMessageInfo func (m *Data) Reset() { *m = Data{} } func (*Data) ProtoMessage() {} func (*Data) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{43} + return fileDescriptor_724696e352c3df5f, []int{44} } func (m *Data) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1271,7 +1299,7 @@ var xxx_messageInfo_Data proto.InternalMessageInfo func (m *DataSource) Reset() { *m = DataSource{} } func (*DataSource) ProtoMessage() {} func (*DataSource) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{44} + return fileDescriptor_724696e352c3df5f, []int{45} } func (m *DataSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1299,7 +1327,7 @@ var xxx_messageInfo_DataSource proto.InternalMessageInfo func (m *Event) Reset() { *m = Event{} } func (*Event) ProtoMessage() {} func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{45} + return fileDescriptor_724696e352c3df5f, []int{46} } func (m *Event) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1327,7 +1355,7 @@ var xxx_messageInfo_Event proto.InternalMessageInfo func (m *ExecutorConfig) Reset() { *m = ExecutorConfig{} } func (*ExecutorConfig) ProtoMessage() {} func (*ExecutorConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{46} + return fileDescriptor_724696e352c3df5f, []int{47} } func (m *ExecutorConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1355,7 +1383,7 @@ var xxx_messageInfo_ExecutorConfig proto.InternalMessageInfo func (m *GCSArtifact) Reset() { *m = GCSArtifact{} } func (*GCSArtifact) ProtoMessage() {} func (*GCSArtifact) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{47} + return fileDescriptor_724696e352c3df5f, []int{48} } func (m *GCSArtifact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1383,7 +1411,7 @@ var xxx_messageInfo_GCSArtifact proto.InternalMessageInfo func (m *GCSArtifactRepository) Reset() { *m = GCSArtifactRepository{} } func (*GCSArtifactRepository) ProtoMessage() {} func (*GCSArtifactRepository) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{48} + return fileDescriptor_724696e352c3df5f, []int{49} } func (m *GCSArtifactRepository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1411,7 +1439,7 @@ var xxx_messageInfo_GCSArtifactRepository proto.InternalMessageInfo func (m *GCSBucket) Reset() { *m = GCSBucket{} } func (*GCSBucket) ProtoMessage() {} func (*GCSBucket) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{49} + return fileDescriptor_724696e352c3df5f, []int{50} } func (m *GCSBucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1439,7 +1467,7 @@ var xxx_messageInfo_GCSBucket proto.InternalMessageInfo func (m *Gauge) Reset() { *m = Gauge{} } func (*Gauge) ProtoMessage() {} func (*Gauge) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{50} + return fileDescriptor_724696e352c3df5f, []int{51} } func (m *Gauge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1467,7 +1495,7 @@ var xxx_messageInfo_Gauge proto.InternalMessageInfo func (m *GitArtifact) Reset() { *m = GitArtifact{} } func (*GitArtifact) ProtoMessage() {} func (*GitArtifact) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{51} + return fileDescriptor_724696e352c3df5f, []int{52} } func (m *GitArtifact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1495,7 +1523,7 @@ var xxx_messageInfo_GitArtifact proto.InternalMessageInfo func (m *HDFSArtifact) Reset() { *m = HDFSArtifact{} } func (*HDFSArtifact) ProtoMessage() {} func (*HDFSArtifact) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{52} + return fileDescriptor_724696e352c3df5f, []int{53} } func (m *HDFSArtifact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1523,7 +1551,7 @@ var xxx_messageInfo_HDFSArtifact proto.InternalMessageInfo func (m *HDFSArtifactRepository) Reset() { *m = HDFSArtifactRepository{} } func (*HDFSArtifactRepository) ProtoMessage() {} func (*HDFSArtifactRepository) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{53} + return fileDescriptor_724696e352c3df5f, []int{54} } func (m *HDFSArtifactRepository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1551,7 +1579,7 @@ var xxx_messageInfo_HDFSArtifactRepository proto.InternalMessageInfo func (m *HDFSConfig) Reset() { *m = HDFSConfig{} } func (*HDFSConfig) ProtoMessage() {} func (*HDFSConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{54} + return fileDescriptor_724696e352c3df5f, []int{55} } func (m *HDFSConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1579,7 +1607,7 @@ var xxx_messageInfo_HDFSConfig proto.InternalMessageInfo func (m *HDFSKrbConfig) Reset() { *m = HDFSKrbConfig{} } func (*HDFSKrbConfig) ProtoMessage() {} func (*HDFSKrbConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{55} + return fileDescriptor_724696e352c3df5f, []int{56} } func (m *HDFSKrbConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1607,7 +1635,7 @@ var xxx_messageInfo_HDFSKrbConfig proto.InternalMessageInfo func (m *HTTP) Reset() { *m = HTTP{} } func (*HTTP) ProtoMessage() {} func (*HTTP) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{56} + return fileDescriptor_724696e352c3df5f, []int{57} } func (m *HTTP) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1635,7 +1663,7 @@ var xxx_messageInfo_HTTP proto.InternalMessageInfo func (m *HTTPArtifact) Reset() { *m = HTTPArtifact{} } func (*HTTPArtifact) ProtoMessage() {} func (*HTTPArtifact) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{57} + return fileDescriptor_724696e352c3df5f, []int{58} } func (m *HTTPArtifact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1663,7 +1691,7 @@ var xxx_messageInfo_HTTPArtifact proto.InternalMessageInfo func (m *HTTPAuth) Reset() { *m = HTTPAuth{} } func (*HTTPAuth) ProtoMessage() {} func (*HTTPAuth) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{58} + return fileDescriptor_724696e352c3df5f, []int{59} } func (m *HTTPAuth) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1691,7 +1719,7 @@ var xxx_messageInfo_HTTPAuth proto.InternalMessageInfo func (m *HTTPBodySource) Reset() { *m = HTTPBodySource{} } func (*HTTPBodySource) ProtoMessage() {} func (*HTTPBodySource) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{59} + return fileDescriptor_724696e352c3df5f, []int{60} } func (m *HTTPBodySource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1719,7 +1747,7 @@ var xxx_messageInfo_HTTPBodySource proto.InternalMessageInfo func (m *HTTPHeader) Reset() { *m = HTTPHeader{} } func (*HTTPHeader) ProtoMessage() {} func (*HTTPHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{60} + return fileDescriptor_724696e352c3df5f, []int{61} } func (m *HTTPHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1747,7 +1775,7 @@ var xxx_messageInfo_HTTPHeader proto.InternalMessageInfo func (m *HTTPHeaderSource) Reset() { *m = HTTPHeaderSource{} } func (*HTTPHeaderSource) ProtoMessage() {} func (*HTTPHeaderSource) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{61} + return fileDescriptor_724696e352c3df5f, []int{62} } func (m *HTTPHeaderSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1775,7 +1803,7 @@ var xxx_messageInfo_HTTPHeaderSource proto.InternalMessageInfo func (m *Header) Reset() { *m = Header{} } func (*Header) ProtoMessage() {} func (*Header) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{62} + return fileDescriptor_724696e352c3df5f, []int{63} } func (m *Header) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1803,7 +1831,7 @@ var xxx_messageInfo_Header proto.InternalMessageInfo func (m *Histogram) Reset() { *m = Histogram{} } func (*Histogram) ProtoMessage() {} func (*Histogram) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{63} + return fileDescriptor_724696e352c3df5f, []int{64} } func (m *Histogram) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1831,7 +1859,7 @@ var xxx_messageInfo_Histogram proto.InternalMessageInfo func (m *Inputs) Reset() { *m = Inputs{} } func (*Inputs) ProtoMessage() {} func (*Inputs) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{64} + return fileDescriptor_724696e352c3df5f, []int{65} } func (m *Inputs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1859,7 +1887,7 @@ var xxx_messageInfo_Inputs proto.InternalMessageInfo func (m *Item) Reset() { *m = Item{} } func (*Item) ProtoMessage() {} func (*Item) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{65} + return fileDescriptor_724696e352c3df5f, []int{66} } func (m *Item) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1887,7 +1915,7 @@ var xxx_messageInfo_Item proto.InternalMessageInfo func (m *LabelKeys) Reset() { *m = LabelKeys{} } func (*LabelKeys) ProtoMessage() {} func (*LabelKeys) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{66} + return fileDescriptor_724696e352c3df5f, []int{67} } func (m *LabelKeys) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1915,7 +1943,7 @@ var xxx_messageInfo_LabelKeys proto.InternalMessageInfo func (m *LabelValueFrom) Reset() { *m = LabelValueFrom{} } func (*LabelValueFrom) ProtoMessage() {} func (*LabelValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{67} + return fileDescriptor_724696e352c3df5f, []int{68} } func (m *LabelValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1943,7 +1971,7 @@ var xxx_messageInfo_LabelValueFrom proto.InternalMessageInfo func (m *LabelValues) Reset() { *m = LabelValues{} } func (*LabelValues) ProtoMessage() {} func (*LabelValues) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{68} + return fileDescriptor_724696e352c3df5f, []int{69} } func (m *LabelValues) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1971,7 +1999,7 @@ var xxx_messageInfo_LabelValues proto.InternalMessageInfo func (m *LifecycleHook) Reset() { *m = LifecycleHook{} } func (*LifecycleHook) ProtoMessage() {} func (*LifecycleHook) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{69} + return fileDescriptor_724696e352c3df5f, []int{70} } func (m *LifecycleHook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1999,7 +2027,7 @@ var xxx_messageInfo_LifecycleHook proto.InternalMessageInfo func (m *Link) Reset() { *m = Link{} } func (*Link) ProtoMessage() {} func (*Link) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{70} + return fileDescriptor_724696e352c3df5f, []int{71} } func (m *Link) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2027,7 +2055,7 @@ var xxx_messageInfo_Link proto.InternalMessageInfo func (m *ManifestFrom) Reset() { *m = ManifestFrom{} } func (*ManifestFrom) ProtoMessage() {} func (*ManifestFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{71} + return fileDescriptor_724696e352c3df5f, []int{72} } func (m *ManifestFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2055,7 +2083,7 @@ var xxx_messageInfo_ManifestFrom proto.InternalMessageInfo func (m *MemoizationStatus) Reset() { *m = MemoizationStatus{} } func (*MemoizationStatus) ProtoMessage() {} func (*MemoizationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{72} + return fileDescriptor_724696e352c3df5f, []int{73} } func (m *MemoizationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2083,7 +2111,7 @@ var xxx_messageInfo_MemoizationStatus proto.InternalMessageInfo func (m *Memoize) Reset() { *m = Memoize{} } func (*Memoize) ProtoMessage() {} func (*Memoize) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{73} + return fileDescriptor_724696e352c3df5f, []int{74} } func (m *Memoize) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2111,7 +2139,7 @@ var xxx_messageInfo_Memoize proto.InternalMessageInfo func (m *Metadata) Reset() { *m = Metadata{} } func (*Metadata) ProtoMessage() {} func (*Metadata) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{74} + return fileDescriptor_724696e352c3df5f, []int{75} } func (m *Metadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2139,7 +2167,7 @@ var xxx_messageInfo_Metadata proto.InternalMessageInfo func (m *MetricLabel) Reset() { *m = MetricLabel{} } func (*MetricLabel) ProtoMessage() {} func (*MetricLabel) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{75} + return fileDescriptor_724696e352c3df5f, []int{76} } func (m *MetricLabel) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2167,7 +2195,7 @@ var xxx_messageInfo_MetricLabel proto.InternalMessageInfo func (m *Metrics) Reset() { *m = Metrics{} } func (*Metrics) ProtoMessage() {} func (*Metrics) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{76} + return fileDescriptor_724696e352c3df5f, []int{77} } func (m *Metrics) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2195,7 +2223,7 @@ var xxx_messageInfo_Metrics proto.InternalMessageInfo func (m *Mutex) Reset() { *m = Mutex{} } func (*Mutex) ProtoMessage() {} func (*Mutex) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{77} + return fileDescriptor_724696e352c3df5f, []int{78} } func (m *Mutex) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2223,7 +2251,7 @@ var xxx_messageInfo_Mutex proto.InternalMessageInfo func (m *MutexHolding) Reset() { *m = MutexHolding{} } func (*MutexHolding) ProtoMessage() {} func (*MutexHolding) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{78} + return fileDescriptor_724696e352c3df5f, []int{79} } func (m *MutexHolding) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2251,7 +2279,7 @@ var xxx_messageInfo_MutexHolding proto.InternalMessageInfo func (m *MutexStatus) Reset() { *m = MutexStatus{} } func (*MutexStatus) ProtoMessage() {} func (*MutexStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{79} + return fileDescriptor_724696e352c3df5f, []int{80} } func (m *MutexStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2279,7 +2307,7 @@ var xxx_messageInfo_MutexStatus proto.InternalMessageInfo func (m *NodeResult) Reset() { *m = NodeResult{} } func (*NodeResult) ProtoMessage() {} func (*NodeResult) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{80} + return fileDescriptor_724696e352c3df5f, []int{81} } func (m *NodeResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2307,7 +2335,7 @@ var xxx_messageInfo_NodeResult proto.InternalMessageInfo func (m *NodeStatus) Reset() { *m = NodeStatus{} } func (*NodeStatus) ProtoMessage() {} func (*NodeStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{81} + return fileDescriptor_724696e352c3df5f, []int{82} } func (m *NodeStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2335,7 +2363,7 @@ var xxx_messageInfo_NodeStatus proto.InternalMessageInfo func (m *NodeSynchronizationStatus) Reset() { *m = NodeSynchronizationStatus{} } func (*NodeSynchronizationStatus) ProtoMessage() {} func (*NodeSynchronizationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{82} + return fileDescriptor_724696e352c3df5f, []int{83} } func (m *NodeSynchronizationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2363,7 +2391,7 @@ var xxx_messageInfo_NodeSynchronizationStatus proto.InternalMessageInfo func (m *NoneStrategy) Reset() { *m = NoneStrategy{} } func (*NoneStrategy) ProtoMessage() {} func (*NoneStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{83} + return fileDescriptor_724696e352c3df5f, []int{84} } func (m *NoneStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2391,7 +2419,7 @@ var xxx_messageInfo_NoneStrategy proto.InternalMessageInfo func (m *OAuth2Auth) Reset() { *m = OAuth2Auth{} } func (*OAuth2Auth) ProtoMessage() {} func (*OAuth2Auth) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{84} + return fileDescriptor_724696e352c3df5f, []int{85} } func (m *OAuth2Auth) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2419,7 +2447,7 @@ var xxx_messageInfo_OAuth2Auth proto.InternalMessageInfo func (m *OAuth2EndpointParam) Reset() { *m = OAuth2EndpointParam{} } func (*OAuth2EndpointParam) ProtoMessage() {} func (*OAuth2EndpointParam) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{85} + return fileDescriptor_724696e352c3df5f, []int{86} } func (m *OAuth2EndpointParam) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2447,7 +2475,7 @@ var xxx_messageInfo_OAuth2EndpointParam proto.InternalMessageInfo func (m *OSSArtifact) Reset() { *m = OSSArtifact{} } func (*OSSArtifact) ProtoMessage() {} func (*OSSArtifact) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{86} + return fileDescriptor_724696e352c3df5f, []int{87} } func (m *OSSArtifact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2475,7 +2503,7 @@ var xxx_messageInfo_OSSArtifact proto.InternalMessageInfo func (m *OSSArtifactRepository) Reset() { *m = OSSArtifactRepository{} } func (*OSSArtifactRepository) ProtoMessage() {} func (*OSSArtifactRepository) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{87} + return fileDescriptor_724696e352c3df5f, []int{88} } func (m *OSSArtifactRepository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2503,7 +2531,7 @@ var xxx_messageInfo_OSSArtifactRepository proto.InternalMessageInfo func (m *OSSBucket) Reset() { *m = OSSBucket{} } func (*OSSBucket) ProtoMessage() {} func (*OSSBucket) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{88} + return fileDescriptor_724696e352c3df5f, []int{89} } func (m *OSSBucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2531,7 +2559,7 @@ var xxx_messageInfo_OSSBucket proto.InternalMessageInfo func (m *OSSLifecycleRule) Reset() { *m = OSSLifecycleRule{} } func (*OSSLifecycleRule) ProtoMessage() {} func (*OSSLifecycleRule) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{89} + return fileDescriptor_724696e352c3df5f, []int{90} } func (m *OSSLifecycleRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2559,7 +2587,7 @@ var xxx_messageInfo_OSSLifecycleRule proto.InternalMessageInfo func (m *Object) Reset() { *m = Object{} } func (*Object) ProtoMessage() {} func (*Object) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{90} + return fileDescriptor_724696e352c3df5f, []int{91} } func (m *Object) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2587,7 +2615,7 @@ var xxx_messageInfo_Object proto.InternalMessageInfo func (m *Outputs) Reset() { *m = Outputs{} } func (*Outputs) ProtoMessage() {} func (*Outputs) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{91} + return fileDescriptor_724696e352c3df5f, []int{92} } func (m *Outputs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2615,7 +2643,7 @@ var xxx_messageInfo_Outputs proto.InternalMessageInfo func (m *ParallelSteps) Reset() { *m = ParallelSteps{} } func (*ParallelSteps) ProtoMessage() {} func (*ParallelSteps) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{92} + return fileDescriptor_724696e352c3df5f, []int{93} } func (m *ParallelSteps) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2643,7 +2671,7 @@ var xxx_messageInfo_ParallelSteps proto.InternalMessageInfo func (m *Parameter) Reset() { *m = Parameter{} } func (*Parameter) ProtoMessage() {} func (*Parameter) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{93} + return fileDescriptor_724696e352c3df5f, []int{94} } func (m *Parameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2671,7 +2699,7 @@ var xxx_messageInfo_Parameter proto.InternalMessageInfo func (m *Plugin) Reset() { *m = Plugin{} } func (*Plugin) ProtoMessage() {} func (*Plugin) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{94} + return fileDescriptor_724696e352c3df5f, []int{95} } func (m *Plugin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2699,7 +2727,7 @@ var xxx_messageInfo_Plugin proto.InternalMessageInfo func (m *PodGC) Reset() { *m = PodGC{} } func (*PodGC) ProtoMessage() {} func (*PodGC) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{95} + return fileDescriptor_724696e352c3df5f, []int{96} } func (m *PodGC) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2727,7 +2755,7 @@ var xxx_messageInfo_PodGC proto.InternalMessageInfo func (m *Prometheus) Reset() { *m = Prometheus{} } func (*Prometheus) ProtoMessage() {} func (*Prometheus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{96} + return fileDescriptor_724696e352c3df5f, []int{97} } func (m *Prometheus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2755,7 +2783,7 @@ var xxx_messageInfo_Prometheus proto.InternalMessageInfo func (m *RawArtifact) Reset() { *m = RawArtifact{} } func (*RawArtifact) ProtoMessage() {} func (*RawArtifact) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{97} + return fileDescriptor_724696e352c3df5f, []int{98} } func (m *RawArtifact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2783,7 +2811,7 @@ var xxx_messageInfo_RawArtifact proto.InternalMessageInfo func (m *ResourceTemplate) Reset() { *m = ResourceTemplate{} } func (*ResourceTemplate) ProtoMessage() {} func (*ResourceTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{98} + return fileDescriptor_724696e352c3df5f, []int{99} } func (m *ResourceTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2811,7 +2839,7 @@ var xxx_messageInfo_ResourceTemplate proto.InternalMessageInfo func (m *RetryAffinity) Reset() { *m = RetryAffinity{} } func (*RetryAffinity) ProtoMessage() {} func (*RetryAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{99} + return fileDescriptor_724696e352c3df5f, []int{100} } func (m *RetryAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2839,7 +2867,7 @@ var xxx_messageInfo_RetryAffinity proto.InternalMessageInfo func (m *RetryNodeAntiAffinity) Reset() { *m = RetryNodeAntiAffinity{} } func (*RetryNodeAntiAffinity) ProtoMessage() {} func (*RetryNodeAntiAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{100} + return fileDescriptor_724696e352c3df5f, []int{101} } func (m *RetryNodeAntiAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2867,7 +2895,7 @@ var xxx_messageInfo_RetryNodeAntiAffinity proto.InternalMessageInfo func (m *RetryStrategy) Reset() { *m = RetryStrategy{} } func (*RetryStrategy) ProtoMessage() {} func (*RetryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{101} + return fileDescriptor_724696e352c3df5f, []int{102} } func (m *RetryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2895,7 +2923,7 @@ var xxx_messageInfo_RetryStrategy proto.InternalMessageInfo func (m *S3Artifact) Reset() { *m = S3Artifact{} } func (*S3Artifact) ProtoMessage() {} func (*S3Artifact) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{102} + return fileDescriptor_724696e352c3df5f, []int{103} } func (m *S3Artifact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2923,7 +2951,7 @@ var xxx_messageInfo_S3Artifact proto.InternalMessageInfo func (m *S3ArtifactRepository) Reset() { *m = S3ArtifactRepository{} } func (*S3ArtifactRepository) ProtoMessage() {} func (*S3ArtifactRepository) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{103} + return fileDescriptor_724696e352c3df5f, []int{104} } func (m *S3ArtifactRepository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2951,7 +2979,7 @@ var xxx_messageInfo_S3ArtifactRepository proto.InternalMessageInfo func (m *S3Bucket) Reset() { *m = S3Bucket{} } func (*S3Bucket) ProtoMessage() {} func (*S3Bucket) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{104} + return fileDescriptor_724696e352c3df5f, []int{105} } func (m *S3Bucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2979,7 +3007,7 @@ var xxx_messageInfo_S3Bucket proto.InternalMessageInfo func (m *S3EncryptionOptions) Reset() { *m = S3EncryptionOptions{} } func (*S3EncryptionOptions) ProtoMessage() {} func (*S3EncryptionOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{105} + return fileDescriptor_724696e352c3df5f, []int{106} } func (m *S3EncryptionOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3007,7 +3035,7 @@ var xxx_messageInfo_S3EncryptionOptions proto.InternalMessageInfo func (m *ScriptTemplate) Reset() { *m = ScriptTemplate{} } func (*ScriptTemplate) ProtoMessage() {} func (*ScriptTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{106} + return fileDescriptor_724696e352c3df5f, []int{107} } func (m *ScriptTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3035,7 +3063,7 @@ var xxx_messageInfo_ScriptTemplate proto.InternalMessageInfo func (m *SemaphoreHolding) Reset() { *m = SemaphoreHolding{} } func (*SemaphoreHolding) ProtoMessage() {} func (*SemaphoreHolding) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{107} + return fileDescriptor_724696e352c3df5f, []int{108} } func (m *SemaphoreHolding) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3063,7 +3091,7 @@ var xxx_messageInfo_SemaphoreHolding proto.InternalMessageInfo func (m *SemaphoreRef) Reset() { *m = SemaphoreRef{} } func (*SemaphoreRef) ProtoMessage() {} func (*SemaphoreRef) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{108} + return fileDescriptor_724696e352c3df5f, []int{109} } func (m *SemaphoreRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3091,7 +3119,7 @@ var xxx_messageInfo_SemaphoreRef proto.InternalMessageInfo func (m *SemaphoreStatus) Reset() { *m = SemaphoreStatus{} } func (*SemaphoreStatus) ProtoMessage() {} func (*SemaphoreStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{109} + return fileDescriptor_724696e352c3df5f, []int{110} } func (m *SemaphoreStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3119,7 +3147,7 @@ var xxx_messageInfo_SemaphoreStatus proto.InternalMessageInfo func (m *Sequence) Reset() { *m = Sequence{} } func (*Sequence) ProtoMessage() {} func (*Sequence) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{110} + return fileDescriptor_724696e352c3df5f, []int{111} } func (m *Sequence) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3147,7 +3175,7 @@ var xxx_messageInfo_Sequence proto.InternalMessageInfo func (m *Submit) Reset() { *m = Submit{} } func (*Submit) ProtoMessage() {} func (*Submit) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{111} + return fileDescriptor_724696e352c3df5f, []int{112} } func (m *Submit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3175,7 +3203,7 @@ var xxx_messageInfo_Submit proto.InternalMessageInfo func (m *SubmitOpts) Reset() { *m = SubmitOpts{} } func (*SubmitOpts) ProtoMessage() {} func (*SubmitOpts) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{112} + return fileDescriptor_724696e352c3df5f, []int{113} } func (m *SubmitOpts) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3203,7 +3231,7 @@ var xxx_messageInfo_SubmitOpts proto.InternalMessageInfo func (m *SuppliedValueFrom) Reset() { *m = SuppliedValueFrom{} } func (*SuppliedValueFrom) ProtoMessage() {} func (*SuppliedValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{113} + return fileDescriptor_724696e352c3df5f, []int{114} } func (m *SuppliedValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3231,7 +3259,7 @@ var xxx_messageInfo_SuppliedValueFrom proto.InternalMessageInfo func (m *SuspendTemplate) Reset() { *m = SuspendTemplate{} } func (*SuspendTemplate) ProtoMessage() {} func (*SuspendTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{114} + return fileDescriptor_724696e352c3df5f, []int{115} } func (m *SuspendTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3259,7 +3287,7 @@ var xxx_messageInfo_SuspendTemplate proto.InternalMessageInfo func (m *Synchronization) Reset() { *m = Synchronization{} } func (*Synchronization) ProtoMessage() {} func (*Synchronization) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{115} + return fileDescriptor_724696e352c3df5f, []int{116} } func (m *Synchronization) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3287,7 +3315,7 @@ var xxx_messageInfo_Synchronization proto.InternalMessageInfo func (m *SynchronizationStatus) Reset() { *m = SynchronizationStatus{} } func (*SynchronizationStatus) ProtoMessage() {} func (*SynchronizationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{116} + return fileDescriptor_724696e352c3df5f, []int{117} } func (m *SynchronizationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3315,7 +3343,7 @@ var xxx_messageInfo_SynchronizationStatus proto.InternalMessageInfo func (m *TTLStrategy) Reset() { *m = TTLStrategy{} } func (*TTLStrategy) ProtoMessage() {} func (*TTLStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{117} + return fileDescriptor_724696e352c3df5f, []int{118} } func (m *TTLStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3343,7 +3371,7 @@ var xxx_messageInfo_TTLStrategy proto.InternalMessageInfo func (m *TarStrategy) Reset() { *m = TarStrategy{} } func (*TarStrategy) ProtoMessage() {} func (*TarStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{118} + return fileDescriptor_724696e352c3df5f, []int{119} } func (m *TarStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3371,7 +3399,7 @@ var xxx_messageInfo_TarStrategy proto.InternalMessageInfo func (m *Template) Reset() { *m = Template{} } func (*Template) ProtoMessage() {} func (*Template) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{119} + return fileDescriptor_724696e352c3df5f, []int{120} } func (m *Template) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3399,7 +3427,7 @@ var xxx_messageInfo_Template proto.InternalMessageInfo func (m *TemplateRef) Reset() { *m = TemplateRef{} } func (*TemplateRef) ProtoMessage() {} func (*TemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{120} + return fileDescriptor_724696e352c3df5f, []int{121} } func (m *TemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3427,7 +3455,7 @@ var xxx_messageInfo_TemplateRef proto.InternalMessageInfo func (m *TransformationStep) Reset() { *m = TransformationStep{} } func (*TransformationStep) ProtoMessage() {} func (*TransformationStep) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{121} + return fileDescriptor_724696e352c3df5f, []int{122} } func (m *TransformationStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3455,7 +3483,7 @@ var xxx_messageInfo_TransformationStep proto.InternalMessageInfo func (m *UserContainer) Reset() { *m = UserContainer{} } func (*UserContainer) ProtoMessage() {} func (*UserContainer) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{122} + return fileDescriptor_724696e352c3df5f, []int{123} } func (m *UserContainer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3483,7 +3511,7 @@ var xxx_messageInfo_UserContainer proto.InternalMessageInfo func (m *ValueFrom) Reset() { *m = ValueFrom{} } func (*ValueFrom) ProtoMessage() {} func (*ValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{123} + return fileDescriptor_724696e352c3df5f, []int{124} } func (m *ValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3511,7 +3539,7 @@ var xxx_messageInfo_ValueFrom proto.InternalMessageInfo func (m *Version) Reset() { *m = Version{} } func (*Version) ProtoMessage() {} func (*Version) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{124} + return fileDescriptor_724696e352c3df5f, []int{125} } func (m *Version) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3539,7 +3567,7 @@ var xxx_messageInfo_Version proto.InternalMessageInfo func (m *VolumeClaimGC) Reset() { *m = VolumeClaimGC{} } func (*VolumeClaimGC) ProtoMessage() {} func (*VolumeClaimGC) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{125} + return fileDescriptor_724696e352c3df5f, []int{126} } func (m *VolumeClaimGC) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3567,7 +3595,7 @@ var xxx_messageInfo_VolumeClaimGC proto.InternalMessageInfo func (m *Workflow) Reset() { *m = Workflow{} } func (*Workflow) ProtoMessage() {} func (*Workflow) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{126} + return fileDescriptor_724696e352c3df5f, []int{127} } func (m *Workflow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3595,7 +3623,7 @@ var xxx_messageInfo_Workflow proto.InternalMessageInfo func (m *WorkflowArtifactGCTask) Reset() { *m = WorkflowArtifactGCTask{} } func (*WorkflowArtifactGCTask) ProtoMessage() {} func (*WorkflowArtifactGCTask) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{127} + return fileDescriptor_724696e352c3df5f, []int{128} } func (m *WorkflowArtifactGCTask) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3623,7 +3651,7 @@ var xxx_messageInfo_WorkflowArtifactGCTask proto.InternalMessageInfo func (m *WorkflowArtifactGCTaskList) Reset() { *m = WorkflowArtifactGCTaskList{} } func (*WorkflowArtifactGCTaskList) ProtoMessage() {} func (*WorkflowArtifactGCTaskList) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{128} + return fileDescriptor_724696e352c3df5f, []int{129} } func (m *WorkflowArtifactGCTaskList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3651,7 +3679,7 @@ var xxx_messageInfo_WorkflowArtifactGCTaskList proto.InternalMessageInfo func (m *WorkflowEventBinding) Reset() { *m = WorkflowEventBinding{} } func (*WorkflowEventBinding) ProtoMessage() {} func (*WorkflowEventBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{129} + return fileDescriptor_724696e352c3df5f, []int{130} } func (m *WorkflowEventBinding) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3679,7 +3707,7 @@ var xxx_messageInfo_WorkflowEventBinding proto.InternalMessageInfo func (m *WorkflowEventBindingList) Reset() { *m = WorkflowEventBindingList{} } func (*WorkflowEventBindingList) ProtoMessage() {} func (*WorkflowEventBindingList) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{130} + return fileDescriptor_724696e352c3df5f, []int{131} } func (m *WorkflowEventBindingList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3707,7 +3735,7 @@ var xxx_messageInfo_WorkflowEventBindingList proto.InternalMessageInfo func (m *WorkflowEventBindingSpec) Reset() { *m = WorkflowEventBindingSpec{} } func (*WorkflowEventBindingSpec) ProtoMessage() {} func (*WorkflowEventBindingSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{131} + return fileDescriptor_724696e352c3df5f, []int{132} } func (m *WorkflowEventBindingSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3735,7 +3763,7 @@ var xxx_messageInfo_WorkflowEventBindingSpec proto.InternalMessageInfo func (m *WorkflowList) Reset() { *m = WorkflowList{} } func (*WorkflowList) ProtoMessage() {} func (*WorkflowList) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{132} + return fileDescriptor_724696e352c3df5f, []int{133} } func (m *WorkflowList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3763,7 +3791,7 @@ var xxx_messageInfo_WorkflowList proto.InternalMessageInfo func (m *WorkflowMetadata) Reset() { *m = WorkflowMetadata{} } func (*WorkflowMetadata) ProtoMessage() {} func (*WorkflowMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{133} + return fileDescriptor_724696e352c3df5f, []int{134} } func (m *WorkflowMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3791,7 +3819,7 @@ var xxx_messageInfo_WorkflowMetadata proto.InternalMessageInfo func (m *WorkflowSpec) Reset() { *m = WorkflowSpec{} } func (*WorkflowSpec) ProtoMessage() {} func (*WorkflowSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{134} + return fileDescriptor_724696e352c3df5f, []int{135} } func (m *WorkflowSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3819,7 +3847,7 @@ var xxx_messageInfo_WorkflowSpec proto.InternalMessageInfo func (m *WorkflowStatus) Reset() { *m = WorkflowStatus{} } func (*WorkflowStatus) ProtoMessage() {} func (*WorkflowStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{135} + return fileDescriptor_724696e352c3df5f, []int{136} } func (m *WorkflowStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3847,7 +3875,7 @@ var xxx_messageInfo_WorkflowStatus proto.InternalMessageInfo func (m *WorkflowStep) Reset() { *m = WorkflowStep{} } func (*WorkflowStep) ProtoMessage() {} func (*WorkflowStep) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{136} + return fileDescriptor_724696e352c3df5f, []int{137} } func (m *WorkflowStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3875,7 +3903,7 @@ var xxx_messageInfo_WorkflowStep proto.InternalMessageInfo func (m *WorkflowTaskResult) Reset() { *m = WorkflowTaskResult{} } func (*WorkflowTaskResult) ProtoMessage() {} func (*WorkflowTaskResult) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{137} + return fileDescriptor_724696e352c3df5f, []int{138} } func (m *WorkflowTaskResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3903,7 +3931,7 @@ var xxx_messageInfo_WorkflowTaskResult proto.InternalMessageInfo func (m *WorkflowTaskResultList) Reset() { *m = WorkflowTaskResultList{} } func (*WorkflowTaskResultList) ProtoMessage() {} func (*WorkflowTaskResultList) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{138} + return fileDescriptor_724696e352c3df5f, []int{139} } func (m *WorkflowTaskResultList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3931,7 +3959,7 @@ var xxx_messageInfo_WorkflowTaskResultList proto.InternalMessageInfo func (m *WorkflowTaskSet) Reset() { *m = WorkflowTaskSet{} } func (*WorkflowTaskSet) ProtoMessage() {} func (*WorkflowTaskSet) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{139} + return fileDescriptor_724696e352c3df5f, []int{140} } func (m *WorkflowTaskSet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3959,7 +3987,7 @@ var xxx_messageInfo_WorkflowTaskSet proto.InternalMessageInfo func (m *WorkflowTaskSetList) Reset() { *m = WorkflowTaskSetList{} } func (*WorkflowTaskSetList) ProtoMessage() {} func (*WorkflowTaskSetList) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{140} + return fileDescriptor_724696e352c3df5f, []int{141} } func (m *WorkflowTaskSetList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3987,7 +4015,7 @@ var xxx_messageInfo_WorkflowTaskSetList proto.InternalMessageInfo func (m *WorkflowTaskSetSpec) Reset() { *m = WorkflowTaskSetSpec{} } func (*WorkflowTaskSetSpec) ProtoMessage() {} func (*WorkflowTaskSetSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{141} + return fileDescriptor_724696e352c3df5f, []int{142} } func (m *WorkflowTaskSetSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4015,7 +4043,7 @@ var xxx_messageInfo_WorkflowTaskSetSpec proto.InternalMessageInfo func (m *WorkflowTaskSetStatus) Reset() { *m = WorkflowTaskSetStatus{} } func (*WorkflowTaskSetStatus) ProtoMessage() {} func (*WorkflowTaskSetStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{142} + return fileDescriptor_724696e352c3df5f, []int{143} } func (m *WorkflowTaskSetStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4043,7 +4071,7 @@ var xxx_messageInfo_WorkflowTaskSetStatus proto.InternalMessageInfo func (m *WorkflowTemplate) Reset() { *m = WorkflowTemplate{} } func (*WorkflowTemplate) ProtoMessage() {} func (*WorkflowTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{143} + return fileDescriptor_724696e352c3df5f, []int{144} } func (m *WorkflowTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4071,7 +4099,7 @@ var xxx_messageInfo_WorkflowTemplate proto.InternalMessageInfo func (m *WorkflowTemplateList) Reset() { *m = WorkflowTemplateList{} } func (*WorkflowTemplateList) ProtoMessage() {} func (*WorkflowTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{144} + return fileDescriptor_724696e352c3df5f, []int{145} } func (m *WorkflowTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4099,7 +4127,7 @@ var xxx_messageInfo_WorkflowTemplateList proto.InternalMessageInfo func (m *WorkflowTemplateRef) Reset() { *m = WorkflowTemplateRef{} } func (*WorkflowTemplateRef) ProtoMessage() {} func (*WorkflowTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{145} + return fileDescriptor_724696e352c3df5f, []int{146} } func (m *WorkflowTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4127,7 +4155,7 @@ var xxx_messageInfo_WorkflowTemplateRef proto.InternalMessageInfo func (m *ZipStrategy) Reset() { *m = ZipStrategy{} } func (*ZipStrategy) ProtoMessage() {} func (*ZipStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_724696e352c3df5f, []int{146} + return fileDescriptor_724696e352c3df5f, []int{147} } func (m *ZipStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4191,6 +4219,7 @@ func init() { proto.RegisterType((*ClientCertAuth)(nil), "jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.ClientCertAuth") proto.RegisterType((*ClusterWorkflowTemplate)(nil), "jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.ClusterWorkflowTemplate") proto.RegisterType((*ClusterWorkflowTemplateList)(nil), "jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.ClusterWorkflowTemplateList") + proto.RegisterType((*Column)(nil), "jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.Column") proto.RegisterType((*Condition)(nil), "jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.Condition") proto.RegisterType((*ContainerNode)(nil), "jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.ContainerNode") proto.RegisterType((*ContainerSetRetryStrategy)(nil), "jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1.ContainerSetRetryStrategy") @@ -4331,671 +4360,671 @@ func init() { } var fileDescriptor_724696e352c3df5f = []byte{ - // 10618 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x70, 0x24, 0xc7, - 0x79, 0x18, 0xce, 0x59, 0x60, 0xf1, 0xf8, 0xf0, 0x38, 0x5c, 0xdf, 0x6b, 0x09, 0x92, 0x07, 0x7a, - 0x28, 0xf2, 0xc7, 0xb3, 0x29, 0xc0, 0x3c, 0x4a, 0xbf, 0x30, 0x52, 0x22, 0x09, 0x8f, 0x03, 0x0e, - 0x04, 0x70, 0x00, 0x7b, 0x71, 0x77, 0x26, 0xc5, 0x48, 0x1a, 0xec, 0x36, 0x76, 0x87, 0xd8, 0x9d, - 0x59, 0xcd, 0xcc, 0x02, 0x07, 0xf2, 0x28, 0x29, 0xb2, 0x9e, 0xb1, 0x62, 0x25, 0xb6, 0x24, 0x4b, - 0x4a, 0x52, 0xa5, 0x28, 0x52, 0xa2, 0x52, 0x5c, 0x49, 0xc9, 0x95, 0x3f, 0x52, 0xf6, 0x7f, 0xa9, - 0x94, 0x4b, 0x29, 0xa7, 0x2a, 0x72, 0x99, 0x89, 0xf4, 0x47, 0x0c, 0x46, 0x70, 0xa2, 0xaa, 0x24, - 0xa5, 0xaa, 0x44, 0x15, 0x3b, 0xf6, 0xe5, 0x51, 0xa9, 0x7e, 0x4e, 0xf7, 0xec, 0x2c, 0x0e, 0xb8, - 0x6b, 0xe0, 0x58, 0xf6, 0x5f, 0xc0, 0x7e, 0xfd, 0xf5, 0xf7, 0x75, 0xf7, 0xf4, 0x7c, 0xfd, 0xbd, - 0xfa, 0x1b, 0x58, 0xab, 0xf9, 0x49, 0xbd, 0xbd, 0x31, 0x59, 0x09, 0x9b, 0x53, 0x5e, 0x54, 0x0b, - 0x5b, 0x51, 0xf8, 0x2a, 0xfb, 0xe7, 0x9d, 0x3b, 0x61, 0xb4, 0xb5, 0xd9, 0x08, 0x77, 0xe2, 0xa9, - 0xed, 0xe7, 0xa6, 0x5a, 0x5b, 0xb5, 0x29, 0xaf, 0xe5, 0xc7, 0x53, 0x12, 0x3a, 0xb5, 0xfd, 0xac, - 0xd7, 0x68, 0xd5, 0xbd, 0x67, 0xa7, 0x6a, 0x24, 0x20, 0x91, 0x97, 0x90, 0xea, 0x64, 0x2b, 0x0a, - 0x93, 0x10, 0x7d, 0x20, 0xa5, 0x38, 0x29, 0x29, 0xb2, 0x7f, 0x3e, 0xac, 0x28, 0x4e, 0x6e, 0x3f, - 0x37, 0xd9, 0xda, 0xaa, 0x4d, 0x52, 0x8a, 0x93, 0x12, 0x3a, 0x29, 0x29, 0x8e, 0xbf, 0x53, 0x1b, - 0x53, 0x2d, 0xac, 0x85, 0x53, 0x8c, 0xf0, 0x46, 0x7b, 0x93, 0xfd, 0x62, 0x3f, 0xd8, 0x7f, 0x9c, - 0xe1, 0xb8, 0xbb, 0xf5, 0x7c, 0x3c, 0xe9, 0x87, 0x74, 0x7c, 0x53, 0x95, 0x30, 0x22, 0x53, 0xdb, - 0x1d, 0x83, 0x1a, 0xbf, 0xa4, 0xe1, 0xb4, 0xc2, 0x86, 0x5f, 0xd9, 0x9d, 0xda, 0x7e, 0x76, 0x83, - 0x24, 0x9d, 0xe3, 0x1f, 0x7f, 0x57, 0x8a, 0xda, 0xf4, 0x2a, 0x75, 0x3f, 0x20, 0xd1, 0x6e, 0x3a, - 0xff, 0x26, 0x49, 0xbc, 0x3c, 0x06, 0x53, 0xdd, 0x7a, 0x45, 0xed, 0x20, 0xf1, 0x9b, 0xa4, 0xa3, - 0xc3, 0xff, 0x7f, 0xb7, 0x0e, 0x71, 0xa5, 0x4e, 0x9a, 0x5e, 0x47, 0xbf, 0xe7, 0xba, 0xf5, 0x6b, - 0x27, 0x7e, 0x63, 0xca, 0x0f, 0x92, 0x38, 0x89, 0xb2, 0x9d, 0xdc, 0x2b, 0xd0, 0x37, 0xdd, 0x0c, - 0xdb, 0x41, 0x82, 0xde, 0x0b, 0xc5, 0x6d, 0xaf, 0xd1, 0x26, 0x25, 0xe7, 0x71, 0xe7, 0xe9, 0xc1, - 0x99, 0x27, 0xbf, 0xbf, 0x37, 0xf1, 0xd0, 0xfe, 0xde, 0x44, 0xf1, 0x06, 0x05, 0xde, 0xd9, 0x9b, - 0x38, 0x4b, 0x82, 0x4a, 0x58, 0xf5, 0x83, 0xda, 0xd4, 0xab, 0x71, 0x18, 0x4c, 0x5e, 0x6b, 0x37, - 0x37, 0x48, 0x84, 0x79, 0x1f, 0xf7, 0x0f, 0x0a, 0x70, 0x6a, 0x3a, 0xaa, 0xd4, 0xfd, 0x6d, 0x52, - 0x4e, 0x28, 0xfd, 0xda, 0x2e, 0xaa, 0x43, 0x4f, 0xe2, 0x45, 0x8c, 0xdc, 0xd0, 0xe5, 0x95, 0xc9, - 0xfb, 0x7d, 0xf8, 0x93, 0xeb, 0x5e, 0x24, 0x69, 0xcf, 0xf4, 0xef, 0xef, 0x4d, 0xf4, 0xac, 0x7b, - 0x11, 0xa6, 0x2c, 0x50, 0x03, 0x7a, 0x83, 0x30, 0x20, 0xa5, 0x02, 0x63, 0x75, 0xed, 0xfe, 0x59, - 0x5d, 0x0b, 0x03, 0x35, 0x8f, 0x99, 0x81, 0xfd, 0xbd, 0x89, 0x5e, 0x0a, 0xc1, 0x8c, 0x0b, 0x9d, - 0xd7, 0x6b, 0x7e, 0xab, 0xd4, 0x63, 0x6b, 0x5e, 0x2f, 0xfb, 0x2d, 0x73, 0x5e, 0x2f, 0xfb, 0x2d, - 0x4c, 0x59, 0xb8, 0x9f, 0x2f, 0xc0, 0xe0, 0x74, 0x54, 0x6b, 0x37, 0x49, 0x90, 0xc4, 0xe8, 0xe3, - 0x00, 0x2d, 0x2f, 0xf2, 0x9a, 0x24, 0x21, 0x51, 0x5c, 0x72, 0x1e, 0xef, 0x79, 0x7a, 0xe8, 0xf2, - 0xd2, 0xfd, 0xb3, 0x5f, 0x93, 0x34, 0x67, 0x90, 0x78, 0xe4, 0xa0, 0x40, 0x31, 0xd6, 0x58, 0xa2, - 0xd7, 0x61, 0xd0, 0x8b, 0x12, 0x7f, 0xd3, 0xab, 0x24, 0x71, 0xa9, 0xc0, 0xf8, 0xbf, 0x70, 0xff, - 0xfc, 0xa7, 0x05, 0xc9, 0x99, 0xd3, 0x82, 0xfd, 0xa0, 0x84, 0xc4, 0x38, 0xe5, 0xe7, 0xfe, 0x76, - 0x2f, 0x0c, 0x4d, 0x47, 0xc9, 0xc2, 0x6c, 0x39, 0xf1, 0x92, 0x76, 0x8c, 0x7e, 0xcf, 0x81, 0x33, - 0x31, 0x5f, 0x36, 0x9f, 0xc4, 0x6b, 0x51, 0x58, 0x21, 0x71, 0x4c, 0xaa, 0x62, 0x5d, 0x36, 0xad, - 0x8c, 0x4b, 0x32, 0x9b, 0x2c, 0x77, 0x32, 0xba, 0x12, 0x24, 0xd1, 0xee, 0xcc, 0xb3, 0x62, 0xcc, - 0x67, 0x72, 0x30, 0x3e, 0xf9, 0xd6, 0x04, 0x92, 0x53, 0xa1, 0x94, 0xf8, 0x23, 0xc6, 0x79, 0xa3, - 0x46, 0x5f, 0x73, 0x60, 0xb8, 0x15, 0x56, 0x63, 0x4c, 0x2a, 0x61, 0xbb, 0x45, 0xaa, 0x62, 0x79, - 0x3f, 0x6c, 0x77, 0x1a, 0x6b, 0x1a, 0x07, 0x3e, 0xfe, 0xb3, 0x62, 0xfc, 0xc3, 0x7a, 0x13, 0x36, - 0x86, 0x82, 0x9e, 0x87, 0xe1, 0x20, 0x4c, 0xca, 0x2d, 0x52, 0xf1, 0x37, 0x7d, 0x52, 0x65, 0x1b, - 0x7f, 0x20, 0xed, 0x79, 0x4d, 0x6b, 0xc3, 0x06, 0xe6, 0xf8, 0x3c, 0x94, 0xba, 0xad, 0x1c, 0x1a, - 0x83, 0x9e, 0x2d, 0xb2, 0xcb, 0x85, 0x0d, 0xa6, 0xff, 0xa2, 0xb3, 0x52, 0x00, 0xd1, 0xd7, 0x78, - 0x40, 0x48, 0x96, 0xf7, 0x14, 0x9e, 0x77, 0xc6, 0xdf, 0x0f, 0xa7, 0x3b, 0x86, 0x7e, 0x14, 0x02, - 0xee, 0x0f, 0xfa, 0x60, 0x40, 0x3e, 0x0a, 0xf4, 0x38, 0xf4, 0x06, 0x5e, 0x53, 0xca, 0xb9, 0x61, - 0x31, 0x8f, 0xde, 0x6b, 0x5e, 0x93, 0xbe, 0xe1, 0x5e, 0x93, 0x50, 0x8c, 0x96, 0x97, 0xd4, 0x19, - 0x1d, 0x0d, 0x63, 0xcd, 0x4b, 0xea, 0x98, 0xb5, 0xa0, 0x47, 0xa1, 0xb7, 0x19, 0x56, 0x09, 0x5b, - 0x8b, 0x22, 0x97, 0x10, 0x2b, 0x61, 0x95, 0x60, 0x06, 0xa5, 0xfd, 0x37, 0xa3, 0xb0, 0x59, 0xea, - 0x35, 0xfb, 0xcf, 0x47, 0x61, 0x13, 0xb3, 0x16, 0xf4, 0x55, 0x07, 0xc6, 0xe4, 0xde, 0x5e, 0x0e, - 0x2b, 0x5e, 0xe2, 0x87, 0x41, 0xa9, 0xc8, 0x24, 0x0a, 0xb6, 0xf7, 0x4a, 0x49, 0xca, 0x33, 0x25, - 0x31, 0x84, 0xb1, 0x6c, 0x0b, 0xee, 0x18, 0x05, 0xba, 0x0c, 0x50, 0x6b, 0x84, 0x1b, 0x5e, 0x83, - 0x2e, 0x48, 0xa9, 0x8f, 0x4d, 0x41, 0x49, 0x86, 0x05, 0xd5, 0x82, 0x35, 0x2c, 0x74, 0x0b, 0xfa, - 0x3d, 0x2e, 0xfd, 0x4b, 0xfd, 0x6c, 0x12, 0x2f, 0xda, 0x98, 0x84, 0x71, 0x9c, 0xcc, 0x0c, 0xed, - 0xef, 0x4d, 0xf4, 0x0b, 0x20, 0x96, 0xec, 0xd0, 0x33, 0x30, 0x10, 0xb6, 0xe8, 0xb8, 0xbd, 0x46, - 0x69, 0x80, 0x6d, 0xcc, 0x31, 0x31, 0xd6, 0x81, 0x55, 0x01, 0xc7, 0x0a, 0x03, 0x5d, 0x82, 0xfe, - 0xb8, 0xbd, 0x41, 0x9f, 0x63, 0x69, 0x90, 0x4d, 0xec, 0x94, 0x40, 0xee, 0x2f, 0x73, 0x30, 0x96, - 0xed, 0xe8, 0xdd, 0x30, 0x14, 0x91, 0x4a, 0x3b, 0x8a, 0x09, 0x7d, 0xb0, 0x25, 0x60, 0xb4, 0xcf, - 0x08, 0xf4, 0x21, 0x9c, 0x36, 0x61, 0x1d, 0x0f, 0xbd, 0x0f, 0x46, 0xe9, 0x03, 0xbe, 0x72, 0xab, - 0x15, 0x91, 0x38, 0xa6, 0x4f, 0x75, 0x88, 0x31, 0x3a, 0x2f, 0x7a, 0x8e, 0xce, 0x1b, 0xad, 0x38, - 0x83, 0x8d, 0x6e, 0x03, 0x78, 0x4a, 0x66, 0x94, 0x86, 0xd9, 0x62, 0x2e, 0xdb, 0xdb, 0x11, 0x0b, - 0xb3, 0x33, 0xa3, 0xf4, 0x39, 0xa6, 0xbf, 0xb1, 0xc6, 0x8f, 0xae, 0x4f, 0x95, 0x34, 0x48, 0x42, - 0xaa, 0xa5, 0x11, 0x36, 0x61, 0xb5, 0x3e, 0x73, 0x1c, 0x8c, 0x65, 0xbb, 0xfb, 0x77, 0x0a, 0xa0, - 0x51, 0x41, 0x33, 0x30, 0x20, 0xe4, 0x9a, 0x78, 0x25, 0x67, 0x9e, 0x92, 0xcf, 0x41, 0x3e, 0xc1, - 0x3b, 0x7b, 0xb9, 0xf2, 0x50, 0xf5, 0x43, 0x6f, 0xc0, 0x50, 0x2b, 0xac, 0xae, 0x90, 0xc4, 0xab, - 0x7a, 0x89, 0x27, 0x4e, 0x73, 0x0b, 0x27, 0x8c, 0xa4, 0x38, 0x73, 0x8a, 0x3e, 0xba, 0xb5, 0x94, - 0x05, 0xd6, 0xf9, 0xa1, 0x17, 0x00, 0xc5, 0x24, 0xda, 0xf6, 0x2b, 0x64, 0xba, 0x52, 0xa1, 0x2a, - 0x11, 0x7b, 0x01, 0x7a, 0xd8, 0x64, 0xc6, 0xc5, 0x64, 0x50, 0xb9, 0x03, 0x03, 0xe7, 0xf4, 0x72, - 0xdf, 0x2c, 0xc0, 0xa8, 0x36, 0xd7, 0x16, 0xa9, 0xa0, 0xef, 0x38, 0x70, 0x4a, 0x1d, 0x67, 0x33, - 0xbb, 0xd7, 0xe8, 0xae, 0xe2, 0x87, 0x15, 0xb1, 0xf9, 0x7c, 0x29, 0x2f, 0xf5, 0x53, 0xf0, 0xe1, - 0xb2, 0xfe, 0x82, 0x98, 0xc3, 0xa9, 0x4c, 0x2b, 0xce, 0x0e, 0x6b, 0xfc, 0x2b, 0x0e, 0x9c, 0xcd, - 0x23, 0x91, 0x23, 0x73, 0xeb, 0xba, 0xcc, 0xb5, 0x2a, 0xbc, 0x28, 0x57, 0x3a, 0x19, 0x5d, 0x8e, - 0xff, 0xdf, 0x02, 0x8c, 0xe9, 0x5b, 0x88, 0x69, 0x02, 0xff, 0xc2, 0x81, 0x73, 0x72, 0x06, 0x98, - 0xc4, 0xed, 0x46, 0x66, 0x79, 0x9b, 0x56, 0x97, 0x97, 0x9f, 0xa4, 0xd3, 0x79, 0xfc, 0xf8, 0x32, - 0x3f, 0x26, 0x96, 0xf9, 0x5c, 0x2e, 0x0e, 0xce, 0x1f, 0xea, 0xf8, 0xb7, 0x1c, 0x18, 0xef, 0x4e, - 0x34, 0x67, 0xe1, 0x5b, 0xe6, 0xc2, 0xbf, 0x6c, 0x6f, 0x92, 0x9c, 0x3d, 0x5b, 0x7e, 0x36, 0x59, - 0xfd, 0x01, 0xfc, 0xe6, 0x00, 0x74, 0x9c, 0x21, 0xe8, 0x59, 0x18, 0x12, 0xe2, 0x78, 0x39, 0xac, - 0xc5, 0x6c, 0x90, 0x03, 0xfc, 0x5d, 0x9b, 0x4e, 0xc1, 0x58, 0xc7, 0x41, 0x55, 0x28, 0xc4, 0xcf, - 0x89, 0xa1, 0x5b, 0x10, 0x6f, 0xe5, 0xe7, 0x94, 0x16, 0xd9, 0xb7, 0xbf, 0x37, 0x51, 0x28, 0x3f, - 0x87, 0x0b, 0xf1, 0x73, 0x54, 0x53, 0xaf, 0xf9, 0x89, 0x3d, 0x4d, 0x7d, 0xc1, 0x4f, 0x14, 0x1f, - 0xa6, 0xa9, 0x2f, 0xf8, 0x09, 0xa6, 0x2c, 0xa8, 0x05, 0x52, 0x4f, 0x92, 0x16, 0x3b, 0xf1, 0xad, - 0x58, 0x20, 0x57, 0xd7, 0xd7, 0xd7, 0x14, 0x2f, 0xa6, 0x5f, 0x50, 0x08, 0x66, 0x5c, 0xd0, 0xe7, - 0x1c, 0xba, 0xe2, 0xbc, 0x31, 0x8c, 0x76, 0x85, 0xe2, 0x70, 0xdd, 0xde, 0x16, 0x08, 0xa3, 0x5d, - 0xc5, 0x5c, 0x3c, 0x48, 0xd5, 0x80, 0x75, 0xd6, 0x6c, 0xe2, 0xd5, 0xcd, 0x98, 0xe9, 0x09, 0x76, - 0x26, 0x3e, 0x37, 0x5f, 0xce, 0x4c, 0x7c, 0x6e, 0xbe, 0x8c, 0x19, 0x17, 0xfa, 0x40, 0x23, 0x6f, - 0x47, 0xe8, 0x18, 0x16, 0x1e, 0x28, 0xf6, 0x76, 0xcc, 0x07, 0x8a, 0xbd, 0x1d, 0x4c, 0x59, 0x50, - 0x4e, 0x61, 0x1c, 0x33, 0x95, 0xc2, 0x0a, 0xa7, 0xd5, 0x72, 0xd9, 0xe4, 0xb4, 0x5a, 0x2e, 0x63, - 0xca, 0x82, 0x6d, 0xd2, 0x4a, 0xcc, 0xf4, 0x11, 0x3b, 0x9b, 0x74, 0x36, 0xc3, 0x69, 0x61, 0xb6, - 0x8c, 0x29, 0x0b, 0x2a, 0x32, 0xbc, 0xd7, 0xda, 0x11, 0x57, 0x66, 0x86, 0x2e, 0xaf, 0x5a, 0xd8, - 0x2f, 0x94, 0x9c, 0xe2, 0x36, 0xb8, 0xbf, 0x37, 0x51, 0x64, 0x20, 0xcc, 0x19, 0xb9, 0xbf, 0xdb, - 0x93, 0x8a, 0x0b, 0x29, 0xcf, 0xd1, 0xdf, 0x66, 0x07, 0xa1, 0x90, 0x05, 0x42, 0xf5, 0x75, 0x8e, - 0x4d, 0xf5, 0x3d, 0xc3, 0x4f, 0x3c, 0x83, 0x1d, 0xce, 0xf2, 0x47, 0xbf, 0xe6, 0x74, 0xda, 0xb6, - 0x9e, 0xfd, 0xb3, 0x2c, 0x3d, 0x98, 0xf9, 0x59, 0x71, 0xa0, 0xc9, 0x3b, 0xfe, 0x39, 0x27, 0x55, - 0x22, 0xe2, 0x6e, 0xe7, 0xc0, 0x47, 0xcc, 0x73, 0xc0, 0xa2, 0x41, 0xae, 0xcb, 0xfd, 0xcf, 0x3b, - 0x30, 0x22, 0xe1, 0x54, 0x3d, 0x8e, 0xd1, 0x2d, 0x18, 0x90, 0x23, 0x15, 0x4f, 0xcf, 0xa6, 0x2f, - 0x40, 0x29, 0xf1, 0x6a, 0x30, 0x8a, 0x9b, 0xfb, 0x9d, 0x3e, 0x40, 0xe9, 0x59, 0xd5, 0x0a, 0x63, - 0x9f, 0x49, 0xa2, 0x7b, 0x38, 0x85, 0x02, 0xed, 0x14, 0xba, 0x61, 0xf3, 0x14, 0x4a, 0x87, 0x65, - 0x9c, 0x47, 0xbf, 0x96, 0x91, 0xdb, 0xfc, 0x60, 0xfa, 0xf0, 0xb1, 0xc8, 0x6d, 0x6d, 0x08, 0x07, - 0x4b, 0xf0, 0x6d, 0x21, 0xc1, 0xf9, 0xd1, 0xf5, 0x4b, 0x76, 0x25, 0xb8, 0x36, 0x8a, 0xac, 0x2c, - 0x8f, 0xb8, 0x84, 0xe5, 0x67, 0xd7, 0x4d, 0xab, 0x12, 0x56, 0xe3, 0x6a, 0xca, 0xda, 0x88, 0xcb, - 0xda, 0x3e, 0x5b, 0x3c, 0x35, 0x59, 0x9b, 0xe5, 0xa9, 0xa4, 0xee, 0x6b, 0x52, 0xea, 0xf2, 0x53, - 0xeb, 0x25, 0xcb, 0x52, 0x57, 0xe3, 0xdb, 0x29, 0x7f, 0x3f, 0x0a, 0xe7, 0x3a, 0xf1, 0x30, 0xd9, - 0x44, 0x53, 0x30, 0x58, 0x09, 0x83, 0x4d, 0xbf, 0xb6, 0xe2, 0xb5, 0x84, 0xbd, 0xa6, 0x64, 0xd1, - 0xac, 0x6c, 0xc0, 0x29, 0x0e, 0x7a, 0x8c, 0x0b, 0x1e, 0xee, 0x11, 0x19, 0x12, 0xa8, 0x3d, 0x4b, - 0x64, 0x97, 0x49, 0xa1, 0xf7, 0x0c, 0x7c, 0xf5, 0x1b, 0x13, 0x0f, 0x7d, 0xe2, 0xdf, 0x3f, 0xfe, - 0x90, 0xfb, 0xfb, 0x3d, 0xf0, 0x48, 0x2e, 0x4f, 0xa1, 0xad, 0xff, 0xa6, 0xa1, 0xad, 0x6b, 0xed, - 0x42, 0x8a, 0xdc, 0xb4, 0xa9, 0xc8, 0x6a, 0xe4, 0xf3, 0xf4, 0x72, 0xad, 0x19, 0xe7, 0x0f, 0x8a, - 0x2e, 0x54, 0xe0, 0x35, 0x49, 0xdc, 0xf2, 0x2a, 0x44, 0xcc, 0x5e, 0x2d, 0xd4, 0x35, 0xd9, 0x80, - 0x53, 0x1c, 0x6e, 0x42, 0x6f, 0x7a, 0xed, 0x46, 0x22, 0x1c, 0x65, 0x9a, 0x09, 0xcd, 0xc0, 0x58, - 0xb6, 0xa3, 0xbf, 0xeb, 0x00, 0xea, 0xe4, 0x2a, 0x5e, 0xc4, 0xf5, 0xe3, 0x58, 0x87, 0x99, 0xf3, - 0xfb, 0x9a, 0x11, 0xae, 0xcd, 0x34, 0x67, 0x1c, 0xda, 0x33, 0xfd, 0x58, 0x7a, 0x0e, 0x71, 0xe3, - 0xe0, 0x10, 0x3e, 0x34, 0xe6, 0x6a, 0xa9, 0x54, 0x48, 0x1c, 0x73, 0x77, 0x9c, 0xee, 0x6a, 0x61, - 0x60, 0x2c, 0xdb, 0xd1, 0x04, 0x14, 0x49, 0x14, 0x85, 0x91, 0xb0, 0xb5, 0xd9, 0x36, 0xbe, 0x42, - 0x01, 0x98, 0xc3, 0xdd, 0x9f, 0x14, 0xa0, 0xd4, 0xcd, 0x3a, 0x41, 0xbf, 0xa5, 0xd9, 0xd5, 0xc2, - 0x72, 0x12, 0x86, 0x5f, 0x78, 0x7c, 0x36, 0x51, 0xd6, 0x00, 0xec, 0x62, 0x61, 0x8b, 0x56, 0x9c, - 0x1d, 0xe0, 0xf8, 0x97, 0x34, 0x0b, 0x5b, 0x27, 0x91, 0x73, 0xc0, 0x6f, 0x9a, 0x07, 0xfc, 0x9a, - 0xed, 0x49, 0xe9, 0xc7, 0xfc, 0x1f, 0x16, 0xe1, 0x8c, 0x6c, 0x2d, 0x13, 0x7a, 0x54, 0xbe, 0xd8, - 0x26, 0xd1, 0x2e, 0xfa, 0xa1, 0x03, 0x67, 0xbd, 0xac, 0xeb, 0xc6, 0x27, 0xc7, 0xb0, 0xd0, 0x1a, - 0xd7, 0xc9, 0xe9, 0x1c, 0x8e, 0x7c, 0xa1, 0x2f, 0x8b, 0x85, 0x3e, 0x9b, 0x87, 0xd2, 0xc5, 0xef, - 0x9e, 0x3b, 0x01, 0xf4, 0x3c, 0x0c, 0x4b, 0x38, 0x73, 0xf7, 0xf0, 0x57, 0x5c, 0x39, 0xb7, 0xa7, - 0xb5, 0x36, 0x6c, 0x60, 0xd2, 0x9e, 0x09, 0x69, 0xb6, 0x1a, 0x5e, 0x42, 0x34, 0x47, 0x91, 0xea, - 0xb9, 0xae, 0xb5, 0x61, 0x03, 0x13, 0x3d, 0x05, 0x7d, 0x41, 0x58, 0x25, 0x8b, 0x55, 0xe1, 0x20, - 0x1e, 0x15, 0x7d, 0xfa, 0xae, 0x31, 0x28, 0x16, 0xad, 0xe8, 0xc9, 0xd4, 0x1b, 0x57, 0x64, 0xaf, - 0xd0, 0x50, 0x9e, 0x27, 0x0e, 0xfd, 0x7d, 0x07, 0x06, 0x69, 0x8f, 0xf5, 0xdd, 0x16, 0xa1, 0x67, - 0x1b, 0x7d, 0x22, 0xd5, 0xe3, 0x79, 0x22, 0xd7, 0x24, 0x1b, 0xd3, 0xd5, 0x31, 0xa8, 0xe0, 0x9f, - 0x7c, 0x6b, 0x62, 0x40, 0xfe, 0xc0, 0xe9, 0xa8, 0xc6, 0x17, 0xe0, 0xe1, 0xae, 0x4f, 0xf3, 0x48, - 0xa1, 0x80, 0xbf, 0x02, 0xa3, 0xe6, 0x20, 0x8e, 0x14, 0x07, 0xf8, 0xe7, 0xda, 0x6b, 0xc7, 0xe7, - 0x25, 0xe4, 0xd9, 0x03, 0xd3, 0x66, 0xd5, 0x66, 0x98, 0x13, 0x5b, 0xcf, 0xdc, 0x0c, 0x73, 0x62, - 0x33, 0xcc, 0xb9, 0xbf, 0xe7, 0xa4, 0xaf, 0xa6, 0xa6, 0xe6, 0xd1, 0x83, 0xb9, 0x1d, 0x35, 0x84, - 0x20, 0x56, 0x07, 0xf3, 0x75, 0xbc, 0x8c, 0x29, 0x1c, 0x7d, 0x49, 0x93, 0x8e, 0xb4, 0x5b, 0x5b, - 0x84, 0x35, 0x2c, 0xb9, 0xe8, 0x0d, 0xc2, 0x9d, 0xf2, 0x4f, 0x34, 0xe0, 0xec, 0x10, 0xdc, 0x1f, - 0x3b, 0xf0, 0xd8, 0x81, 0x4a, 0x6b, 0xee, 0xc0, 0x9d, 0x07, 0x3e, 0x70, 0x7a, 0xac, 0x45, 0xa4, - 0x15, 0x5e, 0xc7, 0xcb, 0xe2, 0x79, 0xa9, 0x63, 0x0d, 0x73, 0x30, 0x96, 0xed, 0xee, 0x0f, 0x1d, - 0xc8, 0xd2, 0x43, 0x1e, 0x8c, 0xb6, 0x63, 0x12, 0xd1, 0x13, 0xb2, 0x4c, 0x2a, 0x11, 0x91, 0xbb, - 0xed, 0xc9, 0x49, 0x1e, 0xbc, 0xa7, 0x03, 0x9e, 0xac, 0x84, 0x11, 0x99, 0xdc, 0x7e, 0x76, 0x92, - 0x63, 0x2c, 0x91, 0xdd, 0x32, 0x69, 0x10, 0x4a, 0x63, 0x06, 0xed, 0xef, 0x4d, 0x8c, 0x5e, 0x37, - 0x08, 0xe0, 0x0c, 0x41, 0xca, 0xa2, 0xe5, 0xc5, 0xf1, 0x4e, 0x18, 0x55, 0x05, 0x8b, 0xc2, 0x91, - 0x59, 0xac, 0x19, 0x04, 0x70, 0x86, 0xa0, 0xfb, 0x26, 0xb5, 0x06, 0x75, 0x25, 0x14, 0x7d, 0x83, - 0xaa, 0x32, 0x14, 0x32, 0xd3, 0x08, 0x37, 0x66, 0xc3, 0x20, 0xf1, 0xfc, 0x80, 0xc8, 0xd8, 0xff, - 0xba, 0x25, 0x95, 0xd7, 0xa0, 0x9d, 0xba, 0xe4, 0x3b, 0xdb, 0x70, 0xce, 0x58, 0xa8, 0xca, 0xb2, - 0xd1, 0x08, 0x37, 0xb2, 0x41, 0x3d, 0x8a, 0x84, 0x59, 0x8b, 0xfb, 0x33, 0x07, 0x2e, 0x74, 0xd1, - 0xad, 0xd1, 0x57, 0x1c, 0x18, 0xd9, 0x78, 0x5b, 0xcc, 0xcd, 0x1c, 0x06, 0x7a, 0x1f, 0x8c, 0x52, - 0x00, 0x3d, 0x58, 0xe6, 0xc3, 0xa8, 0xe9, 0x25, 0x62, 0x82, 0x2a, 0xe0, 0x34, 0x63, 0xb4, 0xe2, - 0x0c, 0xb6, 0xfb, 0xeb, 0x05, 0xc8, 0xe1, 0x82, 0x9e, 0x81, 0x01, 0x12, 0x54, 0x5b, 0xa1, 0x1f, - 0x24, 0x42, 0xb6, 0x28, 0x21, 0x76, 0x45, 0xc0, 0xb1, 0xc2, 0x10, 0xe6, 0x84, 0x58, 0x98, 0x42, - 0x87, 0x39, 0x21, 0x46, 0x9e, 0xe2, 0xa0, 0x1a, 0x8c, 0x79, 0x3c, 0x5c, 0xc2, 0xf6, 0x1e, 0xdb, - 0xa6, 0x3d, 0x47, 0xd9, 0xa6, 0x67, 0x59, 0x34, 0x33, 0x43, 0x02, 0x77, 0x10, 0x45, 0xef, 0x86, - 0xa1, 0x76, 0x4c, 0xca, 0x73, 0x4b, 0xb3, 0x11, 0xa9, 0x72, 0x23, 0x57, 0x0b, 0xe3, 0x5d, 0x4f, - 0x9b, 0xb0, 0x8e, 0xe7, 0xfe, 0x4b, 0x07, 0xfa, 0x67, 0xbc, 0xca, 0x56, 0xb8, 0xb9, 0x49, 0x97, - 0xa2, 0xda, 0x8e, 0x52, 0x3f, 0x95, 0xb6, 0x14, 0x73, 0x02, 0x8e, 0x15, 0x06, 0x5a, 0x87, 0x3e, - 0xfe, 0xc2, 0x8b, 0xd7, 0xee, 0x17, 0xb5, 0xf9, 0xa8, 0xb4, 0x1c, 0xb6, 0x1d, 0xda, 0x89, 0xdf, - 0x98, 0xe4, 0x69, 0x39, 0x93, 0x8b, 0x41, 0xb2, 0x1a, 0x95, 0x93, 0xc8, 0x0f, 0x6a, 0x33, 0x40, - 0xa5, 0xff, 0x3c, 0xa3, 0x81, 0x05, 0x2d, 0x3a, 0x8d, 0xa6, 0x77, 0x4b, 0xb2, 0x13, 0xba, 0x86, - 0x9a, 0xc6, 0x4a, 0xda, 0x84, 0x75, 0x3c, 0xf7, 0xf7, 0x1d, 0x18, 0x9c, 0xf1, 0x62, 0xbf, 0xf2, - 0xe7, 0x48, 0xf8, 0x7c, 0x08, 0x8a, 0xb3, 0x5e, 0xa5, 0x4e, 0xd0, 0xf5, 0xac, 0x0d, 0x3b, 0x74, - 0xf9, 0xe9, 0x3c, 0x36, 0xca, 0x9e, 0xd5, 0x39, 0x8d, 0x74, 0xb3, 0x74, 0xdd, 0xb7, 0x1c, 0x18, - 0x9d, 0x6d, 0xf8, 0x24, 0x48, 0x66, 0x49, 0x94, 0xb0, 0x85, 0xab, 0xc1, 0x58, 0x45, 0x41, 0xee, - 0x65, 0xe9, 0xd8, 0x6e, 0x9d, 0xcd, 0x90, 0xc0, 0x1d, 0x44, 0x51, 0x15, 0x4e, 0x71, 0x58, 0xfa, - 0x56, 0x1c, 0x69, 0xfd, 0x98, 0xb3, 0x73, 0xd6, 0xa4, 0x80, 0xb3, 0x24, 0xdd, 0x9f, 0x3a, 0x70, - 0x61, 0xb6, 0xd1, 0x8e, 0x13, 0x12, 0xdd, 0x14, 0xd2, 0x48, 0x6a, 0xab, 0xe8, 0x23, 0x30, 0xd0, - 0x94, 0x01, 0x58, 0xe7, 0x2e, 0x1b, 0x98, 0xc9, 0x33, 0x8a, 0x4d, 0x07, 0xb3, 0xba, 0xf1, 0x2a, - 0xa9, 0x24, 0x2b, 0x24, 0xf1, 0xd2, 0x6c, 0x81, 0x14, 0x86, 0x15, 0x55, 0xd4, 0x82, 0xde, 0xb8, - 0x45, 0x2a, 0xf6, 0x92, 0xb5, 0xe4, 0x1c, 0xca, 0x2d, 0x52, 0x49, 0xe5, 0x3a, 0x0b, 0x1d, 0x32, - 0x4e, 0xee, 0xff, 0x72, 0xe0, 0x91, 0x2e, 0xf3, 0x5d, 0xf6, 0xe3, 0x04, 0xbd, 0xd2, 0x31, 0xe7, - 0xc9, 0xc3, 0xcd, 0x99, 0xf6, 0x66, 0x33, 0x56, 0x02, 0x41, 0x42, 0xb4, 0xf9, 0x7e, 0x0c, 0x8a, - 0x7e, 0x42, 0x9a, 0xd2, 0xab, 0x6c, 0xc1, 0xff, 0xd3, 0x65, 0x2e, 0x33, 0x23, 0x32, 0x65, 0x6f, - 0x91, 0xf2, 0xc3, 0x9c, 0xad, 0xfb, 0xaf, 0x1c, 0xa0, 0x1b, 0xbd, 0xea, 0x8b, 0x58, 0x5d, 0x6f, - 0xb2, 0xdb, 0x92, 0x86, 0xbb, 0x54, 0xe0, 0x7b, 0xa9, 0x3e, 0x7d, 0x67, 0x6f, 0x62, 0x44, 0x21, - 0x32, 0x05, 0x9e, 0xa1, 0xa2, 0x0f, 0x41, 0x5f, 0xcc, 0x8c, 0x5e, 0x21, 0xd9, 0xe7, 0xa5, 0x86, - 0xca, 0x4d, 0xe1, 0x3b, 0x7b, 0x13, 0x87, 0x4a, 0x8c, 0x9c, 0x54, 0xb4, 0x45, 0x58, 0x51, 0x50, - 0xa5, 0x2a, 0x55, 0x93, 0xc4, 0xb1, 0x57, 0x93, 0x36, 0x94, 0x52, 0xa9, 0x56, 0x38, 0x18, 0xcb, - 0x76, 0xf7, 0xcb, 0x0e, 0x8c, 0xa8, 0xf3, 0x84, 0x2a, 0xc8, 0xe8, 0x9a, 0x7e, 0xf2, 0xf0, 0x87, - 0xf7, 0x58, 0x17, 0x21, 0x20, 0xce, 0xd6, 0x83, 0x0f, 0xa6, 0x77, 0xc1, 0x70, 0x95, 0xb4, 0x48, - 0x50, 0x25, 0x41, 0x85, 0x1a, 0xb8, 0xf4, 0xa1, 0x0d, 0xce, 0x8c, 0x51, 0x8b, 0x6e, 0x4e, 0x83, - 0x63, 0x03, 0xcb, 0xfd, 0xa6, 0x03, 0x0f, 0x2b, 0x72, 0x65, 0x92, 0x60, 0x92, 0x44, 0xbb, 0x2a, - 0x11, 0xf2, 0x68, 0x07, 0xc8, 0x4d, 0xaa, 0x61, 0x26, 0x11, 0x67, 0x7e, 0x6f, 0x27, 0xc8, 0x10, - 0xd7, 0x47, 0x19, 0x11, 0x2c, 0xa9, 0xb9, 0xbf, 0xda, 0x03, 0x67, 0xf5, 0x41, 0xaa, 0x77, 0xfe, - 0x97, 0x1d, 0x00, 0xb5, 0x02, 0xf4, 0x8c, 0xec, 0xb1, 0x13, 0x1d, 0x32, 0x9e, 0x54, 0x2a, 0x15, - 0x14, 0x38, 0xc6, 0x1a, 0x5b, 0xf4, 0x12, 0x0c, 0x6f, 0x87, 0x8d, 0x76, 0x93, 0xac, 0xd0, 0x13, - 0x3c, 0x2e, 0xf5, 0xb0, 0x61, 0x4c, 0xe4, 0x3d, 0xcc, 0x1b, 0x29, 0x5e, 0x6a, 0x70, 0x6b, 0xc0, - 0x18, 0x1b, 0xa4, 0xa8, 0x2d, 0x31, 0x12, 0xe9, 0x8f, 0x44, 0x78, 0x9d, 0x3f, 0x68, 0x71, 0x8e, - 0xd9, 0xa7, 0x3e, 0x73, 0x7a, 0x7f, 0x6f, 0x62, 0xc4, 0x00, 0x61, 0x73, 0x10, 0xee, 0x4b, 0xc0, - 0xd6, 0xc2, 0x0f, 0xda, 0x64, 0x35, 0x40, 0x4f, 0x48, 0x2f, 0x18, 0x8f, 0x5c, 0xa8, 0x97, 0x59, - 0xf7, 0x84, 0x51, 0x6b, 0x71, 0xd3, 0xf3, 0x1b, 0x2c, 0x41, 0x90, 0x62, 0x29, 0x6b, 0x71, 0x9e, - 0x41, 0xb1, 0x68, 0x75, 0x27, 0xa1, 0x7f, 0x96, 0xce, 0x9d, 0x44, 0x94, 0xae, 0x9e, 0xd7, 0x3b, - 0x62, 0xe4, 0xf5, 0xca, 0xfc, 0xdd, 0x75, 0x38, 0x37, 0x1b, 0x11, 0x2f, 0x21, 0xe5, 0xe7, 0x66, - 0xda, 0x95, 0x2d, 0x92, 0xf0, 0xe4, 0xa9, 0x18, 0xbd, 0x17, 0x46, 0x42, 0x26, 0xc5, 0x97, 0xc3, - 0xca, 0x96, 0x1f, 0xd4, 0x84, 0x53, 0xf3, 0x9c, 0xa0, 0x32, 0xb2, 0xaa, 0x37, 0x62, 0x13, 0xd7, - 0xfd, 0x8f, 0x05, 0x18, 0x9e, 0x8d, 0xc2, 0x40, 0x4a, 0xaa, 0x13, 0x38, 0x5d, 0x12, 0xe3, 0x74, - 0xb1, 0x10, 0x50, 0xd4, 0xc7, 0xdf, 0xed, 0x84, 0x41, 0xb7, 0x95, 0x88, 0xec, 0xb1, 0x65, 0x15, - 0x18, 0x7c, 0x19, 0xed, 0xf4, 0x61, 0x9b, 0x02, 0xd4, 0xfd, 0x4f, 0x0e, 0x8c, 0xe9, 0xe8, 0x27, - 0x70, 0xa8, 0xc5, 0xe6, 0xa1, 0x76, 0xcd, 0xee, 0x7c, 0xbb, 0x9c, 0x64, 0x9f, 0xef, 0x33, 0xe7, - 0xc9, 0xa2, 0xc9, 0x5f, 0x75, 0x60, 0x78, 0x47, 0x03, 0x88, 0xc9, 0xda, 0xd6, 0x2b, 0xde, 0x21, - 0xc5, 0x8c, 0x0e, 0xbd, 0x93, 0xf9, 0x8d, 0x8d, 0x91, 0x50, 0xb9, 0x1f, 0x57, 0xea, 0xa4, 0xda, - 0x6e, 0x48, 0xbf, 0xa2, 0x5a, 0xd2, 0xb2, 0x80, 0x63, 0x85, 0x81, 0x5e, 0x81, 0xd3, 0x95, 0x30, - 0xa8, 0xb4, 0xa3, 0x88, 0x04, 0x95, 0xdd, 0x35, 0x76, 0x15, 0x41, 0x1c, 0x88, 0x93, 0xa2, 0xdb, - 0xe9, 0xd9, 0x2c, 0xc2, 0x9d, 0x3c, 0x20, 0xee, 0x24, 0xc4, 0xdd, 0xf1, 0x31, 0x3d, 0xb2, 0x84, - 0x0d, 0xa4, 0xb9, 0xe3, 0x19, 0x18, 0xcb, 0x76, 0x74, 0x1d, 0x2e, 0xc4, 0x89, 0x17, 0x25, 0x7e, - 0x50, 0x9b, 0x23, 0x5e, 0xb5, 0xe1, 0x07, 0x54, 0xbb, 0x0f, 0x83, 0x2a, 0x0f, 0xd6, 0xf5, 0xcc, - 0x3c, 0xb2, 0xbf, 0x37, 0x71, 0xa1, 0x9c, 0x8f, 0x82, 0xbb, 0xf5, 0x45, 0x1f, 0x82, 0x71, 0xe1, - 0xf0, 0xdf, 0x6c, 0x37, 0x5e, 0x08, 0x37, 0xe2, 0xab, 0x7e, 0x4c, 0x4d, 0xeb, 0x65, 0xbf, 0xe9, - 0x27, 0x2c, 0x24, 0x57, 0x9c, 0xb9, 0xb8, 0xbf, 0x37, 0x31, 0x5e, 0xee, 0x8a, 0x85, 0x0f, 0xa0, - 0x80, 0x30, 0x9c, 0xe7, 0xc2, 0xaf, 0x83, 0x76, 0x3f, 0xa3, 0x3d, 0xbe, 0xbf, 0x37, 0x71, 0x7e, - 0x3e, 0x17, 0x03, 0x77, 0xe9, 0x49, 0x9f, 0x60, 0xe2, 0x37, 0xc9, 0x6b, 0x61, 0x40, 0x58, 0x2a, - 0x88, 0xf6, 0x04, 0xd7, 0x05, 0x1c, 0x2b, 0x0c, 0xf4, 0x6a, 0xba, 0x13, 0xe9, 0xeb, 0x22, 0x52, - 0x3a, 0x8e, 0x2e, 0xe1, 0x98, 0xb5, 0x70, 0x53, 0xa3, 0xc4, 0x72, 0x15, 0x0d, 0xda, 0xee, 0x1f, - 0x14, 0x00, 0x75, 0x8a, 0x08, 0xb4, 0x04, 0x7d, 0x5e, 0x25, 0xf1, 0xb7, 0x65, 0xee, 0xdb, 0x13, - 0x79, 0xc7, 0x27, 0x67, 0x85, 0xc9, 0x26, 0xa1, 0x3b, 0x84, 0xa4, 0x72, 0x65, 0x9a, 0x75, 0xc5, - 0x82, 0x04, 0x0a, 0xe1, 0x74, 0xc3, 0x8b, 0x13, 0xb9, 0x57, 0xab, 0x74, 0xca, 0x42, 0xb0, 0xfe, - 0xfc, 0xe1, 0x26, 0x45, 0x7b, 0xcc, 0x9c, 0xa3, 0x3b, 0x77, 0x39, 0x4b, 0x08, 0x77, 0xd2, 0x46, - 0x1f, 0x67, 0x7a, 0x08, 0x57, 0x12, 0xa5, 0x02, 0xb0, 0x64, 0xe5, 0x8c, 0xe6, 0x34, 0x0d, 0x1d, - 0x44, 0xb0, 0xc1, 0x1a, 0x4b, 0xf7, 0x5f, 0x03, 0xf4, 0xcf, 0x4d, 0x2f, 0xac, 0x7b, 0xf1, 0xd6, - 0x21, 0x42, 0x5c, 0x74, 0x77, 0x08, 0x1d, 0x2a, 0xfb, 0x7e, 0x4b, 0xdd, 0x0a, 0x2b, 0x0c, 0x14, - 0x40, 0x9f, 0x1f, 0xd0, 0x17, 0xa2, 0x34, 0x6a, 0xcb, 0xc1, 0xac, 0x34, 0x7f, 0xe6, 0x32, 0x58, - 0x64, 0xd4, 0xb1, 0xe0, 0x82, 0x6e, 0xc3, 0xa0, 0x27, 0xef, 0x8e, 0x88, 0x63, 0x69, 0xc9, 0x86, - 0xe7, 0x54, 0x90, 0xd4, 0x73, 0x57, 0x04, 0x08, 0xa7, 0x0c, 0xd1, 0x27, 0x1c, 0x18, 0x92, 0x53, - 0xc7, 0x64, 0x53, 0x04, 0x35, 0x57, 0xec, 0xcd, 0x19, 0x93, 0x4d, 0x9e, 0xd8, 0xa0, 0x01, 0xb0, - 0xce, 0xb2, 0x43, 0x95, 0x2f, 0x1e, 0x46, 0x95, 0x47, 0x3b, 0x30, 0xb8, 0xe3, 0x27, 0x75, 0x76, - 0xf0, 0x88, 0x60, 0xca, 0xfc, 0xfd, 0x8f, 0x9a, 0x92, 0x4b, 0x57, 0xec, 0xa6, 0x64, 0x80, 0x53, - 0x5e, 0x68, 0x8a, 0x33, 0x66, 0x77, 0x6f, 0x98, 0xc8, 0x1a, 0x34, 0x3b, 0xb0, 0x06, 0x9c, 0xe2, - 0xd0, 0x25, 0x1e, 0xa6, 0xbf, 0xca, 0xe4, 0xa3, 0x6d, 0xfa, 0x1e, 0x8b, 0x64, 0x35, 0x0b, 0xfb, - 0x4a, 0x52, 0xe4, 0x8b, 0x75, 0x53, 0xe3, 0x81, 0x0d, 0x8e, 0xf4, 0x1d, 0xd9, 0xa9, 0x93, 0x40, - 0x24, 0xd3, 0xab, 0x77, 0xe4, 0x66, 0x9d, 0x04, 0x98, 0xb5, 0xa0, 0xdb, 0xdc, 0xb4, 0xe0, 0x3a, - 0xae, 0x48, 0x3c, 0x5b, 0xb6, 0xa3, 0x76, 0x73, 0x9a, 0x3c, 0x9f, 0x3d, 0xfd, 0x8d, 0x35, 0x7e, - 0x54, 0x5d, 0x0e, 0x83, 0x2b, 0xb7, 0xfc, 0x44, 0x64, 0xe1, 0x2b, 0x49, 0xb7, 0xca, 0xa0, 0x58, - 0xb4, 0xf2, 0xa0, 0x3d, 0xdd, 0x04, 0x31, 0x4b, 0xb9, 0x1f, 0xd4, 0x83, 0xf6, 0x0c, 0x8c, 0x65, - 0x3b, 0xfa, 0x7b, 0x0e, 0x14, 0xeb, 0x61, 0xb8, 0x15, 0x97, 0x46, 0xd8, 0xe6, 0xb0, 0xa0, 0xea, - 0x09, 0x89, 0x33, 0x79, 0x95, 0x92, 0x35, 0xef, 0x15, 0x15, 0x19, 0xec, 0xce, 0xde, 0xc4, 0xe8, - 0xb2, 0xbf, 0x49, 0x2a, 0xbb, 0x95, 0x06, 0x61, 0x90, 0x4f, 0xbe, 0xa5, 0x41, 0xae, 0x6c, 0x93, - 0x20, 0xc1, 0x7c, 0x54, 0xe3, 0x9f, 0x77, 0x00, 0x52, 0x42, 0x39, 0xd1, 0x31, 0x62, 0xc6, 0x93, - 0x2d, 0xd8, 0x79, 0xc6, 0xd0, 0xf4, 0x70, 0xdb, 0xbf, 0x71, 0x60, 0x88, 0x4e, 0x4e, 0x8a, 0xc0, - 0xa7, 0xa0, 0x2f, 0xf1, 0xa2, 0x1a, 0x91, 0x2e, 0x65, 0xf5, 0x38, 0xd6, 0x19, 0x14, 0x8b, 0x56, - 0x14, 0x40, 0x31, 0xf1, 0xe2, 0x2d, 0xa9, 0x5d, 0x2e, 0x5a, 0x5b, 0xe2, 0x54, 0xb1, 0xa4, 0xbf, - 0x62, 0xcc, 0xd9, 0xa0, 0xa7, 0x61, 0x80, 0x2a, 0x00, 0xf3, 0x5e, 0x2c, 0x93, 0x36, 0x86, 0xa9, - 0x10, 0x9f, 0x17, 0x30, 0xac, 0x5a, 0xdd, 0x5f, 0x2f, 0x40, 0xef, 0x1c, 0xb7, 0x33, 0xfa, 0xe2, - 0xb0, 0x1d, 0x55, 0x88, 0xd0, 0x37, 0x2d, 0xec, 0x69, 0x4a, 0xb7, 0xcc, 0x68, 0x6a, 0x9a, 0x3e, - 0xfb, 0x8d, 0x05, 0x2f, 0x6a, 0xc8, 0x8e, 0x26, 0x91, 0x17, 0xc4, 0x9b, 0xcc, 0x79, 0xef, 0x87, - 0x81, 0x58, 0x22, 0x0b, 0xbb, 0x70, 0xdd, 0xa0, 0x5b, 0x4e, 0x48, 0x2b, 0x8d, 0x21, 0x98, 0x6d, - 0x38, 0x33, 0x06, 0xf7, 0x37, 0x1c, 0x80, 0x74, 0xf4, 0xe8, 0x73, 0x0e, 0x8c, 0x78, 0x7a, 0xb2, - 0xa0, 0x58, 0xa3, 0x55, 0x7b, 0x81, 0x3b, 0x46, 0x96, 0x9b, 0xd8, 0x06, 0x08, 0x9b, 0x8c, 0xdd, - 0x77, 0x43, 0x91, 0xbd, 0x1d, 0x4c, 0x17, 0x17, 0x5e, 0xd2, 0xac, 0x0f, 0x46, 0x7a, 0x4f, 0xb1, - 0xc2, 0x70, 0x5f, 0x81, 0xd1, 0x2b, 0xb7, 0x48, 0xa5, 0x9d, 0x84, 0x11, 0xf7, 0x11, 0x77, 0xb9, - 0x1c, 0xe2, 0xdc, 0xd3, 0xe5, 0x90, 0xef, 0x3a, 0x30, 0xa4, 0x65, 0x8e, 0xd1, 0x93, 0xba, 0x36, - 0x5b, 0xe6, 0x76, 0xb7, 0x58, 0xaa, 0x25, 0x2b, 0xb9, 0x69, 0x9c, 0x64, 0x7a, 0x8c, 0x28, 0x10, - 0x4e, 0x19, 0xde, 0x25, 0xb3, 0xcb, 0xfd, 0x5d, 0x07, 0xce, 0xe5, 0xa6, 0xb9, 0x3d, 0xe0, 0x61, - 0x4f, 0xc1, 0xe0, 0x16, 0xd9, 0x35, 0x42, 0x5e, 0xaa, 0xc3, 0x92, 0x6c, 0xc0, 0x29, 0x8e, 0xfb, - 0x3d, 0x07, 0x52, 0x4a, 0x54, 0x14, 0x6d, 0xa4, 0x23, 0xd7, 0x44, 0x91, 0xe0, 0x24, 0x5a, 0xd1, - 0x6d, 0xb8, 0x60, 0x3e, 0xc1, 0x7b, 0xf4, 0xcc, 0x73, 0x9b, 0x29, 0x9f, 0x12, 0xee, 0xc6, 0xc2, - 0xbd, 0x01, 0xc5, 0x05, 0xaf, 0x5d, 0x23, 0x87, 0x72, 0xe2, 0x50, 0x31, 0x16, 0x11, 0xaf, 0x91, - 0x48, 0x35, 0x5d, 0x88, 0x31, 0x2c, 0x60, 0x58, 0xb5, 0xba, 0x3f, 0x2c, 0xc2, 0x90, 0x76, 0x99, - 0x81, 0x9e, 0xe3, 0x11, 0x69, 0x85, 0x59, 0x5d, 0x97, 0x3e, 0x6c, 0xcc, 0x5a, 0xe8, 0xfb, 0x13, - 0x91, 0x6d, 0x3f, 0xe6, 0x22, 0xc7, 0x78, 0x7f, 0xb0, 0x80, 0x63, 0x85, 0x81, 0x26, 0xa0, 0x58, - 0x25, 0xad, 0xa4, 0xce, 0xa4, 0x69, 0x2f, 0xcf, 0xe8, 0x9a, 0xa3, 0x00, 0xcc, 0xe1, 0x14, 0x61, - 0x93, 0x24, 0x95, 0x3a, 0x73, 0x36, 0x8a, 0x94, 0xaf, 0x79, 0x0a, 0xc0, 0x1c, 0x9e, 0x13, 0xab, - 0x2a, 0x1e, 0x7f, 0xac, 0xaa, 0xcf, 0x72, 0xac, 0x0a, 0xb5, 0xe0, 0x4c, 0x1c, 0xd7, 0xd7, 0x22, - 0x7f, 0xdb, 0x4b, 0x48, 0xba, 0x73, 0xfa, 0x8f, 0xc2, 0xe7, 0x02, 0xbb, 0x5e, 0x5c, 0xbe, 0x9a, - 0xa5, 0x82, 0xf3, 0x48, 0xa3, 0x32, 0x9c, 0xf3, 0x83, 0x98, 0x54, 0xda, 0x11, 0x59, 0xac, 0x05, - 0x61, 0x44, 0xae, 0x86, 0x31, 0x25, 0x27, 0x2e, 0x47, 0xaa, 0x24, 0xc8, 0xc5, 0x3c, 0x24, 0x9c, - 0xdf, 0x17, 0x2d, 0xc0, 0xe9, 0xaa, 0x1f, 0x7b, 0x1b, 0x0d, 0x52, 0x6e, 0x6f, 0x34, 0x43, 0x6a, - 0xb0, 0xf1, 0x0b, 0x0b, 0x03, 0x33, 0x0f, 0x4b, 0xd7, 0xc4, 0x5c, 0x16, 0x01, 0x77, 0xf6, 0x41, - 0xcf, 0xc3, 0x70, 0xec, 0x07, 0xb5, 0x06, 0x99, 0x89, 0xbc, 0xa0, 0x52, 0x17, 0xb7, 0x2a, 0x95, - 0x0b, 0xb7, 0xac, 0xb5, 0x61, 0x03, 0x93, 0xbd, 0xaf, 0xbc, 0x4f, 0x46, 0x93, 0x13, 0xd8, 0xa2, - 0xd5, 0xfd, 0x91, 0x03, 0xc3, 0x7a, 0x02, 0x32, 0xd5, 0x92, 0xa1, 0x3e, 0x37, 0x5f, 0xe6, 0x72, - 0xdc, 0xde, 0x69, 0x7d, 0x55, 0xd1, 0x4c, 0xad, 0xca, 0x14, 0x86, 0x35, 0x9e, 0x87, 0xb8, 0x4e, - 0xfc, 0x04, 0x14, 0x37, 0x43, 0xaa, 0x4c, 0xf4, 0x98, 0xbe, 0xdf, 0x79, 0x0a, 0xc4, 0xbc, 0xcd, - 0xfd, 0x1f, 0x0e, 0x9c, 0xcf, 0xcf, 0xad, 0x7e, 0x3b, 0x4c, 0xf2, 0x32, 0x00, 0x9d, 0x8a, 0x21, - 0x90, 0xb5, 0x82, 0x02, 0xb2, 0x05, 0x6b, 0x58, 0x87, 0x9b, 0xf6, 0x9f, 0x50, 0x85, 0x36, 0xe5, - 0xf3, 0x05, 0x07, 0x46, 0x28, 0xdb, 0xa5, 0x68, 0xc3, 0x98, 0xed, 0xaa, 0x9d, 0xd9, 0x2a, 0xb2, - 0xa9, 0x8b, 0xdb, 0x00, 0x63, 0x93, 0x39, 0xfa, 0x05, 0x18, 0xf4, 0xaa, 0xd5, 0x88, 0xc4, 0xb1, - 0x0a, 0x16, 0xb1, 0xd0, 0xf2, 0xb4, 0x04, 0xe2, 0xb4, 0x9d, 0x0a, 0xd1, 0x7a, 0x75, 0x33, 0xa6, - 0x72, 0x49, 0x78, 0xf6, 0x94, 0x10, 0xa5, 0x4c, 0x28, 0x1c, 0x2b, 0x0c, 0xf7, 0x6f, 0xf6, 0x82, - 0xc9, 0x1b, 0x55, 0xe1, 0xd4, 0x56, 0xb4, 0x31, 0xcb, 0xc2, 0xdf, 0xf7, 0x12, 0x86, 0x66, 0xe1, - 0xe1, 0x25, 0x93, 0x02, 0xce, 0x92, 0x14, 0x5c, 0x96, 0xc8, 0x6e, 0xe2, 0x6d, 0xdc, 0x73, 0x10, - 0x7a, 0xc9, 0xa4, 0x80, 0xb3, 0x24, 0xd1, 0xbb, 0x61, 0x68, 0x2b, 0xda, 0x90, 0x22, 0x3a, 0x9b, - 0xd1, 0xb0, 0x94, 0x36, 0x61, 0x1d, 0x8f, 0x2e, 0xe1, 0x56, 0xb4, 0x41, 0x8f, 0x34, 0x79, 0xbd, - 0x5e, 0x2d, 0xe1, 0x92, 0x80, 0x63, 0x85, 0x81, 0x5a, 0x80, 0xb6, 0xe4, 0xea, 0xa9, 0x60, 0xbf, - 0x38, 0x49, 0x0e, 0x9f, 0x2b, 0xc0, 0x92, 0xa6, 0x97, 0x3a, 0xe8, 0xe0, 0x1c, 0xda, 0xe8, 0x25, - 0xb8, 0xb0, 0x15, 0x6d, 0x88, 0x83, 0x7e, 0x2d, 0xf2, 0x83, 0x8a, 0xdf, 0x32, 0xae, 0xd2, 0x4f, - 0x88, 0xe1, 0x5e, 0x58, 0xca, 0x47, 0xc3, 0xdd, 0xfa, 0xbb, 0xbf, 0xd5, 0x0b, 0xec, 0x12, 0x20, - 0x95, 0x85, 0x4d, 0x92, 0xd4, 0xc3, 0x6a, 0x56, 0x77, 0x59, 0x61, 0x50, 0x2c, 0x5a, 0x65, 0x6a, - 0x60, 0xa1, 0x4b, 0x6a, 0xe0, 0x0e, 0xf4, 0xd7, 0x89, 0x57, 0x25, 0x91, 0x74, 0xb5, 0x2d, 0xdb, - 0xb9, 0xb6, 0x78, 0x95, 0x11, 0x4d, 0x4d, 0x68, 0xfe, 0x3b, 0xc6, 0x92, 0x1b, 0x7a, 0x0f, 0x8c, - 0x52, 0x2d, 0x24, 0x6c, 0x27, 0xd2, 0xaf, 0xdc, 0xcb, 0xfc, 0xca, 0xec, 0x44, 0x5d, 0x37, 0x5a, - 0x70, 0x06, 0x13, 0xcd, 0xc1, 0x98, 0xf0, 0x01, 0x2b, 0x17, 0x9e, 0x58, 0x58, 0x55, 0xe3, 0xa0, - 0x9c, 0x69, 0xc7, 0x1d, 0x3d, 0x58, 0x2e, 0x58, 0x58, 0xe5, 0x61, 0x40, 0x3d, 0x17, 0x2c, 0xac, - 0xee, 0x62, 0xd6, 0x82, 0x5e, 0x83, 0x01, 0xfa, 0x77, 0x3e, 0x0a, 0x9b, 0xc2, 0xaf, 0xb2, 0x66, - 0x67, 0x75, 0x28, 0x0f, 0x61, 0xe5, 0x31, 0xed, 0x6c, 0x46, 0x70, 0xc1, 0x8a, 0x1f, 0xb5, 0x35, - 0xe4, 0x39, 0x5c, 0xde, 0xf2, 0x5b, 0x37, 0x48, 0xe4, 0x6f, 0xee, 0x32, 0xa5, 0x61, 0x20, 0xb5, - 0x35, 0x16, 0x3b, 0x30, 0x70, 0x4e, 0x2f, 0xf7, 0x0b, 0x05, 0x18, 0xd6, 0xef, 0x92, 0xde, 0x2d, - 0x5f, 0x34, 0x4e, 0x37, 0x05, 0xb7, 0x2c, 0xaf, 0x5a, 0x98, 0xf6, 0xdd, 0x36, 0x44, 0x1d, 0x7a, - 0xbd, 0xb6, 0xd0, 0x16, 0xad, 0x38, 0xb0, 0xd8, 0x8c, 0xdb, 0x49, 0x9d, 0x5f, 0x3a, 0x62, 0x99, - 0x9c, 0x8c, 0x83, 0xfb, 0xe9, 0x1e, 0x18, 0x90, 0x8d, 0xe8, 0x53, 0x0e, 0x40, 0x9a, 0x82, 0x23, - 0x44, 0xe9, 0x9a, 0x8d, 0xfc, 0x0c, 0x3d, 0x7b, 0x48, 0x73, 0x3a, 0x2b, 0x38, 0xd6, 0xf8, 0xa2, - 0x04, 0xfa, 0x42, 0x3a, 0xb8, 0xcb, 0xf6, 0xee, 0x43, 0xaf, 0x52, 0xc6, 0x97, 0x19, 0xf7, 0xd4, - 0xe5, 0xc5, 0x60, 0x58, 0xf0, 0xa2, 0xd6, 0xdb, 0x86, 0xcc, 0x0c, 0xb3, 0xe7, 0x1e, 0x56, 0xc9, - 0x66, 0xa9, 0x31, 0xa6, 0x40, 0x38, 0x65, 0xe8, 0x3e, 0x0b, 0xa3, 0xe6, 0xcb, 0x40, 0x2d, 0x82, - 0x8d, 0xdd, 0x84, 0x70, 0x5f, 0xc1, 0x30, 0xb7, 0x08, 0x66, 0x28, 0x00, 0x73, 0xb8, 0xfb, 0x26, - 0xd5, 0x03, 0x94, 0x78, 0x39, 0x84, 0x7b, 0xfe, 0x09, 0xdd, 0xd1, 0xd5, 0xcd, 0x66, 0xfa, 0x38, - 0x0c, 0xb2, 0x7f, 0xd8, 0x8b, 0xde, 0x63, 0x2b, 0x68, 0x9c, 0x8e, 0x53, 0xbc, 0xea, 0x4c, 0x27, - 0xb8, 0x21, 0x19, 0xe1, 0x94, 0xa7, 0x1b, 0xc2, 0x58, 0x16, 0x1b, 0x7d, 0x10, 0x86, 0x63, 0x79, - 0xac, 0xa6, 0x37, 0xa3, 0x0e, 0x79, 0xfc, 0x32, 0x9f, 0x6d, 0x59, 0xeb, 0x8e, 0x0d, 0x62, 0xee, - 0x2a, 0xf4, 0x59, 0x5d, 0x42, 0xf7, 0xdb, 0x0e, 0x0c, 0xb2, 0xa8, 0x59, 0x2d, 0xf2, 0x9a, 0x69, - 0x97, 0x9e, 0x03, 0x56, 0x3d, 0x86, 0x7e, 0x6e, 0x5f, 0xcb, 0x6c, 0x13, 0x0b, 0x52, 0x86, 0x97, - 0x31, 0x4b, 0xa5, 0x0c, 0x37, 0xe4, 0x63, 0x2c, 0x39, 0xb9, 0x9f, 0x29, 0x40, 0xdf, 0x62, 0xd0, - 0x6a, 0xff, 0x85, 0x2f, 0xa5, 0xb5, 0x02, 0xbd, 0x8b, 0x09, 0x69, 0x9a, 0x15, 0xdf, 0x86, 0x67, - 0x9e, 0xd4, 0xab, 0xbd, 0x95, 0xcc, 0x6a, 0x6f, 0xd8, 0xdb, 0x91, 0xc9, 0x58, 0xc2, 0xbf, 0x9b, - 0xde, 0x0e, 0x7b, 0x06, 0x06, 0x97, 0xbd, 0x0d, 0xd2, 0x58, 0x22, 0xbb, 0xec, 0x2e, 0x17, 0x4f, - 0x0c, 0x70, 0x52, 0xc3, 0xde, 0x08, 0xe2, 0xcf, 0xc1, 0x28, 0xc3, 0x56, 0x2f, 0x03, 0xb5, 0x1c, - 0x48, 0x5a, 0x2e, 0xc7, 0x31, 0x2d, 0x07, 0xad, 0x54, 0x8e, 0x86, 0xe5, 0x4e, 0xc2, 0x50, 0x4a, - 0xe5, 0x10, 0x5c, 0x7f, 0x56, 0x80, 0x11, 0xc3, 0x4d, 0x6d, 0x04, 0xef, 0x9c, 0xbb, 0x06, 0xef, - 0x8c, 0x60, 0x5a, 0xe1, 0x41, 0x07, 0xd3, 0x7a, 0x4e, 0x3e, 0x98, 0x66, 0x3e, 0xa4, 0xde, 0x43, - 0x3d, 0xa4, 0x06, 0xf4, 0x2e, 0xfb, 0xc1, 0xd6, 0xe1, 0xe4, 0x4c, 0x5c, 0x09, 0x5b, 0x1d, 0x72, - 0xa6, 0x4c, 0x81, 0x98, 0xb7, 0x49, 0xcd, 0xa5, 0x27, 0x5f, 0x73, 0x71, 0x3f, 0xe5, 0xc0, 0xf0, - 0x8a, 0x17, 0xf8, 0x9b, 0x24, 0x4e, 0xd8, 0xbe, 0x4a, 0x8e, 0xf5, 0x4e, 0xcf, 0x70, 0x97, 0xdb, - 0xe9, 0x9f, 0x74, 0xe0, 0xf4, 0x0a, 0x69, 0x86, 0xfe, 0x6b, 0x5e, 0x9a, 0xeb, 0x48, 0xc7, 0x5e, - 0xf7, 0x13, 0x91, 0xda, 0xa5, 0xc6, 0x7e, 0xd5, 0x4f, 0x30, 0x85, 0xdf, 0xc5, 0x07, 0xcb, 0xd2, - 0xeb, 0xa9, 0x81, 0xa6, 0xdd, 0x33, 0x4b, 0xb3, 0x18, 0x65, 0x03, 0x4e, 0x71, 0xdc, 0xdf, 0x76, - 0xa0, 0x9f, 0x0f, 0x82, 0x48, 0xda, 0x4e, 0x17, 0xda, 0x75, 0x28, 0xb2, 0x7e, 0x62, 0x57, 0x2f, - 0x58, 0x50, 0x7f, 0x28, 0x39, 0xfe, 0x0e, 0xb2, 0x7f, 0x31, 0x67, 0xc0, 0xcc, 0x16, 0xef, 0xd6, - 0xb4, 0x4a, 0xf3, 0x4c, 0xcd, 0x16, 0x06, 0xc5, 0xa2, 0xd5, 0xfd, 0x7a, 0x0f, 0x0c, 0xa8, 0xa2, - 0x4c, 0xec, 0xca, 0x7c, 0x10, 0x84, 0x89, 0xc7, 0x93, 0x02, 0xb8, 0xac, 0xfe, 0xa0, 0xbd, 0xa2, - 0x50, 0x93, 0xd3, 0x29, 0x75, 0x1e, 0x7b, 0x53, 0x46, 0xa8, 0xd6, 0x82, 0xf5, 0x41, 0xa0, 0x8f, - 0x41, 0x5f, 0x83, 0x4a, 0x1f, 0x29, 0xba, 0x6f, 0x58, 0x1c, 0x0e, 0x13, 0x6b, 0x62, 0x24, 0x6a, - 0x85, 0x38, 0x10, 0x0b, 0xae, 0xe3, 0xef, 0x83, 0xb1, 0xec, 0xa8, 0xef, 0x76, 0x0d, 0x6e, 0x50, - 0xbf, 0x44, 0xf7, 0x97, 0x85, 0xf4, 0x3c, 0x7a, 0x57, 0xf7, 0x45, 0x18, 0x5a, 0x21, 0x49, 0xe4, - 0x57, 0x18, 0x81, 0xbb, 0x6d, 0xae, 0x43, 0xe9, 0x0f, 0x9f, 0x65, 0x9b, 0x95, 0xd2, 0x8c, 0xd1, - 0x6d, 0x80, 0x56, 0x14, 0x52, 0xfb, 0x95, 0xb4, 0xe5, 0xc3, 0xb6, 0xa0, 0x0f, 0xaf, 0x29, 0x9a, - 0x3c, 0x5c, 0x9c, 0xfe, 0xc6, 0x1a, 0x3f, 0xf7, 0x12, 0x14, 0x57, 0xda, 0x09, 0xb9, 0x75, 0x77, - 0x89, 0xe5, 0x7e, 0x10, 0x86, 0x19, 0xea, 0xd5, 0xb0, 0x41, 0x4f, 0x49, 0x3a, 0xd3, 0x26, 0xfd, - 0x9d, 0x75, 0xd0, 0x33, 0x24, 0xcc, 0xdb, 0xe8, 0x1b, 0x50, 0x0f, 0x1b, 0x55, 0x75, 0x47, 0x46, - 0x3d, 0xdf, 0xab, 0x0c, 0x8a, 0x45, 0xab, 0xfb, 0xcb, 0x05, 0x18, 0x62, 0x1d, 0x85, 0xf4, 0xd8, - 0x85, 0xfe, 0x3a, 0xe7, 0x23, 0x96, 0xc4, 0x42, 0x76, 0x9b, 0x3e, 0x7a, 0xcd, 0x34, 0xe3, 0x00, - 0x2c, 0xf9, 0x51, 0xd6, 0x3b, 0x9e, 0x9f, 0x50, 0xd6, 0x85, 0xe3, 0x65, 0x7d, 0x93, 0xb3, 0xc1, - 0x92, 0x9f, 0xfb, 0xe5, 0x02, 0x00, 0x2b, 0x99, 0xc5, 0xaf, 0x68, 0xfe, 0x22, 0x14, 0x5b, 0x75, - 0x2f, 0xce, 0x06, 0xdd, 0x8a, 0x6b, 0x14, 0x78, 0x47, 0x5c, 0x42, 0x65, 0x3f, 0x30, 0x47, 0xd4, - 0x13, 0xcb, 0x0b, 0x07, 0x27, 0x96, 0xa3, 0x16, 0xf4, 0x87, 0xed, 0x84, 0xea, 0x86, 0xe2, 0x70, - 0xb5, 0x10, 0x73, 0x5e, 0xe5, 0x04, 0x79, 0x36, 0xb6, 0xf8, 0x81, 0x25, 0x1b, 0xf4, 0x3c, 0x0c, - 0xb4, 0xa2, 0xb0, 0x46, 0xcf, 0x4a, 0x71, 0x9c, 0x3e, 0x2a, 0xf5, 0x8f, 0x35, 0x01, 0xbf, 0xa3, - 0xfd, 0x8f, 0x15, 0xb6, 0xfb, 0x93, 0x53, 0x7c, 0x5d, 0xc4, 0xe6, 0x18, 0x87, 0x82, 0x2f, 0x3d, - 0x41, 0x20, 0x48, 0x14, 0x16, 0xe7, 0x70, 0xc1, 0xaf, 0xaa, 0x7d, 0x5c, 0xe8, 0x7a, 0xf2, 0xbe, - 0x1b, 0x86, 0xaa, 0x7e, 0xdc, 0x6a, 0x78, 0xbb, 0xd7, 0x72, 0xdc, 0x70, 0x73, 0x69, 0x13, 0xd6, - 0xf1, 0xd0, 0x33, 0xe2, 0x1a, 0x41, 0xaf, 0xe1, 0x7a, 0x91, 0xd7, 0x08, 0xd2, 0x2b, 0xc0, 0xfc, - 0x06, 0x41, 0xf6, 0xaa, 0x74, 0xf1, 0xd0, 0x57, 0xa5, 0xb3, 0x9a, 0x4f, 0xdf, 0xc9, 0x6b, 0x3e, - 0xef, 0x85, 0x11, 0xf9, 0x93, 0xa9, 0x23, 0xa5, 0xb3, 0x6c, 0xf4, 0xca, 0x3d, 0xbc, 0xae, 0x37, - 0x62, 0x13, 0x37, 0xdd, 0xb4, 0xfd, 0x87, 0xdd, 0xb4, 0x97, 0x01, 0x36, 0xc2, 0x76, 0x50, 0xf5, - 0xa2, 0xdd, 0xc5, 0x39, 0x91, 0x74, 0xa8, 0x14, 0xad, 0x19, 0xd5, 0x82, 0x35, 0x2c, 0x7d, 0xa3, - 0x0f, 0xde, 0x65, 0xa3, 0x7f, 0x10, 0x06, 0x59, 0x82, 0x26, 0xa9, 0x4e, 0x27, 0x22, 0x1d, 0xe7, - 0x28, 0xb9, 0x7c, 0x4a, 0xed, 0x28, 0x4b, 0x22, 0x38, 0xa5, 0x87, 0x3e, 0x04, 0xb0, 0xe9, 0x07, - 0x7e, 0x5c, 0x67, 0xd4, 0x87, 0x8e, 0x4c, 0x5d, 0xcd, 0x73, 0x5e, 0x51, 0xc1, 0x1a, 0x45, 0xf4, - 0x0a, 0x9c, 0x26, 0x71, 0xe2, 0x37, 0xbd, 0x84, 0x54, 0xd5, 0x5d, 0xb8, 0x12, 0xf3, 0x1d, 0xaa, - 0x14, 0xd9, 0x2b, 0x59, 0x84, 0x3b, 0x79, 0x40, 0xdc, 0x49, 0xc8, 0x78, 0x23, 0xc7, 0x8f, 0xf2, - 0x46, 0xa2, 0x3f, 0x75, 0xe0, 0x74, 0x44, 0x78, 0x8e, 0x46, 0xac, 0x06, 0x76, 0x8e, 0xc9, 0xcb, - 0x8a, 0x8d, 0x6a, 0xd4, 0xaa, 0xec, 0x04, 0xce, 0x72, 0xe1, 0x8a, 0x02, 0x91, 0xb3, 0xef, 0x68, - 0xbf, 0x93, 0x07, 0xfc, 0xe4, 0x5b, 0x13, 0x13, 0x9d, 0xa5, 0xd1, 0x15, 0x71, 0xfa, 0xe6, 0xfd, - 0x8d, 0xb7, 0x26, 0xc6, 0xe4, 0xef, 0x74, 0xd1, 0x3a, 0x26, 0x49, 0xcf, 0xbd, 0x56, 0x58, 0x5d, - 0x5c, 0x13, 0x79, 0x53, 0xea, 0xdc, 0x5b, 0xa3, 0x40, 0xcc, 0xdb, 0xd0, 0xd3, 0x30, 0x50, 0xf5, - 0x48, 0x33, 0x0c, 0x54, 0x5d, 0x51, 0xa6, 0x3d, 0xcf, 0x09, 0x18, 0x56, 0xad, 0xa8, 0x01, 0x7d, - 0x3e, 0x33, 0xd1, 0x45, 0x92, 0xa4, 0x05, 0xbf, 0x00, 0x37, 0xf9, 0x65, 0x8a, 0x24, 0x13, 0xc2, - 0x82, 0x87, 0x2e, 0xf5, 0x4f, 0x9d, 0x8c, 0xd4, 0x7f, 0x1a, 0x06, 0x2a, 0x75, 0xbf, 0x51, 0x8d, - 0x48, 0x50, 0x1a, 0x63, 0xb6, 0x2a, 0x5b, 0x89, 0x59, 0x01, 0xc3, 0xaa, 0x15, 0xfd, 0x25, 0x18, - 0x09, 0xdb, 0x09, 0x7b, 0xc9, 0xe9, 0xf3, 0x8f, 0x4b, 0xa7, 0x19, 0x3a, 0x4b, 0x79, 0x59, 0xd5, - 0x1b, 0xb0, 0x89, 0x47, 0x85, 0x6d, 0x3d, 0x8c, 0x59, 0xad, 0x12, 0x26, 0x6c, 0xcf, 0x9b, 0xc2, - 0xf6, 0xaa, 0xd6, 0x86, 0x0d, 0x4c, 0xf4, 0x55, 0x07, 0x4e, 0x37, 0xb3, 0xa6, 0x4b, 0xe9, 0x02, - 0x5b, 0x99, 0xb2, 0x0d, 0x15, 0x37, 0x43, 0x9a, 0x67, 0x06, 0x77, 0x80, 0x71, 0xe7, 0x20, 0x58, - 0xd5, 0xa0, 0x78, 0x37, 0xa8, 0xd4, 0xa3, 0x30, 0x30, 0x87, 0xf7, 0xb0, 0xad, 0x9b, 0x3c, 0xec, - 0x2d, 0xcb, 0x63, 0x31, 0xf3, 0xf0, 0xfe, 0xde, 0xc4, 0xb9, 0xdc, 0x26, 0x9c, 0x3f, 0xa8, 0xf1, - 0x39, 0x38, 0x9f, 0xff, 0xa6, 0xde, 0x4d, 0xd7, 0xee, 0xd1, 0x75, 0xed, 0x79, 0x78, 0xb8, 0xeb, - 0xa0, 0xa8, 0xcc, 0x97, 0x8a, 0x99, 0x63, 0xca, 0xfc, 0x0e, 0x45, 0x6a, 0x14, 0x86, 0xf5, 0x82, - 0xf6, 0xee, 0xff, 0xe9, 0x01, 0x48, 0x3d, 0xc4, 0xc8, 0x83, 0x51, 0xee, 0x8d, 0x5e, 0x9c, 0xbb, - 0xe7, 0x6b, 0xc1, 0xb3, 0x06, 0x01, 0x9c, 0x21, 0x88, 0x9a, 0x80, 0x38, 0x84, 0xff, 0xbe, 0x97, - 0xa8, 0x22, 0x0b, 0xc2, 0xcd, 0x76, 0x10, 0xc1, 0x39, 0x84, 0xe9, 0x8c, 0x92, 0x70, 0x8b, 0x04, - 0xd7, 0xf1, 0xf2, 0xbd, 0xdc, 0x2d, 0xe7, 0x71, 0x28, 0x83, 0x00, 0xce, 0x10, 0x44, 0x2e, 0xf4, - 0x31, 0xaf, 0x84, 0x4c, 0x2b, 0x66, 0xe2, 0x85, 0x9d, 0xf9, 0x31, 0x16, 0x2d, 0xe8, 0xcb, 0x0e, - 0x8c, 0xca, 0x2b, 0xf2, 0xcc, 0x0f, 0x28, 0x13, 0x8a, 0xaf, 0xdb, 0xf2, 0xf0, 0x5f, 0xd1, 0xa9, - 0xa7, 0xe9, 0x7a, 0x06, 0x38, 0xc6, 0x99, 0x41, 0xb8, 0x2f, 0xc1, 0x99, 0x9c, 0xee, 0x56, 0x6c, - 0xb9, 0xef, 0x3a, 0x30, 0xa4, 0x15, 0x62, 0x43, 0xb7, 0x61, 0x30, 0x2c, 0x5b, 0xcf, 0x11, 0x5b, - 0x2d, 0x77, 0xe4, 0x88, 0x29, 0x10, 0x4e, 0x19, 0x1e, 0x26, 0xb5, 0x2d, 0xb7, 0x6a, 0xdc, 0x03, - 0x1e, 0xf6, 0x91, 0x53, 0xdb, 0xfe, 0x5d, 0x2f, 0xa4, 0x94, 0x8e, 0x58, 0xba, 0x21, 0x4d, 0x84, - 0x2b, 0x1c, 0x98, 0x08, 0x57, 0x85, 0x53, 0x1e, 0x8b, 0xa2, 0xde, 0x63, 0xc1, 0x06, 0x5e, 0x87, - 0xd3, 0xa4, 0x80, 0xb3, 0x24, 0x29, 0x97, 0x38, 0xed, 0xca, 0xb8, 0xf4, 0x1e, 0x99, 0x4b, 0xd9, - 0xa4, 0x80, 0xb3, 0x24, 0xd1, 0x2b, 0x50, 0xaa, 0xb0, 0xdb, 0x8e, 0x7c, 0x8e, 0x8b, 0x9b, 0xd7, - 0xc2, 0x64, 0x2d, 0x22, 0x31, 0x09, 0x12, 0x51, 0x69, 0xe9, 0x71, 0xb1, 0x0a, 0xa5, 0xd9, 0x2e, - 0x78, 0xb8, 0x2b, 0x05, 0x6a, 0x30, 0xb0, 0x30, 0xac, 0x9f, 0xec, 0x32, 0x21, 0x22, 0xe2, 0xd3, - 0xca, 0x60, 0x28, 0xeb, 0x8d, 0xd8, 0xc4, 0x45, 0xbf, 0xe2, 0xc0, 0x48, 0x43, 0x3a, 0xaa, 0x71, - 0xbb, 0x21, 0xcb, 0x06, 0x62, 0x2b, 0xdb, 0x6f, 0x59, 0xa7, 0xcc, 0x75, 0x09, 0x03, 0x84, 0x4d, - 0xde, 0xee, 0x9b, 0x0e, 0x8c, 0x65, 0xbb, 0xa1, 0x2d, 0x78, 0xac, 0xe9, 0x45, 0x5b, 0x8b, 0xc1, - 0x66, 0xc4, 0xee, 0x01, 0x24, 0xfc, 0xa9, 0x4e, 0x6f, 0x26, 0x24, 0x9a, 0xf3, 0x76, 0x79, 0x04, - 0xaf, 0xa8, 0x3e, 0x20, 0xf3, 0xd8, 0xca, 0x41, 0xc8, 0xf8, 0x60, 0x5a, 0xa8, 0x0c, 0xe7, 0x28, - 0x02, 0x2b, 0x7a, 0xe5, 0x87, 0x41, 0xca, 0xa4, 0xc0, 0x98, 0xa8, 0x7c, 0xb6, 0x95, 0x3c, 0x24, - 0x9c, 0xdf, 0xd7, 0x1d, 0x80, 0x3e, 0x7e, 0x07, 0xca, 0xfd, 0xb7, 0x05, 0x90, 0x4a, 0xda, 0x5f, - 0xec, 0xa0, 0x10, 0x3d, 0xd0, 0x22, 0xe6, 0x68, 0x11, 0x3e, 0x00, 0x76, 0xa0, 0x89, 0x0a, 0x71, - 0xa2, 0x85, 0x6a, 0xaf, 0xe4, 0x96, 0x9f, 0xcc, 0x86, 0x55, 0x69, 0xf9, 0x33, 0xed, 0xf5, 0x8a, - 0x80, 0x61, 0xd5, 0xea, 0x7e, 0xca, 0x81, 0x11, 0x3a, 0xcb, 0x46, 0x83, 0x34, 0xca, 0x09, 0x69, - 0xc5, 0x28, 0x86, 0x62, 0x4c, 0xff, 0xb1, 0xe7, 0xc1, 0x4a, 0xaf, 0xbe, 0x91, 0x96, 0x16, 0x32, - 0xa0, 0x4c, 0x30, 0xe7, 0xe5, 0x7e, 0xa7, 0x07, 0x06, 0xd5, 0x62, 0x1f, 0x22, 0x0e, 0x71, 0x39, - 0x2d, 0xde, 0xc8, 0xa5, 0x61, 0x49, 0x2b, 0xdc, 0x48, 0xcd, 0xf5, 0xe9, 0x60, 0x97, 0xdf, 0xb1, - 0x4f, 0xab, 0x38, 0x3e, 0x63, 0x06, 0x3c, 0xcf, 0xeb, 0x51, 0x34, 0x0d, 0x5f, 0x44, 0x3e, 0x6f, - 0xe9, 0xf1, 0xe6, 0x5e, 0x5b, 0x27, 0x8b, 0x0a, 0xa6, 0x75, 0x0f, 0x34, 0x67, 0xbe, 0xeb, 0x51, - 0x3c, 0xd4, 0x77, 0x3d, 0x2e, 0x41, 0x2f, 0x09, 0xda, 0x4d, 0xa6, 0xb6, 0x0c, 0x32, 0x75, 0xbd, - 0xf7, 0x4a, 0xd0, 0x6e, 0x9a, 0x33, 0x63, 0x28, 0xe8, 0x7d, 0x30, 0x54, 0x25, 0x71, 0x25, 0xf2, - 0xd9, 0xc5, 0x71, 0xe1, 0xef, 0x78, 0x94, 0x39, 0x91, 0x52, 0xb0, 0xd9, 0x51, 0xef, 0xe0, 0xbe, - 0x06, 0x7d, 0x6b, 0x8d, 0x76, 0xcd, 0x0f, 0x50, 0x0b, 0xfa, 0xf8, 0x35, 0x72, 0x71, 0xf2, 0x5a, - 0xb0, 0x01, 0xf9, 0xdb, 0xae, 0xe5, 0x42, 0xf0, 0x1b, 0x90, 0x82, 0x8f, 0xfb, 0xcf, 0x1c, 0xa0, - 0x06, 0xeb, 0xc2, 0x2c, 0xfa, 0xab, 0x1d, 0x9f, 0xb1, 0xf8, 0xb9, 0x9c, 0xcf, 0x58, 0x8c, 0x30, - 0xe4, 0x9c, 0x2f, 0x58, 0x34, 0x60, 0x84, 0xb9, 0xe8, 0xe5, 0x79, 0x24, 0x54, 0xdc, 0xe7, 0x0e, - 0x79, 0xf3, 0x5a, 0xef, 0x2a, 0xa4, 0xb3, 0x0e, 0xc2, 0x26, 0x71, 0xf7, 0x77, 0x7a, 0x41, 0xf3, - 0x64, 0x1f, 0x62, 0x7b, 0x7f, 0x34, 0x13, 0xb7, 0x58, 0xb1, 0x12, 0xb7, 0x90, 0xc1, 0x00, 0x2e, - 0x32, 0xcc, 0x50, 0x05, 0x1d, 0x54, 0x9d, 0x34, 0x5a, 0xe2, 0xe5, 0x50, 0x83, 0xba, 0x4a, 0x1a, - 0x2d, 0xcc, 0x5a, 0xd4, 0x1d, 0xb2, 0xde, 0xae, 0x77, 0xc8, 0xea, 0x50, 0xac, 0x79, 0xed, 0x1a, - 0x11, 0x89, 0x7b, 0x16, 0x42, 0x54, 0x2c, 0xa9, 0x9e, 0x87, 0xa8, 0xd8, 0xbf, 0x98, 0x33, 0xa0, - 0x6f, 0x67, 0x5d, 0x66, 0x32, 0x08, 0x5f, 0xa3, 0x85, 0xb7, 0x53, 0x25, 0x47, 0xf0, 0xb7, 0x53, - 0xfd, 0xc4, 0x29, 0x33, 0xd4, 0x82, 0xfe, 0x0a, 0x2f, 0xd8, 0x20, 0x0e, 0xfc, 0x45, 0x1b, 0x97, - 0xe4, 0x18, 0x41, 0xee, 0x8a, 0x10, 0x3f, 0xb0, 0x64, 0xe3, 0x4e, 0xc1, 0x90, 0x56, 0xfe, 0x9e, - 0x3e, 0x06, 0x55, 0x2b, 0x40, 0x7b, 0x0c, 0x73, 0x5e, 0xe2, 0x61, 0xd6, 0xe2, 0x7e, 0xb3, 0x17, - 0x94, 0x4b, 0x48, 0xbf, 0xd2, 0xe5, 0x55, 0xb4, 0xca, 0x26, 0xc6, 0x5d, 0xe2, 0x30, 0xc0, 0xa2, - 0x95, 0x2a, 0x45, 0x4d, 0x12, 0xd5, 0x94, 0x11, 0x2a, 0xe4, 0xab, 0x52, 0x8a, 0x56, 0xf4, 0x46, - 0x6c, 0xe2, 0x52, 0x8d, 0xb6, 0x29, 0x22, 0xbb, 0xd9, 0xbc, 0x59, 0x19, 0xf1, 0xc5, 0x0a, 0x03, - 0x7d, 0xca, 0x81, 0xe1, 0xa6, 0x16, 0x08, 0x16, 0xf9, 0x7b, 0x36, 0x02, 0x17, 0x1a, 0x55, 0x9e, - 0x67, 0xa3, 0x43, 0xb0, 0xc1, 0x15, 0x2d, 0xc0, 0xe9, 0x98, 0x24, 0xab, 0x3b, 0x01, 0x89, 0xd4, - 0x55, 0x6b, 0x71, 0xf7, 0x5e, 0x25, 0xcd, 0x97, 0xb3, 0x08, 0xb8, 0xb3, 0x4f, 0x6e, 0xca, 0x63, - 0xf1, 0xc8, 0x29, 0x8f, 0x73, 0x30, 0xb6, 0xe9, 0xf9, 0x8d, 0x76, 0x44, 0xba, 0x26, 0x4e, 0xce, - 0x67, 0xda, 0x71, 0x47, 0x0f, 0x76, 0x6f, 0xa3, 0xe1, 0xd5, 0xe2, 0x52, 0xbf, 0x76, 0x6f, 0x83, - 0x02, 0x30, 0x87, 0xbb, 0xff, 0xd8, 0x01, 0x5e, 0xf4, 0x64, 0x7a, 0x73, 0xd3, 0x0f, 0xfc, 0x64, - 0x17, 0x7d, 0xcd, 0x81, 0xb1, 0x20, 0xac, 0x92, 0xe9, 0x20, 0xf1, 0x25, 0xd0, 0x5e, 0xad, 0x67, - 0xc6, 0xeb, 0x5a, 0x86, 0x3c, 0xbf, 0x41, 0x9f, 0x85, 0xe2, 0x8e, 0x61, 0xb8, 0x17, 0xe0, 0x5c, - 0x2e, 0x01, 0xf7, 0xcd, 0x1e, 0x30, 0x6b, 0xb7, 0xa0, 0x17, 0xa1, 0xd8, 0x60, 0xd5, 0x04, 0x9c, - 0x7b, 0x2c, 0xca, 0xc3, 0xd6, 0x8a, 0x97, 0x1b, 0xe0, 0x94, 0xd0, 0x1c, 0x0c, 0xb1, 0x82, 0x30, - 0xa2, 0xd6, 0x03, 0x7f, 0x23, 0xdc, 0xf4, 0x13, 0x53, 0xaa, 0xe9, 0x8e, 0xf9, 0x13, 0xeb, 0xdd, - 0xd0, 0xeb, 0xd0, 0xbf, 0xc1, 0x2b, 0xd5, 0xd9, 0x0b, 0x5d, 0x89, 0xd2, 0x77, 0x4c, 0x99, 0x91, - 0x75, 0xf0, 0xee, 0xa4, 0xff, 0x62, 0xc9, 0x11, 0xed, 0xc2, 0x80, 0x27, 0x9f, 0x69, 0xaf, 0xad, - 0x3c, 0x7c, 0x63, 0xff, 0x88, 0x44, 0x0b, 0xf9, 0x0c, 0x15, 0xbb, 0x4c, 0x46, 0x4a, 0xf1, 0x50, - 0x19, 0x29, 0xdf, 0x76, 0x00, 0xd2, 0x2a, 0xfd, 0xe8, 0x16, 0x0c, 0xc4, 0xcf, 0x19, 0x56, 0xbe, - 0x8d, 0xcb, 0xd3, 0x82, 0xa2, 0x76, 0xc1, 0x50, 0x40, 0xb0, 0xe2, 0x76, 0x37, 0xcf, 0xc4, 0xcf, - 0x1c, 0x38, 0x9b, 0xf7, 0x35, 0x81, 0x07, 0x38, 0xe2, 0xa3, 0x3a, 0x25, 0x44, 0x87, 0xb5, 0x88, - 0x6c, 0xfa, 0xb7, 0xb2, 0x49, 0x2b, 0x4b, 0xb2, 0x01, 0xa7, 0x38, 0xee, 0xf7, 0xfa, 0x40, 0x31, - 0x3e, 0x26, 0x27, 0xc6, 0x53, 0xd4, 0xc8, 0xa9, 0xa5, 0x15, 0x14, 0x15, 0x1e, 0x66, 0x50, 0x2c, - 0x5a, 0xa9, 0xa1, 0x23, 0x73, 0xa9, 0x85, 0xc8, 0x66, 0xbb, 0x50, 0xe6, 0x5c, 0x63, 0xd5, 0x9a, - 0xe7, 0x16, 0x29, 0x9e, 0x88, 0x5b, 0xa4, 0xcf, 0xbe, 0x5b, 0xe4, 0x12, 0xf4, 0x47, 0x61, 0x83, - 0x4c, 0xe3, 0x6b, 0x42, 0x7d, 0x4f, 0x6b, 0xdb, 0x72, 0x30, 0x96, 0xed, 0xd9, 0xb2, 0x9a, 0x03, - 0x87, 0x2b, 0xab, 0x89, 0xbe, 0xe7, 0x1c, 0xe0, 0x79, 0x19, 0xb4, 0x75, 0x26, 0xe4, 0x56, 0xb2, - 0x62, 0xb6, 0xc8, 0xbd, 0xb8, 0x73, 0xbe, 0xee, 0xc0, 0x69, 0x12, 0x54, 0xa2, 0x5d, 0x46, 0x47, - 0x50, 0x13, 0xa1, 0xd3, 0xeb, 0x36, 0x5e, 0xbe, 0x2b, 0x59, 0xe2, 0x3c, 0x2e, 0xd2, 0x01, 0xc6, - 0x9d, 0xc3, 0x70, 0x7f, 0x52, 0x80, 0x33, 0x39, 0x14, 0xd8, 0x35, 0x99, 0x26, 0xdd, 0x40, 0x8b, - 0xd5, 0xec, 0xeb, 0xb3, 0x24, 0xe0, 0x58, 0x61, 0xa0, 0x35, 0x38, 0xbb, 0xd5, 0x8c, 0x53, 0x2a, - 0xb3, 0x61, 0x90, 0x90, 0x5b, 0xf2, 0x65, 0x92, 0x51, 0xd0, 0xb3, 0x4b, 0x39, 0x38, 0x38, 0xb7, - 0x27, 0xd5, 0x36, 0x48, 0xe0, 0x6d, 0x34, 0x48, 0xda, 0x24, 0x2e, 0x79, 0x29, 0x6d, 0xe3, 0x4a, - 0xa6, 0x1d, 0x77, 0xf4, 0x40, 0x9f, 0x73, 0xe0, 0x91, 0x98, 0x44, 0xdb, 0x24, 0x2a, 0xfb, 0x55, - 0x32, 0xdb, 0x8e, 0x93, 0xb0, 0x49, 0xa2, 0x7b, 0x74, 0x0d, 0x4e, 0xec, 0xef, 0x4d, 0x3c, 0x52, - 0xee, 0x4e, 0x0d, 0x1f, 0xc4, 0xca, 0xfd, 0x9c, 0x03, 0xa3, 0x65, 0x66, 0xac, 0x2a, 0xd5, 0xd7, - 0x76, 0xe9, 0xc1, 0xa7, 0x54, 0x49, 0x81, 0x8c, 0x10, 0x33, 0x8b, 0x00, 0xb8, 0xaf, 0xc2, 0x58, - 0x99, 0x34, 0xbd, 0x56, 0x9d, 0xdd, 0xd0, 0xe4, 0x69, 0x3a, 0x53, 0x30, 0x18, 0x4b, 0x58, 0xf6, - 0x7b, 0x1e, 0x0a, 0x19, 0xa7, 0x38, 0xe8, 0x49, 0x9e, 0x52, 0x24, 0xef, 0x79, 0x0c, 0x72, 0x23, - 0x81, 0xe7, 0x21, 0xc5, 0x58, 0xb6, 0xb9, 0x3b, 0x30, 0x9c, 0x76, 0x27, 0x9b, 0xa8, 0x06, 0xa7, - 0x2a, 0xda, 0x15, 0xa9, 0x34, 0x39, 0xfd, 0xf0, 0xb7, 0xa9, 0x78, 0x8d, 0x52, 0x93, 0x08, 0xce, - 0x52, 0x75, 0xbf, 0x58, 0x80, 0x53, 0x8a, 0xb3, 0x08, 0x79, 0xbd, 0x91, 0x4d, 0x83, 0xc2, 0x36, - 0x4a, 0x9d, 0x98, 0x2b, 0x79, 0x40, 0x2a, 0xd4, 0x1b, 0xd9, 0x54, 0xa8, 0x63, 0x65, 0xdf, 0x11, - 0xc5, 0xfb, 0x76, 0x01, 0x06, 0x54, 0xe1, 0x95, 0x17, 0xa1, 0xc8, 0xec, 0xb8, 0xfb, 0xd3, 0x46, - 0x99, 0x4d, 0x88, 0x39, 0x25, 0x4a, 0x92, 0x65, 0x72, 0xdc, 0x73, 0xd5, 0xc9, 0x41, 0xee, 0x7e, - 0xf3, 0xa2, 0x04, 0x73, 0x4a, 0x68, 0x09, 0x7a, 0x48, 0x50, 0x15, 0x6a, 0xe9, 0xd1, 0x09, 0xb2, - 0xef, 0xe8, 0x5c, 0x09, 0xaa, 0x98, 0x52, 0x61, 0xa5, 0x0f, 0xb9, 0xf6, 0x91, 0xf9, 0x6a, 0x82, - 0x50, 0x3d, 0x44, 0xab, 0xfb, 0x2b, 0x3d, 0xd0, 0x57, 0x6e, 0x6f, 0x50, 0x05, 0xfb, 0x5b, 0x0e, - 0x9c, 0xd9, 0xc9, 0x54, 0x49, 0x4d, 0xb7, 0xec, 0x75, 0x7b, 0x2e, 0x48, 0x3d, 0x9b, 0xe8, 0x11, - 0xf9, 0x49, 0xe8, 0x9c, 0x46, 0x9c, 0x37, 0x1c, 0xa3, 0x2a, 0x62, 0xcf, 0xb1, 0x54, 0x45, 0xbc, - 0x75, 0xcc, 0xe9, 0xeb, 0x23, 0xdd, 0x52, 0xd7, 0xdd, 0xdf, 0x29, 0x02, 0xf0, 0xa7, 0xb1, 0xda, - 0x4a, 0x0e, 0xe3, 0xa3, 0x7a, 0x1e, 0x86, 0xe5, 0x37, 0xea, 0xf3, 0x3e, 0xc8, 0xb1, 0xa0, 0xb5, - 0x61, 0x03, 0x93, 0x19, 0x04, 0x41, 0x12, 0xed, 0x72, 0xa5, 0x31, 0x9b, 0xa2, 0xae, 0x5a, 0xb0, - 0x86, 0x85, 0x26, 0x0d, 0x9f, 0x3f, 0x0f, 0xe5, 0x8e, 0x1e, 0xe0, 0xa2, 0x7f, 0x1f, 0x8c, 0x9a, - 0xb5, 0x1a, 0x84, 0xa6, 0xa4, 0x42, 0xaf, 0x66, 0x89, 0x07, 0x9c, 0xc1, 0xa6, 0x9b, 0xb8, 0x1a, - 0xed, 0xe2, 0x76, 0x20, 0x54, 0x26, 0xb5, 0x89, 0xe7, 0x18, 0x14, 0x8b, 0x56, 0x76, 0x51, 0x9e, - 0x9d, 0x46, 0x1c, 0x2e, 0x2e, 0xdb, 0xa7, 0x17, 0xe5, 0xb5, 0x36, 0x6c, 0x60, 0x52, 0x0e, 0xc2, - 0xc7, 0x07, 0xe6, 0x6b, 0x92, 0x71, 0xcc, 0xb5, 0x60, 0x34, 0x34, 0x7d, 0x13, 0x3c, 0x5f, 0xeb, - 0x5d, 0x87, 0xdc, 0x7a, 0x46, 0x5f, 0x1e, 0x32, 0xcf, 0xb8, 0x32, 0x32, 0xf4, 0xa9, 0xce, 0xa8, - 0x67, 0x72, 0x0f, 0x9b, 0xa9, 0x86, 0x5d, 0x93, 0xad, 0xd7, 0xe0, 0x6c, 0x2b, 0xac, 0xae, 0x45, - 0x7e, 0x18, 0xf9, 0xc9, 0xee, 0x6c, 0xc3, 0x8b, 0x63, 0xb6, 0x31, 0x46, 0x4c, 0xe5, 0x64, 0x2d, - 0x07, 0x07, 0xe7, 0xf6, 0xa4, 0xda, 0x7d, 0x4b, 0x00, 0x59, 0x9a, 0x51, 0x91, 0x6b, 0xf7, 0x12, - 0x11, 0xab, 0x56, 0xf7, 0x0c, 0x9c, 0x2e, 0xb7, 0x5b, 0xad, 0x86, 0x4f, 0xaa, 0xca, 0xa7, 0xee, - 0xbe, 0x1f, 0x4e, 0x89, 0x9a, 0x89, 0x4a, 0x15, 0x38, 0x52, 0x85, 0x5f, 0xf7, 0x4f, 0x1d, 0x38, - 0x95, 0x49, 0xea, 0x40, 0xaf, 0x67, 0x0f, 0x70, 0x2b, 0x0e, 0x2b, 0xfd, 0xec, 0xe6, 0x2f, 0x69, - 0xae, 0x32, 0x50, 0x97, 0xc9, 0xcb, 0xd6, 0xee, 0x00, 0xb0, 0x14, 0x5f, 0x7e, 0x22, 0xe8, 0x19, - 0xd0, 0xee, 0x67, 0x0b, 0x90, 0x9f, 0x49, 0x83, 0x3e, 0xd6, 0xb9, 0x00, 0x2f, 0x5a, 0x5c, 0x00, - 0x91, 0xca, 0xd3, 0x7d, 0x0d, 0x02, 0x73, 0x0d, 0x56, 0x2c, 0xad, 0x81, 0xe0, 0xdb, 0xb9, 0x12, - 0xff, 0xd3, 0x81, 0xa1, 0xf5, 0xf5, 0x65, 0xe5, 0x5f, 0xc2, 0x70, 0x3e, 0xe6, 0x77, 0x9c, 0x59, - 0x9c, 0x72, 0x36, 0x6c, 0xb6, 0x78, 0xd8, 0x52, 0x84, 0x53, 0x59, 0xf9, 0xca, 0x72, 0x2e, 0x06, - 0xee, 0xd2, 0x13, 0x2d, 0xc2, 0x19, 0xbd, 0xa5, 0xac, 0x7d, 0x8f, 0xab, 0x28, 0xea, 0x8a, 0x74, - 0x36, 0xe3, 0xbc, 0x3e, 0x59, 0x52, 0xc2, 0x55, 0x28, 0xbe, 0x7f, 0xdf, 0x41, 0x4a, 0x34, 0xe3, - 0xbc, 0x3e, 0xee, 0x2a, 0x0c, 0xad, 0x7b, 0x91, 0x9a, 0xf8, 0x07, 0x60, 0xac, 0x12, 0x36, 0xa5, - 0x8b, 0x66, 0x99, 0x6c, 0x93, 0x86, 0x98, 0x32, 0xaf, 0x9a, 0x9f, 0x69, 0xc3, 0x1d, 0xd8, 0xee, - 0x7f, 0xbb, 0x08, 0xea, 0xce, 0xd6, 0x21, 0x4e, 0x98, 0x96, 0xca, 0x31, 0x2c, 0x5a, 0xce, 0x31, - 0x54, 0xb2, 0x36, 0x93, 0x67, 0x98, 0xa4, 0x79, 0x86, 0x7d, 0xb6, 0xf3, 0x0c, 0x95, 0xc2, 0xd8, - 0x91, 0x6b, 0xf8, 0x15, 0x07, 0x86, 0x83, 0xb0, 0x4a, 0x54, 0x30, 0xaa, 0x9f, 0x69, 0xad, 0xaf, - 0xd8, 0x4b, 0x9e, 0xe6, 0x39, 0x73, 0x82, 0x3c, 0xcf, 0x44, 0x55, 0x47, 0x94, 0xde, 0x84, 0x8d, - 0x71, 0xa0, 0x79, 0xcd, 0x69, 0xc8, 0x7d, 0xf3, 0x8f, 0xe6, 0x59, 0x0f, 0x77, 0xf5, 0x00, 0xde, - 0xd2, 0xf4, 0xa6, 0x41, 0xeb, 0x1f, 0x8b, 0x4f, 0x43, 0x0c, 0xb2, 0x02, 0x6b, 0xaa, 0x4f, 0xb9, - 0xd0, 0xc7, 0x53, 0x56, 0x45, 0x05, 0x1b, 0x16, 0xf9, 0xe2, 0xe9, 0xac, 0x58, 0xb4, 0xa0, 0x44, - 0x06, 0xbc, 0x87, 0x6c, 0xd5, 0x53, 0x37, 0x02, 0xea, 0xf9, 0x11, 0x6f, 0xf4, 0x82, 0x6e, 0x94, - 0x0e, 0x1f, 0xc6, 0x28, 0x1d, 0xe9, 0x6a, 0x90, 0x7e, 0xc1, 0x81, 0xe1, 0x8a, 0x56, 0xdf, 0xbc, - 0xf4, 0xb4, 0xad, 0x2f, 0xa5, 0xe6, 0x95, 0xa1, 0xe7, 0x01, 0x15, 0xa3, 0x9e, 0xba, 0xc1, 0x9d, - 0x95, 0xdc, 0x63, 0x16, 0x38, 0x3b, 0xfa, 0xad, 0xdc, 0xd4, 0x37, 0x2d, 0x7a, 0x99, 0xc4, 0x47, - 0x61, 0x58, 0xf0, 0x42, 0xb7, 0x61, 0x40, 0x66, 0x3d, 0x8b, 0x9c, 0x64, 0x6c, 0xc3, 0xc3, 0x6d, - 0x86, 0xd1, 0x64, 0xa1, 0x2e, 0x0e, 0xc5, 0x8a, 0x23, 0xaa, 0x43, 0x4f, 0xd5, 0xab, 0x89, 0xec, - 0xe4, 0x15, 0x3b, 0x75, 0x10, 0x25, 0x4f, 0x66, 0x5e, 0xcd, 0x4d, 0x2f, 0x60, 0xca, 0x02, 0xdd, - 0x4a, 0x0b, 0x44, 0x8f, 0x59, 0x3b, 0x7d, 0x4d, 0x35, 0x89, 0xfb, 0x18, 0x3a, 0xea, 0x4d, 0x57, - 0x45, 0xe4, 0xf1, 0xff, 0x63, 0x6c, 0xe7, 0xed, 0x14, 0x52, 0xe4, 0x95, 0x1f, 0xd2, 0xe8, 0x25, - 0xe5, 0xc2, 0xbe, 0xd0, 0xfe, 0xf3, 0xb6, 0xb8, 0xb0, 0xfa, 0x05, 0xd9, 0x2f, 0xb3, 0x37, 0xa0, - 0xaf, 0xc5, 0xb2, 0x18, 0x4a, 0xbf, 0x60, 0xeb, 0x6c, 0xe1, 0x59, 0x11, 0x7c, 0x6f, 0xf2, 0xff, - 0xb1, 0xe0, 0x81, 0xae, 0x40, 0x3f, 0xff, 0xce, 0x01, 0xcf, 0x0e, 0x1f, 0xba, 0x3c, 0xde, 0xfd, - 0x6b, 0x09, 0xe9, 0x41, 0xc1, 0x7f, 0xc7, 0x58, 0xf6, 0x45, 0x5f, 0x74, 0x60, 0x94, 0x4a, 0xd4, - 0xf4, 0xc3, 0x0c, 0x25, 0x64, 0x4b, 0x66, 0x5d, 0x8f, 0xa9, 0x46, 0x22, 0x65, 0x8d, 0x32, 0x93, - 0x16, 0x0d, 0x76, 0x38, 0xc3, 0x1e, 0xbd, 0x01, 0x03, 0xb1, 0x5f, 0x25, 0x15, 0x2f, 0x8a, 0x4b, - 0x67, 0x8e, 0x67, 0x28, 0x69, 0xac, 0x43, 0x30, 0xc2, 0x8a, 0x65, 0xee, 0x17, 0xca, 0xcf, 0x3e, - 0xe0, 0x2f, 0x94, 0xff, 0x75, 0x07, 0xce, 0xf1, 0xba, 0xdc, 0xd9, 0xa2, 0xec, 0xe7, 0xee, 0xd1, - 0xbd, 0xc2, 0xd2, 0xda, 0xa7, 0xf3, 0x48, 0xe2, 0x7c, 0x4e, 0xac, 0xb0, 0xa7, 0xf9, 0x1d, 0x8d, - 0xf3, 0x56, 0x63, 0x7e, 0x87, 0xff, 0x76, 0x06, 0x7a, 0x16, 0x86, 0x5a, 0xe2, 0x38, 0xf4, 0xe3, - 0x26, 0xbb, 0xa4, 0xd0, 0xc3, 0x2f, 0x72, 0xad, 0xa5, 0x60, 0xac, 0xe3, 0x18, 0x55, 0x5e, 0x2f, - 0x1d, 0x54, 0xe5, 0x15, 0x5d, 0x87, 0xa1, 0x24, 0x6c, 0x90, 0x48, 0x58, 0xaa, 0x25, 0xb6, 0x03, - 0x2f, 0xe6, 0xbd, 0x5b, 0xeb, 0x0a, 0x2d, 0xb5, 0x64, 0x53, 0x58, 0x8c, 0x75, 0x3a, 0x2c, 0x31, - 0x54, 0xd4, 0x3b, 0x8f, 0x98, 0x09, 0xfb, 0x70, 0x26, 0x31, 0x54, 0x6f, 0xc4, 0x26, 0x2e, 0x5a, - 0x80, 0xd3, 0xad, 0x0e, 0x1b, 0x98, 0x5f, 0x53, 0x52, 0xe9, 0x04, 0x9d, 0x06, 0x70, 0x67, 0x1f, - 0xc3, 0xfa, 0x7d, 0xe4, 0x20, 0xeb, 0xb7, 0x4b, 0xcd, 0xd3, 0x47, 0xef, 0xa5, 0xe6, 0x29, 0xaa, - 0xc2, 0xa3, 0x5e, 0x3b, 0x09, 0x59, 0x8d, 0x0e, 0xb3, 0x0b, 0xcf, 0x91, 0x7d, 0x9c, 0xa7, 0xdd, - 0xee, 0xef, 0x4d, 0x3c, 0x3a, 0x7d, 0x00, 0x1e, 0x3e, 0x90, 0x0a, 0x7a, 0x0d, 0x06, 0x88, 0xa8, - 0xdb, 0x5a, 0xfa, 0x39, 0x5b, 0x4a, 0x82, 0x59, 0x09, 0x56, 0xa6, 0x3c, 0x72, 0x18, 0x56, 0xfc, - 0xd0, 0x3a, 0x0c, 0xd5, 0xc3, 0x38, 0x99, 0x6e, 0xf8, 0x5e, 0x4c, 0xe2, 0xd2, 0x63, 0x6c, 0xd3, - 0xe4, 0xea, 0x5e, 0x57, 0x25, 0x5a, 0xba, 0x67, 0xae, 0xa6, 0x3d, 0xb1, 0x4e, 0x06, 0x11, 0x16, - 0xf9, 0x63, 0x09, 0xc2, 0x32, 0x2a, 0x73, 0x91, 0x4d, 0xec, 0xa9, 0x3c, 0xca, 0x6b, 0x61, 0xb5, - 0x6c, 0x62, 0xab, 0xd0, 0x9f, 0x0e, 0xc4, 0x59, 0x9a, 0xe8, 0x79, 0x18, 0x6e, 0x85, 0xd5, 0x72, - 0x8b, 0x54, 0xd6, 0xbc, 0xa4, 0x52, 0x2f, 0x4d, 0x98, 0x5e, 0xb7, 0x35, 0xad, 0x0d, 0x1b, 0x98, - 0xa8, 0x05, 0xfd, 0x4d, 0x7e, 0x79, 0xbb, 0xf4, 0x84, 0x2d, 0xdb, 0x46, 0xdc, 0x06, 0xe7, 0xfa, - 0x82, 0xf8, 0x81, 0x25, 0x1b, 0xf4, 0x0f, 0x1c, 0x38, 0x95, 0xb9, 0x76, 0x53, 0x7a, 0x87, 0x35, - 0x95, 0xc5, 0x24, 0x3c, 0xf3, 0x14, 0x5b, 0x3e, 0x13, 0x78, 0xa7, 0x13, 0x84, 0xb3, 0x23, 0xe2, - 0xeb, 0xc2, 0x2a, 0x30, 0x94, 0x9e, 0xb4, 0xb7, 0x2e, 0x8c, 0xa0, 0x5c, 0x17, 0xf6, 0x03, 0x4b, - 0x36, 0xe8, 0x12, 0xf4, 0x8b, 0x62, 0x69, 0xa5, 0xa7, 0xcc, 0xf0, 0xad, 0xa8, 0xa9, 0x86, 0x65, - 0xfb, 0xf8, 0xfb, 0xe1, 0x74, 0x87, 0xe9, 0x76, 0xa4, 0x32, 0x00, 0xbf, 0xe1, 0x80, 0x7e, 0x63, - 0xd6, 0xfa, 0xc7, 0x12, 0x9e, 0x87, 0xe1, 0x0a, 0xff, 0xca, 0x19, 0xbf, 0x73, 0xdb, 0x6b, 0xfa, - 0x3f, 0x67, 0xb5, 0x36, 0x6c, 0x60, 0xba, 0x57, 0x01, 0x75, 0x56, 0xb2, 0xbe, 0xa7, 0x1a, 0x33, - 0xff, 0xc8, 0x81, 0x11, 0x43, 0x67, 0xb0, 0x1e, 0xf1, 0x9b, 0x07, 0xd4, 0xf4, 0xa3, 0x28, 0x8c, - 0xf4, 0x6f, 0x57, 0x89, 0xd2, 0xbd, 0xec, 0xbe, 0xd3, 0x4a, 0x47, 0x2b, 0xce, 0xe9, 0xe1, 0xfe, - 0xd3, 0x5e, 0x48, 0x73, 0x7e, 0x55, 0xb9, 0x51, 0xa7, 0x6b, 0xb9, 0xd1, 0x67, 0x60, 0xe0, 0xd5, - 0x38, 0x0c, 0xd6, 0xd2, 0xa2, 0xa4, 0xea, 0x59, 0xbc, 0x50, 0x5e, 0xbd, 0xc6, 0x30, 0x15, 0x06, - 0xc3, 0xfe, 0xe8, 0xbc, 0xdf, 0x48, 0x3a, 0xab, 0x56, 0xbe, 0xf0, 0x22, 0x87, 0x63, 0x85, 0xc1, - 0x3e, 0x63, 0xb5, 0x4d, 0x94, 0x63, 0x3c, 0xfd, 0x8c, 0x15, 0x2f, 0x52, 0xcf, 0xda, 0xd0, 0x14, - 0x0c, 0x2a, 0xa7, 0xba, 0xf0, 0xd4, 0xab, 0x95, 0x52, 0x9e, 0x77, 0x9c, 0xe2, 0x30, 0x85, 0x50, - 0x38, 0x62, 0x85, 0x0b, 0xa5, 0x6c, 0xc3, 0x3c, 0xc9, 0xb8, 0x76, 0xb9, 0x6c, 0x97, 0x60, 0xac, - 0x58, 0xe6, 0x85, 0x3d, 0x07, 0x8f, 0x23, 0xec, 0xa9, 0x27, 0xa0, 0x17, 0x0f, 0x9b, 0x80, 0x6e, - 0xee, 0xed, 0x81, 0x43, 0xed, 0xed, 0x4f, 0xf7, 0x40, 0xff, 0x0d, 0x12, 0xb1, 0x62, 0xcd, 0x97, - 0xa0, 0x7f, 0x9b, 0xff, 0x9b, 0xbd, 0x49, 0x28, 0x30, 0xb0, 0x6c, 0xa7, 0xcf, 0x6d, 0xa3, 0xed, - 0x37, 0xaa, 0x73, 0xe9, 0x5b, 0x9c, 0xd6, 0x79, 0x93, 0x0d, 0x38, 0xc5, 0xa1, 0x1d, 0x6a, 0x54, - 0xb3, 0x6f, 0x36, 0xfd, 0x24, 0x9b, 0x04, 0xb4, 0x20, 0x1b, 0x70, 0x8a, 0x83, 0x9e, 0x82, 0xbe, - 0x9a, 0x9f, 0xac, 0x7b, 0xb5, 0x6c, 0x94, 0x6f, 0x81, 0x41, 0xb1, 0x68, 0x65, 0x61, 0x22, 0x3f, - 0x59, 0x8f, 0x08, 0xf3, 0xec, 0x76, 0x94, 0x14, 0x58, 0xd0, 0xda, 0xb0, 0x81, 0xc9, 0x86, 0x14, - 0x8a, 0x99, 0x89, 0x0c, 0xc8, 0x74, 0x48, 0xb2, 0x01, 0xa7, 0x38, 0x74, 0xff, 0x57, 0xc2, 0x66, - 0xcb, 0x6f, 0x88, 0xdc, 0x5c, 0x6d, 0xff, 0xcf, 0x0a, 0x38, 0x56, 0x18, 0x14, 0x9b, 0x8a, 0x30, - 0x2a, 0x7e, 0xb2, 0x9f, 0x0c, 0x5a, 0x13, 0x70, 0xac, 0x30, 0xdc, 0x1b, 0x30, 0xc2, 0xdf, 0xe4, - 0xd9, 0x86, 0xe7, 0x37, 0x17, 0x66, 0xd1, 0x95, 0x8e, 0x04, 0xf4, 0x4b, 0x39, 0x09, 0xe8, 0xe7, - 0x8c, 0x4e, 0x9d, 0x89, 0xe8, 0xee, 0x8f, 0x0a, 0x30, 0x70, 0x82, 0x5f, 0x5d, 0x3b, 0xf1, 0x6f, - 0x7a, 0xa2, 0x5b, 0x99, 0x2f, 0xae, 0xad, 0xd9, 0xbc, 0x4f, 0x72, 0xe0, 0xd7, 0xd6, 0xfe, 0x4b, - 0x01, 0xce, 0x4b, 0xd4, 0xf4, 0x9b, 0xf6, 0xec, 0x93, 0x41, 0xc7, 0xbf, 0xd0, 0x91, 0xb1, 0xd0, - 0x6b, 0xf6, 0xac, 0xd1, 0x85, 0xd9, 0xae, 0x4b, 0xfd, 0x5a, 0x66, 0xa9, 0xb1, 0x55, 0xae, 0x07, - 0x2f, 0xf6, 0x9f, 0x39, 0x30, 0x9e, 0xbf, 0xd8, 0x27, 0xf0, 0x91, 0xbb, 0x37, 0xcc, 0x8f, 0xdc, - 0xfd, 0x92, 0xbd, 0x2d, 0x66, 0x4e, 0xa5, 0xcb, 0xe7, 0xee, 0xfe, 0xc4, 0x81, 0xb3, 0xb2, 0x03, - 0x3b, 0x3d, 0x67, 0xfc, 0x80, 0x25, 0xa2, 0x1c, 0xff, 0x36, 0xbb, 0x6d, 0x6c, 0xb3, 0x97, 0xed, - 0x4d, 0x5c, 0x9f, 0x47, 0xd7, 0xef, 0xf5, 0xfe, 0xb1, 0x03, 0xa5, 0xbc, 0x0e, 0x27, 0xf0, 0xc8, - 0x5f, 0x37, 0x1f, 0xf9, 0x8d, 0xe3, 0x99, 0x79, 0xf7, 0x07, 0x5e, 0xea, 0xb6, 0x50, 0xa8, 0x21, - 0xf5, 0x2a, 0xc7, 0x56, 0x8c, 0x96, 0xb3, 0xc8, 0x57, 0xd0, 0x1a, 0xd0, 0x17, 0xb3, 0xac, 0x0d, - 0xb1, 0x05, 0xae, 0xda, 0xd0, 0xb6, 0x28, 0x3d, 0xe1, 0x63, 0x67, 0xff, 0x63, 0xc1, 0xc3, 0xfd, - 0x43, 0x07, 0x86, 0x4f, 0xf0, 0xe3, 0x95, 0xa1, 0xf9, 0x90, 0x5f, 0xb0, 0xf7, 0x90, 0xbb, 0x3c, - 0xd8, 0xbd, 0x22, 0x74, 0x7c, 0xcf, 0x0f, 0x7d, 0xc6, 0x51, 0x99, 0x1a, 0x3c, 0x9b, 0xed, 0x43, - 0xf6, 0xc6, 0x71, 0x94, 0x6a, 0x72, 0xe8, 0xeb, 0x99, 0x12, 0x7b, 0x05, 0x5b, 0x75, 0x6b, 0x3a, - 0x46, 0x73, 0x0f, 0xa5, 0xf6, 0xbe, 0xe2, 0x00, 0xf0, 0x71, 0x8a, 0x0a, 0xbd, 0x74, 0x6c, 0x1b, - 0xc7, 0xb6, 0x52, 0x94, 0x09, 0x1f, 0x9a, 0x12, 0x90, 0x69, 0x03, 0xd6, 0x46, 0x72, 0x1f, 0x35, - 0xf4, 0xee, 0xbb, 0x7c, 0xdf, 0x17, 0x1d, 0x38, 0x95, 0x19, 0x6e, 0x4e, 0xff, 0x4d, 0xf3, 0x3b, - 0x5f, 0x16, 0x74, 0x05, 0xb3, 0x6e, 0xab, 0xee, 0x0e, 0xf8, 0x23, 0x17, 0x8c, 0x0f, 0xa1, 0xa2, - 0xd7, 0x61, 0x50, 0xda, 0xf2, 0x72, 0x7b, 0xdb, 0xfc, 0xde, 0xa1, 0x52, 0xd8, 0x25, 0x24, 0xc6, - 0x29, 0xbf, 0x4c, 0x22, 0x58, 0xe1, 0x50, 0x89, 0x60, 0x0f, 0xf6, 0x6b, 0x89, 0xf9, 0x9e, 0xd6, - 0xde, 0x63, 0xf1, 0xb4, 0x3e, 0x6a, 0xdd, 0xd3, 0xfa, 0xd8, 0x09, 0x7b, 0x5a, 0xb5, 0xb0, 0x57, - 0xf1, 0x3e, 0xc2, 0x5e, 0xaf, 0xc3, 0xd9, 0xed, 0xd4, 0x8c, 0x52, 0x3b, 0x49, 0xd4, 0x68, 0xb9, - 0x94, 0xeb, 0x5f, 0xa5, 0x26, 0x61, 0x9c, 0x90, 0x20, 0xd1, 0x0c, 0xb0, 0x34, 0x07, 0xed, 0x46, - 0x0e, 0x39, 0x9c, 0xcb, 0x24, 0x1b, 0xbf, 0xe8, 0x3f, 0x44, 0xfc, 0xe2, 0x3b, 0x0e, 0x9c, 0xf3, - 0x3a, 0xae, 0x04, 0x61, 0xb2, 0x29, 0x92, 0x28, 0x6e, 0xda, 0xd3, 0xcb, 0x0d, 0xf2, 0x22, 0x50, - 0x94, 0xd7, 0x84, 0xf3, 0x07, 0x84, 0x9e, 0x4c, 0x83, 0xc9, 0x3c, 0x73, 0x31, 0x3f, 0xf2, 0xfb, - 0xf5, 0x6c, 0x86, 0x0a, 0xb0, 0xa5, 0xff, 0x88, 0x5d, 0xfb, 0xd1, 0x42, 0x96, 0xca, 0xd0, 0x7d, - 0x64, 0xa9, 0x64, 0x82, 0x49, 0xc3, 0x96, 0x82, 0x49, 0x01, 0x8c, 0xf9, 0x4d, 0xaf, 0x46, 0xd6, - 0xda, 0x8d, 0x06, 0xbf, 0xa3, 0x20, 0xbf, 0x48, 0x99, 0xeb, 0x93, 0x5a, 0x0e, 0x2b, 0x5e, 0x23, - 0xfb, 0xe1, 0x5f, 0x75, 0x17, 0x63, 0x31, 0x43, 0x09, 0x77, 0xd0, 0xa6, 0x1b, 0x96, 0x15, 0x0b, - 0x23, 0x09, 0x5d, 0x6d, 0x96, 0x0a, 0x31, 0xc0, 0x37, 0xec, 0xd5, 0x14, 0x8c, 0x75, 0x1c, 0xb4, - 0x04, 0x83, 0xd5, 0x20, 0x16, 0xb7, 0x1b, 0x4f, 0x31, 0x61, 0xf6, 0x4e, 0x2a, 0x02, 0xe7, 0xae, - 0x95, 0xd5, 0xbd, 0xc6, 0x47, 0x73, 0xea, 0xd0, 0xa9, 0x76, 0x9c, 0xf6, 0x47, 0x2b, 0x8c, 0x98, - 0xf8, 0xe4, 0x0f, 0xcf, 0x50, 0x78, 0xbc, 0x4b, 0x08, 0x64, 0xee, 0x9a, 0xfc, 0x68, 0xd1, 0x88, - 0x60, 0x27, 0xbe, 0xdd, 0x93, 0x52, 0xd0, 0xbe, 0x0c, 0x7a, 0xfa, 0xc0, 0x2f, 0x83, 0xb2, 0x02, - 0x94, 0x49, 0x43, 0x05, 0x3c, 0x2f, 0x5a, 0x2b, 0x40, 0x99, 0xe6, 0xfe, 0x89, 0x02, 0x94, 0x29, - 0x00, 0xeb, 0x2c, 0xd1, 0x6a, 0xb7, 0xc0, 0xef, 0x19, 0x26, 0x34, 0x8e, 0x1e, 0xc6, 0xd5, 0x23, - 0x80, 0x67, 0x0f, 0x8c, 0x00, 0x76, 0x44, 0x2c, 0xcf, 0x1d, 0x21, 0x62, 0x59, 0x67, 0xa5, 0x01, - 0x17, 0x66, 0x45, 0x90, 0xd8, 0x82, 0xc5, 0xc2, 0xca, 0x2e, 0xf0, 0x5c, 0x4a, 0xf6, 0x2f, 0xe6, - 0x0c, 0xba, 0xa6, 0x08, 0x5f, 0xb8, 0xe7, 0x14, 0x61, 0x2a, 0x9e, 0x53, 0x38, 0xab, 0x31, 0x59, - 0x14, 0xe2, 0x39, 0x05, 0x63, 0x1d, 0x27, 0x1b, 0xff, 0x7b, 0xf8, 0xd8, 0xe2, 0x7f, 0xe3, 0x27, - 0x10, 0xff, 0x7b, 0xe4, 0xd0, 0xf1, 0xbf, 0x37, 0xe0, 0x4c, 0x2b, 0xac, 0xce, 0xf9, 0x71, 0xd4, - 0x66, 0x97, 0xb6, 0x66, 0xda, 0xd5, 0x1a, 0x49, 0x58, 0x00, 0x71, 0xe8, 0xf2, 0x65, 0x7d, 0x90, - 0x2d, 0xf6, 0x22, 0x4f, 0x6e, 0x3f, 0xbb, 0x41, 0x12, 0xfe, 0x30, 0xb3, 0xbd, 0x98, 0x47, 0x80, - 0x25, 0x93, 0xe6, 0x34, 0xe2, 0x3c, 0x3e, 0x7a, 0xf8, 0xf1, 0xf1, 0x93, 0x09, 0x3f, 0x7e, 0x00, - 0x06, 0xe2, 0x7a, 0x3b, 0xa9, 0x86, 0x3b, 0x01, 0x8b, 0x31, 0x0f, 0xce, 0xbc, 0x43, 0x79, 0x68, - 0x05, 0xfc, 0xce, 0xde, 0xc4, 0x98, 0xfc, 0x5f, 0x73, 0xce, 0x0a, 0x08, 0xfa, 0x46, 0x97, 0x6b, - 0x29, 0xee, 0x71, 0x5e, 0x4b, 0xb9, 0x70, 0xa4, 0x2b, 0x29, 0x79, 0x31, 0xd6, 0x27, 0xde, 0x76, - 0x31, 0xd6, 0xaf, 0x39, 0x30, 0xb2, 0xad, 0x7b, 0xc2, 0x45, 0x1c, 0xd8, 0x42, 0x3e, 0x8a, 0xe1, - 0x60, 0x9f, 0x71, 0xa9, 0xb0, 0x33, 0x40, 0x77, 0xb2, 0x00, 0x6c, 0x8e, 0x24, 0x27, 0x57, 0xe6, - 0xc9, 0x07, 0x95, 0x2b, 0xf3, 0x06, 0x13, 0x66, 0xd2, 0xd2, 0x65, 0xc1, 0x61, 0xbb, 0xa9, 0xb2, - 0x52, 0x30, 0xaa, 0x4c, 0x59, 0x9d, 0x1f, 0xfa, 0x82, 0x03, 0x63, 0xd2, 0x38, 0x13, 0x91, 0xac, - 0x58, 0x24, 0xfb, 0xd9, 0xb4, 0x09, 0x59, 0xb6, 0xf8, 0x7a, 0x86, 0x0f, 0xee, 0xe0, 0x4c, 0x45, - 0xbb, 0xca, 0xad, 0xaa, 0xc5, 0x2c, 0xa7, 0x55, 0x28, 0x32, 0xd3, 0x29, 0x18, 0xeb, 0x38, 0xe8, - 0x9b, 0xea, 0x9b, 0xdf, 0x97, 0x98, 0x54, 0x7f, 0xc9, 0xb2, 0x82, 0x6a, 0xe3, 0xc3, 0xdf, 0xe8, - 0x4b, 0x0e, 0x8c, 0xed, 0x64, 0xbc, 0x1a, 0x22, 0xdb, 0x11, 0xdb, 0xf7, 0x97, 0xf0, 0xe5, 0xce, - 0x42, 0x71, 0xc7, 0x08, 0xd0, 0x6d, 0x00, 0x4f, 0x79, 0xbb, 0x45, 0x56, 0xe4, 0xb2, 0xcd, 0x08, - 0x02, 0xbf, 0xaf, 0x95, 0xfe, 0xc6, 0x1a, 0xbf, 0xfb, 0x4e, 0x74, 0x78, 0x5b, 0x7d, 0x4e, 0xfd, - 0x3f, 0x9f, 0x81, 0x51, 0x33, 0x48, 0x85, 0xde, 0x65, 0x16, 0xc5, 0xbf, 0x98, 0xad, 0x2f, 0x3e, - 0x22, 0xf1, 0x8d, 0x1a, 0xe3, 0x46, 0x11, 0xf0, 0xc2, 0xb1, 0x16, 0x01, 0xef, 0x39, 0x99, 0x22, - 0xe0, 0x63, 0xc7, 0x51, 0x04, 0xfc, 0xf4, 0x91, 0x8a, 0x80, 0x6b, 0x45, 0xd8, 0x7b, 0xef, 0x52, - 0x84, 0x7d, 0x1a, 0x4e, 0xc9, 0x4b, 0x2c, 0x44, 0x54, 0x77, 0xe6, 0xf1, 0xeb, 0x0b, 0xa2, 0xcb, - 0xa9, 0x59, 0xb3, 0x19, 0x67, 0xf1, 0xd1, 0xe7, 0x1d, 0x28, 0x06, 0xac, 0x67, 0x9f, 0xad, 0x2f, - 0xa2, 0x98, 0x5b, 0x8b, 0x59, 0xcd, 0x42, 0x28, 0xc9, 0xb4, 0xdd, 0x22, 0x83, 0xdd, 0x91, 0xff, - 0x60, 0x3e, 0x02, 0xf4, 0x0a, 0x94, 0xc2, 0xcd, 0xcd, 0x46, 0xe8, 0x55, 0xd3, 0x4a, 0xe5, 0x32, - 0xc0, 0xce, 0x2f, 0x21, 0xaa, 0x72, 0x9a, 0xab, 0x5d, 0xf0, 0x70, 0x57, 0x0a, 0xe8, 0x3b, 0x54, - 0x15, 0x49, 0xc2, 0x88, 0x54, 0x53, 0x17, 0xcd, 0x20, 0x9b, 0x33, 0xb1, 0x3e, 0xe7, 0xb2, 0xc9, - 0x87, 0xcf, 0x5e, 0x3d, 0x94, 0x4c, 0x2b, 0xce, 0x0e, 0x0b, 0x45, 0x70, 0xbe, 0x95, 0xe7, 0x21, - 0x8a, 0xc5, 0xd5, 0x9b, 0x83, 0xfc, 0x54, 0xf2, 0xd5, 0x3d, 0x9f, 0xeb, 0x63, 0x8a, 0x71, 0x17, - 0xca, 0x7a, 0x0d, 0xf3, 0x81, 0x93, 0xa9, 0x61, 0xfe, 0x71, 0x80, 0x8a, 0x2c, 0x08, 0x25, 0x7d, - 0x0e, 0x4b, 0x56, 0xee, 0x84, 0x70, 0x9a, 0xda, 0x07, 0x13, 0x15, 0x1b, 0xac, 0xb1, 0x44, 0xff, - 0x3b, 0xb7, 0xdc, 0x3e, 0x77, 0xac, 0xd4, 0xac, 0xef, 0x89, 0xb7, 0x5d, 0xc9, 0xfd, 0x7f, 0xe8, - 0xc0, 0x38, 0xdf, 0x79, 0x59, 0x75, 0x9e, 0x2a, 0x13, 0xe2, 0x92, 0x8a, 0xed, 0x1c, 0x0c, 0x96, - 0x8e, 0x56, 0x36, 0xb8, 0xb2, 0x88, 0xed, 0x01, 0x23, 0x41, 0x5f, 0xc9, 0x31, 0x22, 0x4e, 0xd9, - 0x72, 0x55, 0xe6, 0x97, 0x6a, 0x3f, 0xb3, 0x7f, 0x18, 0xbb, 0xe1, 0x9f, 0x74, 0xf5, 0xa4, 0x22, - 0x36, 0xbc, 0xbf, 0x76, 0x4c, 0x9e, 0x54, 0xbd, 0x9e, 0xfc, 0x91, 0xfc, 0xa9, 0x5f, 0x74, 0x60, - 0xcc, 0xcb, 0xe4, 0x4c, 0x30, 0xf7, 0x8f, 0x15, 0x57, 0xd4, 0x74, 0x94, 0x26, 0x62, 0x30, 0xb5, - 0x2e, 0x9b, 0x9e, 0x81, 0x3b, 0x98, 0x8f, 0x7f, 0xc6, 0xe1, 0x1f, 0xa1, 0xe9, 0xaa, 0x17, 0x6d, - 0x98, 0x7a, 0xd1, 0xb2, 0xcd, 0xcf, 0x60, 0xe8, 0x0a, 0xda, 0xaf, 0x3a, 0x70, 0x36, 0x4f, 0x6c, - 0xe7, 0x0c, 0xe9, 0x23, 0xe6, 0x90, 0x2c, 0x1a, 0x1f, 0xfa, 0x80, 0xec, 0xd4, 0xfe, 0xff, 0xe3, - 0x41, 0x2d, 0xa2, 0x96, 0x90, 0x96, 0xf5, 0x0c, 0xdb, 0x00, 0xfa, 0xfc, 0xa0, 0xe1, 0x07, 0x44, - 0xdc, 0xa6, 0xb3, 0x69, 0x8a, 0x89, 0x6f, 0x6d, 0x50, 0xea, 0x58, 0x70, 0x79, 0xc0, 0x01, 0xb6, - 0xec, 0x77, 0x84, 0x7a, 0x4f, 0xfe, 0x3b, 0x42, 0x3b, 0x30, 0xb8, 0xe3, 0x27, 0x75, 0x96, 0x18, - 0x20, 0xe2, 0x56, 0x16, 0x6e, 0xa1, 0x51, 0x72, 0xe9, 0xdc, 0x6f, 0x4a, 0x06, 0x38, 0xe5, 0x85, - 0xa6, 0x38, 0x63, 0x96, 0x57, 0x9b, 0x4d, 0x78, 0xbc, 0x29, 0x1b, 0x70, 0x8a, 0x43, 0x17, 0x6b, - 0x98, 0xfe, 0x92, 0xd5, 0x66, 0x44, 0x45, 0x52, 0x1b, 0x95, 0xe6, 0x04, 0x45, 0x7e, 0xd7, 0xf3, - 0xa6, 0xc6, 0x03, 0x1b, 0x1c, 0x55, 0x51, 0xd8, 0x81, 0xae, 0x45, 0x61, 0x6f, 0x33, 0x2d, 0x24, - 0xf1, 0x83, 0x36, 0x59, 0x0d, 0x44, 0x36, 0xee, 0xb2, 0x9d, 0x9b, 0xa9, 0x9c, 0x26, 0xb7, 0x2b, - 0xd3, 0xdf, 0x58, 0xe3, 0xa7, 0x85, 0x0f, 0x86, 0x0e, 0x0c, 0x1f, 0xa4, 0x9e, 0x83, 0x61, 0xeb, - 0x9e, 0x83, 0x84, 0xb4, 0xac, 0x78, 0x0e, 0xde, 0x56, 0x36, 0xee, 0x9f, 0x39, 0x80, 0x94, 0x32, - 0xe1, 0xc5, 0x5b, 0xe2, 0xe3, 0x6f, 0xc7, 0x9f, 0xf2, 0xf6, 0x09, 0x07, 0x20, 0x50, 0x5f, 0x9b, - 0xb3, 0x7b, 0x6a, 0x71, 0x9a, 0xe9, 0x00, 0x52, 0x18, 0xd6, 0x78, 0xba, 0xff, 0xdd, 0x49, 0x33, - 0x4b, 0xd3, 0xb9, 0x9f, 0x40, 0x42, 0xd4, 0xae, 0x99, 0x10, 0xb5, 0x6e, 0xd1, 0x03, 0xad, 0xa6, - 0xd1, 0x25, 0x35, 0xea, 0xa7, 0x05, 0x38, 0xa5, 0x23, 0x97, 0xc9, 0x49, 0x3c, 0xec, 0x1d, 0x23, - 0xbf, 0xf1, 0xba, 0xdd, 0xf9, 0x96, 0x45, 0x20, 0x23, 0x2f, 0x97, 0xf6, 0xe3, 0x99, 0x5c, 0xda, - 0x9b, 0xf6, 0x59, 0x1f, 0x9c, 0x50, 0xfb, 0x5f, 0x1d, 0x38, 0x93, 0xe9, 0x71, 0x02, 0x1b, 0x6c, - 0xdb, 0xdc, 0x60, 0x2f, 0x5a, 0x9f, 0x75, 0x97, 0xdd, 0xf5, 0xad, 0x42, 0xc7, 0x6c, 0x99, 0x65, - 0xf2, 0x69, 0x07, 0x8a, 0x89, 0x17, 0x6f, 0xc9, 0xdc, 0xa4, 0x8f, 0x1c, 0xcb, 0x0e, 0x98, 0xa4, - 0xff, 0x0b, 0xe9, 0xac, 0xc6, 0xc7, 0x60, 0x98, 0x73, 0x1f, 0xff, 0x94, 0x03, 0x90, 0x22, 0x3d, - 0x28, 0x95, 0xd5, 0xfd, 0x6e, 0x01, 0xce, 0xe5, 0x6e, 0x23, 0xf4, 0x59, 0xe5, 0x66, 0x72, 0x6c, - 0x67, 0xde, 0x19, 0x8c, 0x74, 0x6f, 0xd3, 0x88, 0xe1, 0x6d, 0x12, 0x4e, 0xa6, 0x07, 0x65, 0x70, - 0x08, 0x31, 0xad, 0x2d, 0xd6, 0x4f, 0x9c, 0x34, 0x99, 0x53, 0x55, 0x9d, 0xf9, 0x73, 0x78, 0xc5, - 0xc2, 0xfd, 0xa9, 0x96, 0x7f, 0x2e, 0x27, 0x7a, 0x02, 0xb2, 0x62, 0xc7, 0x94, 0x15, 0xd8, 0x7e, - 0x38, 0xb4, 0x8b, 0xb0, 0xf8, 0x28, 0xe4, 0xc5, 0x47, 0x0f, 0x57, 0xb2, 0xce, 0xb8, 0xac, 0x58, - 0x38, 0xf4, 0x65, 0xc5, 0x11, 0x18, 0x7a, 0xd9, 0x6f, 0xa9, 0x50, 0xde, 0xe4, 0xf7, 0x7f, 0x7c, - 0xf1, 0xa1, 0x1f, 0xfc, 0xf8, 0xe2, 0x43, 0x3f, 0xfa, 0xf1, 0xc5, 0x87, 0x3e, 0xb1, 0x7f, 0xd1, - 0xf9, 0xfe, 0xfe, 0x45, 0xe7, 0x07, 0xfb, 0x17, 0x9d, 0x1f, 0xed, 0x5f, 0x74, 0xfe, 0xc3, 0xfe, - 0x45, 0xe7, 0x6f, 0xfd, 0xd1, 0xc5, 0x87, 0x5e, 0x1e, 0x90, 0x13, 0xfb, 0x7f, 0x01, 0x00, 0x00, - 0xff, 0xff, 0xd2, 0xea, 0x98, 0x1a, 0xa3, 0xcf, 0x00, 0x00, + // 10621 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x6b, 0x70, 0x24, 0xc7, + 0x79, 0x18, 0x67, 0x81, 0xc5, 0xe3, 0xc3, 0xf3, 0xfa, 0x5e, 0x4b, 0x90, 0x3c, 0xd0, 0x43, 0x91, + 0x21, 0x6d, 0x0a, 0x67, 0xde, 0x49, 0x09, 0x23, 0x25, 0x92, 0xf0, 0x38, 0xe0, 0x40, 0x00, 0x07, + 0xb0, 0x17, 0x77, 0x67, 0x52, 0x8c, 0xa4, 0xc1, 0x6e, 0x63, 0x77, 0x88, 0xdd, 0x99, 0xd5, 0xcc, + 0x2c, 0x70, 0x20, 0x8f, 0x92, 0x22, 0xeb, 0x19, 0x2b, 0x56, 0x62, 0x4b, 0xb2, 0xa4, 0x24, 0x55, + 0x8a, 0x22, 0x25, 0x2a, 0xc5, 0x95, 0x94, 0x5c, 0xf9, 0x91, 0xb2, 0xff, 0xa5, 0x52, 0x2e, 0xa5, + 0x9c, 0xaa, 0xc8, 0x65, 0x26, 0xd2, 0x8f, 0x18, 0x8c, 0x90, 0x44, 0x55, 0x49, 0x4a, 0x55, 0x89, + 0x2a, 0x76, 0xec, 0xcb, 0xa3, 0x52, 0xfd, 0x9c, 0xee, 0xd9, 0x59, 0x1c, 0x70, 0xd7, 0xc0, 0xb1, + 0xec, 0x5f, 0xc0, 0x7e, 0xfd, 0xf5, 0xf7, 0x75, 0xf7, 0xf4, 0x7c, 0xfd, 0xbd, 0xfa, 0x1b, 0x58, + 0xab, 0xf9, 0x49, 0xbd, 0xbd, 0x31, 0x55, 0x09, 0x9b, 0x17, 0xbd, 0xa8, 0x16, 0xb6, 0xa2, 0xf0, + 0x55, 0xf6, 0xcf, 0x3b, 0x77, 0xc2, 0x68, 0x6b, 0xb3, 0x11, 0xee, 0xc4, 0x17, 0xb7, 0x2f, 0x5f, + 0x6c, 0x6d, 0xd5, 0x2e, 0x7a, 0x2d, 0x3f, 0xbe, 0x28, 0xa1, 0x17, 0xb7, 0x9f, 0xf3, 0x1a, 0xad, + 0xba, 0xf7, 0xdc, 0xc5, 0x1a, 0x09, 0x48, 0xe4, 0x25, 0xa4, 0x3a, 0xd5, 0x8a, 0xc2, 0x24, 0x44, + 0x1f, 0x48, 0x29, 0x4e, 0x49, 0x8a, 0xec, 0x9f, 0x0f, 0x2b, 0x8a, 0x53, 0xdb, 0x97, 0xa7, 0x5a, + 0x5b, 0xb5, 0x29, 0x4a, 0x71, 0x4a, 0x42, 0xa7, 0x24, 0xc5, 0x89, 0x77, 0x6a, 0x63, 0xaa, 0x85, + 0xb5, 0xf0, 0x22, 0x23, 0xbc, 0xd1, 0xde, 0x64, 0xbf, 0xd8, 0x0f, 0xf6, 0x1f, 0x67, 0x38, 0xe1, + 0x6e, 0x3d, 0x1f, 0x4f, 0xf9, 0x21, 0x1d, 0xdf, 0xc5, 0x4a, 0x18, 0x91, 0x8b, 0xdb, 0x1d, 0x83, + 0x9a, 0x78, 0x87, 0x86, 0xd3, 0x0a, 0x1b, 0x7e, 0x65, 0x37, 0x0f, 0xeb, 0x5d, 0x29, 0x56, 0xd3, + 0xab, 0xd4, 0xfd, 0x80, 0x44, 0xbb, 0xe9, 0xd4, 0x9b, 0x24, 0xf1, 0xf2, 0x7a, 0x5d, 0xec, 0xd6, + 0x2b, 0x6a, 0x07, 0x89, 0xdf, 0x24, 0x1d, 0x1d, 0xfe, 0xe2, 0xdd, 0x3a, 0xc4, 0x95, 0x3a, 0x69, + 0x7a, 0x1d, 0xfd, 0x2e, 0x77, 0xeb, 0xd7, 0x4e, 0xfc, 0xc6, 0x45, 0x3f, 0x48, 0xe2, 0x24, 0xca, + 0x76, 0x72, 0xaf, 0x40, 0xdf, 0x74, 0x33, 0x6c, 0x07, 0x09, 0x7a, 0x2f, 0x14, 0xb7, 0xbd, 0x46, + 0x9b, 0x94, 0x9c, 0xc7, 0x9d, 0xa7, 0x07, 0x67, 0x9e, 0xfc, 0xfe, 0xde, 0xe4, 0x43, 0xfb, 0x7b, + 0x93, 0xc5, 0x1b, 0x14, 0x78, 0x67, 0x6f, 0xf2, 0x0c, 0x09, 0x2a, 0x61, 0xd5, 0x0f, 0x6a, 0x17, + 0x5f, 0x8d, 0xc3, 0x60, 0xea, 0x5a, 0xbb, 0xb9, 0x41, 0x22, 0xcc, 0xfb, 0xb8, 0x7f, 0x50, 0x80, + 0xb1, 0xe9, 0xa8, 0x52, 0xf7, 0xb7, 0x49, 0x39, 0xa1, 0xf4, 0x6b, 0xbb, 0xa8, 0x0e, 0x3d, 0x89, + 0x17, 0x31, 0x72, 0x43, 0x97, 0x56, 0xa6, 0xee, 0xf7, 0xb9, 0x4f, 0xad, 0x7b, 0x91, 0xa4, 0x3d, + 0xd3, 0xbf, 0xbf, 0x37, 0xd9, 0xb3, 0xee, 0x45, 0x98, 0xb2, 0x40, 0x0d, 0xe8, 0x0d, 0xc2, 0x80, + 0x94, 0x0a, 0x8c, 0xd5, 0xb5, 0xfb, 0x67, 0x75, 0x2d, 0x0c, 0xd4, 0x3c, 0x66, 0x06, 0xf6, 0xf7, + 0x26, 0x7b, 0x29, 0x04, 0x33, 0x2e, 0x74, 0x5e, 0xaf, 0xf9, 0xad, 0x52, 0x8f, 0xad, 0x79, 0xbd, + 0xec, 0xb7, 0xcc, 0x79, 0xbd, 0xec, 0xb7, 0x30, 0x65, 0xe1, 0x7e, 0xbe, 0x00, 0x83, 0xd3, 0x51, + 0xad, 0xdd, 0x24, 0x41, 0x12, 0xa3, 0x8f, 0x03, 0xb4, 0xbc, 0xc8, 0x6b, 0x92, 0x84, 0x44, 0x71, + 0xc9, 0x79, 0xbc, 0xe7, 0xe9, 0xa1, 0x4b, 0x4b, 0xf7, 0xcf, 0x7e, 0x4d, 0xd2, 0x9c, 0x41, 0xe2, + 0x91, 0x83, 0x02, 0xc5, 0x58, 0x63, 0x89, 0x5e, 0x87, 0x41, 0x2f, 0x4a, 0xfc, 0x4d, 0xaf, 0x92, + 0xc4, 0xa5, 0x02, 0xe3, 0xff, 0xc2, 0xfd, 0xf3, 0x9f, 0x16, 0x24, 0x67, 0x4e, 0x09, 0xf6, 0x83, + 0x12, 0x12, 0xe3, 0x94, 0x9f, 0xfb, 0xdb, 0xbd, 0x30, 0x34, 0x1d, 0x25, 0x0b, 0xb3, 0xe5, 0xc4, + 0x4b, 0xda, 0x31, 0xfa, 0x3d, 0x07, 0x4e, 0xc7, 0x7c, 0xd9, 0x7c, 0x12, 0xaf, 0x45, 0x61, 0x85, + 0xc4, 0x31, 0xa9, 0x8a, 0x75, 0xd9, 0xb4, 0x32, 0x2e, 0xc9, 0x6c, 0xaa, 0xdc, 0xc9, 0xe8, 0x4a, + 0x90, 0x44, 0xbb, 0x33, 0xcf, 0x89, 0x31, 0x9f, 0xce, 0xc1, 0xf8, 0xe4, 0x5b, 0x93, 0x48, 0x4e, + 0x85, 0x52, 0xe2, 0x8f, 0x18, 0xe7, 0x8d, 0x1a, 0x7d, 0xcd, 0x81, 0xe1, 0x56, 0x58, 0x8d, 0x31, + 0xa9, 0x84, 0xed, 0x16, 0xa9, 0x8a, 0xe5, 0xfd, 0xb0, 0xdd, 0x69, 0xac, 0x69, 0x1c, 0xf8, 0xf8, + 0xcf, 0x88, 0xf1, 0x0f, 0xeb, 0x4d, 0xd8, 0x18, 0x0a, 0x7a, 0x1e, 0x86, 0x83, 0x30, 0x29, 0xb7, + 0x48, 0xc5, 0xdf, 0xf4, 0x49, 0x95, 0x6d, 0xfc, 0x81, 0xb4, 0xe7, 0x35, 0xad, 0x0d, 0x1b, 0x98, + 0x13, 0xf3, 0x50, 0xea, 0xb6, 0x72, 0x68, 0x1c, 0x7a, 0xb6, 0xc8, 0x2e, 0x17, 0x36, 0x98, 0xfe, + 0x8b, 0xce, 0x48, 0x01, 0x44, 0x5f, 0xe3, 0x01, 0x21, 0x59, 0xde, 0x53, 0x78, 0xde, 0x99, 0x78, + 0x3f, 0x9c, 0xea, 0x18, 0xfa, 0x51, 0x08, 0xb8, 0x3f, 0xe8, 0x83, 0x01, 0xf9, 0x28, 0xd0, 0xe3, + 0xd0, 0x1b, 0x78, 0x4d, 0x29, 0xe7, 0x86, 0xc5, 0x3c, 0x7a, 0xaf, 0x79, 0x4d, 0xfa, 0x86, 0x7b, + 0x4d, 0x42, 0x31, 0x5a, 0x5e, 0x52, 0x67, 0x74, 0x34, 0x8c, 0x35, 0x2f, 0xa9, 0x63, 0xd6, 0x82, + 0x1e, 0x85, 0xde, 0x66, 0x58, 0x25, 0x6c, 0x2d, 0x8a, 0x5c, 0x42, 0xac, 0x84, 0x55, 0x82, 0x19, + 0x94, 0xf6, 0xdf, 0x8c, 0xc2, 0x66, 0xa9, 0xd7, 0xec, 0x3f, 0x1f, 0x85, 0x4d, 0xcc, 0x5a, 0xd0, + 0x57, 0x1d, 0x18, 0x97, 0x7b, 0x7b, 0x39, 0xac, 0x78, 0x89, 0x1f, 0x06, 0xa5, 0x22, 0x93, 0x28, + 0xd8, 0xde, 0x2b, 0x25, 0x29, 0xcf, 0x94, 0xc4, 0x10, 0xc6, 0xb3, 0x2d, 0xb8, 0x63, 0x14, 0xe8, + 0x12, 0x40, 0xad, 0x11, 0x6e, 0x78, 0x0d, 0xba, 0x20, 0xa5, 0x3e, 0x36, 0x05, 0x25, 0x19, 0x16, + 0x54, 0x0b, 0xd6, 0xb0, 0xd0, 0x2d, 0xe8, 0xf7, 0xb8, 0xf4, 0x2f, 0xf5, 0xb3, 0x49, 0xbc, 0x68, + 0x63, 0x12, 0xc6, 0x71, 0x32, 0x33, 0xb4, 0xbf, 0x37, 0xd9, 0x2f, 0x80, 0x58, 0xb2, 0x43, 0xcf, + 0xc2, 0x40, 0xd8, 0xa2, 0xe3, 0xf6, 0x1a, 0xa5, 0x01, 0xb6, 0x31, 0xc7, 0xc5, 0x58, 0x07, 0x56, + 0x05, 0x1c, 0x2b, 0x0c, 0xf4, 0x0c, 0xf4, 0xc7, 0xed, 0x0d, 0xfa, 0x1c, 0x4b, 0x83, 0x6c, 0x62, + 0x63, 0x02, 0xb9, 0xbf, 0xcc, 0xc1, 0x58, 0xb6, 0xa3, 0x77, 0xc3, 0x50, 0x44, 0x2a, 0xed, 0x28, + 0x26, 0xf4, 0xc1, 0x96, 0x80, 0xd1, 0x3e, 0x2d, 0xd0, 0x87, 0x70, 0xda, 0x84, 0x75, 0x3c, 0xf4, + 0x3e, 0x18, 0xa5, 0x0f, 0xf8, 0xca, 0xad, 0x56, 0x44, 0xe2, 0x98, 0x3e, 0xd5, 0x21, 0xc6, 0xe8, + 0x9c, 0xe8, 0x39, 0x3a, 0x6f, 0xb4, 0xe2, 0x0c, 0x36, 0xba, 0x0d, 0xe0, 0x29, 0x99, 0x51, 0x1a, + 0x66, 0x8b, 0xb9, 0x6c, 0x6f, 0x47, 0x2c, 0xcc, 0xce, 0x8c, 0xd2, 0xe7, 0x98, 0xfe, 0xc6, 0x1a, + 0x3f, 0xba, 0x3e, 0x55, 0xd2, 0x20, 0x09, 0xa9, 0x96, 0x46, 0xd8, 0x84, 0xd5, 0xfa, 0xcc, 0x71, + 0x30, 0x96, 0xed, 0xee, 0xdf, 0x29, 0x80, 0x46, 0x05, 0xcd, 0xc0, 0x80, 0x90, 0x6b, 0xe2, 0x95, + 0x9c, 0x79, 0x4a, 0x3e, 0x07, 0xf9, 0x04, 0xef, 0xec, 0xe5, 0xca, 0x43, 0xd5, 0x0f, 0xbd, 0x01, + 0x43, 0xad, 0xb0, 0xba, 0x42, 0x12, 0xaf, 0xea, 0x25, 0x9e, 0x38, 0xcd, 0x2d, 0x9c, 0x30, 0x92, + 0xe2, 0xcc, 0x18, 0x7d, 0x74, 0x6b, 0x29, 0x0b, 0xac, 0xf3, 0x43, 0x2f, 0x00, 0x8a, 0x49, 0xb4, + 0xed, 0x57, 0xc8, 0x74, 0xa5, 0x42, 0x55, 0x22, 0xf6, 0x02, 0xf4, 0xb0, 0xc9, 0x4c, 0x88, 0xc9, + 0xa0, 0x72, 0x07, 0x06, 0xce, 0xe9, 0xe5, 0xbe, 0x59, 0x80, 0x51, 0x6d, 0xae, 0x2d, 0x52, 0x41, + 0xdf, 0x71, 0x60, 0x4c, 0x1d, 0x67, 0x33, 0xbb, 0xd7, 0xe8, 0xae, 0xe2, 0x87, 0x15, 0xb1, 0xf9, + 0x7c, 0x29, 0x2f, 0xf5, 0x53, 0xf0, 0xe1, 0xb2, 0xfe, 0xbc, 0x98, 0xc3, 0x58, 0xa6, 0x15, 0x67, + 0x87, 0x35, 0xf1, 0x15, 0x07, 0xce, 0xe4, 0x91, 0xc8, 0x91, 0xb9, 0x75, 0x5d, 0xe6, 0x5a, 0x15, + 0x5e, 0x94, 0x2b, 0x9d, 0x8c, 0x2e, 0xc7, 0xff, 0x5f, 0x01, 0xc6, 0xf5, 0x2d, 0xc4, 0x34, 0x81, + 0x7f, 0xe1, 0xc0, 0x59, 0x39, 0x03, 0x4c, 0xe2, 0x76, 0x23, 0xb3, 0xbc, 0x4d, 0xab, 0xcb, 0xcb, + 0x4f, 0xd2, 0xe9, 0x3c, 0x7e, 0x7c, 0x99, 0x1f, 0x13, 0xcb, 0x7c, 0x36, 0x17, 0x07, 0xe7, 0x0f, + 0x75, 0xe2, 0x5b, 0x0e, 0x4c, 0x74, 0x27, 0x9a, 0xb3, 0xf0, 0x2d, 0x73, 0xe1, 0x5f, 0xb6, 0x37, + 0x49, 0xce, 0x9e, 0x2d, 0x3f, 0x9b, 0xac, 0xfe, 0x00, 0x7e, 0x73, 0x00, 0x3a, 0xce, 0x10, 0xf4, + 0x1c, 0x0c, 0x09, 0x71, 0xbc, 0x1c, 0xd6, 0x62, 0x36, 0xc8, 0x01, 0xfe, 0xae, 0x4d, 0xa7, 0x60, + 0xac, 0xe3, 0xa0, 0x2a, 0x14, 0xe2, 0xcb, 0x62, 0xe8, 0x16, 0xc4, 0x5b, 0xf9, 0xb2, 0xd2, 0x22, + 0xfb, 0xf6, 0xf7, 0x26, 0x0b, 0xe5, 0xcb, 0xb8, 0x10, 0x5f, 0xa6, 0x9a, 0x7a, 0xcd, 0x4f, 0xec, + 0x69, 0xea, 0x0b, 0x7e, 0xa2, 0xf8, 0x30, 0x4d, 0x7d, 0xc1, 0x4f, 0x30, 0x65, 0x41, 0x2d, 0x90, + 0x7a, 0x92, 0xb4, 0xd8, 0x89, 0x6f, 0xc5, 0x02, 0xb9, 0xba, 0xbe, 0xbe, 0xa6, 0x78, 0x31, 0xfd, + 0x82, 0x42, 0x30, 0xe3, 0x82, 0x3e, 0xe7, 0xd0, 0x15, 0xe7, 0x8d, 0x61, 0xb4, 0x2b, 0x14, 0x87, + 0xeb, 0xf6, 0xb6, 0x40, 0x18, 0xed, 0x2a, 0xe6, 0xe2, 0x41, 0xaa, 0x06, 0xac, 0xb3, 0x66, 0x13, + 0xaf, 0x6e, 0xc6, 0x4c, 0x4f, 0xb0, 0x33, 0xf1, 0xb9, 0xf9, 0x72, 0x66, 0xe2, 0x73, 0xf3, 0x65, + 0xcc, 0xb8, 0xd0, 0x07, 0x1a, 0x79, 0x3b, 0x42, 0xc7, 0xb0, 0xf0, 0x40, 0xb1, 0xb7, 0x63, 0x3e, + 0x50, 0xec, 0xed, 0x60, 0xca, 0x82, 0x72, 0x0a, 0xe3, 0x98, 0xa9, 0x14, 0x56, 0x38, 0xad, 0x96, + 0xcb, 0x26, 0xa7, 0xd5, 0x72, 0x19, 0x53, 0x16, 0x6c, 0x93, 0x56, 0x62, 0xa6, 0x8f, 0xd8, 0xd9, + 0xa4, 0xb3, 0x19, 0x4e, 0x0b, 0xb3, 0x65, 0x4c, 0x59, 0x50, 0x91, 0xe1, 0xbd, 0xd6, 0x8e, 0xb8, + 0x32, 0x33, 0x74, 0x69, 0xd5, 0xc2, 0x7e, 0xa1, 0xe4, 0x14, 0xb7, 0xc1, 0xfd, 0xbd, 0xc9, 0x22, + 0x03, 0x61, 0xce, 0xc8, 0xfd, 0xdd, 0x9e, 0x54, 0x5c, 0x48, 0x79, 0x8e, 0xfe, 0x36, 0x3b, 0x08, + 0x85, 0x2c, 0x10, 0xaa, 0xaf, 0x73, 0x6c, 0xaa, 0xef, 0x69, 0x7e, 0xe2, 0x19, 0xec, 0x70, 0x96, + 0x3f, 0xfa, 0x35, 0xa7, 0xd3, 0xb6, 0xf5, 0xec, 0x9f, 0x65, 0xe9, 0xc1, 0xcc, 0xcf, 0x8a, 0x03, + 0x4d, 0xde, 0x89, 0xcf, 0x39, 0xa9, 0x12, 0x11, 0x77, 0x3b, 0x07, 0x3e, 0x62, 0x9e, 0x03, 0x16, + 0x0d, 0x72, 0x5d, 0xee, 0x7f, 0xde, 0x81, 0x11, 0x09, 0xa7, 0xea, 0x71, 0x8c, 0x6e, 0xc1, 0x80, + 0x1c, 0xa9, 0x78, 0x7a, 0x36, 0x7d, 0x01, 0x4a, 0x89, 0x57, 0x83, 0x51, 0xdc, 0xdc, 0xef, 0xf4, + 0x01, 0x4a, 0xcf, 0xaa, 0x56, 0x18, 0xfb, 0x4c, 0x12, 0xdd, 0xc3, 0x29, 0x14, 0x68, 0xa7, 0xd0, + 0x0d, 0x9b, 0xa7, 0x50, 0x3a, 0x2c, 0xe3, 0x3c, 0xfa, 0xb5, 0x8c, 0xdc, 0xe6, 0x07, 0xd3, 0x87, + 0x8f, 0x45, 0x6e, 0x6b, 0x43, 0x38, 0x58, 0x82, 0x6f, 0x0b, 0x09, 0xce, 0x8f, 0xae, 0x5f, 0xb2, + 0x2b, 0xc1, 0xb5, 0x51, 0x64, 0x65, 0x79, 0xc4, 0x25, 0x2c, 0x3f, 0xbb, 0x6e, 0x5a, 0x95, 0xb0, + 0x1a, 0x57, 0x53, 0xd6, 0x46, 0x5c, 0xd6, 0xf6, 0xd9, 0xe2, 0xa9, 0xc9, 0xda, 0x2c, 0x4f, 0x25, + 0x75, 0x5f, 0x93, 0x52, 0x97, 0x9f, 0x5a, 0x2f, 0x59, 0x96, 0xba, 0x1a, 0xdf, 0x4e, 0xf9, 0xfb, + 0x51, 0x38, 0xdb, 0x89, 0x87, 0xc9, 0x26, 0xba, 0x08, 0x83, 0x95, 0x30, 0xd8, 0xf4, 0x6b, 0x2b, + 0x5e, 0x4b, 0xd8, 0x6b, 0x4a, 0x16, 0xcd, 0xca, 0x06, 0x9c, 0xe2, 0xa0, 0xc7, 0xb8, 0xe0, 0xe1, + 0x1e, 0x91, 0x21, 0x81, 0xda, 0xb3, 0x44, 0x76, 0x99, 0x14, 0x7a, 0xcf, 0xc0, 0x57, 0xbf, 0x31, + 0xf9, 0xd0, 0x27, 0xfe, 0xfd, 0xe3, 0x0f, 0xb9, 0xbf, 0xdf, 0x03, 0x8f, 0xe4, 0xf2, 0x14, 0xda, + 0xfa, 0x6f, 0x1a, 0xda, 0xba, 0xd6, 0x2e, 0xa4, 0xc8, 0x4d, 0x9b, 0x8a, 0xac, 0x46, 0x3e, 0x4f, + 0x2f, 0xd7, 0x9a, 0x71, 0xfe, 0xa0, 0xe8, 0x42, 0x05, 0x5e, 0x93, 0xc4, 0x2d, 0xaf, 0x42, 0xc4, + 0xec, 0xd5, 0x42, 0x5d, 0x93, 0x0d, 0x38, 0xc5, 0xe1, 0x26, 0xf4, 0xa6, 0xd7, 0x6e, 0x24, 0xc2, + 0x51, 0xa6, 0x99, 0xd0, 0x0c, 0x8c, 0x65, 0x3b, 0xfa, 0xbb, 0x0e, 0xa0, 0x4e, 0xae, 0xe2, 0x45, + 0x5c, 0x3f, 0x8e, 0x75, 0x98, 0x39, 0xb7, 0xaf, 0x19, 0xe1, 0xda, 0x4c, 0x73, 0xc6, 0xa1, 0x3d, + 0xd3, 0x8f, 0xa5, 0xe7, 0x10, 0x37, 0x0e, 0x0e, 0xe1, 0x43, 0x63, 0xae, 0x96, 0x4a, 0x85, 0xc4, + 0x31, 0x77, 0xc7, 0xe9, 0xae, 0x16, 0x06, 0xc6, 0xb2, 0x1d, 0x4d, 0x42, 0x91, 0x44, 0x51, 0x18, + 0x09, 0x5b, 0x9b, 0x6d, 0xe3, 0x2b, 0x14, 0x80, 0x39, 0xdc, 0xfd, 0x49, 0x01, 0x4a, 0xdd, 0xac, + 0x13, 0xf4, 0x5b, 0x9a, 0x5d, 0x2d, 0x2c, 0x27, 0x61, 0xf8, 0x85, 0xc7, 0x67, 0x13, 0x65, 0x0d, + 0xc0, 0x2e, 0x16, 0xb6, 0x68, 0xc5, 0xd9, 0x01, 0x4e, 0x7c, 0x49, 0xb3, 0xb0, 0x75, 0x12, 0x39, + 0x07, 0xfc, 0xa6, 0x79, 0xc0, 0xaf, 0xd9, 0x9e, 0x94, 0x7e, 0xcc, 0xff, 0x61, 0x11, 0x4e, 0xcb, + 0xd6, 0x32, 0xa1, 0x47, 0xe5, 0x8b, 0x6d, 0x12, 0xed, 0xa2, 0x1f, 0x3a, 0x70, 0xc6, 0xcb, 0xba, + 0x6e, 0x7c, 0x72, 0x0c, 0x0b, 0xad, 0x71, 0x9d, 0x9a, 0xce, 0xe1, 0xc8, 0x17, 0xfa, 0x92, 0x58, + 0xe8, 0x33, 0x79, 0x28, 0x5d, 0xfc, 0xee, 0xb9, 0x13, 0x40, 0xcf, 0xc3, 0xb0, 0x84, 0x33, 0x77, + 0x0f, 0x7f, 0xc5, 0x95, 0x73, 0x7b, 0x5a, 0x6b, 0xc3, 0x06, 0x26, 0xed, 0x99, 0x90, 0x66, 0xab, + 0xe1, 0x25, 0x44, 0x73, 0x14, 0xa9, 0x9e, 0xeb, 0x5a, 0x1b, 0x36, 0x30, 0xd1, 0x53, 0xd0, 0x17, + 0x84, 0x55, 0xb2, 0x58, 0x15, 0x0e, 0xe2, 0x51, 0xd1, 0xa7, 0xef, 0x1a, 0x83, 0x62, 0xd1, 0x8a, + 0x9e, 0x4c, 0xbd, 0x71, 0x45, 0xf6, 0x0a, 0x0d, 0xe5, 0x79, 0xe2, 0xd0, 0xdf, 0x77, 0x60, 0x90, + 0xf6, 0x58, 0xdf, 0x6d, 0x11, 0x7a, 0xb6, 0xd1, 0x27, 0x52, 0x3d, 0x9e, 0x27, 0x72, 0x4d, 0xb2, + 0x31, 0x5d, 0x1d, 0x83, 0x0a, 0xfe, 0xc9, 0xb7, 0x26, 0x07, 0xe4, 0x0f, 0x9c, 0x8e, 0x6a, 0x62, + 0x01, 0x1e, 0xee, 0xfa, 0x34, 0x8f, 0x14, 0x0a, 0xf8, 0x2b, 0x30, 0x6a, 0x0e, 0xe2, 0x48, 0x71, + 0x80, 0x7f, 0xae, 0xbd, 0x76, 0x7c, 0x5e, 0x42, 0x9e, 0x3d, 0x30, 0x6d, 0x56, 0x6d, 0x86, 0x39, + 0xb1, 0xf5, 0xcc, 0xcd, 0x30, 0x27, 0x36, 0xc3, 0x9c, 0xfb, 0x7b, 0x4e, 0xfa, 0x6a, 0x6a, 0x6a, + 0x1e, 0x3d, 0x98, 0xdb, 0x51, 0x43, 0x08, 0x62, 0x75, 0x30, 0x5f, 0xc7, 0xcb, 0x98, 0xc2, 0xd1, + 0x97, 0x34, 0xe9, 0x48, 0xbb, 0xb5, 0x45, 0x58, 0xc3, 0x92, 0x8b, 0xde, 0x20, 0xdc, 0x29, 0xff, + 0x44, 0x03, 0xce, 0x0e, 0xc1, 0xfd, 0xb1, 0x03, 0x8f, 0x1d, 0xa8, 0xb4, 0xe6, 0x0e, 0xdc, 0x79, + 0xe0, 0x03, 0xa7, 0xc7, 0x5a, 0x44, 0x5a, 0xe1, 0x75, 0xbc, 0x2c, 0x9e, 0x97, 0x3a, 0xd6, 0x30, + 0x07, 0x63, 0xd9, 0xee, 0xfe, 0xd0, 0x81, 0x2c, 0x3d, 0xe4, 0xc1, 0x68, 0x3b, 0x26, 0x11, 0x3d, + 0x21, 0xcb, 0xa4, 0x12, 0x11, 0xb9, 0xdb, 0x9e, 0x9c, 0xe2, 0xc1, 0x7b, 0x3a, 0xe0, 0xa9, 0x4a, + 0x18, 0x91, 0xa9, 0xed, 0xe7, 0xa6, 0x38, 0xc6, 0x12, 0xd9, 0x2d, 0x93, 0x06, 0xa1, 0x34, 0x66, + 0xd0, 0xfe, 0xde, 0xe4, 0xe8, 0x75, 0x83, 0x00, 0xce, 0x10, 0xa4, 0x2c, 0x5a, 0x5e, 0x1c, 0xef, + 0x84, 0x51, 0x55, 0xb0, 0x28, 0x1c, 0x99, 0xc5, 0x9a, 0x41, 0x00, 0x67, 0x08, 0xba, 0x6f, 0x52, + 0x6b, 0x50, 0x57, 0x42, 0xd1, 0x37, 0xa8, 0x2a, 0x43, 0x21, 0x33, 0x8d, 0x70, 0x63, 0x36, 0x0c, + 0x12, 0xcf, 0x0f, 0x88, 0x8c, 0xfd, 0xaf, 0x5b, 0x52, 0x79, 0x0d, 0xda, 0xa9, 0x4b, 0xbe, 0xb3, + 0x0d, 0xe7, 0x8c, 0x85, 0xaa, 0x2c, 0x1b, 0x8d, 0x70, 0x23, 0x1b, 0xd4, 0xa3, 0x48, 0x98, 0xb5, + 0xb8, 0x3f, 0x73, 0xe0, 0x7c, 0x17, 0xdd, 0x1a, 0x7d, 0xc5, 0x81, 0x91, 0x8d, 0xb7, 0xc5, 0xdc, + 0xcc, 0x61, 0xa0, 0xf7, 0xc1, 0x28, 0x05, 0xd0, 0x83, 0x65, 0x3e, 0x8c, 0x9a, 0x5e, 0x22, 0x26, + 0xa8, 0x02, 0x4e, 0x33, 0x46, 0x2b, 0xce, 0x60, 0xbb, 0xbf, 0x5e, 0x80, 0x1c, 0x2e, 0xe8, 0x59, + 0x18, 0x20, 0x41, 0xb5, 0x15, 0xfa, 0x41, 0x22, 0x64, 0x8b, 0x12, 0x62, 0x57, 0x04, 0x1c, 0x2b, + 0x0c, 0x61, 0x4e, 0x88, 0x85, 0x29, 0x74, 0x98, 0x13, 0x62, 0xe4, 0x29, 0x0e, 0xaa, 0xc1, 0xb8, + 0xc7, 0xc3, 0x25, 0x6c, 0xef, 0xb1, 0x6d, 0xda, 0x73, 0x94, 0x6d, 0x7a, 0x86, 0x45, 0x33, 0x33, + 0x24, 0x70, 0x07, 0x51, 0xf4, 0x6e, 0x18, 0x6a, 0xc7, 0xa4, 0x3c, 0xb7, 0x34, 0x1b, 0x91, 0x2a, + 0x37, 0x72, 0xb5, 0x30, 0xde, 0xf5, 0xb4, 0x09, 0xeb, 0x78, 0xee, 0xbf, 0x74, 0xa0, 0x7f, 0xc6, + 0xab, 0x6c, 0x85, 0x9b, 0x9b, 0x74, 0x29, 0xaa, 0xed, 0x28, 0xf5, 0x53, 0x69, 0x4b, 0x31, 0x27, + 0xe0, 0x58, 0x61, 0xa0, 0x75, 0xe8, 0xe3, 0x2f, 0xbc, 0x78, 0xed, 0x7e, 0x51, 0x9b, 0x8f, 0x4a, + 0xcb, 0x61, 0xdb, 0xa1, 0x9d, 0xf8, 0x8d, 0x29, 0x9e, 0x96, 0x33, 0xb5, 0x18, 0x24, 0xab, 0x51, + 0x39, 0x89, 0xfc, 0xa0, 0x36, 0x03, 0x54, 0xfa, 0xcf, 0x33, 0x1a, 0x58, 0xd0, 0xa2, 0xd3, 0x68, + 0x7a, 0xb7, 0x24, 0x3b, 0xa1, 0x6b, 0xa8, 0x69, 0xac, 0xa4, 0x4d, 0x58, 0xc7, 0x73, 0x7f, 0xdf, + 0x81, 0xc1, 0x19, 0x2f, 0xf6, 0x2b, 0x7f, 0x86, 0x84, 0xcf, 0x87, 0xa0, 0x38, 0xeb, 0x55, 0xea, + 0x04, 0x5d, 0xcf, 0xda, 0xb0, 0x43, 0x97, 0x9e, 0xce, 0x63, 0xa3, 0xec, 0x59, 0x9d, 0xd3, 0x48, + 0x37, 0x4b, 0xd7, 0x7d, 0xcb, 0x81, 0xd1, 0xd9, 0x86, 0x4f, 0x82, 0x64, 0x96, 0x44, 0x09, 0x5b, + 0xb8, 0x1a, 0x8c, 0x57, 0x14, 0xe4, 0x5e, 0x96, 0x8e, 0xed, 0xd6, 0xd9, 0x0c, 0x09, 0xdc, 0x41, + 0x14, 0x55, 0x61, 0x8c, 0xc3, 0xd2, 0xb7, 0xe2, 0x48, 0xeb, 0xc7, 0x9c, 0x9d, 0xb3, 0x26, 0x05, + 0x9c, 0x25, 0xe9, 0xfe, 0xd4, 0x81, 0xf3, 0xb3, 0x8d, 0x76, 0x9c, 0x90, 0xe8, 0xa6, 0x90, 0x46, + 0x52, 0x5b, 0x45, 0x1f, 0x81, 0x81, 0xa6, 0x0c, 0xc0, 0x3a, 0x77, 0xd9, 0xc0, 0x4c, 0x9e, 0x51, + 0x6c, 0x3a, 0x98, 0xd5, 0x8d, 0x57, 0x49, 0x25, 0x59, 0x21, 0x89, 0x97, 0x66, 0x0b, 0xa4, 0x30, + 0xac, 0xa8, 0xa2, 0x16, 0xf4, 0xc6, 0x2d, 0x52, 0xb1, 0x97, 0xac, 0x25, 0xe7, 0x50, 0x6e, 0x91, + 0x4a, 0x2a, 0xd7, 0x59, 0xe8, 0x90, 0x71, 0x72, 0xff, 0xb7, 0x03, 0x8f, 0x74, 0x99, 0xef, 0xb2, + 0x1f, 0x27, 0xe8, 0x95, 0x8e, 0x39, 0x4f, 0x1d, 0x6e, 0xce, 0xb4, 0x37, 0x9b, 0xb1, 0x12, 0x08, + 0x12, 0xa2, 0xcd, 0xf7, 0x63, 0x50, 0xf4, 0x13, 0xd2, 0x94, 0x5e, 0x65, 0x0b, 0xfe, 0x9f, 0x2e, + 0x73, 0x99, 0x19, 0x91, 0x29, 0x7b, 0x8b, 0x94, 0x1f, 0xe6, 0x6c, 0xdd, 0x2d, 0xe8, 0x9b, 0x0d, + 0x1b, 0xed, 0x66, 0x70, 0xb8, 0xc4, 0x97, 0x64, 0xb7, 0x45, 0xb2, 0x67, 0x24, 0xd3, 0xe6, 0x59, + 0x8b, 0xf4, 0x03, 0xf5, 0xe4, 0xfb, 0x81, 0xdc, 0x7f, 0xe5, 0x00, 0x7d, 0xab, 0xaa, 0xbe, 0x08, + 0x0c, 0x72, 0x72, 0x9c, 0xe1, 0x63, 0x3a, 0xb9, 0x3b, 0x7b, 0x93, 0x23, 0x0a, 0x51, 0xa3, 0xff, + 0x21, 0xe8, 0x8b, 0x99, 0x85, 0x2d, 0xc6, 0x30, 0x2f, 0xd5, 0x61, 0x6e, 0x77, 0xdf, 0xd9, 0x9b, + 0x3c, 0x54, 0x16, 0xe6, 0x94, 0xa2, 0x2d, 0x62, 0x98, 0x82, 0x2a, 0xd5, 0xdf, 0x9a, 0x24, 0x8e, + 0xbd, 0x9a, 0x34, 0xd8, 0x94, 0xfe, 0xb6, 0xc2, 0xc1, 0x58, 0xb6, 0xbb, 0x5f, 0x76, 0x60, 0x44, + 0x1d, 0x5e, 0x54, 0x1b, 0x47, 0xd7, 0xf4, 0x63, 0x8e, 0xef, 0x94, 0xc7, 0xba, 0x48, 0x1c, 0x71, + 0x90, 0x1f, 0x7c, 0x0a, 0xbe, 0x0b, 0x86, 0xab, 0xa4, 0x45, 0x82, 0x2a, 0x09, 0x2a, 0xd4, 0x9a, + 0xa6, 0x3b, 0x64, 0x70, 0x66, 0x9c, 0x9a, 0x8f, 0x73, 0x1a, 0x1c, 0x1b, 0x58, 0xee, 0x37, 0x1d, + 0x78, 0x58, 0x91, 0x2b, 0x93, 0x04, 0x93, 0x24, 0xda, 0x55, 0x59, 0x97, 0x47, 0x3b, 0xad, 0x6e, + 0x52, 0x75, 0x36, 0x89, 0x38, 0xf3, 0x7b, 0x3b, 0xae, 0x86, 0xb8, 0xf2, 0xcb, 0x88, 0x60, 0x49, + 0xcd, 0xfd, 0xd5, 0x1e, 0x38, 0xa3, 0x0f, 0x52, 0x09, 0x98, 0x5f, 0x76, 0x00, 0xd4, 0x0a, 0xd0, + 0x03, 0xb9, 0xc7, 0x4e, 0x28, 0xca, 0x78, 0x52, 0xa9, 0x08, 0x52, 0xe0, 0x18, 0x6b, 0x6c, 0xd1, + 0x4b, 0x30, 0xbc, 0x4d, 0x5f, 0x0a, 0xb2, 0x42, 0xd5, 0x85, 0xb8, 0xd4, 0xc3, 0x86, 0x31, 0x99, + 0xf7, 0x30, 0x6f, 0xa4, 0x78, 0xa9, 0x75, 0xaf, 0x01, 0x63, 0x6c, 0x90, 0xa2, 0x86, 0xcb, 0x48, + 0xa4, 0x3f, 0x12, 0xe1, 0xe2, 0xfe, 0xa0, 0xc5, 0x39, 0x66, 0x9f, 0xfa, 0xcc, 0xa9, 0xfd, 0xbd, + 0xc9, 0x11, 0x03, 0x84, 0xcd, 0x41, 0xb8, 0x2f, 0x01, 0x5b, 0x0b, 0x3f, 0x68, 0x93, 0xd5, 0x00, + 0x3d, 0x21, 0x5d, 0x6e, 0x3c, 0x4c, 0xa2, 0x24, 0x87, 0xee, 0x76, 0xa3, 0xa6, 0xe9, 0xa6, 0xe7, + 0x37, 0x58, 0x36, 0x22, 0xc5, 0x52, 0xa6, 0xe9, 0x3c, 0x83, 0x62, 0xd1, 0xea, 0x4e, 0x41, 0xff, + 0x2c, 0x9d, 0x3b, 0x89, 0x28, 0x5d, 0x3d, 0x89, 0x78, 0xc4, 0x48, 0x22, 0x96, 0xc9, 0xc2, 0xeb, + 0x70, 0x76, 0x36, 0x22, 0x5e, 0x42, 0xca, 0x97, 0x67, 0xda, 0x95, 0x2d, 0x92, 0xf0, 0x4c, 0xad, + 0x18, 0xbd, 0x17, 0x46, 0x42, 0x76, 0x64, 0x2c, 0x87, 0x95, 0x2d, 0x3f, 0xa8, 0x09, 0x0f, 0xea, + 0x59, 0x41, 0x65, 0x64, 0x55, 0x6f, 0xc4, 0x26, 0xae, 0xfb, 0x9f, 0x0a, 0x30, 0x3c, 0x1b, 0x85, + 0x81, 0x14, 0x8b, 0x27, 0x70, 0x94, 0x25, 0xc6, 0x51, 0x66, 0x21, 0x7a, 0xa9, 0x8f, 0xbf, 0xdb, + 0x71, 0x86, 0x6e, 0x2b, 0x11, 0xd9, 0x63, 0xcb, 0x04, 0x31, 0xf8, 0x32, 0xda, 0xe9, 0xc3, 0x36, + 0x05, 0xa8, 0xfb, 0x9f, 0x1d, 0x18, 0xd7, 0xd1, 0x4f, 0xe0, 0x04, 0x8d, 0xcd, 0x13, 0xf4, 0x9a, + 0xdd, 0xf9, 0x76, 0x39, 0x36, 0x3f, 0xdf, 0x67, 0xce, 0x93, 0x85, 0xae, 0xbf, 0xea, 0xc0, 0xf0, + 0x8e, 0x06, 0x10, 0x93, 0xb5, 0xad, 0xc4, 0xbc, 0x43, 0x8a, 0x19, 0x1d, 0x7a, 0x27, 0xf3, 0x1b, + 0x1b, 0x23, 0xa1, 0x72, 0x3f, 0xae, 0xd4, 0x49, 0xb5, 0xdd, 0x90, 0xc7, 0xb7, 0x5a, 0xd2, 0xb2, + 0x80, 0x63, 0x85, 0x81, 0x5e, 0x81, 0x53, 0x95, 0x30, 0xa8, 0xb4, 0xa3, 0x88, 0x04, 0x95, 0xdd, + 0x35, 0x76, 0xe5, 0x41, 0x1c, 0x88, 0x53, 0xa2, 0xdb, 0xa9, 0xd9, 0x2c, 0xc2, 0x9d, 0x3c, 0x20, + 0xee, 0x24, 0xc4, 0x7d, 0xff, 0x31, 0x3d, 0xb2, 0x84, 0xc1, 0xa5, 0xf9, 0xfe, 0x19, 0x18, 0xcb, + 0x76, 0x74, 0x1d, 0xce, 0xc7, 0x89, 0x17, 0x25, 0x7e, 0x50, 0x9b, 0x23, 0x5e, 0xb5, 0xe1, 0x07, + 0xd4, 0x94, 0x08, 0x83, 0x2a, 0x8f, 0x0c, 0xf6, 0xcc, 0x3c, 0xb2, 0xbf, 0x37, 0x79, 0xbe, 0x9c, + 0x8f, 0x82, 0xbb, 0xf5, 0x45, 0x1f, 0x82, 0x09, 0x11, 0x5d, 0xd8, 0x6c, 0x37, 0x5e, 0x08, 0x37, + 0xe2, 0xab, 0x7e, 0x4c, 0xed, 0xf8, 0x65, 0xbf, 0xe9, 0x27, 0x2c, 0xfe, 0x57, 0x9c, 0xb9, 0xb0, + 0xbf, 0x37, 0x39, 0x51, 0xee, 0x8a, 0x85, 0x0f, 0xa0, 0x80, 0x30, 0x9c, 0xe3, 0xc2, 0xaf, 0x83, + 0x76, 0x3f, 0xa3, 0x3d, 0xb1, 0xbf, 0x37, 0x79, 0x6e, 0x3e, 0x17, 0x03, 0x77, 0xe9, 0x49, 0x9f, + 0x60, 0xe2, 0x37, 0xc9, 0x6b, 0x61, 0x40, 0x58, 0xde, 0x89, 0xf6, 0x04, 0xd7, 0x05, 0x1c, 0x2b, + 0x0c, 0xf4, 0x6a, 0xba, 0x13, 0xe9, 0xeb, 0x22, 0xf2, 0x47, 0x8e, 0x2e, 0xe1, 0x98, 0x69, 0x72, + 0x53, 0xa3, 0xc4, 0x12, 0x23, 0x0d, 0xda, 0xee, 0x1f, 0x14, 0x00, 0x75, 0x8a, 0x08, 0xb4, 0x04, + 0x7d, 0x5e, 0x25, 0xf1, 0xb7, 0x65, 0xa2, 0xdd, 0x13, 0x79, 0xc7, 0x27, 0x67, 0x85, 0xc9, 0x26, + 0xa1, 0x3b, 0x84, 0xa4, 0x72, 0x65, 0x9a, 0x75, 0xc5, 0x82, 0x04, 0x0a, 0xe1, 0x54, 0xc3, 0x8b, + 0x13, 0xb9, 0x57, 0xab, 0x74, 0xca, 0x42, 0xb0, 0xfe, 0xfc, 0xe1, 0x26, 0x45, 0x7b, 0xcc, 0x9c, + 0xa5, 0x3b, 0x77, 0x39, 0x4b, 0x08, 0x77, 0xd2, 0x46, 0x1f, 0x67, 0x7a, 0x08, 0x57, 0x12, 0xa5, + 0x02, 0xb0, 0x64, 0xe5, 0x8c, 0xe6, 0x34, 0x0d, 0x1d, 0x44, 0xb0, 0xc1, 0x1a, 0x4b, 0xf7, 0x5f, + 0x03, 0xf4, 0xcf, 0x4d, 0x2f, 0xac, 0x7b, 0xf1, 0xd6, 0x21, 0x54, 0x73, 0xba, 0x3b, 0x84, 0x0e, + 0x95, 0x7d, 0xbf, 0xa5, 0x6e, 0x85, 0x15, 0x06, 0x0a, 0xa0, 0xcf, 0x0f, 0xe8, 0x0b, 0x51, 0x1a, + 0xb5, 0xe5, 0xcd, 0x56, 0x66, 0x06, 0xf3, 0x4f, 0x2c, 0x32, 0xea, 0x58, 0x70, 0x41, 0xb7, 0x61, + 0xd0, 0x93, 0x17, 0x55, 0xc4, 0xb1, 0xb4, 0x64, 0xc3, 0x4d, 0x2b, 0x48, 0xea, 0x89, 0x32, 0x02, + 0x84, 0x53, 0x86, 0xe8, 0x13, 0x0e, 0x0c, 0xc9, 0xa9, 0x63, 0xb2, 0x29, 0x22, 0xa8, 0x2b, 0xf6, + 0xe6, 0x8c, 0xc9, 0x26, 0xcf, 0xa2, 0xd0, 0x00, 0x58, 0x67, 0xd9, 0xa1, 0xca, 0x17, 0x0f, 0xa3, + 0xca, 0xa3, 0x1d, 0x18, 0xdc, 0xf1, 0x93, 0x3a, 0x3b, 0x78, 0x44, 0xe4, 0x66, 0xfe, 0xfe, 0x47, + 0x4d, 0xc9, 0xa5, 0x2b, 0x76, 0x53, 0x32, 0xc0, 0x29, 0x2f, 0x74, 0x91, 0x33, 0x66, 0x17, 0x7d, + 0x98, 0xc8, 0x1a, 0x34, 0x3b, 0xb0, 0x06, 0x9c, 0xe2, 0xd0, 0x25, 0x1e, 0xa6, 0xbf, 0xca, 0xe4, + 0xa3, 0x6d, 0xfa, 0x1e, 0x8b, 0xcc, 0x38, 0x0b, 0xfb, 0x4a, 0x52, 0xe4, 0x8b, 0x75, 0x53, 0xe3, + 0x81, 0x0d, 0x8e, 0xf4, 0x1d, 0xd9, 0xa9, 0x93, 0x40, 0x64, 0xee, 0xab, 0x77, 0xe4, 0x66, 0x9d, + 0x04, 0x98, 0xb5, 0xa0, 0xdb, 0xdc, 0xb4, 0xe0, 0x3a, 0xae, 0xc8, 0x72, 0x5b, 0xb6, 0xa3, 0x76, + 0x73, 0x9a, 0x3c, 0x79, 0x3e, 0xfd, 0x8d, 0x35, 0x7e, 0x54, 0x5d, 0x0e, 0x83, 0x2b, 0xb7, 0xfc, + 0x44, 0xa4, 0xfc, 0x2b, 0x49, 0xb7, 0xca, 0xa0, 0x58, 0xb4, 0xf2, 0x0c, 0x01, 0xba, 0x09, 0x62, + 0x96, 0xdf, 0x3f, 0xa8, 0x67, 0x08, 0x30, 0x30, 0x96, 0xed, 0xe8, 0xef, 0x39, 0x50, 0xac, 0x87, + 0xe1, 0x56, 0x5c, 0x1a, 0x61, 0x9b, 0xc3, 0x82, 0xaa, 0x27, 0x24, 0xce, 0xd4, 0x55, 0x4a, 0xd6, + 0xbc, 0xc4, 0x54, 0x64, 0xb0, 0x3b, 0x7b, 0x93, 0xa3, 0xcb, 0xfe, 0x26, 0xa9, 0xec, 0x56, 0x1a, + 0x84, 0x41, 0x3e, 0xf9, 0x96, 0x06, 0xb9, 0xb2, 0x4d, 0x82, 0x04, 0xf3, 0x51, 0x4d, 0x7c, 0xde, + 0x01, 0x48, 0x09, 0xe5, 0x84, 0xe2, 0x88, 0x19, 0xbc, 0xb6, 0x60, 0xe7, 0x19, 0x43, 0xd3, 0x63, + 0x7b, 0xff, 0xc6, 0x81, 0x21, 0x3a, 0x39, 0x29, 0x02, 0x9f, 0x82, 0xbe, 0xc4, 0x8b, 0x6a, 0x44, + 0xfa, 0xaf, 0xd5, 0xe3, 0x58, 0x67, 0x50, 0x2c, 0x5a, 0x51, 0x00, 0xc5, 0xc4, 0x8b, 0xb7, 0xa4, + 0x76, 0xb9, 0x68, 0x6d, 0x89, 0x53, 0xc5, 0x92, 0xfe, 0x8a, 0x31, 0x67, 0x83, 0x9e, 0x86, 0x01, + 0xaa, 0x00, 0xcc, 0x7b, 0xb1, 0xcc, 0x10, 0x19, 0xa6, 0x42, 0x7c, 0x5e, 0xc0, 0xb0, 0x6a, 0x75, + 0x7f, 0xbd, 0x00, 0xbd, 0x73, 0xdc, 0xce, 0xe8, 0x8b, 0xc3, 0x76, 0x54, 0x21, 0x42, 0xdf, 0xb4, + 0xb0, 0xa7, 0x29, 0xdd, 0x32, 0xa3, 0xa9, 0x69, 0xfa, 0xec, 0x37, 0x16, 0xbc, 0xa8, 0x21, 0x3b, + 0x9a, 0x44, 0x5e, 0x10, 0x6f, 0xb2, 0x48, 0x81, 0x1f, 0x06, 0x62, 0x89, 0x2c, 0xec, 0xc2, 0x75, + 0x83, 0x6e, 0x39, 0x21, 0xad, 0x34, 0x60, 0x61, 0xb6, 0xe1, 0xcc, 0x18, 0xdc, 0xdf, 0x70, 0x00, + 0xd2, 0xd1, 0xa3, 0xcf, 0x39, 0x30, 0xe2, 0xe9, 0x99, 0x89, 0x62, 0x8d, 0x56, 0xed, 0x45, 0x09, + 0x19, 0x59, 0x6e, 0x62, 0x1b, 0x20, 0x6c, 0x32, 0x76, 0xdf, 0x0d, 0x45, 0xf6, 0x76, 0x30, 0x5d, + 0x5c, 0xb8, 0x64, 0xb3, 0x3e, 0x18, 0xe9, 0xaa, 0xc5, 0x0a, 0xc3, 0x7d, 0x05, 0x46, 0xaf, 0xdc, + 0x22, 0x95, 0x76, 0x12, 0x46, 0xdc, 0x21, 0xdd, 0xe5, 0x26, 0x8a, 0x73, 0x4f, 0x37, 0x51, 0xbe, + 0xeb, 0xc0, 0x90, 0x96, 0xa6, 0x46, 0x4f, 0xea, 0xda, 0x6c, 0x99, 0xdb, 0xdd, 0x62, 0xa9, 0x96, + 0xac, 0x24, 0xc2, 0x71, 0x92, 0xe9, 0x31, 0xa2, 0x40, 0x38, 0x65, 0x78, 0x97, 0x34, 0x32, 0xf7, + 0x77, 0x1d, 0x38, 0x9b, 0x9b, 0x53, 0xf7, 0x80, 0x87, 0x7d, 0x11, 0x06, 0xb7, 0xc8, 0xae, 0x11, + 0x5f, 0x53, 0x1d, 0x96, 0x64, 0x03, 0x4e, 0x71, 0xdc, 0xef, 0x39, 0x90, 0x52, 0xa2, 0xa2, 0x68, + 0x23, 0x1d, 0xb9, 0x26, 0x8a, 0x04, 0x27, 0xd1, 0x8a, 0x6e, 0xc3, 0x79, 0xf3, 0x09, 0xde, 0x63, + 0x18, 0x80, 0xdb, 0x4c, 0xf9, 0x94, 0x70, 0x37, 0x16, 0xee, 0x0d, 0x28, 0x2e, 0x78, 0xed, 0x1a, + 0x39, 0x94, 0x13, 0x87, 0x8a, 0xb1, 0x88, 0x78, 0x8d, 0x44, 0xaa, 0xe9, 0x42, 0x8c, 0x61, 0x01, + 0xc3, 0xaa, 0xd5, 0xfd, 0x61, 0x11, 0x86, 0xb4, 0x9b, 0x13, 0xf4, 0x1c, 0x8f, 0x48, 0x2b, 0xcc, + 0xea, 0xba, 0xf4, 0x61, 0x63, 0xd6, 0x42, 0xdf, 0x9f, 0x88, 0x6c, 0xfb, 0x31, 0x17, 0x39, 0xc6, + 0xfb, 0x83, 0x05, 0x1c, 0x2b, 0x0c, 0x34, 0x09, 0xc5, 0x2a, 0x69, 0x25, 0x75, 0x26, 0x4d, 0x7b, + 0x79, 0xfa, 0xd8, 0x1c, 0x05, 0x60, 0x0e, 0xa7, 0x08, 0x9b, 0x24, 0xa9, 0xd4, 0x99, 0xb3, 0x51, + 0xe4, 0x97, 0xcd, 0x53, 0x00, 0xe6, 0xf0, 0x9c, 0xc0, 0x58, 0xf1, 0xf8, 0x03, 0x63, 0x7d, 0x96, + 0x03, 0x63, 0xa8, 0x05, 0xa7, 0xe3, 0xb8, 0xbe, 0x16, 0xf9, 0xdb, 0x5e, 0x42, 0xd2, 0x9d, 0xd3, + 0x7f, 0x14, 0x3e, 0xe7, 0xd9, 0x5d, 0xe6, 0xf2, 0xd5, 0x2c, 0x15, 0x9c, 0x47, 0x1a, 0x95, 0xe1, + 0xac, 0x1f, 0xc4, 0xa4, 0xd2, 0x8e, 0xc8, 0x62, 0x2d, 0x08, 0x23, 0x72, 0x35, 0x8c, 0x29, 0x39, + 0x71, 0x13, 0x53, 0x65, 0x5c, 0x2e, 0xe6, 0x21, 0xe1, 0xfc, 0xbe, 0x68, 0x01, 0x4e, 0x55, 0xfd, + 0xd8, 0xdb, 0x68, 0x90, 0x72, 0x7b, 0xa3, 0x19, 0x52, 0x83, 0x8d, 0xdf, 0x8e, 0x18, 0x98, 0x79, + 0x58, 0xba, 0x26, 0xe6, 0xb2, 0x08, 0xb8, 0xb3, 0x0f, 0x7a, 0x1e, 0x86, 0x63, 0x3f, 0xa8, 0x35, + 0xc8, 0x4c, 0xe4, 0x05, 0x95, 0xba, 0xb8, 0xc2, 0xa9, 0x5c, 0xb8, 0x65, 0xad, 0x0d, 0x1b, 0x98, + 0xec, 0x7d, 0xe5, 0x7d, 0x32, 0x9a, 0x9c, 0xc0, 0x16, 0xad, 0xee, 0x8f, 0x1c, 0x18, 0xd6, 0xb3, + 0x9d, 0xa9, 0x96, 0x0c, 0xf5, 0xb9, 0xf9, 0x32, 0x97, 0xe3, 0xf6, 0x4e, 0xeb, 0xab, 0x8a, 0x66, + 0x6a, 0x55, 0xa6, 0x30, 0xac, 0xf1, 0x3c, 0xc4, 0xdd, 0xe5, 0x27, 0xa0, 0xb8, 0x19, 0x52, 0x65, + 0xa2, 0xc7, 0xf4, 0xfd, 0xce, 0x53, 0x20, 0xe6, 0x6d, 0xee, 0xff, 0x74, 0xe0, 0x5c, 0x7e, 0x22, + 0xf7, 0xdb, 0x61, 0x92, 0x97, 0x00, 0xe8, 0x54, 0x0c, 0x81, 0xac, 0x55, 0x2f, 0x90, 0x2d, 0x58, + 0xc3, 0x3a, 0xdc, 0xb4, 0xff, 0x98, 0x2a, 0xb4, 0x29, 0x9f, 0x2f, 0x38, 0x30, 0x42, 0xd9, 0x2e, + 0x45, 0x1b, 0xc6, 0x6c, 0x57, 0xed, 0xcc, 0x56, 0x91, 0x4d, 0x5d, 0xdc, 0x06, 0x18, 0x9b, 0xcc, + 0xd1, 0x2f, 0xc0, 0xa0, 0x57, 0xad, 0x46, 0x24, 0x8e, 0x55, 0xb0, 0x88, 0xc5, 0xb1, 0xa7, 0x25, + 0x10, 0xa7, 0xed, 0x54, 0x88, 0xd6, 0xab, 0x9b, 0x31, 0x95, 0x4b, 0xc2, 0xb3, 0xa7, 0x84, 0x28, + 0x65, 0x42, 0xe1, 0x58, 0x61, 0xb8, 0x7f, 0xb3, 0x17, 0x4c, 0xde, 0xa8, 0x0a, 0x63, 0x5b, 0xd1, + 0xc6, 0x2c, 0x8b, 0xb5, 0xdf, 0x4b, 0xcc, 0x9b, 0xc5, 0xa2, 0x97, 0x4c, 0x0a, 0x38, 0x4b, 0x52, + 0x70, 0x59, 0x22, 0xbb, 0x89, 0xb7, 0x71, 0xcf, 0x11, 0xef, 0x25, 0x93, 0x02, 0xce, 0x92, 0x44, + 0xef, 0x86, 0xa1, 0xad, 0x68, 0x43, 0x8a, 0xe8, 0x6c, 0xfa, 0xc4, 0x52, 0xda, 0x84, 0x75, 0x3c, + 0xba, 0x84, 0x5b, 0xd1, 0x06, 0x3d, 0xd2, 0xe4, 0x5d, 0x7e, 0xb5, 0x84, 0x4b, 0x02, 0x8e, 0x15, + 0x06, 0x6a, 0x01, 0xda, 0x92, 0xab, 0xa7, 0x32, 0x0b, 0xc4, 0x49, 0x72, 0xf8, 0xc4, 0x04, 0x96, + 0xa1, 0xbd, 0xd4, 0x41, 0x07, 0xe7, 0xd0, 0x46, 0x2f, 0xc1, 0xf9, 0xad, 0x68, 0x43, 0x1c, 0xf4, + 0x6b, 0x91, 0x1f, 0x54, 0xfc, 0x96, 0x71, 0x6f, 0x7f, 0x52, 0x0c, 0xf7, 0xfc, 0x52, 0x3e, 0x1a, + 0xee, 0xd6, 0xdf, 0xfd, 0xad, 0x5e, 0x60, 0x37, 0x0e, 0xa9, 0x2c, 0x6c, 0x92, 0xa4, 0x1e, 0x56, + 0xb3, 0xba, 0xcb, 0x0a, 0x83, 0x62, 0xd1, 0x2a, 0xf3, 0x10, 0x0b, 0x5d, 0xf2, 0x10, 0x77, 0xa0, + 0xbf, 0x4e, 0xbc, 0x2a, 0x89, 0xa4, 0xab, 0x6d, 0xd9, 0xce, 0x1d, 0xc9, 0xab, 0x8c, 0x68, 0x6a, + 0x42, 0xf3, 0xdf, 0x31, 0x96, 0xdc, 0xd0, 0x7b, 0x60, 0x94, 0x6a, 0x21, 0x61, 0x3b, 0x91, 0x7e, + 0xe5, 0x5e, 0xe6, 0x57, 0x66, 0x27, 0xea, 0xba, 0xd1, 0x82, 0x33, 0x98, 0x68, 0x0e, 0xc6, 0x85, + 0x0f, 0x58, 0xb9, 0xf0, 0xc4, 0xc2, 0xaa, 0x82, 0x0a, 0xe5, 0x4c, 0x3b, 0xee, 0xe8, 0xc1, 0x12, + 0xcf, 0xc2, 0x2a, 0x0f, 0x03, 0xea, 0x89, 0x67, 0x61, 0x75, 0x17, 0xb3, 0x16, 0xf4, 0x1a, 0x0c, + 0xd0, 0xbf, 0xf3, 0x51, 0xd8, 0x14, 0x7e, 0x95, 0x35, 0x3b, 0xab, 0x43, 0x79, 0x08, 0x2b, 0x8f, + 0x69, 0x67, 0x33, 0x82, 0x0b, 0x56, 0xfc, 0xa8, 0xad, 0x21, 0xcf, 0xe1, 0xf2, 0x96, 0xdf, 0xba, + 0x41, 0x22, 0x7f, 0x73, 0x97, 0x29, 0x0d, 0x03, 0xa9, 0xad, 0xb1, 0xd8, 0x81, 0x81, 0x73, 0x7a, + 0xb9, 0x5f, 0x28, 0xc0, 0xb0, 0x7e, 0x71, 0xf5, 0x6e, 0xc9, 0xa9, 0x71, 0xba, 0x29, 0xb8, 0x65, + 0x79, 0xd5, 0xc2, 0xb4, 0xef, 0xb6, 0x21, 0xea, 0xd0, 0xeb, 0xb5, 0x85, 0xb6, 0x68, 0xc5, 0x81, + 0xc5, 0x66, 0xdc, 0x4e, 0xea, 0xfc, 0x86, 0x13, 0x4b, 0x1b, 0x65, 0x1c, 0xdc, 0x4f, 0xf7, 0xc0, + 0x80, 0x6c, 0x44, 0x9f, 0x72, 0x00, 0xd2, 0x7c, 0x1f, 0x21, 0x4a, 0xd7, 0x6c, 0x24, 0x83, 0xe8, + 0xa9, 0x4a, 0x9a, 0xd3, 0x59, 0xc1, 0xb1, 0xc6, 0x17, 0x25, 0xd0, 0x17, 0xd2, 0xc1, 0x5d, 0xb2, + 0x77, 0xf9, 0x7a, 0x95, 0x32, 0xbe, 0xc4, 0xb8, 0xa7, 0x2e, 0x2f, 0x06, 0xc3, 0x82, 0x17, 0xb5, + 0xde, 0x36, 0x64, 0x1a, 0x9a, 0x3d, 0xf7, 0xb0, 0xca, 0x6c, 0x4b, 0x8d, 0x31, 0x05, 0xc2, 0x29, + 0x43, 0xf7, 0x39, 0x18, 0x35, 0x5f, 0x06, 0x6a, 0x11, 0x6c, 0xec, 0x26, 0x84, 0xfb, 0x0a, 0x86, + 0xb9, 0x45, 0x30, 0x43, 0x01, 0x98, 0xc3, 0xdd, 0x37, 0xa9, 0x1e, 0xa0, 0xc4, 0xcb, 0x21, 0xdc, + 0xf3, 0x4f, 0xe8, 0x8e, 0xae, 0x6e, 0x36, 0xd3, 0xc7, 0x61, 0x90, 0xfd, 0xc3, 0x5e, 0xf4, 0x1e, + 0x5b, 0x41, 0xe3, 0x74, 0x9c, 0xe2, 0x55, 0x67, 0x3a, 0xc1, 0x0d, 0xc9, 0x08, 0xa7, 0x3c, 0xdd, + 0x10, 0xc6, 0xb3, 0xd8, 0xe8, 0x83, 0x30, 0x1c, 0xcb, 0x63, 0x35, 0xbd, 0x86, 0x75, 0xc8, 0xe3, + 0x97, 0xf9, 0x6c, 0xcb, 0x5a, 0x77, 0x6c, 0x10, 0x73, 0x57, 0xa1, 0xcf, 0xea, 0x12, 0xba, 0xdf, + 0x76, 0x60, 0x90, 0x45, 0xcd, 0x6a, 0x91, 0xd7, 0x4c, 0xbb, 0xf4, 0x1c, 0xb0, 0xea, 0x31, 0xf4, + 0x73, 0xfb, 0x5a, 0x66, 0x9b, 0x58, 0x90, 0x32, 0xbc, 0x66, 0x5a, 0x2a, 0x65, 0xb8, 0x21, 0x1f, + 0x63, 0xc9, 0xc9, 0xfd, 0x4c, 0x01, 0xfa, 0x16, 0x83, 0x56, 0xfb, 0xcf, 0x7d, 0xdd, 0xae, 0x15, + 0xe8, 0x5d, 0x4c, 0x48, 0xd3, 0x2c, 0x2f, 0x37, 0x3c, 0xf3, 0xa4, 0x5e, 0x5a, 0xae, 0x64, 0x96, + 0x96, 0xc3, 0xde, 0x8e, 0x4c, 0xc6, 0x12, 0xfe, 0xdd, 0xf4, 0x2a, 0xda, 0xb3, 0x30, 0xb8, 0xec, + 0x6d, 0x90, 0xc6, 0x12, 0xd9, 0x65, 0x17, 0xc7, 0x78, 0x62, 0x80, 0x93, 0x1a, 0xf6, 0x46, 0x10, + 0x7f, 0x0e, 0x46, 0x19, 0xb6, 0x7a, 0x19, 0xa8, 0xe5, 0x40, 0xd2, 0xda, 0x3c, 0x8e, 0x69, 0x39, + 0x68, 0x75, 0x79, 0x34, 0x2c, 0x77, 0x0a, 0x86, 0x52, 0x2a, 0x87, 0xe0, 0xfa, 0xb3, 0x02, 0x8c, + 0x18, 0x6e, 0x6a, 0x23, 0x78, 0xe7, 0xdc, 0x35, 0x78, 0x67, 0x04, 0xd3, 0x0a, 0x0f, 0x3a, 0x98, + 0xd6, 0x73, 0xf2, 0xc1, 0x34, 0xf3, 0x21, 0xf5, 0x1e, 0xea, 0x21, 0x35, 0xa0, 0x77, 0xd9, 0x0f, + 0xb6, 0x0e, 0x27, 0x67, 0xe2, 0x4a, 0xd8, 0xea, 0x90, 0x33, 0x65, 0x0a, 0xc4, 0xbc, 0x4d, 0x6a, + 0x2e, 0x3d, 0xf9, 0x9a, 0x8b, 0xfb, 0x29, 0x07, 0x86, 0x57, 0xbc, 0xc0, 0xdf, 0x24, 0x71, 0xc2, + 0xf6, 0x55, 0x72, 0xac, 0x17, 0x88, 0x86, 0xbb, 0x5c, 0x85, 0xff, 0xa4, 0x03, 0xa7, 0x56, 0x48, + 0x33, 0xf4, 0x5f, 0xf3, 0xd2, 0x5c, 0x47, 0x3a, 0xf6, 0xba, 0x9f, 0x88, 0xd4, 0x2e, 0x35, 0xf6, + 0xab, 0x7e, 0x82, 0x29, 0xfc, 0x2e, 0x3e, 0x58, 0x96, 0xcb, 0x4f, 0x0d, 0x34, 0xed, 0x52, 0x5b, + 0x9a, 0xc5, 0x28, 0x1b, 0x70, 0x8a, 0xe3, 0xfe, 0xb6, 0x03, 0xfd, 0x7c, 0x10, 0x2a, 0x3d, 0xd4, + 0xe9, 0x42, 0xbb, 0x0e, 0x45, 0xd6, 0x4f, 0xec, 0xea, 0x05, 0x0b, 0xea, 0x0f, 0x25, 0xc7, 0xdf, + 0x41, 0xf6, 0x2f, 0xe6, 0x0c, 0x98, 0xd9, 0xe2, 0xdd, 0x9a, 0x56, 0x69, 0x9e, 0xa9, 0xd9, 0xc2, + 0xa0, 0x58, 0xb4, 0xba, 0x5f, 0xef, 0x81, 0x01, 0x55, 0x01, 0x8a, 0xdd, 0xcf, 0x0f, 0x82, 0x30, + 0xf1, 0x78, 0x52, 0x00, 0x97, 0xd5, 0x1f, 0xb4, 0x57, 0x81, 0x6a, 0x6a, 0x3a, 0xa5, 0xce, 0x63, + 0x6f, 0xca, 0x08, 0xd5, 0x5a, 0xb0, 0x3e, 0x08, 0xf4, 0x31, 0xe8, 0x6b, 0x50, 0xe9, 0x23, 0x45, + 0xf7, 0x0d, 0x8b, 0xc3, 0x61, 0x62, 0x4d, 0x8c, 0x44, 0xad, 0x10, 0x07, 0x62, 0xc1, 0x75, 0xe2, + 0x7d, 0x30, 0x9e, 0x1d, 0xf5, 0xdd, 0xee, 0xdc, 0x0d, 0xea, 0x37, 0xf6, 0xfe, 0xb2, 0x90, 0x9e, + 0x47, 0xef, 0xea, 0xbe, 0x08, 0x43, 0x2b, 0x24, 0x89, 0xfc, 0x0a, 0x23, 0x70, 0xb7, 0xcd, 0x75, + 0x28, 0xfd, 0xe1, 0xb3, 0x6c, 0xb3, 0x52, 0x9a, 0x31, 0xba, 0x0d, 0xd0, 0x8a, 0x42, 0x6a, 0xbf, + 0x92, 0xb6, 0x7c, 0xd8, 0x16, 0xf4, 0xe1, 0x35, 0x45, 0x93, 0x87, 0x8b, 0xd3, 0xdf, 0x58, 0xe3, + 0xe7, 0x3e, 0x03, 0xc5, 0x95, 0x76, 0x42, 0x6e, 0xdd, 0x5d, 0x62, 0xb9, 0x1f, 0x84, 0x61, 0x86, + 0x7a, 0x35, 0x6c, 0xd0, 0x53, 0x92, 0xce, 0xb4, 0x49, 0x7f, 0x67, 0x1d, 0xf4, 0x0c, 0x09, 0xf3, + 0x36, 0xfa, 0x06, 0xd4, 0xc3, 0x46, 0x55, 0x5d, 0xc8, 0x51, 0xcf, 0xf7, 0x2a, 0x83, 0x62, 0xd1, + 0xea, 0xfe, 0x72, 0x01, 0x86, 0x58, 0x47, 0x21, 0x3d, 0x76, 0xa1, 0xbf, 0xce, 0xf9, 0x88, 0x25, + 0xb1, 0x90, 0xdd, 0xa6, 0x8f, 0x5e, 0x33, 0xcd, 0x38, 0x00, 0x4b, 0x7e, 0x94, 0xf5, 0x8e, 0xe7, + 0x27, 0x94, 0x75, 0xe1, 0x78, 0x59, 0xdf, 0xe4, 0x6c, 0xb0, 0xe4, 0xe7, 0x7e, 0xb9, 0x00, 0xc0, + 0xea, 0x73, 0xf1, 0xfb, 0xa0, 0xbf, 0x08, 0xc5, 0x56, 0xdd, 0x8b, 0xb3, 0x41, 0xb7, 0xe2, 0x1a, + 0x05, 0xde, 0x11, 0x37, 0x5e, 0xd9, 0x0f, 0xcc, 0x11, 0xf5, 0xc4, 0xf2, 0xc2, 0xc1, 0x89, 0xe5, + 0xa8, 0x05, 0xfd, 0x61, 0x3b, 0xa1, 0xba, 0xa1, 0x38, 0x5c, 0x2d, 0xc4, 0x9c, 0x57, 0x39, 0x41, + 0x9e, 0x8d, 0x2d, 0x7e, 0x60, 0xc9, 0x06, 0x3d, 0x0f, 0x03, 0xad, 0x28, 0xac, 0xd1, 0xb3, 0x52, + 0x1c, 0xa7, 0x8f, 0x4a, 0xfd, 0x63, 0x4d, 0xc0, 0xef, 0x68, 0xff, 0x63, 0x85, 0xed, 0xfe, 0x64, + 0x8c, 0xaf, 0x8b, 0xd8, 0x1c, 0x13, 0x50, 0xf0, 0xa5, 0x27, 0x08, 0x04, 0x89, 0xc2, 0xe2, 0x1c, + 0x2e, 0xf8, 0x55, 0xb5, 0x8f, 0x0b, 0x5d, 0x4f, 0xde, 0x77, 0xc3, 0x50, 0xd5, 0x8f, 0x5b, 0x0d, + 0x6f, 0xf7, 0x5a, 0x8e, 0x1b, 0x6e, 0x2e, 0x6d, 0xc2, 0x3a, 0x1e, 0x7a, 0x56, 0x5c, 0x23, 0xe8, + 0x35, 0x5c, 0x2f, 0xf2, 0x1a, 0x41, 0x7a, 0xdf, 0x98, 0xdf, 0x20, 0xc8, 0xde, 0xcb, 0x2e, 0x1e, + 0xfa, 0x5e, 0x76, 0x56, 0xf3, 0xe9, 0x3b, 0x79, 0xcd, 0xe7, 0xbd, 0x30, 0x22, 0x7f, 0x32, 0x75, + 0xa4, 0x74, 0x86, 0x8d, 0x5e, 0xb9, 0x87, 0xd7, 0xf5, 0x46, 0x6c, 0xe2, 0xa6, 0x9b, 0xb6, 0xff, + 0xb0, 0x9b, 0xf6, 0x12, 0xc0, 0x46, 0xd8, 0x0e, 0xaa, 0x5e, 0xb4, 0xbb, 0x38, 0x27, 0x92, 0x0e, + 0x95, 0xa2, 0x35, 0xa3, 0x5a, 0xb0, 0x86, 0xa5, 0x6f, 0xf4, 0xc1, 0xbb, 0x6c, 0xf4, 0x0f, 0xc2, + 0x20, 0x4b, 0xd0, 0x24, 0xd5, 0xe9, 0x44, 0xa4, 0xe3, 0x1c, 0x25, 0x97, 0x4f, 0xa9, 0x1d, 0x65, + 0x49, 0x04, 0xa7, 0xf4, 0xd0, 0x87, 0x00, 0x36, 0xfd, 0xc0, 0x8f, 0xeb, 0x8c, 0xfa, 0xd0, 0x91, + 0xa9, 0xab, 0x79, 0xce, 0x2b, 0x2a, 0x58, 0xa3, 0x88, 0x5e, 0x81, 0x53, 0x24, 0x4e, 0xfc, 0xa6, + 0x97, 0x90, 0xaa, 0xba, 0x78, 0x57, 0x62, 0xbe, 0x43, 0x95, 0x22, 0x7b, 0x25, 0x8b, 0x70, 0x27, + 0x0f, 0x88, 0x3b, 0x09, 0x19, 0x6f, 0xe4, 0xc4, 0x51, 0xde, 0x48, 0xf4, 0x27, 0x0e, 0x9c, 0x8a, + 0x08, 0xcf, 0xd1, 0x88, 0xd5, 0xc0, 0xce, 0x32, 0x79, 0x59, 0xb1, 0x51, 0xfa, 0x5a, 0xd5, 0xb8, + 0xc0, 0x59, 0x2e, 0x5c, 0x51, 0x20, 0x72, 0xf6, 0x1d, 0xed, 0x77, 0xf2, 0x80, 0x9f, 0x7c, 0x6b, + 0x72, 0xb2, 0xb3, 0x04, 0xbb, 0x22, 0x4e, 0xdf, 0xbc, 0xbf, 0xf1, 0xd6, 0xe4, 0xb8, 0xfc, 0x9d, + 0x2e, 0x5a, 0xc7, 0x24, 0xe9, 0xb9, 0xd7, 0x0a, 0xab, 0x8b, 0x6b, 0x22, 0x6f, 0x4a, 0x9d, 0x7b, + 0x6b, 0x14, 0x88, 0x79, 0x1b, 0x7a, 0x1a, 0x06, 0xaa, 0x1e, 0x69, 0x86, 0x81, 0x2a, 0x62, 0xca, + 0xb4, 0xe7, 0x39, 0x01, 0xc3, 0xaa, 0x15, 0x35, 0xa0, 0xcf, 0x67, 0x26, 0xba, 0x48, 0x92, 0xb4, + 0xe0, 0x17, 0xe0, 0x26, 0xbf, 0x4c, 0x91, 0x64, 0x42, 0x58, 0xf0, 0xd0, 0xa5, 0xfe, 0xd8, 0xc9, + 0x48, 0xfd, 0xa7, 0x61, 0xa0, 0x52, 0xf7, 0x1b, 0xd5, 0x88, 0x04, 0xa5, 0x71, 0x66, 0xab, 0xb2, + 0x95, 0x98, 0x15, 0x30, 0xac, 0x5a, 0xd1, 0x5f, 0x82, 0x91, 0xb0, 0x9d, 0xb0, 0x97, 0x9c, 0x3e, + 0xff, 0xb8, 0x74, 0x8a, 0xa1, 0xb3, 0x94, 0x97, 0x55, 0xbd, 0x01, 0x9b, 0x78, 0x54, 0xd8, 0xd6, + 0xc3, 0x98, 0x15, 0x46, 0x61, 0xc2, 0xf6, 0x9c, 0x29, 0x6c, 0xaf, 0x6a, 0x6d, 0xd8, 0xc0, 0x44, + 0x5f, 0x75, 0xe0, 0x54, 0x33, 0x6b, 0xba, 0x94, 0xce, 0xb3, 0x95, 0x29, 0xdb, 0x50, 0x71, 0x33, + 0xa4, 0x79, 0x66, 0x70, 0x07, 0x18, 0x77, 0x0e, 0x82, 0x95, 0x28, 0x8a, 0x77, 0x83, 0x4a, 0x3d, + 0x0a, 0x03, 0x73, 0x78, 0x0f, 0xdb, 0xba, 0xc9, 0xc3, 0xde, 0xb2, 0x3c, 0x16, 0x33, 0x0f, 0xef, + 0xef, 0x4d, 0x9e, 0xcd, 0x6d, 0xc2, 0xf9, 0x83, 0x9a, 0x98, 0x83, 0x73, 0xf9, 0x6f, 0xea, 0xdd, + 0x74, 0xed, 0x1e, 0x5d, 0xd7, 0x9e, 0x87, 0x87, 0xbb, 0x0e, 0x8a, 0xca, 0x7c, 0xa9, 0x98, 0x39, + 0xa6, 0xcc, 0xef, 0x50, 0xa4, 0x46, 0x61, 0x58, 0xaf, 0x9e, 0xef, 0xfe, 0xdf, 0x1e, 0x80, 0xd4, + 0x43, 0x8c, 0x3c, 0x18, 0xe5, 0xde, 0xe8, 0xc5, 0xb9, 0x7b, 0xbe, 0x83, 0x3c, 0x6b, 0x10, 0xc0, + 0x19, 0x82, 0xa8, 0x09, 0x88, 0x43, 0xf8, 0xef, 0x7b, 0x89, 0x2a, 0xb2, 0x20, 0xdc, 0x6c, 0x07, + 0x11, 0x9c, 0x43, 0x98, 0xce, 0x28, 0x09, 0xb7, 0x48, 0x70, 0x1d, 0x2f, 0xdf, 0xcb, 0x45, 0x76, + 0x1e, 0x87, 0x32, 0x08, 0xe0, 0x0c, 0x41, 0xe4, 0x42, 0x1f, 0xf3, 0x4a, 0xc8, 0xb4, 0x62, 0x26, + 0x5e, 0xd8, 0x99, 0x1f, 0x63, 0xd1, 0x82, 0xbe, 0xec, 0xc0, 0xa8, 0xbc, 0x8f, 0xcf, 0xfc, 0x80, + 0x32, 0xa1, 0xf8, 0xba, 0x2d, 0x0f, 0xff, 0x15, 0x9d, 0x7a, 0x9a, 0xae, 0x67, 0x80, 0x63, 0x9c, + 0x19, 0x84, 0xfb, 0x12, 0x9c, 0xce, 0xe9, 0x6e, 0xc5, 0x96, 0xfb, 0xae, 0x03, 0x43, 0x5a, 0xd5, + 0x37, 0x74, 0x1b, 0x06, 0xc3, 0xb2, 0xf5, 0x1c, 0xb1, 0xd5, 0x72, 0x47, 0x8e, 0x98, 0x02, 0xe1, + 0x94, 0xe1, 0x61, 0x52, 0xdb, 0x72, 0x4b, 0xd4, 0x3d, 0xe0, 0x61, 0x1f, 0x39, 0xb5, 0xed, 0xdf, + 0xf5, 0x42, 0x4a, 0xe9, 0x88, 0x75, 0x22, 0xd2, 0x44, 0xb8, 0xc2, 0x81, 0x89, 0x70, 0x55, 0x18, + 0xf3, 0x58, 0x14, 0xf5, 0x1e, 0xab, 0x43, 0xf0, 0xa2, 0x9f, 0x26, 0x05, 0x9c, 0x25, 0x49, 0xb9, + 0xc4, 0x69, 0x57, 0xc6, 0xa5, 0xf7, 0xc8, 0x5c, 0xca, 0x26, 0x05, 0x9c, 0x25, 0x89, 0x5e, 0x81, + 0x52, 0x85, 0xdd, 0x76, 0xe4, 0x73, 0x5c, 0xdc, 0xbc, 0x16, 0x26, 0x6b, 0x11, 0x89, 0x49, 0x90, + 0x88, 0xb2, 0x4e, 0x8f, 0x8b, 0x55, 0x28, 0xcd, 0x76, 0xc1, 0xc3, 0x5d, 0x29, 0x50, 0x83, 0x81, + 0x85, 0x61, 0xfd, 0x64, 0x97, 0x09, 0x11, 0x11, 0x9f, 0x56, 0x06, 0x43, 0x59, 0x6f, 0xc4, 0x26, + 0x2e, 0xfa, 0x15, 0x07, 0x46, 0x1a, 0xd2, 0x51, 0x8d, 0xdb, 0x0d, 0x59, 0xa3, 0x10, 0x5b, 0xd9, + 0x7e, 0xcb, 0x3a, 0x65, 0xae, 0x4b, 0x18, 0x20, 0x6c, 0xf2, 0x76, 0xdf, 0x74, 0x60, 0x3c, 0xdb, + 0x0d, 0x6d, 0xc1, 0x63, 0x4d, 0x2f, 0xda, 0x5a, 0x0c, 0x36, 0x23, 0x76, 0x0f, 0x20, 0xe1, 0x4f, + 0x75, 0x7a, 0x33, 0x21, 0xd1, 0x9c, 0xb7, 0xcb, 0x23, 0x78, 0x45, 0xf5, 0xb5, 0x9a, 0xc7, 0x56, + 0x0e, 0x42, 0xc6, 0x07, 0xd3, 0x42, 0x65, 0x38, 0x4b, 0x11, 0x58, 0x85, 0x2d, 0x3f, 0x0c, 0x52, + 0x26, 0x05, 0xc6, 0x44, 0xe5, 0xb3, 0xad, 0xe4, 0x21, 0xe1, 0xfc, 0xbe, 0xee, 0x00, 0xf4, 0xf1, + 0x3b, 0x50, 0xee, 0xbf, 0x2d, 0x80, 0x54, 0xd2, 0xfe, 0x7c, 0x07, 0x85, 0xe8, 0x81, 0x16, 0x31, + 0x47, 0x8b, 0xf0, 0x01, 0xb0, 0x03, 0x4d, 0x94, 0xa3, 0x13, 0x2d, 0x54, 0x7b, 0x25, 0xb7, 0xfc, + 0x64, 0x36, 0xac, 0x4a, 0xcb, 0x9f, 0x69, 0xaf, 0x57, 0x04, 0x0c, 0xab, 0x56, 0xf7, 0x53, 0x0e, + 0x8c, 0xd0, 0x59, 0x36, 0x1a, 0xa4, 0x51, 0x4e, 0x48, 0x2b, 0x46, 0x31, 0x14, 0x63, 0xfa, 0x8f, + 0x3d, 0x0f, 0x56, 0x7a, 0xf5, 0x8d, 0xb4, 0xb4, 0x90, 0x01, 0x65, 0x82, 0x39, 0x2f, 0xf7, 0x3b, + 0x3d, 0x30, 0xa8, 0x16, 0xfb, 0x10, 0x71, 0x88, 0x4b, 0x69, 0xa5, 0x48, 0x2e, 0x0d, 0x4b, 0x5a, + 0x95, 0x48, 0x6a, 0xae, 0x4f, 0x07, 0xbb, 0xfc, 0x8e, 0x7d, 0x5a, 0x32, 0xf2, 0x59, 0x33, 0xe0, + 0x79, 0x4e, 0x8f, 0xa2, 0x69, 0xf8, 0x22, 0xf2, 0x79, 0x4b, 0x8f, 0x37, 0xf7, 0xda, 0x3a, 0x59, + 0x54, 0x30, 0xad, 0x7b, 0xa0, 0x39, 0xf3, 0x11, 0x91, 0xe2, 0xa1, 0x3e, 0x22, 0xf2, 0x0c, 0xf4, + 0x92, 0xa0, 0xdd, 0x64, 0x6a, 0xcb, 0x20, 0x53, 0xd7, 0x7b, 0xaf, 0x04, 0xed, 0xa6, 0x39, 0x33, + 0x86, 0x82, 0xde, 0x07, 0x43, 0x55, 0x12, 0x57, 0x22, 0x9f, 0x5d, 0x1c, 0x17, 0xfe, 0x8e, 0x47, + 0x99, 0x13, 0x29, 0x05, 0x9b, 0x1d, 0xf5, 0x0e, 0xee, 0x6b, 0xd0, 0xb7, 0xd6, 0x68, 0xd7, 0xfc, + 0x00, 0xb5, 0xa0, 0x8f, 0x5f, 0x23, 0x17, 0x27, 0xaf, 0x05, 0x1b, 0x90, 0xbf, 0xed, 0x5a, 0x2e, + 0x04, 0xbf, 0x01, 0x29, 0xf8, 0xb8, 0xff, 0xcc, 0x01, 0x6a, 0xb0, 0x2e, 0xcc, 0xa2, 0xbf, 0xda, + 0xf1, 0xcd, 0x8c, 0x9f, 0xcb, 0xf9, 0x66, 0xc6, 0x08, 0x43, 0xce, 0xf9, 0x5c, 0x46, 0x03, 0x46, + 0x98, 0x8b, 0x5e, 0x9e, 0x47, 0x42, 0xc5, 0xbd, 0x7c, 0xc8, 0x9b, 0xd7, 0x7a, 0x57, 0x21, 0x9d, + 0x75, 0x10, 0x36, 0x89, 0xbb, 0xbf, 0xd3, 0x0b, 0x9a, 0x27, 0xfb, 0x10, 0xdb, 0xfb, 0xa3, 0x99, + 0xb8, 0xc5, 0x8a, 0x95, 0xb8, 0x85, 0x0c, 0x06, 0x70, 0x91, 0x61, 0x86, 0x2a, 0xe8, 0xa0, 0xea, + 0xa4, 0xd1, 0x12, 0x2f, 0x87, 0x1a, 0xd4, 0x55, 0xd2, 0x68, 0x61, 0xd6, 0xa2, 0xee, 0x90, 0xf5, + 0x76, 0xbd, 0x43, 0x56, 0x87, 0x62, 0xcd, 0x6b, 0xd7, 0x88, 0x48, 0xdc, 0xb3, 0x10, 0xa2, 0x62, + 0x49, 0xf5, 0x3c, 0x44, 0xc5, 0xfe, 0xc5, 0x9c, 0x01, 0x7d, 0x3b, 0xeb, 0x32, 0x93, 0x41, 0xf8, + 0x1a, 0x2d, 0xbc, 0x9d, 0x2a, 0x39, 0x82, 0xbf, 0x9d, 0xea, 0x27, 0x4e, 0x99, 0xa1, 0x16, 0xf4, + 0x57, 0x78, 0xc1, 0x06, 0x71, 0xe0, 0x2f, 0xda, 0xb8, 0x24, 0xc7, 0x08, 0x72, 0x57, 0x84, 0xf8, + 0x81, 0x25, 0x1b, 0xf7, 0x22, 0x0c, 0x69, 0xb5, 0xf6, 0xe9, 0x63, 0x50, 0xb5, 0x02, 0xb4, 0xc7, + 0x30, 0xe7, 0x25, 0x1e, 0x66, 0x2d, 0xee, 0x37, 0x7b, 0x41, 0xb9, 0x84, 0xf4, 0x2b, 0x5d, 0x5e, + 0x45, 0xab, 0x6c, 0x62, 0xdc, 0x25, 0x0e, 0x03, 0x2c, 0x5a, 0xa9, 0x52, 0xd4, 0x24, 0x51, 0x4d, + 0x19, 0xa1, 0x42, 0xbe, 0x2a, 0xa5, 0x68, 0x45, 0x6f, 0xc4, 0x26, 0x2e, 0xd5, 0x68, 0x9b, 0x22, + 0xb2, 0x9b, 0xcd, 0x9b, 0x95, 0x11, 0x5f, 0xac, 0x30, 0xd0, 0xa7, 0x1c, 0x18, 0x6e, 0x6a, 0x81, + 0x60, 0x91, 0xbf, 0x67, 0x23, 0x70, 0xa1, 0x51, 0xe5, 0x79, 0x36, 0x3a, 0x04, 0x1b, 0x5c, 0xd1, + 0x02, 0x9c, 0x8a, 0x49, 0xb2, 0xba, 0x13, 0x90, 0x48, 0x5d, 0xb5, 0x16, 0x77, 0xef, 0x55, 0xd2, + 0x7c, 0x39, 0x8b, 0x80, 0x3b, 0xfb, 0xe4, 0xa6, 0x3c, 0x16, 0x8f, 0x9c, 0xf2, 0x38, 0x07, 0xe3, + 0x9b, 0x9e, 0xdf, 0x68, 0x47, 0xa4, 0x6b, 0xe2, 0xe4, 0x7c, 0xa6, 0x1d, 0x77, 0xf4, 0x60, 0xf7, + 0x36, 0x1a, 0x5e, 0x2d, 0x2e, 0xf5, 0x6b, 0xf7, 0x36, 0x28, 0x00, 0x73, 0xb8, 0xfb, 0x8f, 0x1d, + 0xe0, 0x45, 0x4f, 0xa6, 0x37, 0x37, 0xfd, 0xc0, 0x4f, 0x76, 0xd1, 0xd7, 0x1c, 0x18, 0x0f, 0xc2, + 0x2a, 0x99, 0x0e, 0x12, 0x5f, 0x02, 0xed, 0x15, 0x96, 0x66, 0xbc, 0xae, 0x65, 0xc8, 0xf3, 0x1b, + 0xf4, 0x59, 0x28, 0xee, 0x18, 0x86, 0x7b, 0x1e, 0xce, 0xe6, 0x12, 0x70, 0xdf, 0xec, 0x01, 0xb3, + 0x76, 0x0b, 0x7a, 0x11, 0x8a, 0x0d, 0x56, 0x4d, 0xc0, 0xb9, 0xc7, 0xa2, 0x3c, 0x6c, 0xad, 0x78, + 0xb9, 0x01, 0x4e, 0x09, 0xcd, 0xc1, 0x10, 0x2b, 0x08, 0x23, 0x6a, 0x3d, 0xf0, 0x37, 0xc2, 0x4d, + 0xbf, 0x67, 0xa5, 0x9a, 0xee, 0x98, 0x3f, 0xb1, 0xde, 0x0d, 0xbd, 0x0e, 0xfd, 0x1b, 0xbc, 0x2c, + 0x9e, 0xbd, 0xd0, 0x95, 0xa8, 0xb3, 0xc7, 0x94, 0x19, 0x59, 0x74, 0xef, 0x4e, 0xfa, 0x2f, 0x96, + 0x1c, 0xd1, 0x2e, 0x0c, 0x78, 0xf2, 0x99, 0xf6, 0xda, 0xca, 0xc3, 0x37, 0xf6, 0x8f, 0x48, 0xb4, + 0x90, 0xcf, 0x50, 0xb1, 0xcb, 0x64, 0xa4, 0x14, 0x0f, 0x95, 0x91, 0xf2, 0x6d, 0x07, 0x20, 0xfd, + 0x24, 0x00, 0xba, 0x05, 0x03, 0xf1, 0x65, 0xc3, 0xca, 0xb7, 0x71, 0x79, 0x5a, 0x50, 0xd4, 0x2e, + 0x18, 0x0a, 0x08, 0x56, 0xdc, 0xee, 0xe6, 0x99, 0xf8, 0x99, 0x03, 0x67, 0xf2, 0x3e, 0x5d, 0xf0, + 0x00, 0x47, 0x7c, 0x54, 0xa7, 0x84, 0xe8, 0xb0, 0x16, 0x91, 0x4d, 0xff, 0x56, 0x36, 0x69, 0x65, + 0x49, 0x36, 0xe0, 0x14, 0xc7, 0xfd, 0x5e, 0x1f, 0x28, 0xc6, 0xc7, 0xe4, 0xc4, 0x78, 0x8a, 0x1a, + 0x39, 0xb5, 0xb4, 0x5c, 0xa3, 0xc2, 0xc3, 0x0c, 0x8a, 0x45, 0x2b, 0x35, 0x74, 0x64, 0x2e, 0xb5, + 0x10, 0xd9, 0x6c, 0x17, 0xca, 0x9c, 0x6b, 0xac, 0x5a, 0xf3, 0xdc, 0x22, 0xc5, 0x13, 0x71, 0x8b, + 0xf4, 0xd9, 0x77, 0x8b, 0x3c, 0x03, 0xfd, 0x51, 0xd8, 0x20, 0xd3, 0xf8, 0x9a, 0x50, 0xdf, 0xd3, + 0x42, 0xba, 0x1c, 0x8c, 0x65, 0x7b, 0xb6, 0x86, 0xe7, 0xc0, 0xe1, 0x6a, 0x78, 0xa2, 0xef, 0x39, + 0x07, 0x78, 0x5e, 0x06, 0x6d, 0x9d, 0x09, 0xb9, 0x95, 0xac, 0x98, 0x2d, 0x72, 0x2f, 0xee, 0x9c, + 0xaf, 0x3b, 0x70, 0x8a, 0x04, 0x95, 0x68, 0x97, 0xd1, 0x11, 0xd4, 0x44, 0xe8, 0xf4, 0xba, 0x8d, + 0x97, 0xef, 0x4a, 0x96, 0x38, 0x8f, 0x8b, 0x74, 0x80, 0x71, 0xe7, 0x30, 0xdc, 0x9f, 0x14, 0xe0, + 0x74, 0x0e, 0x05, 0x76, 0x4d, 0xa6, 0x49, 0x37, 0xd0, 0x62, 0x35, 0xfb, 0xfa, 0x2c, 0x09, 0x38, + 0x56, 0x18, 0x68, 0x0d, 0xce, 0x6c, 0x35, 0xe3, 0x94, 0xca, 0x6c, 0x18, 0x24, 0xe4, 0x96, 0x7c, + 0x99, 0x64, 0x14, 0xf4, 0xcc, 0x52, 0x0e, 0x0e, 0xce, 0xed, 0x49, 0xb5, 0x0d, 0x12, 0x78, 0x1b, + 0x0d, 0x92, 0x36, 0x89, 0x4b, 0x5e, 0x4a, 0xdb, 0xb8, 0x92, 0x69, 0xc7, 0x1d, 0x3d, 0xd0, 0xe7, + 0x1c, 0x78, 0x24, 0x26, 0xd1, 0x36, 0x89, 0xca, 0x7e, 0x95, 0xcc, 0xb6, 0xe3, 0x24, 0x6c, 0x92, + 0xe8, 0x1e, 0x5d, 0x83, 0x93, 0xfb, 0x7b, 0x93, 0x8f, 0x94, 0xbb, 0x53, 0xc3, 0x07, 0xb1, 0x72, + 0x3f, 0xe7, 0xc0, 0x68, 0x99, 0x19, 0xab, 0x4a, 0xf5, 0xb5, 0x5d, 0x7a, 0xf0, 0x29, 0x55, 0x52, + 0x20, 0x23, 0xc4, 0xcc, 0x22, 0x00, 0xee, 0xab, 0x30, 0x5e, 0x26, 0x4d, 0xaf, 0x55, 0x67, 0x37, + 0x34, 0x79, 0x9a, 0xce, 0x45, 0x18, 0x8c, 0x25, 0x2c, 0xfb, 0xf1, 0x10, 0x85, 0x8c, 0x53, 0x1c, + 0xf4, 0x24, 0x4f, 0x29, 0x92, 0xf7, 0x3c, 0x06, 0xb9, 0x91, 0xc0, 0xf3, 0x90, 0x62, 0x2c, 0xdb, + 0xdc, 0x1d, 0x18, 0x4e, 0xbb, 0x93, 0x4d, 0x54, 0x83, 0xb1, 0x8a, 0x76, 0x45, 0x2a, 0x4d, 0x4e, + 0x3f, 0xfc, 0x6d, 0x2a, 0x5e, 0x10, 0xd5, 0x24, 0x82, 0xb3, 0x54, 0xdd, 0x2f, 0x16, 0x60, 0x4c, + 0x71, 0x16, 0x21, 0xaf, 0x37, 0xb2, 0x69, 0x50, 0xd8, 0x46, 0xa9, 0x13, 0x73, 0x25, 0x0f, 0x48, + 0x85, 0x7a, 0x23, 0x9b, 0x0a, 0x75, 0xac, 0xec, 0x3b, 0xa2, 0x78, 0xdf, 0x2e, 0xc0, 0x80, 0x2a, + 0xbc, 0xf2, 0x22, 0x14, 0x99, 0x1d, 0x77, 0x7f, 0xda, 0x28, 0xb3, 0x09, 0x31, 0xa7, 0x44, 0x49, + 0xb2, 0x4c, 0x8e, 0x7b, 0xae, 0x3a, 0x39, 0xc8, 0xdd, 0x6f, 0x5e, 0x94, 0x60, 0x4e, 0x09, 0x2d, + 0x41, 0x0f, 0x09, 0xaa, 0x42, 0x2d, 0x3d, 0x3a, 0x41, 0xf6, 0xd1, 0x9e, 0x2b, 0x41, 0x15, 0x53, + 0x2a, 0xac, 0xf4, 0x21, 0xd7, 0x3e, 0x32, 0x9f, 0x68, 0x10, 0xaa, 0x87, 0x68, 0x75, 0x7f, 0xa5, + 0x07, 0xfa, 0xca, 0xed, 0x0d, 0xaa, 0x60, 0x7f, 0xcb, 0x81, 0xd3, 0x3b, 0x99, 0x92, 0xac, 0xe9, + 0x96, 0xbd, 0x6e, 0xcf, 0x05, 0xa9, 0x67, 0x13, 0x3d, 0x22, 0xbf, 0x3f, 0x9d, 0xd3, 0x88, 0xf3, + 0x86, 0x63, 0x54, 0x45, 0xec, 0x39, 0x96, 0xaa, 0x88, 0xb7, 0x8e, 0x39, 0x7d, 0x7d, 0xa4, 0x5b, + 0xea, 0xba, 0xfb, 0x3b, 0x45, 0x00, 0xfe, 0x34, 0x56, 0x5b, 0xc9, 0x61, 0x7c, 0x54, 0xcf, 0xc3, + 0xb0, 0xfc, 0x20, 0x7e, 0xde, 0xd7, 0x3f, 0x16, 0xb4, 0x36, 0x6c, 0x60, 0x32, 0x83, 0x20, 0x48, + 0xa2, 0x5d, 0xae, 0x34, 0x66, 0x53, 0xd4, 0x55, 0x0b, 0xd6, 0xb0, 0xd0, 0x94, 0xe1, 0xf3, 0xe7, + 0xa1, 0xdc, 0xd1, 0x03, 0x5c, 0xf4, 0xef, 0x83, 0x51, 0xb3, 0x56, 0x83, 0xd0, 0x94, 0x54, 0xe8, + 0xd5, 0x2c, 0xf1, 0x80, 0x33, 0xd8, 0x74, 0x13, 0x57, 0xa3, 0x5d, 0xdc, 0x0e, 0x84, 0xca, 0xa4, + 0x36, 0xf1, 0x1c, 0x83, 0x62, 0xd1, 0xca, 0x2e, 0xca, 0xb3, 0xd3, 0x88, 0xc3, 0xc5, 0x65, 0xfb, + 0xf4, 0xa2, 0xbc, 0xd6, 0x86, 0x0d, 0x4c, 0xca, 0x41, 0xf8, 0xf8, 0xc0, 0x7c, 0x4d, 0x32, 0x8e, + 0xb9, 0x16, 0x8c, 0x86, 0xa6, 0x6f, 0x82, 0xe7, 0x6b, 0xbd, 0xeb, 0x90, 0x5b, 0xcf, 0xe8, 0xcb, + 0x43, 0xe6, 0x19, 0x57, 0x46, 0x86, 0x3e, 0xd5, 0x19, 0xf5, 0x4c, 0xee, 0x61, 0x33, 0xd5, 0xb0, + 0x6b, 0xb2, 0xf5, 0x1a, 0x9c, 0x69, 0x85, 0xd5, 0xb5, 0xc8, 0x0f, 0x23, 0x3f, 0xd9, 0x9d, 0x6d, + 0x78, 0x71, 0xcc, 0x36, 0xc6, 0x88, 0xa9, 0x9c, 0xac, 0xe5, 0xe0, 0xe0, 0xdc, 0x9e, 0x54, 0xbb, + 0x6f, 0x09, 0x20, 0x4b, 0x33, 0x2a, 0x72, 0xed, 0x5e, 0x22, 0x62, 0xd5, 0xea, 0x9e, 0x86, 0x53, + 0xe5, 0x76, 0xab, 0xd5, 0xf0, 0x49, 0x55, 0xf9, 0xd4, 0xdd, 0xf7, 0xc3, 0x98, 0xa8, 0x99, 0xa8, + 0x54, 0x81, 0x23, 0x55, 0xf8, 0x75, 0xff, 0xc4, 0x81, 0xb1, 0x4c, 0x52, 0x07, 0x7a, 0x3d, 0x7b, + 0x80, 0x5b, 0x71, 0x58, 0xe9, 0x67, 0x37, 0x7f, 0x49, 0x73, 0x95, 0x81, 0xba, 0x4c, 0x5e, 0xb6, + 0x76, 0x07, 0x80, 0xa5, 0xf8, 0xf2, 0x13, 0x41, 0xcf, 0x80, 0x76, 0x3f, 0x5b, 0x80, 0xfc, 0x4c, + 0x1a, 0xf4, 0xb1, 0xce, 0x05, 0x78, 0xd1, 0xe2, 0x02, 0x88, 0x54, 0x9e, 0xee, 0x6b, 0x10, 0x98, + 0x6b, 0xb0, 0x62, 0x69, 0x0d, 0x04, 0xdf, 0xce, 0x95, 0xf8, 0x5f, 0x0e, 0x0c, 0xad, 0xaf, 0x2f, + 0x2b, 0xff, 0x12, 0x86, 0x73, 0x31, 0xbf, 0xe3, 0xcc, 0xe2, 0x94, 0xb3, 0x61, 0xb3, 0xc5, 0xc3, + 0x96, 0x22, 0x9c, 0xca, 0xca, 0x57, 0x96, 0x73, 0x31, 0x70, 0x97, 0x9e, 0x68, 0x11, 0x4e, 0xeb, + 0x2d, 0x65, 0xed, 0xe3, 0x5f, 0x45, 0x51, 0x57, 0xa4, 0xb3, 0x19, 0xe7, 0xf5, 0xc9, 0x92, 0x12, + 0xae, 0x42, 0xf1, 0xb1, 0xfd, 0x0e, 0x52, 0xa2, 0x19, 0xe7, 0xf5, 0x71, 0x57, 0x61, 0x68, 0xdd, + 0x8b, 0xd4, 0xc4, 0x3f, 0x00, 0xe3, 0x95, 0xb0, 0x29, 0x5d, 0x34, 0xcb, 0x64, 0x9b, 0x34, 0xc4, + 0x94, 0x79, 0x89, 0xfe, 0x4c, 0x1b, 0xee, 0xc0, 0x76, 0xff, 0xfb, 0x05, 0x50, 0x77, 0xb6, 0x0e, + 0x71, 0xc2, 0xb4, 0x54, 0x8e, 0x61, 0xd1, 0x72, 0x8e, 0xa1, 0x92, 0xb5, 0x99, 0x3c, 0xc3, 0x24, + 0xcd, 0x33, 0xec, 0xb3, 0x9d, 0x67, 0xa8, 0x14, 0xc6, 0x8e, 0x5c, 0xc3, 0xaf, 0x38, 0x30, 0x1c, + 0x84, 0x55, 0xa2, 0x82, 0x51, 0xfd, 0x4c, 0x6b, 0x7d, 0xc5, 0x5e, 0xf2, 0x34, 0xcf, 0x99, 0x13, + 0xe4, 0x79, 0x26, 0xaa, 0x3a, 0xa2, 0xf4, 0x26, 0x6c, 0x8c, 0x03, 0xcd, 0x6b, 0x4e, 0x43, 0xee, + 0x9b, 0x7f, 0x34, 0xcf, 0x7a, 0xb8, 0xab, 0x07, 0xf0, 0x96, 0xa6, 0x37, 0x0d, 0x5a, 0xff, 0x32, + 0x7d, 0x1a, 0x62, 0x90, 0x15, 0x58, 0x53, 0x7d, 0xca, 0x85, 0x3e, 0x9e, 0xb2, 0x2a, 0x2a, 0xd8, + 0xb0, 0xc8, 0x17, 0x4f, 0x67, 0xc5, 0xa2, 0x05, 0x25, 0x32, 0xe0, 0x3d, 0x64, 0xab, 0x9e, 0xba, + 0x11, 0x50, 0xcf, 0x8f, 0x78, 0xa3, 0x17, 0x74, 0xa3, 0x74, 0xf8, 0x30, 0x46, 0xe9, 0x48, 0x57, + 0x83, 0xf4, 0x0b, 0x0e, 0x0c, 0x57, 0xb4, 0xfa, 0xe6, 0xa5, 0xa7, 0x6d, 0x7d, 0x96, 0x35, 0xaf, + 0x0c, 0x3d, 0x0f, 0xa8, 0x18, 0xf5, 0xd4, 0x0d, 0xee, 0xac, 0xe4, 0x1e, 0xb3, 0xc0, 0xd9, 0xd1, + 0x6f, 0xe5, 0xa6, 0xbe, 0x69, 0xd1, 0xcb, 0x24, 0x3e, 0x0a, 0xc3, 0x82, 0x17, 0xba, 0x0d, 0x03, + 0x32, 0xeb, 0x59, 0xe4, 0x24, 0x63, 0x1b, 0x1e, 0x6e, 0x33, 0x8c, 0x26, 0x0b, 0x75, 0x71, 0x28, + 0x56, 0x1c, 0x51, 0x1d, 0x7a, 0xaa, 0x5e, 0x4d, 0x64, 0x27, 0xaf, 0xd8, 0xa9, 0x83, 0x28, 0x79, + 0x32, 0xf3, 0x6a, 0x6e, 0x7a, 0x01, 0x53, 0x16, 0xe8, 0x56, 0x5a, 0x20, 0x7a, 0xdc, 0xda, 0xe9, + 0x6b, 0xaa, 0x49, 0xdc, 0xc7, 0xd0, 0x51, 0x6f, 0xba, 0x2a, 0x22, 0x8f, 0x7f, 0x81, 0xb1, 0x9d, + 0xb7, 0x53, 0x48, 0x91, 0x57, 0x7e, 0x48, 0xa3, 0x97, 0x94, 0x0b, 0xfb, 0x1c, 0xfc, 0xcf, 0xdb, + 0xe2, 0xc2, 0xea, 0x17, 0x64, 0x3f, 0x03, 0xdf, 0x80, 0xbe, 0x16, 0xcb, 0x62, 0x28, 0xfd, 0x82, + 0xad, 0xb3, 0x85, 0x67, 0x45, 0xf0, 0xbd, 0xc9, 0xff, 0xc7, 0x82, 0x07, 0xba, 0x02, 0xfd, 0xfc, + 0x3b, 0x07, 0x3c, 0x3b, 0x7c, 0xe8, 0xd2, 0x44, 0xf7, 0xaf, 0x25, 0xa4, 0x07, 0x05, 0xff, 0x1d, + 0x63, 0xd9, 0x17, 0x7d, 0xd1, 0x81, 0x51, 0x2a, 0x51, 0xd3, 0x0f, 0x33, 0x94, 0x90, 0x2d, 0x99, + 0x75, 0x3d, 0xa6, 0x1a, 0x89, 0x94, 0x35, 0xca, 0x4c, 0x5a, 0x34, 0xd8, 0xe1, 0x0c, 0x7b, 0xf4, + 0x06, 0x0c, 0xc4, 0x7e, 0x95, 0x54, 0xbc, 0x28, 0x2e, 0x9d, 0x3e, 0x9e, 0xa1, 0xa4, 0xb1, 0x0e, + 0xc1, 0x08, 0x2b, 0x96, 0xb9, 0x9f, 0x43, 0x3f, 0xf3, 0x80, 0x3f, 0x87, 0xfe, 0xd7, 0x1d, 0x38, + 0xcb, 0xeb, 0x72, 0x67, 0x8b, 0xb2, 0x9f, 0xbd, 0x47, 0xf7, 0x0a, 0x4b, 0x6b, 0x9f, 0xce, 0x23, + 0x89, 0xf3, 0x39, 0xb1, 0xc2, 0x9e, 0xe6, 0x77, 0x34, 0xce, 0x59, 0x8d, 0xf9, 0x1d, 0xfe, 0xdb, + 0x19, 0xe8, 0x39, 0x18, 0x6a, 0x89, 0xe3, 0xd0, 0x8f, 0x9b, 0xec, 0x92, 0x42, 0x0f, 0xbf, 0xc8, + 0xb5, 0x96, 0x82, 0xb1, 0x8e, 0x63, 0x54, 0x79, 0x7d, 0xe6, 0xa0, 0x2a, 0xaf, 0xe8, 0x3a, 0x0c, + 0x25, 0x61, 0x83, 0x44, 0xc2, 0x52, 0x2d, 0xb1, 0x1d, 0x78, 0x21, 0xef, 0xdd, 0x5a, 0x57, 0x68, + 0xa9, 0x25, 0x9b, 0xc2, 0x62, 0xac, 0xd3, 0x61, 0x89, 0xa1, 0xa2, 0xde, 0x79, 0xc4, 0x4c, 0xd8, + 0x87, 0x33, 0x89, 0xa1, 0x7a, 0x23, 0x36, 0x71, 0xd1, 0x02, 0x9c, 0x6a, 0x75, 0xd8, 0xc0, 0xfc, + 0x9a, 0x92, 0x4a, 0x27, 0xe8, 0x34, 0x80, 0x3b, 0xfb, 0x18, 0xd6, 0xef, 0x23, 0x07, 0x59, 0xbf, + 0x5d, 0x6a, 0x9e, 0x3e, 0x7a, 0x2f, 0x35, 0x4f, 0x51, 0x15, 0x1e, 0xf5, 0xda, 0x49, 0xc8, 0x6a, + 0x74, 0x98, 0x5d, 0x78, 0x8e, 0xec, 0xe3, 0x3c, 0xed, 0x76, 0x7f, 0x6f, 0xf2, 0xd1, 0xe9, 0x03, + 0xf0, 0xf0, 0x81, 0x54, 0xd0, 0x6b, 0x30, 0x40, 0x44, 0xdd, 0xd6, 0xd2, 0xcf, 0xd9, 0x52, 0x12, + 0xcc, 0x4a, 0xb0, 0x32, 0xe5, 0x91, 0xc3, 0xb0, 0xe2, 0x87, 0xd6, 0x61, 0xa8, 0x1e, 0xc6, 0xc9, + 0x74, 0xc3, 0xf7, 0x62, 0x12, 0x97, 0x1e, 0x63, 0x9b, 0x26, 0x57, 0xf7, 0xba, 0x2a, 0xd1, 0xd2, + 0x3d, 0x73, 0x35, 0xed, 0x89, 0x75, 0x32, 0x88, 0xb0, 0xc8, 0x1f, 0x4b, 0x10, 0x96, 0x51, 0x99, + 0x0b, 0x6c, 0x62, 0x4f, 0xe5, 0x51, 0x5e, 0x0b, 0xab, 0x65, 0x13, 0x5b, 0x85, 0xfe, 0x74, 0x20, + 0xce, 0xd2, 0x44, 0xcf, 0xc3, 0x70, 0x2b, 0xac, 0x96, 0x5b, 0xa4, 0xb2, 0xe6, 0x25, 0x95, 0x7a, + 0x69, 0xd2, 0xf4, 0xba, 0xad, 0x69, 0x6d, 0xd8, 0xc0, 0x44, 0x2d, 0xe8, 0x6f, 0xf2, 0xcb, 0xdb, + 0xa5, 0x27, 0x6c, 0xd9, 0x36, 0xe2, 0x36, 0x38, 0xd7, 0x17, 0xc4, 0x0f, 0x2c, 0xd9, 0xa0, 0x7f, + 0xe0, 0xc0, 0x58, 0xe6, 0xda, 0x4d, 0xe9, 0x1d, 0xd6, 0x54, 0x16, 0x93, 0xf0, 0xcc, 0x53, 0x6c, + 0xf9, 0x4c, 0xe0, 0x9d, 0x4e, 0x10, 0xce, 0x8e, 0x88, 0xaf, 0x0b, 0xab, 0xc0, 0x50, 0x7a, 0xd2, + 0xde, 0xba, 0x30, 0x82, 0x72, 0x5d, 0xd8, 0x0f, 0x2c, 0xd9, 0xa0, 0x67, 0xa0, 0x5f, 0x14, 0x4b, + 0x2b, 0x3d, 0x65, 0x86, 0x6f, 0x45, 0x4d, 0x35, 0x2c, 0xdb, 0x27, 0xde, 0x0f, 0xa7, 0x3a, 0x4c, + 0xb7, 0x23, 0x95, 0x01, 0xf8, 0x0d, 0x07, 0xf4, 0x1b, 0xb3, 0xd6, 0x3f, 0x96, 0xf0, 0x3c, 0x0c, + 0x57, 0xf8, 0x27, 0xd5, 0xf8, 0x9d, 0xdb, 0x5e, 0xd3, 0xff, 0x39, 0xab, 0xb5, 0x61, 0x03, 0xd3, + 0xbd, 0x0a, 0xa8, 0xb3, 0x92, 0xf5, 0x3d, 0xd5, 0x98, 0xf9, 0x47, 0x0e, 0x8c, 0x18, 0x3a, 0x83, + 0xf5, 0x88, 0xdf, 0x3c, 0xa0, 0xa6, 0x1f, 0x45, 0x61, 0xa4, 0x7f, 0xbb, 0x4a, 0x94, 0xee, 0x65, + 0xf7, 0x9d, 0x56, 0x3a, 0x5a, 0x71, 0x4e, 0x0f, 0xf7, 0x9f, 0xf6, 0x42, 0x9a, 0xf3, 0xab, 0xca, + 0x8d, 0x3a, 0x5d, 0xcb, 0x8d, 0x3e, 0x0b, 0x03, 0xaf, 0xc6, 0x61, 0xb0, 0x96, 0x16, 0x25, 0x55, + 0xcf, 0xe2, 0x85, 0xf2, 0xea, 0x35, 0x86, 0xa9, 0x30, 0x18, 0xf6, 0x47, 0xe7, 0xfd, 0x46, 0xd2, + 0x59, 0xb5, 0xf2, 0x85, 0x17, 0x39, 0x1c, 0x2b, 0x0c, 0xf6, 0x19, 0xab, 0x6d, 0xa2, 0x1c, 0xe3, + 0xe9, 0x67, 0xac, 0x78, 0x91, 0x7a, 0xd6, 0x86, 0x2e, 0xc2, 0xa0, 0x72, 0xaa, 0x0b, 0x4f, 0xbd, + 0x5a, 0x29, 0xe5, 0x79, 0xc7, 0x29, 0x0e, 0x53, 0x08, 0x85, 0x23, 0x56, 0xb8, 0x50, 0xca, 0x36, + 0xcc, 0x93, 0x8c, 0x6b, 0x97, 0xcb, 0x76, 0x09, 0xc6, 0x8a, 0x65, 0x5e, 0xd8, 0x73, 0xf0, 0x38, + 0xc2, 0x9e, 0x7a, 0x02, 0x7a, 0xf1, 0xb0, 0x09, 0xe8, 0xe6, 0xde, 0x1e, 0x38, 0xd4, 0xde, 0xfe, + 0x74, 0x0f, 0xf4, 0xdf, 0x20, 0x11, 0x2b, 0xd6, 0xfc, 0x0c, 0xf4, 0x6f, 0xf3, 0x7f, 0xb3, 0x37, + 0x09, 0x05, 0x06, 0x96, 0xed, 0xf4, 0xb9, 0x6d, 0xb4, 0xfd, 0x46, 0x75, 0x2e, 0x7d, 0x8b, 0xd3, + 0x3a, 0x6f, 0xb2, 0x01, 0xa7, 0x38, 0xb4, 0x43, 0x8d, 0x6a, 0xf6, 0xcd, 0xa6, 0x9f, 0x64, 0x93, + 0x80, 0x16, 0x64, 0x03, 0x4e, 0x71, 0xd0, 0x53, 0xd0, 0x57, 0xf3, 0x93, 0x75, 0xaf, 0x96, 0x8d, + 0xf2, 0x2d, 0x30, 0x28, 0x16, 0xad, 0x2c, 0x4c, 0xe4, 0x27, 0xeb, 0x11, 0x61, 0x9e, 0xdd, 0x8e, + 0x92, 0x02, 0x0b, 0x5a, 0x1b, 0x36, 0x30, 0xd9, 0x90, 0x42, 0x31, 0x33, 0x91, 0x01, 0x99, 0x0e, + 0x49, 0x36, 0xe0, 0x14, 0x87, 0xee, 0xff, 0x4a, 0xd8, 0x6c, 0xf9, 0x0d, 0x91, 0x9b, 0xab, 0xed, + 0xff, 0x59, 0x01, 0xc7, 0x0a, 0x83, 0x62, 0x53, 0x11, 0x46, 0xc5, 0x4f, 0xf6, 0x93, 0x41, 0x6b, + 0x02, 0x8e, 0x15, 0x86, 0x7b, 0x03, 0x46, 0xf8, 0x9b, 0x3c, 0xdb, 0xf0, 0xfc, 0xe6, 0xc2, 0x2c, + 0xba, 0xd2, 0x91, 0x80, 0xfe, 0x4c, 0x4e, 0x02, 0xfa, 0x59, 0xa3, 0x53, 0x67, 0x22, 0xba, 0xfb, + 0xa3, 0x02, 0x0c, 0x9c, 0xe0, 0x57, 0xd7, 0x4e, 0xfc, 0x03, 0xa2, 0xe8, 0x56, 0xe6, 0x8b, 0x6b, + 0x6b, 0x36, 0xef, 0x93, 0x1c, 0xf8, 0xb5, 0xb5, 0xff, 0x5a, 0x80, 0x73, 0x12, 0x35, 0xfd, 0x80, + 0x3e, 0xfb, 0x64, 0xd0, 0xf1, 0x2f, 0x74, 0x64, 0x2c, 0xf4, 0x9a, 0x3d, 0x6b, 0x74, 0x61, 0xb6, + 0xeb, 0x52, 0xbf, 0x96, 0x59, 0x6a, 0x6c, 0x95, 0xeb, 0xc1, 0x8b, 0xfd, 0xa7, 0x0e, 0x4c, 0xe4, + 0x2f, 0xf6, 0x09, 0x7c, 0xe4, 0xee, 0x0d, 0xf3, 0x23, 0x77, 0xbf, 0x64, 0x6f, 0x8b, 0x99, 0x53, + 0xe9, 0xf2, 0xb9, 0xbb, 0x3f, 0x76, 0xe0, 0x8c, 0xec, 0xc0, 0x4e, 0xcf, 0x19, 0x3f, 0x60, 0x89, + 0x28, 0xc7, 0xbf, 0xcd, 0x6e, 0x1b, 0xdb, 0xec, 0x65, 0x7b, 0x13, 0xd7, 0xe7, 0xd1, 0xf5, 0xe3, + 0xc0, 0x7f, 0xe4, 0x40, 0x29, 0xaf, 0xc3, 0x09, 0x3c, 0xf2, 0xd7, 0xcd, 0x47, 0x7e, 0xe3, 0x78, + 0x66, 0xde, 0xfd, 0x81, 0x97, 0xba, 0x2d, 0x14, 0x6a, 0x48, 0xbd, 0xca, 0xb1, 0x15, 0xa3, 0xe5, + 0x2c, 0xf2, 0x15, 0xb4, 0x06, 0xf4, 0xc5, 0x2c, 0x6b, 0x43, 0x6c, 0x81, 0xab, 0x36, 0xb4, 0x2d, + 0x4a, 0x4f, 0xf8, 0xd8, 0xd9, 0xff, 0x58, 0xf0, 0x70, 0xff, 0xd0, 0x81, 0xe1, 0x13, 0xfc, 0x78, + 0x65, 0x68, 0x3e, 0xe4, 0x17, 0xec, 0x3d, 0xe4, 0x2e, 0x0f, 0x76, 0xaf, 0x08, 0x1d, 0xdf, 0xf3, + 0x43, 0x9f, 0x71, 0x54, 0xa6, 0x06, 0xcf, 0x66, 0xfb, 0x90, 0xbd, 0x71, 0x1c, 0xa5, 0x9a, 0x1c, + 0xfa, 0x7a, 0xa6, 0xc4, 0x5e, 0xc1, 0x56, 0xdd, 0x9a, 0x8e, 0xd1, 0xdc, 0x43, 0xa9, 0xbd, 0xaf, + 0x38, 0x00, 0x7c, 0x9c, 0xa2, 0x42, 0x2f, 0x1d, 0xdb, 0xc6, 0xb1, 0xad, 0x14, 0x65, 0xc2, 0x87, + 0xa6, 0x04, 0x64, 0xda, 0x80, 0xb5, 0x91, 0xdc, 0x47, 0x0d, 0xbd, 0xfb, 0x2e, 0xdf, 0xf7, 0x45, + 0x07, 0xc6, 0x32, 0xc3, 0xcd, 0xe9, 0xbf, 0x69, 0x7e, 0xe7, 0xcb, 0x82, 0xae, 0x60, 0xd6, 0x6d, + 0xd5, 0xdd, 0x01, 0x7b, 0x2e, 0x18, 0x1f, 0x42, 0x45, 0xaf, 0xc3, 0xa0, 0xb4, 0xe5, 0xe5, 0xf6, + 0xb6, 0xf9, 0xbd, 0x43, 0xa5, 0xb0, 0x4b, 0x48, 0x8c, 0x53, 0x7e, 0x99, 0x44, 0xb0, 0xc2, 0xa1, + 0x12, 0xc1, 0x1e, 0xec, 0xd7, 0x12, 0xf3, 0x3d, 0xad, 0xbd, 0xc7, 0xe2, 0x69, 0x7d, 0xd4, 0xba, + 0xa7, 0xf5, 0xb1, 0x13, 0xf6, 0xb4, 0x6a, 0x61, 0xaf, 0xe2, 0x7d, 0x84, 0xbd, 0x5e, 0x87, 0x33, + 0xdb, 0xa9, 0x19, 0xa5, 0x76, 0x92, 0xa8, 0xd1, 0xf2, 0x4c, 0xae, 0x7f, 0x95, 0x9a, 0x84, 0x71, + 0x42, 0x82, 0x44, 0x33, 0xc0, 0xd2, 0x1c, 0xb4, 0x1b, 0x39, 0xe4, 0x70, 0x2e, 0x93, 0x6c, 0xfc, + 0xa2, 0xff, 0x10, 0xf1, 0x8b, 0xef, 0x38, 0x70, 0xd6, 0xeb, 0xb8, 0x12, 0x84, 0xc9, 0xa6, 0x48, + 0xa2, 0xb8, 0x69, 0x4f, 0x2f, 0x37, 0xc8, 0x8b, 0x40, 0x51, 0x5e, 0x13, 0xce, 0x1f, 0x10, 0x7a, + 0x32, 0x0d, 0x26, 0xf3, 0xcc, 0xc5, 0xfc, 0xc8, 0xef, 0xd7, 0xb3, 0x19, 0x2a, 0xc0, 0x96, 0xfe, + 0x23, 0x76, 0xed, 0x47, 0x0b, 0x59, 0x2a, 0x43, 0xf7, 0x91, 0xa5, 0x92, 0x09, 0x26, 0x0d, 0x5b, + 0x0a, 0x26, 0x05, 0x30, 0xee, 0x37, 0xbd, 0x1a, 0x59, 0x6b, 0x37, 0x1a, 0xfc, 0x8e, 0x82, 0xfc, + 0x22, 0x65, 0xae, 0x4f, 0x6a, 0x39, 0xac, 0x78, 0x8d, 0xec, 0x87, 0x7f, 0xd5, 0x5d, 0x8c, 0xc5, + 0x0c, 0x25, 0xdc, 0x41, 0x9b, 0x6e, 0x58, 0x56, 0x2c, 0x8c, 0x24, 0x74, 0xb5, 0x59, 0x2a, 0xc4, + 0x00, 0xdf, 0xb0, 0x57, 0x53, 0x30, 0xd6, 0x71, 0xd0, 0x12, 0x0c, 0x56, 0x83, 0x58, 0xdc, 0x6e, + 0x1c, 0x63, 0xc2, 0xec, 0x9d, 0x54, 0x04, 0xce, 0x5d, 0x2b, 0xab, 0x7b, 0x8d, 0x8f, 0xe6, 0xd4, + 0xa1, 0x53, 0xed, 0x38, 0xed, 0x8f, 0x56, 0x18, 0x31, 0xf1, 0xc9, 0x1f, 0x9e, 0xa1, 0xf0, 0x78, + 0x97, 0x10, 0xc8, 0xdc, 0x35, 0xf9, 0xd1, 0xa2, 0x11, 0xc1, 0x4e, 0x7c, 0xbb, 0x27, 0xa5, 0xa0, + 0x7d, 0x19, 0xf4, 0xd4, 0x81, 0x5f, 0x06, 0x65, 0x05, 0x28, 0x93, 0x86, 0x0a, 0x78, 0x5e, 0xb0, + 0x56, 0x80, 0x32, 0xcd, 0xfd, 0x13, 0x05, 0x28, 0x53, 0x00, 0xd6, 0x59, 0xa2, 0xd5, 0x6e, 0x81, + 0xdf, 0xd3, 0x4c, 0x68, 0x1c, 0x3d, 0x8c, 0xab, 0x47, 0x00, 0xcf, 0x1c, 0x18, 0x01, 0xec, 0x88, + 0x58, 0x9e, 0x3d, 0x42, 0xc4, 0xb2, 0xce, 0x4a, 0x03, 0x2e, 0xcc, 0x8a, 0x20, 0xb1, 0x05, 0x8b, + 0x85, 0x95, 0x5d, 0xe0, 0xb9, 0x94, 0xec, 0x5f, 0xcc, 0x19, 0x74, 0x4d, 0x11, 0x3e, 0x7f, 0xcf, + 0x29, 0xc2, 0x54, 0x3c, 0xa7, 0x70, 0x56, 0x63, 0xb2, 0x28, 0xc4, 0x73, 0x0a, 0xc6, 0x3a, 0x4e, + 0x36, 0xfe, 0xf7, 0xf0, 0xb1, 0xc5, 0xff, 0x26, 0x4e, 0x20, 0xfe, 0xf7, 0xc8, 0xa1, 0xe3, 0x7f, + 0xb7, 0xe0, 0x74, 0x2b, 0xac, 0xce, 0xf9, 0x71, 0xd4, 0x66, 0x97, 0xb6, 0x66, 0xda, 0xd5, 0x1a, + 0x49, 0x58, 0x00, 0x71, 0xe8, 0xd2, 0x3b, 0xf5, 0x41, 0xb6, 0xd8, 0x8b, 0x2c, 0xdf, 0xd1, 0x4c, + 0x07, 0xe6, 0x0c, 0x60, 0x79, 0xa4, 0x39, 0x8d, 0x38, 0x8f, 0x85, 0x1e, 0x79, 0x7c, 0xfc, 0x64, + 0x22, 0x8f, 0x1f, 0x80, 0x81, 0xb8, 0xde, 0x4e, 0xaa, 0xe1, 0x4e, 0xc0, 0xc2, 0xcb, 0x83, 0x33, + 0xef, 0x50, 0xce, 0x59, 0x01, 0xbf, 0xb3, 0x37, 0x39, 0x2e, 0xff, 0xd7, 0xfc, 0xb2, 0x02, 0x82, + 0xbe, 0xd1, 0xe5, 0x46, 0x8a, 0x7b, 0x9c, 0x37, 0x52, 0xce, 0x1f, 0xe9, 0x36, 0x4a, 0x5e, 0x78, + 0xf5, 0x89, 0xb7, 0x5d, 0x78, 0xf5, 0x6b, 0x0e, 0x8c, 0x6c, 0xeb, 0x4e, 0x70, 0x11, 0x02, 0xb6, + 0x90, 0x8a, 0x62, 0xf8, 0xd6, 0x67, 0x5c, 0x2a, 0xe7, 0x0c, 0xd0, 0x9d, 0x2c, 0x00, 0x9b, 0x23, + 0xc9, 0x49, 0x93, 0x79, 0xf2, 0x41, 0xa5, 0xc9, 0xbc, 0xc1, 0xe4, 0x98, 0x34, 0x72, 0x59, 0x5c, + 0xd8, 0x6e, 0x96, 0xac, 0x94, 0x89, 0x2a, 0x49, 0x56, 0xe7, 0x87, 0xbe, 0xe0, 0xc0, 0xb8, 0xb4, + 0xcb, 0x44, 0x10, 0x2b, 0x16, 0x79, 0x7e, 0x36, 0xcd, 0x41, 0x96, 0x28, 0xbe, 0x9e, 0xe1, 0x83, + 0x3b, 0x38, 0x53, 0xa9, 0xae, 0xd2, 0xaa, 0x6a, 0x31, 0x4b, 0x67, 0x15, 0x3a, 0xcc, 0x74, 0x0a, + 0xc6, 0x3a, 0x0e, 0xfa, 0xa6, 0xfa, 0xdc, 0xf7, 0x33, 0x4c, 0xa0, 0xbf, 0x64, 0x59, 0x37, 0xb5, + 0xf1, 0xcd, 0x6f, 0xf4, 0x25, 0x07, 0xc6, 0x77, 0x32, 0x0e, 0x0d, 0x91, 0xe8, 0x88, 0xed, 0xbb, + 0x4a, 0xf8, 0x72, 0x67, 0xa1, 0xb8, 0x63, 0x04, 0xe8, 0x36, 0x80, 0xa7, 0x1c, 0xdd, 0x22, 0x21, + 0x72, 0xd9, 0x66, 0xf0, 0x80, 0x5f, 0xd5, 0x4a, 0x7f, 0x63, 0x8d, 0xdf, 0x7d, 0xe7, 0x38, 0xbc, + 0xad, 0xbe, 0xa4, 0xfe, 0x5f, 0x4e, 0xc3, 0xa8, 0x19, 0x9f, 0x42, 0xef, 0x32, 0xeb, 0xe1, 0x5f, + 0xc8, 0x96, 0x16, 0x1f, 0x91, 0xf8, 0x46, 0x79, 0x71, 0xa3, 0xfe, 0x77, 0xe1, 0x58, 0xeb, 0x7f, + 0xf7, 0x9c, 0x4c, 0xfd, 0xef, 0xf1, 0xe3, 0xa8, 0xff, 0x7d, 0xea, 0x48, 0xf5, 0xbf, 0xb5, 0xfa, + 0xeb, 0xbd, 0x77, 0xa9, 0xbf, 0x3e, 0x0d, 0x63, 0xf2, 0xfe, 0x0a, 0x11, 0x85, 0x9d, 0x79, 0xe8, + 0xfa, 0xbc, 0xe8, 0x32, 0x36, 0x6b, 0x36, 0xe3, 0x2c, 0x3e, 0xfa, 0xbc, 0x03, 0xc5, 0x80, 0xf5, + 0xec, 0xb3, 0xf5, 0x31, 0x14, 0x73, 0x6b, 0x31, 0x83, 0x59, 0x08, 0x25, 0x99, 0xb1, 0x5b, 0x64, + 0xb0, 0x3b, 0xf2, 0x1f, 0xcc, 0x47, 0x80, 0x5e, 0x81, 0x52, 0xb8, 0xb9, 0xd9, 0x08, 0xbd, 0x6a, + 0x5a, 0xa4, 0x5c, 0xc6, 0xd6, 0xf9, 0xfd, 0x43, 0x55, 0x49, 0x73, 0xb5, 0x0b, 0x1e, 0xee, 0x4a, + 0x01, 0x7d, 0x87, 0xaa, 0x22, 0x49, 0x18, 0x91, 0x6a, 0xea, 0x9d, 0x19, 0x64, 0x73, 0x26, 0xd6, + 0xe7, 0x5c, 0x36, 0xf9, 0xf0, 0xd9, 0xab, 0x87, 0x92, 0x69, 0xc5, 0xd9, 0x61, 0xa1, 0x08, 0xce, + 0xb5, 0xf2, 0x9c, 0x43, 0xb1, 0xb8, 0x75, 0x73, 0x90, 0x8b, 0x4a, 0xbe, 0xba, 0xe7, 0x72, 0xdd, + 0x4b, 0x31, 0xee, 0x42, 0x59, 0x2f, 0x5f, 0x3e, 0x70, 0x32, 0xe5, 0xcb, 0x3f, 0x0e, 0x50, 0x91, + 0xb5, 0xa0, 0xa4, 0xbb, 0x61, 0xc9, 0xca, 0x75, 0x10, 0x4e, 0x53, 0xfb, 0x56, 0xa2, 0x62, 0x83, + 0x35, 0x96, 0xe8, 0xff, 0xe4, 0x56, 0xda, 0xe7, 0x3e, 0x95, 0x9a, 0xf5, 0x3d, 0xf1, 0xb6, 0xab, + 0xb6, 0xff, 0x0f, 0x1d, 0x98, 0xe0, 0x3b, 0x2f, 0xab, 0xce, 0x53, 0x65, 0x42, 0xdc, 0x4f, 0xb1, + 0x9d, 0x7e, 0xc1, 0x32, 0xd1, 0xca, 0x06, 0x57, 0x16, 0xac, 0x3d, 0x60, 0x24, 0xe8, 0x2b, 0x39, + 0x46, 0xc4, 0x98, 0x2d, 0x2f, 0x65, 0x7e, 0x95, 0xf6, 0xd3, 0xfb, 0x87, 0xb1, 0x1b, 0xfe, 0x49, + 0x57, 0x27, 0x2a, 0x62, 0xc3, 0xfb, 0x6b, 0xc7, 0xe4, 0x44, 0xd5, 0x4b, 0xc9, 0x1f, 0xc9, 0x95, + 0xfa, 0x45, 0x07, 0xc6, 0xbd, 0x4c, 0xba, 0x04, 0xf3, 0xfc, 0x58, 0xf1, 0x42, 0x4d, 0x47, 0x69, + 0x0e, 0x06, 0x53, 0xeb, 0xb2, 0x99, 0x19, 0xb8, 0x83, 0xf9, 0xc4, 0x67, 0x1c, 0xfe, 0xfd, 0x99, + 0xae, 0x7a, 0xd1, 0x86, 0xa9, 0x17, 0x2d, 0xdb, 0xfc, 0x02, 0x86, 0xae, 0xa0, 0xfd, 0xaa, 0x03, + 0x67, 0xf2, 0xc4, 0x76, 0xce, 0x90, 0x3e, 0x62, 0x0e, 0xc9, 0xa2, 0xf1, 0xa1, 0x0f, 0xc8, 0x4e, + 0xd9, 0xff, 0x3f, 0x1a, 0xd4, 0x82, 0x69, 0x09, 0x69, 0x59, 0x4f, 0xae, 0x0d, 0xa0, 0xcf, 0x0f, + 0x1a, 0x7e, 0x40, 0xc4, 0x45, 0x3a, 0x9b, 0xa6, 0x98, 0xf8, 0xcc, 0x06, 0xa5, 0x8e, 0x05, 0x97, + 0x07, 0x1c, 0x5b, 0xcb, 0x7e, 0x42, 0xa8, 0xf7, 0xe4, 0x3f, 0x21, 0xb4, 0x03, 0x83, 0x3b, 0x7e, + 0x52, 0x67, 0x39, 0x01, 0x22, 0x64, 0x65, 0xe1, 0x02, 0x1a, 0x25, 0x97, 0xce, 0xfd, 0xa6, 0x64, + 0x80, 0x53, 0x5e, 0xe8, 0x22, 0x67, 0xcc, 0x52, 0x6a, 0xb3, 0xb9, 0x8e, 0x37, 0x65, 0x03, 0x4e, + 0x71, 0xe8, 0x62, 0x0d, 0xd3, 0x5f, 0xb2, 0xd0, 0x8c, 0x28, 0x46, 0x6a, 0xa3, 0xc8, 0x9c, 0xa0, + 0xc8, 0xaf, 0x79, 0xde, 0xd4, 0x78, 0x60, 0x83, 0xa3, 0xaa, 0x07, 0x3b, 0xd0, 0xb5, 0x1e, 0xec, + 0x6d, 0xa6, 0x85, 0x24, 0x7e, 0xd0, 0x26, 0xab, 0x81, 0x48, 0xc4, 0x5d, 0xb6, 0x73, 0x29, 0x95, + 0xd3, 0xe4, 0x76, 0x65, 0xfa, 0x1b, 0x6b, 0xfc, 0xb4, 0xc8, 0xc1, 0xd0, 0x81, 0x91, 0x83, 0xd4, + 0x73, 0x30, 0x6c, 0xdd, 0x73, 0x90, 0x90, 0x96, 0x15, 0xcf, 0xc1, 0xdb, 0xca, 0xc6, 0xfd, 0x53, + 0x07, 0x90, 0x52, 0x26, 0xbc, 0x78, 0x4b, 0x7c, 0xf7, 0xed, 0xf8, 0xb3, 0xdd, 0x3e, 0xe1, 0x00, + 0x04, 0xea, 0x43, 0x73, 0x76, 0x4f, 0x2d, 0x4e, 0x33, 0x1d, 0x40, 0x0a, 0xc3, 0x1a, 0x4f, 0xf7, + 0x7f, 0x38, 0x69, 0x52, 0x69, 0x3a, 0xf7, 0x13, 0xc8, 0x85, 0xda, 0x35, 0x73, 0xa1, 0xd6, 0x2d, + 0x7a, 0xa0, 0xd5, 0x34, 0xba, 0x64, 0x45, 0xfd, 0xb4, 0x00, 0x63, 0x3a, 0x72, 0x99, 0x9c, 0xc4, + 0xc3, 0xde, 0x31, 0x52, 0x1b, 0xaf, 0xdb, 0x9d, 0x6f, 0x59, 0x04, 0x32, 0xf2, 0xd2, 0x68, 0x3f, + 0x9e, 0x49, 0xa3, 0xbd, 0x69, 0x9f, 0xf5, 0xc1, 0xb9, 0xb4, 0xff, 0xcd, 0x81, 0xd3, 0x99, 0x1e, + 0x27, 0xb0, 0xc1, 0xb6, 0xcd, 0x0d, 0xf6, 0xa2, 0xf5, 0x59, 0x77, 0xd9, 0x5d, 0xdf, 0x2a, 0x74, + 0xcc, 0x96, 0x59, 0x26, 0x9f, 0x76, 0xa0, 0x98, 0x78, 0xf1, 0x96, 0x4c, 0x4b, 0xfa, 0xc8, 0xb1, + 0xec, 0x80, 0x29, 0xfa, 0xbf, 0x90, 0xce, 0x6a, 0x7c, 0x0c, 0x86, 0x39, 0xf7, 0x89, 0x4f, 0x39, + 0x00, 0x29, 0xd2, 0x83, 0x52, 0x59, 0xdd, 0xef, 0x16, 0xe0, 0x6c, 0xee, 0x36, 0x42, 0x9f, 0x55, + 0x6e, 0x26, 0xc7, 0x76, 0xd2, 0x9d, 0xc1, 0x48, 0xf7, 0x36, 0x8d, 0x18, 0xde, 0x26, 0xe1, 0x64, + 0x7a, 0x50, 0x06, 0x87, 0x10, 0xd3, 0xda, 0x62, 0xfd, 0xc4, 0x49, 0xf3, 0x38, 0x55, 0xc1, 0x99, + 0x3f, 0x83, 0xb7, 0x2b, 0xdc, 0x9f, 0x6a, 0xa9, 0xe7, 0x72, 0xa2, 0x27, 0x20, 0x2b, 0x76, 0x4c, + 0x59, 0x81, 0xed, 0x87, 0x43, 0xbb, 0x08, 0x8b, 0x8f, 0x42, 0x5e, 0x7c, 0xf4, 0x70, 0xd5, 0xea, + 0x8c, 0x7b, 0x8a, 0x85, 0x43, 0xdf, 0x53, 0x1c, 0x81, 0xa1, 0x97, 0xfd, 0x96, 0x0a, 0xe5, 0x4d, + 0x7d, 0xff, 0xc7, 0x17, 0x1e, 0xfa, 0xc1, 0x8f, 0x2f, 0x3c, 0xf4, 0xa3, 0x1f, 0x5f, 0x78, 0xe8, + 0x13, 0xfb, 0x17, 0x9c, 0xef, 0xef, 0x5f, 0x70, 0x7e, 0xb0, 0x7f, 0xc1, 0xf9, 0xd1, 0xfe, 0x05, + 0xe7, 0x3f, 0xec, 0x5f, 0x70, 0xfe, 0xd6, 0x7f, 0xbc, 0xf0, 0xd0, 0xcb, 0x03, 0x72, 0x62, 0xff, + 0x3f, 0x00, 0x00, 0xff, 0xff, 0xb3, 0xba, 0x03, 0x3b, 0x06, 0xd0, 0x00, 0x00, } func (m *Amount) Marshal() (dAtA []byte, err error) { @@ -6671,6 +6700,44 @@ func (m *ClusterWorkflowTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, er return len(dAtA) - i, nil } +func (m *Column) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Column) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Column) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0x1a + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *Condition) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -14290,6 +14357,21 @@ func (m *ClusterWorkflowTemplateList) Size() (n int) { return n } +func (m *Column) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Key) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *Condition) Size() (n int) { if m == nil { return 0 @@ -17252,6 +17334,18 @@ func (this *ClusterWorkflowTemplateList) String() string { }, "") return s } +func (this *Column) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Column{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func (this *Condition) String() string { if this == nil { return "nil" @@ -18864,7 +18958,7 @@ func (this *WorkflowSpec) String() string { `AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`, `Executor:` + strings.Replace(this.Executor.String(), "ExecutorConfig", "ExecutorConfig", 1) + `,`, `TTLStrategy:` + strings.Replace(this.TTLStrategy.String(), "TTLStrategy", "TTLStrategy", 1) + `,`, - `PodDisruptionBudget:` + strings.Replace(fmt.Sprintf("%v", this.PodDisruptionBudget), "PodDisruptionBudgetSpec", "v1beta1.PodDisruptionBudgetSpec", 1) + `,`, + `PodDisruptionBudget:` + strings.Replace(fmt.Sprintf("%v", this.PodDisruptionBudget), "PodDisruptionBudgetSpec", "v12.PodDisruptionBudgetSpec", 1) + `,`, `Metrics:` + strings.Replace(this.Metrics.String(), "Metrics", "Metrics", 1) + `,`, `Shutdown:` + fmt.Sprintf("%v", this.Shutdown) + `,`, `WorkflowTemplateRef:` + strings.Replace(this.WorkflowTemplateRef.String(), "WorkflowTemplateRef", "WorkflowTemplateRef", 1) + `,`, @@ -24283,6 +24377,152 @@ func (m *ClusterWorkflowTemplateList) Unmarshal(dAtA []byte) error { } return nil } +func (m *Column) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Column: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Column: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Condition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -42814,7 +43054,7 @@ func (m *WorkflowSpec) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.PodDisruptionBudget == nil { - m.PodDisruptionBudget = &v1beta1.PodDisruptionBudgetSpec{} + m.PodDisruptionBudget = &v12.PodDisruptionBudgetSpec{} } if err := m.PodDisruptionBudget.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/pkg/apis/workflow/v1alpha1/generated.proto b/pkg/apis/workflow/v1alpha1/generated.proto index 5d18d2b64855..9f8b59a78198 100644 --- a/pkg/apis/workflow/v1alpha1/generated.proto +++ b/pkg/apis/workflow/v1alpha1/generated.proto @@ -6,7 +6,7 @@ syntax = "proto2"; package jackfan.us.kg.argoproj.argo_workflows.v3.pkg.apis.workflow.v1alpha1; import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/policy/v1beta1/generated.proto"; +import "k8s.io/api/policy/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; @@ -371,6 +371,20 @@ message ClusterWorkflowTemplateList { repeated ClusterWorkflowTemplate items = 2; } +// Column is a custom column that will be exposed in the Workflow List View. +// +patchStrategy=merge +// +patchMergeKey=name +message Column { + // The name of this column, e.g., "Workflow Completed". + optional string name = 1; + + // The type of this column, "label" or "annotation". + optional string type = 2; + + // The key of the label or annotation, e.g., "workflows.argoproj.io/completed". + optional string key = 3; +} + message Condition { // Type is the type of condition optional string type = 1; @@ -860,7 +874,7 @@ message Link { // The name of the link, E.g. "Workflow Logs" or "Pod Logs" optional string name = 1; - // "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs" or "chat" + // "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs", "workflow-list" or "chat" optional string scope = 2; // The URL. Can contain "${metadata.namespace}", "${metadata.name}", "${status.startedAt}", "${status.finishedAt}" or any other element in workflow yaml, e.g. "${workflow.metadata.annotations.userDefinedKey}" @@ -988,6 +1002,8 @@ message NodeStatus { // Phase a simple, high-level summary of where the node is in its lifecycle. // Can be used as a state machine. + // Will be one of these values "Pending", "Running" before the node is completed, or "Succeeded", + // "Skipped", "Failed", "Error", or "Omitted" as a final state. optional string phase = 7; // BoundaryID indicates the node ID of the associated template root node in which this node belongs to @@ -1854,8 +1870,6 @@ message WorkflowSpec { // VolumeClaimTemplates is a list of claims that containers are allowed to reference. // The Workflow controller will create the claims at the beginning of the workflow // and delete the claims upon completion of the workflow - // +patchStrategy=merge - // +patchMergeKey=name repeated k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 6; // Parallelism limits the max total parallel pods that can execute at the same time in a workflow @@ -1956,7 +1970,7 @@ message WorkflowSpec { // Controller will automatically add the selector with workflow name, if selector is empty. // Optional: Defaults to empty. // +optional - optional k8s.io.api.policy.v1beta1.PodDisruptionBudgetSpec podDisruptionBudget = 31; + optional k8s.io.api.policy.v1.PodDisruptionBudgetSpec podDisruptionBudget = 31; // Metrics are a list of metrics emitted from this Workflow optional Metrics metrics = 32; @@ -2000,6 +2014,8 @@ message WorkflowSpec { // WorkflowStatus contains overall status information about a workflow message WorkflowStatus { // Phase a simple, high-level summary of where the workflow is in its lifecycle. + // Will be "" (Unknown), "Pending", or "Running" before the workflow is completed, and "Succeeded", + // "Failed" or "Error" once the workflow has completed. optional string phase = 1; // Time at which this workflow started diff --git a/pkg/apis/workflow/v1alpha1/info.go b/pkg/apis/workflow/v1alpha1/info.go index 1a17e5af04ce..19390e43172b 100644 --- a/pkg/apis/workflow/v1alpha1/info.go +++ b/pkg/apis/workflow/v1alpha1/info.go @@ -6,8 +6,20 @@ package v1alpha1 type Link struct { // The name of the link, E.g. "Workflow Logs" or "Pod Logs" Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs" or "chat" + // "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs", "workflow-list" or "chat" Scope string `json:"scope" protobuf:"bytes,2,opt,name=scope"` // The URL. Can contain "${metadata.namespace}", "${metadata.name}", "${status.startedAt}", "${status.finishedAt}" or any other element in workflow yaml, e.g. "${workflow.metadata.annotations.userDefinedKey}" URL string `json:"url" protobuf:"bytes,3,opt,name=url"` } + +// Column is a custom column that will be exposed in the Workflow List View. +// +patchStrategy=merge +// +patchMergeKey=name +type Column struct { + // The name of this column, e.g., "Workflow Completed". + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + // The type of this column, "label" or "annotation". + Type string `json:"type" protobuf:"bytes,2,opt,name=type"` + // The key of the label or annotation, e.g., "workflows.argoproj.io/completed". + Key string `json:"key" protobuf:"bytes,3,opt,name=key"` +} diff --git a/pkg/apis/workflow/v1alpha1/openapi_generated.go b/pkg/apis/workflow/v1alpha1/openapi_generated.go index f03e86d9b72a..569faad6f886 100644 --- a/pkg/apis/workflow/v1alpha1/openapi_generated.go +++ b/pkg/apis/workflow/v1alpha1/openapi_generated.go @@ -44,6 +44,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ClientCertAuth": schema_pkg_apis_workflow_v1alpha1_ClientCertAuth(ref), "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ClusterWorkflowTemplate": schema_pkg_apis_workflow_v1alpha1_ClusterWorkflowTemplate(ref), "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ClusterWorkflowTemplateList": schema_pkg_apis_workflow_v1alpha1_ClusterWorkflowTemplateList(ref), + "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Column": schema_pkg_apis_workflow_v1alpha1_Column(ref), "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Condition": schema_pkg_apis_workflow_v1alpha1_Condition(ref), "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ContainerNode": schema_pkg_apis_workflow_v1alpha1_ContainerNode(ref), "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ContainerSetRetryStrategy": schema_pkg_apis_workflow_v1alpha1_ContainerSetRetryStrategy(ref), @@ -1579,6 +1580,50 @@ func schema_pkg_apis_workflow_v1alpha1_ClusterWorkflowTemplateList(ref common.Re } } +func schema_pkg_apis_workflow_v1alpha1_Column(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Column is a custom column that will be exposed in the Workflow List View.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "The name of this column, e.g., \"Workflow Completed\".", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "type": { + SchemaProps: spec.SchemaProps{ + Description: "The type of this column, \"label\" or \"annotation\".", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "key": { + SchemaProps: spec.SchemaProps{ + Description: "The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\".", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "type", "key"}, + }, + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge", + }, + }, + }, + } +} + func schema_pkg_apis_workflow_v1alpha1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -3554,7 +3599,7 @@ func schema_pkg_apis_workflow_v1alpha1_Link(ref common.ReferenceCallback) common }, "scope": { SchemaProps: spec.SchemaProps{ - Description: "\"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\" or \"chat\"", + Description: "\"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\"", Default: "", Type: []string{"string"}, Format: "", @@ -3975,7 +4020,7 @@ func schema_pkg_apis_workflow_v1alpha1_NodeStatus(ref common.ReferenceCallback) }, "phase": { SchemaProps: spec.SchemaProps{ - Description: "Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine.", + Description: "Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state.", Type: []string{"string"}, Format: "", }, @@ -7174,12 +7219,6 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref common.ReferenceCallback }, }, "volumeClaimTemplates": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, SchemaProps: spec.SchemaProps{ Description: "VolumeClaimTemplates is a list of claims that containers are allowed to reference. The Workflow controller will create the claims at the beginning of the workflow and delete the claims upon completion of the workflow", Type: []string{"array"}, @@ -7384,7 +7423,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref common.ReferenceCallback "podDisruptionBudget": { SchemaProps: spec.SchemaProps{ Description: "PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow's Pods. Controller will automatically add the selector with workflow name, if selector is empty. Optional: Defaults to empty.", - Ref: ref("k8s.io/api/policy/v1beta1.PodDisruptionBudgetSpec"), + Ref: ref("k8s.io/api/policy/v1.PodDisruptionBudgetSpec"), }, }, "metrics": { @@ -7474,7 +7513,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Arguments", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ArtifactGC", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ArtifactRepositoryRef", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ExecutorConfig", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.LifecycleHook", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Metadata", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Metrics", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.PodGC", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.RetryStrategy", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Synchronization", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.TTLStrategy", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Template", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.VolumeClaimGC", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.WorkflowMetadata", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.WorkflowTemplateRef", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume", "k8s.io/api/policy/v1beta1.PodDisruptionBudgetSpec"}, + "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Arguments", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ArtifactGC", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ArtifactRepositoryRef", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.ExecutorConfig", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.LifecycleHook", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Metadata", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Metrics", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.PodGC", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.RetryStrategy", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Synchronization", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.TTLStrategy", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.Template", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.VolumeClaimGC", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.WorkflowMetadata", "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1.WorkflowTemplateRef", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume", "k8s.io/api/policy/v1.PodDisruptionBudgetSpec"}, } } @@ -7487,7 +7526,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowStatus(ref common.ReferenceCallba Properties: map[string]spec.Schema{ "phase": { SchemaProps: spec.SchemaProps{ - Description: "Phase a simple, high-level summary of where the workflow is in its lifecycle.", + Description: "Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed.", Type: []string{"string"}, Format: "", }, diff --git a/pkg/apis/workflow/v1alpha1/workflow_types.go b/pkg/apis/workflow/v1alpha1/workflow_types.go index 1ddd9a2ccfde..fc46ab626563 100644 --- a/pkg/apis/workflow/v1alpha1/workflow_types.go +++ b/pkg/apis/workflow/v1alpha1/workflow_types.go @@ -15,13 +15,15 @@ import ( "time" apiv1 "k8s.io/api/core/v1" - policyv1beta "k8s.io/api/policy/v1beta1" + policyv1 "k8s.io/api/policy/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/wait" + log "github.com/sirupsen/logrus" + argoerrs "github.com/argoproj/argo-workflows/v3/errors" "github.com/argoproj/argo-workflows/v3/util/slice" ) @@ -288,9 +290,7 @@ type WorkflowSpec struct { // VolumeClaimTemplates is a list of claims that containers are allowed to reference. // The Workflow controller will create the claims at the beginning of the workflow // and delete the claims upon completion of the workflow - // +patchStrategy=merge - // +patchMergeKey=name - VolumeClaimTemplates []apiv1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,6,opt,name=volumeClaimTemplates"` + VolumeClaimTemplates []apiv1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,6,opt,name=volumeClaimTemplates"` // Parallelism limits the max total parallel pods that can execute at the same time in a workflow Parallelism *int64 `json:"parallelism,omitempty" protobuf:"bytes,7,opt,name=parallelism"` @@ -390,7 +390,7 @@ type WorkflowSpec struct { // Controller will automatically add the selector with workflow name, if selector is empty. // Optional: Defaults to empty. // +optional - PodDisruptionBudget *policyv1beta.PodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty" protobuf:"bytes,31,opt,name=podDisruptionBudget"` + PodDisruptionBudget *policyv1.PodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty" protobuf:"bytes,31,opt,name=podDisruptionBudget"` // Metrics are a list of metrics emitted from this Workflow Metrics *Metrics `json:"metrics,omitempty" protobuf:"bytes,32,opt,name=metrics"` @@ -1155,7 +1155,7 @@ func (a *ArtifactLocation) Get() (ArtifactLocationType, error) { } else if a.S3 != nil { return a.S3, nil } - return nil, fmt.Errorf("You need to configure artifact storage. More information on how to do this can be found in the docs: https://argoproj.github.io/argo-workflows/configure-artifact-repository/") + return nil, fmt.Errorf("You need to configure artifact storage. More information on how to do this can be found in the docs: https://argo-workflows.readthedocs.io/en/release-3.4/configure-artifact-repository/") } // SetType sets the type of the artifact to type the argument. @@ -1649,11 +1649,11 @@ type WorkflowTemplateRef struct { ClusterScope bool `json:"clusterScope,omitempty" protobuf:"varint,2,opt,name=clusterScope"` } -func (ref *WorkflowTemplateRef) ToTemplateRef(entrypoint string) *TemplateRef { +func (ref *WorkflowTemplateRef) ToTemplateRef(template string) *TemplateRef { return &TemplateRef{ Name: ref.Name, ClusterScope: ref.ClusterScope, - Template: entrypoint, + Template: template, } } @@ -1704,6 +1704,64 @@ func (n Nodes) Find(f func(NodeStatus) bool) *NodeStatus { return nil } +// Get a NodeStatus from the hashmap of Nodes. +// Return a nil along with an error if non existent. +func (n Nodes) Get(key string) (*NodeStatus, error) { + val, ok := n[key] + if !ok { + return nil, fmt.Errorf("key was not found for %s", key) + } + return &val, nil +} + +// Check if the Nodes map has a key entry +func (n Nodes) Has(key string) bool { + _, err := n.Get(key) + return err == nil +} + +// Get the Phase of a Node +func (n Nodes) GetPhase(key string) (*NodePhase, error) { + val, err := n.Get(key) + if err != nil { + return nil, err + } + return &val.Phase, nil +} + +// Set the status of a node by key +func (n Nodes) Set(key string, status NodeStatus) { + if status.Name == "" { + log.Warnf("Name was not set for key %s", key) + } + if status.ID == "" { + log.Warnf("ID was not set for key %s", key) + } + _, ok := n[key] + if ok { + log.Tracef("Changing NodeStatus for %s to %+v", key, status) + } + n[key] = status +} + +// Delete a node from the Nodes by key +func (n Nodes) Delete(key string) { + has := n.Has(key) + if !has { + log.Warnf("Trying to delete non existent key %s", key) + return + } + delete(n, key) +} + +// Get the name of a node by key +func (n Nodes) GetName(key string) (string, error) { + val, err := n.Get(key) + if err != nil { + return "", err + } + return val.Name, nil +} func NodeWithName(name string) func(n NodeStatus) bool { return func(n NodeStatus) bool { return n.Name == name } } @@ -1735,6 +1793,33 @@ func (s Nodes) Children(parentNodeId string) Nodes { return childNodes } +// NestedChildrenStatus takes in a nodeID and returns all its children, this involves a tree search using DFS. +// This is needed to mark all children nodes as failed for example. +func (s Nodes) NestedChildrenStatus(parentNodeId string) ([]NodeStatus, error) { + parentNode, ok := s[parentNodeId] + if !ok { + return nil, fmt.Errorf("could not find %s in nodes when searching for nested children", parentNodeId) + } + + children := []NodeStatus{} + toexplore := []NodeStatus{parentNode} + + for len(toexplore) > 0 { + childNode := toexplore[0] + toexplore = toexplore[1:] + for _, nodeID := range childNode.Children { + toexplore = append(toexplore, s[nodeID]) + } + + if childNode.Name == parentNode.Name { + continue + } + children = append(children, childNode) + } + + return children, nil +} + // Filter returns the subset of the nodes that match the predicate, e.g. only failed nodes func (s Nodes) Filter(predicate func(NodeStatus) bool) Nodes { filteredNodes := make(Nodes) @@ -1769,6 +1854,8 @@ type UserContainer struct { // WorkflowStatus contains overall status information about a workflow type WorkflowStatus struct { // Phase a simple, high-level summary of where the workflow is in its lifecycle. + // Will be "" (Unknown), "Pending", or "Running" before the workflow is completed, and "Succeeded", + // "Failed" or "Error" once the workflow has completed. Phase WorkflowPhase `json:"phase,omitempty" protobuf:"bytes,1,opt,name=phase,casttype=WorkflowPhase"` // Time at which this workflow started @@ -2058,6 +2145,8 @@ type NodeStatus struct { // Phase a simple, high-level summary of where the node is in its lifecycle. // Can be used as a state machine. + // Will be one of these values "Pending", "Running" before the node is completed, or "Succeeded", + // "Skipped", "Failed", "Error", or "Omitted" as a final state. Phase NodePhase `json:"phase,omitempty" protobuf:"bytes,7,opt,name=phase,casttype=NodePhase"` // BoundaryID indicates the node ID of the associated template root node in which this node belongs to @@ -2494,7 +2583,7 @@ func (a *AzureArtifact) SetKey(key string) error { } func (a *AzureArtifact) HasLocation() bool { - return a != nil && a.Container != "" && a.Blob != "" + return a != nil && a.Endpoint != "" && a.Container != "" && a.Blob != "" } // HDFSArtifact is the location of an HDFS artifact @@ -3176,13 +3265,9 @@ func (wf *Workflow) GetTemplateByName(name string) *Template { return nil } -func (wf *Workflow) GetNodeByName(nodeName string) *NodeStatus { +func (wf *Workflow) GetNodeByName(nodeName string) (*NodeStatus, error) { nodeID := wf.NodeID(nodeName) - node, ok := wf.Status.Nodes[nodeID] - if !ok { - return nil - } - return &node + return wf.Status.Nodes.Get(nodeID) } // GetResourceScope returns the template scope of workflow. @@ -3249,6 +3334,10 @@ func resolveTemplateReference(callerScope ResourceScope, resourceName string, ca return fmt.Sprintf("%s/%s/%s", referenceScope, tmplRef.Name, tmplRef.Template), true } else if callerScope != ResourceScopeLocal { // Either a WorkflowTemplate or a ClusterWorkflowTemplate is calling a template inside itself. Template storage is needed + if caller.GetTemplate() != nil { + // If we have an inlined template here, use the inlined name + return fmt.Sprintf("%s/%s/inline/%s", callerScope, resourceName, caller.GetName()), true + } return fmt.Sprintf("%s/%s/%s", callerScope, resourceName, caller.GetTemplateName()), true } else { // A Workflow is calling a template inside itself. Template storage is not needed diff --git a/pkg/apis/workflow/v1alpha1/workflow_types_test.go b/pkg/apis/workflow/v1alpha1/workflow_types_test.go index 776212a49bec..3ac6e2b17bc1 100644 --- a/pkg/apis/workflow/v1alpha1/workflow_types_test.go +++ b/pkg/apis/workflow/v1alpha1/workflow_types_test.go @@ -328,7 +328,7 @@ func TestArtifactoryArtifact(t *testing.T) { } func TestAzureArtifact(t *testing.T) { - a := &AzureArtifact{Blob: "my-blob", AzureBlobContainer: AzureBlobContainer{Container: "my-container"}} + a := &AzureArtifact{Blob: "my-blob", AzureBlobContainer: AzureBlobContainer{Endpoint: "my-endpoint", Container: "my-container"}} assert.True(t, a.HasLocation()) assert.NoError(t, a.SetKey("my-blob")) key, err := a.GetKey() @@ -433,7 +433,7 @@ func TestArtifactLocation_Get(t *testing.T) { v, err = (&ArtifactLocation{}).Get() assert.Nil(t, v) - assert.EqualError(t, err, "You need to configure artifact storage. More information on how to do this can be found in the docs: https://argoproj.github.io/argo-workflows/configure-artifact-repository/") + assert.EqualError(t, err, "You need to configure artifact storage. More information on how to do this can be found in the docs: https://argo-workflows.readthedocs.io/en/release-3.4/configure-artifact-repository/") v, _ = (&ArtifactLocation{Azure: &AzureArtifact{}}).Get() assert.IsType(t, &AzureArtifact{}, v) @@ -727,6 +727,29 @@ func TestNodes_Children(t *testing.T) { }) } +func TestNestedChildren(t *testing.T) { + nodes := Nodes{ + "node_0": NodeStatus{Name: "node_0", Phase: NodeFailed, Children: []string{"node_1", "node_2"}}, + "node_1": NodeStatus{Name: "node_1", Phase: NodeFailed, Children: []string{"node_3"}}, + "node_2": NodeStatus{Name: "node_2", Phase: NodeRunning, Children: []string{}}, + "node_3": NodeStatus{Name: "node_3", Phase: NodeRunning, Children: []string{"node_4"}}, + "node_4": NodeStatus{Name: "node_4", Phase: NodeRunning, Children: []string{}}, + } + t.Run("Get children", func(t *testing.T) { + statuses, err := nodes.NestedChildrenStatus("node_0") + assert.NoError(t, err) + found := make(map[string]bool) + // parent is already assumed to be found + found["node_0"] = true + for _, child := range statuses { + _, ok := found[child.Name] + assert.False(t, ok, "got %s", child.Name) + found[child.Name] = true + } + assert.Equal(t, len(nodes), len(found)) + }) +} + func TestNodes_Filter(t *testing.T) { nodes := Nodes{ "node_1": NodeStatus{ID: "node_1", Phase: NodeFailed}, @@ -1533,3 +1556,107 @@ func TestGetExecSpec(t *testing.T) { assert.Equal(t, wf.GetExecSpec().Templates[0].Name, "spec-template") } + +// Check that inline tasks and steps are properly recovered from the store +func TestInlineStore(t *testing.T) { + tests := map[ResourceScope]bool{ + ResourceScopeLocal: false, + ResourceScopeNamespaced: true, + ResourceScopeCluster: true, + } + + for scope, shouldStore := range tests { + t.Run(string(scope), func(t *testing.T) { + wf := Workflow{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test", + Namespace: "test", + }, + Spec: WorkflowSpec{ + Templates: []Template{ + { + Name: "dag-template", + DAG: &DAGTemplate{ + Tasks: []DAGTask{ + { + Name: "hello1", + Inline: &Template{ + Script: &ScriptTemplate{ + Source: "abc", + }, + }, + }, { + Name: "hello2", + Inline: &Template{ + Script: &ScriptTemplate{ + Source: "def", + }, + }, + }, + }, + }, + }, + { + Name: "step-template", + Steps: []ParallelSteps{ + ParallelSteps{ + []WorkflowStep{ + { + Name: "hello1", + Inline: &Template{ + Script: &ScriptTemplate{ + Source: "ghi", + }, + }, + }, { + Name: "hello2", + Inline: &Template{ + Script: &ScriptTemplate{ + Source: "jkl", + }, + }, + }, + }, + }, + }, + }, + }, + }, + } + dagtmpl1 := &wf.Spec.Templates[0].DAG.Tasks[0] + dagtmpl2 := &wf.Spec.Templates[0].DAG.Tasks[1] + steptmpl1 := &wf.Spec.Templates[1].Steps[0].Steps[0] + steptmpl2 := &wf.Spec.Templates[1].Steps[0].Steps[1] + stored, err := wf.SetStoredTemplate(scope, "dag-template", dagtmpl1, dagtmpl1.Inline) + assert.Equal(t, shouldStore, stored, "DAG template 1 should be stored for non local scopes") + assert.Nil(t, err, "SetStoredTemplate for DAG1 should not return an error") + stored, err = wf.SetStoredTemplate(scope, "dag-template", dagtmpl2, dagtmpl2.Inline) + assert.Equal(t, shouldStore, stored, "DAG template 2 should be stored for non local scopes") + assert.Nil(t, err, "SetStoredTemplate for DAG2 should not return an error") + stored, err = wf.SetStoredTemplate(scope, "step-template", steptmpl1, steptmpl1.Inline) + assert.Equal(t, shouldStore, stored, "Step template 1 should be stored for non local scopes") + assert.Nil(t, err, "SetStoredTemplate for Step 1 should not return an error") + stored, err = wf.SetStoredTemplate(scope, "step-template", steptmpl2, steptmpl2.Inline) + assert.Equal(t, shouldStore, stored, "Step template 2 should be stored for non local scopes") + assert.Nil(t, err, "SetStoredTemplate for Step 2 should not return an error") + // For cases where we can store we should be able to retrieve and check + if shouldStore { + dagretrieved1 := wf.GetStoredTemplate(scope, "dag-template", dagtmpl1) + assert.NotNil(t, dagretrieved1, "We should retrieve DAG Template 1") + assert.Equal(t, dagtmpl1.Inline, dagretrieved1, "DAG template 1 should match what we stored") + dagretrieved2 := wf.GetStoredTemplate(scope, "dag-template", dagtmpl2) + assert.NotNil(t, dagretrieved2, "We should retrieve DAG Template 2") + assert.Equal(t, dagtmpl2.Inline, dagretrieved2, "DAG template 2 should match what we stored") + assert.NotEqual(t, dagretrieved1, dagretrieved2, "DAG template 1 and 2 should be different") + + stepretrieved1 := wf.GetStoredTemplate(scope, "step-template", steptmpl1) + assert.NotNil(t, stepretrieved1, "We should retrieve Step Template 1") + assert.Equal(t, steptmpl1.Inline, stepretrieved1, "Step template 1 should match what we stored") + stepretrieved2 := wf.GetStoredTemplate(scope, "step-template", steptmpl2) + assert.NotNil(t, stepretrieved2, "We should retrieve Step Template 2") + assert.Equal(t, steptmpl2.Inline, stepretrieved2, "Step template 2 should match what we stored") + assert.NotEqual(t, stepretrieved1, stepretrieved2, "Step template 1 and 2 should be different") + } + }) + } +} diff --git a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go index d9603259d358..307377046b2b 100644 --- a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go @@ -9,7 +9,7 @@ import ( json "encoding/json" v1 "k8s.io/api/core/v1" - v1beta1 "k8s.io/api/policy/v1beta1" + policyv1 "k8s.io/api/policy/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -852,6 +852,22 @@ func (in ClusterWorkflowTemplates) DeepCopy() ClusterWorkflowTemplates { return *out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Column) DeepCopyInto(out *Column) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Column. +func (in *Column) DeepCopy() *Column { + if in == nil { + return nil + } + out := new(Column) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Condition) DeepCopyInto(out *Condition) { *out = *in @@ -3762,7 +3778,7 @@ func (in *WorkflowSpec) DeepCopyInto(out *WorkflowSpec) { } if in.PodDisruptionBudget != nil { in, out := &in.PodDisruptionBudget, &out.PodDisruptionBudget - *out = new(v1beta1.PodDisruptionBudgetSpec) + *out = new(policyv1.PodDisruptionBudgetSpec) (*in).DeepCopyInto(*out) } if in.Metrics != nil { diff --git a/renovate.json b/renovate.json new file mode 100644 index 000000000000..ae81f0bd53be --- /dev/null +++ b/renovate.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "nix": { + "enabled": true + }, + "includePaths": [ + "**/dev/nix/flake.nix" + ] +} diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Column.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Column.md new file mode 100644 index 000000000000..b116ef8333e4 --- /dev/null +++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Column.md @@ -0,0 +1,16 @@ + + +# IoArgoprojWorkflowV1alpha1Column + +Column is a custom column that will be exposed in the Workflow List View. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**key** | **String** | The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\". | +**name** | **String** | The name of this column, e.g., \"Workflow Completed\". | +**type** | **String** | The type of this column, \"label\" or \"annotation\". | + + + diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md index 7fc838776a02..3d74e199359b 100644 --- a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md +++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**columns** | [**List<IoArgoprojWorkflowV1alpha1Column>**](IoArgoprojWorkflowV1alpha1Column.md) | | [optional] **links** | [**List<IoArgoprojWorkflowV1alpha1Link>**](IoArgoprojWorkflowV1alpha1Link.md) | | [optional] **managedNamespace** | **String** | | [optional] **modals** | **Map<String, Boolean>** | | [optional] diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Link.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Link.md index 412960fcab7d..efe16199fbaf 100644 --- a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Link.md +++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1Link.md @@ -9,7 +9,7 @@ A link to another app. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **String** | The name of the link, E.g. \"Workflow Logs\" or \"Pod Logs\" | -**scope** | **String** | \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\" or \"chat\" | +**scope** | **String** | \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\" | **url** | **String** | The URL. Can contain \"${metadata.namespace}\", \"${metadata.name}\", \"${status.startedAt}\", \"${status.finishedAt}\" or any other element in workflow yaml, e.g. \"${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}\" | diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md index 447ca4b0d245..04129681b54b 100644 --- a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md +++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md @@ -22,7 +22,7 @@ Name | Type | Description | Notes **name** | **String** | Name is unique name in the node tree used to generate the node ID | **outboundNodes** | **List<String>** | OutboundNodes tracks the node IDs which are considered \"outbound\" nodes to a template invocation. For every invocation of a template, there are nodes which we considered as \"outbound\". Essentially, these are last nodes in the execution sequence to run, before the template is considered completed. These nodes are then connected as parents to a following step. In the case of single pod steps (i.e. container, script, resource templates), this list will be nil since the pod itself is already considered the \"outbound\" node. In the case of DAGs, outbound nodes are the \"target\" tasks (tasks with no children). In the case of steps, outbound nodes are all the containers involved in the last step group. NOTE: since templates are composable, the list of outbound nodes are carried upwards when a DAG/steps template invokes another DAG/steps template. In other words, the outbound nodes of a template, will be a superset of the outbound nodes of its last children. | [optional] **outputs** | [**IoArgoprojWorkflowV1alpha1Outputs**](IoArgoprojWorkflowV1alpha1Outputs.md) | | [optional] -**phase** | **String** | Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. | [optional] +**phase** | **String** | Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state. | [optional] **podIP** | **String** | PodIP captures the IP of the pod for daemoned steps | [optional] **progress** | **String** | Progress to completion | [optional] **resourcesDuration** | **Map<String, Long>** | ResourcesDuration is indicative, but not accurate, resource duration. This is populated when the nodes completes. | [optional] diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md index 474e58847459..ba17219a72d3 100644 --- a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md +++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md @@ -27,7 +27,7 @@ Name | Type | Description | Notes **nodeSelector** | **Map<String, String>** | NodeSelector is a selector which will result in all pods of the workflow to be scheduled on the selected node(s). This is able to be overridden by a nodeSelector specified in the template. | [optional] **onExit** | **String** | OnExit is a template reference which is invoked at the end of the workflow, irrespective of the success, failure, or error of the primary io.argoproj.workflow.v1alpha1. | [optional] **parallelism** | **Integer** | Parallelism limits the max total parallel pods that can execute at the same time in a workflow | [optional] -**podDisruptionBudget** | [**IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec**](IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md) | | [optional] +**podDisruptionBudget** | [**IoK8sApiPolicyV1PodDisruptionBudgetSpec**](IoK8sApiPolicyV1PodDisruptionBudgetSpec.md) | | [optional] **podGC** | [**IoArgoprojWorkflowV1alpha1PodGC**](IoArgoprojWorkflowV1alpha1PodGC.md) | | [optional] **podMetadata** | [**IoArgoprojWorkflowV1alpha1Metadata**](IoArgoprojWorkflowV1alpha1Metadata.md) | | [optional] **podPriority** | **Integer** | Priority to apply to workflow pods. DEPRECATED: Use PodPriorityClassName instead. | [optional] diff --git a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md index 3d614b0af7bc..b82d09dbe094 100644 --- a/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md +++ b/sdks/java/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md @@ -19,7 +19,7 @@ Name | Type | Description | Notes **offloadNodeStatusVersion** | **String** | Whether on not node status has been offloaded to a database. If exists, then Nodes and CompressedNodes will be empty. This will actually be populated with a hash of the offloaded data. | [optional] **outputs** | [**IoArgoprojWorkflowV1alpha1Outputs**](IoArgoprojWorkflowV1alpha1Outputs.md) | | [optional] **persistentVolumeClaims** | [**List<io.kubernetes.client.openapi.models.V1Volume>**](io.kubernetes.client.openapi.models.V1Volume.md) | PersistentVolumeClaims tracks all PVCs that were created as part of the io.argoproj.workflow.v1alpha1. The contents of this list are drained at the end of the workflow. | [optional] -**phase** | **String** | Phase a simple, high-level summary of where the workflow is in its lifecycle. | [optional] +**phase** | **String** | Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed. | [optional] **progress** | **String** | Progress to completion | [optional] **resourcesDuration** | **Map<String, Long>** | ResourcesDuration is the total for the workflow | [optional] **startedAt** | **java.time.Instant** | | [optional] diff --git a/sdks/java/client/docs/IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md b/sdks/java/client/docs/IoK8sApiPolicyV1PodDisruptionBudgetSpec.md similarity index 88% rename from sdks/java/client/docs/IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md rename to sdks/java/client/docs/IoK8sApiPolicyV1PodDisruptionBudgetSpec.md index fd9d3151d739..db398510aa12 100644 --- a/sdks/java/client/docs/IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md +++ b/sdks/java/client/docs/IoK8sApiPolicyV1PodDisruptionBudgetSpec.md @@ -1,6 +1,6 @@ -# IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec +# IoK8sApiPolicyV1PodDisruptionBudgetSpec PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. diff --git a/sdks/python/client/argo_workflows/__init__.py b/sdks/python/client/argo_workflows/__init__.py index 93aff420e9db..35394fc5f5b6 100644 --- a/sdks/python/client/argo_workflows/__init__.py +++ b/sdks/python/client/argo_workflows/__init__.py @@ -3,7 +3,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/archived_workflow_service_api.py b/sdks/python/client/argo_workflows/api/archived_workflow_service_api.py index 5f361bcd2156..9e33baa8d163 100644 --- a/sdks/python/client/argo_workflows/api/archived_workflow_service_api.py +++ b/sdks/python/client/argo_workflows/api/archived_workflow_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/artifact_service_api.py b/sdks/python/client/argo_workflows/api/artifact_service_api.py index 52d14f3db0d1..8025c6d08d72 100644 --- a/sdks/python/client/argo_workflows/api/artifact_service_api.py +++ b/sdks/python/client/argo_workflows/api/artifact_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/cluster_workflow_template_service_api.py b/sdks/python/client/argo_workflows/api/cluster_workflow_template_service_api.py index 44a10ad40712..d165dc186087 100644 --- a/sdks/python/client/argo_workflows/api/cluster_workflow_template_service_api.py +++ b/sdks/python/client/argo_workflows/api/cluster_workflow_template_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/cron_workflow_service_api.py b/sdks/python/client/argo_workflows/api/cron_workflow_service_api.py index cce7aa805432..55dd57bae3c9 100644 --- a/sdks/python/client/argo_workflows/api/cron_workflow_service_api.py +++ b/sdks/python/client/argo_workflows/api/cron_workflow_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/event_service_api.py b/sdks/python/client/argo_workflows/api/event_service_api.py index a9334e697833..cc154abdc8ee 100644 --- a/sdks/python/client/argo_workflows/api/event_service_api.py +++ b/sdks/python/client/argo_workflows/api/event_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/event_source_service_api.py b/sdks/python/client/argo_workflows/api/event_source_service_api.py index 9c47f232088e..de897e1c0a93 100644 --- a/sdks/python/client/argo_workflows/api/event_source_service_api.py +++ b/sdks/python/client/argo_workflows/api/event_source_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/info_service_api.py b/sdks/python/client/argo_workflows/api/info_service_api.py index bdbdf4312e37..197395f619f9 100644 --- a/sdks/python/client/argo_workflows/api/info_service_api.py +++ b/sdks/python/client/argo_workflows/api/info_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/sensor_service_api.py b/sdks/python/client/argo_workflows/api/sensor_service_api.py index 382df6602135..0c39c68f122d 100644 --- a/sdks/python/client/argo_workflows/api/sensor_service_api.py +++ b/sdks/python/client/argo_workflows/api/sensor_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/workflow_service_api.py b/sdks/python/client/argo_workflows/api/workflow_service_api.py index d5e490b03bfe..0adcea31b1f3 100644 --- a/sdks/python/client/argo_workflows/api/workflow_service_api.py +++ b/sdks/python/client/argo_workflows/api/workflow_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api/workflow_template_service_api.py b/sdks/python/client/argo_workflows/api/workflow_template_service_api.py index ff914179378c..ab6a5fb86262 100644 --- a/sdks/python/client/argo_workflows/api/workflow_template_service_api.py +++ b/sdks/python/client/argo_workflows/api/workflow_template_service_api.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/api_client.py b/sdks/python/client/argo_workflows/api_client.py index f8563fd8158d..7a48d1e7d90e 100644 --- a/sdks/python/client/argo_workflows/api_client.py +++ b/sdks/python/client/argo_workflows/api_client.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/configuration.py b/sdks/python/client/argo_workflows/configuration.py index 9a697d86bdde..c53f222bf769 100644 --- a/sdks/python/client/argo_workflows/configuration.py +++ b/sdks/python/client/argo_workflows/configuration.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/exceptions.py b/sdks/python/client/argo_workflows/exceptions.py index 4cf0fedb64f2..2a79641f2774 100644 --- a/sdks/python/client/argo_workflows/exceptions.py +++ b/sdks/python/client/argo_workflows/exceptions.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/affinity.py b/sdks/python/client/argo_workflows/model/affinity.py index 9cc4e044e2fd..fa70f74f29f0 100644 --- a/sdks/python/client/argo_workflows/model/affinity.py +++ b/sdks/python/client/argo_workflows/model/affinity.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/aws_elastic_block_store_volume_source.py b/sdks/python/client/argo_workflows/model/aws_elastic_block_store_volume_source.py index d06c0e1d7f3d..192522b463a6 100644 --- a/sdks/python/client/argo_workflows/model/aws_elastic_block_store_volume_source.py +++ b/sdks/python/client/argo_workflows/model/aws_elastic_block_store_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/azure_disk_volume_source.py b/sdks/python/client/argo_workflows/model/azure_disk_volume_source.py index 28da76998365..69fe132fa4d1 100644 --- a/sdks/python/client/argo_workflows/model/azure_disk_volume_source.py +++ b/sdks/python/client/argo_workflows/model/azure_disk_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/azure_file_volume_source.py b/sdks/python/client/argo_workflows/model/azure_file_volume_source.py index 8ae41e74411e..22f3e90de7e4 100644 --- a/sdks/python/client/argo_workflows/model/azure_file_volume_source.py +++ b/sdks/python/client/argo_workflows/model/azure_file_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/capabilities.py b/sdks/python/client/argo_workflows/model/capabilities.py index f302c6b26512..252915695882 100644 --- a/sdks/python/client/argo_workflows/model/capabilities.py +++ b/sdks/python/client/argo_workflows/model/capabilities.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/ceph_fs_volume_source.py b/sdks/python/client/argo_workflows/model/ceph_fs_volume_source.py index fdc177f28296..61d3bdc0ecb3 100644 --- a/sdks/python/client/argo_workflows/model/ceph_fs_volume_source.py +++ b/sdks/python/client/argo_workflows/model/ceph_fs_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/cinder_volume_source.py b/sdks/python/client/argo_workflows/model/cinder_volume_source.py index 7e969b8ee3ea..a51a4bf962c4 100644 --- a/sdks/python/client/argo_workflows/model/cinder_volume_source.py +++ b/sdks/python/client/argo_workflows/model/cinder_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/config_map_env_source.py b/sdks/python/client/argo_workflows/model/config_map_env_source.py index b604751d8d7d..7435807b5a87 100644 --- a/sdks/python/client/argo_workflows/model/config_map_env_source.py +++ b/sdks/python/client/argo_workflows/model/config_map_env_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/config_map_key_selector.py b/sdks/python/client/argo_workflows/model/config_map_key_selector.py index 46a56b234f1e..0c0724f3d612 100644 --- a/sdks/python/client/argo_workflows/model/config_map_key_selector.py +++ b/sdks/python/client/argo_workflows/model/config_map_key_selector.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/config_map_projection.py b/sdks/python/client/argo_workflows/model/config_map_projection.py index e6d5d2f94efa..b16fe4d551f4 100644 --- a/sdks/python/client/argo_workflows/model/config_map_projection.py +++ b/sdks/python/client/argo_workflows/model/config_map_projection.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/config_map_volume_source.py b/sdks/python/client/argo_workflows/model/config_map_volume_source.py index 236120f00235..b763f265defb 100644 --- a/sdks/python/client/argo_workflows/model/config_map_volume_source.py +++ b/sdks/python/client/argo_workflows/model/config_map_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/container.py b/sdks/python/client/argo_workflows/model/container.py index 77764b1db7bf..77c4a1829487 100644 --- a/sdks/python/client/argo_workflows/model/container.py +++ b/sdks/python/client/argo_workflows/model/container.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/container_port.py b/sdks/python/client/argo_workflows/model/container_port.py index 3f95a5f57fbf..0950eab0a005 100644 --- a/sdks/python/client/argo_workflows/model/container_port.py +++ b/sdks/python/client/argo_workflows/model/container_port.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/create_options.py b/sdks/python/client/argo_workflows/model/create_options.py index a8a72a4000d7..302b2fd9f3b1 100644 --- a/sdks/python/client/argo_workflows/model/create_options.py +++ b/sdks/python/client/argo_workflows/model/create_options.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/csi_volume_source.py b/sdks/python/client/argo_workflows/model/csi_volume_source.py index 74ede9362abf..5e40a67a6dcb 100644 --- a/sdks/python/client/argo_workflows/model/csi_volume_source.py +++ b/sdks/python/client/argo_workflows/model/csi_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/downward_api_projection.py b/sdks/python/client/argo_workflows/model/downward_api_projection.py index c8affedc6533..f395a3949321 100644 --- a/sdks/python/client/argo_workflows/model/downward_api_projection.py +++ b/sdks/python/client/argo_workflows/model/downward_api_projection.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/downward_api_volume_file.py b/sdks/python/client/argo_workflows/model/downward_api_volume_file.py index fd3a6873a2c5..ddc708f0e00a 100644 --- a/sdks/python/client/argo_workflows/model/downward_api_volume_file.py +++ b/sdks/python/client/argo_workflows/model/downward_api_volume_file.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/downward_api_volume_source.py b/sdks/python/client/argo_workflows/model/downward_api_volume_source.py index 1750796760b8..209d86690a91 100644 --- a/sdks/python/client/argo_workflows/model/downward_api_volume_source.py +++ b/sdks/python/client/argo_workflows/model/downward_api_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/empty_dir_volume_source.py b/sdks/python/client/argo_workflows/model/empty_dir_volume_source.py index a2dce818732f..445002ffce3b 100644 --- a/sdks/python/client/argo_workflows/model/empty_dir_volume_source.py +++ b/sdks/python/client/argo_workflows/model/empty_dir_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/env_from_source.py b/sdks/python/client/argo_workflows/model/env_from_source.py index 0f1ff95f7ff4..1f70a9cc4bed 100644 --- a/sdks/python/client/argo_workflows/model/env_from_source.py +++ b/sdks/python/client/argo_workflows/model/env_from_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/env_var.py b/sdks/python/client/argo_workflows/model/env_var.py index c4bba5175e1f..9770f43db7aa 100644 --- a/sdks/python/client/argo_workflows/model/env_var.py +++ b/sdks/python/client/argo_workflows/model/env_var.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/env_var_source.py b/sdks/python/client/argo_workflows/model/env_var_source.py index 3f31c1080709..e645f6ffe5b4 100644 --- a/sdks/python/client/argo_workflows/model/env_var_source.py +++ b/sdks/python/client/argo_workflows/model/env_var_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/ephemeral_volume_source.py b/sdks/python/client/argo_workflows/model/ephemeral_volume_source.py index 785e7a48040c..d36a0f7dd205 100644 --- a/sdks/python/client/argo_workflows/model/ephemeral_volume_source.py +++ b/sdks/python/client/argo_workflows/model/ephemeral_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/event.py b/sdks/python/client/argo_workflows/model/event.py index 5ce36856f4ed..59e81a0a7bf1 100644 --- a/sdks/python/client/argo_workflows/model/event.py +++ b/sdks/python/client/argo_workflows/model/event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/event_series.py b/sdks/python/client/argo_workflows/model/event_series.py index ed02b56037cc..7264dc89c6d1 100644 --- a/sdks/python/client/argo_workflows/model/event_series.py +++ b/sdks/python/client/argo_workflows/model/event_series.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/event_source.py b/sdks/python/client/argo_workflows/model/event_source.py index 123e5850449d..0955253ba4ba 100644 --- a/sdks/python/client/argo_workflows/model/event_source.py +++ b/sdks/python/client/argo_workflows/model/event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/eventsource_create_event_source_request.py b/sdks/python/client/argo_workflows/model/eventsource_create_event_source_request.py index 01e4d079d78f..dfaae8123cb8 100644 --- a/sdks/python/client/argo_workflows/model/eventsource_create_event_source_request.py +++ b/sdks/python/client/argo_workflows/model/eventsource_create_event_source_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/eventsource_event_source_watch_event.py b/sdks/python/client/argo_workflows/model/eventsource_event_source_watch_event.py index 4fc89c7bfeeb..687e89a3303d 100644 --- a/sdks/python/client/argo_workflows/model/eventsource_event_source_watch_event.py +++ b/sdks/python/client/argo_workflows/model/eventsource_event_source_watch_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/eventsource_log_entry.py b/sdks/python/client/argo_workflows/model/eventsource_log_entry.py index afe492a7dca6..617197e14d6e 100644 --- a/sdks/python/client/argo_workflows/model/eventsource_log_entry.py +++ b/sdks/python/client/argo_workflows/model/eventsource_log_entry.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/eventsource_update_event_source_request.py b/sdks/python/client/argo_workflows/model/eventsource_update_event_source_request.py index de7e935cf318..9102ca07c1c9 100644 --- a/sdks/python/client/argo_workflows/model/eventsource_update_event_source_request.py +++ b/sdks/python/client/argo_workflows/model/eventsource_update_event_source_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/exec_action.py b/sdks/python/client/argo_workflows/model/exec_action.py index 2b7055b8a6ba..e7508d702332 100644 --- a/sdks/python/client/argo_workflows/model/exec_action.py +++ b/sdks/python/client/argo_workflows/model/exec_action.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/fc_volume_source.py b/sdks/python/client/argo_workflows/model/fc_volume_source.py index f2a821698a92..c6fcd1627969 100644 --- a/sdks/python/client/argo_workflows/model/fc_volume_source.py +++ b/sdks/python/client/argo_workflows/model/fc_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/flex_volume_source.py b/sdks/python/client/argo_workflows/model/flex_volume_source.py index 8ca5de111e78..89580e9b32b3 100644 --- a/sdks/python/client/argo_workflows/model/flex_volume_source.py +++ b/sdks/python/client/argo_workflows/model/flex_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/flocker_volume_source.py b/sdks/python/client/argo_workflows/model/flocker_volume_source.py index 1df427e472a6..724879e286f0 100644 --- a/sdks/python/client/argo_workflows/model/flocker_volume_source.py +++ b/sdks/python/client/argo_workflows/model/flocker_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/gce_persistent_disk_volume_source.py b/sdks/python/client/argo_workflows/model/gce_persistent_disk_volume_source.py index 19be03a14705..d8025d878e09 100644 --- a/sdks/python/client/argo_workflows/model/gce_persistent_disk_volume_source.py +++ b/sdks/python/client/argo_workflows/model/gce_persistent_disk_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/git_repo_volume_source.py b/sdks/python/client/argo_workflows/model/git_repo_volume_source.py index ecda4c2f88d7..e74d06742b17 100644 --- a/sdks/python/client/argo_workflows/model/git_repo_volume_source.py +++ b/sdks/python/client/argo_workflows/model/git_repo_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/glusterfs_volume_source.py b/sdks/python/client/argo_workflows/model/glusterfs_volume_source.py index a5f3ee465f92..0f7011e6ae9d 100644 --- a/sdks/python/client/argo_workflows/model/glusterfs_volume_source.py +++ b/sdks/python/client/argo_workflows/model/glusterfs_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/google_protobuf_any.py b/sdks/python/client/argo_workflows/model/google_protobuf_any.py index c1de25d4d197..5ffc9e43386e 100644 --- a/sdks/python/client/argo_workflows/model/google_protobuf_any.py +++ b/sdks/python/client/argo_workflows/model/google_protobuf_any.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/group_version_resource.py b/sdks/python/client/argo_workflows/model/group_version_resource.py index 2532adab4f27..57ff0acbc2ea 100644 --- a/sdks/python/client/argo_workflows/model/group_version_resource.py +++ b/sdks/python/client/argo_workflows/model/group_version_resource.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/grpc_action.py b/sdks/python/client/argo_workflows/model/grpc_action.py index 5ba35763b61d..980bae3815cd 100644 --- a/sdks/python/client/argo_workflows/model/grpc_action.py +++ b/sdks/python/client/argo_workflows/model/grpc_action.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_error.py b/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_error.py index 8f4e89e9f4ca..4a9a677e1c20 100644 --- a/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_error.py +++ b/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_error.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_stream_error.py b/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_stream_error.py index 5f368ab15f40..8a9ee20a9b9b 100644 --- a/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_stream_error.py +++ b/sdks/python/client/argo_workflows/model/grpc_gateway_runtime_stream_error.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/host_alias.py b/sdks/python/client/argo_workflows/model/host_alias.py index 0a62dad343d0..e98c5e453b1c 100644 --- a/sdks/python/client/argo_workflows/model/host_alias.py +++ b/sdks/python/client/argo_workflows/model/host_alias.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/host_path_volume_source.py b/sdks/python/client/argo_workflows/model/host_path_volume_source.py index b8fc6e86842b..0afe9c31ac96 100644 --- a/sdks/python/client/argo_workflows/model/host_path_volume_source.py +++ b/sdks/python/client/argo_workflows/model/host_path_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/http_get_action.py b/sdks/python/client/argo_workflows/model/http_get_action.py index c36249cfae4b..5fbf4131ad24 100644 --- a/sdks/python/client/argo_workflows/model/http_get_action.py +++ b/sdks/python/client/argo_workflows/model/http_get_action.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/http_header.py b/sdks/python/client/argo_workflows/model/http_header.py index e074081bfbdc..97f8f04dc619 100644 --- a/sdks/python/client/argo_workflows/model/http_header.py +++ b/sdks/python/client/argo_workflows/model/http_header.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amount.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amount.py index 91bf63f1a9fb..1fc69fe13c98 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amount.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amount.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_consume_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_consume_config.py index 9284025a20ef..fa12a9993ba5 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_consume_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_consume_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_event_source.py index a5c2e05e9b1e..1fbcc29c49ad 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_exchange_declare_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_exchange_declare_config.py index 2d4162fc6e0b..b4fbe5b87a5a 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_exchange_declare_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_exchange_declare_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_bind_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_bind_config.py index e3d2212ab241..b6d623c897fc 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_bind_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_bind_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_declare_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_declare_config.py index 58ac74253817..65b37e71f455 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_declare_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_amqp_queue_declare_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_argo_workflow_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_argo_workflow_trigger.py index 36e8b7653344..650ce47dc321 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_argo_workflow_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_argo_workflow_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_artifact_location.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_artifact_location.py index 5184d130edb4..957df946bc10 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_artifact_location.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_artifact_location.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_aws_lambda_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_aws_lambda_trigger.py index 109cde5804cd..243cf2d604cc 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_aws_lambda_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_aws_lambda_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_event_hubs_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_event_hubs_trigger.py index ba948dcc1864..b5dab7d868f4 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_event_hubs_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_event_hubs_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_events_hub_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_events_hub_event_source.py index e0626921f9c4..cb4bf1a9b608 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_events_hub_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_azure_events_hub_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_backoff.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_backoff.py index ca6946e74660..8b95b8ad7c55 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_backoff.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_backoff.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_basic_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_basic_auth.py index 1c7feea0e5df..d8f31bada732 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_basic_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_basic_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_auth.py index ba515a23bdf4..9c92b1d0b007 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_basic_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_basic_auth.py index cc483e5bdd1c..a1c73f551b4d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_basic_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_basic_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_event_source.py index 4d302fdfff0c..1dc48b4aa4f9 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_repository.py index 07ec80a65a20..c39573af56eb 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_event_source.py index 44fbb12ed39c..c70c7ba0a59c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_repository.py index dc88f1ad9083..68cb2880a518 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_bitbucket_server_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_calendar_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_calendar_event_source.py index b2f8b3e2a92f..8519a4c2eefa 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_calendar_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_calendar_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_catchup_configuration.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_catchup_configuration.py index 268ab92b35c2..36e64d9f90f7 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_catchup_configuration.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_catchup_configuration.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_condition.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_condition.py index 92a98568b2ff..c7b11b07ad41 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_condition.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_condition.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_by_time.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_by_time.py index ab5ba8e97904..c3f67ba6a3bb 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_by_time.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_by_time.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_criteria.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_criteria.py index 489ff0d095fc..5bf2b8563bc9 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_criteria.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_conditions_reset_criteria.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_config_map_persistence.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_config_map_persistence.py index 65a63e5cb103..6088555c78c1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_config_map_persistence.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_config_map_persistence.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_custom_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_custom_trigger.py index fef6e268f921..f67c80776821 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_custom_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_custom_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_data_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_data_filter.py index c01fe543ddc5..6249754843fe 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_data_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_data_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_emitter_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_emitter_event_source.py index 7c5382220aa9..6cdd79217587 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_emitter_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_emitter_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_context.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_context.py index 1893ef6c6b61..2849a235436d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_context.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_context.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency.py index aabec6986000..7a6579f81d13 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_filter.py index a8417e59069e..4080030e5005 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_transformer.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_transformer.py index 2c00bd4c3938..5785ed149669 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_transformer.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_dependency_transformer.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_persistence.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_persistence.py index 59d04c7e9a59..c31c6dd44745 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_persistence.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_persistence.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source.py index 2bc78c604df6..e73023e1c843 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_filter.py index 85aa55e6e604..6706bfc6138e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_list.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_list.py index fc74fd480dc4..adbaa408bb31 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_list.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_list.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_spec.py index 0524d18fd483..61c130941a41 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_status.py index 5effeb48db41..f087ef9a68e5 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_event_source_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_expr_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_expr_filter.py index e0b709901570..aead8bc4d210 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_expr_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_expr_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_artifact.py index c7615d97e002..847359e01912 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_event_source.py index 831776ba0375..fce08060fd8b 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_file_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_generic_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_generic_event_source.py index b36eddb91c54..372bb66eb16e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_generic_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_generic_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_artifact.py index b886aac4fb2b..f71be3a41c42 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_creds.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_creds.py index cd34579654fb..89bdf86bfd0c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_creds.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_creds.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_remote_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_remote_config.py index 1d110bacaeff..b0cffdbbbd02 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_remote_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_git_remote_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_app_creds.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_app_creds.py index 89b941c57945..c38b04dd8cc3 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_app_creds.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_app_creds.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_event_source.py index 90bac9974d5b..a948236824d8 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_github_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_gitlab_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_gitlab_event_source.py index a88b5b6db06d..273fa4a699d5 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_gitlab_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_gitlab_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_hdfs_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_hdfs_event_source.py index c102e70d1c14..1ce0e522a13b 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_hdfs_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_hdfs_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_http_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_http_trigger.py index b66fdf2ae740..b166d4d35a85 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_http_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_http_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_int64_or_string.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_int64_or_string.py index cd4f9118ba27..24ffc117ce42 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_int64_or_string.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_int64_or_string.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_k8_s_resource_policy.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_k8_s_resource_policy.py index f0b1878ac8e8..5eeb87cf8a17 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_k8_s_resource_policy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_k8_s_resource_policy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_consumer_group.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_consumer_group.py index 093da33fa690..d7c33e8c6073 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_consumer_group.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_consumer_group.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_event_source.py index 3e041117ef84..e2bbb3b34587 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_trigger.py index 21863e5d1b3f..73367c00f0f7 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_kafka_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_log_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_log_trigger.py index 5bffcd93eeed..62d7c9d03c2d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_log_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_log_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_metadata.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_metadata.py index 0c32341ff0dc..c9de6715ccc6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_metadata.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_metadata.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_mqtt_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_mqtt_event_source.py index 6d4670b7667c..81e9ba3c7784 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_mqtt_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_mqtt_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_auth.py index 8e714bd64bd3..dddcb0379cad 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_events_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_events_source.py index 5a6a972335dc..fc08bb387bd4 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_events_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_events_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_trigger.py index 36435bff2802..2d19a1b7a930 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nats_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nsq_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nsq_event_source.py index eabaeb66804c..c06eadf7b42d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nsq_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_nsq_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_open_whisk_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_open_whisk_trigger.py index 4f09ff1399ab..1799f7964c41 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_open_whisk_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_open_whisk_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_owned_repositories.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_owned_repositories.py index 0bb3d06ff215..effcfc7adca2 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_owned_repositories.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_owned_repositories.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_payload_field.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_payload_field.py index bc369c342dae..3c34b5e72444 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_payload_field.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_payload_field.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pub_sub_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pub_sub_event_source.py index 9ab90b7c6fc6..7d4ee6477d67 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pub_sub_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pub_sub_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_event_source.py index a1761417bd42..f4ec675c7075 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_trigger.py index 99b6204b24b5..bdb7e839c2c2 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_pulsar_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_rate_limit.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_rate_limit.py index 7aba8bc23a0e..42b913e3e7ec 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_rate_limit.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_rate_limit.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_event_source.py index ceeb3dfaa2d4..7ed4bd51f176 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_stream_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_stream_event_source.py index c0ffa451cf8b..74073f2f2f06 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_stream_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_redis_stream_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource.py index c3af5da82fc6..fe964634cfd4 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_event_source.py index 12d4a0f87ab9..29d6115f38d1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_filter.py index d1aefe900eb6..cead1da91f79 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_resource_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_artifact.py index 1dd66ef45206..2261601c4bed 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_bucket.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_bucket.py index ee09844d7e9b..c168a0c4a9bd 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_bucket.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_bucket.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_filter.py index 788e5587cc98..dd91ca48c304 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_s3_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sasl_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sasl_config.py index a11436526daa..4aa9ed726103 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sasl_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sasl_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_secure_header.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_secure_header.py index e280699dc163..5765f08860cd 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_secure_header.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_secure_header.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_selector.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_selector.py index e7f9d0ae64ca..886a11c8371e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_selector.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_selector.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor.py index 25a8da6a8499..c0279d6cf448 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_list.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_list.py index c316ae533f72..9ea245b32a37 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_list.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_list.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_spec.py index d43905186a60..34ddb56bcbde 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_status.py index 25bee4c33954..0855d239613a 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sensor_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_service.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_service.py index 3e9ebdd7fff4..ebeae3a2f0cc 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_service.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_service.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_event_source.py index 80fbff08c3d5..7a72873d2002 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_trigger.py index ae0381319fab..c7054bca12fd 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_slack_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sns_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sns_event_source.py index 7b4be5b9ecd0..8f5de6371383 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sns_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sns_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sqs_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sqs_event_source.py index 11633f4306d0..948fe6676bc3 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sqs_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_sqs_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_standard_k8_s_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_standard_k8_s_trigger.py index 735ccee8aa77..a9dfe47cf0cd 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_standard_k8_s_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_standard_k8_s_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status.py index abd2486efa51..95d66beb69ac 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status_policy.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status_policy.py index b5cbac1c40da..8e0bc545b828 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status_policy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_status_policy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_event_source.py index 9d6bf0fe79dd..7e9a854fc9a8 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_filter.py index 4a8c09b3469b..579df02be84d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_storage_grid_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_stripe_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_stripe_event_source.py index 685dcf679b38..f719383d0b77 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_stripe_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_stripe_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_template.py index 1efbaf687cf6..c1ba24c756c6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_time_filter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_time_filter.py index 35001a5789b8..3f686209999b 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_time_filter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_time_filter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_tls_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_tls_config.py index 4a40f5e32e60..69580f5ab284 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_tls_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_tls_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger.py index 0aeed6a39834..5b8e920f58ad 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter.py index 73d3a67e6e92..47338065508c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter_source.py index ee23ef1960de..b3e0610fa888 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_parameter_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_policy.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_policy.py index 17bbfb83e3fd..242dab759267 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_policy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_policy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_template.py index 4d5c4cebcf98..5d1fcd3ebe19 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_trigger_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_url_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_url_artifact.py index 50503a6c6e70..507799fd575f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_url_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_url_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_value_from_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_value_from_source.py index f14332567409..24e2285575a7 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_value_from_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_value_from_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_watch_path_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_watch_path_config.py index d8d4fe45bcb8..f45204ac971a 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_watch_path_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_watch_path_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_context.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_context.py index 81bee1815695..22dd23c48c7a 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_context.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_context.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_event_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_event_source.py index f307ed3c2f34..832c23f8aa61 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_event_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_events_v1alpha1_webhook_event_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_archive_strategy.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_archive_strategy.py index 112a64fb1111..647068ed162e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_archive_strategy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_archive_strategy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_arguments.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_arguments.py index 41664db021b6..84d2ef464bd5 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_arguments.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_arguments.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_art_gc_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_art_gc_status.py index 45b57522fca8..98829f6904e3 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_art_gc_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_art_gc_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact.py index e7cd79406e46..adbf18ef8846 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc.py index b9306710cc7b..014d1a45397e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_spec.py index 8a8425747771..d150fa25a07d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_status.py index dc31873353fc..b14169e6c2a6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_gc_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_location.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_location.py index a730aab4fa28..b38771f1c6d1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_location.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_location.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_node_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_node_spec.py index 207db6b89b70..6ae0b6e59b2f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_node_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_node_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_paths.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_paths.py index fe62ee4b276b..144eb777ab69 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_paths.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_paths.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository.py index 15454f99ce85..2a26fd5c50c6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref.py index 21c2afdae9bb..f47ba5120e3f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref_status.py index fe24aecbc351..4be0bc8061ab 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_repository_ref_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result.py index 9973e8c5a586..b26411a182b6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result_node_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result_node_status.py index 464b95056369..3ce3c20a106f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result_node_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifact_result_node_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact.py index c70aba1aca5d..dbc8076daa82 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact_repository.py index 093b60f2d43e..263c03dbdf50 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_artifactory_artifact_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact.py index 14e02c5a4ce0..202f39efb496 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact_repository.py index 20c4904e3de0..abbdff6f44ef 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_azure_artifact_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_backoff.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_backoff.py index 7037fd36d6a9..5f5054f3919e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_backoff.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_backoff.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_basic_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_basic_auth.py index 9ce11d9aad50..78afb18d360e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_basic_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_basic_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cache.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cache.py index 5a146f16ef44..97981c2c46cc 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cache.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cache.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_client_cert_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_client_cert_auth.py index ce8d06c1217a..5290c1e17360 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_client_cert_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_client_cert_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template.py index 4f701f021e10..cead44c1c3f1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_create_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_create_request.py index 1cc21331d6b1..a2dc7edb0808 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_create_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_create_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_lint_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_lint_request.py index 6656dcb5f2d3..97c6a8b99c98 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_lint_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_lint_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_list.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_list.py index 45557f72488a..124483feb991 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_list.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_list.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_update_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_update_request.py index dea09720305a..822d26038adb 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_update_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cluster_workflow_template_update_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_collect_event_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_collect_event_request.py index 8e85d379d473..e282af3f0dd7 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_collect_event_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_collect_event_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_column.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_column.py new file mode 100644 index 000000000000..6b1770375e58 --- /dev/null +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_column.py @@ -0,0 +1,273 @@ +""" + Argo Workflows API + + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 + + The version of the OpenAPI document: VERSION + Generated by: https://openapi-generator.tech +""" + + +import re # noqa: F401 +import sys # noqa: F401 + +from argo_workflows.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from argo_workflows.exceptions import ApiAttributeError + + + +class IoArgoprojWorkflowV1alpha1Column(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + 'key': (str,), # noqa: E501 + 'name': (str,), # noqa: E501 + 'type': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'key': 'key', # noqa: E501 + 'name': 'name', # noqa: E501 + 'type': 'type', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, key, name, type, *args, **kwargs): # noqa: E501 + """IoArgoprojWorkflowV1alpha1Column - a model defined in OpenAPI + + Args: + key (str): The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\". + name (str): The name of this column, e.g., \"Workflow Completed\". + type (str): The type of this column, \"label\" or \"annotation\". + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.key = key + self.name = name + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, key, name, type, *args, **kwargs): # noqa: E501 + """IoArgoprojWorkflowV1alpha1Column - a model defined in OpenAPI + + Args: + key (str): The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\". + name (str): The name of this column, e.g., \"Workflow Completed\". + type (str): The type of this column, \"label\" or \"annotation\". + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.key = key + self.name = name + self.type = type + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_condition.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_condition.py index 8d07786362b9..34afd6e0457c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_condition.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_condition.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_node.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_node.py index bed11872e17b..450f81e9b3f6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_node.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_node.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_retry_strategy.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_retry_strategy.py index ecccf747d7ec..0a17ecadb11c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_retry_strategy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_retry_strategy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_template.py index 6f2ada47ef83..29c3502fb030 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_container_set_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_continue_on.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_continue_on.py index 3d0cbf17a583..e5655f0923fa 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_continue_on.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_continue_on.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_counter.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_counter.py index 3998431bc36a..4343259ffe7e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_counter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_counter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_cron_workflow_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_cron_workflow_request.py index 424043ddb56e..b45c45397116 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_cron_workflow_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_cron_workflow_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_s3_bucket_options.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_s3_bucket_options.py index 50c8602eca3b..0cb3f532fd8e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_s3_bucket_options.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_create_s3_bucket_options.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow.py index e35312b951be..94049eba2532 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_list.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_list.py index 53e623fddb25..cc658ee8ee7e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_list.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_list.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_resume_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_resume_request.py index d4b8970bf477..7b4caf378647 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_resume_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_resume_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_spec.py index ca449a32f340..962c422cf3bf 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_status.py index 3c737fcc8274..00dd5de13c28 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_suspend_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_suspend_request.py index e45fd5799fd1..c37258662978 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_suspend_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_cron_workflow_suspend_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_task.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_task.py index 2fd6e3f5380a..d8ffe876c80f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_task.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_task.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_template.py index e9afea64eaa7..a6ced4288354 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_dag_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data.py index 1e2977a89b07..1906b5ff1b13 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data_source.py index cde56017e2da..18d785b6e618 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_data_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_event.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_event.py index 47b51ecc3ed1..acb1dc122b24 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_event.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_executor_config.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_executor_config.py index ef652dc0243f..18a11ea5d7a0 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_executor_config.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_executor_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gauge.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gauge.py index b15e5b757d0c..8b7664fe0d3a 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gauge.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gauge.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact.py index 0b469e570e29..e188dfa91f99 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact_repository.py index c81835a137b0..3eaaa567cf49 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_gcs_artifact_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_get_user_info_response.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_get_user_info_response.py index aedd6d4d4229..cac7b6a6a687 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_get_user_info_response.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_get_user_info_response.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_git_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_git_artifact.py index a88ab17ff4c6..3320429a0b20 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_git_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_git_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact.py index b29de83721d8..c11fa117d095 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact_repository.py index c37f52de24c8..2b86dacf3406 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_hdfs_artifact_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_header.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_header.py index dea3191809a6..59c4412ea50b 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_header.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_header.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_histogram.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_histogram.py index d96d23aee75e..97db80957cad 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_histogram.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_histogram.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http.py index 2c38e12eef50..e87e5a362aee 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_artifact.py index f53b1a021290..487e395065f1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_auth.py index 5ff5f78fefdf..1098f5db0c9c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_body_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_body_source.py index 82196251cdc4..59819619df37 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_body_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_body_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header.py index 3053e0d569d4..78a23edea405 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header_source.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header_source.py index c18ef23c6d5f..c6ee019e8248 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header_source.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_http_header_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_info_response.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_info_response.py index 95a545e11839..348df609515c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_info_response.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_info_response.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech @@ -30,7 +30,9 @@ def lazy_import(): + from argo_workflows.model.io_argoproj_workflow_v1alpha1_column import IoArgoprojWorkflowV1alpha1Column from argo_workflows.model.io_argoproj_workflow_v1alpha1_link import IoArgoprojWorkflowV1alpha1Link + globals()['IoArgoprojWorkflowV1alpha1Column'] = IoArgoprojWorkflowV1alpha1Column globals()['IoArgoprojWorkflowV1alpha1Link'] = IoArgoprojWorkflowV1alpha1Link @@ -87,6 +89,7 @@ def openapi_types(): """ lazy_import() return { + 'columns': ([IoArgoprojWorkflowV1alpha1Column],), # noqa: E501 'links': ([IoArgoprojWorkflowV1alpha1Link],), # noqa: E501 'managed_namespace': (str,), # noqa: E501 'modals': ({str: (bool,)},), # noqa: E501 @@ -99,6 +102,7 @@ def discriminator(): attribute_map = { + 'columns': 'columns', # noqa: E501 'links': 'links', # noqa: E501 'managed_namespace': 'managedNamespace', # noqa: E501 'modals': 'modals', # noqa: E501 @@ -146,6 +150,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + columns ([IoArgoprojWorkflowV1alpha1Column]): [optional] # noqa: E501 links ([IoArgoprojWorkflowV1alpha1Link]): [optional] # noqa: E501 managed_namespace (str): [optional] # noqa: E501 modals ({str: (bool,)}): [optional] # noqa: E501 @@ -231,6 +236,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + columns ([IoArgoprojWorkflowV1alpha1Column]): [optional] # noqa: E501 links ([IoArgoprojWorkflowV1alpha1Link]): [optional] # noqa: E501 managed_namespace (str): [optional] # noqa: E501 modals ({str: (bool,)}): [optional] # noqa: E501 diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_inputs.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_inputs.py index 6322da2b3f33..7b8d3e1d2022 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_inputs.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_inputs.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_keys.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_keys.py index fa005e611bf4..408686a65674 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_keys.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_keys.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_value_from.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_value_from.py index 918df13f1b57..8b80212eba86 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_value_from.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_value_from.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_values.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_values.py index 56720f0086bf..4c1a0e92ce6d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_values.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_label_values.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lifecycle_hook.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lifecycle_hook.py index 2d75b80652cb..d2b671fb3201 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lifecycle_hook.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lifecycle_hook.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_link.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_link.py index 16f380290b8d..46b268ffc965 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_link.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_link.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech @@ -109,7 +109,7 @@ def _from_openapi_data(cls, name, scope, url, *args, **kwargs): # noqa: E501 Args: name (str): The name of the link, E.g. \"Workflow Logs\" or \"Pod Logs\" - scope (str): \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\" or \"chat\" + scope (str): \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\" url (str): The URL. Can contain \"${metadata.namespace}\", \"${metadata.name}\", \"${status.startedAt}\", \"${status.finishedAt}\" or any other element in workflow yaml, e.g. \"${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}\" Keyword Args: @@ -198,7 +198,7 @@ def __init__(self, name, scope, url, *args, **kwargs): # noqa: E501 Args: name (str): The name of the link, E.g. \"Workflow Logs\" or \"Pod Logs\" - scope (str): \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\" or \"chat\" + scope (str): \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\" url (str): The URL. Can contain \"${metadata.namespace}\", \"${metadata.name}\", \"${status.startedAt}\", \"${status.finishedAt}\" or any other element in workflow yaml, e.g. \"${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}\" Keyword Args: diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lint_cron_workflow_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lint_cron_workflow_request.py index b3eb8c0be3a1..d47cb6358949 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lint_cron_workflow_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_lint_cron_workflow_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_log_entry.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_log_entry.py index cc1c287de1c5..0f19c3f3ac31 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_log_entry.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_log_entry.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_manifest_from.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_manifest_from.py index e25ce09bd344..87765d91235f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_manifest_from.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_manifest_from.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoization_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoization_status.py index 664001858cd5..33fa885d5f30 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoization_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoization_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoize.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoize.py index 6c7d0c626fa7..01b001993764 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoize.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_memoize.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metadata.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metadata.py index d620d4d92d9a..ce40c957f05d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metadata.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metadata.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metric_label.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metric_label.py index 560720e56fbb..f2e54dd290b6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metric_label.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metric_label.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metrics.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metrics.py index 533c210680ae..b607eb678e35 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metrics.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_metrics.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py index 083a9c5333cd..690b5ece749e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_holding.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_holding.py index a73cd673f268..193b14c7a6b2 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_holding.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_holding.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_status.py index 5652c33e8dff..e057de4d4802 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_mutex_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_result.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_result.py index 7e1f93b5ad0f..5dfbdac14a7a 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_result.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_result.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_status.py index 4c3c95b6ead8..3bf7954495e1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech @@ -211,7 +211,7 @@ def _from_openapi_data(cls, id, name, type, *args, **kwargs): # noqa: E501 message (str): A human readable message indicating details about why the node is in this condition.. [optional] # noqa: E501 outbound_nodes ([str]): OutboundNodes tracks the node IDs which are considered \"outbound\" nodes to a template invocation. For every invocation of a template, there are nodes which we considered as \"outbound\". Essentially, these are last nodes in the execution sequence to run, before the template is considered completed. These nodes are then connected as parents to a following step. In the case of single pod steps (i.e. container, script, resource templates), this list will be nil since the pod itself is already considered the \"outbound\" node. In the case of DAGs, outbound nodes are the \"target\" tasks (tasks with no children). In the case of steps, outbound nodes are all the containers involved in the last step group. NOTE: since templates are composable, the list of outbound nodes are carried upwards when a DAG/steps template invokes another DAG/steps template. In other words, the outbound nodes of a template, will be a superset of the outbound nodes of its last children.. [optional] # noqa: E501 outputs (IoArgoprojWorkflowV1alpha1Outputs): [optional] # noqa: E501 - phase (str): Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine.. [optional] # noqa: E501 + phase (str): Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state.. [optional] # noqa: E501 pod_ip (str): PodIP captures the IP of the pod for daemoned steps. [optional] # noqa: E501 progress (str): Progress to completion. [optional] # noqa: E501 resources_duration ({str: (int,)}): ResourcesDuration is indicative, but not accurate, resource duration. This is populated when the nodes completes.. [optional] # noqa: E501 @@ -321,7 +321,7 @@ def __init__(self, id, name, type, *args, **kwargs): # noqa: E501 message (str): A human readable message indicating details about why the node is in this condition.. [optional] # noqa: E501 outbound_nodes ([str]): OutboundNodes tracks the node IDs which are considered \"outbound\" nodes to a template invocation. For every invocation of a template, there are nodes which we considered as \"outbound\". Essentially, these are last nodes in the execution sequence to run, before the template is considered completed. These nodes are then connected as parents to a following step. In the case of single pod steps (i.e. container, script, resource templates), this list will be nil since the pod itself is already considered the \"outbound\" node. In the case of DAGs, outbound nodes are the \"target\" tasks (tasks with no children). In the case of steps, outbound nodes are all the containers involved in the last step group. NOTE: since templates are composable, the list of outbound nodes are carried upwards when a DAG/steps template invokes another DAG/steps template. In other words, the outbound nodes of a template, will be a superset of the outbound nodes of its last children.. [optional] # noqa: E501 outputs (IoArgoprojWorkflowV1alpha1Outputs): [optional] # noqa: E501 - phase (str): Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine.. [optional] # noqa: E501 + phase (str): Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state.. [optional] # noqa: E501 pod_ip (str): PodIP captures the IP of the pod for daemoned steps. [optional] # noqa: E501 progress (str): Progress to completion. [optional] # noqa: E501 resources_duration ({str: (int,)}): ResourcesDuration is indicative, but not accurate, resource duration. This is populated when the nodes completes.. [optional] # noqa: E501 diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_synchronization_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_synchronization_status.py index 1d6e1dbfec9a..9417a45fc206 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_synchronization_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_node_synchronization_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_auth.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_auth.py index 18c4996bd3af..511bb3851e0d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_auth.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_auth.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_endpoint_param.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_endpoint_param.py index 79d2bab45d74..6d55bd8c57c3 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_endpoint_param.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_o_auth2_endpoint_param.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact.py index 93367fc2918b..9f168fc88f76 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact_repository.py index 2566b0387a10..91199adbb20c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_artifact_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_lifecycle_rule.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_lifecycle_rule.py index 506eff7e433e..d14c982091bd 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_lifecycle_rule.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_oss_lifecycle_rule.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_outputs.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_outputs.py index b02d3e53a60e..46efff10e712 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_outputs.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_outputs.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parallel_steps.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parallel_steps.py index 7e0ba12f5dea..36a87fd5d40e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parallel_steps.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parallel_steps.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parameter.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parameter.py index 1dcb76e39567..ddcf368dac36 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parameter.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_parameter.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_pod_gc.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_pod_gc.py index 14f496fa2fdf..116e74770d33 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_pod_gc.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_pod_gc.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_prometheus.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_prometheus.py index 2f57acbdfafd..fad7c6b904a1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_prometheus.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_prometheus.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_raw_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_raw_artifact.py index 74794fbd1a78..2ee17725c8a4 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_raw_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_raw_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resource_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resource_template.py index 7d2df488cb0d..1aa87c435c42 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resource_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resource_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resubmit_archived_workflow_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resubmit_archived_workflow_request.py index c40ea88c9f26..81447b14b8f4 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resubmit_archived_workflow_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_resubmit_archived_workflow_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_affinity.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_affinity.py index 71d225c39024..1719f668624a 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_affinity.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_affinity.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_archived_workflow_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_archived_workflow_request.py index 968d25fc4191..1e998e3ec505 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_archived_workflow_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_archived_workflow_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_strategy.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_strategy.py index c8ccfe6aeb59..2502ea6d7f35 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_strategy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_retry_strategy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact.py index efd88ed8f99e..38d10971959d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact_repository.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact_repository.py index 5793d0bd5f32..9a107ac70e57 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact_repository.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_artifact_repository.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_encryption_options.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_encryption_options.py index 69f95a2af080..70413e09f8fc 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_encryption_options.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_s3_encryption_options.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_script_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_script_template.py index d84db3746c4f..04b66bac2e06 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_script_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_script_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_holding.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_holding.py index 6d83cdad4fee..44502c0e068b 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_holding.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_holding.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py index 562b1788fb84..60e2fd576085 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_ref.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_status.py index 6e77662b08ad..0a3352095ef0 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_semaphore_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_sequence.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_sequence.py index b847ea92e0eb..cf36f079f5bf 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_sequence.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_sequence.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit.py index 94fa8e5b0871..014fff9e5cbf 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit_opts.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit_opts.py index 217c62d67c59..ab3e598ff08c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit_opts.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_submit_opts.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_suspend_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_suspend_template.py index a74d1d118cd5..308492a26a69 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_suspend_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_suspend_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization.py index e862a28c66cc..d0dde601df3d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization_status.py index 222415631e7b..cdb247b4138e 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_synchronization_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_tar_strategy.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_tar_strategy.py index a6d7ecdb2084..e4bb96125817 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_tar_strategy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_tar_strategy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template.py index ef83dac78755..f62824860987 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template_ref.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template_ref.py index 337d7a22787d..54d1d9d6d62d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template_ref.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_template_ref.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_transformation_step.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_transformation_step.py index a14efc97e684..45af04177361 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_transformation_step.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_transformation_step.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_ttl_strategy.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_ttl_strategy.py index 89c8fc44b9c1..73e8a21a7700 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_ttl_strategy.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_ttl_strategy.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_update_cron_workflow_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_update_cron_workflow_request.py index 6027c8829fad..f1157b7f826f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_update_cron_workflow_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_update_cron_workflow_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_user_container.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_user_container.py index c15fd13608fc..bce1f25e9667 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_user_container.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_user_container.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_value_from.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_value_from.py index 63256bd27462..b6b185e830da 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_value_from.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_value_from.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_version.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_version.py index f7d6c48d1099..b665c87facec 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_version.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_version.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_volume_claim_gc.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_volume_claim_gc.py index 75cb77488383..e16959eb4bc4 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_volume_claim_gc.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_volume_claim_gc.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow.py index 30180bf18098..437436b076bf 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_create_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_create_request.py index 8db848f8792e..d174c62963b0 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_create_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_create_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding.py index c9f73d9a797b..21b593a8afb0 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_list.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_list.py index 1116bf81f194..c79ad8f2997c 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_list.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_list.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_spec.py index ce7aa8d49146..aacc0fd5c5df 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_event_binding_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_lint_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_lint_request.py index 2b598aa24a10..92a2e6c6c5fc 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_lint_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_lint_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_list.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_list.py index 36b0bd692290..0a81302f9a58 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_list.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_list.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_metadata.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_metadata.py index 76df010c3b96..0f60e7ddf3aa 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_metadata.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_metadata.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resubmit_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resubmit_request.py index ef4437ba6741..f92b0e9f4ef6 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resubmit_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resubmit_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resume_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resume_request.py index e81d98617bb1..7876f3b4ffc8 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resume_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_resume_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_retry_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_retry_request.py index 469c04108238..d5470550b13f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_retry_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_retry_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_set_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_set_request.py index b485a9e8bc59..f90b02c7a3b1 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_set_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_set_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_spec.py index 2aa64d4d94e4..38493a28b3ec 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech @@ -47,7 +47,7 @@ def lazy_import(): from argo_workflows.model.io_argoproj_workflow_v1alpha1_volume_claim_gc import IoArgoprojWorkflowV1alpha1VolumeClaimGC from argo_workflows.model.io_argoproj_workflow_v1alpha1_workflow_metadata import IoArgoprojWorkflowV1alpha1WorkflowMetadata from argo_workflows.model.io_argoproj_workflow_v1alpha1_workflow_template_ref import IoArgoprojWorkflowV1alpha1WorkflowTemplateRef - from argo_workflows.model.io_k8s_api_policy_v1beta1_pod_disruption_budget_spec import IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec + from argo_workflows.model.io_k8s_api_policy_v1_pod_disruption_budget_spec import IoK8sApiPolicyV1PodDisruptionBudgetSpec from argo_workflows.model.local_object_reference import LocalObjectReference from argo_workflows.model.persistent_volume_claim import PersistentVolumeClaim from argo_workflows.model.pod_dns_config import PodDNSConfig @@ -71,7 +71,7 @@ def lazy_import(): globals()['IoArgoprojWorkflowV1alpha1VolumeClaimGC'] = IoArgoprojWorkflowV1alpha1VolumeClaimGC globals()['IoArgoprojWorkflowV1alpha1WorkflowMetadata'] = IoArgoprojWorkflowV1alpha1WorkflowMetadata globals()['IoArgoprojWorkflowV1alpha1WorkflowTemplateRef'] = IoArgoprojWorkflowV1alpha1WorkflowTemplateRef - globals()['IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec'] = IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec + globals()['IoK8sApiPolicyV1PodDisruptionBudgetSpec'] = IoK8sApiPolicyV1PodDisruptionBudgetSpec globals()['LocalObjectReference'] = LocalObjectReference globals()['PersistentVolumeClaim'] = PersistentVolumeClaim globals()['PodDNSConfig'] = PodDNSConfig @@ -152,7 +152,7 @@ def openapi_types(): 'node_selector': ({str: (str,)},), # noqa: E501 'on_exit': (str,), # noqa: E501 'parallelism': (int,), # noqa: E501 - 'pod_disruption_budget': (IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec,), # noqa: E501 + 'pod_disruption_budget': (IoK8sApiPolicyV1PodDisruptionBudgetSpec,), # noqa: E501 'pod_gc': (IoArgoprojWorkflowV1alpha1PodGC,), # noqa: E501 'pod_metadata': (IoArgoprojWorkflowV1alpha1Metadata,), # noqa: E501 'pod_priority': (int,), # noqa: E501 @@ -287,7 +287,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 node_selector ({str: (str,)}): NodeSelector is a selector which will result in all pods of the workflow to be scheduled on the selected node(s). This is able to be overridden by a nodeSelector specified in the template.. [optional] # noqa: E501 on_exit (str): OnExit is a template reference which is invoked at the end of the workflow, irrespective of the success, failure, or error of the primary io.argoproj.workflow.v1alpha1.. [optional] # noqa: E501 parallelism (int): Parallelism limits the max total parallel pods that can execute at the same time in a workflow. [optional] # noqa: E501 - pod_disruption_budget (IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec): [optional] # noqa: E501 + pod_disruption_budget (IoK8sApiPolicyV1PodDisruptionBudgetSpec): [optional] # noqa: E501 pod_gc (IoArgoprojWorkflowV1alpha1PodGC): [optional] # noqa: E501 pod_metadata (IoArgoprojWorkflowV1alpha1Metadata): [optional] # noqa: E501 pod_priority (int): Priority to apply to workflow pods. DEPRECATED: Use PodPriorityClassName instead.. [optional] # noqa: E501 @@ -410,7 +410,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 node_selector ({str: (str,)}): NodeSelector is a selector which will result in all pods of the workflow to be scheduled on the selected node(s). This is able to be overridden by a nodeSelector specified in the template.. [optional] # noqa: E501 on_exit (str): OnExit is a template reference which is invoked at the end of the workflow, irrespective of the success, failure, or error of the primary io.argoproj.workflow.v1alpha1.. [optional] # noqa: E501 parallelism (int): Parallelism limits the max total parallel pods that can execute at the same time in a workflow. [optional] # noqa: E501 - pod_disruption_budget (IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec): [optional] # noqa: E501 + pod_disruption_budget (IoK8sApiPolicyV1PodDisruptionBudgetSpec): [optional] # noqa: E501 pod_gc (IoArgoprojWorkflowV1alpha1PodGC): [optional] # noqa: E501 pod_metadata (IoArgoprojWorkflowV1alpha1Metadata): [optional] # noqa: E501 pod_priority (int): Priority to apply to workflow pods. DEPRECATED: Use PodPriorityClassName instead.. [optional] # noqa: E501 diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_status.py index ac6b048edbe2..864e5a5d8e06 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech @@ -201,7 +201,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 offload_node_status_version (str): Whether on not node status has been offloaded to a database. If exists, then Nodes and CompressedNodes will be empty. This will actually be populated with a hash of the offloaded data.. [optional] # noqa: E501 outputs (IoArgoprojWorkflowV1alpha1Outputs): [optional] # noqa: E501 persistent_volume_claims ([Volume]): PersistentVolumeClaims tracks all PVCs that were created as part of the io.argoproj.workflow.v1alpha1. The contents of this list are drained at the end of the workflow.. [optional] # noqa: E501 - phase (str): Phase a simple, high-level summary of where the workflow is in its lifecycle.. [optional] # noqa: E501 + phase (str): Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed.. [optional] # noqa: E501 progress (str): Progress to completion. [optional] # noqa: E501 resources_duration ({str: (int,)}): ResourcesDuration is the total for the workflow. [optional] # noqa: E501 started_at (datetime): Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.. [optional] # noqa: E501 @@ -300,7 +300,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 offload_node_status_version (str): Whether on not node status has been offloaded to a database. If exists, then Nodes and CompressedNodes will be empty. This will actually be populated with a hash of the offloaded data.. [optional] # noqa: E501 outputs (IoArgoprojWorkflowV1alpha1Outputs): [optional] # noqa: E501 persistent_volume_claims ([Volume]): PersistentVolumeClaims tracks all PVCs that were created as part of the io.argoproj.workflow.v1alpha1. The contents of this list are drained at the end of the workflow.. [optional] # noqa: E501 - phase (str): Phase a simple, high-level summary of where the workflow is in its lifecycle.. [optional] # noqa: E501 + phase (str): Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed.. [optional] # noqa: E501 progress (str): Progress to completion. [optional] # noqa: E501 resources_duration ({str: (int,)}): ResourcesDuration is the total for the workflow. [optional] # noqa: E501 started_at (datetime): Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.. [optional] # noqa: E501 diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_step.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_step.py index 466757199f1b..18cf52384e0f 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_step.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_step.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_stop_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_stop_request.py index be93bd53f597..de47b1ad5067 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_stop_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_stop_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_submit_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_submit_request.py index 37274cac6543..7b4d763ef413 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_submit_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_submit_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_suspend_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_suspend_request.py index 6bf67cb0e96a..f084e547c108 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_suspend_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_suspend_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_spec.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_spec.py index 4cefd6b19cf8..5de93dfa68d5 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_spec.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_status.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_status.py index 47d1275363f1..93e9209142f2 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_status.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_task_set_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template.py index d47bbc489a8d..0c335a6262c8 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_create_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_create_request.py index 4626ee09016c..caca8061bddd 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_create_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_create_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_lint_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_lint_request.py index 5b3084910758..a281e68e4ee2 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_lint_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_lint_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_list.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_list.py index 0ac216bf2574..3eaba4c21b1b 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_list.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_list.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_ref.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_ref.py index 8c702f81cb12..a5b82825df6d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_ref.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_ref.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_update_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_update_request.py index 8694f97e1e36..dac96ad1ddfc 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_update_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_template_update_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_terminate_request.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_terminate_request.py index e18eadfa8e2f..594fadb82350 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_terminate_request.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_terminate_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_watch_event.py b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_watch_event.py index 49b3c75b31a1..fd80820ab80d 100644 --- a/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_watch_event.py +++ b/sdks/python/client/argo_workflows/model/io_argoproj_workflow_v1alpha1_workflow_watch_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/io_k8s_api_policy_v1beta1_pod_disruption_budget_spec.py b/sdks/python/client/argo_workflows/model/io_k8s_api_policy_v1_pod_disruption_budget_spec.py similarity index 97% rename from sdks/python/client/argo_workflows/model/io_k8s_api_policy_v1beta1_pod_disruption_budget_spec.py rename to sdks/python/client/argo_workflows/model/io_k8s_api_policy_v1_pod_disruption_budget_spec.py index 2794da9828fc..8bc9e435656b 100644 --- a/sdks/python/client/argo_workflows/model/io_k8s_api_policy_v1beta1_pod_disruption_budget_spec.py +++ b/sdks/python/client/argo_workflows/model/io_k8s_api_policy_v1_pod_disruption_budget_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech @@ -34,7 +34,7 @@ def lazy_import(): globals()['LabelSelector'] = LabelSelector -class IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec(ModelNormal): +class IoK8sApiPolicyV1PodDisruptionBudgetSpec(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -111,7 +111,7 @@ def discriminator(): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 - """IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec - a model defined in OpenAPI + """IoK8sApiPolicyV1PodDisruptionBudgetSpec - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -195,7 +195,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @convert_js_args_to_python_args def __init__(self, *args, **kwargs): # noqa: E501 - """IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec - a model defined in OpenAPI + """IoK8sApiPolicyV1PodDisruptionBudgetSpec - a model defined in OpenAPI Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/sdks/python/client/argo_workflows/model/iscsi_volume_source.py b/sdks/python/client/argo_workflows/model/iscsi_volume_source.py index d36765d164e3..5814c263c781 100644 --- a/sdks/python/client/argo_workflows/model/iscsi_volume_source.py +++ b/sdks/python/client/argo_workflows/model/iscsi_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/key_to_path.py b/sdks/python/client/argo_workflows/model/key_to_path.py index 53f285d2d3b0..9f14c6971ad5 100644 --- a/sdks/python/client/argo_workflows/model/key_to_path.py +++ b/sdks/python/client/argo_workflows/model/key_to_path.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/label_selector.py b/sdks/python/client/argo_workflows/model/label_selector.py index 0aca06db4240..7b0ecc6d386d 100644 --- a/sdks/python/client/argo_workflows/model/label_selector.py +++ b/sdks/python/client/argo_workflows/model/label_selector.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/label_selector_requirement.py b/sdks/python/client/argo_workflows/model/label_selector_requirement.py index 47ce37c66080..4fb74362742c 100644 --- a/sdks/python/client/argo_workflows/model/label_selector_requirement.py +++ b/sdks/python/client/argo_workflows/model/label_selector_requirement.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/lifecycle.py b/sdks/python/client/argo_workflows/model/lifecycle.py index a09cacea303c..f5f34383fc32 100644 --- a/sdks/python/client/argo_workflows/model/lifecycle.py +++ b/sdks/python/client/argo_workflows/model/lifecycle.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/lifecycle_handler.py b/sdks/python/client/argo_workflows/model/lifecycle_handler.py index 7103a7e879d9..35f50fc982f0 100644 --- a/sdks/python/client/argo_workflows/model/lifecycle_handler.py +++ b/sdks/python/client/argo_workflows/model/lifecycle_handler.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/list_meta.py b/sdks/python/client/argo_workflows/model/list_meta.py index 8e1da59ac37c..1363fa2eb46e 100644 --- a/sdks/python/client/argo_workflows/model/list_meta.py +++ b/sdks/python/client/argo_workflows/model/list_meta.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/local_object_reference.py b/sdks/python/client/argo_workflows/model/local_object_reference.py index 680687f1f5c2..c3acc36eb868 100644 --- a/sdks/python/client/argo_workflows/model/local_object_reference.py +++ b/sdks/python/client/argo_workflows/model/local_object_reference.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/managed_fields_entry.py b/sdks/python/client/argo_workflows/model/managed_fields_entry.py index 1c3898816d7e..ea90ca39d731 100644 --- a/sdks/python/client/argo_workflows/model/managed_fields_entry.py +++ b/sdks/python/client/argo_workflows/model/managed_fields_entry.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/nfs_volume_source.py b/sdks/python/client/argo_workflows/model/nfs_volume_source.py index 5b62c940bb15..c2907b56f190 100644 --- a/sdks/python/client/argo_workflows/model/nfs_volume_source.py +++ b/sdks/python/client/argo_workflows/model/nfs_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/node_affinity.py b/sdks/python/client/argo_workflows/model/node_affinity.py index 4d0616939512..a535d6cd529c 100644 --- a/sdks/python/client/argo_workflows/model/node_affinity.py +++ b/sdks/python/client/argo_workflows/model/node_affinity.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/node_selector.py b/sdks/python/client/argo_workflows/model/node_selector.py index 512b34b657cd..18d199a13351 100644 --- a/sdks/python/client/argo_workflows/model/node_selector.py +++ b/sdks/python/client/argo_workflows/model/node_selector.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/node_selector_requirement.py b/sdks/python/client/argo_workflows/model/node_selector_requirement.py index 03126edc4276..77aa8695b55b 100644 --- a/sdks/python/client/argo_workflows/model/node_selector_requirement.py +++ b/sdks/python/client/argo_workflows/model/node_selector_requirement.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/node_selector_term.py b/sdks/python/client/argo_workflows/model/node_selector_term.py index 9655be28615f..5ba1c9022150 100644 --- a/sdks/python/client/argo_workflows/model/node_selector_term.py +++ b/sdks/python/client/argo_workflows/model/node_selector_term.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/object_field_selector.py b/sdks/python/client/argo_workflows/model/object_field_selector.py index f62d8e61a2a2..ff1ca7e13fc4 100644 --- a/sdks/python/client/argo_workflows/model/object_field_selector.py +++ b/sdks/python/client/argo_workflows/model/object_field_selector.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/object_meta.py b/sdks/python/client/argo_workflows/model/object_meta.py index 5f948d3d4f52..4475e142904d 100644 --- a/sdks/python/client/argo_workflows/model/object_meta.py +++ b/sdks/python/client/argo_workflows/model/object_meta.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/object_reference.py b/sdks/python/client/argo_workflows/model/object_reference.py index 450ded49b6dc..6e7a8a6c8672 100644 --- a/sdks/python/client/argo_workflows/model/object_reference.py +++ b/sdks/python/client/argo_workflows/model/object_reference.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/owner_reference.py b/sdks/python/client/argo_workflows/model/owner_reference.py index e5ee519341d5..7da97e7669ea 100644 --- a/sdks/python/client/argo_workflows/model/owner_reference.py +++ b/sdks/python/client/argo_workflows/model/owner_reference.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/persistent_volume_claim.py b/sdks/python/client/argo_workflows/model/persistent_volume_claim.py index ed5b44656127..868b708b0731 100644 --- a/sdks/python/client/argo_workflows/model/persistent_volume_claim.py +++ b/sdks/python/client/argo_workflows/model/persistent_volume_claim.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/persistent_volume_claim_condition.py b/sdks/python/client/argo_workflows/model/persistent_volume_claim_condition.py index 8f70ab675c63..e7ba973e4d7d 100644 --- a/sdks/python/client/argo_workflows/model/persistent_volume_claim_condition.py +++ b/sdks/python/client/argo_workflows/model/persistent_volume_claim_condition.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/persistent_volume_claim_spec.py b/sdks/python/client/argo_workflows/model/persistent_volume_claim_spec.py index 01bad3d9ef89..bbde01fa2e2a 100644 --- a/sdks/python/client/argo_workflows/model/persistent_volume_claim_spec.py +++ b/sdks/python/client/argo_workflows/model/persistent_volume_claim_spec.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/persistent_volume_claim_status.py b/sdks/python/client/argo_workflows/model/persistent_volume_claim_status.py index f6ec301f99f0..9ca1af26b028 100644 --- a/sdks/python/client/argo_workflows/model/persistent_volume_claim_status.py +++ b/sdks/python/client/argo_workflows/model/persistent_volume_claim_status.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/persistent_volume_claim_template.py b/sdks/python/client/argo_workflows/model/persistent_volume_claim_template.py index 1359a95345df..6fb7a134bfb6 100644 --- a/sdks/python/client/argo_workflows/model/persistent_volume_claim_template.py +++ b/sdks/python/client/argo_workflows/model/persistent_volume_claim_template.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/persistent_volume_claim_volume_source.py b/sdks/python/client/argo_workflows/model/persistent_volume_claim_volume_source.py index 64b68043bf73..f3c4fbb35939 100644 --- a/sdks/python/client/argo_workflows/model/persistent_volume_claim_volume_source.py +++ b/sdks/python/client/argo_workflows/model/persistent_volume_claim_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/photon_persistent_disk_volume_source.py b/sdks/python/client/argo_workflows/model/photon_persistent_disk_volume_source.py index ad48cd3eb439..8b262e0a68cb 100644 --- a/sdks/python/client/argo_workflows/model/photon_persistent_disk_volume_source.py +++ b/sdks/python/client/argo_workflows/model/photon_persistent_disk_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/pod_affinity.py b/sdks/python/client/argo_workflows/model/pod_affinity.py index 13b6f2a1ce3a..d2f04d8a9b7c 100644 --- a/sdks/python/client/argo_workflows/model/pod_affinity.py +++ b/sdks/python/client/argo_workflows/model/pod_affinity.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/pod_affinity_term.py b/sdks/python/client/argo_workflows/model/pod_affinity_term.py index be748f60e78d..4e2caee1abdb 100644 --- a/sdks/python/client/argo_workflows/model/pod_affinity_term.py +++ b/sdks/python/client/argo_workflows/model/pod_affinity_term.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/pod_anti_affinity.py b/sdks/python/client/argo_workflows/model/pod_anti_affinity.py index 5a8553553d00..d3ba65640022 100644 --- a/sdks/python/client/argo_workflows/model/pod_anti_affinity.py +++ b/sdks/python/client/argo_workflows/model/pod_anti_affinity.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/pod_dns_config.py b/sdks/python/client/argo_workflows/model/pod_dns_config.py index 53345d67ce95..478712acdfe7 100644 --- a/sdks/python/client/argo_workflows/model/pod_dns_config.py +++ b/sdks/python/client/argo_workflows/model/pod_dns_config.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/pod_dns_config_option.py b/sdks/python/client/argo_workflows/model/pod_dns_config_option.py index f152390ec792..45d049d9698c 100644 --- a/sdks/python/client/argo_workflows/model/pod_dns_config_option.py +++ b/sdks/python/client/argo_workflows/model/pod_dns_config_option.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/pod_security_context.py b/sdks/python/client/argo_workflows/model/pod_security_context.py index f0351d1226bc..9018de7e8b3f 100644 --- a/sdks/python/client/argo_workflows/model/pod_security_context.py +++ b/sdks/python/client/argo_workflows/model/pod_security_context.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/portworx_volume_source.py b/sdks/python/client/argo_workflows/model/portworx_volume_source.py index faea153aaf3f..272927500764 100644 --- a/sdks/python/client/argo_workflows/model/portworx_volume_source.py +++ b/sdks/python/client/argo_workflows/model/portworx_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/preferred_scheduling_term.py b/sdks/python/client/argo_workflows/model/preferred_scheduling_term.py index 5eabd8144c6f..bff78dec9bba 100644 --- a/sdks/python/client/argo_workflows/model/preferred_scheduling_term.py +++ b/sdks/python/client/argo_workflows/model/preferred_scheduling_term.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/probe.py b/sdks/python/client/argo_workflows/model/probe.py index 62a0f9a15ab4..6d4db72e996c 100644 --- a/sdks/python/client/argo_workflows/model/probe.py +++ b/sdks/python/client/argo_workflows/model/probe.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/projected_volume_source.py b/sdks/python/client/argo_workflows/model/projected_volume_source.py index e4397283ea9c..9b859e15f0a2 100644 --- a/sdks/python/client/argo_workflows/model/projected_volume_source.py +++ b/sdks/python/client/argo_workflows/model/projected_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/quobyte_volume_source.py b/sdks/python/client/argo_workflows/model/quobyte_volume_source.py index 90ac26d8f6b4..cb37fd459055 100644 --- a/sdks/python/client/argo_workflows/model/quobyte_volume_source.py +++ b/sdks/python/client/argo_workflows/model/quobyte_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/rbd_volume_source.py b/sdks/python/client/argo_workflows/model/rbd_volume_source.py index 41e6bd2e0c27..1770e081e7a6 100644 --- a/sdks/python/client/argo_workflows/model/rbd_volume_source.py +++ b/sdks/python/client/argo_workflows/model/rbd_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/resource_field_selector.py b/sdks/python/client/argo_workflows/model/resource_field_selector.py index 0edb90b1c5a1..1e9b53ee2cf0 100644 --- a/sdks/python/client/argo_workflows/model/resource_field_selector.py +++ b/sdks/python/client/argo_workflows/model/resource_field_selector.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/resource_requirements.py b/sdks/python/client/argo_workflows/model/resource_requirements.py index 4dc69aec3401..bf7333376acb 100644 --- a/sdks/python/client/argo_workflows/model/resource_requirements.py +++ b/sdks/python/client/argo_workflows/model/resource_requirements.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/scale_io_volume_source.py b/sdks/python/client/argo_workflows/model/scale_io_volume_source.py index 5ffe10e5f68b..eda4fac83908 100644 --- a/sdks/python/client/argo_workflows/model/scale_io_volume_source.py +++ b/sdks/python/client/argo_workflows/model/scale_io_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/se_linux_options.py b/sdks/python/client/argo_workflows/model/se_linux_options.py index 440b21ab91cc..bb320b6fbc59 100644 --- a/sdks/python/client/argo_workflows/model/se_linux_options.py +++ b/sdks/python/client/argo_workflows/model/se_linux_options.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/seccomp_profile.py b/sdks/python/client/argo_workflows/model/seccomp_profile.py index beb128e6022e..482014d80dcc 100644 --- a/sdks/python/client/argo_workflows/model/seccomp_profile.py +++ b/sdks/python/client/argo_workflows/model/seccomp_profile.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/secret_env_source.py b/sdks/python/client/argo_workflows/model/secret_env_source.py index 8a3f9ae7bf2a..0c303b0c4546 100644 --- a/sdks/python/client/argo_workflows/model/secret_env_source.py +++ b/sdks/python/client/argo_workflows/model/secret_env_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/secret_key_selector.py b/sdks/python/client/argo_workflows/model/secret_key_selector.py index e32dd7992efd..d354513f0906 100644 --- a/sdks/python/client/argo_workflows/model/secret_key_selector.py +++ b/sdks/python/client/argo_workflows/model/secret_key_selector.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/secret_projection.py b/sdks/python/client/argo_workflows/model/secret_projection.py index fbe021c9aa78..fe2e1fc803c9 100644 --- a/sdks/python/client/argo_workflows/model/secret_projection.py +++ b/sdks/python/client/argo_workflows/model/secret_projection.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/secret_volume_source.py b/sdks/python/client/argo_workflows/model/secret_volume_source.py index dc41ba6e1f4b..6a9937a5dfa8 100644 --- a/sdks/python/client/argo_workflows/model/secret_volume_source.py +++ b/sdks/python/client/argo_workflows/model/secret_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/security_context.py b/sdks/python/client/argo_workflows/model/security_context.py index 98bf81b43387..dfd5d9d50dc3 100644 --- a/sdks/python/client/argo_workflows/model/security_context.py +++ b/sdks/python/client/argo_workflows/model/security_context.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/sensor_create_sensor_request.py b/sdks/python/client/argo_workflows/model/sensor_create_sensor_request.py index a251db575210..8531edf5e003 100644 --- a/sdks/python/client/argo_workflows/model/sensor_create_sensor_request.py +++ b/sdks/python/client/argo_workflows/model/sensor_create_sensor_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/sensor_log_entry.py b/sdks/python/client/argo_workflows/model/sensor_log_entry.py index 0821c83f83f3..e12a28193b7a 100644 --- a/sdks/python/client/argo_workflows/model/sensor_log_entry.py +++ b/sdks/python/client/argo_workflows/model/sensor_log_entry.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/sensor_sensor_watch_event.py b/sdks/python/client/argo_workflows/model/sensor_sensor_watch_event.py index 4cf565d0a55e..ccb997b14b8c 100644 --- a/sdks/python/client/argo_workflows/model/sensor_sensor_watch_event.py +++ b/sdks/python/client/argo_workflows/model/sensor_sensor_watch_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/sensor_update_sensor_request.py b/sdks/python/client/argo_workflows/model/sensor_update_sensor_request.py index 570a3d04c838..c9953ac5a4d5 100644 --- a/sdks/python/client/argo_workflows/model/sensor_update_sensor_request.py +++ b/sdks/python/client/argo_workflows/model/sensor_update_sensor_request.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/service_account_token_projection.py b/sdks/python/client/argo_workflows/model/service_account_token_projection.py index 4954dde441f2..1c404e73ae13 100644 --- a/sdks/python/client/argo_workflows/model/service_account_token_projection.py +++ b/sdks/python/client/argo_workflows/model/service_account_token_projection.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/service_port.py b/sdks/python/client/argo_workflows/model/service_port.py index cdf494341feb..7cb1b6ae79ee 100644 --- a/sdks/python/client/argo_workflows/model/service_port.py +++ b/sdks/python/client/argo_workflows/model/service_port.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/status_cause.py b/sdks/python/client/argo_workflows/model/status_cause.py index 0a0a96a94d31..7b04f5999fd1 100644 --- a/sdks/python/client/argo_workflows/model/status_cause.py +++ b/sdks/python/client/argo_workflows/model/status_cause.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/storage_os_volume_source.py b/sdks/python/client/argo_workflows/model/storage_os_volume_source.py index 54458e7cd10a..5fffb4782881 100644 --- a/sdks/python/client/argo_workflows/model/storage_os_volume_source.py +++ b/sdks/python/client/argo_workflows/model/storage_os_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/stream_result_of_event.py b/sdks/python/client/argo_workflows/model/stream_result_of_event.py index f1ad28d8c24e..45242221bf49 100644 --- a/sdks/python/client/argo_workflows/model/stream_result_of_event.py +++ b/sdks/python/client/argo_workflows/model/stream_result_of_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_event_source_watch_event.py b/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_event_source_watch_event.py index e0b19fac1484..0d3077321600 100644 --- a/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_event_source_watch_event.py +++ b/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_event_source_watch_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_log_entry.py b/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_log_entry.py index 0c4cc4824b2b..94bfa157f637 100644 --- a/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_log_entry.py +++ b/sdks/python/client/argo_workflows/model/stream_result_of_eventsource_log_entry.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_log_entry.py b/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_log_entry.py index 9edecff77b48..de0f30fd2778 100644 --- a/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_log_entry.py +++ b/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_log_entry.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_workflow_watch_event.py b/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_workflow_watch_event.py index 23af49e4d190..6639ced8a64f 100644 --- a/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_workflow_watch_event.py +++ b/sdks/python/client/argo_workflows/model/stream_result_of_io_argoproj_workflow_v1alpha1_workflow_watch_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/stream_result_of_sensor_log_entry.py b/sdks/python/client/argo_workflows/model/stream_result_of_sensor_log_entry.py index 2b601f153edf..2709ad6f6cb6 100644 --- a/sdks/python/client/argo_workflows/model/stream_result_of_sensor_log_entry.py +++ b/sdks/python/client/argo_workflows/model/stream_result_of_sensor_log_entry.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/stream_result_of_sensor_sensor_watch_event.py b/sdks/python/client/argo_workflows/model/stream_result_of_sensor_sensor_watch_event.py index 626072a77c89..cd26d39e42ed 100644 --- a/sdks/python/client/argo_workflows/model/stream_result_of_sensor_sensor_watch_event.py +++ b/sdks/python/client/argo_workflows/model/stream_result_of_sensor_sensor_watch_event.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/sysctl.py b/sdks/python/client/argo_workflows/model/sysctl.py index ad5400c8e23a..6d85b12f33ee 100644 --- a/sdks/python/client/argo_workflows/model/sysctl.py +++ b/sdks/python/client/argo_workflows/model/sysctl.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/tcp_socket_action.py b/sdks/python/client/argo_workflows/model/tcp_socket_action.py index 5f752ed9d6a0..8112c8e46b28 100644 --- a/sdks/python/client/argo_workflows/model/tcp_socket_action.py +++ b/sdks/python/client/argo_workflows/model/tcp_socket_action.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/toleration.py b/sdks/python/client/argo_workflows/model/toleration.py index eba3e0ab5f5c..7dab80314165 100644 --- a/sdks/python/client/argo_workflows/model/toleration.py +++ b/sdks/python/client/argo_workflows/model/toleration.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/typed_local_object_reference.py b/sdks/python/client/argo_workflows/model/typed_local_object_reference.py index f0c4a70b842e..c4e49888a641 100644 --- a/sdks/python/client/argo_workflows/model/typed_local_object_reference.py +++ b/sdks/python/client/argo_workflows/model/typed_local_object_reference.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/volume.py b/sdks/python/client/argo_workflows/model/volume.py index d23397556611..87804bbaf8e3 100644 --- a/sdks/python/client/argo_workflows/model/volume.py +++ b/sdks/python/client/argo_workflows/model/volume.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/volume_device.py b/sdks/python/client/argo_workflows/model/volume_device.py index 2337bb6bc23c..e41e46155c4e 100644 --- a/sdks/python/client/argo_workflows/model/volume_device.py +++ b/sdks/python/client/argo_workflows/model/volume_device.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/volume_mount.py b/sdks/python/client/argo_workflows/model/volume_mount.py index ff4d3ce416e0..df5fdfc1e8aa 100644 --- a/sdks/python/client/argo_workflows/model/volume_mount.py +++ b/sdks/python/client/argo_workflows/model/volume_mount.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/volume_projection.py b/sdks/python/client/argo_workflows/model/volume_projection.py index f3389ad535bd..96190cdd7041 100644 --- a/sdks/python/client/argo_workflows/model/volume_projection.py +++ b/sdks/python/client/argo_workflows/model/volume_projection.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/vsphere_virtual_disk_volume_source.py b/sdks/python/client/argo_workflows/model/vsphere_virtual_disk_volume_source.py index a3061a6f74eb..8a5cfc548be5 100644 --- a/sdks/python/client/argo_workflows/model/vsphere_virtual_disk_volume_source.py +++ b/sdks/python/client/argo_workflows/model/vsphere_virtual_disk_volume_source.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/weighted_pod_affinity_term.py b/sdks/python/client/argo_workflows/model/weighted_pod_affinity_term.py index a8fe45b3c653..869097838c40 100644 --- a/sdks/python/client/argo_workflows/model/weighted_pod_affinity_term.py +++ b/sdks/python/client/argo_workflows/model/weighted_pod_affinity_term.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model/windows_security_context_options.py b/sdks/python/client/argo_workflows/model/windows_security_context_options.py index cd829149f968..9de1b0f21f94 100644 --- a/sdks/python/client/argo_workflows/model/windows_security_context_options.py +++ b/sdks/python/client/argo_workflows/model/windows_security_context_options.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/model_utils.py b/sdks/python/client/argo_workflows/model_utils.py index 78f715c115b6..936496772dfd 100644 --- a/sdks/python/client/argo_workflows/model_utils.py +++ b/sdks/python/client/argo_workflows/model_utils.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/argo_workflows/models/__init__.py b/sdks/python/client/argo_workflows/models/__init__.py index eabd9ead7803..4975b93fff42 100644 --- a/sdks/python/client/argo_workflows/models/__init__.py +++ b/sdks/python/client/argo_workflows/models/__init__.py @@ -193,6 +193,7 @@ from argo_workflows.model.io_argoproj_workflow_v1alpha1_cluster_workflow_template_list import IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateList from argo_workflows.model.io_argoproj_workflow_v1alpha1_cluster_workflow_template_update_request import IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateUpdateRequest from argo_workflows.model.io_argoproj_workflow_v1alpha1_collect_event_request import IoArgoprojWorkflowV1alpha1CollectEventRequest +from argo_workflows.model.io_argoproj_workflow_v1alpha1_column import IoArgoprojWorkflowV1alpha1Column from argo_workflows.model.io_argoproj_workflow_v1alpha1_condition import IoArgoprojWorkflowV1alpha1Condition from argo_workflows.model.io_argoproj_workflow_v1alpha1_container_node import IoArgoprojWorkflowV1alpha1ContainerNode from argo_workflows.model.io_argoproj_workflow_v1alpha1_container_set_retry_strategy import IoArgoprojWorkflowV1alpha1ContainerSetRetryStrategy @@ -316,7 +317,7 @@ from argo_workflows.model.io_argoproj_workflow_v1alpha1_workflow_template_update_request import IoArgoprojWorkflowV1alpha1WorkflowTemplateUpdateRequest from argo_workflows.model.io_argoproj_workflow_v1alpha1_workflow_terminate_request import IoArgoprojWorkflowV1alpha1WorkflowTerminateRequest from argo_workflows.model.io_argoproj_workflow_v1alpha1_workflow_watch_event import IoArgoprojWorkflowV1alpha1WorkflowWatchEvent -from argo_workflows.model.io_k8s_api_policy_v1beta1_pod_disruption_budget_spec import IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec +from argo_workflows.model.io_k8s_api_policy_v1_pod_disruption_budget_spec import IoK8sApiPolicyV1PodDisruptionBudgetSpec from argo_workflows.model.key_to_path import KeyToPath from argo_workflows.model.label_selector import LabelSelector from argo_workflows.model.label_selector_requirement import LabelSelectorRequirement diff --git a/sdks/python/client/argo_workflows/rest.py b/sdks/python/client/argo_workflows/rest.py index 12da67a0be99..e476a1d5618a 100644 --- a/sdks/python/client/argo_workflows/rest.py +++ b/sdks/python/client/argo_workflows/rest.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech diff --git a/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md b/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md index 32e006a3cd95..9f3cd8d10c29 100644 --- a/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md +++ b/sdks/python/client/docs/ClusterWorkflowTemplateServiceApi.md @@ -940,7 +940,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -11740,7 +11740,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -22444,7 +22444,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( diff --git a/sdks/python/client/docs/CronWorkflowServiceApi.md b/sdks/python/client/docs/CronWorkflowServiceApi.md index 385237c1d41b..b7270215efb5 100644 --- a/sdks/python/client/docs/CronWorkflowServiceApi.md +++ b/sdks/python/client/docs/CronWorkflowServiceApi.md @@ -994,7 +994,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -11867,7 +11867,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -22825,7 +22825,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Column.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Column.md new file mode 100644 index 000000000000..c54e15b0f8d6 --- /dev/null +++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Column.md @@ -0,0 +1,15 @@ +# IoArgoprojWorkflowV1alpha1Column + +Column is a custom column that will be exposed in the Workflow List View. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**key** | **str** | The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\". | +**name** | **str** | The name of this column, e.g., \"Workflow Completed\". | +**type** | **str** | The type of this column, \"label\" or \"annotation\". | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md index 2a9cc31f0e6c..114be4fafab8 100644 --- a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md +++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1InfoResponse.md @@ -4,6 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**columns** | [**[IoArgoprojWorkflowV1alpha1Column]**](IoArgoprojWorkflowV1alpha1Column.md) | | [optional] **links** | [**[IoArgoprojWorkflowV1alpha1Link]**](IoArgoprojWorkflowV1alpha1Link.md) | | [optional] **managed_namespace** | **str** | | [optional] **modals** | **{str: (bool,)}** | | [optional] diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Link.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Link.md index 58848ebdc54b..d45f0220ef51 100644 --- a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Link.md +++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1Link.md @@ -6,7 +6,7 @@ A link to another app. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **str** | The name of the link, E.g. \"Workflow Logs\" or \"Pod Logs\" | -**scope** | **str** | \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\" or \"chat\" | +**scope** | **str** | \"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\" | **url** | **str** | The URL. Can contain \"${metadata.namespace}\", \"${metadata.name}\", \"${status.startedAt}\", \"${status.finishedAt}\" or any other element in workflow yaml, e.g. \"${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}\" | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md index bdefdbd4d386..3db201a0d997 100644 --- a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md +++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1NodeStatus.md @@ -20,7 +20,7 @@ Name | Type | Description | Notes **message** | **str** | A human readable message indicating details about why the node is in this condition. | [optional] **outbound_nodes** | **[str]** | OutboundNodes tracks the node IDs which are considered \"outbound\" nodes to a template invocation. For every invocation of a template, there are nodes which we considered as \"outbound\". Essentially, these are last nodes in the execution sequence to run, before the template is considered completed. These nodes are then connected as parents to a following step. In the case of single pod steps (i.e. container, script, resource templates), this list will be nil since the pod itself is already considered the \"outbound\" node. In the case of DAGs, outbound nodes are the \"target\" tasks (tasks with no children). In the case of steps, outbound nodes are all the containers involved in the last step group. NOTE: since templates are composable, the list of outbound nodes are carried upwards when a DAG/steps template invokes another DAG/steps template. In other words, the outbound nodes of a template, will be a superset of the outbound nodes of its last children. | [optional] **outputs** | [**IoArgoprojWorkflowV1alpha1Outputs**](IoArgoprojWorkflowV1alpha1Outputs.md) | | [optional] -**phase** | **str** | Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. | [optional] +**phase** | **str** | Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state. | [optional] **pod_ip** | **str** | PodIP captures the IP of the pod for daemoned steps | [optional] **progress** | **str** | Progress to completion | [optional] **resources_duration** | **{str: (int,)}** | ResourcesDuration is indicative, but not accurate, resource duration. This is populated when the nodes completes. | [optional] diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md index 4c7208c35ec0..31132da3344f 100644 --- a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md +++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowSpec.md @@ -24,7 +24,7 @@ Name | Type | Description | Notes **node_selector** | **{str: (str,)}** | NodeSelector is a selector which will result in all pods of the workflow to be scheduled on the selected node(s). This is able to be overridden by a nodeSelector specified in the template. | [optional] **on_exit** | **str** | OnExit is a template reference which is invoked at the end of the workflow, irrespective of the success, failure, or error of the primary io.argoproj.workflow.v1alpha1. | [optional] **parallelism** | **int** | Parallelism limits the max total parallel pods that can execute at the same time in a workflow | [optional] -**pod_disruption_budget** | [**IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec**](IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md) | | [optional] +**pod_disruption_budget** | [**IoK8sApiPolicyV1PodDisruptionBudgetSpec**](IoK8sApiPolicyV1PodDisruptionBudgetSpec.md) | | [optional] **pod_gc** | [**IoArgoprojWorkflowV1alpha1PodGC**](IoArgoprojWorkflowV1alpha1PodGC.md) | | [optional] **pod_metadata** | [**IoArgoprojWorkflowV1alpha1Metadata**](IoArgoprojWorkflowV1alpha1Metadata.md) | | [optional] **pod_priority** | **int** | Priority to apply to workflow pods. DEPRECATED: Use PodPriorityClassName instead. | [optional] diff --git a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md index 3d6c50ccff76..5c16f28239b5 100644 --- a/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md +++ b/sdks/python/client/docs/IoArgoprojWorkflowV1alpha1WorkflowStatus.md @@ -16,7 +16,7 @@ Name | Type | Description | Notes **offload_node_status_version** | **str** | Whether on not node status has been offloaded to a database. If exists, then Nodes and CompressedNodes will be empty. This will actually be populated with a hash of the offloaded data. | [optional] **outputs** | [**IoArgoprojWorkflowV1alpha1Outputs**](IoArgoprojWorkflowV1alpha1Outputs.md) | | [optional] **persistent_volume_claims** | [**[Volume]**](Volume.md) | PersistentVolumeClaims tracks all PVCs that were created as part of the io.argoproj.workflow.v1alpha1. The contents of this list are drained at the end of the workflow. | [optional] -**phase** | **str** | Phase a simple, high-level summary of where the workflow is in its lifecycle. | [optional] +**phase** | **str** | Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed. | [optional] **progress** | **str** | Progress to completion | [optional] **resources_duration** | **{str: (int,)}** | ResourcesDuration is the total for the workflow | [optional] **started_at** | **datetime** | Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. | [optional] diff --git a/sdks/python/client/docs/IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md b/sdks/python/client/docs/IoK8sApiPolicyV1PodDisruptionBudgetSpec.md similarity index 93% rename from sdks/python/client/docs/IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md rename to sdks/python/client/docs/IoK8sApiPolicyV1PodDisruptionBudgetSpec.md index 6be71280f21e..07dbace72e08 100644 --- a/sdks/python/client/docs/IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec.md +++ b/sdks/python/client/docs/IoK8sApiPolicyV1PodDisruptionBudgetSpec.md @@ -1,4 +1,4 @@ -# IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec +# IoK8sApiPolicyV1PodDisruptionBudgetSpec PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. diff --git a/sdks/python/client/docs/WorkflowServiceApi.md b/sdks/python/client/docs/WorkflowServiceApi.md index b923463bc473..1843670077bf 100644 --- a/sdks/python/client/docs/WorkflowServiceApi.md +++ b/sdks/python/client/docs/WorkflowServiceApi.md @@ -955,7 +955,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -17313,7 +17313,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -28152,7 +28152,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -44510,7 +44510,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( diff --git a/sdks/python/client/docs/WorkflowTemplateServiceApi.md b/sdks/python/client/docs/WorkflowTemplateServiceApi.md index b34d2fe6bf7c..3aeb2bad2907 100644 --- a/sdks/python/client/docs/WorkflowTemplateServiceApi.md +++ b/sdks/python/client/docs/WorkflowTemplateServiceApi.md @@ -942,7 +942,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -11749,7 +11749,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( @@ -22465,7 +22465,7 @@ with argo_workflows.ApiClient(configuration) as api_client: }, on_exit="on_exit_example", parallelism=1, - pod_disruption_budget=IoK8sApiPolicyV1beta1PodDisruptionBudgetSpec( + pod_disruption_budget=IoK8sApiPolicyV1PodDisruptionBudgetSpec( max_unavailable="max_unavailable_example", min_available="min_available_example", selector=LabelSelector( diff --git a/sdks/python/client/setup.py b/sdks/python/client/setup.py index c6b0279da339..626fb2a59826 100644 --- a/sdks/python/client/setup.py +++ b/sdks/python/client/setup.py @@ -1,7 +1,7 @@ """ Argo Workflows API - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 The version of the OpenAPI document: VERSION Generated by: https://openapi-generator.tech @@ -37,6 +37,6 @@ packages=find_packages(exclude=["test", "tests"]), include_package_data=True, long_description="""\ - Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/ # noqa: E501 + Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/release-3.4/ # noqa: E501 """ ) diff --git a/server/apiserver/argoserver.go b/server/apiserver/argoserver.go index 599eaac248d9..d62dc615cb49 100644 --- a/server/apiserver/argoserver.go +++ b/server/apiserver/argoserver.go @@ -63,7 +63,7 @@ import ( "github.com/argoproj/argo-workflows/v3/workflow/events" "github.com/argoproj/argo-workflows/v3/workflow/hydrator" - limiter "github.com/sethvargo/go-limiter" + "github.com/sethvargo/go-limiter" "github.com/sethvargo/go-limiter/httplimit" "github.com/sethvargo/go-limiter/memorystore" ) @@ -142,8 +142,11 @@ func NewArgoServer(ctx context.Context, opts ArgoServerOpts) (*argoServer, error if err != nil { return nil, err } - resourceCache = cache.NewResourceCache(opts.Clients.Kubernetes, getResourceCacheNamespace(opts)) - resourceCache.Run(ctx.Done()) + if ssoIf.IsRBACEnabled() { + // resourceCache is only used for SSO RBAC + resourceCache = cache.NewResourceCache(opts.Clients.Kubernetes, getResourceCacheNamespace(opts)) + resourceCache.Run(ctx.Done()) + } log.Info("SSO enabled") } else { log.Info("SSO disabled") @@ -204,7 +207,11 @@ func (as *argoServer) Run(ctx context.Context, port int, browserOpenFunc func(st wfArchive := sqldb.NullWorkflowArchive persistence := config.Persistence if persistence != nil { - session, tableName, err := sqldb.CreateDBSession(as.clients.Kubernetes, as.namespace, persistence) + session, err := sqldb.CreateDBSession(as.clients.Kubernetes, as.namespace, persistence) + if err != nil { + log.Fatal(err) + } + tableName, err := sqldb.GetTableName(persistence) if err != nil { log.Fatal(err) } @@ -222,7 +229,7 @@ func (as *argoServer) Run(ctx context.Context, port int, browserOpenFunc func(st artifactRepositories := artifactrepositories.New(as.clients.Kubernetes, as.managedNamespace, &config.ArtifactRepository) artifactServer := artifacts.NewArtifactServer(as.gatekeeper, hydrator.New(offloadRepo), wfArchive, instanceIDService, artifactRepositories) eventServer := event.NewController(instanceIDService, eventRecorderManager, as.eventQueueSize, as.eventWorkerCount, as.eventAsyncDispatch) - grpcServer := as.newGRPCServer(instanceIDService, offloadRepo, wfArchive, eventServer, config.Links, config.NavColor) + grpcServer := as.newGRPCServer(instanceIDService, offloadRepo, wfArchive, eventServer, config.Links, config.Columns, config.NavColor) httpServer := as.newHTTPServer(ctx, port, artifactServer) // Start listener @@ -268,7 +275,7 @@ func (as *argoServer) Run(ctx context.Context, port int, browserOpenFunc func(st <-as.stopCh } -func (as *argoServer) newGRPCServer(instanceIDService instanceid.Service, offloadNodeStatusRepo sqldb.OffloadNodeStatusRepo, wfArchive sqldb.WorkflowArchive, eventServer *event.Controller, links []*v1alpha1.Link, navColor string) *grpc.Server { +func (as *argoServer) newGRPCServer(instanceIDService instanceid.Service, offloadNodeStatusRepo sqldb.OffloadNodeStatusRepo, wfArchive sqldb.WorkflowArchive, eventServer *event.Controller, links []*v1alpha1.Link, columns []*v1alpha1.Column, navColor string) *grpc.Server { serverLog := log.NewEntry(log.StandardLogger()) // "Prometheus histograms are a great way to measure latency distributions of your RPCs. However, since it is bad practice to have metrics of high cardinality the latency monitoring metrics are disabled by default. To enable them please call the following in your server initialization code:" @@ -301,7 +308,7 @@ func (as *argoServer) newGRPCServer(instanceIDService instanceid.Service, offloa grpcServer := grpc.NewServer(sOpts...) - infopkg.RegisterInfoServiceServer(grpcServer, info.NewInfoServer(as.managedNamespace, links, navColor)) + infopkg.RegisterInfoServiceServer(grpcServer, info.NewInfoServer(as.managedNamespace, links, columns, navColor)) eventpkg.RegisterEventServiceServer(grpcServer, eventServer) eventsourcepkg.RegisterEventSourceServiceServer(grpcServer, eventsource.NewEventSourceServer()) sensorpkg.RegisterSensorServiceServer(grpcServer, sensor.NewSensorServer()) diff --git a/server/artifacts/artifact_server.go b/server/artifacts/artifact_server.go index 473b794c1398..2a3e8eca7544 100644 --- a/server/artifacts/artifact_server.go +++ b/server/artifacts/artifact_server.go @@ -378,10 +378,16 @@ func (a *ArtifactServer) getArtifactAndDriver(ctx context.Context, nodeId, artif kubeClient := auth.GetKubeClient(ctx) var art *wfv1.Artifact + + nodeStatus, err := wf.Status.Nodes.Get(nodeId) + if err != nil { + log.Errorf("Was unable to retrieve node for %s", nodeId) + return nil, nil, fmt.Errorf("was not able to retrieve node") + } if isInput { - art = wf.Status.Nodes[nodeId].Inputs.GetArtifactByName(artifactName) + art = nodeStatus.Inputs.GetArtifactByName(artifactName) } else { - art = wf.Status.Nodes[nodeId].Outputs.GetArtifactByName(artifactName) + art = nodeStatus.Outputs.GetArtifactByName(artifactName) } if art == nil { return nil, nil, fmt.Errorf("artifact not found: %s, isInput=%t, Workflow Status=%+v", artifactName, isInput, wf.Status) @@ -395,7 +401,12 @@ func (a *ArtifactServer) getArtifactAndDriver(ctx context.Context, nodeId, artif // 5. Inline Template var archiveLocation *wfv1.ArtifactLocation - templateName := util.GetTemplateFromNode(wf.Status.Nodes[nodeId]) + templateNode, err := wf.Status.Nodes.Get(nodeId) + if err != nil { + log.Errorf("was unable to retrieve node for %s", nodeId) + return nil, nil, fmt.Errorf("Unable to get artifact and driver due to inability to get node due for %s, err=%s", nodeId, err) + } + templateName := util.GetTemplateFromNode(*templateNode) if templateName != "" { template := wf.GetTemplateByName(templateName) if template == nil { @@ -412,7 +423,7 @@ func (a *ArtifactServer) getArtifactAndDriver(ctx context.Context, nodeId, artif archiveLocation = ar.ToArtifactLocation() } - err := art.Relocate(archiveLocation) // if the Artifact defines the location (case 1), it will be used; otherwise whatever archiveLocation is set to + err = art.Relocate(archiveLocation) // if the Artifact defines the location (case 1), it will be used; otherwise whatever archiveLocation is set to if err != nil { return art, nil, err } diff --git a/server/auth/mocks/Gatekeeper.go b/server/auth/mocks/Gatekeeper.go index f4a570579ab3..f9cbf136761f 100644 --- a/server/auth/mocks/Gatekeeper.go +++ b/server/auth/mocks/Gatekeeper.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.10.0. DO NOT EDIT. +// Code generated by mockery v2.26.0. DO NOT EDIT. package mocks @@ -20,6 +20,10 @@ func (_m *Gatekeeper) Context(ctx context.Context) (context.Context, error) { ret := _m.Called(ctx) var r0 context.Context + var r1 error + if rf, ok := ret.Get(0).(func(context.Context) (context.Context, error)); ok { + return rf(ctx) + } if rf, ok := ret.Get(0).(func(context.Context) context.Context); ok { r0 = rf(ctx) } else { @@ -28,7 +32,6 @@ func (_m *Gatekeeper) Context(ctx context.Context) (context.Context, error) { } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context) error); ok { r1 = rf(ctx) } else { @@ -43,6 +46,10 @@ func (_m *Gatekeeper) ContextWithRequest(ctx context.Context, req interface{}) ( ret := _m.Called(ctx, req) var r0 context.Context + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, interface{}) (context.Context, error)); ok { + return rf(ctx, req) + } if rf, ok := ret.Get(0).(func(context.Context, interface{}) context.Context); ok { r0 = rf(ctx, req) } else { @@ -51,7 +58,6 @@ func (_m *Gatekeeper) ContextWithRequest(ctx context.Context, req interface{}) ( } } - var r1 error if rf, ok := ret.Get(1).(func(context.Context, interface{}) error); ok { r1 = rf(ctx, req) } else { @@ -92,3 +98,18 @@ func (_m *Gatekeeper) UnaryServerInterceptor() grpc.UnaryServerInterceptor { return r0 } + +type mockConstructorTestingTNewGatekeeper interface { + mock.TestingT + Cleanup(func()) +} + +// NewGatekeeper creates a new instance of Gatekeeper. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewGatekeeper(t mockConstructorTestingTNewGatekeeper) *Gatekeeper { + mock := &Gatekeeper{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/server/auth/sso/mocks/Interface.go b/server/auth/sso/mocks/Interface.go index a2ab5d3eb9c1..205f8fd6d5d2 100644 --- a/server/auth/sso/mocks/Interface.go +++ b/server/auth/sso/mocks/Interface.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.10.0. DO NOT EDIT. +// Code generated by mockery v2.26.0. DO NOT EDIT. package mocks @@ -20,6 +20,10 @@ func (_m *Interface) Authorize(authorization string) (*types.Claims, error) { ret := _m.Called(authorization) var r0 *types.Claims + var r1 error + if rf, ok := ret.Get(0).(func(string) (*types.Claims, error)); ok { + return rf(authorization) + } if rf, ok := ret.Get(0).(func(string) *types.Claims); ok { r0 = rf(authorization) } else { @@ -28,7 +32,6 @@ func (_m *Interface) Authorize(authorization string) (*types.Claims, error) { } } - var r1 error if rf, ok := ret.Get(1).(func(string) error); ok { r1 = rf(authorization) } else { @@ -61,3 +64,18 @@ func (_m *Interface) IsRBACEnabled() bool { return r0 } + +type mockConstructorTestingTNewInterface interface { + mock.TestingT + Cleanup(func()) +} + +// NewInterface creates a new instance of Interface. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewInterface(t mockConstructorTestingTNewInterface) *Interface { + mock := &Interface{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/server/auth/sso/sso.go b/server/auth/sso/sso.go index 1ffe8efe6f67..bddde380c952 100644 --- a/server/auth/sso/sso.go +++ b/server/auth/sso/sso.go @@ -9,6 +9,7 @@ import ( "crypto/x509" "fmt" "net/http" + "regexp" "strings" "time" @@ -49,18 +50,19 @@ var _ Interface = &sso{} type Config = config.SSOConfig type sso struct { - config *oauth2.Config - issuer string - idTokenVerifier *oidc.IDTokenVerifier - httpClient *http.Client - baseHRef string - secure bool - privateKey crypto.PrivateKey - encrypter jose.Encrypter - rbacConfig *config.RBACConfig - expiry time.Duration - customClaimName string - userInfoPath string + config *oauth2.Config + issuer string + idTokenVerifier *oidc.IDTokenVerifier + httpClient *http.Client + baseHRef string + secure bool + privateKey crypto.PrivateKey + encrypter jose.Encrypter + rbacConfig *config.RBACConfig + expiry time.Duration + customClaimName string + userInfoPath string + filterGroupsRegex []*regexp.Regexp } func (s *sso) IsRBACEnabled() bool { @@ -181,25 +183,38 @@ func newSso( if err != nil { return nil, fmt.Errorf("failed to create JWT encrpytor: %w", err) } - lf := log.Fields{"redirectUrl": config.RedirectURL, "issuer": c.Issuer, "issuerAlias": "DISABLED", "clientId": c.ClientID, "scopes": config.Scopes, "insecureSkipVerify": c.InsecureSkipVerify} + + var filterGroupsRegex []*regexp.Regexp + if c.FilterGroupsRegex != nil && len(c.FilterGroupsRegex) > 0 { + for _, regex := range c.FilterGroupsRegex { + compiledRegex, err := regexp.Compile(regex) + if err != nil { + return nil, fmt.Errorf("failed to compile sso.filterGroupRegex: %s %w", regex, err) + } + filterGroupsRegex = append(filterGroupsRegex, compiledRegex) + } + } + + lf := log.Fields{"redirectUrl": config.RedirectURL, "issuer": c.Issuer, "issuerAlias": "DISABLED", "clientId": c.ClientID, "scopes": config.Scopes, "insecureSkipVerify": c.InsecureSkipVerify, "filterGroupsRegex": c.FilterGroupsRegex} if c.IssuerAlias != "" { lf["issuerAlias"] = c.IssuerAlias } log.WithFields(lf).Info("SSO configuration") return &sso{ - config: config, - idTokenVerifier: idTokenVerifier, - baseHRef: baseHRef, - httpClient: httpClient, - secure: secure, - privateKey: privateKey, - encrypter: encrypter, - rbacConfig: c.RBAC, - expiry: c.GetSessionExpiry(), - customClaimName: c.CustomGroupClaimName, - userInfoPath: c.UserInfoPath, - issuer: c.Issuer, + config: config, + idTokenVerifier: idTokenVerifier, + baseHRef: baseHRef, + httpClient: httpClient, + secure: secure, + privateKey: privateKey, + encrypter: encrypter, + rbacConfig: c.RBAC, + expiry: c.GetSessionExpiry(), + customClaimName: c.CustomGroupClaimName, + userInfoPath: c.UserInfoPath, + issuer: c.Issuer, + filterGroupsRegex: filterGroupsRegex, }, nil } @@ -263,8 +278,7 @@ func (s *sso) HandleCallback(w http.ResponseWriter, r *http.Request) { if s.customClaimName != "" { groups, err = c.GetCustomGroup(s.customClaimName) if err != nil { - w.WriteHeader(401) - return + log.Warn(err) } } @@ -278,6 +292,20 @@ func (s *sso) HandleCallback(w http.ResponseWriter, r *http.Request) { } } + // only return groups that match at least one of the regexes + if s.filterGroupsRegex != nil && len(s.filterGroupsRegex) > 0 { + var filteredGroups []string + for _, group := range groups { + for _, regex := range s.filterGroupsRegex { + if regex.MatchString(group) { + filteredGroups = append(filteredGroups, group) + break + } + } + } + groups = filteredGroups + } + argoClaims := &types.Claims{ Claims: jwt.Claims{ Issuer: issuer, @@ -285,7 +313,6 @@ func (s *sso) HandleCallback(w http.ResponseWriter, r *http.Request) { Expiry: jwt.NewNumericDate(time.Now().Add(s.expiry)), }, Groups: groups, - RawClaim: c.RawClaim, Email: c.Email, EmailVerified: c.EmailVerified, ServiceAccountName: c.ServiceAccountName, diff --git a/server/info/info_server.go b/server/info/info_server.go index 3f14e819d29b..abdb1708e1ee 100644 --- a/server/info/info_server.go +++ b/server/info/info_server.go @@ -15,6 +15,7 @@ import ( type infoServer struct { managedNamespace string links []*wfv1.Link + columns []*wfv1.Column navColor string } @@ -43,6 +44,7 @@ func (i *infoServer) GetInfo(context.Context, *infopkg.GetInfoRequest) (*infopkg return &infopkg.InfoResponse{ ManagedNamespace: i.managedNamespace, Links: i.links, + Columns: i.columns, Modals: modals, NavColor: i.navColor, }, nil @@ -69,6 +71,6 @@ func (i *infoServer) CollectEvent(ctx context.Context, req *infopkg.CollectEvent return &infopkg.CollectEventResponse{}, nil } -func NewInfoServer(managedNamespace string, links []*wfv1.Link, navColor string) infopkg.InfoServiceServer { - return &infoServer{managedNamespace, links, navColor} +func NewInfoServer(managedNamespace string, links []*wfv1.Link, columns []*wfv1.Column, navColor string) infopkg.InfoServiceServer { + return &infoServer{managedNamespace, links, columns, navColor} } diff --git a/server/info/info_server_test.go b/server/info/info_server_test.go index c1cdc62ff502..f9263e48fa04 100644 --- a/server/info/info_server_test.go +++ b/server/info/info_server_test.go @@ -33,6 +33,9 @@ func Test_infoServer_GetInfo(t *testing.T) { links: []*wfv1.Link{ {Name: "link-name", Scope: "scope", URL: "https://example.com"}, }, + columns: []*wfv1.Column{ + {Name: "Workflow Completed", Type: "label", Key: "workflows.argoproj.io/completed"}, + }, navColor: "red", } info, err := i.GetInfo(context.TODO(), nil) @@ -40,6 +43,9 @@ func Test_infoServer_GetInfo(t *testing.T) { assert.Equal(t, "argo", info.ManagedNamespace) assert.Equal(t, "link-name", info.Links[0].Name) assert.Equal(t, "red", info.NavColor) + assert.Equal(t, "Workflow Completed", info.Columns[0].Name) + assert.Equal(t, "label", info.Columns[0].Type) + assert.Equal(t, "workflows.argoproj.io/completed", info.Columns[0].Key) } }) @@ -49,6 +55,7 @@ func Test_infoServer_GetInfo(t *testing.T) { if assert.NoError(t, err) { assert.Equal(t, "", info.ManagedNamespace) assert.Equal(t, 0, len(info.Links)) + assert.Equal(t, 0, len(info.Columns)) assert.Equal(t, "", info.NavColor) } }) diff --git a/server/workflow/workflow_server.go b/server/workflow/workflow_server.go index ef4a5b17cc60..066ac274abbf 100644 --- a/server/workflow/workflow_server.go +++ b/server/workflow/workflow_server.go @@ -377,7 +377,7 @@ func (s *workflowServer) ResubmitWorkflow(ctx context.Context, req *workflowpkg. return nil, sutils.ToStatusError(err, codes.InvalidArgument) } - newWF, err := util.FormulateResubmitWorkflow(wf, req.Memoized, req.Parameters) + newWF, err := util.FormulateResubmitWorkflow(ctx, wf, req.Memoized, req.Parameters) if err != nil { return nil, sutils.ToStatusError(err, codes.Internal) } diff --git a/server/workflowarchive/archived_workflow_server.go b/server/workflowarchive/archived_workflow_server.go index 0b23269bfe3a..11678228c025 100644 --- a/server/workflowarchive/archived_workflow_server.go +++ b/server/workflowarchive/archived_workflow_server.go @@ -262,7 +262,7 @@ func (w *archivedWorkflowServer) ResubmitArchivedWorkflow(ctx context.Context, r return nil, sutils.ToStatusError(err, codes.Internal) } - newWF, err := util.FormulateResubmitWorkflow(wf, req.Memoized, nil) + newWF, err := util.FormulateResubmitWorkflow(ctx, wf, req.Memoized, req.Parameters) if err != nil { return nil, sutils.ToStatusError(err, codes.Internal) } @@ -286,7 +286,7 @@ func (w *archivedWorkflowServer) RetryArchivedWorkflow(ctx context.Context, req _, err = wfClient.ArgoprojV1alpha1().Workflows(req.Namespace).Get(ctx, wf.Name, metav1.GetOptions{}) if apierr.IsNotFound(err) { - wf, podsToDelete, err := util.FormulateRetryWorkflow(ctx, wf, req.RestartSuccessful, req.NodeFieldSelector, nil) + wf, podsToDelete, err := util.FormulateRetryWorkflow(ctx, wf, req.RestartSuccessful, req.NodeFieldSelector, req.Parameters) if err != nil { return nil, sutils.ToStatusError(err, codes.Internal) } diff --git a/tasks.yaml b/tasks.yaml new file mode 100644 index 000000000000..5df2a78c74a8 --- /dev/null +++ b/tasks.yaml @@ -0,0 +1,99 @@ +apiVersion: kit/v1 +kind: Tasks +metadata: + annotations: + help: | + Install `kit` by following https://github.com/kitproj/kit#install. + + Run `kit up` to start argo. + + - `env PROFILE=mysql kit up` to start with MySQL. + - `env PROFILE=plugins ARGO_EXECUTOR_PLUGINS=true kit up` to start with plugins. + - `env PROFILE=sso ARGO_AUTH_MODE=sso kit up` to start with SSO. + + The app will be up-and-running between 15s and 1m later (if hot compiled or cold). + Any changes made to the source code will be automatically recompiled and the app restarted, typically within a few seconds. + name: argo-workflows +spec: + tasks: + - name: go-deps + command: go mod download + mutex: downloads + - name: install + command: sh -c "make install PROFILE=$PROFILE" + env: + - PROFILE=minimal + dependencies: go-deps + watch: manifests + mutex: docker + - name: build-controller + command: make ./dist/workflow-controller + watch: cmd/workflow-controller config errors persist pkg util workflow + dependencies: go-deps + mutex: build + - name: port-forward + command: ./hack/port-forward.sh + ports: 9000 + dependencies: install + - name: controller + command: ./dist/workflow-controller + dependencies: install build-controller port-forward + env: + - ARGO_EXECUTOR_PLUGINS=false + - ARGO_NAMESPACE=argo + - ARGO_NAMESPACED=true + - ARGO_MANAGED_NAMESPACE=argo + - ARGO_LOG_LEVEL=info + - ARGO_REMOVE_PVC_PROTECTION_FINALIZER=true + - ARGO_PROGRESS_PATCH_TICK_DURATION=7s + - DEFAULT_REQUEUE_TIME=1s + - LEADER_ELECTION_IDENTITY=local + - ALWAYS_OFFLOAD_NODE_STATUS=false + - OFFLOAD_NODE_STATUS_TTL=30s + - WORKFLOW_GC_PERIOD=30s + - UPPERIO_DB_DEBUG=1 + - ARCHIVED_WORKFLOW_GC_PERIOD=30s + ports: "9090" + - name: build-argo + command: make ./dist/argo + dependencies: go-deps + env: + - STATIC_FILES=false + watch: cmd/argo config errors persist pkg util server workflow + mutex: build + - name: server + command: ./dist/argo server + dependencies: build-argo port-forward + env: + - ARGO_X_FRAME_OPTIONS=SAMEORIGIN + - ARGO_SECURE=false + - ARGO_NAMESPACE=argo + - ARGO_NAMESPACED=true + - ARGO_LOG_LEVEL=info + - ARGO_AUTH_MODE=hybrid + - ARGO_MANAGED_NAMESPACE=argo + - UPPERIO_DB_DEBUG=1 + ports: "2746" + - name: ui-deps + command: yarn install + workingDir: ui + mutex: downloads + - name: ui + command: yarn start + workingDir: ui + dependencies: ui-deps server + ports: "8080" + - name: executor + command: make argoexec-image + watch: cmd/argoexec config errors pkg util workflow + mutex: docker + - name: example + command: kubectl create -f examples/hello-world.yaml + dependencies: install + mutex: docker + - name: build + dependencies: build-controller build-argo + - name: pre-up + dependencies: build install executor example + - name: up + dependencies: pre-up controller server ui diff --git a/test/e2e/cli_test.go b/test/e2e/cli_test.go index cb4449642f03..6ad02f175306 100644 --- a/test/e2e/cli_test.go +++ b/test/e2e/cli_test.go @@ -890,6 +890,30 @@ func (s *CLISuite) TestWorkflowRetryNestedDag() { }) } +func (s *CLISuite) TestWorkflowRetryWithRecreatedPVC() { + s.Given(). + Workflow("@testdata/retry-with-recreated-pvc-test.yaml"). + When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeFailed). + Then(). + RunCli([]string{"retry", "retry-with-recreated-pvc"}, func(t *testing.T, output string, err error) { + if assert.NoError(t, err, output) { + assert.Contains(t, output, "Name:") + assert.Contains(t, output, "Namespace:") + } + }). + When(). + WaitForWorkflow(fixtures.ToBeFailed). + Then(). + ExpectWorkflow(func(t *testing.T, _ *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, wfv1.NodeFailed, status.Nodes.FindByDisplayName("print").Phase) + // This step is failed intentionally to allow retry. The error message is not related to PVC that is deleted + // previously since it is re-created during retry. + assert.Equal(t, "Error (exit code 1)", status.Nodes.FindByDisplayName("print").Message) + }) +} + func (s *CLISuite) TestWorkflowStop() { s.Given(). Workflow("@smoke/basic.yaml"). diff --git a/test/e2e/fixtures/e2e_suite.go b/test/e2e/fixtures/e2e_suite.go index e189c918df96..72c4f35aee98 100644 --- a/test/e2e/fixtures/e2e_suite.go +++ b/test/e2e/fixtures/e2e_suite.go @@ -83,7 +83,7 @@ func (s *E2ESuite) TearDownSuite() { _, _ = fmt.Println(color.Ize(color.Yellow, fmt.Sprintf("=== SLOW TEST: %s", x))) } if s.T().Failed() { - s.T().Log("to learn how to diagnose failed tests: https://argoproj.github.io/argo-workflows/running-locally/#running-e2e-tests-locally") + s.T().Log("to learn how to diagnose failed tests: https://argo-workflows.readthedocs.io/en/release-3.4/running-locally/#running-e2e-tests-locally") } } diff --git a/test/e2e/fixtures/given.go b/test/e2e/fixtures/given.go index 2b4fae31bc26..2c1e318b4f93 100644 --- a/test/e2e/fixtures/given.go +++ b/test/e2e/fixtures/given.go @@ -43,7 +43,7 @@ func (g *Given) Workflow(text string) *Given { g.t.Helper() g.wf = &wfv1.Workflow{} g.readResource(text, g.wf) - g.checkImages(g.wf.Spec.Templates) + g.checkImages(g.wf) return g } @@ -81,8 +81,29 @@ func (g *Given) readResource(text string, v metav1.Object) { } } -func (g *Given) checkImages(templates []wfv1.Template) { +func (g *Given) checkImages(wf interface{}) { g.t.Helper() + var defaultImage string + var templates []wfv1.Template + switch baseTemplate := wf.(type) { + case *wfv1.Workflow: + if baseTemplate.Spec.TemplateDefaults != nil && baseTemplate.Spec.TemplateDefaults.Container != nil && baseTemplate.Spec.TemplateDefaults.Container.Image != "" { + defaultImage = baseTemplate.Spec.TemplateDefaults.Container.Image + templates = baseTemplate.Spec.Templates + } + case *wfv1.WorkflowTemplate: + if baseTemplate.Spec.TemplateDefaults != nil && baseTemplate.Spec.TemplateDefaults.Container != nil && baseTemplate.Spec.TemplateDefaults.Container.Image != "" { + defaultImage = baseTemplate.Spec.TemplateDefaults.Container.Image + templates = baseTemplate.Spec.Templates + } + case *wfv1.CronWorkflow: + if baseTemplate.Spec.WorkflowSpec.TemplateDefaults != nil && baseTemplate.Spec.WorkflowSpec.TemplateDefaults.Container != nil && baseTemplate.Spec.WorkflowSpec.TemplateDefaults.Container.Image != "" { + defaultImage = baseTemplate.Spec.WorkflowSpec.TemplateDefaults.Container.Image + templates = baseTemplate.Spec.WorkflowSpec.Templates + } + default: + g.t.Fatalf("Unsupported checkImage workflow type: %s", wf) + } // discouraged discouraged := func(image string) bool { @@ -96,7 +117,12 @@ func (g *Given) checkImages(templates []wfv1.Template) { for _, t := range templates { container := t.Container if container != nil { - image := container.Image + var image string + if container.Image != "" { + image = container.Image + } else { + image = defaultImage + } if !allowed(image) { g.t.Fatalf("image not allowed in tests: %s", image) } @@ -140,7 +166,7 @@ func (g *Given) WorkflowTemplate(text string) *Given { g.t.Helper() wfTemplate := &wfv1.WorkflowTemplate{} g.readResource(text, wfTemplate) - g.checkImages(wfTemplate.Spec.Templates) + g.checkImages(wfTemplate) g.wfTemplates = append(g.wfTemplates, wfTemplate) return g } @@ -149,7 +175,7 @@ func (g *Given) CronWorkflow(text string) *Given { g.t.Helper() g.cronWf = &wfv1.CronWorkflow{} g.readResource(text, g.cronWf) - g.checkImages(g.cronWf.Spec.WorkflowSpec.Templates) + g.checkImages(g.cronWf) return g } diff --git a/test/e2e/fixtures/persistence.go b/test/e2e/fixtures/persistence.go index 199f9f677009..c68a2b3aaf63 100644 --- a/test/e2e/fixtures/persistence.go +++ b/test/e2e/fixtures/persistence.go @@ -24,7 +24,11 @@ func newPersistence(kubeClient kubernetes.Interface, wcConfig *config.Config) *P if persistence.MySQL != nil { persistence.MySQL.Host = "localhost" } - session, tableName, err := sqldb.CreateDBSession(kubeClient, Namespace, persistence) + session, err := sqldb.CreateDBSession(kubeClient, Namespace, persistence) + if err != nil { + panic(err) + } + tableName, err := sqldb.GetTableName(persistence) if err != nil { panic(err) } diff --git a/test/e2e/fixtures/then.go b/test/e2e/fixtures/then.go index eb2898a6dbe0..191f83d2207b 100644 --- a/test/e2e/fixtures/then.go +++ b/test/e2e/fixtures/then.go @@ -185,6 +185,38 @@ func (t *Then) ExpectAuditEvents(filter func(event apiv1.Event) bool, num int, b return t } +func (t *Then) ExpectPVCDeleted() *Then { + t.t.Helper() + timeout := defaultTimeout + _, _ = fmt.Println("Checking", timeout.String(), "for expecting PVCs deletion") + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + for { + select { + case <-ctx.Done(): + t.t.Errorf("timeout after %v waiting for condition", timeout) + return t + default: + num := len(t.wf.Status.PersistentVolumeClaims) + pvcClient := t.kubeClient.CoreV1().PersistentVolumeClaims(t.wf.ObjectMeta.Namespace) + for _, p := range t.wf.Status.PersistentVolumeClaims { + _, err := pvcClient.Get(ctx, p.PersistentVolumeClaim.ClaimName, metav1.GetOptions{}) + if err == nil { + break + } else if apierr.IsNotFound(err) { + num-- + } else { + t.t.Fatal(err) + return t + } + } + if num == 0 { + return t + } + } + } +} + func (t *Then) ExpectArtifact(nodeName string, artifactName string, bucketName string, f func(t *testing.T, object minio.ObjectInfo, err error)) { t.t.Helper() @@ -192,7 +224,10 @@ func (t *Then) ExpectArtifact(nodeName string, artifactName string, bucketName s nodeName = t.wf.Name } - n := t.wf.GetNodeByName(nodeName) + n, err := t.wf.GetNodeByName(nodeName) + if err != nil { + t.t.Error("was unable to get node by name") + } a := n.GetOutputs().GetArtifactByName(artifactName) key, _ := a.GetKey() diff --git a/test/e2e/functional/template-default-image.yaml b/test/e2e/functional/template-default-image.yaml new file mode 100644 index 000000000000..24d23f29bcc1 --- /dev/null +++ b/test/e2e/functional/template-default-image.yaml @@ -0,0 +1,31 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: template-default- +spec: + entrypoint: entrypoint + templateDefaults: + script: + image: argoproj/argosay:v1 + command: [sh] + workingDir: "/src" + container: + image: argoproj/argosay:v1 + command: [sh, -c] + workingDir: "/src" + templates: + - name: entrypoint + steps: + - - name: test-script + template: test-script + - name: test-container + template: test-container + + - name: test-script + script: + source: | + pwd + + - name: test-container + container: + args: ["pwd"] diff --git a/test/e2e/functional_test.go b/test/e2e/functional_test.go index 5292df235914..ac0a50ade086 100644 --- a/test/e2e/functional_test.go +++ b/test/e2e/functional_test.go @@ -634,10 +634,10 @@ spec: When(). CreateWorkflowTemplates(). SubmitWorkflow(). - WaitForWorkflow(fixtures.ToBeErrored). + WaitForWorkflow(fixtures.ToBeFailed). Then(). ExpectWorkflow(func(t *testing.T, _ *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { - assert.Contains(t, status.Message, "error in exit template execution") + assert.Contains(t, status.Message, "invalid spec") }) } @@ -688,6 +688,23 @@ spec: }) } +func (s *FunctionalSuite) TestWorkflowHookParameterTemplates() { + s.Given(). + Workflow("@testdata/workflow-hook-parameter.yaml"). + When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, md *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + }). + ExpectWorkflowNode(wfv1.NodeWithDisplayName("workflow-hook-parameter.onExit"), func(t *testing.T, n *wfv1.NodeStatus, p *apiv1.Pod) { + assert.Equal(t, wfv1.NodeSucceeded, n.Phase) + assert.Equal(t, "Succeeded", n.Inputs.Parameters[0].Value.String()) + assert.Equal(t, "Succeeded", n.Inputs.Parameters[1].Value.String()) + }) +} + func (s *FunctionalSuite) TestParametrizableAds() { s.Given(). Workflow(` @@ -1162,3 +1179,11 @@ func (s *FunctionalSuite) TestTTY() { SubmitWorkflow(). WaitForWorkflow(fixtures.ToBeSucceeded) } + +func (s *FunctionalSuite) TestTemplateDefaultImage() { + s.Given(). + Workflow(`@functional/template-default-image.yaml`). + When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded) +} diff --git a/test/e2e/hooks_test.go b/test/e2e/hooks_test.go index f613aa1c251e..fc5658b6bcb9 100644 --- a/test/e2e/hooks_test.go +++ b/test/e2e/hooks_test.go @@ -8,6 +8,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/suite" apiv1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -19,7 +20,7 @@ type HooksSuite struct { fixtures.E2ESuite } -func (s *HooksSuite) TestWorkflowLevelHooks() { +func (s *HooksSuite) TestWorkflowLevelHooksSuccessVersion() { s.Given(). Workflow(`apiVersion: argoproj.io/v1alpha1 kind: Workflow @@ -28,20 +29,24 @@ metadata: spec: entrypoint: main hooks: - exit: - template: http running: expression: workflow.status == "Running" - template: http + template: argosay + succeed: + expression: workflow.status == "Succeeded" + template: argosay + templates: - name: main steps: - - name: step1 - template: http + template: argosay - - name: http - http: - url: "http://httpstat.us" + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] `).When(). SubmitWorkflow(). WaitForWorkflow(fixtures.ToBeSucceeded). @@ -49,13 +54,67 @@ spec: ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { assert.Equal(t, status.Phase, v1alpha1.WorkflowSucceeded) }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { - return strings.Contains(status.Name, "hook") + return strings.Contains(status.Name, ".hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, ".hooks.succeed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + +func (s *HooksSuite) TestWorkflowLevelHooksFailVersion() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: lifecycle-hook- +spec: + entrypoint: main + hooks: + running: + expression: workflow.status == "Running" + template: hook + failed: + expression: workflow.status == "Failed" + template: hook + + templates: + - name: main + steps: + - - name: step1 + template: argosay + + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay; exit 1"] + + - name: hook + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeFailed). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowFailed) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, ".hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, ".hooks.failed") }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) }) } -func (s *HooksSuite) TestTemplateLevelHooks() { +func (s *HooksSuite) TestTemplateLevelHooksStepSuccessVersion() { s.Given(). Workflow(`apiVersion: argoproj.io/v1alpha1 kind: Workflow @@ -68,15 +127,135 @@ spec: steps: - - name: step-1 hooks: - exit: - template: http - success: + running: + expression: steps["step-1"].status == "Running" + template: argosay + succeed: expression: steps["step-1"].status == "Succeeded" - template: http - template: http - - name: http - http: - url: "http://httpstat.us" + template: argosay + template: argosay + - - name: step-2 + hooks: + running: + expression: steps["step-2"].status == "Running" + template: argosay + succeed: + expression: steps["step-2"].status == "Succeeded" + template: argosay + template: argosay + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, v1alpha1.WorkflowSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-1.hooks.succeed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-1.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-2.hooks.succeed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-2.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + +func (s *HooksSuite) TestTemplateLevelHooksStepFailVersion() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: lifecycle-hook-tmpl-level- +spec: + entrypoint: main + templates: + - name: main + steps: + - - name: step-1 + hooks: + running: + expression: steps["step-1"].status == "Running" + template: hook + failed: + expression: steps["step-1"].status == "Failed" + template: hook + template: argosay + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay; exit 1"] + - name: hook + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeFailed). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, v1alpha1.WorkflowFailed, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-1.hooks.failed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-1.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + +func (s *HooksSuite) TestTemplateLevelHooksDagSuccessVersion() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: lifecycle-hook-tmpl-level- +spec: + entrypoint: main + templates: + - name: main + dag: + tasks: + - name: step-1 + hooks: + running: + expression: tasks["step-1"].status == "Running" + template: argosay + succeed: + expression: tasks["step-1"].status == "Succeeded" + template: argosay + template: argosay + - name: step-2 + hooks: + running: + expression: tasks["step-2"].status == "Running" + template: argosay + succeed: + expression: tasks["step-2"].status == "Succeeded" + template: argosay + template: argosay + dependencies: [step-1] + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] `).When(). SubmitWorkflow(). WaitForWorkflow(fixtures.ToBeSucceeded). @@ -84,13 +263,305 @@ spec: ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { assert.Equal(t, v1alpha1.WorkflowSucceeded, status.Phase) }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { - return strings.Contains(status.Name, "hook") + return strings.Contains(status.Name, "step-1.hooks.succeed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-1.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-2.hooks.succeed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-2.hooks.running") }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) }) } +func (s *HooksSuite) TestTemplateLevelHooksDagFailVersion() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: lifecycle-hook-tmpl-level- +spec: + entrypoint: main + templates: + - name: main + dag: + tasks: + - name: step-1 + hooks: + running: + expression: tasks["step-1"].status == "Running" + template: hook + failed: + expression: tasks["step-1"].status == "Failed" + template: hook + template: argosay + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay; exit 1"] + - name: hook + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeFailed). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, v1alpha1.WorkflowFailed, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-1.hooks.failed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }).ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "step-1.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + +func (s *HooksSuite) TestTemplateLevelHooksDagHasDependencyVersion() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: lifecycle-hook-tmpl-level- +spec: + templates: + - name: main + dag: + tasks: + - name: A + template: fail + hooks: + running: + template: hook + expression: tasks.A.status == "Running" + success: + template: hook + expression: tasks.A.status == "Succeeded" + - name: B + template: success + dependencies: + - A + hooks: + running: + template: hook + expression: tasks.B.status == "Running" + success: + template: hook + expression: tasks.B.status == "Succeeded" + - name: success + container: + name: '' + image: argoproj/argosay:v2 + command: + - /bin/sh + - '-c' + args: + - /bin/sleep 1; /argosay; exit 0 + - name: fail + container: + name: '' + image: argoproj/argosay:v2 + command: + - /bin/sh + - '-c' + args: + - /bin/sleep 1; /argosay; exit 1 + - name: hook + container: + name: '' + image: argoproj/argosay:v2 + command: + - /bin/sh + - '-c' + args: + - /bin/sleep 1; /argosay + entrypoint: main +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeFailed). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, v1alpha1.WorkflowFailed, status.Phase) + // Make sure unnecessary hooks are not triggered + assert.Equal(t, status.Progress, v1alpha1.Progress("1/2")) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "A.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "B") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeOmitted, status.Phase) + }) +} + +func (s *HooksSuite) TestWorkflowLevelHooksWaitForTriggeredHook() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: lifecycle-hook- +spec: + entrypoint: main + hooks: + running: + expression: workflow.status == "Running" + template: argosay-sleep-2seconds + # This hook never triggered by following test. + # To guarantee workflow does not wait forever for untriggered hooks. + failed: + expression: workflow.status == "Failed" + template: argosay-sleep-2seconds + templates: + - name: main + steps: + - - name: step1 + template: argosay + + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] + - name: argosay-sleep-2seconds + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 2; /argosay"] +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowSucceeded) + assert.Equal(t, status.Progress, v1alpha1.Progress("2/2")) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, ".hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + +func (s *HooksSuite) TestTemplateLevelHooksWaitForTriggeredHook() { + s.Given(). + Workflow(` +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: example-steps +spec: + entrypoint: main + templates: + - name: main + steps: + - - name: job + template: argosay + hooks: + running: + expression: steps['job'].status == "Running" + template: argosay-sleep-2seconds + failed: + expression: steps['job'].status == "Failed" + template: argosay-sleep-2seconds + + - name: argosay + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 1; /argosay"] + - name: argosay-sleep-2seconds + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + args: ["/bin/sleep 2; /argosay"] +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowSucceeded) + assert.Equal(t, status.Progress, v1alpha1.Progress("2/2")) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "job.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + +// Ref: https://github.com/argoproj/argo-workflows/issues/11117 +func (s *HooksSuite) TestTemplateLevelHooksWaitForTriggeredHookAndRespectSynchronization() { + s.Given(). + Workflow(` +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: example-steps-simple-mutex +spec: + entrypoint: main + templates: + - name: main + steps: + - - name: job + template: exit0 + hooks: + running: + expression: steps['job'].status == "Running" + template: sleep + succeed: + expression: steps['job'].status == "Succeeded" + template: sleep + - name: sleep + synchronization: + mutex: + name: job + script: + image: alpine:latest + command: [/bin/sh] + source: | + sleep 4 + - name: exit0 + script: + image: alpine:latest + command: [/bin/sh] + source: | + sleep 2 + exit 0 +`).When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowSucceeded) + assert.Equal(t, status.Progress, v1alpha1.Progress("3/3")) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "job.hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "job.hooks.succeed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + func TestHooksSuite(t *testing.T) { - // TODO: Tests are temporarily disabled: "https://github.com/argoproj/argo-workflows/issues/9591" - //suite.Run(t, new(HooksSuite)) + suite.Run(t, new(HooksSuite)) } diff --git a/test/e2e/images/argosay/v1/Dockerfile b/test/e2e/images/argosay/v1/Dockerfile index 870b2676f30f..cc8d9a6b55f6 100644 --- a/test/e2e/images/argosay/v1/Dockerfile +++ b/test/e2e/images/argosay/v1/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:14.04 +FROM ubuntu:mantic-20230807.1 RUN apt-get update && \ apt-get install -y apt-utils ca-certificates apt-transport-https cowsay --no-install-recommends && \ diff --git a/test/e2e/manifests/minimal/kustomization.yaml b/test/e2e/manifests/minimal/kustomization.yaml index b1a5e2110728..2a2f4f702d76 100644 --- a/test/e2e/manifests/minimal/kustomization.yaml +++ b/test/e2e/manifests/minimal/kustomization.yaml @@ -8,6 +8,7 @@ resources: - https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/base/crds/argoproj.io_sensors.yaml - ../mixins/argo-workflows-agent-ca-certificates.yaml - ../mixins/argo-server.service-account-token-secret.yaml +- ../mixins/argo.service-account-token-secret.yaml patchesStrategicMerge: - ../mixins/argo-server-deployment.yaml diff --git a/test/e2e/manifests/mixins/argo.service-account-token-secret.yaml b/test/e2e/manifests/mixins/argo.service-account-token-secret.yaml new file mode 100644 index 000000000000..9cfb79e648d9 --- /dev/null +++ b/test/e2e/manifests/mixins/argo.service-account-token-secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: argo.service-account-token + annotations: + kubernetes.io/service-account.name: argo +type: kubernetes.io/service-account-token \ No newline at end of file diff --git a/test/e2e/manifests/sso/kustomization.yaml b/test/e2e/manifests/sso/kustomization.yaml index 7fa4e2c07f38..8e074db91cb0 100644 --- a/test/e2e/manifests/sso/kustomization.yaml +++ b/test/e2e/manifests/sso/kustomization.yaml @@ -3,6 +3,7 @@ kind: Kustomization resources: - ../../../../manifests/quick-start/sso +- ../mixins/argo-server.service-account-token-secret.yaml patchesStrategicMerge: - ../mixins/argo-server-deployment.yaml diff --git a/test/e2e/metrics_test.go b/test/e2e/metrics_test.go index 616e72a6fb30..d52ddfefefc3 100644 --- a/test/e2e/metrics_test.go +++ b/test/e2e/metrics_test.go @@ -7,8 +7,11 @@ import ( "testing" "github.com/gavv/httpexpect/v2" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" "github.com/argoproj/argo-workflows/v3/test/e2e/fixtures" ) @@ -57,6 +60,23 @@ func (s *MetricsSuite) TestMetricsEndpoint() { }) } +func (s *MetricsSuite) TestRetryMetrics() { + s.Given(). + Workflow(`@testdata/workflow-retry-metrics.yaml`). + When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + s.e(s.T()).GET(""). + Expect(). + Status(200). + Body(). + Contains(`runs_exit_status_counter{exit_code="1",status="Failed"} 3`) + }) +} + func TestMetricsSuite(t *testing.T) { suite.Run(t, new(MetricsSuite)) } diff --git a/test/e2e/signals_test.go b/test/e2e/signals_test.go index 2e116f12362a..db702f3d5f09 100644 --- a/test/e2e/signals_test.go +++ b/test/e2e/signals_test.go @@ -149,6 +149,29 @@ func (s *SignalsSuite) TestSignaled() { }) } +func (s *SignalsSuite) TestSignaledContainerSet() { + s.Given(). + Workflow("@testdata/signaled-container-set-workflow.yaml"). + When(). + SubmitWorkflow(). + WaitForWorkflow(). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, wfv1.WorkflowFailed, status.Phase) + assert.Equal(t, "OOMKilled (exit code 137)", status.Message) + one := status.Nodes.FindByDisplayName("one") + if assert.NotNil(t, one) { + assert.Equal(t, wfv1.NodeFailed, one.Phase) + assert.Equal(t, "OOMKilled (exit code 137): ", one.Message) + } + two := status.Nodes.FindByDisplayName("two") + if assert.NotNil(t, two) { + assert.Equal(t, wfv1.NodeFailed, two.Phase) + assert.Equal(t, "Error (exit code 143): ", two.Message) + } + }) +} + func TestSignalsSuite(t *testing.T) { suite.Run(t, new(SignalsSuite)) } diff --git a/test/e2e/testdata/loops-steps-limited-parallelism-pvc.yaml b/test/e2e/testdata/loops-steps-limited-parallelism-pvc.yaml new file mode 100644 index 000000000000..d63b0b4658df --- /dev/null +++ b/test/e2e/testdata/loops-steps-limited-parallelism-pvc.yaml @@ -0,0 +1,78 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + name: loop-fail-3 +spec: + entrypoint: constrained-loops-with-volumes + parallelism: 1 + volumeClaimTemplates: + - metadata: + name: one + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi + - metadata: + name: two + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi + + + templates: + - name: constrained-loops-with-volumes + steps: + - - name: write-and-read-msg-from-pvc + template: write-and-read-msg-from-pvc + arguments: + parameters: + - name: pvc + value: '{{item}}' + withItems: + - one + - two + - name: write-and-read-msg-from-pvc + inputs: + parameters: + - name: pvc + steps: + - - name: write-msg + template: write-msg + arguments: + parameters: + - name: pvc + value: '{{inputs.parameters.pvc}}' + - - name: read-msg + template: read-msg + arguments: + parameters: + - name: pvc + value: '{{inputs.parameters.pvc}}' + - name: write-msg + inputs: + parameters: + - name: pvc + script: + image: busybox:stable + command: ["sh"] + source: | + echo "Hello! i'm writing to pvc; '{{inputs.parameters.pvc}}'" >> /pvc/msg + volumeMounts: + - name: '{{inputs.parameters.pvc}}' + mountPath: /pvc + - name: read-msg + inputs: + parameters: + - name: pvc + script: + image: busybox:stable + command: ["sh"] + source: | + echo "Found the following message;" + cat /pvc/msg + volumeMounts: + - name: '{{inputs.parameters.pvc}}' + mountPath: /pvc diff --git a/test/e2e/testdata/retry-with-recreated-pvc-test.yaml b/test/e2e/testdata/retry-with-recreated-pvc-test.yaml new file mode 100644 index 000000000000..05efa3fe37b5 --- /dev/null +++ b/test/e2e/testdata/retry-with-recreated-pvc-test.yaml @@ -0,0 +1,42 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + name: retry-with-recreated-pvc +spec: + volumeClaimGC: + strategy: OnWorkflowCompletion + entrypoint: volumes-pvc-example + volumeClaimTemplates: + - metadata: + name: workdir + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi + + templates: + - name: volumes-pvc-example + steps: + - - name: generate + template: whalesay + - - name: print + template: print-message + + - name: whalesay + container: + image: argoproj/argosay:v2 + command: [sh, -c] + args: ["echo generating message in volume; cowsay hello world | tee /mnt/vol/hello_world.txt"] + volumeMounts: + - name: workdir + mountPath: /mnt/vol + + - name: print-message + container: + image: argoproj/argosay:v2 + command: [sh, -c] + args: ["exit 1"] + volumeMounts: + - name: workdir + mountPath: /mnt/vol diff --git a/test/e2e/testdata/signaled-container-set-workflow.yaml b/test/e2e/testdata/signaled-container-set-workflow.yaml new file mode 100644 index 000000000000..f1d8fcb6c2a6 --- /dev/null +++ b/test/e2e/testdata/signaled-container-set-workflow.yaml @@ -0,0 +1,50 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + name: example + namespace: argo +spec: + templates: + - name: entrypoint + metadata: + containerSet: + containers: + - name: one + resources: + requests: + memory: "50Mi" + cpu: "50m" + limits: + memory: "50Mi" + image: argoproj/argosay:v2 + command: + - bash + - '-c' + args: + - | + /bin/bash <<'EOF' + echo "hello one" + apt update -y + apt install stress -y + echo 'stress --vm 1 --vm-bytes 512M --vm-hang 100' > abc.sh + bash abc.sh + EOF + - name: two + resources: + requests: + memory: "150Mi" + cpu: "50m" + limits: + memory: "250Mi" + image: argoproj/argosay:v2 + command: + - bash + - '-c' + args: + - | + /bin/bash <<'EOF' + echo "hello world" + EOF + dependencies: + - one + entrypoint: entrypoint \ No newline at end of file diff --git a/test/e2e/testdata/workflow-hook-parameter.yaml b/test/e2e/testdata/workflow-hook-parameter.yaml new file mode 100644 index 000000000000..f747e810bee4 --- /dev/null +++ b/test/e2e/testdata/workflow-hook-parameter.yaml @@ -0,0 +1,36 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + name: workflow-hook-parameter +spec: + entrypoint: run-test + templates: + - name: run-test + container: + name: runner + image: 'argoproj/argosay:v2' + command: ['sh','-c'] + args: + - exit 0 + - name: cowsay + inputs: + parameters: + - name: ternary + - name: status + container: + image: 'argoproj/argosay:v2' + command: ['bash','-c'] + args: + - | + echo "{{inputs.parameters.ternary}}" + echo "{{inputs.parameters.status}}" + [[ "{{inputs.parameters.ternary}}" = "{{inputs.parameters.status}}" ]] + hooks: + exit: + template: cowsay + arguments: + parameters: + - name: ternary + value: '{{= workflow.status == "Succeeded" ? "Succeeded" : "Failed" }}' + - name: status + value: '{{= workflow.status }}' diff --git a/test/e2e/testdata/workflow-retry-metrics.yaml b/test/e2e/testdata/workflow-retry-metrics.yaml new file mode 100644 index 000000000000..a91453639591 --- /dev/null +++ b/test/e2e/testdata/workflow-retry-metrics.yaml @@ -0,0 +1,38 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: workflow-retry-metrics +spec: + entrypoint: main + podGC: + strategy: OnWorkflowSuccess + templates: + - name: main + steps: + - - continueOn: + error: true + failed: true + name: runTest + template: run-test + - container: + name: runner + image: 'argoproj/argosay:v2' + args: + - exit 1 + command: + - sh + - -c + metrics: + prometheus: + - counter: + value: "1" + help: Count of runs by exit code + labels: + - key: exit_code + value: '{{exitCode}}' + - key: status + value: "{{status}}" + name: runs_exit_status_counter + name: run-test + retryStrategy: + limit: "2" diff --git a/test/e2e/testdata/workflow-template-invalid-entrypoint.yaml b/test/e2e/testdata/workflow-template-invalid-entrypoint.yaml new file mode 100644 index 000000000000..409a2610c8a7 --- /dev/null +++ b/test/e2e/testdata/workflow-template-invalid-entrypoint.yaml @@ -0,0 +1,33 @@ +apiVersion: argoproj.io/v1alpha1 +kind: WorkflowTemplate +metadata: + name: workflow-template-invalid-entrypoint +spec: + volumeClaimTemplates: + - metadata: + name: builddir + spec: + accessModes: [ "ReadWriteMany" ] + resources: + requests: + storage: 1Mi + volumeClaimGC: + strategy: OnWorkflowCompletion + entrypoint: whalesay + onExit: notify + templates: + - name: whalesay + container: + image: 'argoproj/argosay:v2' + command: + - /argosay + args: + - echo + - 'hello world' + volumeMounts: + - name: foo # <<< invalid since no volume `foo` + - name: notify + container: + image: 'argoproj/argosay:v2' + command: [sh, -c] + args: ["exit 0"] diff --git a/test/e2e/testdata/workflow-template-invalid-onexit.yaml b/test/e2e/testdata/workflow-template-invalid-onexit.yaml new file mode 100644 index 000000000000..719eb62c0960 --- /dev/null +++ b/test/e2e/testdata/workflow-template-invalid-onexit.yaml @@ -0,0 +1,33 @@ +apiVersion: argoproj.io/v1alpha1 +kind: WorkflowTemplate +metadata: + name: workflow-template-invalid-onexit +spec: + volumeClaimTemplates: + - metadata: + name: builddir + spec: + accessModes: [ "ReadWriteMany" ] + resources: + requests: + storage: 1Mi + volumeClaimGC: + strategy: OnWorkflowCompletion + entrypoint: whalesay + onExit: notify + templates: + - name: whalesay + container: + image: 'argoproj/argosay:v2' + command: + - /argosay + args: + - echo + - 'hello world' + - name: notify + container: + image: 'argoproj/argosay:v2' + command: [sh, -c] + args: ["exit 0"] + volumeMounts: + - name: foo # <<< invalid since no volume `foo` diff --git a/test/e2e/testdata/workflow-template-with-resource-expr.yaml b/test/e2e/testdata/workflow-template-with-resource-expr.yaml new file mode 100644 index 000000000000..65b39fbdaefb --- /dev/null +++ b/test/e2e/testdata/workflow-template-with-resource-expr.yaml @@ -0,0 +1,33 @@ +apiVersion: argoproj.io/v1alpha1 +kind: WorkflowTemplate +metadata: + name: workflow-template-with-resource-expr +spec: + entrypoint: whalesay + templates: + - name: whalesay + inputs: + parameters: + - name: intParam + value: '20' + - name: strParam + value: 'foobarbaz' + outputs: {} + metadata: {} + resource: + action: create + setOwnerReference: true + manifest: | + apiVersion: v1 + kind: Pod + metadata: + name: foo + spec: + restartPolicy: Never + containers: + - name: 'foo' + image: docker/whalesay + command: [cowsay] + args: ["{{=sprig.replace("bar", "baz", inputs.parameters.strParam)}}"] + ports: + - containerPort: {{=asInt(inputs.parameters.intParam)}} \ No newline at end of file diff --git a/test/e2e/testdata/workflow-templates/success-hook.yaml b/test/e2e/testdata/workflow-templates/success-hook.yaml new file mode 100644 index 000000000000..a0cf43b79a7f --- /dev/null +++ b/test/e2e/testdata/workflow-templates/success-hook.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: WorkflowTemplate +metadata: + name: hook +spec: + entrypoint: main + templates: + - name: main + container: + image: argoproj/argosay:v2 + command: ["/bin/sh", "-c"] + # To avoid flakiness, we sleep 1 second. + args: ["/bin/sleep 1; /argosay"] + + hooks: + running: + expression: workflow.status == "Running" + template: main + succeed: + expression: workflow.status == "Succeeded" + template: main diff --git a/test/e2e/workflow_configmap_substitution_test.go b/test/e2e/workflow_configmap_substitution_test.go index 2b9e7a16d5c5..2723cf578256 100644 --- a/test/e2e/workflow_configmap_substitution_test.go +++ b/test/e2e/workflow_configmap_substitution_test.go @@ -5,6 +5,7 @@ package e2e import ( "testing" + "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" @@ -52,6 +53,7 @@ spec: "cmref-parameters", map[string]string{"msg": "hello world"}, map[string]string{"workflows.argoproj.io/configmap-type": "Parameter"}). + Wait(1 * time.Second). SubmitWorkflow(). WaitForWorkflow(fixtures.ToBeSucceeded). DeleteConfigMap("cmref-parameters"). @@ -95,6 +97,7 @@ spec: "cmref-parameters", map[string]string{"msg": "hello world"}, map[string]string{"workflows.argoproj.io/configmap-type": "Parameter"}). + Wait(1 * time.Second). SubmitWorkflow(). WaitForWorkflow(fixtures.ToBeSucceeded). DeleteConfigMap("cmref-parameters"). @@ -125,7 +128,7 @@ spec: - name: message valueFrom: configMapKeyRef: - name: '{{ workflow.parameters.cm-name}' + name: '{{ workflow.parameters.cm-name }}' key: msg container: image: argoproj/argosay:v2 @@ -173,6 +176,7 @@ spec: "cmref-parameters", map[string]string{"msg": "hello world"}, map[string]string{"workflows.argoproj.io/configmap-type": "Parameter"}). + Wait(1 * time.Second). SubmitWorkflow(). WaitForWorkflow(fixtures.ToBeSucceeded). DeleteConfigMap("cmref-parameters"). diff --git a/test/e2e/workflow_inputs_orverridable_test.go b/test/e2e/workflow_inputs_orverridable_test.go new file mode 100644 index 000000000000..e92f72a3afb1 --- /dev/null +++ b/test/e2e/workflow_inputs_orverridable_test.go @@ -0,0 +1,207 @@ +//go:build functional +// +build functional + +package e2e + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/suite" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/test/e2e/fixtures" +) + +type WorkflowInputsOverridableSuite struct { + fixtures.E2ESuite +} + +func (s *WorkflowInputsOverridableSuite) TestArgsValueParamsOverrideInputParamsValueFrom() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: workflow-inputs-overridable-wf- + label: + workflows.argoproj.io/test: "true" +spec: + serviceAccountName: argo + entrypoint: whalesay + arguments: + parameters: + - name: message + value: arg-value + templates: + - name: whalesay + container: + image: argoproj/argosay:v2 + args: + - echo + - "{{inputs.parameters.message}}" + inputs: + parameters: + - name: message + valueFrom: + configMapKeyRef: + name: cmref-parameters + key: cmref-key +`). + When(). + CreateConfigMap( + "cmref-parameters", + map[string]string{"cmref-key": "input-value"}, + map[string]string{"workflows.argoproj.io/configmap-type": "Parameter"}). + Wait(1 * time.Second). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + DeleteConfigMap("cmref-parameters"). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, "arg-value", status.Nodes[metadata.Name].Inputs.Parameters[0].Value.String()) + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + }) +} + +func (s *WorkflowInputsOverridableSuite) TestArgsValueFromParamsOverrideInputParamsValueFrom() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: workflow-inputs-overridable-wf- + label: + workflows.argoproj.io/test: "true" +spec: + serviceAccountName: argo + entrypoint: whalesay + arguments: + parameters: + - name: message + valueFrom: + configMapKeyRef: + name: new-cmref-parameters + key: cmref-key + templates: + - name: whalesay + container: + image: argoproj/argosay:v2 + args: + - echo + - "{{inputs.parameters.message}}" + inputs: + parameters: + - name: message + valueFrom: + configMapKeyRef: + name: cmref-parameters + key: cmref-key +`). + When(). + CreateConfigMap( + "cmref-parameters", + map[string]string{"cmref-key": "input-value"}, + map[string]string{"workflows.argoproj.io/configmap-type": "Parameter"}). + CreateConfigMap( + "new-cmref-parameters", + map[string]string{"cmref-key": "arg-value"}, + map[string]string{"workflows.argoproj.io/configmap-type": "Parameter"}). + Wait(1 * time.Second). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + DeleteConfigMap("cmref-parameters"). + DeleteConfigMap("new-cmref-parameters"). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, "arg-value", status.Nodes[metadata.Name].Inputs.Parameters[0].Value.String()) + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + }) +} + +func (s *WorkflowInputsOverridableSuite) TestArgsValueParamsOverrideInputParamsValue() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: workflow-template-wf- + label: + workflows.argoproj.io/test: "true" +spec: + serviceAccountName: argo + entrypoint: whalesay + arguments: + parameters: + - name: message + value: arg-value + templates: + - name: whalesay + container: + image: argoproj/argosay:v2 + args: + - echo + - "{{inputs.parameters.message}}" + inputs: + parameters: + - name: message + value: input-value +`). + When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, "arg-value", status.Nodes[metadata.Name].Inputs.Parameters[0].Value.String()) + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + }) +} + +func (s *WorkflowInputsOverridableSuite) TestArgsValueFromParamsOverrideInputParamsValue() { + s.Given(). + Workflow(`apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: workflow-inputs-overridable-wf- + label: + workflows.argoproj.io/test: "true" +spec: + serviceAccountName: argo + entrypoint: whalesay + arguments: + parameters: + - name: message + valueFrom: + configMapKeyRef: + name: cmref-parameters + key: cmref-key + templates: + - name: whalesay + container: + image: argoproj/argosay:v2 + args: + - echo + - "{{inputs.parameters.message}}" + inputs: + parameters: + - name: message + value: input-value +`). + When(). + CreateConfigMap( + "cmref-parameters", + map[string]string{"cmref-key": "arg-value"}, + map[string]string{"workflows.argoproj.io/configmap-type": "Parameter"}). + Wait(1 * time.Second). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + DeleteConfigMap("cmref-parameters"). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, "arg-value", status.Nodes[metadata.Name].Inputs.Parameters[0].Value.String()) + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + }) +} + +func TestWorkflowInputsOverridableSuiteSuite(t *testing.T) { + suite.Run(t, new(WorkflowInputsOverridableSuite)) +} diff --git a/test/e2e/workflow_template_test.go b/test/e2e/workflow_template_test.go index a5e8bd6c3dc8..519051150fa8 100644 --- a/test/e2e/workflow_template_test.go +++ b/test/e2e/workflow_template_test.go @@ -4,10 +4,12 @@ package e2e import ( + "strings" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + apiv1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" @@ -77,6 +79,107 @@ func (s *WorkflowTemplateSuite) TestSubmitWorkflowTemplateWorkflowMetadataSubsti }) } +func (s *WorkflowTemplateSuite) TestSubmitWorkflowTemplateResourceUnquotedExpressions() { + s.Given(). + WorkflowTemplate("@testdata/workflow-template-with-resource-expr.yaml"). + When(). + CreateWorkflowTemplates(). + SubmitWorkflowsFromWorkflowTemplates(). + WaitForWorkflow(). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowSucceeded) + }) +} + +func (s *WorkflowTemplateSuite) TestSubmitWorkflowTemplateWithParallelStepsRequiringPVC() { + s.Given(). + WorkflowTemplate("@testdata/loops-steps-limited-parallelism-pvc.yaml"). + When(). + CreateWorkflowTemplates(). + SubmitWorkflowsFromWorkflowTemplates(). + WaitForWorkflow(). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowSucceeded) + }). + ExpectPVCDeleted() +} + +func (s *WorkflowTemplateSuite) TestWorkflowTemplateInvalidOnExit() { + s.Given(). + WorkflowTemplate("@testdata/workflow-template-invalid-onexit.yaml"). + Workflow(` +metadata: + generateName: workflow-template-invalid-onexit- +spec: + workflowTemplateRef: + name: workflow-template-invalid-onexit +`). + When(). + CreateWorkflowTemplates(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeErrored). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowError) + assert.Contains(t, status.Message, "error in exit template execution") + }). + ExpectPVCDeleted() +} + +func (s *WorkflowTemplateSuite) TestWorkflowTemplateWithHook() { + s.Given(). + WorkflowTemplate("@testdata/workflow-templates/success-hook.yaml"). + Workflow(` +metadata: + generateName: workflow-template-hook- +spec: + workflowTemplateRef: + name: hook +`). + When(). + CreateWorkflowTemplates(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowSucceeded) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "hooks.running") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }). + ExpectWorkflowNode(func(status v1alpha1.NodeStatus) bool { + return strings.Contains(status.Name, "hooks.succeed") + }, func(t *testing.T, status *v1alpha1.NodeStatus, pod *apiv1.Pod) { + assert.Equal(t, v1alpha1.NodeSucceeded, status.Phase) + }) +} + +func (s *WorkflowTemplateSuite) TestWorkflowTemplateInvalidEntryPoint() { + s.Given(). + WorkflowTemplate("@testdata/workflow-template-invalid-entrypoint.yaml"). + Workflow(` +metadata: + generateName: workflow-template-invalid-entrypoint- +spec: + workflowTemplateRef: + name: workflow-template-invalid-entrypoint +`). + When(). + CreateWorkflowTemplates(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeErrored). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *v1.ObjectMeta, status *v1alpha1.WorkflowStatus) { + assert.Equal(t, status.Phase, v1alpha1.WorkflowError) + assert.Contains(t, status.Message, "error in entry template execution") + }). + ExpectPVCDeleted() +} + func TestWorkflowTemplateSuite(t *testing.T) { suite.Run(t, new(WorkflowTemplateSuite)) } diff --git a/test/e2e/workflow_test.go b/test/e2e/workflow_test.go new file mode 100644 index 000000000000..53958206f385 --- /dev/null +++ b/test/e2e/workflow_test.go @@ -0,0 +1,90 @@ +//go:build functional +// +build functional + +package e2e + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/suite" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/test/e2e/fixtures" +) + +type WorkflowSuite struct { + fixtures.E2ESuite +} + +func (s *WorkflowSuite) TestContainerTemplateAutomountServiceAccountTokenDisabled() { + s.Given().Workflow(` +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: get-resources-via-container-template- + namespace: argo +spec: + serviceAccountName: argo + automountServiceAccountToken: false + executor: + serviceAccountName: argo + entrypoint: main + templates: + - name: main + container: + name: main + image: bitnami/kubectl + command: + - sh + args: + - -c + - | + kubectl get cm +`). + When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded, time.Minute*10). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + }) +} + +func (s *WorkflowSuite) TestScriptTemplateAutomountServiceAccountTokenDisabled() { + s.Given().Workflow(` +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: get-resources-via-script-template- + namespace: argo +spec: + serviceAccountName: argo + automountServiceAccountToken: false + executor: + serviceAccountName: argo + entrypoint: main + templates: + - name: main + script: + name: main + image: bitnami/kubectl + command: + - sh + source: + kubectl get cm +`). + When(). + SubmitWorkflow(). + WaitForWorkflow(fixtures.ToBeSucceeded, time.Minute*10). + Then(). + ExpectWorkflow(func(t *testing.T, metadata *metav1.ObjectMeta, status *wfv1.WorkflowStatus) { + assert.Equal(t, wfv1.WorkflowSucceeded, status.Phase) + }) +} + +func TestWorkflowSuite(t *testing.T) { + suite.Run(t, new(WorkflowSuite)) +} diff --git a/ui/package.json b/ui/package.json index ad75dd9be090..db191aea8be3 100644 --- a/ui/package.json +++ b/ui/package.json @@ -6,44 +6,44 @@ "src" ], "scripts": { - "build": "rm -Rf dist && NODE_ENV=production webpack --mode production --config ./src/app/webpack.config.js", - "start": "NODE_OPTIONS=--no-experimental-fetch webpack-dev-server --config ./src/app/webpack.config.js", + "build": "rm -Rf dist && NODE_OPTIONS='--openssl-legacy-provider' NODE_ENV=production webpack --mode production --config ./src/app/webpack.config.js", + "start": "NODE_OPTIONS='--no-experimental-fetch --openssl-legacy-provider' webpack-dev-server --config ./src/app/webpack.config.js", "lint": "tslint --fix -p ./src/app", "test": "jest" }, "engines": { - "node": ">=16" + "node": ">=20" }, "dependencies": { "argo-ui": "https://github.com/argoproj/argo-ui.git#v2.5.0", "chart.js": "^2.9.4", "chartjs-plugin-annotation": "^0.5.7", "classnames": "^2.3.2", - "cron-parser": "^4.7.0", - "cronstrue": "^2.22.0", + "cron-parser": "^4.8.1", + "cronstrue": "^2.28.0", "dagre": "^0.8.5", "history": "^4.10.1", "js-yaml": "^4.1.0", "json-merge-patch": "^0.2.3", "moment": "^2.29.4", - "moment-timezone": "^0.5.40", - "monaco-editor": "0.20.0", + "moment-timezone": "^0.5.43", + "monaco-editor": "^0.30.0", "prop-types": "^15.8.1", "react": "^16.14.0", "react-chartjs-2": "^2.11.2", - "react-datepicker": "^4.10.0", + "react-datepicker": "^4.12.0", "react-dom": "^16.14.0", "react-moment": "^1.1.3", "react-monaco-editor": "^0.50.1", "react-router-dom": "^4.2.2", - "superagent": "^8.0.9", + "superagent": "^8.1.2", "superagent-promise": "^1.1.0", "swagger-ui-react": "^4.12.0" }, "devDependencies": { - "@babel/core": "^7.20.12", - "@babel/preset-env": "^7.20.2", - "@fortawesome/fontawesome-free": "^6.2.1", + "@babel/core": "^7.21.4", + "@babel/preset-env": "^7.21.4", + "@fortawesome/fontawesome-free": "^6.4.0", "@types/chart.js": "^2.9.24", "@types/classnames": "^2.3.1", "@types/dagre": "^0.7.48", @@ -53,26 +53,26 @@ "@types/prop-types": "^15.7.5", "@types/react": "^16.8.5", "@types/react-autocomplete": "^1.8.5", - "@types/react-datepicker": "^4.8.0", + "@types/react-datepicker": "^4.10.0", "@types/react-dom": "^16.8.2", "@types/react-form": "^2.16.1", "@types/react-helmet": "^6.1.6", "@types/react-router-dom": "^4.2.3", "@types/superagent": "^4.1.16", "@types/swagger-ui-react": "^4.11.0", - "babel-jest": "^29.4.1", + "babel-jest": "^29.5.0", "babel-loader": "^8.3.0", "copy-webpack-plugin": "^5.1.2", "copyfiles": "^2.4.1", "file-loader": "^6.2.0", - "glob": "^8.1.0", + "glob": "^9.3.2", "html-webpack-plugin": "^4.5.2", "jest": "^26.6.3", - "monaco-editor-webpack-plugin": "^1.9.1", + "monaco-editor-webpack-plugin": "^6.0.0", "prettier": "^1.19.1", "raw-loader": "^0.5.1", "react-hot-loader": "^4.13.1", - "sass": "^1.58.0", + "sass": "^1.60.0", "sass-loader": "^10.1.0", "source-map-loader": "^1.1.3", "style-loader": "^0.20.1", @@ -87,11 +87,14 @@ "webfonts-generator": "^0.4.0", "webpack": "^4.46.0", "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.11.1" + "webpack-dev-server": "^4.13.2" }, "resolutions": { + "semver": "^7.5.2", "lodash": "4.17.21", "prismjs": "1.27.0", - "@types/react": "16.8.5" + "@types/react": "16.8.5", + "autolinker": "3.16.1", + "fast-json-patch": "3.1.1" } } diff --git a/ui/src/app/archived-workflows/components/archived-workflow-filters/archived-workflow-filters.tsx b/ui/src/app/archived-workflows/components/archived-workflow-filters/archived-workflow-filters.tsx index 33a6a7ada6b4..111c2a52d404 100644 --- a/ui/src/app/archived-workflows/components/archived-workflow-filters/archived-workflow-filters.tsx +++ b/ui/src/app/archived-workflows/components/archived-workflow-filters/archived-workflow-filters.tsx @@ -199,9 +199,8 @@ export class ArchivedWorkflowFilters extends React.Component { - return services.archivedWorkflows.listLabelValues(key, this.props.namespace).then(list => { - return list.items.map(i => key + '=' + i).sort((a, b) => a.localeCompare(b)); - }); + private async fetchArchivedWorkflowsLabels(key: string): Promise { + const labels = await services.archivedWorkflows.listLabelValues(key, this.props?.namespace); + return labels.items.map(i => key + '=' + i).sort((a, b) => a.localeCompare(b)); } } diff --git a/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx b/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx index a718bae00c77..1c8e88a375c1 100644 --- a/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx +++ b/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx @@ -80,7 +80,7 @@ export class ArchivedWorkflowList extends BasePage, Sta public componentDidUpdate(): void { if (this.state.deep === true && this.state.workflows && this.state.workflows.length === 1) { const workflow = this.state.workflows[0]; - const url = '/archived-workflows/' + workflow.metadata.namespace + '/' + (workflow.metadata.uid || ''); + const url = uiUrl('/archived-workflows/' + workflow.metadata.namespace + '/' + (workflow.metadata.uid || '')); this.props.history.push(url); } } @@ -249,7 +249,7 @@ export class ArchivedWorkflowList extends BasePage, Sta if (!this.state.workflows) { return ; } - const learnMore = Learn more; + const learnMore = Learn more; if (this.state.workflows.length === 0) { return ( diff --git a/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-list/cluster-workflow-template-list.tsx b/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-list/cluster-workflow-template-list.tsx index 5ef0fbfa3a19..ee88d6ad150b 100644 --- a/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-list/cluster-workflow-template-list.tsx +++ b/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-list/cluster-workflow-template-list.tsx @@ -52,7 +52,7 @@ export const ClusterWorkflowTemplateList = ({history, location}: RouteComponentP if (!templates) { return ; } - const learnMore = Learn more; + const learnMore = Learn more; if (templates.length === 0) { return ( diff --git a/ui/src/app/cron-workflows/components/cron-workflow-list/cron-workflow-list.tsx b/ui/src/app/cron-workflows/components/cron-workflow-list/cron-workflow-list.tsx index 8d4871b3ff15..20335ac610cd 100644 --- a/ui/src/app/cron-workflows/components/cron-workflow-list/cron-workflow-list.tsx +++ b/ui/src/app/cron-workflows/components/cron-workflow-list/cron-workflow-list.tsx @@ -24,7 +24,7 @@ import {PrettySchedule} from '../pretty-schedule'; require('./cron-workflow-list.scss'); -const learnMore = Learn more; +const learnMore = Learn more; export const CronWorkflowList = ({match, location, history}: RouteComponentProps) => { // boiler-plate @@ -35,7 +35,7 @@ export const CronWorkflowList = ({match, location, history}: RouteComponentProps const [namespace, setNamespace] = useState(Utils.getNamespace(match.params.namespace) || ''); const [sidePanel, setSidePanel] = useState(queryParams.get('sidePanel') === 'true'); const [labels, setLabels] = useState([]); - const [states, setStates] = useState([]); + const [states, setStates] = useState(['Running', 'Suspended']); // check all by default useEffect( useQueryParams(history, p => { diff --git a/ui/src/app/cron-workflows/components/cron-workflow-spec-editior.tsx b/ui/src/app/cron-workflows/components/cron-workflow-spec-editior.tsx index 14250eaf5474..5f5b00e7649b 100644 --- a/ui/src/app/cron-workflows/components/cron-workflow-spec-editior.tsx +++ b/ui/src/app/cron-workflows/components/cron-workflow-spec-editior.tsx @@ -24,8 +24,9 @@ export const CronWorkflowSpecEditor = ({onChange, spec}: {spec: CronWorkflowSpec
Concurrency Policy
-
+