diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b7faa7..aabe1c9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -78,7 +78,7 @@ jobs: dotnetversion: - 3.1.301 goversion: - - 1.15.x + - 1.16.x language: - nodejs - python @@ -120,7 +120,7 @@ jobs: # - name: Install Go # uses: actions/setup-go@v2 # with: - # go-version: ${{ matrix.goversion }} + # go-version: 1.16.x # - name: Install pulumictl # uses: jaxxstorm/action-install-gh-release@d62853bc9e466834c74cefb34fad78535582e21a # with: @@ -148,7 +148,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: ${{ matrix.goversion }} + go-version: 1.16.x - name: Install pulumictl uses: jaxxstorm/action-install-gh-release@d62853bc9e466834c74cefb34fad78535582e21a with: @@ -175,7 +175,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: ${{ matrix.goversion }} + go-version: 1.16.x - name: Install pulumictl uses: jaxxstorm/action-install-gh-release@d62853bc9e466834c74cefb34fad78535582e21a with: @@ -209,7 +209,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v2 with: - go-version: ${{ matrix.goversion }} + go-version: 1.16.x - name: Install pulumictl uses: jaxxstorm/action-install-gh-release@d62853bc9e466834c74cefb34fad78535582e21a with: @@ -239,7 +239,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: ${{ matrix.goversion }} + go-version: 1.16.x - name: Install pulumictl uses: jaxxstorm/action-install-gh-release@d62853bc9e466834c74cefb34fad78535582e21a with: @@ -364,7 +364,7 @@ jobs: dotnetversion: - 3.1.301 goversion: - - 1.15.x + - 1.16.x language: - nodejs - python diff --git a/.gitignore b/.gitignore index f5ac108..9a27609 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,6 @@ ci-scripts **/schema.go **/version.txt **/nuget -**/dist \ No newline at end of file +**/dist + +.DS_Store diff --git a/.golangci.yml b/.golangci.yml index f510b19..ce66cf6 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,4 @@ linters: - enable-all: false enable: - deadcode - errcheck @@ -17,3 +16,9 @@ linters: - structcheck - unconvert - varcheck + enable-all: false +run: + skip-files: + - schema.go + - pulumiManifest.go + timeout: 10m diff --git a/Makefile b/Makefile index cb432ba..282ebb2 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,7 @@ PROJECT_NAME := proxmoxve Package -include build/common.mk PACK := proxmoxve ORG := matchlighter -PACKDIR := sdk PROJECT := github.com/${ORG}/pulumi-${PACK} NODE_MODULE_NAME := @matchlighter/pulumi-${PACK} TF_NAME := ${PACK} @@ -18,43 +16,65 @@ TESTPARALLELISM := 4 WORKING_DIR := $(shell pwd) +OS := $(shell uname) +EMPTY_TO_AVOID_SED := "" + +prepare:: + @if test -z "${NAME}"; then echo "NAME not set"; exit 1; fi + @if test -z "${REPOSITORY}"; then echo "REPOSITORY not set"; exit 1; fi + @if test ! -d "provider/cmd/pulumi-tfgen-x${EMPTY_TO_AVOID_SED}yz"; then "Project already prepared"; exit 1; fi + + mv "provider/cmd/pulumi-tfgen-x${EMPTY_TO_AVOID_SED}yz" provider/cmd/pulumi-tfgen-${NAME} + mv "provider/cmd/pulumi-resource-x${EMPTY_TO_AVOID_SED}yz" provider/cmd/pulumi-resource-${NAME} + + if [[ "${OS}" != "Darwin" ]]; then \ + sed -i 's,github.com/pulumi/pulumi-xyz,${REPOSITORY},g' provider/go.mod; \ + find ./ ! -path './.git/*' -type f -exec sed -i 's/[x]yz/${NAME}/g' {} \; &> /dev/null; \ + fi + + # In MacOS the -i parameter needs an empty string to execute in place. + if [[ "${OS}" == "Darwin" ]]; then \ + sed -i '' 's,github.com/pulumi/pulumi-xyz,${REPOSITORY},g' provider/go.mod; \ + find ./ ! -path './.git/*' -type f -exec sed -i '' 's/[x]yz/${NAME}/g' {} \; &> /dev/null; \ + fi + +.PHONY: development provider build_sdks build_nodejs build_dotnet build_go build_python cleanup + +development:: install_plugins provider lint_provider build_sdks install_sdks cleanup # Build the provider & SDKs for a development environment + +# Required for the codegen action that runs in pulumi/pulumi and pulumi/pulumi-terraform-bridge build:: install_plugins provider build_sdks install_sdks only_build:: build tfgen:: install_plugins - (cd provider && go build -o $(WORKING_DIR)/bin/${TFGEN} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" ${PROJECT}/${PROVIDER_PATH}/cmd/${TFGEN}) + (cd provider && go build -a -o $(WORKING_DIR)/bin/${TFGEN} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" ${PROJECT}/${PROVIDER_PATH}/cmd/${TFGEN}) $(WORKING_DIR)/bin/${TFGEN} schema --out provider/cmd/${PROVIDER} (cd provider && VERSION=$(VERSION) go generate cmd/${PROVIDER}/main.go) provider:: tfgen install_plugins # build the provider binary - (cd provider && go build -o $(WORKING_DIR)/bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" ${PROJECT}/${PROVIDER_PATH}/cmd/${PROVIDER}) + (cd provider && go build -a -o $(WORKING_DIR)/bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" ${PROJECT}/${PROVIDER_PATH}/cmd/${PROVIDER}) -# Build SDKs: -build_sdks:: install_plugins provider build_nodejs build_python build_go build_dotnet +build_sdks:: install_plugins provider build_nodejs build_python build_go build_dotnet # build all the sdks build_nodejs:: VERSION := $(shell pulumictl get version --language javascript) build_nodejs:: install_plugins tfgen # build the node sdk $(WORKING_DIR)/bin/$(TFGEN) nodejs --overlays provider/overlays/nodejs --out sdk/nodejs/ - cd sdk/nodejs/ && \ - yarn install && \ - yarn run tsc && \ - cp ../../README.md package.json yarn.lock ./bin/ && \ - sed -i.bak -e "s/\$${VERSION}/$(VERSION)/g" ./bin/package.json + yarn install && \ + yarn run tsc && \ + cp ../../README.md ../../LICENSE package.json yarn.lock ./bin/ && \ + sed -i.bak -e "s/\$${VERSION}/$(VERSION)/g" ./bin/package.json build_python:: PYPI_VERSION := $(shell pulumictl get version --language python) build_python:: install_plugins tfgen # build the python sdk $(WORKING_DIR)/bin/$(TFGEN) python --overlays provider/overlays/python --out sdk/python/ cd sdk/python/ && \ - cp ../../README.md . && \ - python3 setup.py clean --all 2>/dev/null && \ - rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \ - sed -i.bak -e "s/\$${VERSION}/$(PYPI_VERSION)/g" -e "s/\$${PLUGIN_VERSION}/$(VERSION)/g" ./bin/setup.py && \ - rm ./bin/setup.py.bak && \ - cd ./bin && python3 setup.py build sdist - -build_go:: install_plugins tfgen # build the go sdk - $(WORKING_DIR)/bin/$(TFGEN) go --overlays provider/overlays/go --out sdk/go/ + cp ../../README.md . && \ + python3 setup.py clean --all 2>/dev/null && \ + rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \ + sed -i.bak -e 's/^VERSION = .*/VERSION = "$(PYPI_VERSION)"/g' -e 's/^PLUGIN_VERSION = .*/PLUGIN_VERSION = "$(VERSION)"/g' ./bin/setup.py && \ + rm ./bin/setup.py.bak && \ + cd ./bin && python3 setup.py build sdist build_dotnet:: DOTNET_VERSION := $(shell pulumictl get version --language dotnet) build_dotnet:: install_plugins tfgen # build the dotnet sdk @@ -62,59 +82,43 @@ build_dotnet:: install_plugins tfgen # build the dotnet sdk $(WORKING_DIR)/bin/$(TFGEN) dotnet --overlays provider/overlays/dotnet --out sdk/dotnet/ cd sdk/dotnet/ && \ echo "${DOTNET_VERSION}" >version.txt && \ - dotnet build /p:Version=${DOTNET_VERSION} + dotnet build /p:Version=${DOTNET_VERSION} build_go:: install_plugins tfgen # build the go sdk $(WORKING_DIR)/bin/$(TFGEN) go --overlays provider/overlays/go --out sdk/go/ -# Misc: +lint_provider:: provider # lint the provider code + cd provider && golangci-lint run -c ../.golangci.yml + cleanup:: # cleans up the temporary directory rm -r $(WORKING_DIR)/bin rm -f provider/cmd/${PROVIDER}/schema.go +help:: + @grep '^[^.#]\+:\s\+.*#' Makefile | \ + sed "s/\(.\+\):\s*\(.*\) #\s*\(.*\)/`printf "\033[93m"`\1`printf "\033[0m"` \3 [\2]/" | \ + expand -t20 + +clean:: + rm -rf sdk/{dotnet,nodejs,go,python} + install_plugins:: [ -x $(shell which pulumi) ] || curl -fsSL https://get.pulumi.com | sh - -# Install SDKs: -install_sdks:: install_python_sdk install_nodejs_sdk install_dotnet_sdk + pulumi plugin install resource random 4.3.1 install_dotnet_sdk:: mkdir -p $(WORKING_DIR)/nuget find . -name '*.nupkg' -print -exec cp -p {} ${WORKING_DIR}/nuget \; install_python_sdk:: - cd ${PACKDIR}/python/bin && $(PIP) install --user -e . install_go_sdk:: install_nodejs_sdk:: yarn link --cwd $(WORKING_DIR)/sdk/nodejs/bin -# Testing: -test_all:: - cd examples && $(GO_TEST) . - -test_fast:: - cd examples && $(GO_TEST_FAST) . - -.PHONY: publish_tgz -publish_tgz: - $(call STEP_MESSAGE) - ./scripts/publish_tgz.sh - -.PHONY: publish_packages -publish_packages: - $(call STEP_MESSAGE) - $$(go env GOPATH)/src/github.com/pulumi/scripts/ci/publish-tfgen-package . - # $$(go env GOPATH)/src/github.com/pulumi/scripts/ci/build-package-docs.sh ${PACK} - -.PHONY: check_clean_worktree -check_clean_worktree: - $$(go env GOPATH)/src/github.com/pulumi/scripts/ci/check-worktree-is-clean.sh - -# The travis_* targets are entrypoints for CI. -.PHONY: travis_cron travis_push travis_pull_request travis_api -travis_cron: all -travis_push: only_build check_clean_worktree publish_tgz only_test publish_packages -travis_pull_request: all check_clean_worktree -travis_api: all +install_sdks:: install_dotnet_sdk install_python_sdk install_nodejs_sdk + +test:: + cd examples && go test -v -tags=all -parallel ${TESTPARALLELISM} -timeout 2h + diff --git a/README-PROVIDER.md b/README-PROVIDER.md new file mode 100644 index 0000000..fd3567b --- /dev/null +++ b/README-PROVIDER.md @@ -0,0 +1,56 @@ +# Foo Resource Provider + +The Foo Resource Provider lets you manage [Foo](http://example.com) resources. + +## Installing + +This package is available for several languages/platforms: + +### Node.js (JavaScript/TypeScript) + +To use from JavaScript or TypeScript in Node.js, install using either `npm`: + +```bash +npm install @pulumi/foo +``` + +or `yarn`: + +```bash +yarn add @pulumi/foo +``` + +### Python + +To use from Python, install using `pip`: + +```bash +pip install pulumi_foo +``` + +### Go + +To use from Go, use `go get` to grab the latest version of the library: + +```bash +go get github.com/pulumi/pulumi-foo/sdk/go/... +``` + +### .NET + +To use from .NET, install using `dotnet add package`: + +```bash +dotnet add package Pulumi.Foo +``` + +## Configuration + +The following configuration points are available for the `foo` provider: + +- `foo:apiKey` (environment: `FOO_API_KEY`) - the API key for `foo` +- `foo:region` (environment: `FOO_REGION`) - the region in which to deploy resources + +## Reference + +For detailed reference documentation, please visit [the Pulumi registry](https://www.pulumi.com/registry/packages/foo/api-docs/). diff --git a/README.md b/README.md index 65b6c17..6840ac2 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ Work in Progress Pulumi Provider for use with Proxmox VE -## Installing +1. Follow the steps above to verify the program runs successfully. -This package is available in many languages in the standard packaging formats. +## Add End-to-end Testing ### Installing the Plugin 1. Download the appropriate archive file from the Releases page: @@ -14,30 +14,30 @@ This package is available in many languages in the standard packaging formats. ### Node.js (Java/TypeScript) -To use from JavaScript or TypeScript in Node.js, install using either `npm`: +1. Add code to `examples_nodejs_test.go` to call the example you created, e.g.: $ npm install @matchlighter/pulumi-proxmoxve -or `yarn`: +1. Add a similar function for each example that you want to run in an integration test. For examples written in other languages, create similar files for `examples_${LANGUAGE}_test.go`. $ yarn add @matchlighter/pulumi-proxmoxve ### Python _*(Not published. I don't have a present need for this. If you do please open an issue.)*_ -To use from Python, install using `pip`: + You can also run each test file separately via test tags: $ pip install pulumi_proxmoxve ### .NET _*(Not published. I don't have a present need for this. If you do please open an issue with some instructions for how to publish a .NET package)*_ -### Go +## Configuring CI with GitHub Actions -To use from Go, use `go get` to grab the latest version of the library +In this section, we'll add the necessary configuration to work with GitHub Actions for Pulumi's standard CI/CD workflows for providers. $ go get github.com/matchlighter/pulumi-proxmoxve/sdk/go/... -## Configuration +1. Ensure that any required secrets are present as repository-level [secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) in GitHub. These will be used by the integration tests during the CI/CD process. Provider configuration is as documented on https://github.com/Telmate/terraform-provider-proxmox diff --git a/build/common.mk b/build/common.mk deleted file mode 100644 index 5743995..0000000 --- a/build/common.mk +++ /dev/null @@ -1,239 +0,0 @@ -# Copyright 2016-2018, Pulumi Corporation. All rights reserved. - -# common.mk provides most of the scalfholding for our build system. It -# provides default targets for each project we want to build. -# -# The default targets we use are: -# -# - ensure: restores and dependencies needed for the build from -# remote sources (e.g dep ensure or yarn install) -# -# - build: builds a project but does not install it. In the case of -# go code, this usually means running go install (which -# would place them in `GOBIN`, but not `PULUMI_ROOT` -# -# - install: copies the bits we plan to ship into a layout in -# `PULUMI_ROOT` that looks like what a customer would get -# when they download and install Pulumi. For JavaScript -# projects, installing also runs yarn link to register -# this package, so that other projects can depend on it. -# -# - lint: runs relevent linters for the project -# -# - test_fast: runs the fast tests for a project. These are often -# go unit tests or javascript unit tests, they should -# complete quickly, as we expect developers to run them -# fequently as part of their "inner loop" development. -# -# - test_all: runs all of test_fast and then runs additional testing, -# which may take longer (some times a lot longer!). These -# are often integration tests which will use `pulumi` to -# deploy example Pulumi projects, creating cloud -# resources along the way. -# -# In addition, we have a few higher level targets that just depend on -# these targets: -# -# - only_build: this target runs build and install targets -# -# - only_test: this target runs the list and test_all targets -# (test_all itself runs test_fast) -# -# - default: this is the target that is run by default when no -# arguments are passed to make, it runs the build, lint, -# install and test_fast targets -# -# - core: this target behaves like `default` except for the case -# where a project declares SUB_PROJECTS (see a discussion on -# that later). In that case, building `core` target does not -# build sub projects. -# -# - all: this target runs build, lint, install and test_all (which -# itself runs test_fast). -# -# Before including this makefile, a project may define some values -# that this makefile understands: -# -# - PROJECT_NAME: If set, make default and make all will print a banner -# with the project name when they are built. -# -# - SUB_PROJECTS: If set, each item in the list is treated as a path -# to another project (relative to the directory of the -# main Makefile) which should be built as well. When -# this happens, the default and all targets first -# build the default or all target of each child -# project. For each subproject we also create targets -# with our standard names, prepended by the target -# name and an underscore, which just calls Make for -# that specific target. These can be handy targets to -# build explicitly on the command line from time to -# time. -# -# - NODE_MODULE_NAME: If set, an install target will be auto-generated -# that installs the module to -# $(PULUMI_ROOT)/node_modules/$(NODE_MODULE_NAME) -# -# This Makefile also provides some convience methods: -# -# STEP_MESSAGE is a macro that can be invoked with `$(call -# STEP_MESSAGE)` and it will print the name of the current target (in -# green text) to the console. All the targets provided by this makefile -# do that by default. -# -# The ensure target also provides some default behavior, detecting if -# there is a Gopkg.toml or package.json file in the current folder and -# if so calling dep ensure -v or yarn install. This behavior means that -# projects will not often need to augment the ensure target. -# -# Unlike the other leaf targets, ensure will call the ensure target on -# any sub-projects. -# -# Importing common.mk should be the first thing your Makefile does, after -# optionally setting SUB_PROJECTS, PROJECT_NAME and NODE_MODULE_NAME. -SHELL := /bin/bash -.SHELLFLAGS := -ec - -STEP_MESSAGE = @echo -e "\033[0;32m$(shell echo '$@' | tr a-z A-Z | tr '_' ' '):\033[0m" - -# Our install targets place items item into $PULUMI_ROOT, if it's -# unset, default to /opt/pulumi. -ifeq ($(PULUMI_ROOT),) - PULUMI_ROOT:=/opt/pulumi -endif - -PULUMI_BIN := $(PULUMI_ROOT)/bin -PULUMI_NODE_MODULES := $(PULUMI_ROOT)/node_modules -PULUMI_NUGET := $(PULUMI_ROOT)/nuget - -GO_TEST_FAST = go test -short -v -count=1 -cover -timeout 2h -parallel ${TESTPARALLELISM} -GO_TEST = go test -v -count=1 -cover -timeout 2h -parallel ${TESTPARALLELISM} -GOPROXY = 'https://proxy.golang.org' - -.PHONY: default all ensure only_build only_test build lint install test_all core - -# ensure that `default` is the target that is run when no arguments are passed to make -default:: - -PYTHON ?= python3 -PIP ?= pip3 - -# If there are sub projects, our default, all, and ensure targets will -# recurse into them. -ifneq ($(SUB_PROJECTS),) -only_build:: $(SUB_PROJECTS:%=%_only_build) -only_test:: $(SUB_PROJECTS:%=%_only_test) -only_test_fast:: $(SUB_PROJECTS:%=%_only_test_fast) -default:: $(SUB_PROJECTS:%=%_default) -all:: $(SUB_PROJECTS:%=%_all) -ensure:: $(SUB_PROJECTS:%=%_ensure) -endif - -# `core` is like `default` except it does not build sub projects. -core:: build lint install test_fast - -# If $(PROJECT_NAME) has been set, have our default and all targets -# print a nice banner. -ifneq ($(PROJECT_NAME),) -default:: - @echo -e "\033[1;37m$(shell echo '$(PROJECT_NAME)' | sed -e 's/./=/g')\033[1;37m" - @echo -e "\033[1;37m$(PROJECT_NAME)\033[1;37m" - @echo -e "\033[1;37m$(shell echo '$(PROJECT_NAME)' | sed -e 's/./=/g')\033[1;37m" -all:: - @echo -e "\033[1;37m$(shell echo '$(PROJECT_NAME)' | sed -e 's/./=/g')\033[1;37m" - @echo -e "\033[1;37m$(PROJECT_NAME)\033[1;37m" - @echo -e "\033[1;37m$(shell echo '$(PROJECT_NAME)' | sed -e 's/./=/g')\033[1;37m" -endif - -default:: build install lint test_fast -all:: build install lint test_all - -ensure:: - $(call STEP_MESSAGE) -ifeq ($(NOPROXY), true) - @echo "cd provider && GO111MODULE=on go mod tidy"; cd provider && GO111MODULE=on go mod tidy - @echo "cd provider && GO111MODULE=on go mod download"; cd provider && GO111MODULE=on go mod download - @echo "cd sdk && GO111MODULE=on go mod tidy"; cd sdk && GO111MODULE=on go mod tidy - @echo "cd sdk && GO111MODULE=on go mod download"; cd sdk && GO111MODULE=on go mod download - @echo "cd examples && GO111MODULE=on go mod tidy"; cd examples && GO111MODULE=on go mod tidy - @echo "cd examples && GO111MODULE=on go mod download"; cd examples && GO111MODULE=on go mod download - @echo "cd scripts && GO111MODULE=on go mod tidy"; cd scripts && GO111MODULE=on go mod tidy - @echo "cd scripts && GO111MODULE=on go mod download"; cd scripts && GO111MODULE=on go mod download -else - @echo "cd provider && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd provider && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy - @echo "cd provider && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd provider && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download - @echo "cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy - @echo "cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd sdk && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download - @echo "cd examples && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd examples && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy - @echo "cd examples && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd examples && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download - @echo "cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy"; cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod tidy - @echo "cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download"; cd scripts && GO111MODULE=on GOPROXY=$(GOPROXY) go mod download -endif - @if [ -e 'package.json' ]; then echo "yarn install"; yarn install; fi - -build:: - $(call STEP_MESSAGE) - -lint:: - $(call STEP_MESSAGE) - -test_fast:: - $(call STEP_MESSAGE) - -install:: - $(call STEP_MESSAGE) - @mkdir -p $(PULUMI_BIN) - @mkdir -p $(PULUMI_NODE_MODULES) - @mkdir -p $(PULUMI_NUGET) - -test_all:: - $(call STEP_MESSAGE) - -ifneq ($(NODE_MODULE_NAME),) -install:: - [ ! -e "$(PULUMI_NODE_MODULES)/$(NODE_MODULE_NAME)" ] || rm -rf "$(PULUMI_NODE_MODULES)/$(NODE_MODULE_NAME)" - mkdir -p "$(PULUMI_NODE_MODULES)/$(NODE_MODULE_NAME)" - cp -r bin/. "$(PULUMI_NODE_MODULES)/$(NODE_MODULE_NAME)" - cp yarn.lock "$(PULUMI_NODE_MODULES)/$(NODE_MODULE_NAME)" - rm -rf "$(PULUMI_NODE_MODULES)/$(NODE_MODULE_NAME)/node_modules" - cd "$(PULUMI_NODE_MODULES)/$(NODE_MODULE_NAME)" && \ - yarn install --offline --production && \ - (yarn unlink > /dev/null 2>&1 || true) && \ - yarn link -endif - -only_build:: build install -only_test:: lint test_all -only_test_fast:: lint test_fast - -# Generate targets for each sub project. This project's default and -# all targets will depend on the sub project's targets, and the -# individual targets for sub projects are added as a convience when -# invoking make from the command line -ifneq ($(SUB_PROJECTS),) -$(SUB_PROJECTS:%=%_default): - @$(MAKE) -C ./$(@:%_default=%) default -$(SUB_PROJECTS:%=%_all): - @$(MAKE) -C ./$(@:%_all=%) all -$(SUB_PROJECTS:%=%_ensure): - @$(MAKE) -C ./$(@:%_ensure=%) ensure -$(SUB_PROJECTS:%=%_build): - @$(MAKE) -C ./$(@:%_build=%) build -$(SUB_PROJECTS:%=%_lint): - @$(MAKE) -C ./$(@:%_lint=%) lint -$(SUB_PROJECTS:%=%_test_fast): - @$(MAKE) -C ./$(@:%_test_fast=%) test_fast -$(SUB_PROJECTS:%=%_install): - @$(MAKE) -C ./$(@:%_install=%) install -$(SUB_PROJECTS:%=%_only_build): - @$(MAKE) -C ./$(@:%_only_build=%) only_build -$(SUB_PROJECTS:%=%_only_test): - @$(MAKE) -C ./$(@:%_only_test=%) only_test -$(SUB_PROJECTS:%=%_only_test_fast): - @$(MAKE) -C ./$(@:%_only_test_fast=%) only_test_fast -endif - -# As a convinece, we provide a format target that folks can build to -# run go fmt over all the go code in their tree. -.PHONY: format -format: - find . -iname "*.go" -not -path "./vendor/*" | xargs gofmt -s -w diff --git a/examples/go.mod b/examples/go.mod index 3a01e3b..48f3086 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -1,5 +1,3 @@ module github.com/matchlighter/pulumi-proxmoxve/examples -go 1.14 - -replace github.com/Azure/go-autorest => github.com/Azure/go-autorest v12.4.3+incompatible +go 1.16 diff --git a/provider/cmd/pulumi-resource-proxmoxve/generate.go b/provider/cmd/pulumi-resource-proxmoxve/generate.go index 6e0d010..a548fda 100644 --- a/provider/cmd/pulumi-resource-proxmoxve/generate.go +++ b/provider/cmd/pulumi-resource-proxmoxve/generate.go @@ -23,7 +23,7 @@ import ( "log" "os" - "github.com/pulumi/pulumi/pkg/v2/codegen/schema" + "github.com/pulumi/pulumi/pkg/v3/codegen/schema" ) func main() { diff --git a/provider/cmd/pulumi-resource-proxmoxve/main.go b/provider/cmd/pulumi-resource-proxmoxve/main.go index f614064..97192e3 100644 --- a/provider/cmd/pulumi-resource-proxmoxve/main.go +++ b/provider/cmd/pulumi-resource-proxmoxve/main.go @@ -17,8 +17,7 @@ package main import ( - "github.com/pulumi/pulumi-terraform-bridge/v2/pkg/tfbridge" - + "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" proxmoxve "github.com/matchlighter/pulumi-proxmoxve/provider" "github.com/matchlighter/pulumi-proxmoxve/provider/pkg/version" ) diff --git a/provider/cmd/pulumi-resource-proxmoxve/schema.json b/provider/cmd/pulumi-resource-proxmoxve/schema.json index d160ec2..b1200a9 100644 --- a/provider/cmd/pulumi-resource-proxmoxve/schema.json +++ b/provider/cmd/pulumi-resource-proxmoxve/schema.json @@ -787,6 +787,64 @@ }, "provider": { "description": "The provider type for the proxmoxve package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n", + "properties": { + "pmApiTokenId": { + "type": "string", + "description": "API TokenID e.g. root@pam!mytesttoken\n" + }, + "pmApiTokenSecret": { + "type": "string", + "description": "The secret uuid corresponding to a TokenID\n" + }, + "pmApiUrl": { + "type": "string", + "description": "https://host.fqdn:8006/api2/json\n" + }, + "pmDangerouslyIgnoreUnknownAttributes": { + "type": "boolean", + "description": "By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of\nVMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set\nthis to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of\nthe danger in doing so.\n" + }, + "pmLogEnable": { + "type": "boolean", + "description": "Enable provider logging to get proxmox API logs\n" + }, + "pmLogFile": { + "type": "string", + "description": "Write logs to this specific file\n" + }, + "pmLogLevels": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + }, + "description": "Configure the logging level to display; trace, debug, info, warn, etc\n" + }, + "pmOtp": { + "type": "string", + "description": "OTP 2FA code (if required)\n" + }, + "pmParallel": { + "type": "integer" + }, + "pmPassword": { + "type": "string", + "description": "Password to authenticate into proxmox\n" + }, + "pmTimeout": { + "type": "integer" + }, + "pmTlsInsecure": { + "type": "boolean", + "description": "By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on\nservers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that\nissued the proxmox api url's certificate.\n" + }, + "pmUser": { + "type": "string", + "description": "Username e.g. myuser or myuser@pam\n" + } + }, + "required": [ + "pmApiUrl" + ], "inputProperties": { "pmApiTokenId": { "type": "string", @@ -2057,19 +2115,24 @@ }, "language": { "csharp": { + "compatibility": "tfbridge20", "namespaces": null, "packageReferences": { - "Pulumi": "2.*", - "System.Collections.Immutable": "1.6.0" + "Pulumi": "3.*" } }, + "go": { + "generateResourceContainerTypes": true, + "importBasePath": "github.com/pulumi/pulumi-proxmoxve/sdk/go/proxmoxve" + }, "nodejs": { + "compatibility": "tfbridge20", "dependencies": { - "@pulumi/pulumi": "^2.0.0" + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { "@types/mime": "^2.0.0", - "@types/node": "^8.0.25" + "@types/node": "^10.0.0" }, "disableUnionOutputTypes": true, "packageDescription": "A Pulumi package for creating and managing proxmoxve cloud resources.", @@ -2078,11 +2141,11 @@ "typescriptVersion": "" }, "python": { + "compatibility": "tfbridge20", "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-proxmoxve)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi/pulumi-proxmoxve` repo](https://github.com/pulumi/pulumi-proxmoxve/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-providers/terraform-provider-proxmoxve` repo](https://github.com/terraform-providers/terraform-provider-proxmoxve/issues).", "requires": { - "pulumi": "\u003e=2.9.0,\u003c3.0.0" - }, - "usesIOClasses": false + "pulumi": "\u003e=3.0.0,\u003c4.0.0" + } } } } \ No newline at end of file diff --git a/provider/cmd/pulumi-tfgen-proxmoxve/main.go b/provider/cmd/pulumi-tfgen-proxmoxve/main.go index 86708f2..97f570d 100644 --- a/provider/cmd/pulumi-tfgen-proxmoxve/main.go +++ b/provider/cmd/pulumi-tfgen-proxmoxve/main.go @@ -15,8 +15,7 @@ package main import ( - "github.com/pulumi/pulumi-terraform-bridge/v2/pkg/tfgen" - + "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfgen" proxmoxve "github.com/matchlighter/pulumi-proxmoxve/provider" "github.com/matchlighter/pulumi-proxmoxve/provider/pkg/version" ) diff --git a/provider/go.mod b/provider/go.mod index f0330ba..c23ac84 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,22 +1,15 @@ module github.com/matchlighter/pulumi-proxmoxve/provider -go 1.14 +go 1.16 replace ( - github.com/Azure/go-autorest => github.com/Azure/go-autorest v12.4.3+incompatible - github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20200910230100-328eb4ff41df - github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 -) - -replace ( - // github.com/Telmate/terraform-provider-proxmox => github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201216064002-1547dfbe6e24 - // github.com/Telmate/proxmox-api-go => github.com/matchlighter/proxmox-api-go v0.0.0-20201102231845-1bf8a10baa24 + github.com/hashicorp/go-getter v1.5.0 => github.com/hashicorp/go-getter v1.4.0 + github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20210629210550-59d24255d71f ) require ( github.com/Telmate/terraform-provider-proxmox v0.0.0-20210512182441-01f54a7bc089 github.com/hashicorp/terraform-plugin-sdk v1.14.0 // indirect - github.com/pulumi/pulumi-terraform-bridge/v2 v2.12.0 - github.com/pulumi/pulumi/pkg/v2 v2.12.1-0.20201019222817-89c956d18942 // indirect - github.com/pulumi/pulumi/sdk/v2 v2.12.0 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.9.0 + github.com/pulumi/pulumi/sdk/v3 v3.14.1-0.20211007222624-789e39219452 ) diff --git a/provider/go.sum b/provider/go.sum index 157bbd9..c403a47 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1,26 +1,30 @@ +bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0 h1:MZQCQQaRwOrAcuKjiHWHrgKykt4fZyuwF2dtiG3fGW8= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.55.0/go.mod h1:ZHmoY+/lIMNkN2+fBmuTiqZ4inFhvQad8ft7MT8IV5Y= cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.58.0/go.mod h1:W+9FnSUw6nhVwXlFcp1eL+krq5+HQUJeUogSeJZZiWg= -cloud.google.com/go v0.61.0 h1:NLQf5e1OMspfNT1RAHOB3ublr1TW3YTXO8OiWwVjK2U= cloud.google.com/go v0.61.0/go.mod h1:XukKJg4Y7QsUu0Hxg3qQKUWR4VuWivmyMK2+rUyxAqw= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= 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= @@ -29,349 +33,264 @@ cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4g cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.2.0/go.mod h1:iISCjWnTpnoJT1R287xRdjvQHJrxQOpeah4phb5D3h0= +cloud.google.com/go/firestore v1.5.0/go.mod h1:c4nNYR1qdq7eaZ+jSc5fonrQN2k3M7sWATcYTiakjEo= cloud.google.com/go/logging v1.0.0/go.mod h1:V1cc3ogwobYzQq5f2R7DS/GvRIrI4FKj01Gs5glwAls= 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= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.10.3/go.mod h1:FUcc28GpGxxACoklPsE1sCtbkY4Ix+ro7yvw+h82Jn4= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0 h1:UDpwYIwla4jHGzZJaEJYx1tOejbgSoNqsAfHAUYe2r8= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.9.0/go.mod h1:m+/etGaqZbylxaNT876QGXqEHp4PR2Rq5GMqICWb9bU= -cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -code.cloudfoundry.org/gofileutils v0.0.0-20170111115228-4d0c80011a0f/go.mod h1:sk5LnIjB/nIEU7yP5sDQExVm62wu0pBh3yrElngUisI= -contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= -contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= -contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= -contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= -contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +cloud.google.com/go/storage v1.15.0 h1:Ljj+ZXVEhCr/1+4ZhvtteN1ND7UUsNTlduGclLh8GO0= +cloud.google.com/go/storage v1.15.0/go.mod h1:mjjQMoxxyGH7Jr8K5qrx6N2O0AHsczI61sMNn03GIZI= +contrib.go.opencensus.io/exporter/aws v0.0.0-20200617204711-c478e41e60e9/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= +contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= +contrib.go.opencensus.io/integrations/ocsql v0.1.7/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/AlecAivazis/survey/v2 v2.0.5/go.mod h1:WYBhg6f0y/fNYUuesWQc0PKbJcEliGcYHB9sNT3Bg74= -github.com/Azure/azure-amqp-common-go/v3 v3.0.0/go.mod h1:SY08giD/XbhTz07tJdpw1SoxQXHPN30+DI3Z04SYqyg= -github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= -github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= -github.com/Azure/azure-sdk-for-go v21.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v37.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v45.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-service-bus-go v0.10.1/go.mod h1:E/FOceuKAFUfpbIJDKWz/May6guE+eGibfGT6q+n1to= -github.com/Azure/azure-storage-blob-go v0.9.0/go.mod h1:8UBPbiOhrMQ4pLPi3gA1tXnpjrS76UYE/fo5A40vf4g= -github.com/Azure/go-amqp v0.12.6/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo= -github.com/Azure/go-amqp v0.12.7/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo= +github.com/Azure/azure-amqp-common-go/v3 v3.1.0/go.mod h1:PBIGdzcO1teYoufTKMcGibdKaYZv4avS+O6LNIp8bq0= +github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= +github.com/Azure/azure-sdk-for-go v51.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v54.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-service-bus-go v0.10.11/go.mod h1:AWw9eTTWZVZyvgpPahD1ybz3a8/vT3GsJDS8KYex55U= +github.com/Azure/azure-storage-blob-go v0.13.0/go.mod h1:pA9kNqtjUeQF2zOSu4s//nUdBD+e64lEuc4sVnuOfNs= +github.com/Azure/go-amqp v0.13.0/go.mod h1:qj+o8xPCz9tMSbQ83Vp8boHahuRDl5mkNHyt1xlxUTs= +github.com/Azure/go-amqp v0.13.4/go.mod h1:wbpCKA8tR5MLgRyIu+bb+S6ECdIDdYJ0NlpFE9xsBPI= +github.com/Azure/go-amqp v0.13.7/go.mod h1:wbpCKA8tR5MLgRyIu+bb+S6ECdIDdYJ0NlpFE9xsBPI= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-autorest v12.4.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= -github.com/Azure/go-autorest/autorest v0.10.0/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.3/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= -github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.8.3/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= +github.com/Azure/go-autorest/autorest v0.11.17/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw= -github.com/Azure/go-autorest/autorest/azure/cli v0.4.0/go.mod h1:JljT387FplPzBA31vUcvsetLKF3pec5bdAxjVU4kI2s= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= +github.com/Azure/go-autorest/autorest/adal v0.9.2/go.mod h1:/3SMAM86bP6wC9Ev35peQDUeqFZBMH07vvUOmg4z/fE= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/adal v0.9.11/go.mod h1:nBKAnTomx8gDtl+3ZCJv2v0KACFHWTB2drffI1B68Pk= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.7/go.mod h1:AkzUsqkrdmNhfP2i54HqINVQopw0CLDnvHpJ88Zz1eI= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.2/go.mod h1:7qkJkT+j6b+hIpzMOwPChJhTqS8VbsqqgULzMNRugoM= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI= -github.com/Azure/go-autorest/autorest/validation v0.3.0/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4 h1:pSm8mp0T2OH2CPmPDPtwHPr3VAQaOwVF/JbllOPP4xA= -github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= -github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8= -github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4= -github.com/ChrisTrenkamp/goxpath v0.0.0-20190607011252-c5096ec8773d/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4= -github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae/go.mod h1:mjwGPas4yKduTyubHvD1Atl9r1rUq8DfVy+gkVvZ+oo= -github.com/Jeffail/gabs v1.1.1/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= -github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Microsoft/go-winio v0.4.12/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/GoogleCloudPlatform/cloudsql-proxy v1.22.0/go.mod h1:mAm5O/zik2RFmcpigNjg6nMotDL8ZXJaxKzgGVcSMFA= +github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= +github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= +github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM= -github.com/SAP/go-hdb v0.14.1/go.mod h1:7fdQLVC2lER3urZLjZCm0AuMQfApof92n3aylBPEkMo= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/Sirupsen/logrus v1.0.5/go.mod h1:rmk17hk6i8ZSAJkSDa7nOxamrG+SP4P0mm+DAvExv4U= -github.com/Telmate/proxmox-api-go v0.0.0-20200728092759-59bf3b228a00 h1:7+727mBvbsmA7G54WePPgxn6kwY3XCenGjftLaniShc= -github.com/Telmate/proxmox-api-go v0.0.0-20200728092759-59bf3b228a00/go.mod h1:ayPkdmEKnlssqLQ9K1BE1jlsaYhXVwkoduXI30oQF0I= -github.com/Telmate/proxmox-api-go v0.0.0-20200729204648-0bb7d4b38186 h1:GUTVu1MMEUMvTVvLL0WsApAfnD/jrlRg4EcKAvbctp0= -github.com/Telmate/proxmox-api-go v0.0.0-20200729204648-0bb7d4b38186/go.mod h1:ayPkdmEKnlssqLQ9K1BE1jlsaYhXVwkoduXI30oQF0I= -github.com/Telmate/proxmox-api-go v0.0.0-20201119162508-829786e5b8df h1:ED8m/7BU/FEx2qa3L+HB08lSI3yWyJYuzwqcaeRzlLI= -github.com/Telmate/proxmox-api-go v0.0.0-20201119162508-829786e5b8df/go.mod h1:ayPkdmEKnlssqLQ9K1BE1jlsaYhXVwkoduXI30oQF0I= +github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= github.com/Telmate/proxmox-api-go v0.0.0-20210507143528-c60bbda13c0c h1:s8BXeCeP5hLudxqEVwSScJMS/V25eyatTKpIg7JMSNQ= github.com/Telmate/proxmox-api-go v0.0.0-20210507143528-c60bbda13c0c/go.mod h1:keBhXWLa+UBajvf79xvKcfiqeIc7vZL9wOqxuy1CBGw= -github.com/Telmate/terraform-provider-proxmox v0.0.0-20201016141324-4d4bf30a4b0d h1:e/66M0kJzXY/xf0/tY2PLgMiX26DqQyqjjMu9sv+Ixk= -github.com/Telmate/terraform-provider-proxmox v0.0.0-20201016141324-4d4bf30a4b0d/go.mod h1:Z/I25Nj4+COI9numI6xiR4P2NDF5s/mOR3V+Vp5/6Nk= github.com/Telmate/terraform-provider-proxmox v0.0.0-20210512182441-01f54a7bc089 h1:Mw8qqvCiFZTsVpUc66kDTXl3tHfg2gF17LywgC88kJA= github.com/Telmate/terraform-provider-proxmox v0.0.0-20210512182441-01f54a7bc089/go.mod h1:+xYDnfV54jwNeUCAUHbQjzhM48G4p5zX9V/+LHxYO50= -github.com/Unknwon/com v0.0.0-20151008135407-28b053d5a292/go.mod h1:KYCjqMOeHpNuTOiFQU6WEcTG7poCJrUs0YgyHNtn1no= -github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw= +github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/agl/ed25519 v0.0.0-20150830182803-278e1ec8e8a6/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= -github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +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/aliyun/alibaba-cloud-sdk-go v0.0.0-20190329064014-6e358769c32a/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= -github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190412020505-60e2075261b6/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= -github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= -github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190103054945-8205d1f41e70/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= -github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= -github.com/aliyun/aliyun-tablestore-go-sdk v4.1.2+incompatible/go.mod h1:LDQHRZylxvcg8H7wBIDfvO5g/cy4/sz1iucBlc2l3Jw= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/andybalholm/crlf v0.0.0-20171020200849-670099aa064f/go.mod h1:k8feO4+kXDxro6ErPXBRTJ/ro2mf0SsFG8s7doP9kJE= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/antchfx/xpath v0.0.0-20190129040759-c8489ed3251e h1:ptBAamGVd6CfRsUtyHD+goy2JGhv1QC32v3gqM8mYAM= -github.com/antchfx/xpath v0.0.0-20190129040759-c8489ed3251e/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= -github.com/antchfx/xquery v0.0.0-20180515051857-ad5b8c7a47b0 h1:JaCC8jz0zdMLk2m+qCCVLLLM/PL93p84w4pK3aJWj60= -github.com/antchfx/xquery v0.0.0-20180515051857-ad5b8c7a47b0/go.mod h1:LzD22aAzDP8/dyiCKFp31He4m2GPjl0AFyzDtZzUu9M= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apparentlymart/go-cidr v1.0.1 h1:NmIwLZ/KdsjIUlhf+/Np40atNXm/+lZ5txfTJ/SpF+U= github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= -github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU= -github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= -github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 h1:MzVXffFUye+ZcSR6opIgz9Co7WcDx6ZcY+RjfFHoA0I= github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= -github.com/apparentlymart/go-textseg/v12 v12.0.0 h1:bNEQyAGak9tojivJNkoqWErVCQbjdL7GzRt3F8NvfJ0= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= -github.com/apparentlymart/go-userdirs v0.0.0-20200915174352-b0c018a67c13/go.mod h1:7kfpUbyCdGJ9fDRCp3fopPQi5+cKNHgTE4ZuNrO71Cw= -github.com/apparentlymart/go-versions v1.0.0/go.mod h1:YF5j7IQtrOAOnsGkniupEA5bfCjzd7i14yu0shZavyM= -github.com/apple/foundationdb/bindings/go v0.0.0-20190411004307-cd5c9d91fad2/go.mod h1:OMVSB21p9+xQUIqlGizHPZfjK+SHws1ht+ZytVDoz9U= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= +github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= -github.com/armon/go-proxyproto v0.0.0-20190211145416-68259f75880e/go.mod h1:QmP9hvJ91BbJmGVGSbutW19IC0Q9phDCLGaomwTJbgU= +github.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs= +github.com/armon/go-metrics v0.3.3/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= -github.com/aws/aws-sdk-go v1.16.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.19.39/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.22.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.31.13 h1:UeWMTRTL0XAKLR7vxDL4/u7KOtz/LtfJr+lXtxN4YEQ= -github.com/aws/aws-sdk-go v1.31.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= +github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.30.27/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.38.35 h1:7AlAO0FC+8nFjxiGKEmq0QLpiA8/XFr6eIxgRTwkdTg= +github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= 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/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/bmatcuk/doublestar v1.1.5 h1:2bNwBOmhyFEFcoB3tGvTD5xanq+4kyOZlB8wFYbMjkk= -github.com/bmatcuk/doublestar v1.1.5/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/briankassouf/jose v0.9.2-0.20180619214549-d2569464773f/go.mod h1:HQhVmdUf7dBNwIIdBTivnCDxcf6IZY3/zrb+uKSJz6Y= github.com/bsm/go-vlq v0.0.0-20150828105119-ec6e8d4f5f4e/go.mod h1:N+BjUcTjSxc2mtRGSCPsat1kze3CUtvJN3/jTXlp29k= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/centrify/cloud-golang-sdk v0.0.0-20190214225812-119110094d0f/go.mod h1:C0rtzmGXgN78pYR0tGJFhtHgkbAs0lIbHwkB81VxDQE= +github.com/census-instrumentation/opencensus-proto v0.3.0/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/cheggaaa/pb v1.0.18/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/cheggaaa/pb v1.0.27 h1:wIkZHkNfC7R6GI5w7l/PdAdzXzlrbcI3p8OAlnkTsnc= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= -github.com/chrismalek/oktasdk-go v0.0.0-20181212195951-3430665dfaa0/go.mod h1:5d8DqS60xkj9k3aXfL3+mXBH0DPYO0FQjcKosxl+b/Q= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudfoundry-community/go-cfclient v0.0.0-20190201205600-f136f9222381/go.mod h1:e5+USP2j8Le2M0Jo3qKPFnNhuo1wueU4nWHCXBOfQ14= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/coreos/bbolt v1.3.0/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= +github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20200709052629-daa8e1ccc0bc/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= 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= -github.com/coreos/go-oidc v2.0.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/go-systemd/v22 v22.3.1/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= 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/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/denisenkom/go-mssqldb v0.0.0-20190412130859-3b1d194e553a/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM= +github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= 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= -github.com/dimchansky/utfbom v1.0.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/djherbis/times v1.2.0 h1:xANXjsC/iBqbO00vkWlYwPWgBgEVU6m6AFYg0Pic+Mc= github.com/djherbis/times v1.2.0/go.mod h1:CGMZlo255K5r4Yw0b9RRfFQpM2y7uOmxg4jm9HsaVf8= -github.com/dnaeon/go-vcr v0.0.0-20180920040454-5637cf3d8a31/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/docker v0.0.0-20170504205632-89658bed64c2/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.4.2-0.20200319182547-c7ad2b866182/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/duosecurity/duo_api_golang v0.0.0-20190308151101-6c680f768e74/go.mod h1:UqXY1lYT/ERa4OEAywUqdok1T4RCRdArkhic1Opuavo= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dylanmei/iso8601 v0.1.0 h1:812NGQDBcqquTfH5Yeo7lwR0nzx/cKdsmf3qMjPURUI= -github.com/dylanmei/iso8601 v0.1.0/go.mod h1:w9KhXSgIyROl1DefbMYIE7UVSIvELTbMrCfx+QkYnoQ= -github.com/dylanmei/winrmtest v0.0.0-20190225150635-99b7fe2fddf1 h1:r1oACdS2XYiAWcfF8BJXkoU8l1J71KehGR+d99yWEDA= -github.com/dylanmei/winrmtest v0.0.0-20190225150635-99b7fe2fddf1/go.mod h1:lcy9/2gH1jn/VCLouHA6tOEwLoNVd4GW6zhuKLmHC2Y= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= -github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= 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= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= -github.com/gammazero/deque v0.0.0-20190130191400-2afb3858e9c7/go.mod h1:GeIq9qoE43YdGnDXURnmKTnGg15pQz4mYkXSTChbneI= -github.com/gammazero/workerpool v0.0.0-20190406235159-88d534f22b56/go.mod h1:w9RqFVO2BM3xwWEcAB8Fwp0OviTBBEiRmSBDfbXnd3w= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813/go.mod h1:P+oSoE9yhSRvsmYyZsshflcR6ePWYLql6UU1amW13IM= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= -github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -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-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.0.0 h1:7NQHvd9FVid8VL4qVUMm8XifBK+2xCoZ2lSk0agRrHM= -github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-git-fixtures/v4 v4.0.1 h1:q+IFMfLx200Q3scvt2hN79JsEzy4AmBTp/pqnefH+Bc= -github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= -github.com/go-git/go-git/v5 v5.1.0 h1:HxJn9g/E7eYvKW3Fm7Jt4ee8LXfPOm/H1cdDu8vEssk= -github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= +github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= +github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= +github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= +github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= 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-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-ldap/ldap/v3 v3.1.3/go.mod h1:3rbOH3jRS2u6jg2rJnKAMLE/xQyCKIveG2Sa/Cohzb8= +github.com/go-ldap/ldap/v3 v3.1.10/go.mod h1:5Zun81jBTabRaI8lzN7E1JjyEl1g6zI6u9pd8luAK4Q= 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-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/gocql/gocql v0.0.0-20190402132108-0e1d5de854df/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.7.1 h1:DP+LD/t0njgoPBvT5MJLeliUIVQR03hiKR6vezdwHlc= github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.0.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= 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-20180513044358-24b0969c4cb7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -379,596 +298,414 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +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/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 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/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= -github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= -github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/go-replayers/grpcreplay v1.0.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= +github.com/google/go-replayers/httpreplay v0.1.2/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible h1:xmapqc1AyLoB+ddYT6r04bD9lIjlOqGaREovi0SzFaE= github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0 h1:pMen7vLs8nvgEYhywH3KDWJIJTeEr2ULsVWHWYHQyBs= 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/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= github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/wire v0.4.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= -github.com/googleapis/gax-go v2.0.2+incompatible h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww= -github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/gophercloud/gophercloud v0.0.0-20190208042652-bc37892e1968/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4= -github.com/gophercloud/gophercloud v0.6.1-0.20191122030953-d8ac278c1c9d/go.mod h1:ozGNgr9KYOVATV5jsgHl/ceCDXGuguqOZAzoQ/2vcNM= -github.com/gophercloud/gophercloud v0.10.1-0.20200424014253-c3bfe50899e5/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss= -github.com/gophercloud/utils v0.0.0-20190128072930-fbb6ab446f01/go.mod h1:wjDF8z83zTeg5eMLml5EBSlAhbF7G8DobyI1YsMuyzw= -github.com/gophercloud/utils v0.0.0-20200423144003-7c72efc7435d/go.mod h1:ehWUbLQJPqS0Ep+CxeD559hsm9pthPXadJNKwZkp43w= -github.com/gopherjs/gopherjs v0.0.0-20180628210949-0892b62f0d9f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -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/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 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= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.4.1/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/grpc-ecosystem/grpc-gateway v1.6.2/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= -github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= -github.com/hashicorp/aws-sdk-go-base v0.3.0/go.mod h1:ZIWACGGi0N7a4DZbf15yuE1JQORmWLtBcVM6F5SXNFU= -github.com/hashicorp/aws-sdk-go-base v0.6.0/go.mod h1:2fRjWDv3jJBeN6mVWFHV6hFTNeFBx2gpDLQaZNxUVAY= -github.com/hashicorp/consul v0.0.0-20171026175957-610f3c86a089/go.mod h1:mFrjN1mfidgJfYP1xrJCF+AfRhr6Eaqhb2+sfyn/OOI= -github.com/hashicorp/consul/api v1.0.1/go.mod h1:LQlewHPiuaRhn1mP2XE4RrjnlRgOeWa/ZM0xWLCen2M= -github.com/hashicorp/consul/sdk v0.1.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-azure-helpers v0.0.0-20190129193224-166dfd221bb2/go.mod h1:lu62V//auUow6k0IykxLK2DCNW8qTmpm8KqhYVWattA= -github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= -github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= -github.com/hashicorp/go-gcp-common v0.5.0/go.mod h1:IDGUI2N/OS3PiU4qZcXJeWKPI6O/9Y8hOrbSiMcqyYw= -github.com/hashicorp/go-getter v1.4.0 h1:ENHNi8494porjD0ZhIrjlAHnveSFhY7hvOJrV/fsKkw= github.com/hashicorp/go-getter v1.4.0/go.mod h1:7qxyCd8rBfcShwsvxgIguu4KbS3l8bUCwg2Umn7RjeY= -github.com/hashicorp/go-getter v1.4.2-0.20200106182914-9813cbd4eb02 h1:l1KB3bHVdvegcIf5upQ5mjcHjs2qsWnKh4Yr9xgIuu8= -github.com/hashicorp/go-getter v1.4.2-0.20200106182914-9813cbd4eb02/go.mod h1:7qxyCd8rBfcShwsvxgIguu4KbS3l8bUCwg2Umn7RjeY= -github.com/hashicorp/go-getter v1.5.0 h1:ciWJaeZWSMbc5OiLMpKp40MKFPqO44i0h3uyfXPBkkk= -github.com/hashicorp/go-getter v1.5.0/go.mod h1:a7z7NPPfNQpJWcn4rSWFtdrSldqLdLPEF3d8nFMsSLM= +github.com/hashicorp/go-getter v1.5.3 h1:NF5+zOlQegim+w/EUhSLh6QhXHmZMEeHLQzllkQ3ROU= +github.com/hashicorp/go-getter v1.5.3/go.mod h1:BrrV/1clo8cCYu6mxvboYg+KutTiFnXjMEgDD8+i7ZI= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= -github.com/hashicorp/go-hclog v0.0.0-20181001195459-61d530d6c27f/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-immutable-radix v0.0.0-20180129170900-7f3cd4390caa/go.mod h1:6ij3Z20p+OhOkCSrA0gImAWoHYQRGbnlcuk6XYTiaRw= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.15.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-memdb v1.0.2/go.mod h1:I6dKdmYhZqU0RJSheVEWgTNWdVQH5QvTgIUQ0t/t32M= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-msgpack v0.5.4/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g= github.com/hashicorp/go-multierror v0.0.0-20180717150148-3d5d8f294aa0/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= -github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-plugin v1.0.0/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= -github.com/hashicorp/go-plugin v1.0.1-0.20190610192547-a1bc61569a26/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-plugin v1.2.0/go.mod h1:F9eH4LrE/ZsRdbwhfjs9k9HoDUwAHnYtXdgmf1AVNs0= -github.com/hashicorp/go-plugin v1.3.0 h1:4d/wJojzvHV1I4i/rrjVaeuyxWrLzDE1mDCyDy8fXS8= github.com/hashicorp/go-plugin v1.3.0/go.mod h1:F9eH4LrE/ZsRdbwhfjs9k9HoDUwAHnYtXdgmf1AVNs0= -github.com/hashicorp/go-raftchunking v0.6.2/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0= -github.com/hashicorp/go-retryablehttp v0.5.2/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-plugin v1.4.1/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-retryablehttp v0.6.2/go.mod h1:gEx6HMUGxYYhJScX7W1Il64m6cc2C1mDaW3NQ9sY1FY= +github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= -github.com/hashicorp/go-slug v0.3.0/go.mod h1:I5tq5Lv0E2xcNXNkmx7BSfzi1PsJ2cNjs3cC3LwyhK8= -github.com/hashicorp/go-slug v0.4.1/go.mod h1:I5tq5Lv0E2xcNXNkmx7BSfzi1PsJ2cNjs3cC3LwyhK8= -github.com/hashicorp/go-sockaddr v0.0.0-20180320115054-6d291a969b86/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-tfe v0.3.23/go.mod h1:SuPHR+OcxvzBZNye7nGPfwZTEyd3rWPfLVbCgyZPezM= -github.com/hashicorp/go-tfe v0.8.1/go.mod h1:XAV72S4O1iP8BDaqiaPLmL2B4EE6almocnOn8E8stHc= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.0.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +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-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= -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/go-version v1.3.0 h1:McDWVJIU/y+u1BRV06dPaLfLCaT7fUTJLp5r04x7iNw= +github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= github.com/hashicorp/hcl/v2 v2.3.0 h1:iRly8YaMwTBAKhn1Ybk7VSdzbnopghktCD031P8ggUE= github.com/hashicorp/hcl/v2 v2.3.0/go.mod h1:d+FwDBbOLvpAM3Z6J7gPj/VoAGkNe/gm352ZhjJ/Zv8= -github.com/hashicorp/hcl/v2 v2.6.0 h1:3krZOfGY6SziUXa6H9PJU6TyohHn7I+ARYnhbeNBz+o= -github.com/hashicorp/hcl/v2 v2.6.0/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY= -github.com/hashicorp/hcl2 v0.0.0-20190821123243-0c888d1241f6 h1:JImQpEeUQ+0DPFMaWzLA0GdUNPaUlCXLpfiqkSZBUfc= github.com/hashicorp/hcl2 v0.0.0-20190821123243-0c888d1241f6/go.mod h1:Cxv+IJLuBiEhQ7pBYGEuORa0nr4U994pE8mYLuFd7v0= github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.0/go.mod h1:ncdBp14cuox2iFOq3kDiquKU6fqsTBc3W6JvZwjxxsE= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/nomad/api v0.0.0-20190412184103-1c38ced33adf/go.mod h1:BDngVi1f4UA6aJq9WYTgxhfWSE1+42xshvstLU2fRGk= -github.com/hashicorp/raft v1.0.1/go.mod h1:DVSAWItjLjTOkVbSpWQ0j0kUADIvDaCtBxIcbNAQLkI= -github.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= -github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= -github.com/hashicorp/raft-snapshot v1.0.1/go.mod h1:5sL9eUn72lH5DzsFIJ9jaysITbHksSSszImWSOTC8Ic= -github.com/hashicorp/serf v0.0.0-20160124182025-e4ec8cc423bb/go.mod h1:h/Ru6tmZazX7WO/GDmwdpS975F019L4t5ng5IgwbNrE= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/terraform v0.12.10 h1:+wKsR1FRWrHcbIdbzD9v99YDR+PwTOlzgW+NigGWeLA= -github.com/hashicorp/terraform v0.12.10/go.mod h1:IwGTrz19rMZSVaU7ox2Wbmd4JrJEe5z6Q8EO98r7b6E= -github.com/hashicorp/terraform v0.13.4/go.mod h1:1H1qcnppNc/bBGc7poOfnmmBeQMlF0stEN3haY3emCU= github.com/hashicorp/terraform-config-inspect v0.0.0-20190821133035-82a99dc22ef4/go.mod h1:JDmizlhaP5P0rYTTZB0reDMefAiJyfWPEtugV4in1oI= -github.com/hashicorp/terraform-config-inspect v0.0.0-20191115094559-17f92b0546e8 h1:+RyjwU+Gnd/aTJBPZVDNm903eXVjjqhbaR4Ypx3xYyY= github.com/hashicorp/terraform-config-inspect v0.0.0-20191115094559-17f92b0546e8/go.mod h1:p+ivJws3dpqbp1iP84+npOyAmTTOLMgCzrXd3GSdn/A= -github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7 h1:Pc5TCv9mbxFN6UVX0LH6CpQrdTM5YjbVI2w15237Pjk= -github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7/go.mod h1:p+ivJws3dpqbp1iP84+npOyAmTTOLMgCzrXd3GSdn/A= -github.com/hashicorp/terraform-exec v0.9.0 h1:NmCtcsnmPBU6P3cDeKD26bD72evsMhmuDLvuNRgrTHc= -github.com/hashicorp/terraform-exec v0.9.0/go.mod h1:tOT8j1J8rP05bZBGWXfMyU3HkLi1LWyqL3Bzsc3CJjo= -github.com/hashicorp/terraform-exec v0.10.0 h1:3nh/1e3u9gYRUQGOKWp/8wPR7ABlL2F14sZMZBrp+dM= -github.com/hashicorp/terraform-exec v0.10.0/go.mod h1:tOT8j1J8rP05bZBGWXfMyU3HkLi1LWyqL3Bzsc3CJjo= +github.com/hashicorp/terraform-exec v0.14.0/go.mod h1:qrAASDq28KZiMPDnQ02sFS9udcqEkRly002EA2izXTA= github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8jnkVYN28gJkSJrLhU= -github.com/hashicorp/terraform-json v0.5.0 h1:7TV3/F3y7QVSuN4r9BEXqnWqrAyeOtON8f0wvREtyzs= -github.com/hashicorp/terraform-json v0.5.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8jnkVYN28gJkSJrLhU= +github.com/hashicorp/terraform-json v0.12.0/go.mod h1:pmbq9o4EuL43db5+0ogX10Yofv1nozM+wskr/bGFJpI= +github.com/hashicorp/terraform-plugin-go v0.3.0 h1:AJqYzP52JFYl9NABRI7smXI1pNjgR5Q/y2WyVJ/BOZA= +github.com/hashicorp/terraform-plugin-go v0.3.0/go.mod h1:dFHsQMaTLpON2gWhVWT96fvtlc/MF1vSy3OdMhWBzdM= github.com/hashicorp/terraform-plugin-sdk v1.0.0/go.mod h1:NuwtLpEpPsFaKJPJNGtMcn9vlhe6Ofe+Y6NqXhJgV2M= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= -github.com/hashicorp/terraform-plugin-sdk v1.13.0 h1:8v2/ZNiI12OHxEn8pzJ3noCHyRc0biKbKj+iFv5ZWKw= -github.com/hashicorp/terraform-plugin-sdk v1.13.0/go.mod h1:HiWIPD/T9HixIhQUwaSoDQxo4BLFdmiBi/Qz5gjB8Q0= +github.com/hashicorp/terraform-plugin-sdk v1.9.1 h1:AgHnd6yPCg7o57XWrv4L7tIMdF0KQpcZro1pDHF1Xbw= +github.com/hashicorp/terraform-plugin-sdk v1.9.1/go.mod h1:C/AXwmDHqbc3h6URiHpIsVKrwV4PS0Sh0+VTaeEkShw= github.com/hashicorp/terraform-plugin-sdk v1.14.0 h1:sUKcw7OHqDXhBarlHjv+/yMCr8eEb1lO8CGQ3pEEFiE= github.com/hashicorp/terraform-plugin-sdk v1.14.0/go.mod h1:t62Xy+m7Zjq5tA2vrs8Wuo/TQ0sc9Mx9MjXL3+7MHBQ= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.2 h1:gNLt9kE9YZnYHB1VCDQI0AvNVcvlRPHMeOHtMAoHwLk= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.2/go.mod h1:pVZLnLuSe/yv0XqTHFPb8xRGWPwgANT77jHeHqjXS5o= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.4 h1:GYkUL3zjrZgig9Gm+/61+YglzESJxXRDMp7qhJsh4j0= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.4/go.mod h1:GP0lmw4Y+XV1OfTmi/hK75t5KWGGzoOzEgUBPGZ6Wq4= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.1.0 h1:Z5K9y5UGVQO7gvLFk6NMA/v1JZW/HLzJ/TTSoLkqQyY= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.1.0/go.mod h1:GP0lmw4Y+XV1OfTmi/hK75t5KWGGzoOzEgUBPGZ6Wq4= -github.com/hashicorp/terraform-plugin-test v1.2.0 h1:AWFdqyfnOj04sxTdaAF57QqvW7XXrT8PseUHkbKsE8I= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= -github.com/hashicorp/terraform-plugin-test v1.3.0 h1:hU5LoxrOn9qvOo+LTKN6mSav2J+dAMprbdxJPEQvp4U= github.com/hashicorp/terraform-plugin-test v1.3.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= -github.com/hashicorp/terraform-plugin-test/v2 v2.1.1 h1:aATRyyPlEKkFYUweD2Hld9eep77qzJVu8wg0mgyUE50= -github.com/hashicorp/terraform-plugin-test/v2 v2.1.1/go.mod h1:HaW2G5cDTVyiEKt7PHC85YSM5BwvYl/rIko1g8Lg7qE= -github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596 h1:hjyO2JsNZUKT1ym+FAdlBEkGPevazYsmVgIMw7dVELg= github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= github.com/hashicorp/terraform-svchost v0.0.0-20191119180714-d2e4933b9136 h1:81Dg7SK6Q5vzqFItO8e1iIF2Nj8bLXV23NXjEgbev/s= github.com/hashicorp/terraform-svchost v0.0.0-20191119180714-d2e4933b9136/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= -github.com/hashicorp/vault v0.10.4/go.mod h1:KfSyffbKxoVyspOdlaGVjIuwLobi07qD1bAbosPMpP0= -github.com/hashicorp/vault v1.2.0/go.mod h1:HIOD/sbdZJ+KKX2/d/a4m/KDsBRjns8YDVnFUdcJjFc= -github.com/hashicorp/vault-plugin-auth-alicloud v0.5.2-0.20190730042457-c395df6cf9ad/go.mod h1:gGDuTBheAxJNRSuMP9GXYaZG6fcmJwZmeCDnkeGh1dY= -github.com/hashicorp/vault-plugin-auth-azure v0.5.2-0.20190730042506-ea9c527dad54/go.mod h1:8ohKOZvLdPcgxcGG2Y0xt3a8T4xQzxRPIgyGj9Y9pnE= -github.com/hashicorp/vault-plugin-auth-centrify v0.5.2-0.20190730042513-cbbe5ae0021d/go.mod h1:1AEVetqwm/CpGJLS3kbmesG2DXlcodD1q9md3InmIwE= -github.com/hashicorp/vault-plugin-auth-gcp v0.5.1/go.mod h1:eLj92eX8MPI4vY1jaazVLF2sVbSAJ3LRHLRhF/pUmlI= -github.com/hashicorp/vault-plugin-auth-gcp v0.5.2-0.20190730042519-f5a47667d35c/go.mod h1:RQabTr6JNn3J4K4CGY9CohFO0shpAK6QCx2LrntPehg= -github.com/hashicorp/vault-plugin-auth-jwt v0.5.2-0.20190730042527-3d85d12ec6b6/go.mod h1:vtUJ+05r7coC4TyKEdZ8Fw/wzRKikDkoBuHFS/9JJgo= -github.com/hashicorp/vault-plugin-auth-kubernetes v0.5.2-0.20190730042533-e4b69df916b8/go.mod h1:vbsD/KqeeknPR31viJ/Ch3pii1NHFxsBrdBSxIV7HSs= -github.com/hashicorp/vault-plugin-auth-pcf v0.0.0-20190730042539-6f948c02ea2d/go.mod h1:+Zk2sV+Ga2KPH5QTmDU3v7qBJDD9GljESoNdU/Ea/0A= -github.com/hashicorp/vault-plugin-database-elasticsearch v0.0.0-20190730042544-81772df4467d/go.mod h1:KD56g+aeTNH2AM1l8iOBf5KxX+DSNKleEswJxXE8nI8= -github.com/hashicorp/vault-plugin-secrets-ad v0.5.3-0.20190730042549-a191a183a1f3/go.mod h1:bOd6HVuGZgcKR+QUUhGvQ+BU8d8KqRNAXvQ8ihBmtfo= -github.com/hashicorp/vault-plugin-secrets-alicloud v0.5.2-0.20190730042556-6c462a37ae43/go.mod h1:ndDvbwS9SkZrxzlnjsNtmYc2Qz1WNFtQEvlYuljE+NM= -github.com/hashicorp/vault-plugin-secrets-azure v0.5.2-0.20190730042604-fc8e75528aa0/go.mod h1:R/PeTA9E4NfMd8NGy9gmOFJNyB+JcQDsckD0HXv7wZw= -github.com/hashicorp/vault-plugin-secrets-gcp v0.5.3-0.20190730042611-bdbdbdf0ecec/go.mod h1:GJjJ2oa9CenWs35tZwParXQzhGgwQxAtlZ+CelUBtSE= -github.com/hashicorp/vault-plugin-secrets-gcpkms v0.5.2-0.20190730042620-21e481a323c7/go.mod h1:He7TWjrGUzez4tDq/cEzQWmqr/puNAnUdrn+t6uNoxw= -github.com/hashicorp/vault-plugin-secrets-kv v0.5.2-0.20190730042626-1ef9e711c818/go.mod h1:NVTIsqXgIu1CW+Dsnkn8AE4+QVrivR8sAzlGT7+aO58= -github.com/hashicorp/vault/api v1.0.1/go.mod h1:AV/+M5VPDpB90arloVX0rVDUIHkONiwz5Uza9HRtpUE= -github.com/hashicorp/vault/api v1.0.2/go.mod h1:AV/+M5VPDpB90arloVX0rVDUIHkONiwz5Uza9HRtpUE= -github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= -github.com/hashicorp/vault/api v1.0.5-0.20190730042357-746c0b111519/go.mod h1:i9PKqwFko/s/aihU1uuHGh/FaQS+Xcgvd9dvnfAvQb0= -github.com/hashicorp/vault/sdk v0.1.8/go.mod h1:tHZfc6St71twLizWNHvnnbiGFo1aq0eD2jGPLtP8kAU= -github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= -github.com/hashicorp/vault/sdk v0.1.14-0.20190729200543-e88721c7db1e/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= -github.com/hashicorp/vault/sdk v0.1.14-0.20190730042320-0dc007d98cc8/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= +github.com/hashicorp/vault/api v1.0.5-0.20200519221902-385fac77e20f/go.mod h1:euTFbi2YJgwcju3imEt919lhJKF68nN1cQPq3aA+kBE= +github.com/hashicorp/vault/api v1.1.0/go.mod h1:R3Umvhlxi2TN7Ex2hzOowyeNb+SfbVWI973N+ctaFMk= +github.com/hashicorp/vault/sdk v0.1.14-0.20200519221530-14615acda45f/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= +github.com/hashicorp/vault/sdk v0.1.14-0.20200519221838-e0cfd64bc267/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= +github.com/hashicorp/vault/sdk v0.2.0/go.mod h1:cAGI4nVnEfAyMeqt9oB+Mase8DNn3qA/LDNHURiwssY= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d h1:kJCB4vdITiW1eC1vq2e6IsrXKrZit1bv/TDYFGMp4BQ= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= +github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= -github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg= -github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb v0.0.0-20190411212539-d24b7ba8c4c4/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= -github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= -github.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= 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/jeffchao/backoff v0.0.0-20140404060208-9d7fd7aa17f2/go.mod h1:xkfESuHriIekR+4RoV+fu91j/CfnYM29Zi2tMFw5iD4= -github.com/jefferai/isbadcipher v0.0.0-20190226160619-51d2077c035f/go.mod h1:3J2qVK16Lq8V+wfiL2lPeDZ7UWMxk5LemerHa1p6N00= -github.com/jefferai/jsonx v1.0.0/go.mod h1:OGmqmi2tTeI/PS+qQfBDToLHHJIy/RMp24fPo8vFvoQ= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= +github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/joyent/triton-go v0.0.0-20180313100802-d8f9c0314926/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA= -github.com/joyent/triton-go v0.0.0-20190112182421-51ffac552869/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= 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.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck= +github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= -github.com/keybase/go-crypto v0.0.0-20190403132359-d65b6b94177f/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.2/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.12.2 h1:2KCfW3I9M7nSc5wOqXAlW2v2U6v+w6cbjvbfp+OykW8= +github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= 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/pty v1.0.0/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= 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= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/likexian/gokit v0.0.0-20190309162924-0a377eecf7aa/go.mod h1:QdfYv6y6qPA9pbBA2qXtoT8BMKha6UyNbxWGWl/9Jfk= -github.com/likexian/gokit v0.0.0-20190418170008-ace88ad0983b/go.mod h1:KKqSnk/VVSW8kEyO2vVCXoanzEutKdlBAPohmGXkxCk= -github.com/likexian/gokit v0.0.0-20190501133040-e77ea8b19cdc/go.mod h1:3kvONayqCaj+UgrRZGpgfXzHdMYCAO0KAt4/8n0L57Y= -github.com/likexian/gokit v0.20.15/go.mod h1:kn+nTv3tqh6yhor9BC4Lfiu58SmH8NmQ2PmEl+uM6nU= -github.com/likexian/simplejson-go v0.0.0-20190409170913-40473a74d76d/go.mod h1:Typ1BfnATYtZ/+/shXfFYLrovhFyuKvzwrdOnIDHlmg= -github.com/likexian/simplejson-go v0.0.0-20190419151922-c1f9f0b4f084/go.mod h1:U4O1vIJvIKwbMZKUJ62lppfdvkCdVd2nfMimHK81eec= -github.com/likexian/simplejson-go v0.0.0-20190502021454-d8787b4bfa0b/go.mod h1:3BWwtmKP9cXWwYCr5bkoVDEfLywacOv0s06OBEDpyt8= -github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82/go.mod h1:y54tfGmO3NKssKveTEFFzH8C/akrSOy/iW9qEAUDV84= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.1/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= -github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI= -github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9 h1:SmVbOZFWAlyQshuMfOkiAx1f5oUTsOGG5IXplAEYeeM= -github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc= -github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc= -github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b h1:/1RFh2SLCJ+tEnT73+Fh5R2AO89sQqs8ba7o+hx1G0Y= -github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b/go.mod h1:wr1VqkwW0AB5JS0QLy5GpVMS9E3VtRoSYXUYyVk46KY= -github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88/go.mod h1:a2HXwefeat3evJHxFXSayvRHpYEPJYtErl4uIzfaUqY= -github.com/matchlighter/proxmox-api-go v0.0.0-20201030163738-121bf3e104b4 h1:78GpVX3JYrIV54TYO71h/+beeo3RJ+l2IP5F5iMgncs= -github.com/matchlighter/proxmox-api-go v0.0.0-20201030163738-121bf3e104b4/go.mod h1:ayPkdmEKnlssqLQ9K1BE1jlsaYhXVwkoduXI30oQF0I= -github.com/matchlighter/proxmox-api-go v0.0.0-20201102231845-1bf8a10baa24 h1:zq6U7Abq+jMxQGl2mMDtFGQ+Ldt/b8+GAe3CYY11fos= -github.com/matchlighter/proxmox-api-go v0.0.0-20201102231845-1bf8a10baa24/go.mod h1:ayPkdmEKnlssqLQ9K1BE1jlsaYhXVwkoduXI30oQF0I= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201021192306-5a2ff738308d h1:OOrUg91ePUqxgMkbdj1CmIWb5WBsl8zYAY9du027FnU= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201021192306-5a2ff738308d/go.mod h1:wryAUZ0cVL+HITYmku7e2acI7JZ3ZlCDjZfp8nIibCM= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201022044959-84553b1dce1f h1:yw4GR0IQe+Ej/cXtaq8XIllLaQL1ucQ/z1L8M1zJA/s= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201022044959-84553b1dce1f/go.mod h1:wryAUZ0cVL+HITYmku7e2acI7JZ3ZlCDjZfp8nIibCM= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201030163825-f8a5693bb5a0 h1:1v+mra0yz62uAfq8I0qs9pBvQlV+/YGlkoO6bnhj3K0= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201030163825-f8a5693bb5a0/go.mod h1:qslFTH3wvotIVEWRgByZ+n+muUdZfg3VOzKtzC3YJxE= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201030164329-e3d00f430647 h1:gP1uLfxjw6I5iiW6xXfUIb2eYoEeEaka4uLQMv5B7c0= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201030164329-e3d00f430647/go.mod h1:qslFTH3wvotIVEWRgByZ+n+muUdZfg3VOzKtzC3YJxE= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201102232909-1711d91f1ff4 h1:LQpic2U7TcHVEOjUY3+Jo5RKe8tTK2gt2GNv0rdUe8M= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201102232909-1711d91f1ff4/go.mod h1:qslFTH3wvotIVEWRgByZ+n+muUdZfg3VOzKtzC3YJxE= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201104210501-cef618d359b4 h1:LlkvcvFYlZRHICHcjSvfUCwLF1wP6F8pZb4emQFSIKc= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201104210501-cef618d359b4/go.mod h1:SZzfKr+CA+nH46DD3tjiM8iHyTEg/dmIVQDCx8YwkqQ= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201216064002-1547dfbe6e24 h1:Y+ZoEbSd0k6tnURZrUYg3ahzm57XlMXBKf76GqxWSj4= -github.com/matchlighter/terraform-provider-proxmox v0.0.0-20201216064002-1547dfbe6e24/go.mod h1:MOjI4Ivabu9jX45HzwQ3/OOFI0tijxw17oqMmjKkn4I= +github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-runewidth v0.0.2/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.8 h1:3tS41NlGYSmhhe/8fhGRzc+z3AYCw1Fe1WAyLuujKs0= github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-shellwords v1.0.4/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/matttproud/golang_protobuf_extensions v1.0.0/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/michaelklishin/rabbit-hole v1.5.0/go.mod h1:vvI1uOitYZi0O5HEGXhaWC1XT80Gy+HvFheJ+5Krlhk= -github.com/miekg/dns v1.0.8/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.1 h1:J64v/xD7Clql+JVKSvkYojLOXu1ibnY9ZjGLwSt/89w= -github.com/mitchellh/cli v1.1.1/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= +github.com/mitchellh/cli v1.1.2 h1:PvH+lL2B7IQ101xQL63Of8yFS2y+aDlsFcsqNc+u/Kw= +github.com/mitchellh/cli v1.1.2/go.mod h1:6iaV0fGdElS6dPBx0EApTxHrcWvmJphyh2n8YBLPPZ4= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= -github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-linereader v0.0.0-20190213213312-1b945b3263eb/go.mod h1:OaY7UOoTkkrX3wRwjpYRKafIkkyeD0UtweSHAWWiqQM= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.4 h1:ZU1VNC02qyufSZsjjs7+khruk2fKvbQ3TwRV/IBCeFA= github.com/mitchellh/go-testing-interface v1.0.4/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/gox v1.0.1/go.mod h1:ED6BioOGXMswlXa2zxfh/xdd5QhwYliBFn9V18Ap4z4= github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/panicwrap v0.0.0-20190213213626-17011010aaa4/go.mod h1:YYMf4xtQnR8LRC0vKi3afvQ5QwRPQ17zjcpkBCufb+I= -github.com/mitchellh/panicwrap v1.0.0/go.mod h1:pKvZHwWrZowLUzftuFq7coarnxbBXU4aQh3N0BJOeeA= -github.com/mitchellh/pointerstructure v0.0.0-20190430161007-f252a8fd71c8/go.mod h1:k4XwG94++jLVsSiTxo7qdIfXA9pj9EAeo0QsNNJOLZ8= -github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51/go.mod h1:kB1naBgV9ORnkiTVeyJOI1DavaJkG4oNIq0Af6ZVKUo= +github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.1 h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE= github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= 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= -github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/mxschmitt/golang-combinations v1.0.0/go.mod h1:RbMhWvfCelHR6WROvT2bVfxJvZHoEvBj71SKe+H0MYU= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= -github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ= -github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= -github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= +github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce/go.mod h1:uFMI8w+ref4v2r9jz+c9i1IfIttS/OkmLfrk1jne5hs= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/openzipkin/zipkin-go v0.1.3/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/ory/dockertest v3.3.4+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/oxtoacart/bpool v0.0.0-20150712133111-4e1c5567d7c2/go.mod h1:L3UMQOThbttwfYRNFOWLLVXMhk5Lkio4GGOtw5UrxS0= -github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58 h1:m3CEgv3ah1Rhy82L+c0QG/U3VyY1UsvsIdkh0/rU97Y= -github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58/go.mod h1:f6Izs6JvFTdnRbziASagjZ2vmf55NSIkC/weStxCHqk= -github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db/go.mod h1:f6Izs6JvFTdnRbziASagjZ2vmf55NSIkC/weStxCHqk= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 h1:LoCV5cscNVWyK5ChN/uCoIFJz8jZD63VQiGJIRgr6uo= github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386/go.mod h1:MRxHTJrf9FhdfNQ8Hdeh9gmHevC9RJE/fu8M3JIGjoE= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= +github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.1 h1:LrvDIY//XNo65Lq84G/akBuMGlawHvGBABv8f/ZN6DI= github.com/posener/complete v1.2.1/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/pquerna/otp v1.1.0/go.mod h1:Zad1CMQfSQZI5KLpahDiSUX4tMMREnXw98IvL1nhgMk= -github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/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= -github.com/prometheus/common v0.0.0-20180518154759-7600349dcfe1/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20180612222113-7d6f385de8be/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/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.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pulumi/pulumi-terraform-bridge/v2 v2.11.0 h1:1QRTyQB/IR1kCu/Q93WDoSkpeiqhyIxLYWl80r0MRMc= -github.com/pulumi/pulumi-terraform-bridge/v2 v2.11.0/go.mod h1:oAnoNd+jzGFYjDWs+SSmCjHq6CmDo8urBCfbFRb/v2E= -github.com/pulumi/pulumi-terraform-bridge/v2 v2.12.0 h1:19TrbjMfe4gqT0WuDldbwPwbBmiLwxD/b/J6i21GQvY= -github.com/pulumi/pulumi-terraform-bridge/v2 v2.12.0/go.mod h1:HeGEtErxeRTElloiI8SJvnb2X/AgGvOxgTGI0irEIus= -github.com/pulumi/pulumi/pkg/v2 v2.11.3-0.20201009201355-249140242ebb h1:xELQLO+B85/Rt7tGB+NcFvVYVbHg1Ftkd26rCvfA318= -github.com/pulumi/pulumi/pkg/v2 v2.11.3-0.20201009201355-249140242ebb/go.mod h1:7NmgAy555Lk7v4Ddb6HF1BVAhdyT3012h47vz/hLD2k= -github.com/pulumi/pulumi/pkg/v2 v2.12.1-0.20201019222817-89c956d18942 h1:IB34mt9friGXJGaRbZNwerIK9Oz0LfBruhbVEkJKDPg= -github.com/pulumi/pulumi/pkg/v2 v2.12.1-0.20201019222817-89c956d18942/go.mod h1:a5zxh9WrYwWR/cDOhPMNFOUpJuwtyeFS+ZYJebehQ+c= -github.com/pulumi/pulumi/sdk/v2 v2.2.1/go.mod h1:QNbWpL4gvf3X0lUFT7TXA2Jo1ff/Ti2l97AyFGYwvW4= -github.com/pulumi/pulumi/sdk/v2 v2.11.3-0.20201009201355-249140242ebb/go.mod h1:WQ4WaHMA7mduVHAJi87iIqbWvqsuBUYccBiKK+FrayI= -github.com/pulumi/pulumi/sdk/v2 v2.12.0 h1:d2BQnOvRWCbxDG5DO0bz5FkhFbymABmOxlsx0h2Yhm8= -github.com/pulumi/pulumi/sdk/v2 v2.12.0/go.mod h1:WQ4WaHMA7mduVHAJi87iIqbWvqsuBUYccBiKK+FrayI= -github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20200910230100-328eb4ff41df h1:kXSvfAz43o0D0gfxUqVCOP3NrfnGbptJBshVsqZlBqA= -github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20200910230100-328eb4ff41df/go.mod h1:pVZLnLuSe/yv0XqTHFPb8xRGWPwgANT77jHeHqjXS5o= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.9.0 h1:82RtX8iHxwd3oyNbZaJL8LOOJfzkhtvvWx8ztJhVTkE= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.9.0/go.mod h1:ZhTWHryVwUoLD0b0LwpamivcMI+OrCziGGilPaVqUp8= +github.com/pulumi/pulumi/pkg/v3 v3.14.1-0.20211007222624-789e39219452 h1:rdT803kl455OP5g5zvLsWuolfAWCigE1QmmkGplgbAw= +github.com/pulumi/pulumi/pkg/v3 v3.14.1-0.20211007222624-789e39219452/go.mod h1:0w8C+JDP+OuihIgj/TNljRJdNHyW1vNiH1zzbeB4xeM= +github.com/pulumi/pulumi/sdk/v3 v3.14.0/go.mod h1:aT7YmFdR6/T7tp2tMIZ68WRD1Xyv5a6Y4BhsuaCNpW0= +github.com/pulumi/pulumi/sdk/v3 v3.14.1-0.20211007222624-789e39219452 h1:ROybvuc1v+eqYOnP+BFN6WRGWpF4WbNWV0YT1vwpVHE= +github.com/pulumi/pulumi/sdk/v3 v3.14.1-0.20211007222624-789e39219452/go.mod h1:aT7YmFdR6/T7tp2tMIZ68WRD1Xyv5a6Y4BhsuaCNpW0= +github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Dik4Qe/+xguB8JagPyXNlbOnRiXGmq/PSPQTGunYnTk= +github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= +github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20210629210550-59d24255d71f h1:YWtQ7xeRQvB9h5Uwtrl9wDKRKkyLTXWBzU7x0c9VOZ4= +github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20210629210550-59d24255d71f/go.mod h1:grseeRo9g3yNkYW09iFlV8LG78jTa1ssBgouogQg/RU= github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg= -github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/rs/zerolog v1.21.0 h1:Q3vdXlfLNT+OftyBHsU0Y445MD+8m8axjKgf2si0QcM= github.com/rs/zerolog v1.21.0/go.mod h1:ZPhntP/xmq1nnND05hhpAh2QMhSsA4UN3MGZ6O2J3hM= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 h1:G04eS0JkAIVZfaJLjla9dNxkJCPiKIGZlw9AfOhzOD0= github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94/go.mod h1:b18R55ulyQ/h3RaWyloPyER7fWQVZvimKKhnI5OfrJQ= -github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= +github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= +github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shirou/gopsutil v3.21.7+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= -github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= +github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= -github.com/smartystreets/assertions v0.0.0-20180725160413-e900ae048470/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= -github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.1/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= 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/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/svanharmelen/jsonapi v0.0.0-20180618144545-0c0828c3f16d/go.mod h1:BSTlc8jOjh0niykqEGVXOLXdi9o0r0kR8tCYiMvjFgw= -github.com/tencentcloud/tencentcloud-sdk-go v3.0.82+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4= -github.com/tencentyun/cos-go-sdk-v5 v0.0.0-20190808065407-f07404cefc8c/go.mod h1:wk2XFUg6egk4tSDNZtXeKfe2G6690UVyt163PuUxBZk= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/terraform-providers/terraform-provider-archive v1.3.0 h1:8WzDXMwTdTd4Z7KAUjnYwopk1DgGJ/DLH0xowJ8h+/8= github.com/terraform-providers/terraform-provider-archive v1.3.0/go.mod h1:7oAwNW55F65KauS++/XmAnrXhLfQRTYt549eYs4zU0w= -github.com/terraform-providers/terraform-provider-aws v1.60.0 h1:uJw42EpO/1L8tk5P8hpio0mN9+hIdq8ubteidQjfk7Q= github.com/terraform-providers/terraform-provider-http v1.2.0 h1:pOP/SNlLjB18CydtTJJwzkZGkHYX3LWzIoQpYQuBdyw= github.com/terraform-providers/terraform-provider-http v1.2.0/go.mod h1:2Iot921OkLVSZr8FbIkvRN84ZV3w+oFKb7RlmPTQQAQ= -github.com/terraform-providers/terraform-provider-openstack v1.15.0/go.mod h1:2aQ6n/BtChAl1y2S60vebhyJyZXBsuAI5G4+lHrT1Ew= github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6 h1:9VTskZOIRf2vKF3UL8TuWElry5pgUpV1tFSe/e/0m/E= github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6/go.mod h1:XDKHRm5ThF8YJjx001LtgelzsoaEcvnA7lVWz9EeX3g= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tklauser/go-sysconf v0.3.8/go.mod h1:z4zYWRS+X53WUKtBcmDg1comV3fPhdQnzasnIHUoLDU= +github.com/tklauser/numcpus v0.2.3/go.mod h1:vpEPS/JC+oZGGQ/My/vJnNsvMDQL6PwOqt8dsCw5j+E= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tombuildsstuff/giovanni v0.12.0/go.mod h1:qJ5dpiYWkRsuOSXO8wHbee7+wElkLNfWVolcf59N84E= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE= @@ -976,28 +713,28 @@ github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR8 github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/ugorji/go v0.0.0-20180813092308-00b869d2f4a5/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ= -github.com/ugorji/go v1.1.2/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20190204201341-e444a5086c43/go.mod h1:iT03XoTwV7xq/+UGwKO3UbC1nNNlopQiY61beSdrtOA= -github.com/ulikunitz/xz v0.5.5 h1:pFrO0lVpTBXLpYw+pnLj6TbvHuyjXMfjGeCwSqCVwok= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ulikunitz/xz v0.5.5/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= -github.com/ulikunitz/xz v0.5.7 h1:YvTNdFzX6+W5m9msiYg/zpkSURPPtOlzbqYjrFn7Yt4= -github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/vmihailenco/msgpack v4.0.1+incompatible h1:RMF1enSPeKTlXrXdOcqjFUElywVZjjC6pqse21bKbEU= github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= +github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= +github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= +github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= +github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= +github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= +github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/treeprint v0.0.0-20161029104018-1d6e34225557/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1007,61 +744,58 @@ github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLE github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= github.com/zclconf/go-cty v1.2.1/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= -github.com/zclconf/go-cty v1.3.1 h1:QIOZl+CKKdkv4l2w3lG23nNzXgLoxsWLSEdg1MlX4p0= github.com/zclconf/go-cty v1.3.1/go.mod h1:YO23e2L18AG+ZYQfSobnY4G65nvwvprPCxBHkufUH1k= -github.com/zclconf/go-cty v1.5.1 h1:oALUZX+aJeEBUe2a1+uD2+UTaYfEjnKFDEMRydkGvWE= -github.com/zclconf/go-cty v1.5.1/go.mod h1:nHzOclRkoj++EU9ZjSrZvRG0BXIWt8c7loYc0qXAFGQ= +github.com/zclconf/go-cty v1.8.4 h1:pwhhz5P+Fjxse7S7UriBrMu6AUJSZM5pKqGem1PjGAs= +github.com/zclconf/go-cty v1.8.4/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/zclconf/go-cty-yaml v1.0.1 h1:up11wlgAaDvlAGENcFDnZgkn0qUJurso7k6EpURKNF8= github.com/zclconf/go-cty-yaml v1.0.1/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= -github.com/zclconf/go-cty-yaml v1.0.2 h1:dNyg4QLTrv2IfJpm7Wtxi55ed5gLGOlPrZ6kMd51hY0= -github.com/zclconf/go-cty-yaml v1.0.2/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20190412021913-f29b1ada1971/go.mod h1:KSGwdbiFchh5KIC9My2+ZVl5/3ANcwohw50dpPwa2cw= go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= -go.opencensus.io v0.19.1/go.mod h1:gug0GbSHa8Pafr0d2urOSgoXHZ6x/RUlaiT0d9pqb4A= -go.opencensus.io v0.19.2/go.mod h1:NO/8qkisMZLZ1FCsKNqtJPwc8/TaclWyY0B6wcYNg9M= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -gocloud.dev v0.20.0/go.mod h1:+Y/RpSXrJthIOM8uFNzWp6MRu9pFPNFEEZrQMxpkfIc= -gocloud.dev/secrets/hashivault v0.20.0/go.mod h1:2nNlZ76i4JlT9qrPVKbINB01L8BGgv4wmq2Cqyz22dA= -golang.org/x/crypto v0.0.0-20180608092829-8ac0e0d97ce4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +gocloud.dev v0.23.0/go.mod h1:zklCCIIo1N9ELkU2S2E7tW8P8eeMU7oGLeQCXdDwx9Q= +gocloud.dev/secrets/hashivault v0.23.0/go.mod h1:JkedtcYw0IqNMru0glghf+dkoszG0WFjal3PCpucxBs= +golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6 h1:TjszyFsQsyZNHwdVdZ5m7bjmreu0znc2kRYsEml9/Ww= golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf h1:B2n+Zi5QeYRDAEodEu72OS36gmTWjgpXr2+cWcBW90o= +golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= 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= @@ -1074,9 +808,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -1085,32 +817,30 @@ golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +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 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1119,21 +849,20 @@ golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191009170851-d66e71096ffb/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= @@ -1142,20 +871,35 @@ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= +golang.org/x/net v0.0.0-20210420210106-798c2154c571/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210505214959-0714010a04ed h1:V9kAVxLvz1lkufatrpHuUVyJ/5tR3Ms7rk951P4mI98= +golang.org/x/net v0.0.0-20210505214959-0714010a04ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190130055435-99b60b757ec1/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190319182350-c85d3e98c914/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c h1:SgVl/sCtkicsS7psKkje4H9YtjdEl3xsYh7N+5TDHqY= +golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 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= @@ -1165,41 +909,38 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +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/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= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181218192612-074acd46bca6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190410170021-cc4d4f50624c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/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= golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1209,63 +950,83 @@ golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200317113312-5766fd39f98d h1:62ap6LNOjDU6uGmKXHJbSfciMoV+FeI1sRXx/pLDL44= -golang.org/x/sys v0.0.0-20200317113312-5766fd39f98d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980 h1:OjiUf46hAmXblsZdnoSXsEUSKU8r1UEzcL5RVZ4gO9Y= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210223095934-7937bea0104d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6/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-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 h1:c8PlLMqBbOHoqtjteWm5/kbe6rNY2pbRfbIMVnepueo= +golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/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 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 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= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 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= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 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-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1278,70 +1039,71 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200601175630-2caf76543d99/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200606014950-c42cb6316fb6/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200608174601-1b747fd94509/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200713011307-fd294ab11aed h1:+qzWo37K31KxduIYaBeMqJ8MUOyTayOQKpH9aDPLMSY= golang.org/x/tools v0.0.0-20200713011307-fd294ab11aed/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= 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= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.2.0/go.mod h1:IfRCZScioGtypHNTlz3gFk67J8uePVW7uDTBzXuIkhU= -google.golang.org/api v0.3.0/go.mod h1:IuvZyQh8jgscv8qWfQ4ABd8m7hEudgBFM/EdhA3BnXw= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0 h1:jz2KixHX7EcCPiQrySzPdnYT7DbINAypCqKZ1Z7GM40= google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.26.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0 h1:BaiDisFir8O4IJxvAabCGGkQ6yCJegNQqSVoYUNAnbk= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.45.0/go.mod h1:ISLIJCedJolbZvDfAk+Ctuq5hf+aJ33WgtUsfyFoLXA= +google.golang.org/api v0.46.0 h1:jkDWHOBIoNSD0OQpq4rtBVu+Rh325MPjXG1rakAp8JU= +google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 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= -google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180608181217-32ee49c4dd80/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181219182458-5a97ab628bfb/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190513181449-d00d292a067c/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190708153700-3bdd9d9f5532/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= @@ -1361,38 +1123,60 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200310143817-43be25429f5a/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200317114155-1f3552e48f24/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200325114520-5b2d0af7952b/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200603110839-e855014d5736/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200711021454-869866162049 h1:YFTFpQhgvrLrmxtiIncJxFXeCyq84ixuKWVCaCAi9Oc= google.golang.org/genproto v0.0.0-20200711021454-869866162049/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210413151531-c14fb6ef47c3/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210420162539-3c870d7478d2/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210423144448-3a41ef94ed2b/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210506142907-4a47615972c2 h1:pl8qT5D+48655f14yDURpIZwSPvMWuuekfAP+gxtjvk= +google.golang.org/genproto v0.0.0-20210506142907-4a47615972c2/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0 h1:bO/TA4OxCOummhSf10siHuG7vJOiwh7SpRpFZDkOgl4= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0 h1:uSZWeQJX5j11bIQ4AJoj+McDBo29cY1MCoC1wO3ts+c= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= 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= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1402,35 +1186,28 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/AlecAivazis/survey.v1 v1.8.9-0.20200217094205-6773bdf39b7f/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= 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= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/cheggaaa/pb.v1 v1.0.28 h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk= gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/ory-am/dockertest.v3 v3.3.4/go.mod h1:s9mmoLkaGeAh97qygnNj4xWkiN7e1SKekYC6CovU+ek= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.3.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= -gopkg.in/src-d/go-git-fixtures.v3 v3.5.0 h1:ivZFOIltbce2Mo8IjzUHAFoq/IylO9WHhNOAJK+LsJg= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= gopkg.in/src-d/go-git.v4 v4.13.1 h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE= gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= @@ -1441,14 +1218,14 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= 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= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1457,27 +1234,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= -k8s.io/api v0.0.0-20190409092523-d687e77c8ae9/go.mod h1:FQEUn50aaytlU65qqBn/w+5ugllHwrBzKm7DzbnXdzE= -k8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A= -k8s.io/apimachinery v0.0.0-20190409092423-760d1845f48b/go.mod h1:FW86P8YXVLsbuplGMZeb20J3jYHscrDqw4jELaFJvRU= -k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA= -k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655/go.mod h1:nL6pwRT8NgfF8TT68DBI8uEePRt89cSvoXUVqbkWHq4= -k8s.io/client-go v10.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= -k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.0.0-20190306015804-8e90cee79f82/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= -k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= -k8s.io/utils v0.0.0-20200411171748-3d5a2fe318e4/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -layeh.com/radius v0.0.0-20190322222518-890bc1058917/go.mod h1:fywZKyu//X7iRzaxLgPWsvc0L26IUpVvE/aeIL2JtIQ= +nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +pgregory.net/rapid v0.4.7/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= 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/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k= diff --git a/provider/resources.go b/provider/resources.go index 50af604..8176af4 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -15,14 +15,17 @@ package proxmoxve import ( + "fmt" + "path/filepath" "unicode" + "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" + shim "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim" + shimv2 "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim/sdk-v2" + "github.com/pulumi/pulumi/sdk/v3/go/common/resource" + "github.com/pulumi/pulumi/sdk/v3/go/common/tokens" proxmoxve "github.com/Telmate/terraform-provider-proxmox/proxmox" - "github.com/pulumi/pulumi-terraform-bridge/v2/pkg/tfbridge" - shim "github.com/pulumi/pulumi-terraform-bridge/v2/pkg/tfshim" - shimv2 "github.com/pulumi/pulumi-terraform-bridge/v2/pkg/tfshim/sdk-v2" - "github.com/pulumi/pulumi/sdk/v2/go/common/resource" - "github.com/pulumi/pulumi/sdk/v2/go/common/tokens" + "github.com/matchlighter/pulumi-proxmoxve/provider/pkg/version" ) // all of the token components used below. @@ -30,7 +33,7 @@ const ( // packages: mainPkg = "proxmoxve" // modules: - mainMod = "index" // the y module + mainMod = "index" // the xyz module ) // makeMember manufactures a type token for the package and the given module and type. @@ -125,10 +128,10 @@ func Provider() tfbridge.ProviderInfo { PackageName: "@matchlighter/pulumi-proxmoxve", // List any npm dependencies and their versions Dependencies: map[string]string{ - "@pulumi/pulumi": "^2.0.0", + "@pulumi/pulumi": "^3.0.0", }, DevDependencies: map[string]string{ - "@types/node": "^8.0.25", // so we can access strongly typed node definitions. + "@types/node": "^10.0.0", // so we can access strongly typed node definitions. "@types/mime": "^2.0.0", }, // See the documentation for tfbridge.OverlayInfo for how to lay out this @@ -139,13 +142,21 @@ func Provider() tfbridge.ProviderInfo { Python: &tfbridge.PythonInfo{ // List any Python dependencies and their version ranges Requires: map[string]string{ - "pulumi": ">=2.9.0,<3.0.0", + "pulumi": ">=3.0.0,<4.0.0", }, }, + Golang: &tfbridge.GolangInfo{ + ImportBasePath: filepath.Join( + fmt.Sprintf("github.com/pulumi/pulumi-%[1]s/sdk/", mainPkg), + tfbridge.GetModuleMajorVersion(version.Version), + "go", + mainPkg, + ), + GenerateResourceContainerTypes: true, + }, CSharp: &tfbridge.CSharpInfo{ PackageReferences: map[string]string{ - "Pulumi": "2.*", - "System.Collections.Immutable": "1.6.0", + "Pulumi": "3.*", }, }, } diff --git a/scripts/publish-plugin.sh b/scripts/publish-plugin.sh deleted file mode 100755 index 09c080d..0000000 --- a/scripts/publish-plugin.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash -# publish-plugin.sh builds and publishes a package containing the resource provider to -# s3://rel.pulumi.com/releases/plugins. -set -o nounset -o errexit -o pipefail - -# Update this with the name of the provider -PROVIDER_NAME="proxmoxve" - -ROOT=$(dirname $0)/.. -WORK_PATH=$(mktemp -d) -VERSION=$(jq -r '.version' < "${ROOT}/sdk/nodejs/bin/package.json") -PLUGIN_PACKAGE_NAME="pulumi-resource-${PROVIDER_NAME}-${VERSION}-$(go env GOOS)-$(go env GOARCH).tar.gz" -PLUGIN_PACKAGE_DIR="$(mktemp -d)" -PLUGIN_PACKAGE_PATH="${PLUGIN_PACKAGE_DIR}/${PLUGIN_PACKAGE_NAME}" - -# When crossbuilding, we want to ensure we have .exe for the windows binaries. -BIN_SUFFIX= -if [ "$(go env GOOS)" = "windows" ]; then - BIN_SUFFIX=".exe" -fi - -echo "Building ${PLUGIN_PACKAGE_NAME}..." - -(cd provider && go build \ - -ldflags "-X github.com/matchlighter/pulumi-${PROVIDER_NAME}/provider/pkg/version.Version=${VERSION}" \ - -o "${WORK_PATH}/pulumi-resource-${PROVIDER_NAME}${BIN_SUFFIX}" \ - "${ROOT}/cmd/pulumi-resource-${PROVIDER_NAME}") - -# Tar up the plugin -tar -czf ${PLUGIN_PACKAGE_PATH} -C ${WORK_PATH} . - -cp ${PLUGIN_PACKAGE_PATH} ./plugin/${PLUGIN_PACKAGE_NAME} - -# Assume the provided role using the session name and (optional) external ID. -# Uses the "default" credentials, ignoring AWS_PROFILE if set. -# Usage: assume_iam_role [external-id] -function assume_iam_role() { - local ROLE_ARN=${1} - local SESSION_NAME=${2} - local EXTERNAL_ID=${3} - - echo "Assuming IAM Role '${ROLE_ARN}" - echo " Session : ${SESSION_NAME}" - echo " External ID: ${EXTERNAL_ID}" - - local CREDS_JSON="{}" - if [ -z ${EXTERNAL_ID} ]; then - CREDS_JSON=$(aws sts assume-role \ - --profile "default" \ - --role-arn "${ROLE_ARN}" \ - --role-session-name "${SESSION_NAME}" ) - else - CREDS_JSON=$(aws sts assume-role \ - --profile "default" \ - --role-arn "${ROLE_ARN}" \ - --role-session-name "${SESSION_NAME}" \ - --external-id "${EXTERNAL_ID}" ) - fi - - export AWS_ACCESS_KEY_ID=$(echo ${CREDS_JSON} | jq ".Credentials.AccessKeyId" --raw-output) - export AWS_SECRET_ACCESS_KEY=$(echo ${CREDS_JSON} | jq ".Credentials.SecretAccessKey" --raw-output) - export AWS_SESSION_TOKEN=$(echo ${CREDS_JSON} | jq ".Credentials.SessionToken" --raw-output) -} - -# Clear the environment variables set after calling assume_iam_role to get back to -# the initial state. (Using the "default" profile.) -function unassume_iam_role() { - unset {AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN} -} - -# echo "Uploading ${PLUGIN_PACKAGE_NAME} to s3://get.pulumi.com..." -# assume_iam_role \ -# "arn:aws:iam::058607598222:role/PulumiUploadRelease" \ -# "upload-plugin-pulumi-resource-${PROVIDER_NAME}" \ -# "upload-pulumi-release" -# aws s3 cp \ -# --only-show-errors --acl public-read \ -# "${PLUGIN_PACKAGE_PATH}" "s3://get.pulumi.com/releases/plugins/${PLUGIN_PACKAGE_NAME}" -# unassume_iam_role - -# rm -rf "${PLUGIN_PACKAGE_DIR}" -# rm -rf "${WORK_PATH}" diff --git a/scripts/publish_tgz.sh b/scripts/publish_tgz.sh deleted file mode 100755 index 5182899..0000000 --- a/scripts/publish_tgz.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# publish_tgz.sh builds and publishes the tarballs that our other repositories consume. -set -o nounset -o errexit -o pipefail - -ROOT=$(dirname $0)/.. -PUBLISH_GOOS=("linux" "windows" "darwin") -PUBLISH_GOARCH=("amd64") - -echo "Publishing plugin archive to s3://rel.pulumi.com/:" -for OS in "${PUBLISH_GOOS[@]}" -do - for ARCH in "${PUBLISH_GOARCH[@]}" - do - export GOOS=${OS} - export GOARCH=${ARCH} - - ${ROOT}/scripts/publish-plugin.sh - done -done diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index 0d3f484..353a3e7 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -1,76 +1,165 @@ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** +using System; using System.Collections.Immutable; namespace Pulumi.Proxmoxve { public static class Config { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification = + "Double underscore prefix used to avoid conflicts with variable names.")] + private sealed class __Value + { + private readonly Func _getter; + private T _value = default!; + private bool _set; + + public __Value(Func getter) + { + _getter = getter; + } + + public T Get() => _set ? _value : _getter(); + + public void Set(T value) + { + _value = value; + _set = true; + } + } + private static readonly Pulumi.Config __config = new Pulumi.Config("proxmoxve"); + + private static readonly __Value _pmApiTokenId = new __Value(() => __config.Get("pmApiTokenId")); /// /// API TokenID e.g. root@pam!mytesttoken /// - public static string? PmApiTokenId { get; set; } = __config.Get("pmApiTokenId"); + public static string? PmApiTokenId + { + get => _pmApiTokenId.Get(); + set => _pmApiTokenId.Set(value); + } + private static readonly __Value _pmApiTokenSecret = new __Value(() => __config.Get("pmApiTokenSecret")); /// /// The secret uuid corresponding to a TokenID /// - public static string? PmApiTokenSecret { get; set; } = __config.Get("pmApiTokenSecret"); + public static string? PmApiTokenSecret + { + get => _pmApiTokenSecret.Get(); + set => _pmApiTokenSecret.Set(value); + } + private static readonly __Value _pmApiUrl = new __Value(() => __config.Get("pmApiUrl")); /// /// https://host.fqdn:8006/api2/json /// - public static string? PmApiUrl { get; set; } = __config.Get("pmApiUrl"); + public static string? PmApiUrl + { + get => _pmApiUrl.Get(); + set => _pmApiUrl.Set(value); + } + private static readonly __Value _pmDangerouslyIgnoreUnknownAttributes = new __Value(() => __config.GetBoolean("pmDangerouslyIgnoreUnknownAttributes")); /// /// By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of /// VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set /// this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of /// the danger in doing so. /// - public static bool? PmDangerouslyIgnoreUnknownAttributes { get; set; } = __config.GetBoolean("pmDangerouslyIgnoreUnknownAttributes"); + public static bool? PmDangerouslyIgnoreUnknownAttributes + { + get => _pmDangerouslyIgnoreUnknownAttributes.Get(); + set => _pmDangerouslyIgnoreUnknownAttributes.Set(value); + } + private static readonly __Value _pmLogEnable = new __Value(() => __config.GetBoolean("pmLogEnable")); /// /// Enable provider logging to get proxmox API logs /// - public static bool? PmLogEnable { get; set; } = __config.GetBoolean("pmLogEnable"); + public static bool? PmLogEnable + { + get => _pmLogEnable.Get(); + set => _pmLogEnable.Set(value); + } + private static readonly __Value _pmLogFile = new __Value(() => __config.Get("pmLogFile")); /// /// Write logs to this specific file /// - public static string? PmLogFile { get; set; } = __config.Get("pmLogFile"); + public static string? PmLogFile + { + get => _pmLogFile.Get(); + set => _pmLogFile.Set(value); + } + private static readonly __Value?> _pmLogLevels = new __Value?>(() => __config.GetObject>("pmLogLevels")); /// /// Configure the logging level to display; trace, debug, info, warn, etc /// - public static ImmutableDictionary? PmLogLevels { get; set; } = __config.GetObject>("pmLogLevels"); + public static ImmutableDictionary? PmLogLevels + { + get => _pmLogLevels.Get(); + set => _pmLogLevels.Set(value); + } + private static readonly __Value _pmOtp = new __Value(() => __config.Get("pmOtp")); /// /// OTP 2FA code (if required) /// - public static string? PmOtp { get; set; } = __config.Get("pmOtp"); + public static string? PmOtp + { + get => _pmOtp.Get(); + set => _pmOtp.Set(value); + } - public static int? PmParallel { get; set; } = __config.GetInt32("pmParallel"); + private static readonly __Value _pmParallel = new __Value(() => __config.GetInt32("pmParallel")); + public static int? PmParallel + { + get => _pmParallel.Get(); + set => _pmParallel.Set(value); + } + private static readonly __Value _pmPassword = new __Value(() => __config.Get("pmPassword")); /// /// Password to authenticate into proxmox /// - public static string? PmPassword { get; set; } = __config.Get("pmPassword"); + public static string? PmPassword + { + get => _pmPassword.Get(); + set => _pmPassword.Set(value); + } - public static int? PmTimeout { get; set; } = __config.GetInt32("pmTimeout"); + private static readonly __Value _pmTimeout = new __Value(() => __config.GetInt32("pmTimeout")); + public static int? PmTimeout + { + get => _pmTimeout.Get(); + set => _pmTimeout.Set(value); + } + private static readonly __Value _pmTlsInsecure = new __Value(() => __config.GetBoolean("pmTlsInsecure")); /// /// By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on /// servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that /// issued the proxmox api url's certificate. /// - public static bool? PmTlsInsecure { get; set; } = __config.GetBoolean("pmTlsInsecure"); + public static bool? PmTlsInsecure + { + get => _pmTlsInsecure.Get(); + set => _pmTlsInsecure.Set(value); + } + private static readonly __Value _pmUser = new __Value(() => __config.Get("pmUser")); /// /// Username e.g. myuser or myuser@pam /// - public static string? PmUser { get; set; } = __config.Get("pmUser"); + public static string? PmUser + { + get => _pmUser.Get(); + set => _pmUser.Set(value); + } } } diff --git a/sdk/dotnet/LXCContainer.cs b/sdk/dotnet/LXCContainer.cs index 84d2f58..d76ee43 100644 --- a/sdk/dotnet/LXCContainer.cs +++ b/sdk/dotnet/LXCContainer.cs @@ -9,6 +9,7 @@ namespace Pulumi.Proxmoxve { + [ProxmoxveResourceType("proxmoxve:index/lXCContainer:LXCContainer")] public partial class LXCContainer : Pulumi.CustomResource { [Output("arch")] diff --git a/sdk/dotnet/LXCDisk.cs b/sdk/dotnet/LXCDisk.cs index c1bb930..80b8fbe 100644 --- a/sdk/dotnet/LXCDisk.cs +++ b/sdk/dotnet/LXCDisk.cs @@ -9,6 +9,7 @@ namespace Pulumi.Proxmoxve { + [ProxmoxveResourceType("proxmoxve:index/lXCDisk:LXCDisk")] public partial class LXCDisk : Pulumi.CustomResource { [Output("acl")] diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index ee5002e..2d6752a 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -15,8 +15,52 @@ namespace Pulumi.Proxmoxve /// construction to achieve fine-grained programmatic control over provider settings. See the /// [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. /// + [ProxmoxveResourceType("pulumi:providers:proxmoxve")] public partial class Provider : Pulumi.ProviderResource { + /// + /// API TokenID e.g. root@pam!mytesttoken + /// + [Output("pmApiTokenId")] + public Output PmApiTokenId { get; private set; } = null!; + + /// + /// The secret uuid corresponding to a TokenID + /// + [Output("pmApiTokenSecret")] + public Output PmApiTokenSecret { get; private set; } = null!; + + /// + /// https://host.fqdn:8006/api2/json + /// + [Output("pmApiUrl")] + public Output PmApiUrl { get; private set; } = null!; + + /// + /// Write logs to this specific file + /// + [Output("pmLogFile")] + public Output PmLogFile { get; private set; } = null!; + + /// + /// OTP 2FA code (if required) + /// + [Output("pmOtp")] + public Output PmOtp { get; private set; } = null!; + + /// + /// Password to authenticate into proxmox + /// + [Output("pmPassword")] + public Output PmPassword { get; private set; } = null!; + + /// + /// Username e.g. myuser or myuser@pam + /// + [Output("pmUser")] + public Output PmUser { get; private set; } = null!; + + /// /// Create a Provider resource with the given unique name, arguments, and options. /// diff --git a/sdk/dotnet/Pulumi.Proxmoxve.csproj b/sdk/dotnet/Pulumi.Proxmoxve.csproj index 257ee04..622af2e 100644 --- a/sdk/dotnet/Pulumi.Proxmoxve.csproj +++ b/sdk/dotnet/Pulumi.Proxmoxve.csproj @@ -12,6 +12,7 @@ netcoreapp3.1 enable + false @@ -25,18 +26,21 @@ true + + true + + - + - - + diff --git a/sdk/dotnet/QemuVM.cs b/sdk/dotnet/QemuVM.cs index 98df469..4005d1d 100644 --- a/sdk/dotnet/QemuVM.cs +++ b/sdk/dotnet/QemuVM.cs @@ -9,6 +9,7 @@ namespace Pulumi.Proxmoxve { + [ProxmoxveResourceType("proxmoxve:index/qemuVM:QemuVM")] public partial class QemuVM : Pulumi.CustomResource { [Output("additionalWait")] diff --git a/sdk/dotnet/Utilities.cs b/sdk/dotnet/Utilities.cs index b7b0a95..a073563 100644 --- a/sdk/dotnet/Utilities.cs +++ b/sdk/dotnet/Utilities.cs @@ -69,6 +69,19 @@ static Utilities() using var stream = assembly.GetManifestResourceStream("Pulumi.Proxmoxve.version.txt"); using var reader = new StreamReader(stream ?? throw new NotSupportedException("Missing embedded version.txt file")); version = reader.ReadToEnd().Trim(); + var parts = version.Split("\n"); + if (parts.Length == 2) + { + // The first part is the provider name. + version = parts[1].Trim(); + } + } + } + + internal sealed class ProxmoxveResourceTypeAttribute : Pulumi.ResourceTypeAttribute + { + public ProxmoxveResourceTypeAttribute(string type) : base(type, Utilities.Version) + { } } } diff --git a/sdk/dotnet/logo.png b/sdk/dotnet/logo.png index 708b717..181f421 100644 Binary files a/sdk/dotnet/logo.png and b/sdk/dotnet/logo.png differ diff --git a/sdk/go.mod b/sdk/go.mod index e295215..e307083 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -1,3 +1,5 @@ module github.com/matchlighter/pulumi-proxmoxve/sdk -go 1.14 +go 1.16 + +require github.com/pulumi/pulumi/sdk/v3 v3.14.0 diff --git a/sdk/go/proxmoxve/config/config.go b/sdk/go/proxmoxve/config/config.go index a04877b..79df941 100644 --- a/sdk/go/proxmoxve/config/config.go +++ b/sdk/go/proxmoxve/config/config.go @@ -4,8 +4,8 @@ package config import ( - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi/config" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" ) // API TokenID e.g. root@pam!mytesttoken diff --git a/sdk/go/proxmoxve/init.go b/sdk/go/proxmoxve/init.go new file mode 100644 index 0000000..95fa7b0 --- /dev/null +++ b/sdk/go/proxmoxve/init.go @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package proxmoxve + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "proxmoxve:index/lXCContainer:LXCContainer": + r = &LXCContainer{} + case "proxmoxve:index/lXCDisk:LXCDisk": + r = &LXCDisk{} + case "proxmoxve:index/qemuVM:QemuVM": + r = &QemuVM{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +type pkg struct { + version semver.Version +} + +func (p *pkg) Version() semver.Version { + return p.version +} + +func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) { + if typ != "pulumi:providers:proxmoxve" { + return nil, fmt.Errorf("unknown provider type: %s", typ) + } + + r := &Provider{} + err := ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return r, err +} + +func init() { + version, err := PkgVersion() + if err != nil { + fmt.Printf("failed to determine package version. defaulting to v1: %v\n", err) + } + pulumi.RegisterResourceModule( + "proxmoxve", + "index/lXCContainer", + &module{version}, + ) + pulumi.RegisterResourceModule( + "proxmoxve", + "index/lXCDisk", + &module{version}, + ) + pulumi.RegisterResourceModule( + "proxmoxve", + "index/qemuVM", + &module{version}, + ) + pulumi.RegisterResourcePackage( + "proxmoxve", + &pkg{version}, + ) +} diff --git a/sdk/go/proxmoxve/lxccontainer.go b/sdk/go/proxmoxve/lxccontainer.go index fe4f9a3..f96b999 100644 --- a/sdk/go/proxmoxve/lxccontainer.go +++ b/sdk/go/proxmoxve/lxccontainer.go @@ -4,10 +4,11 @@ package proxmoxve import ( + "context" "reflect" "github.com/pkg/errors" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) type LXCContainer struct { @@ -57,11 +58,12 @@ type LXCContainer struct { // NewLXCContainer registers a new resource with the given unique name, arguments, and options. func NewLXCContainer(ctx *pulumi.Context, name string, args *LXCContainerArgs, opts ...pulumi.ResourceOption) (*LXCContainer, error) { - if args == nil || args.TargetNode == nil { - return nil, errors.New("missing required argument 'TargetNode'") - } if args == nil { - args = &LXCContainerArgs{} + return nil, errors.New("missing one or more required arguments") + } + + if args.TargetNode == nil { + return nil, errors.New("invalid value for required argument 'TargetNode'") } var resource LXCContainer err := ctx.RegisterResource("proxmoxve:index/lXCContainer:LXCContainer", name, args, &resource, opts...) @@ -260,3 +262,196 @@ type LXCContainerArgs struct { func (LXCContainerArgs) ElementType() reflect.Type { return reflect.TypeOf((*lxccontainerArgs)(nil)).Elem() } + +type LXCContainerInput interface { + pulumi.Input + + ToLXCContainerOutput() LXCContainerOutput + ToLXCContainerOutputWithContext(ctx context.Context) LXCContainerOutput +} + +func (*LXCContainer) ElementType() reflect.Type { + return reflect.TypeOf((*LXCContainer)(nil)) +} + +func (i *LXCContainer) ToLXCContainerOutput() LXCContainerOutput { + return i.ToLXCContainerOutputWithContext(context.Background()) +} + +func (i *LXCContainer) ToLXCContainerOutputWithContext(ctx context.Context) LXCContainerOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCContainerOutput) +} + +func (i *LXCContainer) ToLXCContainerPtrOutput() LXCContainerPtrOutput { + return i.ToLXCContainerPtrOutputWithContext(context.Background()) +} + +func (i *LXCContainer) ToLXCContainerPtrOutputWithContext(ctx context.Context) LXCContainerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCContainerPtrOutput) +} + +type LXCContainerPtrInput interface { + pulumi.Input + + ToLXCContainerPtrOutput() LXCContainerPtrOutput + ToLXCContainerPtrOutputWithContext(ctx context.Context) LXCContainerPtrOutput +} + +type lxccontainerPtrType LXCContainerArgs + +func (*lxccontainerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LXCContainer)(nil)) +} + +func (i *lxccontainerPtrType) ToLXCContainerPtrOutput() LXCContainerPtrOutput { + return i.ToLXCContainerPtrOutputWithContext(context.Background()) +} + +func (i *lxccontainerPtrType) ToLXCContainerPtrOutputWithContext(ctx context.Context) LXCContainerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCContainerPtrOutput) +} + +// LXCContainerArrayInput is an input type that accepts LXCContainerArray and LXCContainerArrayOutput values. +// You can construct a concrete instance of `LXCContainerArrayInput` via: +// +// LXCContainerArray{ LXCContainerArgs{...} } +type LXCContainerArrayInput interface { + pulumi.Input + + ToLXCContainerArrayOutput() LXCContainerArrayOutput + ToLXCContainerArrayOutputWithContext(context.Context) LXCContainerArrayOutput +} + +type LXCContainerArray []LXCContainerInput + +func (LXCContainerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LXCContainer)(nil)).Elem() +} + +func (i LXCContainerArray) ToLXCContainerArrayOutput() LXCContainerArrayOutput { + return i.ToLXCContainerArrayOutputWithContext(context.Background()) +} + +func (i LXCContainerArray) ToLXCContainerArrayOutputWithContext(ctx context.Context) LXCContainerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCContainerArrayOutput) +} + +// LXCContainerMapInput is an input type that accepts LXCContainerMap and LXCContainerMapOutput values. +// You can construct a concrete instance of `LXCContainerMapInput` via: +// +// LXCContainerMap{ "key": LXCContainerArgs{...} } +type LXCContainerMapInput interface { + pulumi.Input + + ToLXCContainerMapOutput() LXCContainerMapOutput + ToLXCContainerMapOutputWithContext(context.Context) LXCContainerMapOutput +} + +type LXCContainerMap map[string]LXCContainerInput + +func (LXCContainerMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LXCContainer)(nil)).Elem() +} + +func (i LXCContainerMap) ToLXCContainerMapOutput() LXCContainerMapOutput { + return i.ToLXCContainerMapOutputWithContext(context.Background()) +} + +func (i LXCContainerMap) ToLXCContainerMapOutputWithContext(ctx context.Context) LXCContainerMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCContainerMapOutput) +} + +type LXCContainerOutput struct{ *pulumi.OutputState } + +func (LXCContainerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LXCContainer)(nil)) +} + +func (o LXCContainerOutput) ToLXCContainerOutput() LXCContainerOutput { + return o +} + +func (o LXCContainerOutput) ToLXCContainerOutputWithContext(ctx context.Context) LXCContainerOutput { + return o +} + +func (o LXCContainerOutput) ToLXCContainerPtrOutput() LXCContainerPtrOutput { + return o.ToLXCContainerPtrOutputWithContext(context.Background()) +} + +func (o LXCContainerOutput) ToLXCContainerPtrOutputWithContext(ctx context.Context) LXCContainerPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LXCContainer) *LXCContainer { + return &v + }).(LXCContainerPtrOutput) +} + +type LXCContainerPtrOutput struct{ *pulumi.OutputState } + +func (LXCContainerPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LXCContainer)(nil)) +} + +func (o LXCContainerPtrOutput) ToLXCContainerPtrOutput() LXCContainerPtrOutput { + return o +} + +func (o LXCContainerPtrOutput) ToLXCContainerPtrOutputWithContext(ctx context.Context) LXCContainerPtrOutput { + return o +} + +func (o LXCContainerPtrOutput) Elem() LXCContainerOutput { + return o.ApplyT(func(v *LXCContainer) LXCContainer { + if v != nil { + return *v + } + var ret LXCContainer + return ret + }).(LXCContainerOutput) +} + +type LXCContainerArrayOutput struct{ *pulumi.OutputState } + +func (LXCContainerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LXCContainer)(nil)) +} + +func (o LXCContainerArrayOutput) ToLXCContainerArrayOutput() LXCContainerArrayOutput { + return o +} + +func (o LXCContainerArrayOutput) ToLXCContainerArrayOutputWithContext(ctx context.Context) LXCContainerArrayOutput { + return o +} + +func (o LXCContainerArrayOutput) Index(i pulumi.IntInput) LXCContainerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LXCContainer { + return vs[0].([]LXCContainer)[vs[1].(int)] + }).(LXCContainerOutput) +} + +type LXCContainerMapOutput struct{ *pulumi.OutputState } + +func (LXCContainerMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]LXCContainer)(nil)) +} + +func (o LXCContainerMapOutput) ToLXCContainerMapOutput() LXCContainerMapOutput { + return o +} + +func (o LXCContainerMapOutput) ToLXCContainerMapOutputWithContext(ctx context.Context) LXCContainerMapOutput { + return o +} + +func (o LXCContainerMapOutput) MapIndex(k pulumi.StringInput) LXCContainerOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) LXCContainer { + return vs[0].(map[string]LXCContainer)[vs[1].(string)] + }).(LXCContainerOutput) +} + +func init() { + pulumi.RegisterOutputType(LXCContainerOutput{}) + pulumi.RegisterOutputType(LXCContainerPtrOutput{}) + pulumi.RegisterOutputType(LXCContainerArrayOutput{}) + pulumi.RegisterOutputType(LXCContainerMapOutput{}) +} diff --git a/sdk/go/proxmoxve/lxcdisk.go b/sdk/go/proxmoxve/lxcdisk.go index 9efdcd6..54e8a4f 100644 --- a/sdk/go/proxmoxve/lxcdisk.go +++ b/sdk/go/proxmoxve/lxcdisk.go @@ -4,10 +4,11 @@ package proxmoxve import ( + "context" "reflect" "github.com/pkg/errors" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) type LXCDisk struct { @@ -30,23 +31,24 @@ type LXCDisk struct { // NewLXCDisk registers a new resource with the given unique name, arguments, and options. func NewLXCDisk(ctx *pulumi.Context, name string, args *LXCDiskArgs, opts ...pulumi.ResourceOption) (*LXCDisk, error) { - if args == nil || args.Container == nil { - return nil, errors.New("missing required argument 'Container'") + if args == nil { + return nil, errors.New("missing one or more required arguments") } - if args == nil || args.Mp == nil { - return nil, errors.New("missing required argument 'Mp'") + + if args.Container == nil { + return nil, errors.New("invalid value for required argument 'Container'") } - if args == nil || args.Size == nil { - return nil, errors.New("missing required argument 'Size'") + if args.Mp == nil { + return nil, errors.New("invalid value for required argument 'Mp'") } - if args == nil || args.Slot == nil { - return nil, errors.New("missing required argument 'Slot'") + if args.Size == nil { + return nil, errors.New("invalid value for required argument 'Size'") } - if args == nil || args.Storage == nil { - return nil, errors.New("missing required argument 'Storage'") + if args.Slot == nil { + return nil, errors.New("invalid value for required argument 'Slot'") } - if args == nil { - args = &LXCDiskArgs{} + if args.Storage == nil { + return nil, errors.New("invalid value for required argument 'Storage'") } var resource LXCDisk err := ctx.RegisterResource("proxmoxve:index/lXCDisk:LXCDisk", name, args, &resource, opts...) @@ -137,3 +139,196 @@ type LXCDiskArgs struct { func (LXCDiskArgs) ElementType() reflect.Type { return reflect.TypeOf((*lxcdiskArgs)(nil)).Elem() } + +type LXCDiskInput interface { + pulumi.Input + + ToLXCDiskOutput() LXCDiskOutput + ToLXCDiskOutputWithContext(ctx context.Context) LXCDiskOutput +} + +func (*LXCDisk) ElementType() reflect.Type { + return reflect.TypeOf((*LXCDisk)(nil)) +} + +func (i *LXCDisk) ToLXCDiskOutput() LXCDiskOutput { + return i.ToLXCDiskOutputWithContext(context.Background()) +} + +func (i *LXCDisk) ToLXCDiskOutputWithContext(ctx context.Context) LXCDiskOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCDiskOutput) +} + +func (i *LXCDisk) ToLXCDiskPtrOutput() LXCDiskPtrOutput { + return i.ToLXCDiskPtrOutputWithContext(context.Background()) +} + +func (i *LXCDisk) ToLXCDiskPtrOutputWithContext(ctx context.Context) LXCDiskPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCDiskPtrOutput) +} + +type LXCDiskPtrInput interface { + pulumi.Input + + ToLXCDiskPtrOutput() LXCDiskPtrOutput + ToLXCDiskPtrOutputWithContext(ctx context.Context) LXCDiskPtrOutput +} + +type lxcdiskPtrType LXCDiskArgs + +func (*lxcdiskPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LXCDisk)(nil)) +} + +func (i *lxcdiskPtrType) ToLXCDiskPtrOutput() LXCDiskPtrOutput { + return i.ToLXCDiskPtrOutputWithContext(context.Background()) +} + +func (i *lxcdiskPtrType) ToLXCDiskPtrOutputWithContext(ctx context.Context) LXCDiskPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCDiskPtrOutput) +} + +// LXCDiskArrayInput is an input type that accepts LXCDiskArray and LXCDiskArrayOutput values. +// You can construct a concrete instance of `LXCDiskArrayInput` via: +// +// LXCDiskArray{ LXCDiskArgs{...} } +type LXCDiskArrayInput interface { + pulumi.Input + + ToLXCDiskArrayOutput() LXCDiskArrayOutput + ToLXCDiskArrayOutputWithContext(context.Context) LXCDiskArrayOutput +} + +type LXCDiskArray []LXCDiskInput + +func (LXCDiskArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LXCDisk)(nil)).Elem() +} + +func (i LXCDiskArray) ToLXCDiskArrayOutput() LXCDiskArrayOutput { + return i.ToLXCDiskArrayOutputWithContext(context.Background()) +} + +func (i LXCDiskArray) ToLXCDiskArrayOutputWithContext(ctx context.Context) LXCDiskArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCDiskArrayOutput) +} + +// LXCDiskMapInput is an input type that accepts LXCDiskMap and LXCDiskMapOutput values. +// You can construct a concrete instance of `LXCDiskMapInput` via: +// +// LXCDiskMap{ "key": LXCDiskArgs{...} } +type LXCDiskMapInput interface { + pulumi.Input + + ToLXCDiskMapOutput() LXCDiskMapOutput + ToLXCDiskMapOutputWithContext(context.Context) LXCDiskMapOutput +} + +type LXCDiskMap map[string]LXCDiskInput + +func (LXCDiskMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LXCDisk)(nil)).Elem() +} + +func (i LXCDiskMap) ToLXCDiskMapOutput() LXCDiskMapOutput { + return i.ToLXCDiskMapOutputWithContext(context.Background()) +} + +func (i LXCDiskMap) ToLXCDiskMapOutputWithContext(ctx context.Context) LXCDiskMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LXCDiskMapOutput) +} + +type LXCDiskOutput struct{ *pulumi.OutputState } + +func (LXCDiskOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LXCDisk)(nil)) +} + +func (o LXCDiskOutput) ToLXCDiskOutput() LXCDiskOutput { + return o +} + +func (o LXCDiskOutput) ToLXCDiskOutputWithContext(ctx context.Context) LXCDiskOutput { + return o +} + +func (o LXCDiskOutput) ToLXCDiskPtrOutput() LXCDiskPtrOutput { + return o.ToLXCDiskPtrOutputWithContext(context.Background()) +} + +func (o LXCDiskOutput) ToLXCDiskPtrOutputWithContext(ctx context.Context) LXCDiskPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LXCDisk) *LXCDisk { + return &v + }).(LXCDiskPtrOutput) +} + +type LXCDiskPtrOutput struct{ *pulumi.OutputState } + +func (LXCDiskPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LXCDisk)(nil)) +} + +func (o LXCDiskPtrOutput) ToLXCDiskPtrOutput() LXCDiskPtrOutput { + return o +} + +func (o LXCDiskPtrOutput) ToLXCDiskPtrOutputWithContext(ctx context.Context) LXCDiskPtrOutput { + return o +} + +func (o LXCDiskPtrOutput) Elem() LXCDiskOutput { + return o.ApplyT(func(v *LXCDisk) LXCDisk { + if v != nil { + return *v + } + var ret LXCDisk + return ret + }).(LXCDiskOutput) +} + +type LXCDiskArrayOutput struct{ *pulumi.OutputState } + +func (LXCDiskArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LXCDisk)(nil)) +} + +func (o LXCDiskArrayOutput) ToLXCDiskArrayOutput() LXCDiskArrayOutput { + return o +} + +func (o LXCDiskArrayOutput) ToLXCDiskArrayOutputWithContext(ctx context.Context) LXCDiskArrayOutput { + return o +} + +func (o LXCDiskArrayOutput) Index(i pulumi.IntInput) LXCDiskOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LXCDisk { + return vs[0].([]LXCDisk)[vs[1].(int)] + }).(LXCDiskOutput) +} + +type LXCDiskMapOutput struct{ *pulumi.OutputState } + +func (LXCDiskMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]LXCDisk)(nil)) +} + +func (o LXCDiskMapOutput) ToLXCDiskMapOutput() LXCDiskMapOutput { + return o +} + +func (o LXCDiskMapOutput) ToLXCDiskMapOutputWithContext(ctx context.Context) LXCDiskMapOutput { + return o +} + +func (o LXCDiskMapOutput) MapIndex(k pulumi.StringInput) LXCDiskOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) LXCDisk { + return vs[0].(map[string]LXCDisk)[vs[1].(string)] + }).(LXCDiskOutput) +} + +func init() { + pulumi.RegisterOutputType(LXCDiskOutput{}) + pulumi.RegisterOutputType(LXCDiskPtrOutput{}) + pulumi.RegisterOutputType(LXCDiskArrayOutput{}) + pulumi.RegisterOutputType(LXCDiskMapOutput{}) +} diff --git a/sdk/go/proxmoxve/provider.go b/sdk/go/proxmoxve/provider.go index 8ac3df4..f2dfa84 100644 --- a/sdk/go/proxmoxve/provider.go +++ b/sdk/go/proxmoxve/provider.go @@ -4,10 +4,11 @@ package proxmoxve import ( + "context" "reflect" "github.com/pkg/errors" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The provider type for the proxmoxve package. By default, resources use package-wide configuration @@ -16,16 +17,32 @@ import ( // [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. type Provider struct { pulumi.ProviderResourceState + + // API TokenID e.g. root@pam!mytesttoken + PmApiTokenId pulumi.StringPtrOutput `pulumi:"pmApiTokenId"` + // The secret uuid corresponding to a TokenID + PmApiTokenSecret pulumi.StringPtrOutput `pulumi:"pmApiTokenSecret"` + // https://host.fqdn:8006/api2/json + PmApiUrl pulumi.StringOutput `pulumi:"pmApiUrl"` + // Write logs to this specific file + PmLogFile pulumi.StringPtrOutput `pulumi:"pmLogFile"` + // OTP 2FA code (if required) + PmOtp pulumi.StringPtrOutput `pulumi:"pmOtp"` + // Password to authenticate into proxmox + PmPassword pulumi.StringPtrOutput `pulumi:"pmPassword"` + // Username e.g. myuser or myuser@pam + PmUser pulumi.StringPtrOutput `pulumi:"pmUser"` } // NewProvider registers a new resource with the given unique name, arguments, and options. func NewProvider(ctx *pulumi.Context, name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error) { - if args == nil || args.PmApiUrl == nil { - return nil, errors.New("missing required argument 'PmApiUrl'") - } if args == nil { - args = &ProviderArgs{} + return nil, errors.New("missing one or more required arguments") + } + + if args.PmApiUrl == nil { + return nil, errors.New("invalid value for required argument 'PmApiUrl'") } var resource Provider err := ctx.RegisterResource("pulumi:providers:proxmoxve", name, args, &resource, opts...) @@ -103,3 +120,104 @@ type ProviderArgs struct { func (ProviderArgs) ElementType() reflect.Type { return reflect.TypeOf((*providerArgs)(nil)).Elem() } + +type ProviderInput interface { + pulumi.Input + + ToProviderOutput() ProviderOutput + ToProviderOutputWithContext(ctx context.Context) ProviderOutput +} + +func (*Provider) ElementType() reflect.Type { + return reflect.TypeOf((*Provider)(nil)) +} + +func (i *Provider) ToProviderOutput() ProviderOutput { + return i.ToProviderOutputWithContext(context.Background()) +} + +func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput) +} + +func (i *Provider) ToProviderPtrOutput() ProviderPtrOutput { + return i.ToProviderPtrOutputWithContext(context.Background()) +} + +func (i *Provider) ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderPtrOutput) +} + +type ProviderPtrInput interface { + pulumi.Input + + ToProviderPtrOutput() ProviderPtrOutput + ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput +} + +type providerPtrType ProviderArgs + +func (*providerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Provider)(nil)) +} + +func (i *providerPtrType) ToProviderPtrOutput() ProviderPtrOutput { + return i.ToProviderPtrOutputWithContext(context.Background()) +} + +func (i *providerPtrType) ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderPtrOutput) +} + +type ProviderOutput struct{ *pulumi.OutputState } + +func (ProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Provider)(nil)) +} + +func (o ProviderOutput) ToProviderOutput() ProviderOutput { + return o +} + +func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { + return o +} + +func (o ProviderOutput) ToProviderPtrOutput() ProviderPtrOutput { + return o.ToProviderPtrOutputWithContext(context.Background()) +} + +func (o ProviderOutput) ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Provider) *Provider { + return &v + }).(ProviderPtrOutput) +} + +type ProviderPtrOutput struct{ *pulumi.OutputState } + +func (ProviderPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Provider)(nil)) +} + +func (o ProviderPtrOutput) ToProviderPtrOutput() ProviderPtrOutput { + return o +} + +func (o ProviderPtrOutput) ToProviderPtrOutputWithContext(ctx context.Context) ProviderPtrOutput { + return o +} + +func (o ProviderPtrOutput) Elem() ProviderOutput { + return o.ApplyT(func(v *Provider) Provider { + if v != nil { + return *v + } + var ret Provider + return ret + }).(ProviderOutput) +} + +func init() { + pulumi.RegisterOutputType(ProviderOutput{}) + pulumi.RegisterOutputType(ProviderPtrOutput{}) +} diff --git a/sdk/go/proxmoxve/pulumiTypes.go b/sdk/go/proxmoxve/pulumiTypes.go index 14a65be..6f798ed 100644 --- a/sdk/go/proxmoxve/pulumiTypes.go +++ b/sdk/go/proxmoxve/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) type LXCContainerFeatures struct { @@ -107,10 +107,11 @@ func (o LXCContainerFeaturesOutput) ToLXCContainerFeaturesPtrOutput() LXCContain } func (o LXCContainerFeaturesOutput) ToLXCContainerFeaturesPtrOutputWithContext(ctx context.Context) LXCContainerFeaturesPtrOutput { - return o.ApplyT(func(v LXCContainerFeatures) *LXCContainerFeatures { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LXCContainerFeatures) *LXCContainerFeatures { return &v }).(LXCContainerFeaturesPtrOutput) } + func (o LXCContainerFeaturesOutput) Fuse() pulumi.BoolPtrOutput { return o.ApplyT(func(v LXCContainerFeatures) *bool { return v.Fuse }).(pulumi.BoolPtrOutput) } @@ -142,7 +143,13 @@ func (o LXCContainerFeaturesPtrOutput) ToLXCContainerFeaturesPtrOutputWithContex } func (o LXCContainerFeaturesPtrOutput) Elem() LXCContainerFeaturesOutput { - return o.ApplyT(func(v *LXCContainerFeatures) LXCContainerFeatures { return *v }).(LXCContainerFeaturesOutput) + return o.ApplyT(func(v *LXCContainerFeatures) LXCContainerFeatures { + if v != nil { + return *v + } + var ret LXCContainerFeatures + return ret + }).(LXCContainerFeaturesOutput) } func (o LXCContainerFeaturesPtrOutput) Fuse() pulumi.BoolPtrOutput { @@ -602,10 +609,11 @@ func (o LXCContainerRootfsOutput) ToLXCContainerRootfsPtrOutput() LXCContainerRo } func (o LXCContainerRootfsOutput) ToLXCContainerRootfsPtrOutputWithContext(ctx context.Context) LXCContainerRootfsPtrOutput { - return o.ApplyT(func(v LXCContainerRootfs) *LXCContainerRootfs { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LXCContainerRootfs) *LXCContainerRootfs { return &v }).(LXCContainerRootfsPtrOutput) } + func (o LXCContainerRootfsOutput) Size() pulumi.StringOutput { return o.ApplyT(func(v LXCContainerRootfs) string { return v.Size }).(pulumi.StringOutput) } @@ -633,7 +641,13 @@ func (o LXCContainerRootfsPtrOutput) ToLXCContainerRootfsPtrOutputWithContext(ct } func (o LXCContainerRootfsPtrOutput) Elem() LXCContainerRootfsOutput { - return o.ApplyT(func(v *LXCContainerRootfs) LXCContainerRootfs { return *v }).(LXCContainerRootfsOutput) + return o.ApplyT(func(v *LXCContainerRootfs) LXCContainerRootfs { + if v != nil { + return *v + } + var ret LXCContainerRootfs + return ret + }).(LXCContainerRootfsOutput) } func (o LXCContainerRootfsPtrOutput) Size() pulumi.StringPtrOutput { @@ -760,10 +774,11 @@ func (o LXCDiskMountoptionsOutput) ToLXCDiskMountoptionsPtrOutput() LXCDiskMount } func (o LXCDiskMountoptionsOutput) ToLXCDiskMountoptionsPtrOutputWithContext(ctx context.Context) LXCDiskMountoptionsPtrOutput { - return o.ApplyT(func(v LXCDiskMountoptions) *LXCDiskMountoptions { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LXCDiskMountoptions) *LXCDiskMountoptions { return &v }).(LXCDiskMountoptionsPtrOutput) } + func (o LXCDiskMountoptionsOutput) Noatime() pulumi.BoolPtrOutput { return o.ApplyT(func(v LXCDiskMountoptions) *bool { return v.Noatime }).(pulumi.BoolPtrOutput) } @@ -795,7 +810,13 @@ func (o LXCDiskMountoptionsPtrOutput) ToLXCDiskMountoptionsPtrOutputWithContext( } func (o LXCDiskMountoptionsPtrOutput) Elem() LXCDiskMountoptionsOutput { - return o.ApplyT(func(v *LXCDiskMountoptions) LXCDiskMountoptions { return *v }).(LXCDiskMountoptionsOutput) + return o.ApplyT(func(v *LXCDiskMountoptions) LXCDiskMountoptions { + if v != nil { + return *v + } + var ret LXCDiskMountoptions + return ret + }).(LXCDiskMountoptionsOutput) } func (o LXCDiskMountoptionsPtrOutput) Noatime() pulumi.BoolPtrOutput { @@ -1485,6 +1506,26 @@ func (o QemuVMVgaArrayOutput) Index(i pulumi.IntInput) QemuVMVgaOutput { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerFeaturesInput)(nil)).Elem(), LXCContainerFeaturesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerFeaturesPtrInput)(nil)).Elem(), LXCContainerFeaturesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerMountpointInput)(nil)).Elem(), LXCContainerMountpointArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerMountpointArrayInput)(nil)).Elem(), LXCContainerMountpointArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerNetworkInput)(nil)).Elem(), LXCContainerNetworkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerNetworkArrayInput)(nil)).Elem(), LXCContainerNetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerRootfsInput)(nil)).Elem(), LXCContainerRootfsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCContainerRootfsPtrInput)(nil)).Elem(), LXCContainerRootfsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCDiskMountoptionsInput)(nil)).Elem(), LXCDiskMountoptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LXCDiskMountoptionsPtrInput)(nil)).Elem(), LXCDiskMountoptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMDiskInput)(nil)).Elem(), QemuVMDiskArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMDiskArrayInput)(nil)).Elem(), QemuVMDiskArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMNetworkInput)(nil)).Elem(), QemuVMNetworkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMNetworkArrayInput)(nil)).Elem(), QemuVMNetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMSerialInput)(nil)).Elem(), QemuVMSerialArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMSerialArrayInput)(nil)).Elem(), QemuVMSerialArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMUnusedDiskInput)(nil)).Elem(), QemuVMUnusedDiskArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMUnusedDiskArrayInput)(nil)).Elem(), QemuVMUnusedDiskArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMVgaInput)(nil)).Elem(), QemuVMVgaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QemuVMVgaArrayInput)(nil)).Elem(), QemuVMVgaArray{}) pulumi.RegisterOutputType(LXCContainerFeaturesOutput{}) pulumi.RegisterOutputType(LXCContainerFeaturesPtrOutput{}) pulumi.RegisterOutputType(LXCContainerMountpointOutput{}) diff --git a/sdk/go/proxmoxve/pulumiUtilities.go b/sdk/go/proxmoxve/pulumiUtilities.go new file mode 100644 index 0000000..493d595 --- /dev/null +++ b/sdk/go/proxmoxve/pulumiUtilities.go @@ -0,0 +1,77 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package proxmoxve + +import ( + "fmt" + "os" + "reflect" + "regexp" + "strconv" + "strings" + + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type envParser func(v string) interface{} + +func parseEnvBool(v string) interface{} { + b, err := strconv.ParseBool(v) + if err != nil { + return nil + } + return b +} + +func parseEnvInt(v string) interface{} { + i, err := strconv.ParseInt(v, 0, 0) + if err != nil { + return nil + } + return int(i) +} + +func parseEnvFloat(v string) interface{} { + f, err := strconv.ParseFloat(v, 64) + if err != nil { + return nil + } + return f +} + +func parseEnvStringArray(v string) interface{} { + var result pulumi.StringArray + for _, item := range strings.Split(v, ";") { + result = append(result, pulumi.String(item)) + } + return result +} + +func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { + for _, v := range vars { + if value := os.Getenv(v); value != "" { + if parser != nil { + return parser(value) + } + return value + } + } + return def +} + +// PkgVersion uses reflection to determine the version of the current package. +func PkgVersion() (semver.Version, error) { + type sentinal struct{} + pkgPath := reflect.TypeOf(sentinal{}).PkgPath() + re := regexp.MustCompile("^.*/pulumi-proxmoxve/sdk(/v\\d+)?") + if match := re.FindStringSubmatch(pkgPath); match != nil { + vStr := match[1] + if len(vStr) == 0 { // If the version capture group was empty, default to v1. + return semver.Version{Major: 1}, nil + } + return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil + } + return semver.Version{}, fmt.Errorf("failed to determine the package version from %s", pkgPath) +} diff --git a/sdk/go/proxmoxve/qemuVM.go b/sdk/go/proxmoxve/qemuVM.go index aaa05a6..e28a2a8 100644 --- a/sdk/go/proxmoxve/qemuVM.go +++ b/sdk/go/proxmoxve/qemuVM.go @@ -4,10 +4,11 @@ package proxmoxve import ( + "context" "reflect" "github.com/pkg/errors" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) type QemuVM struct { @@ -93,11 +94,12 @@ type QemuVM struct { // NewQemuVM registers a new resource with the given unique name, arguments, and options. func NewQemuVM(ctx *pulumi.Context, name string, args *QemuVMArgs, opts ...pulumi.ResourceOption) (*QemuVM, error) { - if args == nil || args.TargetNode == nil { - return nil, errors.New("missing required argument 'TargetNode'") - } if args == nil { - args = &QemuVMArgs{} + return nil, errors.New("missing one or more required arguments") + } + + if args.TargetNode == nil { + return nil, errors.New("invalid value for required argument 'TargetNode'") } var resource QemuVM err := ctx.RegisterResource("proxmoxve:index/qemuVM:QemuVM", name, args, &resource, opts...) @@ -426,3 +428,196 @@ type QemuVMArgs struct { func (QemuVMArgs) ElementType() reflect.Type { return reflect.TypeOf((*qemuVMArgs)(nil)).Elem() } + +type QemuVMInput interface { + pulumi.Input + + ToQemuVMOutput() QemuVMOutput + ToQemuVMOutputWithContext(ctx context.Context) QemuVMOutput +} + +func (*QemuVM) ElementType() reflect.Type { + return reflect.TypeOf((*QemuVM)(nil)) +} + +func (i *QemuVM) ToQemuVMOutput() QemuVMOutput { + return i.ToQemuVMOutputWithContext(context.Background()) +} + +func (i *QemuVM) ToQemuVMOutputWithContext(ctx context.Context) QemuVMOutput { + return pulumi.ToOutputWithContext(ctx, i).(QemuVMOutput) +} + +func (i *QemuVM) ToQemuVMPtrOutput() QemuVMPtrOutput { + return i.ToQemuVMPtrOutputWithContext(context.Background()) +} + +func (i *QemuVM) ToQemuVMPtrOutputWithContext(ctx context.Context) QemuVMPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QemuVMPtrOutput) +} + +type QemuVMPtrInput interface { + pulumi.Input + + ToQemuVMPtrOutput() QemuVMPtrOutput + ToQemuVMPtrOutputWithContext(ctx context.Context) QemuVMPtrOutput +} + +type qemuVMPtrType QemuVMArgs + +func (*qemuVMPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**QemuVM)(nil)) +} + +func (i *qemuVMPtrType) ToQemuVMPtrOutput() QemuVMPtrOutput { + return i.ToQemuVMPtrOutputWithContext(context.Background()) +} + +func (i *qemuVMPtrType) ToQemuVMPtrOutputWithContext(ctx context.Context) QemuVMPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QemuVMPtrOutput) +} + +// QemuVMArrayInput is an input type that accepts QemuVMArray and QemuVMArrayOutput values. +// You can construct a concrete instance of `QemuVMArrayInput` via: +// +// QemuVMArray{ QemuVMArgs{...} } +type QemuVMArrayInput interface { + pulumi.Input + + ToQemuVMArrayOutput() QemuVMArrayOutput + ToQemuVMArrayOutputWithContext(context.Context) QemuVMArrayOutput +} + +type QemuVMArray []QemuVMInput + +func (QemuVMArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*QemuVM)(nil)).Elem() +} + +func (i QemuVMArray) ToQemuVMArrayOutput() QemuVMArrayOutput { + return i.ToQemuVMArrayOutputWithContext(context.Background()) +} + +func (i QemuVMArray) ToQemuVMArrayOutputWithContext(ctx context.Context) QemuVMArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(QemuVMArrayOutput) +} + +// QemuVMMapInput is an input type that accepts QemuVMMap and QemuVMMapOutput values. +// You can construct a concrete instance of `QemuVMMapInput` via: +// +// QemuVMMap{ "key": QemuVMArgs{...} } +type QemuVMMapInput interface { + pulumi.Input + + ToQemuVMMapOutput() QemuVMMapOutput + ToQemuVMMapOutputWithContext(context.Context) QemuVMMapOutput +} + +type QemuVMMap map[string]QemuVMInput + +func (QemuVMMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*QemuVM)(nil)).Elem() +} + +func (i QemuVMMap) ToQemuVMMapOutput() QemuVMMapOutput { + return i.ToQemuVMMapOutputWithContext(context.Background()) +} + +func (i QemuVMMap) ToQemuVMMapOutputWithContext(ctx context.Context) QemuVMMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(QemuVMMapOutput) +} + +type QemuVMOutput struct{ *pulumi.OutputState } + +func (QemuVMOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QemuVM)(nil)) +} + +func (o QemuVMOutput) ToQemuVMOutput() QemuVMOutput { + return o +} + +func (o QemuVMOutput) ToQemuVMOutputWithContext(ctx context.Context) QemuVMOutput { + return o +} + +func (o QemuVMOutput) ToQemuVMPtrOutput() QemuVMPtrOutput { + return o.ToQemuVMPtrOutputWithContext(context.Background()) +} + +func (o QemuVMOutput) ToQemuVMPtrOutputWithContext(ctx context.Context) QemuVMPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QemuVM) *QemuVM { + return &v + }).(QemuVMPtrOutput) +} + +type QemuVMPtrOutput struct{ *pulumi.OutputState } + +func (QemuVMPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QemuVM)(nil)) +} + +func (o QemuVMPtrOutput) ToQemuVMPtrOutput() QemuVMPtrOutput { + return o +} + +func (o QemuVMPtrOutput) ToQemuVMPtrOutputWithContext(ctx context.Context) QemuVMPtrOutput { + return o +} + +func (o QemuVMPtrOutput) Elem() QemuVMOutput { + return o.ApplyT(func(v *QemuVM) QemuVM { + if v != nil { + return *v + } + var ret QemuVM + return ret + }).(QemuVMOutput) +} + +type QemuVMArrayOutput struct{ *pulumi.OutputState } + +func (QemuVMArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]QemuVM)(nil)) +} + +func (o QemuVMArrayOutput) ToQemuVMArrayOutput() QemuVMArrayOutput { + return o +} + +func (o QemuVMArrayOutput) ToQemuVMArrayOutputWithContext(ctx context.Context) QemuVMArrayOutput { + return o +} + +func (o QemuVMArrayOutput) Index(i pulumi.IntInput) QemuVMOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) QemuVM { + return vs[0].([]QemuVM)[vs[1].(int)] + }).(QemuVMOutput) +} + +type QemuVMMapOutput struct{ *pulumi.OutputState } + +func (QemuVMMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]QemuVM)(nil)) +} + +func (o QemuVMMapOutput) ToQemuVMMapOutput() QemuVMMapOutput { + return o +} + +func (o QemuVMMapOutput) ToQemuVMMapOutputWithContext(ctx context.Context) QemuVMMapOutput { + return o +} + +func (o QemuVMMapOutput) MapIndex(k pulumi.StringInput) QemuVMOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) QemuVM { + return vs[0].(map[string]QemuVM)[vs[1].(string)] + }).(QemuVMOutput) +} + +func init() { + pulumi.RegisterOutputType(QemuVMOutput{}) + pulumi.RegisterOutputType(QemuVMPtrOutput{}) + pulumi.RegisterOutputType(QemuVMArrayOutput{}) + pulumi.RegisterOutputType(QemuVMMapOutput{}) +} diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index 2ae4f68..02e4664 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -4,56 +4,148 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; -let __config = new pulumi.Config("proxmoxve"); +declare var exports: any; +const __config = new pulumi.Config("proxmoxve"); /** * API TokenID e.g. root@pam!mytesttoken */ -export let pmApiTokenId: string | undefined = __config.get("pmApiTokenId"); +export declare const pmApiTokenId: string | undefined; +Object.defineProperty(exports, "pmApiTokenId", { + get() { + return __config.get("pmApiTokenId"); + }, + enumerable: true, +}); + /** * The secret uuid corresponding to a TokenID */ -export let pmApiTokenSecret: string | undefined = __config.get("pmApiTokenSecret"); +export declare const pmApiTokenSecret: string | undefined; +Object.defineProperty(exports, "pmApiTokenSecret", { + get() { + return __config.get("pmApiTokenSecret"); + }, + enumerable: true, +}); + /** * https://host.fqdn:8006/api2/json */ -export let pmApiUrl: string | undefined = __config.get("pmApiUrl"); +export declare const pmApiUrl: string | undefined; +Object.defineProperty(exports, "pmApiUrl", { + get() { + return __config.get("pmApiUrl"); + }, + enumerable: true, +}); + /** * By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of * VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set * this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of * the danger in doing so. */ -export let pmDangerouslyIgnoreUnknownAttributes: boolean | undefined = __config.getObject("pmDangerouslyIgnoreUnknownAttributes"); +export declare const pmDangerouslyIgnoreUnknownAttributes: boolean | undefined; +Object.defineProperty(exports, "pmDangerouslyIgnoreUnknownAttributes", { + get() { + return __config.getObject("pmDangerouslyIgnoreUnknownAttributes"); + }, + enumerable: true, +}); + /** * Enable provider logging to get proxmox API logs */ -export let pmLogEnable: boolean | undefined = __config.getObject("pmLogEnable"); +export declare const pmLogEnable: boolean | undefined; +Object.defineProperty(exports, "pmLogEnable", { + get() { + return __config.getObject("pmLogEnable"); + }, + enumerable: true, +}); + /** * Write logs to this specific file */ -export let pmLogFile: string | undefined = __config.get("pmLogFile"); +export declare const pmLogFile: string | undefined; +Object.defineProperty(exports, "pmLogFile", { + get() { + return __config.get("pmLogFile"); + }, + enumerable: true, +}); + /** * Configure the logging level to display; trace, debug, info, warn, etc */ -export let pmLogLevels: {[key: string]: any} | undefined = __config.getObject<{[key: string]: any}>("pmLogLevels"); +export declare const pmLogLevels: {[key: string]: any} | undefined; +Object.defineProperty(exports, "pmLogLevels", { + get() { + return __config.getObject<{[key: string]: any}>("pmLogLevels"); + }, + enumerable: true, +}); + /** * OTP 2FA code (if required) */ -export let pmOtp: string | undefined = __config.get("pmOtp"); -export let pmParallel: number | undefined = __config.getObject("pmParallel"); +export declare const pmOtp: string | undefined; +Object.defineProperty(exports, "pmOtp", { + get() { + return __config.get("pmOtp"); + }, + enumerable: true, +}); + +export declare const pmParallel: number | undefined; +Object.defineProperty(exports, "pmParallel", { + get() { + return __config.getObject("pmParallel"); + }, + enumerable: true, +}); + /** * Password to authenticate into proxmox */ -export let pmPassword: string | undefined = __config.get("pmPassword"); -export let pmTimeout: number | undefined = __config.getObject("pmTimeout"); +export declare const pmPassword: string | undefined; +Object.defineProperty(exports, "pmPassword", { + get() { + return __config.get("pmPassword"); + }, + enumerable: true, +}); + +export declare const pmTimeout: number | undefined; +Object.defineProperty(exports, "pmTimeout", { + get() { + return __config.getObject("pmTimeout"); + }, + enumerable: true, +}); + /** * By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on * servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that * issued the proxmox api url's certificate. */ -export let pmTlsInsecure: boolean | undefined = __config.getObject("pmTlsInsecure"); +export declare const pmTlsInsecure: boolean | undefined; +Object.defineProperty(exports, "pmTlsInsecure", { + get() { + return __config.getObject("pmTlsInsecure"); + }, + enumerable: true, +}); + /** * Username e.g. myuser or myuser@pam */ -export let pmUser: string | undefined = __config.get("pmUser"); +export declare const pmUser: string | undefined; +Object.defineProperty(exports, "pmUser", { + get() { + return __config.get("pmUser"); + }, + enumerable: true, +}); + diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index c82af3d..122f9be 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -1,6 +1,9 @@ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + // Export members: export * from "./lxccontainer"; export * from "./lxcdisk"; @@ -10,4 +13,44 @@ export * from "./qemuVM"; // Export sub-modules: import * as config from "./config"; import * as types from "./types"; -export {config, types}; + +export { + config, + types, +}; + +// Import resources to register: +import { LXCContainer } from "./lxccontainer"; +import { LXCDisk } from "./lxcdisk"; +import { QemuVM } from "./qemuVM"; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "proxmoxve:index/lXCContainer:LXCContainer": + return new LXCContainer(name, undefined, { urn }) + case "proxmoxve:index/lXCDisk:LXCDisk": + return new LXCDisk(name, undefined, { urn }) + case "proxmoxve:index/qemuVM:QemuVM": + return new QemuVM(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("proxmoxve", "index/lXCContainer", _module) +pulumi.runtime.registerResourceModule("proxmoxve", "index/lXCDisk", _module) +pulumi.runtime.registerResourceModule("proxmoxve", "index/qemuVM", _module) + +import { Provider } from "./provider"; + +pulumi.runtime.registerResourcePackage("proxmoxve", { + version: utilities.getVersion(), + constructProvider: (name: string, type: string, urn: string): pulumi.ProviderResource => { + if (type !== "pulumi:providers:proxmoxve") { + throw new Error(`unknown provider type ${type}`); + } + return new Provider(name, undefined, { urn }); + }, +}); diff --git a/sdk/nodejs/lxccontainer.ts b/sdk/nodejs/lxccontainer.ts index ed38828..94ffd1f 100644 --- a/sdk/nodejs/lxccontainer.ts +++ b/sdk/nodejs/lxccontainer.ts @@ -2,8 +2,7 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; -import * as inputs from "./types/input"; -import * as outputs from "./types/output"; +import { input as inputs, output as outputs } from "./types"; import * as utilities from "./utilities"; export class LXCContainer extends pulumi.CustomResource { @@ -84,7 +83,8 @@ export class LXCContainer extends pulumi.CustomResource { constructor(name: string, args: LXCContainerArgs, opts?: pulumi.CustomResourceOptions) constructor(name: string, argsOrState?: LXCContainerArgs | LXCContainerState, opts?: pulumi.CustomResourceOptions) { let inputs: pulumi.Inputs = {}; - if (opts && opts.id) { + opts = opts || {}; + if (opts.id) { const state = argsOrState as LXCContainerState | undefined; inputs["arch"] = state ? state.arch : undefined; inputs["bwlimit"] = state ? state.bwlimit : undefined; @@ -127,7 +127,7 @@ export class LXCContainer extends pulumi.CustomResource { inputs["vmid"] = state ? state.vmid : undefined; } else { const args = argsOrState as LXCContainerArgs | undefined; - if (!args || args.targetNode === undefined) { + if ((!args || args.targetNode === undefined) && !opts.urn) { throw new Error("Missing required property 'targetNode'"); } inputs["arch"] = args ? args.arch : undefined; @@ -170,12 +170,8 @@ export class LXCContainer extends pulumi.CustomResource { inputs["unuseds"] = args ? args.unuseds : undefined; inputs["vmid"] = args ? args.vmid : undefined; } - if (!opts) { - opts = {} - } - if (!opts.version) { - opts.version = utilities.getVersion(); + opts = pulumi.mergeOptions(opts, { version: utilities.getVersion()}); } super(LXCContainer.__pulumiType, name, inputs, opts); } @@ -185,88 +181,88 @@ export class LXCContainer extends pulumi.CustomResource { * Input properties used for looking up and filtering LXCContainer resources. */ export interface LXCContainerState { - readonly arch?: pulumi.Input; - readonly bwlimit?: pulumi.Input; - readonly cmode?: pulumi.Input; - readonly console?: pulumi.Input; - readonly cores?: pulumi.Input; - readonly cpulimit?: pulumi.Input; - readonly cpuunits?: pulumi.Input; - readonly description?: pulumi.Input; - readonly features?: pulumi.Input; - readonly force?: pulumi.Input; - readonly hookscript?: pulumi.Input; - readonly hostname?: pulumi.Input; - readonly ignoreUnpackErrors?: pulumi.Input; - readonly lock?: pulumi.Input; - readonly memory?: pulumi.Input; - readonly mountpoints?: pulumi.Input[]>; - readonly nameserver?: pulumi.Input; - readonly networks?: pulumi.Input[]>; - readonly onboot?: pulumi.Input; - readonly ostemplate?: pulumi.Input; - readonly ostype?: pulumi.Input; - readonly password?: pulumi.Input; - readonly pool?: pulumi.Input; - readonly protection?: pulumi.Input; - readonly restore?: pulumi.Input; - readonly rootfs?: pulumi.Input; - readonly searchdomain?: pulumi.Input; - readonly sshPublicKeys?: pulumi.Input; - readonly start?: pulumi.Input; - readonly startup?: pulumi.Input; - readonly swap?: pulumi.Input; - readonly tags?: pulumi.Input; - readonly targetNode?: pulumi.Input; - readonly template?: pulumi.Input; - readonly tty?: pulumi.Input; - readonly unique?: pulumi.Input; - readonly unprivileged?: pulumi.Input; - readonly unuseds?: pulumi.Input[]>; - readonly vmid?: pulumi.Input; + arch?: pulumi.Input; + bwlimit?: pulumi.Input; + cmode?: pulumi.Input; + console?: pulumi.Input; + cores?: pulumi.Input; + cpulimit?: pulumi.Input; + cpuunits?: pulumi.Input; + description?: pulumi.Input; + features?: pulumi.Input; + force?: pulumi.Input; + hookscript?: pulumi.Input; + hostname?: pulumi.Input; + ignoreUnpackErrors?: pulumi.Input; + lock?: pulumi.Input; + memory?: pulumi.Input; + mountpoints?: pulumi.Input[]>; + nameserver?: pulumi.Input; + networks?: pulumi.Input[]>; + onboot?: pulumi.Input; + ostemplate?: pulumi.Input; + ostype?: pulumi.Input; + password?: pulumi.Input; + pool?: pulumi.Input; + protection?: pulumi.Input; + restore?: pulumi.Input; + rootfs?: pulumi.Input; + searchdomain?: pulumi.Input; + sshPublicKeys?: pulumi.Input; + start?: pulumi.Input; + startup?: pulumi.Input; + swap?: pulumi.Input; + tags?: pulumi.Input; + targetNode?: pulumi.Input; + template?: pulumi.Input; + tty?: pulumi.Input; + unique?: pulumi.Input; + unprivileged?: pulumi.Input; + unuseds?: pulumi.Input[]>; + vmid?: pulumi.Input; } /** * The set of arguments for constructing a LXCContainer resource. */ export interface LXCContainerArgs { - readonly arch?: pulumi.Input; - readonly bwlimit?: pulumi.Input; - readonly cmode?: pulumi.Input; - readonly console?: pulumi.Input; - readonly cores?: pulumi.Input; - readonly cpulimit?: pulumi.Input; - readonly cpuunits?: pulumi.Input; - readonly description?: pulumi.Input; - readonly features?: pulumi.Input; - readonly force?: pulumi.Input; - readonly hookscript?: pulumi.Input; - readonly hostname?: pulumi.Input; - readonly ignoreUnpackErrors?: pulumi.Input; - readonly lock?: pulumi.Input; - readonly memory?: pulumi.Input; - readonly mountpoints?: pulumi.Input[]>; - readonly nameserver?: pulumi.Input; - readonly networks?: pulumi.Input[]>; - readonly onboot?: pulumi.Input; - readonly ostemplate?: pulumi.Input; - readonly ostype?: pulumi.Input; - readonly password?: pulumi.Input; - readonly pool?: pulumi.Input; - readonly protection?: pulumi.Input; - readonly restore?: pulumi.Input; - readonly rootfs?: pulumi.Input; - readonly searchdomain?: pulumi.Input; - readonly sshPublicKeys?: pulumi.Input; - readonly start?: pulumi.Input; - readonly startup?: pulumi.Input; - readonly swap?: pulumi.Input; - readonly tags?: pulumi.Input; - readonly targetNode: pulumi.Input; - readonly template?: pulumi.Input; - readonly tty?: pulumi.Input; - readonly unique?: pulumi.Input; - readonly unprivileged?: pulumi.Input; - readonly unuseds?: pulumi.Input[]>; - readonly vmid?: pulumi.Input; + arch?: pulumi.Input; + bwlimit?: pulumi.Input; + cmode?: pulumi.Input; + console?: pulumi.Input; + cores?: pulumi.Input; + cpulimit?: pulumi.Input; + cpuunits?: pulumi.Input; + description?: pulumi.Input; + features?: pulumi.Input; + force?: pulumi.Input; + hookscript?: pulumi.Input; + hostname?: pulumi.Input; + ignoreUnpackErrors?: pulumi.Input; + lock?: pulumi.Input; + memory?: pulumi.Input; + mountpoints?: pulumi.Input[]>; + nameserver?: pulumi.Input; + networks?: pulumi.Input[]>; + onboot?: pulumi.Input; + ostemplate?: pulumi.Input; + ostype?: pulumi.Input; + password?: pulumi.Input; + pool?: pulumi.Input; + protection?: pulumi.Input; + restore?: pulumi.Input; + rootfs?: pulumi.Input; + searchdomain?: pulumi.Input; + sshPublicKeys?: pulumi.Input; + start?: pulumi.Input; + startup?: pulumi.Input; + swap?: pulumi.Input; + tags?: pulumi.Input; + targetNode: pulumi.Input; + template?: pulumi.Input; + tty?: pulumi.Input; + unique?: pulumi.Input; + unprivileged?: pulumi.Input; + unuseds?: pulumi.Input[]>; + vmid?: pulumi.Input; } diff --git a/sdk/nodejs/lxcdisk.ts b/sdk/nodejs/lxcdisk.ts index a20ee1a..56ee03c 100644 --- a/sdk/nodejs/lxcdisk.ts +++ b/sdk/nodejs/lxcdisk.ts @@ -2,8 +2,7 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; -import * as inputs from "./types/input"; -import * as outputs from "./types/output"; +import { input as inputs, output as outputs } from "./types"; import * as utilities from "./utilities"; export class LXCDisk extends pulumi.CustomResource { @@ -57,7 +56,8 @@ export class LXCDisk extends pulumi.CustomResource { constructor(name: string, args: LXCDiskArgs, opts?: pulumi.CustomResourceOptions) constructor(name: string, argsOrState?: LXCDiskArgs | LXCDiskState, opts?: pulumi.CustomResourceOptions) { let inputs: pulumi.Inputs = {}; - if (opts && opts.id) { + opts = opts || {}; + if (opts.id) { const state = argsOrState as LXCDiskState | undefined; inputs["acl"] = state ? state.acl : undefined; inputs["backup"] = state ? state.backup : undefined; @@ -73,19 +73,19 @@ export class LXCDisk extends pulumi.CustomResource { inputs["volume"] = state ? state.volume : undefined; } else { const args = argsOrState as LXCDiskArgs | undefined; - if (!args || args.container === undefined) { + if ((!args || args.container === undefined) && !opts.urn) { throw new Error("Missing required property 'container'"); } - if (!args || args.mp === undefined) { + if ((!args || args.mp === undefined) && !opts.urn) { throw new Error("Missing required property 'mp'"); } - if (!args || args.size === undefined) { + if ((!args || args.size === undefined) && !opts.urn) { throw new Error("Missing required property 'size'"); } - if (!args || args.slot === undefined) { + if ((!args || args.slot === undefined) && !opts.urn) { throw new Error("Missing required property 'slot'"); } - if (!args || args.storage === undefined) { + if ((!args || args.storage === undefined) && !opts.urn) { throw new Error("Missing required property 'storage'"); } inputs["acl"] = args ? args.acl : undefined; @@ -101,12 +101,8 @@ export class LXCDisk extends pulumi.CustomResource { inputs["storage"] = args ? args.storage : undefined; inputs["volume"] = args ? args.volume : undefined; } - if (!opts) { - opts = {} - } - if (!opts.version) { - opts.version = utilities.getVersion(); + opts = pulumi.mergeOptions(opts, { version: utilities.getVersion()}); } super(LXCDisk.__pulumiType, name, inputs, opts); } @@ -116,34 +112,34 @@ export class LXCDisk extends pulumi.CustomResource { * Input properties used for looking up and filtering LXCDisk resources. */ export interface LXCDiskState { - readonly acl?: pulumi.Input; - readonly backup?: pulumi.Input; - readonly container?: pulumi.Input; - readonly mountoptions?: pulumi.Input; - readonly mp?: pulumi.Input; - readonly quota?: pulumi.Input; - readonly replicate?: pulumi.Input; - readonly shared?: pulumi.Input; - readonly size?: pulumi.Input; - readonly slot?: pulumi.Input; - readonly storage?: pulumi.Input; - readonly volume?: pulumi.Input; + acl?: pulumi.Input; + backup?: pulumi.Input; + container?: pulumi.Input; + mountoptions?: pulumi.Input; + mp?: pulumi.Input; + quota?: pulumi.Input; + replicate?: pulumi.Input; + shared?: pulumi.Input; + size?: pulumi.Input; + slot?: pulumi.Input; + storage?: pulumi.Input; + volume?: pulumi.Input; } /** * The set of arguments for constructing a LXCDisk resource. */ export interface LXCDiskArgs { - readonly acl?: pulumi.Input; - readonly backup?: pulumi.Input; - readonly container: pulumi.Input; - readonly mountoptions?: pulumi.Input; - readonly mp: pulumi.Input; - readonly quota?: pulumi.Input; - readonly replicate?: pulumi.Input; - readonly shared?: pulumi.Input; - readonly size: pulumi.Input; - readonly slot: pulumi.Input; - readonly storage: pulumi.Input; - readonly volume?: pulumi.Input; + acl?: pulumi.Input; + backup?: pulumi.Input; + container: pulumi.Input; + mountoptions?: pulumi.Input; + mp: pulumi.Input; + quota?: pulumi.Input; + replicate?: pulumi.Input; + shared?: pulumi.Input; + size: pulumi.Input; + slot: pulumi.Input; + storage: pulumi.Input; + volume?: pulumi.Input; } diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json index 469eef1..07ef12c 100644 --- a/sdk/nodejs/package.json +++ b/sdk/nodejs/package.json @@ -13,13 +13,14 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^2.0.0" + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { "@types/mime": "^2.0.0", - "@types/node": "^8.0.25" + "@types/node": "^10.0.0", + "typescript": "^4.3.5" }, "pulumi": { "resource": true } -} \ No newline at end of file +} diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 2555c92..6e1b390 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -25,6 +25,34 @@ export class Provider extends pulumi.ProviderResource { return obj['__pulumiType'] === Provider.__pulumiType; } + /** + * API TokenID e.g. root@pam!mytesttoken + */ + public readonly pmApiTokenId!: pulumi.Output; + /** + * The secret uuid corresponding to a TokenID + */ + public readonly pmApiTokenSecret!: pulumi.Output; + /** + * https://host.fqdn:8006/api2/json + */ + public readonly pmApiUrl!: pulumi.Output; + /** + * Write logs to this specific file + */ + public readonly pmLogFile!: pulumi.Output; + /** + * OTP 2FA code (if required) + */ + public readonly pmOtp!: pulumi.Output; + /** + * Password to authenticate into proxmox + */ + public readonly pmPassword!: pulumi.Output; + /** + * Username e.g. myuser or myuser@pam + */ + public readonly pmUser!: pulumi.Output; /** * Create a Provider resource with the given unique name, arguments, and options. @@ -35,8 +63,9 @@ export class Provider extends pulumi.ProviderResource { */ constructor(name: string, args: ProviderArgs, opts?: pulumi.ResourceOptions) { let inputs: pulumi.Inputs = {}; + opts = opts || {}; { - if (!args || args.pmApiUrl === undefined) { + if ((!args || args.pmApiUrl === undefined) && !opts.urn) { throw new Error("Missing required property 'pmApiUrl'"); } inputs["pmApiTokenId"] = args ? args.pmApiTokenId : undefined; @@ -53,12 +82,8 @@ export class Provider extends pulumi.ProviderResource { inputs["pmTlsInsecure"] = pulumi.output(args ? args.pmTlsInsecure : undefined).apply(JSON.stringify); inputs["pmUser"] = args ? args.pmUser : undefined; } - if (!opts) { - opts = {} - } - if (!opts.version) { - opts.version = utilities.getVersion(); + opts = pulumi.mergeOptions(opts, { version: utilities.getVersion()}); } super(Provider.__pulumiType, name, inputs, opts); } @@ -71,52 +96,52 @@ export interface ProviderArgs { /** * API TokenID e.g. root@pam!mytesttoken */ - readonly pmApiTokenId?: pulumi.Input; + pmApiTokenId?: pulumi.Input; /** * The secret uuid corresponding to a TokenID */ - readonly pmApiTokenSecret?: pulumi.Input; + pmApiTokenSecret?: pulumi.Input; /** * https://host.fqdn:8006/api2/json */ - readonly pmApiUrl: pulumi.Input; + pmApiUrl: pulumi.Input; /** * By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of * VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set * this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of * the danger in doing so. */ - readonly pmDangerouslyIgnoreUnknownAttributes?: pulumi.Input; + pmDangerouslyIgnoreUnknownAttributes?: pulumi.Input; /** * Enable provider logging to get proxmox API logs */ - readonly pmLogEnable?: pulumi.Input; + pmLogEnable?: pulumi.Input; /** * Write logs to this specific file */ - readonly pmLogFile?: pulumi.Input; + pmLogFile?: pulumi.Input; /** * Configure the logging level to display; trace, debug, info, warn, etc */ - readonly pmLogLevels?: pulumi.Input<{[key: string]: any}>; + pmLogLevels?: pulumi.Input<{[key: string]: any}>; /** * OTP 2FA code (if required) */ - readonly pmOtp?: pulumi.Input; - readonly pmParallel?: pulumi.Input; + pmOtp?: pulumi.Input; + pmParallel?: pulumi.Input; /** * Password to authenticate into proxmox */ - readonly pmPassword?: pulumi.Input; - readonly pmTimeout?: pulumi.Input; + pmPassword?: pulumi.Input; + pmTimeout?: pulumi.Input; /** * By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on * servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that * issued the proxmox api url's certificate. */ - readonly pmTlsInsecure?: pulumi.Input; + pmTlsInsecure?: pulumi.Input; /** * Username e.g. myuser or myuser@pam */ - readonly pmUser?: pulumi.Input; + pmUser?: pulumi.Input; } diff --git a/sdk/nodejs/qemuVM.ts b/sdk/nodejs/qemuVM.ts index f69e684..220c93c 100644 --- a/sdk/nodejs/qemuVM.ts +++ b/sdk/nodejs/qemuVM.ts @@ -2,8 +2,7 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; -import * as inputs from "./types/input"; -import * as outputs from "./types/output"; +import { input as inputs, output as outputs } from "./types"; import * as utilities from "./utilities"; export class QemuVM extends pulumi.CustomResource { @@ -138,7 +137,8 @@ export class QemuVM extends pulumi.CustomResource { constructor(name: string, args: QemuVMArgs, opts?: pulumi.CustomResourceOptions) constructor(name: string, argsOrState?: QemuVMArgs | QemuVMState, opts?: pulumi.CustomResourceOptions) { let inputs: pulumi.Inputs = {}; - if (opts && opts.id) { + opts = opts || {}; + if (opts.id) { const state = argsOrState as QemuVMState | undefined; inputs["additionalWait"] = state ? state.additionalWait : undefined; inputs["agent"] = state ? state.agent : undefined; @@ -208,7 +208,7 @@ export class QemuVM extends pulumi.CustomResource { inputs["vmid"] = state ? state.vmid : undefined; } else { const args = argsOrState as QemuVMArgs | undefined; - if (!args || args.targetNode === undefined) { + if ((!args || args.targetNode === undefined) && !opts.urn) { throw new Error("Missing required property 'targetNode'"); } inputs["additionalWait"] = args ? args.additionalWait : undefined; @@ -278,12 +278,8 @@ export class QemuVM extends pulumi.CustomResource { inputs["sshPort"] = undefined /*out*/; inputs["unusedDisks"] = undefined /*out*/; } - if (!opts) { - opts = {} - } - if (!opts.version) { - opts.version = utilities.getVersion(); + opts = pulumi.mergeOptions(opts, { version: utilities.getVersion()}); } super(QemuVM.__pulumiType, name, inputs, opts); } @@ -293,185 +289,185 @@ export class QemuVM extends pulumi.CustomResource { * Input properties used for looking up and filtering QemuVM resources. */ export interface QemuVMState { - readonly additionalWait?: pulumi.Input; - readonly agent?: pulumi.Input; - readonly args?: pulumi.Input; - readonly balloon?: pulumi.Input; - readonly bios?: pulumi.Input; - readonly boot?: pulumi.Input; - readonly bootdisk?: pulumi.Input; + additionalWait?: pulumi.Input; + agent?: pulumi.Input; + args?: pulumi.Input; + balloon?: pulumi.Input; + bios?: pulumi.Input; + boot?: pulumi.Input; + bootdisk?: pulumi.Input; /** * @deprecated Use `network.bridge` instead */ - readonly bridge?: pulumi.Input; - readonly ciWait?: pulumi.Input; - readonly cicustom?: pulumi.Input; - readonly cipassword?: pulumi.Input; - readonly ciuser?: pulumi.Input; - readonly clone?: pulumi.Input; - readonly cloneWait?: pulumi.Input; - readonly cloudinitCdromStorage?: pulumi.Input; - readonly cores?: pulumi.Input; - readonly cpu?: pulumi.Input; - readonly defaultIpv4Address?: pulumi.Input; - readonly defineConnectionInfo?: pulumi.Input; - readonly desc?: pulumi.Input; + bridge?: pulumi.Input; + ciWait?: pulumi.Input; + cicustom?: pulumi.Input; + cipassword?: pulumi.Input; + ciuser?: pulumi.Input; + clone?: pulumi.Input; + cloneWait?: pulumi.Input; + cloudinitCdromStorage?: pulumi.Input; + cores?: pulumi.Input; + cpu?: pulumi.Input; + defaultIpv4Address?: pulumi.Input; + defineConnectionInfo?: pulumi.Input; + desc?: pulumi.Input; /** * @deprecated Use `disk.size` instead */ - readonly diskGb?: pulumi.Input; - readonly disks?: pulumi.Input[]>; - readonly forceCreate?: pulumi.Input; - readonly forceRecreateOnChangeOf?: pulumi.Input; - readonly fullClone?: pulumi.Input; - readonly guestAgentReadyTimeout?: pulumi.Input; - readonly hastate?: pulumi.Input; - readonly hotplug?: pulumi.Input; - readonly ipconfig0?: pulumi.Input; - readonly ipconfig1?: pulumi.Input; - readonly ipconfig2?: pulumi.Input; - readonly iso?: pulumi.Input; - readonly kvm?: pulumi.Input; + diskGb?: pulumi.Input; + disks?: pulumi.Input[]>; + forceCreate?: pulumi.Input; + forceRecreateOnChangeOf?: pulumi.Input; + fullClone?: pulumi.Input; + guestAgentReadyTimeout?: pulumi.Input; + hastate?: pulumi.Input; + hotplug?: pulumi.Input; + ipconfig0?: pulumi.Input; + ipconfig1?: pulumi.Input; + ipconfig2?: pulumi.Input; + iso?: pulumi.Input; + kvm?: pulumi.Input; /** * @deprecated Use `network.macaddr` to access the auto generated MAC address */ - readonly mac?: pulumi.Input; - readonly memory?: pulumi.Input; - readonly name?: pulumi.Input; - readonly nameserver?: pulumi.Input; - readonly networks?: pulumi.Input[]>; + mac?: pulumi.Input; + memory?: pulumi.Input; + name?: pulumi.Input; + nameserver?: pulumi.Input; + networks?: pulumi.Input[]>; /** * @deprecated Use `network` instead */ - readonly nic?: pulumi.Input; - readonly numa?: pulumi.Input; - readonly onboot?: pulumi.Input; - readonly osNetworkConfig?: pulumi.Input; - readonly osType?: pulumi.Input; - readonly pool?: pulumi.Input; - readonly preprovision?: pulumi.Input; - readonly qemuOs?: pulumi.Input; + nic?: pulumi.Input; + numa?: pulumi.Input; + onboot?: pulumi.Input; + osNetworkConfig?: pulumi.Input; + osType?: pulumi.Input; + pool?: pulumi.Input; + preprovision?: pulumi.Input; + qemuOs?: pulumi.Input; /** * Internal variable, true if any of the modified parameters require a reboot to take effect. */ - readonly rebootRequired?: pulumi.Input; - readonly scsihw?: pulumi.Input; - readonly searchdomain?: pulumi.Input; - readonly serials?: pulumi.Input[]>; - readonly sockets?: pulumi.Input; - readonly sshForwardIp?: pulumi.Input; - readonly sshHost?: pulumi.Input; - readonly sshPort?: pulumi.Input; - readonly sshPrivateKey?: pulumi.Input; - readonly sshUser?: pulumi.Input; - readonly sshkeys?: pulumi.Input; + rebootRequired?: pulumi.Input; + scsihw?: pulumi.Input; + searchdomain?: pulumi.Input; + serials?: pulumi.Input[]>; + sockets?: pulumi.Input; + sshForwardIp?: pulumi.Input; + sshHost?: pulumi.Input; + sshPort?: pulumi.Input; + sshPrivateKey?: pulumi.Input; + sshUser?: pulumi.Input; + sshkeys?: pulumi.Input; /** * @deprecated Use `disk.storage` instead */ - readonly storage?: pulumi.Input; + storage?: pulumi.Input; /** * @deprecated Use `disk.type` instead */ - readonly storageType?: pulumi.Input; - readonly tags?: pulumi.Input; - readonly targetNode?: pulumi.Input; + storageType?: pulumi.Input; + tags?: pulumi.Input; + targetNode?: pulumi.Input; /** * Record unused disks in proxmox. This is intended to be read-only for now. */ - readonly unusedDisks?: pulumi.Input[]>; - readonly vcpus?: pulumi.Input; - readonly vgas?: pulumi.Input[]>; + unusedDisks?: pulumi.Input[]>; + vcpus?: pulumi.Input; + vgas?: pulumi.Input[]>; /** * @deprecated Use `network.tag` instead */ - readonly vlan?: pulumi.Input; - readonly vmid?: pulumi.Input; + vlan?: pulumi.Input; + vmid?: pulumi.Input; } /** * The set of arguments for constructing a QemuVM resource. */ export interface QemuVMArgs { - readonly additionalWait?: pulumi.Input; - readonly agent?: pulumi.Input; - readonly args?: pulumi.Input; - readonly balloon?: pulumi.Input; - readonly bios?: pulumi.Input; - readonly boot?: pulumi.Input; - readonly bootdisk?: pulumi.Input; + additionalWait?: pulumi.Input; + agent?: pulumi.Input; + args?: pulumi.Input; + balloon?: pulumi.Input; + bios?: pulumi.Input; + boot?: pulumi.Input; + bootdisk?: pulumi.Input; /** * @deprecated Use `network.bridge` instead */ - readonly bridge?: pulumi.Input; - readonly ciWait?: pulumi.Input; - readonly cicustom?: pulumi.Input; - readonly cipassword?: pulumi.Input; - readonly ciuser?: pulumi.Input; - readonly clone?: pulumi.Input; - readonly cloneWait?: pulumi.Input; - readonly cloudinitCdromStorage?: pulumi.Input; - readonly cores?: pulumi.Input; - readonly cpu?: pulumi.Input; - readonly defineConnectionInfo?: pulumi.Input; - readonly desc?: pulumi.Input; + bridge?: pulumi.Input; + ciWait?: pulumi.Input; + cicustom?: pulumi.Input; + cipassword?: pulumi.Input; + ciuser?: pulumi.Input; + clone?: pulumi.Input; + cloneWait?: pulumi.Input; + cloudinitCdromStorage?: pulumi.Input; + cores?: pulumi.Input; + cpu?: pulumi.Input; + defineConnectionInfo?: pulumi.Input; + desc?: pulumi.Input; /** * @deprecated Use `disk.size` instead */ - readonly diskGb?: pulumi.Input; - readonly disks?: pulumi.Input[]>; - readonly forceCreate?: pulumi.Input; - readonly forceRecreateOnChangeOf?: pulumi.Input; - readonly fullClone?: pulumi.Input; - readonly guestAgentReadyTimeout?: pulumi.Input; - readonly hastate?: pulumi.Input; - readonly hotplug?: pulumi.Input; - readonly ipconfig0?: pulumi.Input; - readonly ipconfig1?: pulumi.Input; - readonly ipconfig2?: pulumi.Input; - readonly iso?: pulumi.Input; - readonly kvm?: pulumi.Input; + diskGb?: pulumi.Input; + disks?: pulumi.Input[]>; + forceCreate?: pulumi.Input; + forceRecreateOnChangeOf?: pulumi.Input; + fullClone?: pulumi.Input; + guestAgentReadyTimeout?: pulumi.Input; + hastate?: pulumi.Input; + hotplug?: pulumi.Input; + ipconfig0?: pulumi.Input; + ipconfig1?: pulumi.Input; + ipconfig2?: pulumi.Input; + iso?: pulumi.Input; + kvm?: pulumi.Input; /** * @deprecated Use `network.macaddr` to access the auto generated MAC address */ - readonly mac?: pulumi.Input; - readonly memory?: pulumi.Input; - readonly name?: pulumi.Input; - readonly nameserver?: pulumi.Input; - readonly networks?: pulumi.Input[]>; + mac?: pulumi.Input; + memory?: pulumi.Input; + name?: pulumi.Input; + nameserver?: pulumi.Input; + networks?: pulumi.Input[]>; /** * @deprecated Use `network` instead */ - readonly nic?: pulumi.Input; - readonly numa?: pulumi.Input; - readonly onboot?: pulumi.Input; - readonly osNetworkConfig?: pulumi.Input; - readonly osType?: pulumi.Input; - readonly pool?: pulumi.Input; - readonly preprovision?: pulumi.Input; - readonly qemuOs?: pulumi.Input; - readonly scsihw?: pulumi.Input; - readonly searchdomain?: pulumi.Input; - readonly serials?: pulumi.Input[]>; - readonly sockets?: pulumi.Input; - readonly sshForwardIp?: pulumi.Input; - readonly sshPrivateKey?: pulumi.Input; - readonly sshUser?: pulumi.Input; - readonly sshkeys?: pulumi.Input; + nic?: pulumi.Input; + numa?: pulumi.Input; + onboot?: pulumi.Input; + osNetworkConfig?: pulumi.Input; + osType?: pulumi.Input; + pool?: pulumi.Input; + preprovision?: pulumi.Input; + qemuOs?: pulumi.Input; + scsihw?: pulumi.Input; + searchdomain?: pulumi.Input; + serials?: pulumi.Input[]>; + sockets?: pulumi.Input; + sshForwardIp?: pulumi.Input; + sshPrivateKey?: pulumi.Input; + sshUser?: pulumi.Input; + sshkeys?: pulumi.Input; /** * @deprecated Use `disk.storage` instead */ - readonly storage?: pulumi.Input; + storage?: pulumi.Input; /** * @deprecated Use `disk.type` instead */ - readonly storageType?: pulumi.Input; - readonly tags?: pulumi.Input; - readonly targetNode: pulumi.Input; - readonly vcpus?: pulumi.Input; - readonly vgas?: pulumi.Input[]>; + storageType?: pulumi.Input; + tags?: pulumi.Input; + targetNode: pulumi.Input; + vcpus?: pulumi.Input; + vgas?: pulumi.Input[]>; /** * @deprecated Use `network.tag` instead */ - readonly vlan?: pulumi.Input; - readonly vmid?: pulumi.Input; + vlan?: pulumi.Input; + vmid?: pulumi.Input; } diff --git a/sdk/nodejs/types/index.ts b/sdk/nodejs/types/index.ts index c5892e2..a6057c6 100644 --- a/sdk/nodejs/types/index.ts +++ b/sdk/nodejs/types/index.ts @@ -4,4 +4,8 @@ // Export sub-modules: import * as input from "./input"; import * as output from "./output"; -export {input, output}; + +export { + input, + output, +}; diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 3a9b2b6..ecd7a94 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2,8 +2,7 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; -import * as inputs from "../types/input"; -import * as outputs from "../types/output"; +import { input as inputs, output as outputs } from "../types"; export interface LXCContainerFeatures { fuse?: pulumi.Input; diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 03c4ffa..a62ca41 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2,8 +2,7 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; -import * as inputs from "../types/input"; -import * as outputs from "../types/output"; +import { input as inputs, output as outputs } from "../types"; export interface LXCContainerFeatures { fuse?: boolean; @@ -105,3 +104,4 @@ export interface QemuVMVga { memory?: number; type?: string; } + diff --git a/sdk/python/README.md b/sdk/python/README.md index 65b6c17..6840ac2 100644 --- a/sdk/python/README.md +++ b/sdk/python/README.md @@ -2,9 +2,9 @@ Work in Progress Pulumi Provider for use with Proxmox VE -## Installing +1. Follow the steps above to verify the program runs successfully. -This package is available in many languages in the standard packaging formats. +## Add End-to-end Testing ### Installing the Plugin 1. Download the appropriate archive file from the Releases page: @@ -14,30 +14,30 @@ This package is available in many languages in the standard packaging formats. ### Node.js (Java/TypeScript) -To use from JavaScript or TypeScript in Node.js, install using either `npm`: +1. Add code to `examples_nodejs_test.go` to call the example you created, e.g.: $ npm install @matchlighter/pulumi-proxmoxve -or `yarn`: +1. Add a similar function for each example that you want to run in an integration test. For examples written in other languages, create similar files for `examples_${LANGUAGE}_test.go`. $ yarn add @matchlighter/pulumi-proxmoxve ### Python _*(Not published. I don't have a present need for this. If you do please open an issue.)*_ -To use from Python, install using `pip`: + You can also run each test file separately via test tags: $ pip install pulumi_proxmoxve ### .NET _*(Not published. I don't have a present need for this. If you do please open an issue with some instructions for how to publish a .NET package)*_ -### Go +## Configuring CI with GitHub Actions -To use from Go, use `go get` to grab the latest version of the library +In this section, we'll add the necessary configuration to work with GitHub Actions for Pulumi's standard CI/CD workflows for providers. $ go get github.com/matchlighter/pulumi-proxmoxve/sdk/go/... -## Configuration +1. Ensure that any required secrets are present as repository-level [secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) in GitHub. These will be used by the integration tests during the CI/CD process. Provider configuration is as documented on https://github.com/Telmate/terraform-provider-proxmox diff --git a/sdk/python/pulumi_proxmoxve/__init__.py b/sdk/python/pulumi_proxmoxve/__init__.py index d32f026..d6e6be1 100644 --- a/sdk/python/pulumi_proxmoxve/__init__.py +++ b/sdk/python/pulumi_proxmoxve/__init__.py @@ -2,6 +2,8 @@ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** # *** Do not edit by hand unless you're certain you know what you are doing! *** +from . import _utilities +import typing # Export this package's modules as members: from .lxc_container import * from .lxc_disk import * @@ -11,6 +13,49 @@ from . import outputs # Make subpackages available: -from . import ( - config, +if typing.TYPE_CHECKING: + import pulumi_proxmoxve.config as __config + config = __config +else: + config = _utilities.lazy_import('pulumi_proxmoxve.config') + +_utilities.register( + resource_modules=""" +[ + { + "pkg": "proxmoxve", + "mod": "index/lXCContainer", + "fqn": "pulumi_proxmoxve", + "classes": { + "proxmoxve:index/lXCContainer:LXCContainer": "LXCContainer" + } + }, + { + "pkg": "proxmoxve", + "mod": "index/lXCDisk", + "fqn": "pulumi_proxmoxve", + "classes": { + "proxmoxve:index/lXCDisk:LXCDisk": "LXCDisk" + } + }, + { + "pkg": "proxmoxve", + "mod": "index/qemuVM", + "fqn": "pulumi_proxmoxve", + "classes": { + "proxmoxve:index/qemuVM:QemuVM": "QemuVM" + } + } +] +""", + resource_packages=""" +[ + { + "pkg": "proxmoxve", + "token": "pulumi:providers:proxmoxve", + "fqn": "pulumi_proxmoxve", + "class": "Provider" + } +] +""" ) diff --git a/sdk/python/pulumi_proxmoxve/_inputs.py b/sdk/python/pulumi_proxmoxve/_inputs.py index 79cbbb4..348a5ec 100644 --- a/sdk/python/pulumi_proxmoxve/_inputs.py +++ b/sdk/python/pulumi_proxmoxve/_inputs.py @@ -5,8 +5,8 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union -from . import _utilities, _tables +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities __all__ = [ 'LXCContainerFeaturesArgs', diff --git a/sdk/python/pulumi_proxmoxve/_tables.py b/sdk/python/pulumi_proxmoxve/_tables.py deleted file mode 100644 index 623cc42..0000000 --- a/sdk/python/pulumi_proxmoxve/_tables.py +++ /dev/null @@ -1,85 +0,0 @@ -# coding=utf-8 -# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -# *** Do not edit by hand unless you're certain you know what you are doing! *** - -SNAKE_TO_CAMEL_CASE_TABLE = { - "additional_wait": "additionalWait", - "ci_wait": "ciWait", - "clone_wait": "cloneWait", - "cloudinit_cdrom_storage": "cloudinitCdromStorage", - "default_ipv4_address": "defaultIpv4Address", - "define_connection_info": "defineConnectionInfo", - "disk_gb": "diskGb", - "force_create": "forceCreate", - "force_recreate_on_change_of": "forceRecreateOnChangeOf", - "full_clone": "fullClone", - "guest_agent_ready_timeout": "guestAgentReadyTimeout", - "ignore_unpack_errors": "ignoreUnpackErrors", - "os_network_config": "osNetworkConfig", - "os_type": "osType", - "pm_api_token_id": "pmApiTokenId", - "pm_api_token_secret": "pmApiTokenSecret", - "pm_api_url": "pmApiUrl", - "pm_dangerously_ignore_unknown_attributes": "pmDangerouslyIgnoreUnknownAttributes", - "pm_log_enable": "pmLogEnable", - "pm_log_file": "pmLogFile", - "pm_log_levels": "pmLogLevels", - "pm_otp": "pmOtp", - "pm_parallel": "pmParallel", - "pm_password": "pmPassword", - "pm_timeout": "pmTimeout", - "pm_tls_insecure": "pmTlsInsecure", - "pm_user": "pmUser", - "qemu_os": "qemuOs", - "reboot_required": "rebootRequired", - "ssh_forward_ip": "sshForwardIp", - "ssh_host": "sshHost", - "ssh_port": "sshPort", - "ssh_private_key": "sshPrivateKey", - "ssh_public_keys": "sshPublicKeys", - "ssh_user": "sshUser", - "storage_type": "storageType", - "target_node": "targetNode", - "unused_disks": "unusedDisks", -} - -CAMEL_TO_SNAKE_CASE_TABLE = { - "additionalWait": "additional_wait", - "ciWait": "ci_wait", - "cloneWait": "clone_wait", - "cloudinitCdromStorage": "cloudinit_cdrom_storage", - "defaultIpv4Address": "default_ipv4_address", - "defineConnectionInfo": "define_connection_info", - "diskGb": "disk_gb", - "forceCreate": "force_create", - "forceRecreateOnChangeOf": "force_recreate_on_change_of", - "fullClone": "full_clone", - "guestAgentReadyTimeout": "guest_agent_ready_timeout", - "ignoreUnpackErrors": "ignore_unpack_errors", - "osNetworkConfig": "os_network_config", - "osType": "os_type", - "pmApiTokenId": "pm_api_token_id", - "pmApiTokenSecret": "pm_api_token_secret", - "pmApiUrl": "pm_api_url", - "pmDangerouslyIgnoreUnknownAttributes": "pm_dangerously_ignore_unknown_attributes", - "pmLogEnable": "pm_log_enable", - "pmLogFile": "pm_log_file", - "pmLogLevels": "pm_log_levels", - "pmOtp": "pm_otp", - "pmParallel": "pm_parallel", - "pmPassword": "pm_password", - "pmTimeout": "pm_timeout", - "pmTlsInsecure": "pm_tls_insecure", - "pmUser": "pm_user", - "qemuOs": "qemu_os", - "rebootRequired": "reboot_required", - "sshForwardIp": "ssh_forward_ip", - "sshHost": "ssh_host", - "sshPort": "ssh_port", - "sshPrivateKey": "ssh_private_key", - "sshPublicKeys": "ssh_public_keys", - "sshUser": "ssh_user", - "storageType": "storage_type", - "targetNode": "target_node", - "unusedDisks": "unused_disks", -} diff --git a/sdk/python/pulumi_proxmoxve/_utilities.py b/sdk/python/pulumi_proxmoxve/_utilities.py index 829bc0c..26d44b5 100644 --- a/sdk/python/pulumi_proxmoxve/_utilities.py +++ b/sdk/python/pulumi_proxmoxve/_utilities.py @@ -3,8 +3,16 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** +import importlib.util +import inspect +import json import os import pkg_resources +import sys +import typing + +import pulumi +import pulumi.runtime from semver import VersionInfo as SemverVersion from parver import Version as PEP440Version @@ -50,7 +58,7 @@ def get_env_float(*args): return None -def get_version(): +def _get_semver_version(): # __name__ is set to the fully-qualified name of the current module, In our case, it will be # ._utilities. is the module we want to query the version for. root_package, *rest = __name__.split('.') @@ -79,5 +87,149 @@ def get_version(): # for dev builds, while semver encodes them as "prerelease" versions. In order to bridge between the two, we convert # our dev build version into a prerelease tag. This matches what all of our other packages do when constructing # their own semver string. - semver_version = SemverVersion(major=major, minor=minor, patch=patch, prerelease=prerelease) - return str(semver_version) + return SemverVersion(major=major, minor=minor, patch=patch, prerelease=prerelease) + + +# Determine the version once and cache the value, which measurably improves program performance. +_version = _get_semver_version() +_version_str = str(_version) + + +def get_version(): + return _version_str + + +def get_resource_args_opts(resource_args_type, resource_options_type, *args, **kwargs): + """ + Return the resource args and options given the *args and **kwargs of a resource's + __init__ method. + """ + + resource_args, opts = None, None + + # If the first item is the resource args type, save it and remove it from the args list. + if args and isinstance(args[0], resource_args_type): + resource_args, args = args[0], args[1:] + + # Now look at the first item in the args list again. + # If the first item is the resource options class, save it. + if args and isinstance(args[0], resource_options_type): + opts = args[0] + + # If resource_args is None, see if "args" is in kwargs, and, if so, if it's typed as the + # the resource args type. + if resource_args is None: + a = kwargs.get("args") + if isinstance(a, resource_args_type): + resource_args = a + + # If opts is None, look it up in kwargs. + if opts is None: + opts = kwargs.get("opts") + + return resource_args, opts + + +# Temporary: just use pulumi._utils.lazy_import once everyone upgrades. +def lazy_import(fullname): + + import pulumi._utils as u + f = getattr(u, 'lazy_import', None) + if f is None: + f = _lazy_import_temp + + return f(fullname) + + +# Copied from pulumi._utils.lazy_import, see comments there. +def _lazy_import_temp(fullname): + m = sys.modules.get(fullname, None) + if m is not None: + return m + + spec = importlib.util.find_spec(fullname) + + m = sys.modules.get(fullname, None) + if m is not None: + return m + + loader = importlib.util.LazyLoader(spec.loader) + spec.loader = loader + module = importlib.util.module_from_spec(spec) + + m = sys.modules.get(fullname, None) + if m is not None: + return m + + sys.modules[fullname] = module + loader.exec_module(module) + return module + + +class Package(pulumi.runtime.ResourcePackage): + def __init__(self, pkg_info): + super().__init__() + self.pkg_info = pkg_info + + def version(self): + return _version + + def construct_provider(self, name: str, typ: str, urn: str) -> pulumi.ProviderResource: + if typ != self.pkg_info['token']: + raise Exception(f"unknown provider type {typ}") + Provider = getattr(lazy_import(self.pkg_info['fqn']), self.pkg_info['class']) + return Provider(name, pulumi.ResourceOptions(urn=urn)) + + +class Module(pulumi.runtime.ResourceModule): + def __init__(self, mod_info): + super().__init__() + self.mod_info = mod_info + + def version(self): + return _version + + def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: + class_name = self.mod_info['classes'].get(typ, None) + + if class_name is None: + raise Exception(f"unknown resource type {typ}") + + TheClass = getattr(lazy_import(self.mod_info['fqn']), class_name) + return TheClass(name, pulumi.ResourceOptions(urn=urn)) + + +def register(resource_modules, resource_packages): + resource_modules = json.loads(resource_modules) + resource_packages = json.loads(resource_packages) + + for pkg_info in resource_packages: + pulumi.runtime.register_resource_package(pkg_info['pkg'], Package(pkg_info)) + + for mod_info in resource_modules: + pulumi.runtime.register_resource_module( + mod_info['pkg'], + mod_info['mod'], + Module(mod_info)) + + +_F = typing.TypeVar('_F', bound=typing.Callable[..., typing.Any]) + + +def lift_output_func(func: typing.Any) -> typing.Callable[[_F], _F]: + """Decorator internally used on {fn}_output lifted function versions + to implement them automatically from the un-lifted function.""" + + func_sig = inspect.signature(func) + + def lifted_func(*args, opts=None, **kwargs): + bound_args = func_sig.bind(*args, **kwargs) + + return pulumi.Output.from_input({ + 'args': bound_args.args, + 'kwargs': bound_args.kwargs + }).apply(lambda resolved_args: func(*resolved_args['args'], + opts=opts, + **resolved_args['kwargs'])) + + return (lambda _: lifted_func) diff --git a/sdk/python/pulumi_proxmoxve/config/__init__.py b/sdk/python/pulumi_proxmoxve/config/__init__.py index b430070..18853fc 100644 --- a/sdk/python/pulumi_proxmoxve/config/__init__.py +++ b/sdk/python/pulumi_proxmoxve/config/__init__.py @@ -2,5 +2,7 @@ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** # *** Do not edit by hand unless you're certain you know what you are doing! *** -# Export this package's modules as members: -from .vars import * +import sys +from .vars import _ExportableConfig + +sys.modules[__name__].__class__ = _ExportableConfig diff --git a/sdk/python/pulumi_proxmoxve/config/__init__.pyi b/sdk/python/pulumi_proxmoxve/config/__init__.pyi new file mode 100644 index 0000000..c5cb804 --- /dev/null +++ b/sdk/python/pulumi_proxmoxve/config/__init__.pyi @@ -0,0 +1,74 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +pmApiTokenId: Optional[str] +""" +API TokenID e.g. root@pam!mytesttoken +""" + +pmApiTokenSecret: Optional[str] +""" +The secret uuid corresponding to a TokenID +""" + +pmApiUrl: Optional[str] +""" +https://host.fqdn:8006/api2/json +""" + +pmDangerouslyIgnoreUnknownAttributes: Optional[bool] +""" +By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of +VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set +this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of +the danger in doing so. +""" + +pmLogEnable: Optional[bool] +""" +Enable provider logging to get proxmox API logs +""" + +pmLogFile: Optional[str] +""" +Write logs to this specific file +""" + +pmLogLevels: Optional[str] +""" +Configure the logging level to display; trace, debug, info, warn, etc +""" + +pmOtp: Optional[str] +""" +OTP 2FA code (if required) +""" + +pmParallel: Optional[int] + +pmPassword: Optional[str] +""" +Password to authenticate into proxmox +""" + +pmTimeout: Optional[int] + +pmTlsInsecure: Optional[bool] +""" +By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on +servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that +issued the proxmox api url's certificate. +""" + +pmUser: Optional[str] +""" +Username e.g. myuser or myuser@pam +""" + diff --git a/sdk/python/pulumi_proxmoxve/config/vars.py b/sdk/python/pulumi_proxmoxve/config/vars.py index 1cdeba9..29cc453 100644 --- a/sdk/python/pulumi_proxmoxve/config/vars.py +++ b/sdk/python/pulumi_proxmoxve/config/vars.py @@ -5,88 +5,102 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union -from .. import _utilities, _tables - -__all__ = [ - 'pm_api_token_id', - 'pm_api_token_secret', - 'pm_api_url', - 'pm_dangerously_ignore_unknown_attributes', - 'pm_log_enable', - 'pm_log_file', - 'pm_log_levels', - 'pm_otp', - 'pm_parallel', - 'pm_password', - 'pm_timeout', - 'pm_tls_insecure', - 'pm_user', -] +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +import types __config__ = pulumi.Config('proxmoxve') -pm_api_token_id = __config__.get('pmApiTokenId') -""" -API TokenID e.g. root@pam!mytesttoken -""" - -pm_api_token_secret = __config__.get('pmApiTokenSecret') -""" -The secret uuid corresponding to a TokenID -""" - -pm_api_url = __config__.get('pmApiUrl') -""" -https://host.fqdn:8006/api2/json -""" - -pm_dangerously_ignore_unknown_attributes = __config__.get('pmDangerouslyIgnoreUnknownAttributes') -""" -By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of -VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set -this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of -the danger in doing so. -""" - -pm_log_enable = __config__.get('pmLogEnable') -""" -Enable provider logging to get proxmox API logs -""" - -pm_log_file = __config__.get('pmLogFile') -""" -Write logs to this specific file -""" - -pm_log_levels = __config__.get('pmLogLevels') -""" -Configure the logging level to display; trace, debug, info, warn, etc -""" - -pm_otp = __config__.get('pmOtp') -""" -OTP 2FA code (if required) -""" - -pm_parallel = __config__.get('pmParallel') - -pm_password = __config__.get('pmPassword') -""" -Password to authenticate into proxmox -""" - -pm_timeout = __config__.get('pmTimeout') - -pm_tls_insecure = __config__.get('pmTlsInsecure') -""" -By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on -servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that -issued the proxmox api url's certificate. -""" - -pm_user = __config__.get('pmUser') -""" -Username e.g. myuser or myuser@pam -""" + +class _ExportableConfig(types.ModuleType): + @property + def pm_api_token_id(self) -> Optional[str]: + """ + API TokenID e.g. root@pam!mytesttoken + """ + return __config__.get('pmApiTokenId') + + @property + def pm_api_token_secret(self) -> Optional[str]: + """ + The secret uuid corresponding to a TokenID + """ + return __config__.get('pmApiTokenSecret') + + @property + def pm_api_url(self) -> Optional[str]: + """ + https://host.fqdn:8006/api2/json + """ + return __config__.get('pmApiUrl') + + @property + def pm_dangerously_ignore_unknown_attributes(self) -> Optional[bool]: + """ + By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of + VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set + this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of + the danger in doing so. + """ + return __config__.get_bool('pmDangerouslyIgnoreUnknownAttributes') + + @property + def pm_log_enable(self) -> Optional[bool]: + """ + Enable provider logging to get proxmox API logs + """ + return __config__.get_bool('pmLogEnable') + + @property + def pm_log_file(self) -> Optional[str]: + """ + Write logs to this specific file + """ + return __config__.get('pmLogFile') + + @property + def pm_log_levels(self) -> Optional[str]: + """ + Configure the logging level to display; trace, debug, info, warn, etc + """ + return __config__.get('pmLogLevels') + + @property + def pm_otp(self) -> Optional[str]: + """ + OTP 2FA code (if required) + """ + return __config__.get('pmOtp') + + @property + def pm_parallel(self) -> Optional[int]: + return __config__.get_int('pmParallel') + + @property + def pm_password(self) -> Optional[str]: + """ + Password to authenticate into proxmox + """ + return __config__.get('pmPassword') + + @property + def pm_timeout(self) -> Optional[int]: + return __config__.get_int('pmTimeout') + + @property + def pm_tls_insecure(self) -> Optional[bool]: + """ + By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on + servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that + issued the proxmox api url's certificate. + """ + return __config__.get_bool('pmTlsInsecure') + + @property + def pm_user(self) -> Optional[str]: + """ + Username e.g. myuser or myuser@pam + """ + return __config__.get('pmUser') diff --git a/sdk/python/pulumi_proxmoxve/lxc_container.py b/sdk/python/pulumi_proxmoxve/lxc_container.py index fd62275..9d2415c 100644 --- a/sdk/python/pulumi_proxmoxve/lxc_container.py +++ b/sdk/python/pulumi_proxmoxve/lxc_container.py @@ -5,15 +5,966 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union -from . import _utilities, _tables +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities from . import outputs from ._inputs import * -__all__ = ['LXCContainer'] +__all__ = ['LXCContainerArgs', 'LXCContainer'] + +@pulumi.input_type +class LXCContainerArgs: + def __init__(__self__, *, + target_node: pulumi.Input[str], + arch: Optional[pulumi.Input[str]] = None, + bwlimit: Optional[pulumi.Input[int]] = None, + cmode: Optional[pulumi.Input[str]] = None, + console: Optional[pulumi.Input[bool]] = None, + cores: Optional[pulumi.Input[int]] = None, + cpulimit: Optional[pulumi.Input[int]] = None, + cpuunits: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + features: Optional[pulumi.Input['LXCContainerFeaturesArgs']] = None, + force: Optional[pulumi.Input[bool]] = None, + hookscript: Optional[pulumi.Input[str]] = None, + hostname: Optional[pulumi.Input[str]] = None, + ignore_unpack_errors: Optional[pulumi.Input[bool]] = None, + lock: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[int]] = None, + mountpoints: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerMountpointArgs']]]] = None, + nameserver: Optional[pulumi.Input[str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerNetworkArgs']]]] = None, + onboot: Optional[pulumi.Input[bool]] = None, + ostemplate: Optional[pulumi.Input[str]] = None, + ostype: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + pool: Optional[pulumi.Input[str]] = None, + protection: Optional[pulumi.Input[bool]] = None, + restore: Optional[pulumi.Input[bool]] = None, + rootfs: Optional[pulumi.Input['LXCContainerRootfsArgs']] = None, + searchdomain: Optional[pulumi.Input[str]] = None, + ssh_public_keys: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[bool]] = None, + startup: Optional[pulumi.Input[str]] = None, + swap: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[str]] = None, + template: Optional[pulumi.Input[bool]] = None, + tty: Optional[pulumi.Input[int]] = None, + unique: Optional[pulumi.Input[bool]] = None, + unprivileged: Optional[pulumi.Input[bool]] = None, + unuseds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vmid: Optional[pulumi.Input[int]] = None): + """ + The set of arguments for constructing a LXCContainer resource. + """ + pulumi.set(__self__, "target_node", target_node) + if arch is not None: + pulumi.set(__self__, "arch", arch) + if bwlimit is not None: + pulumi.set(__self__, "bwlimit", bwlimit) + if cmode is not None: + pulumi.set(__self__, "cmode", cmode) + if console is not None: + pulumi.set(__self__, "console", console) + if cores is not None: + pulumi.set(__self__, "cores", cores) + if cpulimit is not None: + pulumi.set(__self__, "cpulimit", cpulimit) + if cpuunits is not None: + pulumi.set(__self__, "cpuunits", cpuunits) + if description is not None: + pulumi.set(__self__, "description", description) + if features is not None: + pulumi.set(__self__, "features", features) + if force is not None: + pulumi.set(__self__, "force", force) + if hookscript is not None: + pulumi.set(__self__, "hookscript", hookscript) + if hostname is not None: + pulumi.set(__self__, "hostname", hostname) + if ignore_unpack_errors is not None: + pulumi.set(__self__, "ignore_unpack_errors", ignore_unpack_errors) + if lock is not None: + pulumi.set(__self__, "lock", lock) + if memory is not None: + pulumi.set(__self__, "memory", memory) + if mountpoints is not None: + pulumi.set(__self__, "mountpoints", mountpoints) + if nameserver is not None: + pulumi.set(__self__, "nameserver", nameserver) + if networks is not None: + pulumi.set(__self__, "networks", networks) + if onboot is not None: + pulumi.set(__self__, "onboot", onboot) + if ostemplate is not None: + pulumi.set(__self__, "ostemplate", ostemplate) + if ostype is not None: + pulumi.set(__self__, "ostype", ostype) + if password is not None: + pulumi.set(__self__, "password", password) + if pool is not None: + pulumi.set(__self__, "pool", pool) + if protection is not None: + pulumi.set(__self__, "protection", protection) + if restore is not None: + pulumi.set(__self__, "restore", restore) + if rootfs is not None: + pulumi.set(__self__, "rootfs", rootfs) + if searchdomain is not None: + pulumi.set(__self__, "searchdomain", searchdomain) + if ssh_public_keys is not None: + pulumi.set(__self__, "ssh_public_keys", ssh_public_keys) + if start is not None: + pulumi.set(__self__, "start", start) + if startup is not None: + pulumi.set(__self__, "startup", startup) + if swap is not None: + pulumi.set(__self__, "swap", swap) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if template is not None: + pulumi.set(__self__, "template", template) + if tty is not None: + pulumi.set(__self__, "tty", tty) + if unique is not None: + pulumi.set(__self__, "unique", unique) + if unprivileged is not None: + pulumi.set(__self__, "unprivileged", unprivileged) + if unuseds is not None: + pulumi.set(__self__, "unuseds", unuseds) + if vmid is not None: + pulumi.set(__self__, "vmid", vmid) + + @property + @pulumi.getter(name="targetNode") + def target_node(self) -> pulumi.Input[str]: + return pulumi.get(self, "target_node") + + @target_node.setter + def target_node(self, value: pulumi.Input[str]): + pulumi.set(self, "target_node", value) + + @property + @pulumi.getter + def arch(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "arch") + + @arch.setter + def arch(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arch", value) + + @property + @pulumi.getter + def bwlimit(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "bwlimit") + + @bwlimit.setter + def bwlimit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "bwlimit", value) + + @property + @pulumi.getter + def cmode(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cmode") + + @cmode.setter + def cmode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cmode", value) + + @property + @pulumi.getter + def console(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "console") + + @console.setter + def console(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "console", value) + + @property + @pulumi.getter + def cores(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cores") + + @cores.setter + def cores(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cores", value) + + @property + @pulumi.getter + def cpulimit(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cpulimit") + + @cpulimit.setter + def cpulimit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cpulimit", value) + + @property + @pulumi.getter + def cpuunits(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cpuunits") + + @cpuunits.setter + def cpuunits(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cpuunits", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def features(self) -> Optional[pulumi.Input['LXCContainerFeaturesArgs']]: + return pulumi.get(self, "features") + + @features.setter + def features(self, value: Optional[pulumi.Input['LXCContainerFeaturesArgs']]): + pulumi.set(self, "features", value) + + @property + @pulumi.getter + def force(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "force") + + @force.setter + def force(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force", value) + + @property + @pulumi.getter + def hookscript(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hookscript") + + @hookscript.setter + def hookscript(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hookscript", value) + + @property + @pulumi.getter + def hostname(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hostname") + + @hostname.setter + def hostname(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hostname", value) + + @property + @pulumi.getter(name="ignoreUnpackErrors") + def ignore_unpack_errors(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "ignore_unpack_errors") + + @ignore_unpack_errors.setter + def ignore_unpack_errors(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "ignore_unpack_errors", value) + + @property + @pulumi.getter + def lock(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "lock") + + @lock.setter + def lock(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lock", value) + + @property + @pulumi.getter + def memory(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "memory") + + @memory.setter + def memory(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "memory", value) + + @property + @pulumi.getter + def mountpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerMountpointArgs']]]]: + return pulumi.get(self, "mountpoints") + + @mountpoints.setter + def mountpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerMountpointArgs']]]]): + pulumi.set(self, "mountpoints", value) + + @property + @pulumi.getter + def nameserver(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "nameserver") + + @nameserver.setter + def nameserver(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "nameserver", value) + + @property + @pulumi.getter + def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerNetworkArgs']]]]: + return pulumi.get(self, "networks") + + @networks.setter + def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerNetworkArgs']]]]): + pulumi.set(self, "networks", value) + + @property + @pulumi.getter + def onboot(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "onboot") + + @onboot.setter + def onboot(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "onboot", value) + + @property + @pulumi.getter + def ostemplate(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ostemplate") + + @ostemplate.setter + def ostemplate(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ostemplate", value) + + @property + @pulumi.getter + def ostype(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ostype") + + @ostype.setter + def ostype(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ostype", value) + + @property + @pulumi.getter + def password(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "password") + + @password.setter + def password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "password", value) + + @property + @pulumi.getter + def pool(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter + def protection(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "protection") + + @protection.setter + def protection(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "protection", value) + + @property + @pulumi.getter + def restore(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "restore") + + @restore.setter + def restore(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "restore", value) + + @property + @pulumi.getter + def rootfs(self) -> Optional[pulumi.Input['LXCContainerRootfsArgs']]: + return pulumi.get(self, "rootfs") + + @rootfs.setter + def rootfs(self, value: Optional[pulumi.Input['LXCContainerRootfsArgs']]): + pulumi.set(self, "rootfs", value) + + @property + @pulumi.getter + def searchdomain(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "searchdomain") + + @searchdomain.setter + def searchdomain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "searchdomain", value) + + @property + @pulumi.getter(name="sshPublicKeys") + def ssh_public_keys(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_public_keys") + + @ssh_public_keys.setter + def ssh_public_keys(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_public_keys", value) + + @property + @pulumi.getter + def start(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "start") + + @start.setter + def start(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "start", value) + + @property + @pulumi.getter + def startup(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "startup") + + @startup.setter + def startup(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "startup", value) + + @property + @pulumi.getter + def swap(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "swap") + + @swap.setter + def swap(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "swap", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def template(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "template") + + @template.setter + def template(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "template", value) + + @property + @pulumi.getter + def tty(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "tty") + + @tty.setter + def tty(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "tty", value) + + @property + @pulumi.getter + def unique(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "unique") + + @unique.setter + def unique(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "unique", value) + + @property + @pulumi.getter + def unprivileged(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "unprivileged") + + @unprivileged.setter + def unprivileged(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "unprivileged", value) + + @property + @pulumi.getter + def unuseds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "unuseds") + + @unuseds.setter + def unuseds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "unuseds", value) + + @property + @pulumi.getter + def vmid(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vmid") + + @vmid.setter + def vmid(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vmid", value) + + +@pulumi.input_type +class _LXCContainerState: + def __init__(__self__, *, + arch: Optional[pulumi.Input[str]] = None, + bwlimit: Optional[pulumi.Input[int]] = None, + cmode: Optional[pulumi.Input[str]] = None, + console: Optional[pulumi.Input[bool]] = None, + cores: Optional[pulumi.Input[int]] = None, + cpulimit: Optional[pulumi.Input[int]] = None, + cpuunits: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + features: Optional[pulumi.Input['LXCContainerFeaturesArgs']] = None, + force: Optional[pulumi.Input[bool]] = None, + hookscript: Optional[pulumi.Input[str]] = None, + hostname: Optional[pulumi.Input[str]] = None, + ignore_unpack_errors: Optional[pulumi.Input[bool]] = None, + lock: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[int]] = None, + mountpoints: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerMountpointArgs']]]] = None, + nameserver: Optional[pulumi.Input[str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerNetworkArgs']]]] = None, + onboot: Optional[pulumi.Input[bool]] = None, + ostemplate: Optional[pulumi.Input[str]] = None, + ostype: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + pool: Optional[pulumi.Input[str]] = None, + protection: Optional[pulumi.Input[bool]] = None, + restore: Optional[pulumi.Input[bool]] = None, + rootfs: Optional[pulumi.Input['LXCContainerRootfsArgs']] = None, + searchdomain: Optional[pulumi.Input[str]] = None, + ssh_public_keys: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[bool]] = None, + startup: Optional[pulumi.Input[str]] = None, + swap: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[str]] = None, + target_node: Optional[pulumi.Input[str]] = None, + template: Optional[pulumi.Input[bool]] = None, + tty: Optional[pulumi.Input[int]] = None, + unique: Optional[pulumi.Input[bool]] = None, + unprivileged: Optional[pulumi.Input[bool]] = None, + unuseds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vmid: Optional[pulumi.Input[int]] = None): + """ + Input properties used for looking up and filtering LXCContainer resources. + """ + if arch is not None: + pulumi.set(__self__, "arch", arch) + if bwlimit is not None: + pulumi.set(__self__, "bwlimit", bwlimit) + if cmode is not None: + pulumi.set(__self__, "cmode", cmode) + if console is not None: + pulumi.set(__self__, "console", console) + if cores is not None: + pulumi.set(__self__, "cores", cores) + if cpulimit is not None: + pulumi.set(__self__, "cpulimit", cpulimit) + if cpuunits is not None: + pulumi.set(__self__, "cpuunits", cpuunits) + if description is not None: + pulumi.set(__self__, "description", description) + if features is not None: + pulumi.set(__self__, "features", features) + if force is not None: + pulumi.set(__self__, "force", force) + if hookscript is not None: + pulumi.set(__self__, "hookscript", hookscript) + if hostname is not None: + pulumi.set(__self__, "hostname", hostname) + if ignore_unpack_errors is not None: + pulumi.set(__self__, "ignore_unpack_errors", ignore_unpack_errors) + if lock is not None: + pulumi.set(__self__, "lock", lock) + if memory is not None: + pulumi.set(__self__, "memory", memory) + if mountpoints is not None: + pulumi.set(__self__, "mountpoints", mountpoints) + if nameserver is not None: + pulumi.set(__self__, "nameserver", nameserver) + if networks is not None: + pulumi.set(__self__, "networks", networks) + if onboot is not None: + pulumi.set(__self__, "onboot", onboot) + if ostemplate is not None: + pulumi.set(__self__, "ostemplate", ostemplate) + if ostype is not None: + pulumi.set(__self__, "ostype", ostype) + if password is not None: + pulumi.set(__self__, "password", password) + if pool is not None: + pulumi.set(__self__, "pool", pool) + if protection is not None: + pulumi.set(__self__, "protection", protection) + if restore is not None: + pulumi.set(__self__, "restore", restore) + if rootfs is not None: + pulumi.set(__self__, "rootfs", rootfs) + if searchdomain is not None: + pulumi.set(__self__, "searchdomain", searchdomain) + if ssh_public_keys is not None: + pulumi.set(__self__, "ssh_public_keys", ssh_public_keys) + if start is not None: + pulumi.set(__self__, "start", start) + if startup is not None: + pulumi.set(__self__, "startup", startup) + if swap is not None: + pulumi.set(__self__, "swap", swap) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if target_node is not None: + pulumi.set(__self__, "target_node", target_node) + if template is not None: + pulumi.set(__self__, "template", template) + if tty is not None: + pulumi.set(__self__, "tty", tty) + if unique is not None: + pulumi.set(__self__, "unique", unique) + if unprivileged is not None: + pulumi.set(__self__, "unprivileged", unprivileged) + if unuseds is not None: + pulumi.set(__self__, "unuseds", unuseds) + if vmid is not None: + pulumi.set(__self__, "vmid", vmid) + + @property + @pulumi.getter + def arch(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "arch") + + @arch.setter + def arch(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arch", value) + + @property + @pulumi.getter + def bwlimit(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "bwlimit") + + @bwlimit.setter + def bwlimit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "bwlimit", value) + + @property + @pulumi.getter + def cmode(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cmode") + + @cmode.setter + def cmode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cmode", value) + + @property + @pulumi.getter + def console(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "console") + + @console.setter + def console(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "console", value) + + @property + @pulumi.getter + def cores(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cores") + + @cores.setter + def cores(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cores", value) + + @property + @pulumi.getter + def cpulimit(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cpulimit") + + @cpulimit.setter + def cpulimit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cpulimit", value) + + @property + @pulumi.getter + def cpuunits(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cpuunits") + + @cpuunits.setter + def cpuunits(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cpuunits", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def features(self) -> Optional[pulumi.Input['LXCContainerFeaturesArgs']]: + return pulumi.get(self, "features") + + @features.setter + def features(self, value: Optional[pulumi.Input['LXCContainerFeaturesArgs']]): + pulumi.set(self, "features", value) + + @property + @pulumi.getter + def force(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "force") + + @force.setter + def force(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force", value) + + @property + @pulumi.getter + def hookscript(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hookscript") + + @hookscript.setter + def hookscript(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hookscript", value) + + @property + @pulumi.getter + def hostname(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hostname") + + @hostname.setter + def hostname(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hostname", value) + + @property + @pulumi.getter(name="ignoreUnpackErrors") + def ignore_unpack_errors(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "ignore_unpack_errors") + + @ignore_unpack_errors.setter + def ignore_unpack_errors(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "ignore_unpack_errors", value) + + @property + @pulumi.getter + def lock(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "lock") + + @lock.setter + def lock(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lock", value) + + @property + @pulumi.getter + def memory(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "memory") + + @memory.setter + def memory(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "memory", value) + + @property + @pulumi.getter + def mountpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerMountpointArgs']]]]: + return pulumi.get(self, "mountpoints") + + @mountpoints.setter + def mountpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerMountpointArgs']]]]): + pulumi.set(self, "mountpoints", value) + + @property + @pulumi.getter + def nameserver(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "nameserver") + + @nameserver.setter + def nameserver(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "nameserver", value) + + @property + @pulumi.getter + def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerNetworkArgs']]]]: + return pulumi.get(self, "networks") + + @networks.setter + def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LXCContainerNetworkArgs']]]]): + pulumi.set(self, "networks", value) + + @property + @pulumi.getter + def onboot(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "onboot") + + @onboot.setter + def onboot(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "onboot", value) + + @property + @pulumi.getter + def ostemplate(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ostemplate") + + @ostemplate.setter + def ostemplate(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ostemplate", value) + + @property + @pulumi.getter + def ostype(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ostype") + + @ostype.setter + def ostype(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ostype", value) + + @property + @pulumi.getter + def password(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "password") + + @password.setter + def password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "password", value) + + @property + @pulumi.getter + def pool(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter + def protection(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "protection") + + @protection.setter + def protection(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "protection", value) + + @property + @pulumi.getter + def restore(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "restore") + + @restore.setter + def restore(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "restore", value) + + @property + @pulumi.getter + def rootfs(self) -> Optional[pulumi.Input['LXCContainerRootfsArgs']]: + return pulumi.get(self, "rootfs") + + @rootfs.setter + def rootfs(self, value: Optional[pulumi.Input['LXCContainerRootfsArgs']]): + pulumi.set(self, "rootfs", value) + + @property + @pulumi.getter + def searchdomain(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "searchdomain") + + @searchdomain.setter + def searchdomain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "searchdomain", value) + + @property + @pulumi.getter(name="sshPublicKeys") + def ssh_public_keys(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_public_keys") + + @ssh_public_keys.setter + def ssh_public_keys(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_public_keys", value) + + @property + @pulumi.getter + def start(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "start") + + @start.setter + def start(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "start", value) + + @property + @pulumi.getter + def startup(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "startup") + + @startup.setter + def startup(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "startup", value) + + @property + @pulumi.getter + def swap(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "swap") + + @swap.setter + def swap(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "swap", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="targetNode") + def target_node(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "target_node") + + @target_node.setter + def target_node(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "target_node", value) + + @property + @pulumi.getter + def template(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "template") + + @template.setter + def template(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "template", value) + + @property + @pulumi.getter + def tty(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "tty") + + @tty.setter + def tty(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "tty", value) + + @property + @pulumi.getter + def unique(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "unique") + + @unique.setter + def unique(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "unique", value) + + @property + @pulumi.getter + def unprivileged(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "unprivileged") + + @unprivileged.setter + def unprivileged(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "unprivileged", value) + + @property + @pulumi.getter + def unuseds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "unuseds") + + @unuseds.setter + def unuseds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "unuseds", value) + + @property + @pulumi.getter + def vmid(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vmid") + + @vmid.setter + def vmid(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vmid", value) class LXCContainer(pulumi.CustomResource): + @overload def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, @@ -56,20 +1007,75 @@ def __init__(__self__, unprivileged: Optional[pulumi.Input[bool]] = None, unuseds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, vmid: Optional[pulumi.Input[int]] = None, - __props__=None, - __name__=None, - __opts__=None): + __props__=None): + """ + Create a LXCContainer resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: LXCContainerArgs, + opts: Optional[pulumi.ResourceOptions] = None): """ Create a LXCContainer resource with the given unique name, props, and options. :param str resource_name: The name of the resource. + :param LXCContainerArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. """ - if __name__ is not None: - warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) - resource_name = __name__ - if __opts__ is not None: - warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) - opts = __opts__ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(LXCContainerArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + arch: Optional[pulumi.Input[str]] = None, + bwlimit: Optional[pulumi.Input[int]] = None, + cmode: Optional[pulumi.Input[str]] = None, + console: Optional[pulumi.Input[bool]] = None, + cores: Optional[pulumi.Input[int]] = None, + cpulimit: Optional[pulumi.Input[int]] = None, + cpuunits: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + features: Optional[pulumi.Input[pulumi.InputType['LXCContainerFeaturesArgs']]] = None, + force: Optional[pulumi.Input[bool]] = None, + hookscript: Optional[pulumi.Input[str]] = None, + hostname: Optional[pulumi.Input[str]] = None, + ignore_unpack_errors: Optional[pulumi.Input[bool]] = None, + lock: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[int]] = None, + mountpoints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LXCContainerMountpointArgs']]]]] = None, + nameserver: Optional[pulumi.Input[str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LXCContainerNetworkArgs']]]]] = None, + onboot: Optional[pulumi.Input[bool]] = None, + ostemplate: Optional[pulumi.Input[str]] = None, + ostype: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + pool: Optional[pulumi.Input[str]] = None, + protection: Optional[pulumi.Input[bool]] = None, + restore: Optional[pulumi.Input[bool]] = None, + rootfs: Optional[pulumi.Input[pulumi.InputType['LXCContainerRootfsArgs']]] = None, + searchdomain: Optional[pulumi.Input[str]] = None, + ssh_public_keys: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[bool]] = None, + startup: Optional[pulumi.Input[str]] = None, + swap: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[str]] = None, + target_node: Optional[pulumi.Input[str]] = None, + template: Optional[pulumi.Input[bool]] = None, + tty: Optional[pulumi.Input[int]] = None, + unique: Optional[pulumi.Input[bool]] = None, + unprivileged: Optional[pulumi.Input[bool]] = None, + unuseds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vmid: Optional[pulumi.Input[int]] = None, + __props__=None): if opts is None: opts = pulumi.ResourceOptions() if not isinstance(opts, pulumi.ResourceOptions): @@ -79,49 +1085,49 @@ def __init__(__self__, if opts.id is None: if __props__ is not None: raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = dict() - - __props__['arch'] = arch - __props__['bwlimit'] = bwlimit - __props__['cmode'] = cmode - __props__['console'] = console - __props__['cores'] = cores - __props__['cpulimit'] = cpulimit - __props__['cpuunits'] = cpuunits - __props__['description'] = description - __props__['features'] = features - __props__['force'] = force - __props__['hookscript'] = hookscript - __props__['hostname'] = hostname - __props__['ignore_unpack_errors'] = ignore_unpack_errors - __props__['lock'] = lock - __props__['memory'] = memory - __props__['mountpoints'] = mountpoints - __props__['nameserver'] = nameserver - __props__['networks'] = networks - __props__['onboot'] = onboot - __props__['ostemplate'] = ostemplate - __props__['ostype'] = ostype - __props__['password'] = password - __props__['pool'] = pool - __props__['protection'] = protection - __props__['restore'] = restore - __props__['rootfs'] = rootfs - __props__['searchdomain'] = searchdomain - __props__['ssh_public_keys'] = ssh_public_keys - __props__['start'] = start - __props__['startup'] = startup - __props__['swap'] = swap - __props__['tags'] = tags - if target_node is None: + __props__ = LXCContainerArgs.__new__(LXCContainerArgs) + + __props__.__dict__["arch"] = arch + __props__.__dict__["bwlimit"] = bwlimit + __props__.__dict__["cmode"] = cmode + __props__.__dict__["console"] = console + __props__.__dict__["cores"] = cores + __props__.__dict__["cpulimit"] = cpulimit + __props__.__dict__["cpuunits"] = cpuunits + __props__.__dict__["description"] = description + __props__.__dict__["features"] = features + __props__.__dict__["force"] = force + __props__.__dict__["hookscript"] = hookscript + __props__.__dict__["hostname"] = hostname + __props__.__dict__["ignore_unpack_errors"] = ignore_unpack_errors + __props__.__dict__["lock"] = lock + __props__.__dict__["memory"] = memory + __props__.__dict__["mountpoints"] = mountpoints + __props__.__dict__["nameserver"] = nameserver + __props__.__dict__["networks"] = networks + __props__.__dict__["onboot"] = onboot + __props__.__dict__["ostemplate"] = ostemplate + __props__.__dict__["ostype"] = ostype + __props__.__dict__["password"] = password + __props__.__dict__["pool"] = pool + __props__.__dict__["protection"] = protection + __props__.__dict__["restore"] = restore + __props__.__dict__["rootfs"] = rootfs + __props__.__dict__["searchdomain"] = searchdomain + __props__.__dict__["ssh_public_keys"] = ssh_public_keys + __props__.__dict__["start"] = start + __props__.__dict__["startup"] = startup + __props__.__dict__["swap"] = swap + __props__.__dict__["tags"] = tags + if target_node is None and not opts.urn: raise TypeError("Missing required property 'target_node'") - __props__['target_node'] = target_node - __props__['template'] = template - __props__['tty'] = tty - __props__['unique'] = unique - __props__['unprivileged'] = unprivileged - __props__['unuseds'] = unuseds - __props__['vmid'] = vmid + __props__.__dict__["target_node"] = target_node + __props__.__dict__["template"] = template + __props__.__dict__["tty"] = tty + __props__.__dict__["unique"] = unique + __props__.__dict__["unprivileged"] = unprivileged + __props__.__dict__["unuseds"] = unuseds + __props__.__dict__["vmid"] = vmid super(LXCContainer, __self__).__init__( 'proxmoxve:index/lXCContainer:LXCContainer', resource_name, @@ -181,47 +1187,47 @@ def get(resource_name: str, """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) - __props__ = dict() - - __props__["arch"] = arch - __props__["bwlimit"] = bwlimit - __props__["cmode"] = cmode - __props__["console"] = console - __props__["cores"] = cores - __props__["cpulimit"] = cpulimit - __props__["cpuunits"] = cpuunits - __props__["description"] = description - __props__["features"] = features - __props__["force"] = force - __props__["hookscript"] = hookscript - __props__["hostname"] = hostname - __props__["ignore_unpack_errors"] = ignore_unpack_errors - __props__["lock"] = lock - __props__["memory"] = memory - __props__["mountpoints"] = mountpoints - __props__["nameserver"] = nameserver - __props__["networks"] = networks - __props__["onboot"] = onboot - __props__["ostemplate"] = ostemplate - __props__["ostype"] = ostype - __props__["password"] = password - __props__["pool"] = pool - __props__["protection"] = protection - __props__["restore"] = restore - __props__["rootfs"] = rootfs - __props__["searchdomain"] = searchdomain - __props__["ssh_public_keys"] = ssh_public_keys - __props__["start"] = start - __props__["startup"] = startup - __props__["swap"] = swap - __props__["tags"] = tags - __props__["target_node"] = target_node - __props__["template"] = template - __props__["tty"] = tty - __props__["unique"] = unique - __props__["unprivileged"] = unprivileged - __props__["unuseds"] = unuseds - __props__["vmid"] = vmid + __props__ = _LXCContainerState.__new__(_LXCContainerState) + + __props__.__dict__["arch"] = arch + __props__.__dict__["bwlimit"] = bwlimit + __props__.__dict__["cmode"] = cmode + __props__.__dict__["console"] = console + __props__.__dict__["cores"] = cores + __props__.__dict__["cpulimit"] = cpulimit + __props__.__dict__["cpuunits"] = cpuunits + __props__.__dict__["description"] = description + __props__.__dict__["features"] = features + __props__.__dict__["force"] = force + __props__.__dict__["hookscript"] = hookscript + __props__.__dict__["hostname"] = hostname + __props__.__dict__["ignore_unpack_errors"] = ignore_unpack_errors + __props__.__dict__["lock"] = lock + __props__.__dict__["memory"] = memory + __props__.__dict__["mountpoints"] = mountpoints + __props__.__dict__["nameserver"] = nameserver + __props__.__dict__["networks"] = networks + __props__.__dict__["onboot"] = onboot + __props__.__dict__["ostemplate"] = ostemplate + __props__.__dict__["ostype"] = ostype + __props__.__dict__["password"] = password + __props__.__dict__["pool"] = pool + __props__.__dict__["protection"] = protection + __props__.__dict__["restore"] = restore + __props__.__dict__["rootfs"] = rootfs + __props__.__dict__["searchdomain"] = searchdomain + __props__.__dict__["ssh_public_keys"] = ssh_public_keys + __props__.__dict__["start"] = start + __props__.__dict__["startup"] = startup + __props__.__dict__["swap"] = swap + __props__.__dict__["tags"] = tags + __props__.__dict__["target_node"] = target_node + __props__.__dict__["template"] = template + __props__.__dict__["tty"] = tty + __props__.__dict__["unique"] = unique + __props__.__dict__["unprivileged"] = unprivileged + __props__.__dict__["unuseds"] = unuseds + __props__.__dict__["vmid"] = vmid return LXCContainer(resource_name, opts=opts, __props__=__props__) @property @@ -419,9 +1425,3 @@ def unuseds(self) -> pulumi.Output[Optional[Sequence[str]]]: def vmid(self) -> pulumi.Output[Optional[int]]: return pulumi.get(self, "vmid") - def translate_output_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - - def translate_input_property(self, prop): - return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop - diff --git a/sdk/python/pulumi_proxmoxve/lxc_disk.py b/sdk/python/pulumi_proxmoxve/lxc_disk.py index c733509..634339a 100644 --- a/sdk/python/pulumi_proxmoxve/lxc_disk.py +++ b/sdk/python/pulumi_proxmoxve/lxc_disk.py @@ -5,15 +5,314 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union -from . import _utilities, _tables +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities from . import outputs from ._inputs import * -__all__ = ['LXCDisk'] +__all__ = ['LXCDiskArgs', 'LXCDisk'] + +@pulumi.input_type +class LXCDiskArgs: + def __init__(__self__, *, + container: pulumi.Input[str], + mp: pulumi.Input[str], + size: pulumi.Input[str], + slot: pulumi.Input[int], + storage: pulumi.Input[str], + acl: Optional[pulumi.Input[bool]] = None, + backup: Optional[pulumi.Input[bool]] = None, + mountoptions: Optional[pulumi.Input['LXCDiskMountoptionsArgs']] = None, + quota: Optional[pulumi.Input[bool]] = None, + replicate: Optional[pulumi.Input[bool]] = None, + shared: Optional[pulumi.Input[bool]] = None, + volume: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a LXCDisk resource. + """ + pulumi.set(__self__, "container", container) + pulumi.set(__self__, "mp", mp) + pulumi.set(__self__, "size", size) + pulumi.set(__self__, "slot", slot) + pulumi.set(__self__, "storage", storage) + if acl is not None: + pulumi.set(__self__, "acl", acl) + if backup is not None: + pulumi.set(__self__, "backup", backup) + if mountoptions is not None: + pulumi.set(__self__, "mountoptions", mountoptions) + if quota is not None: + pulumi.set(__self__, "quota", quota) + if replicate is not None: + pulumi.set(__self__, "replicate", replicate) + if shared is not None: + pulumi.set(__self__, "shared", shared) + if volume is not None: + pulumi.set(__self__, "volume", volume) + + @property + @pulumi.getter + def container(self) -> pulumi.Input[str]: + return pulumi.get(self, "container") + + @container.setter + def container(self, value: pulumi.Input[str]): + pulumi.set(self, "container", value) + + @property + @pulumi.getter + def mp(self) -> pulumi.Input[str]: + return pulumi.get(self, "mp") + + @mp.setter + def mp(self, value: pulumi.Input[str]): + pulumi.set(self, "mp", value) + + @property + @pulumi.getter + def size(self) -> pulumi.Input[str]: + return pulumi.get(self, "size") + + @size.setter + def size(self, value: pulumi.Input[str]): + pulumi.set(self, "size", value) + + @property + @pulumi.getter + def slot(self) -> pulumi.Input[int]: + return pulumi.get(self, "slot") + + @slot.setter + def slot(self, value: pulumi.Input[int]): + pulumi.set(self, "slot", value) + + @property + @pulumi.getter + def storage(self) -> pulumi.Input[str]: + return pulumi.get(self, "storage") + + @storage.setter + def storage(self, value: pulumi.Input[str]): + pulumi.set(self, "storage", value) + + @property + @pulumi.getter + def acl(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "acl") + + @acl.setter + def acl(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "acl", value) + + @property + @pulumi.getter + def backup(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "backup") + + @backup.setter + def backup(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "backup", value) + + @property + @pulumi.getter + def mountoptions(self) -> Optional[pulumi.Input['LXCDiskMountoptionsArgs']]: + return pulumi.get(self, "mountoptions") + + @mountoptions.setter + def mountoptions(self, value: Optional[pulumi.Input['LXCDiskMountoptionsArgs']]): + pulumi.set(self, "mountoptions", value) + + @property + @pulumi.getter + def quota(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "quota") + + @quota.setter + def quota(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "quota", value) + + @property + @pulumi.getter + def replicate(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "replicate") + + @replicate.setter + def replicate(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "replicate", value) + + @property + @pulumi.getter + def shared(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "shared") + + @shared.setter + def shared(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "shared", value) + + @property + @pulumi.getter + def volume(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "volume") + + @volume.setter + def volume(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "volume", value) + + +@pulumi.input_type +class _LXCDiskState: + def __init__(__self__, *, + acl: Optional[pulumi.Input[bool]] = None, + backup: Optional[pulumi.Input[bool]] = None, + container: Optional[pulumi.Input[str]] = None, + mountoptions: Optional[pulumi.Input['LXCDiskMountoptionsArgs']] = None, + mp: Optional[pulumi.Input[str]] = None, + quota: Optional[pulumi.Input[bool]] = None, + replicate: Optional[pulumi.Input[bool]] = None, + shared: Optional[pulumi.Input[bool]] = None, + size: Optional[pulumi.Input[str]] = None, + slot: Optional[pulumi.Input[int]] = None, + storage: Optional[pulumi.Input[str]] = None, + volume: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering LXCDisk resources. + """ + if acl is not None: + pulumi.set(__self__, "acl", acl) + if backup is not None: + pulumi.set(__self__, "backup", backup) + if container is not None: + pulumi.set(__self__, "container", container) + if mountoptions is not None: + pulumi.set(__self__, "mountoptions", mountoptions) + if mp is not None: + pulumi.set(__self__, "mp", mp) + if quota is not None: + pulumi.set(__self__, "quota", quota) + if replicate is not None: + pulumi.set(__self__, "replicate", replicate) + if shared is not None: + pulumi.set(__self__, "shared", shared) + if size is not None: + pulumi.set(__self__, "size", size) + if slot is not None: + pulumi.set(__self__, "slot", slot) + if storage is not None: + pulumi.set(__self__, "storage", storage) + if volume is not None: + pulumi.set(__self__, "volume", volume) + + @property + @pulumi.getter + def acl(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "acl") + + @acl.setter + def acl(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "acl", value) + + @property + @pulumi.getter + def backup(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "backup") + + @backup.setter + def backup(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "backup", value) + + @property + @pulumi.getter + def container(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "container") + + @container.setter + def container(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "container", value) + + @property + @pulumi.getter + def mountoptions(self) -> Optional[pulumi.Input['LXCDiskMountoptionsArgs']]: + return pulumi.get(self, "mountoptions") + + @mountoptions.setter + def mountoptions(self, value: Optional[pulumi.Input['LXCDiskMountoptionsArgs']]): + pulumi.set(self, "mountoptions", value) + + @property + @pulumi.getter + def mp(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "mp") + + @mp.setter + def mp(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mp", value) + + @property + @pulumi.getter + def quota(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "quota") + + @quota.setter + def quota(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "quota", value) + + @property + @pulumi.getter + def replicate(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "replicate") + + @replicate.setter + def replicate(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "replicate", value) + + @property + @pulumi.getter + def shared(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "shared") + + @shared.setter + def shared(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "shared", value) + + @property + @pulumi.getter + def size(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "size") + + @size.setter + def size(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "size", value) + + @property + @pulumi.getter + def slot(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "slot") + + @slot.setter + def slot(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "slot", value) + + @property + @pulumi.getter + def storage(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "storage") + + @storage.setter + def storage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage", value) + + @property + @pulumi.getter + def volume(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "volume") + + @volume.setter + def volume(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "volume", value) class LXCDisk(pulumi.CustomResource): + @overload def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, @@ -29,20 +328,48 @@ def __init__(__self__, slot: Optional[pulumi.Input[int]] = None, storage: Optional[pulumi.Input[str]] = None, volume: Optional[pulumi.Input[str]] = None, - __props__=None, - __name__=None, - __opts__=None): + __props__=None): """ Create a LXCDisk resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. """ - if __name__ is not None: - warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) - resource_name = __name__ - if __opts__ is not None: - warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) - opts = __opts__ + ... + @overload + def __init__(__self__, + resource_name: str, + args: LXCDiskArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a LXCDisk resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param LXCDiskArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(LXCDiskArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + acl: Optional[pulumi.Input[bool]] = None, + backup: Optional[pulumi.Input[bool]] = None, + container: Optional[pulumi.Input[str]] = None, + mountoptions: Optional[pulumi.Input[pulumi.InputType['LXCDiskMountoptionsArgs']]] = None, + mp: Optional[pulumi.Input[str]] = None, + quota: Optional[pulumi.Input[bool]] = None, + replicate: Optional[pulumi.Input[bool]] = None, + shared: Optional[pulumi.Input[bool]] = None, + size: Optional[pulumi.Input[str]] = None, + slot: Optional[pulumi.Input[int]] = None, + storage: Optional[pulumi.Input[str]] = None, + volume: Optional[pulumi.Input[str]] = None, + __props__=None): if opts is None: opts = pulumi.ResourceOptions() if not isinstance(opts, pulumi.ResourceOptions): @@ -52,30 +379,30 @@ def __init__(__self__, if opts.id is None: if __props__ is not None: raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = dict() + __props__ = LXCDiskArgs.__new__(LXCDiskArgs) - __props__['acl'] = acl - __props__['backup'] = backup - if container is None: + __props__.__dict__["acl"] = acl + __props__.__dict__["backup"] = backup + if container is None and not opts.urn: raise TypeError("Missing required property 'container'") - __props__['container'] = container - __props__['mountoptions'] = mountoptions - if mp is None: + __props__.__dict__["container"] = container + __props__.__dict__["mountoptions"] = mountoptions + if mp is None and not opts.urn: raise TypeError("Missing required property 'mp'") - __props__['mp'] = mp - __props__['quota'] = quota - __props__['replicate'] = replicate - __props__['shared'] = shared - if size is None: + __props__.__dict__["mp"] = mp + __props__.__dict__["quota"] = quota + __props__.__dict__["replicate"] = replicate + __props__.__dict__["shared"] = shared + if size is None and not opts.urn: raise TypeError("Missing required property 'size'") - __props__['size'] = size - if slot is None: + __props__.__dict__["size"] = size + if slot is None and not opts.urn: raise TypeError("Missing required property 'slot'") - __props__['slot'] = slot - if storage is None: + __props__.__dict__["slot"] = slot + if storage is None and not opts.urn: raise TypeError("Missing required property 'storage'") - __props__['storage'] = storage - __props__['volume'] = volume + __props__.__dict__["storage"] = storage + __props__.__dict__["volume"] = volume super(LXCDisk, __self__).__init__( 'proxmoxve:index/lXCDisk:LXCDisk', resource_name, @@ -108,20 +435,20 @@ def get(resource_name: str, """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) - __props__ = dict() - - __props__["acl"] = acl - __props__["backup"] = backup - __props__["container"] = container - __props__["mountoptions"] = mountoptions - __props__["mp"] = mp - __props__["quota"] = quota - __props__["replicate"] = replicate - __props__["shared"] = shared - __props__["size"] = size - __props__["slot"] = slot - __props__["storage"] = storage - __props__["volume"] = volume + __props__ = _LXCDiskState.__new__(_LXCDiskState) + + __props__.__dict__["acl"] = acl + __props__.__dict__["backup"] = backup + __props__.__dict__["container"] = container + __props__.__dict__["mountoptions"] = mountoptions + __props__.__dict__["mp"] = mp + __props__.__dict__["quota"] = quota + __props__.__dict__["replicate"] = replicate + __props__.__dict__["shared"] = shared + __props__.__dict__["size"] = size + __props__.__dict__["slot"] = slot + __props__.__dict__["storage"] = storage + __props__.__dict__["volume"] = volume return LXCDisk(resource_name, opts=opts, __props__=__props__) @property @@ -184,9 +511,3 @@ def storage(self) -> pulumi.Output[str]: def volume(self) -> pulumi.Output[str]: return pulumi.get(self, "volume") - def translate_output_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - - def translate_input_property(self, prop): - return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop - diff --git a/sdk/python/pulumi_proxmoxve/outputs.py b/sdk/python/pulumi_proxmoxve/outputs.py index 3603f7b..5655300 100644 --- a/sdk/python/pulumi_proxmoxve/outputs.py +++ b/sdk/python/pulumi_proxmoxve/outputs.py @@ -5,8 +5,8 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union -from . import _utilities, _tables +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities __all__ = [ 'LXCContainerFeatures', @@ -57,9 +57,6 @@ def mount(self) -> Optional[str]: def nesting(self) -> Optional[bool]: return pulumi.get(self, "nesting") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class LXCContainerMountpoint(dict): @@ -156,9 +153,6 @@ def shared(self) -> Optional[bool]: def volume(self) -> Optional[str]: return pulumi.get(self, "volume") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class LXCContainerNetwork(dict): @@ -267,9 +261,6 @@ def trunks(self) -> Optional[str]: def type(self) -> Optional[str]: return pulumi.get(self, "type") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class LXCContainerRootfs(dict): @@ -297,9 +288,6 @@ def storage(self) -> str: def volume(self) -> Optional[str]: return pulumi.get(self, "volume") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class LXCDiskMountoptions(dict): @@ -337,12 +325,34 @@ def noexec(self) -> Optional[str]: def nosuid(self) -> Optional[bool]: return pulumi.get(self, "nosuid") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class QemuVMDisk(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mbpsRd": + suggest = "mbps_rd" + elif key == "mbpsRdMax": + suggest = "mbps_rd_max" + elif key == "mbpsWr": + suggest = "mbps_wr" + elif key == "mbpsWrMax": + suggest = "mbps_wr_max" + elif key == "storageType": + suggest = "storage_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in QemuVMDisk. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + QemuVMDisk.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + QemuVMDisk.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, size: str, storage: str, @@ -502,12 +512,26 @@ def storage_type(self) -> Optional[str]: def volume(self) -> Optional[str]: return pulumi.get(self, "volume") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class QemuVMNetwork(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "linkDown": + suggest = "link_down" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in QemuVMNetwork. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + QemuVMNetwork.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + QemuVMNetwork.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, model: str, bridge: Optional[str] = None, @@ -573,9 +597,6 @@ def rate(self) -> Optional[int]: def tag(self) -> Optional[int]: return pulumi.get(self, "tag") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class QemuVMSerial(dict): @@ -595,9 +616,6 @@ def id(self) -> int: def type(self) -> str: return pulumi.get(self, "type") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class QemuVMUnusedDisk(dict): @@ -627,9 +645,6 @@ def slot(self) -> Optional[int]: def storage(self) -> Optional[str]: return pulumi.get(self, "storage") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - @pulumi.output_type class QemuVMVga(dict): @@ -651,7 +666,4 @@ def memory(self) -> Optional[int]: def type(self) -> Optional[str]: return pulumi.get(self, "type") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - diff --git a/sdk/python/pulumi_proxmoxve/provider.py b/sdk/python/pulumi_proxmoxve/provider.py index 3cab936..95a0eb6 100644 --- a/sdk/python/pulumi_proxmoxve/provider.py +++ b/sdk/python/pulumi_proxmoxve/provider.py @@ -5,13 +5,230 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union -from . import _utilities, _tables +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities -__all__ = ['Provider'] +__all__ = ['ProviderArgs', 'Provider'] + +@pulumi.input_type +class ProviderArgs: + def __init__(__self__, *, + pm_api_url: pulumi.Input[str], + pm_api_token_id: Optional[pulumi.Input[str]] = None, + pm_api_token_secret: Optional[pulumi.Input[str]] = None, + pm_dangerously_ignore_unknown_attributes: Optional[pulumi.Input[bool]] = None, + pm_log_enable: Optional[pulumi.Input[bool]] = None, + pm_log_file: Optional[pulumi.Input[str]] = None, + pm_log_levels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + pm_otp: Optional[pulumi.Input[str]] = None, + pm_parallel: Optional[pulumi.Input[int]] = None, + pm_password: Optional[pulumi.Input[str]] = None, + pm_timeout: Optional[pulumi.Input[int]] = None, + pm_tls_insecure: Optional[pulumi.Input[bool]] = None, + pm_user: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Provider resource. + :param pulumi.Input[str] pm_api_url: https://host.fqdn:8006/api2/json + :param pulumi.Input[str] pm_api_token_id: API TokenID e.g. root@pam!mytesttoken + :param pulumi.Input[str] pm_api_token_secret: The secret uuid corresponding to a TokenID + :param pulumi.Input[bool] pm_dangerously_ignore_unknown_attributes: By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of + VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set + this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of + the danger in doing so. + :param pulumi.Input[bool] pm_log_enable: Enable provider logging to get proxmox API logs + :param pulumi.Input[str] pm_log_file: Write logs to this specific file + :param pulumi.Input[Mapping[str, Any]] pm_log_levels: Configure the logging level to display; trace, debug, info, warn, etc + :param pulumi.Input[str] pm_otp: OTP 2FA code (if required) + :param pulumi.Input[str] pm_password: Password to authenticate into proxmox + :param pulumi.Input[bool] pm_tls_insecure: By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on + servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that + issued the proxmox api url's certificate. + :param pulumi.Input[str] pm_user: Username e.g. myuser or myuser@pam + """ + pulumi.set(__self__, "pm_api_url", pm_api_url) + if pm_api_token_id is not None: + pulumi.set(__self__, "pm_api_token_id", pm_api_token_id) + if pm_api_token_secret is not None: + pulumi.set(__self__, "pm_api_token_secret", pm_api_token_secret) + if pm_dangerously_ignore_unknown_attributes is not None: + pulumi.set(__self__, "pm_dangerously_ignore_unknown_attributes", pm_dangerously_ignore_unknown_attributes) + if pm_log_enable is not None: + pulumi.set(__self__, "pm_log_enable", pm_log_enable) + if pm_log_file is not None: + pulumi.set(__self__, "pm_log_file", pm_log_file) + if pm_log_levels is not None: + pulumi.set(__self__, "pm_log_levels", pm_log_levels) + if pm_otp is not None: + pulumi.set(__self__, "pm_otp", pm_otp) + if pm_parallel is not None: + pulumi.set(__self__, "pm_parallel", pm_parallel) + if pm_password is not None: + pulumi.set(__self__, "pm_password", pm_password) + if pm_timeout is not None: + pulumi.set(__self__, "pm_timeout", pm_timeout) + if pm_tls_insecure is not None: + pulumi.set(__self__, "pm_tls_insecure", pm_tls_insecure) + if pm_user is not None: + pulumi.set(__self__, "pm_user", pm_user) + + @property + @pulumi.getter(name="pmApiUrl") + def pm_api_url(self) -> pulumi.Input[str]: + """ + https://host.fqdn:8006/api2/json + """ + return pulumi.get(self, "pm_api_url") + + @pm_api_url.setter + def pm_api_url(self, value: pulumi.Input[str]): + pulumi.set(self, "pm_api_url", value) + + @property + @pulumi.getter(name="pmApiTokenId") + def pm_api_token_id(self) -> Optional[pulumi.Input[str]]: + """ + API TokenID e.g. root@pam!mytesttoken + """ + return pulumi.get(self, "pm_api_token_id") + + @pm_api_token_id.setter + def pm_api_token_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pm_api_token_id", value) + + @property + @pulumi.getter(name="pmApiTokenSecret") + def pm_api_token_secret(self) -> Optional[pulumi.Input[str]]: + """ + The secret uuid corresponding to a TokenID + """ + return pulumi.get(self, "pm_api_token_secret") + + @pm_api_token_secret.setter + def pm_api_token_secret(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pm_api_token_secret", value) + + @property + @pulumi.getter(name="pmDangerouslyIgnoreUnknownAttributes") + def pm_dangerously_ignore_unknown_attributes(self) -> Optional[pulumi.Input[bool]]: + """ + By default this provider will exit if an unknown attribute is found. This is to prevent the accidential destruction of + VMs or Data when something in the proxmox API has changed/updated and is not confirmed to work with this provider. Set + this to true at your own risk. It may allow you to proceed in cases when the provider refuses to work, but be aware of + the danger in doing so. + """ + return pulumi.get(self, "pm_dangerously_ignore_unknown_attributes") + + @pm_dangerously_ignore_unknown_attributes.setter + def pm_dangerously_ignore_unknown_attributes(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "pm_dangerously_ignore_unknown_attributes", value) + + @property + @pulumi.getter(name="pmLogEnable") + def pm_log_enable(self) -> Optional[pulumi.Input[bool]]: + """ + Enable provider logging to get proxmox API logs + """ + return pulumi.get(self, "pm_log_enable") + + @pm_log_enable.setter + def pm_log_enable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "pm_log_enable", value) + + @property + @pulumi.getter(name="pmLogFile") + def pm_log_file(self) -> Optional[pulumi.Input[str]]: + """ + Write logs to this specific file + """ + return pulumi.get(self, "pm_log_file") + + @pm_log_file.setter + def pm_log_file(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pm_log_file", value) + + @property + @pulumi.getter(name="pmLogLevels") + def pm_log_levels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + """ + Configure the logging level to display; trace, debug, info, warn, etc + """ + return pulumi.get(self, "pm_log_levels") + + @pm_log_levels.setter + def pm_log_levels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): + pulumi.set(self, "pm_log_levels", value) + + @property + @pulumi.getter(name="pmOtp") + def pm_otp(self) -> Optional[pulumi.Input[str]]: + """ + OTP 2FA code (if required) + """ + return pulumi.get(self, "pm_otp") + + @pm_otp.setter + def pm_otp(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pm_otp", value) + + @property + @pulumi.getter(name="pmParallel") + def pm_parallel(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "pm_parallel") + + @pm_parallel.setter + def pm_parallel(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "pm_parallel", value) + + @property + @pulumi.getter(name="pmPassword") + def pm_password(self) -> Optional[pulumi.Input[str]]: + """ + Password to authenticate into proxmox + """ + return pulumi.get(self, "pm_password") + + @pm_password.setter + def pm_password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pm_password", value) + + @property + @pulumi.getter(name="pmTimeout") + def pm_timeout(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "pm_timeout") + + @pm_timeout.setter + def pm_timeout(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "pm_timeout", value) + + @property + @pulumi.getter(name="pmTlsInsecure") + def pm_tls_insecure(self) -> Optional[pulumi.Input[bool]]: + """ + By default, every TLS connection is verified to be secure. This option allows terraform to proceed and operate on + servers considered insecure. For example if you're connecting to a remote host and you do not have the CA cert that + issued the proxmox api url's certificate. + """ + return pulumi.get(self, "pm_tls_insecure") + + @pm_tls_insecure.setter + def pm_tls_insecure(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "pm_tls_insecure", value) + + @property + @pulumi.getter(name="pmUser") + def pm_user(self) -> Optional[pulumi.Input[str]]: + """ + Username e.g. myuser or myuser@pam + """ + return pulumi.get(self, "pm_user") + + @pm_user.setter + def pm_user(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pm_user", value) class Provider(pulumi.ProviderResource): + @overload def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, @@ -28,9 +245,7 @@ def __init__(__self__, pm_timeout: Optional[pulumi.Input[int]] = None, pm_tls_insecure: Optional[pulumi.Input[bool]] = None, pm_user: Optional[pulumi.Input[str]] = None, - __props__=None, - __name__=None, - __opts__=None): + __props__=None): """ The provider type for the proxmoxve package. By default, resources use package-wide configuration settings, however an explicit `Provider` instance may be created and passed during resource @@ -56,12 +271,47 @@ def __init__(__self__, issued the proxmox api url's certificate. :param pulumi.Input[str] pm_user: Username e.g. myuser or myuser@pam """ - if __name__ is not None: - warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) - resource_name = __name__ - if __opts__ is not None: - warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) - opts = __opts__ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ProviderArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The provider type for the proxmoxve package. By default, resources use package-wide configuration + settings, however an explicit `Provider` instance may be created and passed during resource + construction to achieve fine-grained programmatic control over provider settings. See the + [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. + + :param str resource_name: The name of the resource. + :param ProviderArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ProviderArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + pm_api_token_id: Optional[pulumi.Input[str]] = None, + pm_api_token_secret: Optional[pulumi.Input[str]] = None, + pm_api_url: Optional[pulumi.Input[str]] = None, + pm_dangerously_ignore_unknown_attributes: Optional[pulumi.Input[bool]] = None, + pm_log_enable: Optional[pulumi.Input[bool]] = None, + pm_log_file: Optional[pulumi.Input[str]] = None, + pm_log_levels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + pm_otp: Optional[pulumi.Input[str]] = None, + pm_parallel: Optional[pulumi.Input[int]] = None, + pm_password: Optional[pulumi.Input[str]] = None, + pm_timeout: Optional[pulumi.Input[int]] = None, + pm_tls_insecure: Optional[pulumi.Input[bool]] = None, + pm_user: Optional[pulumi.Input[str]] = None, + __props__=None): if opts is None: opts = pulumi.ResourceOptions() if not isinstance(opts, pulumi.ResourceOptions): @@ -71,32 +321,82 @@ def __init__(__self__, if opts.id is None: if __props__ is not None: raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = dict() + __props__ = ProviderArgs.__new__(ProviderArgs) - __props__['pm_api_token_id'] = pm_api_token_id - __props__['pm_api_token_secret'] = pm_api_token_secret - if pm_api_url is None: + __props__.__dict__["pm_api_token_id"] = pm_api_token_id + __props__.__dict__["pm_api_token_secret"] = pm_api_token_secret + if pm_api_url is None and not opts.urn: raise TypeError("Missing required property 'pm_api_url'") - __props__['pm_api_url'] = pm_api_url - __props__['pm_dangerously_ignore_unknown_attributes'] = pulumi.Output.from_input(pm_dangerously_ignore_unknown_attributes).apply(pulumi.runtime.to_json) if pm_dangerously_ignore_unknown_attributes is not None else None - __props__['pm_log_enable'] = pulumi.Output.from_input(pm_log_enable).apply(pulumi.runtime.to_json) if pm_log_enable is not None else None - __props__['pm_log_file'] = pm_log_file - __props__['pm_log_levels'] = pulumi.Output.from_input(pm_log_levels).apply(pulumi.runtime.to_json) if pm_log_levels is not None else None - __props__['pm_otp'] = pm_otp - __props__['pm_parallel'] = pulumi.Output.from_input(pm_parallel).apply(pulumi.runtime.to_json) if pm_parallel is not None else None - __props__['pm_password'] = pm_password - __props__['pm_timeout'] = pulumi.Output.from_input(pm_timeout).apply(pulumi.runtime.to_json) if pm_timeout is not None else None - __props__['pm_tls_insecure'] = pulumi.Output.from_input(pm_tls_insecure).apply(pulumi.runtime.to_json) if pm_tls_insecure is not None else None - __props__['pm_user'] = pm_user + __props__.__dict__["pm_api_url"] = pm_api_url + __props__.__dict__["pm_dangerously_ignore_unknown_attributes"] = pulumi.Output.from_input(pm_dangerously_ignore_unknown_attributes).apply(pulumi.runtime.to_json) if pm_dangerously_ignore_unknown_attributes is not None else None + __props__.__dict__["pm_log_enable"] = pulumi.Output.from_input(pm_log_enable).apply(pulumi.runtime.to_json) if pm_log_enable is not None else None + __props__.__dict__["pm_log_file"] = pm_log_file + __props__.__dict__["pm_log_levels"] = pulumi.Output.from_input(pm_log_levels).apply(pulumi.runtime.to_json) if pm_log_levels is not None else None + __props__.__dict__["pm_otp"] = pm_otp + __props__.__dict__["pm_parallel"] = pulumi.Output.from_input(pm_parallel).apply(pulumi.runtime.to_json) if pm_parallel is not None else None + __props__.__dict__["pm_password"] = pm_password + __props__.__dict__["pm_timeout"] = pulumi.Output.from_input(pm_timeout).apply(pulumi.runtime.to_json) if pm_timeout is not None else None + __props__.__dict__["pm_tls_insecure"] = pulumi.Output.from_input(pm_tls_insecure).apply(pulumi.runtime.to_json) if pm_tls_insecure is not None else None + __props__.__dict__["pm_user"] = pm_user super(Provider, __self__).__init__( 'proxmoxve', resource_name, __props__, opts) - def translate_output_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + @property + @pulumi.getter(name="pmApiTokenId") + def pm_api_token_id(self) -> pulumi.Output[Optional[str]]: + """ + API TokenID e.g. root@pam!mytesttoken + """ + return pulumi.get(self, "pm_api_token_id") - def translate_input_property(self, prop): - return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + @property + @pulumi.getter(name="pmApiTokenSecret") + def pm_api_token_secret(self) -> pulumi.Output[Optional[str]]: + """ + The secret uuid corresponding to a TokenID + """ + return pulumi.get(self, "pm_api_token_secret") + + @property + @pulumi.getter(name="pmApiUrl") + def pm_api_url(self) -> pulumi.Output[str]: + """ + https://host.fqdn:8006/api2/json + """ + return pulumi.get(self, "pm_api_url") + + @property + @pulumi.getter(name="pmLogFile") + def pm_log_file(self) -> pulumi.Output[Optional[str]]: + """ + Write logs to this specific file + """ + return pulumi.get(self, "pm_log_file") + + @property + @pulumi.getter(name="pmOtp") + def pm_otp(self) -> pulumi.Output[Optional[str]]: + """ + OTP 2FA code (if required) + """ + return pulumi.get(self, "pm_otp") + + @property + @pulumi.getter(name="pmPassword") + def pm_password(self) -> pulumi.Output[Optional[str]]: + """ + Password to authenticate into proxmox + """ + return pulumi.get(self, "pm_password") + + @property + @pulumi.getter(name="pmUser") + def pm_user(self) -> pulumi.Output[Optional[str]]: + """ + Username e.g. myuser or myuser@pam + """ + return pulumi.get(self, "pm_user") diff --git a/sdk/python/pulumi_proxmoxve/qemu_vm.py b/sdk/python/pulumi_proxmoxve/qemu_vm.py index 57714c9..00fb318 100644 --- a/sdk/python/pulumi_proxmoxve/qemu_vm.py +++ b/sdk/python/pulumi_proxmoxve/qemu_vm.py @@ -5,15 +5,1604 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union -from . import _utilities, _tables +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities from . import outputs from ._inputs import * -__all__ = ['QemuVM'] +__all__ = ['QemuVMArgs', 'QemuVM'] + +@pulumi.input_type +class QemuVMArgs: + def __init__(__self__, *, + target_node: pulumi.Input[str], + additional_wait: Optional[pulumi.Input[int]] = None, + agent: Optional[pulumi.Input[int]] = None, + args: Optional[pulumi.Input[str]] = None, + balloon: Optional[pulumi.Input[int]] = None, + bios: Optional[pulumi.Input[str]] = None, + boot: Optional[pulumi.Input[str]] = None, + bootdisk: Optional[pulumi.Input[str]] = None, + bridge: Optional[pulumi.Input[str]] = None, + ci_wait: Optional[pulumi.Input[int]] = None, + cicustom: Optional[pulumi.Input[str]] = None, + cipassword: Optional[pulumi.Input[str]] = None, + ciuser: Optional[pulumi.Input[str]] = None, + clone: Optional[pulumi.Input[str]] = None, + clone_wait: Optional[pulumi.Input[int]] = None, + cloudinit_cdrom_storage: Optional[pulumi.Input[str]] = None, + cores: Optional[pulumi.Input[int]] = None, + cpu: Optional[pulumi.Input[str]] = None, + define_connection_info: Optional[pulumi.Input[bool]] = None, + desc: Optional[pulumi.Input[str]] = None, + disk_gb: Optional[pulumi.Input[float]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMDiskArgs']]]] = None, + force_create: Optional[pulumi.Input[bool]] = None, + force_recreate_on_change_of: Optional[pulumi.Input[str]] = None, + full_clone: Optional[pulumi.Input[bool]] = None, + guest_agent_ready_timeout: Optional[pulumi.Input[int]] = None, + hastate: Optional[pulumi.Input[str]] = None, + hotplug: Optional[pulumi.Input[str]] = None, + ipconfig0: Optional[pulumi.Input[str]] = None, + ipconfig1: Optional[pulumi.Input[str]] = None, + ipconfig2: Optional[pulumi.Input[str]] = None, + iso: Optional[pulumi.Input[str]] = None, + kvm: Optional[pulumi.Input[bool]] = None, + mac: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + nameserver: Optional[pulumi.Input[str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMNetworkArgs']]]] = None, + nic: Optional[pulumi.Input[str]] = None, + numa: Optional[pulumi.Input[bool]] = None, + onboot: Optional[pulumi.Input[bool]] = None, + os_network_config: Optional[pulumi.Input[str]] = None, + os_type: Optional[pulumi.Input[str]] = None, + pool: Optional[pulumi.Input[str]] = None, + preprovision: Optional[pulumi.Input[bool]] = None, + qemu_os: Optional[pulumi.Input[str]] = None, + scsihw: Optional[pulumi.Input[str]] = None, + searchdomain: Optional[pulumi.Input[str]] = None, + serials: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMSerialArgs']]]] = None, + sockets: Optional[pulumi.Input[int]] = None, + ssh_forward_ip: Optional[pulumi.Input[str]] = None, + ssh_private_key: Optional[pulumi.Input[str]] = None, + ssh_user: Optional[pulumi.Input[str]] = None, + sshkeys: Optional[pulumi.Input[str]] = None, + storage: Optional[pulumi.Input[str]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[str]] = None, + vcpus: Optional[pulumi.Input[int]] = None, + vgas: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMVgaArgs']]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + vmid: Optional[pulumi.Input[int]] = None): + """ + The set of arguments for constructing a QemuVM resource. + """ + pulumi.set(__self__, "target_node", target_node) + if additional_wait is not None: + pulumi.set(__self__, "additional_wait", additional_wait) + if agent is not None: + pulumi.set(__self__, "agent", agent) + if args is not None: + pulumi.set(__self__, "args", args) + if balloon is not None: + pulumi.set(__self__, "balloon", balloon) + if bios is not None: + pulumi.set(__self__, "bios", bios) + if boot is not None: + pulumi.set(__self__, "boot", boot) + if bootdisk is not None: + pulumi.set(__self__, "bootdisk", bootdisk) + if bridge is not None: + warnings.warn("""Use `network.bridge` instead""", DeprecationWarning) + pulumi.log.warn("""bridge is deprecated: Use `network.bridge` instead""") + if bridge is not None: + pulumi.set(__self__, "bridge", bridge) + if ci_wait is not None: + pulumi.set(__self__, "ci_wait", ci_wait) + if cicustom is not None: + pulumi.set(__self__, "cicustom", cicustom) + if cipassword is not None: + pulumi.set(__self__, "cipassword", cipassword) + if ciuser is not None: + pulumi.set(__self__, "ciuser", ciuser) + if clone is not None: + pulumi.set(__self__, "clone", clone) + if clone_wait is not None: + pulumi.set(__self__, "clone_wait", clone_wait) + if cloudinit_cdrom_storage is not None: + pulumi.set(__self__, "cloudinit_cdrom_storage", cloudinit_cdrom_storage) + if cores is not None: + pulumi.set(__self__, "cores", cores) + if cpu is not None: + pulumi.set(__self__, "cpu", cpu) + if define_connection_info is not None: + pulumi.set(__self__, "define_connection_info", define_connection_info) + if desc is not None: + pulumi.set(__self__, "desc", desc) + if disk_gb is not None: + warnings.warn("""Use `disk.size` instead""", DeprecationWarning) + pulumi.log.warn("""disk_gb is deprecated: Use `disk.size` instead""") + if disk_gb is not None: + pulumi.set(__self__, "disk_gb", disk_gb) + if disks is not None: + pulumi.set(__self__, "disks", disks) + if force_create is not None: + pulumi.set(__self__, "force_create", force_create) + if force_recreate_on_change_of is not None: + pulumi.set(__self__, "force_recreate_on_change_of", force_recreate_on_change_of) + if full_clone is not None: + pulumi.set(__self__, "full_clone", full_clone) + if guest_agent_ready_timeout is not None: + pulumi.set(__self__, "guest_agent_ready_timeout", guest_agent_ready_timeout) + if hastate is not None: + pulumi.set(__self__, "hastate", hastate) + if hotplug is not None: + pulumi.set(__self__, "hotplug", hotplug) + if ipconfig0 is not None: + pulumi.set(__self__, "ipconfig0", ipconfig0) + if ipconfig1 is not None: + pulumi.set(__self__, "ipconfig1", ipconfig1) + if ipconfig2 is not None: + pulumi.set(__self__, "ipconfig2", ipconfig2) + if iso is not None: + pulumi.set(__self__, "iso", iso) + if kvm is not None: + pulumi.set(__self__, "kvm", kvm) + if mac is not None: + warnings.warn("""Use `network.macaddr` to access the auto generated MAC address""", DeprecationWarning) + pulumi.log.warn("""mac is deprecated: Use `network.macaddr` to access the auto generated MAC address""") + if mac is not None: + pulumi.set(__self__, "mac", mac) + if memory is not None: + pulumi.set(__self__, "memory", memory) + if name is not None: + pulumi.set(__self__, "name", name) + if nameserver is not None: + pulumi.set(__self__, "nameserver", nameserver) + if networks is not None: + pulumi.set(__self__, "networks", networks) + if nic is not None: + warnings.warn("""Use `network` instead""", DeprecationWarning) + pulumi.log.warn("""nic is deprecated: Use `network` instead""") + if nic is not None: + pulumi.set(__self__, "nic", nic) + if numa is not None: + pulumi.set(__self__, "numa", numa) + if onboot is not None: + pulumi.set(__self__, "onboot", onboot) + if os_network_config is not None: + pulumi.set(__self__, "os_network_config", os_network_config) + if os_type is not None: + pulumi.set(__self__, "os_type", os_type) + if pool is not None: + pulumi.set(__self__, "pool", pool) + if preprovision is not None: + pulumi.set(__self__, "preprovision", preprovision) + if qemu_os is not None: + pulumi.set(__self__, "qemu_os", qemu_os) + if scsihw is not None: + pulumi.set(__self__, "scsihw", scsihw) + if searchdomain is not None: + pulumi.set(__self__, "searchdomain", searchdomain) + if serials is not None: + pulumi.set(__self__, "serials", serials) + if sockets is not None: + pulumi.set(__self__, "sockets", sockets) + if ssh_forward_ip is not None: + pulumi.set(__self__, "ssh_forward_ip", ssh_forward_ip) + if ssh_private_key is not None: + pulumi.set(__self__, "ssh_private_key", ssh_private_key) + if ssh_user is not None: + pulumi.set(__self__, "ssh_user", ssh_user) + if sshkeys is not None: + pulumi.set(__self__, "sshkeys", sshkeys) + if storage is not None: + warnings.warn("""Use `disk.storage` instead""", DeprecationWarning) + pulumi.log.warn("""storage is deprecated: Use `disk.storage` instead""") + if storage is not None: + pulumi.set(__self__, "storage", storage) + if storage_type is not None: + warnings.warn("""Use `disk.type` instead""", DeprecationWarning) + pulumi.log.warn("""storage_type is deprecated: Use `disk.type` instead""") + if storage_type is not None: + pulumi.set(__self__, "storage_type", storage_type) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if vcpus is not None: + pulumi.set(__self__, "vcpus", vcpus) + if vgas is not None: + pulumi.set(__self__, "vgas", vgas) + if vlan is not None: + warnings.warn("""Use `network.tag` instead""", DeprecationWarning) + pulumi.log.warn("""vlan is deprecated: Use `network.tag` instead""") + if vlan is not None: + pulumi.set(__self__, "vlan", vlan) + if vmid is not None: + pulumi.set(__self__, "vmid", vmid) + + @property + @pulumi.getter(name="targetNode") + def target_node(self) -> pulumi.Input[str]: + return pulumi.get(self, "target_node") + + @target_node.setter + def target_node(self, value: pulumi.Input[str]): + pulumi.set(self, "target_node", value) + + @property + @pulumi.getter(name="additionalWait") + def additional_wait(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "additional_wait") + + @additional_wait.setter + def additional_wait(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "additional_wait", value) + + @property + @pulumi.getter + def agent(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "agent") + + @agent.setter + def agent(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "agent", value) + + @property + @pulumi.getter + def args(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "args") + + @args.setter + def args(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "args", value) + + @property + @pulumi.getter + def balloon(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "balloon") + + @balloon.setter + def balloon(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "balloon", value) + + @property + @pulumi.getter + def bios(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "bios") + + @bios.setter + def bios(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bios", value) + + @property + @pulumi.getter + def boot(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "boot") + + @boot.setter + def boot(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "boot", value) + + @property + @pulumi.getter + def bootdisk(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "bootdisk") + + @bootdisk.setter + def bootdisk(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bootdisk", value) + + @property + @pulumi.getter + def bridge(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "bridge") + + @bridge.setter + def bridge(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bridge", value) + + @property + @pulumi.getter(name="ciWait") + def ci_wait(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "ci_wait") + + @ci_wait.setter + def ci_wait(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ci_wait", value) + + @property + @pulumi.getter + def cicustom(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cicustom") + + @cicustom.setter + def cicustom(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cicustom", value) + + @property + @pulumi.getter + def cipassword(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cipassword") + + @cipassword.setter + def cipassword(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cipassword", value) + + @property + @pulumi.getter + def ciuser(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ciuser") + + @ciuser.setter + def ciuser(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ciuser", value) + + @property + @pulumi.getter + def clone(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "clone") + + @clone.setter + def clone(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "clone", value) + + @property + @pulumi.getter(name="cloneWait") + def clone_wait(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "clone_wait") + + @clone_wait.setter + def clone_wait(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "clone_wait", value) + + @property + @pulumi.getter(name="cloudinitCdromStorage") + def cloudinit_cdrom_storage(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cloudinit_cdrom_storage") + + @cloudinit_cdrom_storage.setter + def cloudinit_cdrom_storage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloudinit_cdrom_storage", value) + + @property + @pulumi.getter + def cores(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cores") + + @cores.setter + def cores(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cores", value) + + @property + @pulumi.getter + def cpu(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cpu") + + @cpu.setter + def cpu(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cpu", value) + + @property + @pulumi.getter(name="defineConnectionInfo") + def define_connection_info(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "define_connection_info") + + @define_connection_info.setter + def define_connection_info(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "define_connection_info", value) + + @property + @pulumi.getter + def desc(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "desc") + + @desc.setter + def desc(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "desc", value) + + @property + @pulumi.getter(name="diskGb") + def disk_gb(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "disk_gb") + + @disk_gb.setter + def disk_gb(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "disk_gb", value) + + @property + @pulumi.getter + def disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMDiskArgs']]]]: + return pulumi.get(self, "disks") + + @disks.setter + def disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMDiskArgs']]]]): + pulumi.set(self, "disks", value) + + @property + @pulumi.getter(name="forceCreate") + def force_create(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "force_create") + + @force_create.setter + def force_create(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force_create", value) + + @property + @pulumi.getter(name="forceRecreateOnChangeOf") + def force_recreate_on_change_of(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "force_recreate_on_change_of") + + @force_recreate_on_change_of.setter + def force_recreate_on_change_of(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "force_recreate_on_change_of", value) + + @property + @pulumi.getter(name="fullClone") + def full_clone(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "full_clone") + + @full_clone.setter + def full_clone(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "full_clone", value) + + @property + @pulumi.getter(name="guestAgentReadyTimeout") + def guest_agent_ready_timeout(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "guest_agent_ready_timeout") + + @guest_agent_ready_timeout.setter + def guest_agent_ready_timeout(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "guest_agent_ready_timeout", value) + + @property + @pulumi.getter + def hastate(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hastate") + + @hastate.setter + def hastate(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hastate", value) + + @property + @pulumi.getter + def hotplug(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hotplug") + + @hotplug.setter + def hotplug(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hotplug", value) + + @property + @pulumi.getter + def ipconfig0(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ipconfig0") + + @ipconfig0.setter + def ipconfig0(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ipconfig0", value) + + @property + @pulumi.getter + def ipconfig1(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ipconfig1") + + @ipconfig1.setter + def ipconfig1(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ipconfig1", value) + + @property + @pulumi.getter + def ipconfig2(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ipconfig2") + + @ipconfig2.setter + def ipconfig2(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ipconfig2", value) + + @property + @pulumi.getter + def iso(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "iso") + + @iso.setter + def iso(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "iso", value) + + @property + @pulumi.getter + def kvm(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "kvm") + + @kvm.setter + def kvm(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "kvm", value) + + @property + @pulumi.getter + def mac(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "mac") + + @mac.setter + def mac(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mac", value) + + @property + @pulumi.getter + def memory(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "memory") + + @memory.setter + def memory(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "memory", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def nameserver(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "nameserver") + + @nameserver.setter + def nameserver(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "nameserver", value) + + @property + @pulumi.getter + def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMNetworkArgs']]]]: + return pulumi.get(self, "networks") + + @networks.setter + def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMNetworkArgs']]]]): + pulumi.set(self, "networks", value) + + @property + @pulumi.getter + def nic(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "nic") + + @nic.setter + def nic(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "nic", value) + + @property + @pulumi.getter + def numa(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "numa") + + @numa.setter + def numa(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "numa", value) + + @property + @pulumi.getter + def onboot(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "onboot") + + @onboot.setter + def onboot(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "onboot", value) + + @property + @pulumi.getter(name="osNetworkConfig") + def os_network_config(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "os_network_config") + + @os_network_config.setter + def os_network_config(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "os_network_config", value) + + @property + @pulumi.getter(name="osType") + def os_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "os_type") + + @os_type.setter + def os_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "os_type", value) + + @property + @pulumi.getter + def pool(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter + def preprovision(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "preprovision") + + @preprovision.setter + def preprovision(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "preprovision", value) + + @property + @pulumi.getter(name="qemuOs") + def qemu_os(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "qemu_os") + + @qemu_os.setter + def qemu_os(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "qemu_os", value) + + @property + @pulumi.getter + def scsihw(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "scsihw") + + @scsihw.setter + def scsihw(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "scsihw", value) + + @property + @pulumi.getter + def searchdomain(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "searchdomain") + + @searchdomain.setter + def searchdomain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "searchdomain", value) + + @property + @pulumi.getter + def serials(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMSerialArgs']]]]: + return pulumi.get(self, "serials") + + @serials.setter + def serials(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMSerialArgs']]]]): + pulumi.set(self, "serials", value) + + @property + @pulumi.getter + def sockets(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "sockets") + + @sockets.setter + def sockets(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "sockets", value) + + @property + @pulumi.getter(name="sshForwardIp") + def ssh_forward_ip(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_forward_ip") + + @ssh_forward_ip.setter + def ssh_forward_ip(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_forward_ip", value) + + @property + @pulumi.getter(name="sshPrivateKey") + def ssh_private_key(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_private_key") + + @ssh_private_key.setter + def ssh_private_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_private_key", value) + + @property + @pulumi.getter(name="sshUser") + def ssh_user(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_user") + + @ssh_user.setter + def ssh_user(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_user", value) + + @property + @pulumi.getter + def sshkeys(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "sshkeys") + + @sshkeys.setter + def sshkeys(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sshkeys", value) + + @property + @pulumi.getter + def storage(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "storage") + + @storage.setter + def storage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage", value) + + @property + @pulumi.getter(name="storageType") + def storage_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "storage_type") + + @storage_type.setter + def storage_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_type", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def vcpus(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vcpus") + + @vcpus.setter + def vcpus(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vcpus", value) + + @property + @pulumi.getter + def vgas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMVgaArgs']]]]: + return pulumi.get(self, "vgas") + + @vgas.setter + def vgas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMVgaArgs']]]]): + pulumi.set(self, "vgas", value) + + @property + @pulumi.getter + def vlan(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vlan") + + @vlan.setter + def vlan(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vlan", value) + + @property + @pulumi.getter + def vmid(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vmid") + + @vmid.setter + def vmid(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vmid", value) + + +@pulumi.input_type +class _QemuVMState: + def __init__(__self__, *, + additional_wait: Optional[pulumi.Input[int]] = None, + agent: Optional[pulumi.Input[int]] = None, + args: Optional[pulumi.Input[str]] = None, + balloon: Optional[pulumi.Input[int]] = None, + bios: Optional[pulumi.Input[str]] = None, + boot: Optional[pulumi.Input[str]] = None, + bootdisk: Optional[pulumi.Input[str]] = None, + bridge: Optional[pulumi.Input[str]] = None, + ci_wait: Optional[pulumi.Input[int]] = None, + cicustom: Optional[pulumi.Input[str]] = None, + cipassword: Optional[pulumi.Input[str]] = None, + ciuser: Optional[pulumi.Input[str]] = None, + clone: Optional[pulumi.Input[str]] = None, + clone_wait: Optional[pulumi.Input[int]] = None, + cloudinit_cdrom_storage: Optional[pulumi.Input[str]] = None, + cores: Optional[pulumi.Input[int]] = None, + cpu: Optional[pulumi.Input[str]] = None, + default_ipv4_address: Optional[pulumi.Input[str]] = None, + define_connection_info: Optional[pulumi.Input[bool]] = None, + desc: Optional[pulumi.Input[str]] = None, + disk_gb: Optional[pulumi.Input[float]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMDiskArgs']]]] = None, + force_create: Optional[pulumi.Input[bool]] = None, + force_recreate_on_change_of: Optional[pulumi.Input[str]] = None, + full_clone: Optional[pulumi.Input[bool]] = None, + guest_agent_ready_timeout: Optional[pulumi.Input[int]] = None, + hastate: Optional[pulumi.Input[str]] = None, + hotplug: Optional[pulumi.Input[str]] = None, + ipconfig0: Optional[pulumi.Input[str]] = None, + ipconfig1: Optional[pulumi.Input[str]] = None, + ipconfig2: Optional[pulumi.Input[str]] = None, + iso: Optional[pulumi.Input[str]] = None, + kvm: Optional[pulumi.Input[bool]] = None, + mac: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + nameserver: Optional[pulumi.Input[str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMNetworkArgs']]]] = None, + nic: Optional[pulumi.Input[str]] = None, + numa: Optional[pulumi.Input[bool]] = None, + onboot: Optional[pulumi.Input[bool]] = None, + os_network_config: Optional[pulumi.Input[str]] = None, + os_type: Optional[pulumi.Input[str]] = None, + pool: Optional[pulumi.Input[str]] = None, + preprovision: Optional[pulumi.Input[bool]] = None, + qemu_os: Optional[pulumi.Input[str]] = None, + reboot_required: Optional[pulumi.Input[bool]] = None, + scsihw: Optional[pulumi.Input[str]] = None, + searchdomain: Optional[pulumi.Input[str]] = None, + serials: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMSerialArgs']]]] = None, + sockets: Optional[pulumi.Input[int]] = None, + ssh_forward_ip: Optional[pulumi.Input[str]] = None, + ssh_host: Optional[pulumi.Input[str]] = None, + ssh_port: Optional[pulumi.Input[str]] = None, + ssh_private_key: Optional[pulumi.Input[str]] = None, + ssh_user: Optional[pulumi.Input[str]] = None, + sshkeys: Optional[pulumi.Input[str]] = None, + storage: Optional[pulumi.Input[str]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[str]] = None, + target_node: Optional[pulumi.Input[str]] = None, + unused_disks: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMUnusedDiskArgs']]]] = None, + vcpus: Optional[pulumi.Input[int]] = None, + vgas: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMVgaArgs']]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + vmid: Optional[pulumi.Input[int]] = None): + """ + Input properties used for looking up and filtering QemuVM resources. + :param pulumi.Input[bool] reboot_required: Internal variable, true if any of the modified parameters require a reboot to take effect. + :param pulumi.Input[Sequence[pulumi.Input['QemuVMUnusedDiskArgs']]] unused_disks: Record unused disks in proxmox. This is intended to be read-only for now. + """ + if additional_wait is not None: + pulumi.set(__self__, "additional_wait", additional_wait) + if agent is not None: + pulumi.set(__self__, "agent", agent) + if args is not None: + pulumi.set(__self__, "args", args) + if balloon is not None: + pulumi.set(__self__, "balloon", balloon) + if bios is not None: + pulumi.set(__self__, "bios", bios) + if boot is not None: + pulumi.set(__self__, "boot", boot) + if bootdisk is not None: + pulumi.set(__self__, "bootdisk", bootdisk) + if bridge is not None: + warnings.warn("""Use `network.bridge` instead""", DeprecationWarning) + pulumi.log.warn("""bridge is deprecated: Use `network.bridge` instead""") + if bridge is not None: + pulumi.set(__self__, "bridge", bridge) + if ci_wait is not None: + pulumi.set(__self__, "ci_wait", ci_wait) + if cicustom is not None: + pulumi.set(__self__, "cicustom", cicustom) + if cipassword is not None: + pulumi.set(__self__, "cipassword", cipassword) + if ciuser is not None: + pulumi.set(__self__, "ciuser", ciuser) + if clone is not None: + pulumi.set(__self__, "clone", clone) + if clone_wait is not None: + pulumi.set(__self__, "clone_wait", clone_wait) + if cloudinit_cdrom_storage is not None: + pulumi.set(__self__, "cloudinit_cdrom_storage", cloudinit_cdrom_storage) + if cores is not None: + pulumi.set(__self__, "cores", cores) + if cpu is not None: + pulumi.set(__self__, "cpu", cpu) + if default_ipv4_address is not None: + pulumi.set(__self__, "default_ipv4_address", default_ipv4_address) + if define_connection_info is not None: + pulumi.set(__self__, "define_connection_info", define_connection_info) + if desc is not None: + pulumi.set(__self__, "desc", desc) + if disk_gb is not None: + warnings.warn("""Use `disk.size` instead""", DeprecationWarning) + pulumi.log.warn("""disk_gb is deprecated: Use `disk.size` instead""") + if disk_gb is not None: + pulumi.set(__self__, "disk_gb", disk_gb) + if disks is not None: + pulumi.set(__self__, "disks", disks) + if force_create is not None: + pulumi.set(__self__, "force_create", force_create) + if force_recreate_on_change_of is not None: + pulumi.set(__self__, "force_recreate_on_change_of", force_recreate_on_change_of) + if full_clone is not None: + pulumi.set(__self__, "full_clone", full_clone) + if guest_agent_ready_timeout is not None: + pulumi.set(__self__, "guest_agent_ready_timeout", guest_agent_ready_timeout) + if hastate is not None: + pulumi.set(__self__, "hastate", hastate) + if hotplug is not None: + pulumi.set(__self__, "hotplug", hotplug) + if ipconfig0 is not None: + pulumi.set(__self__, "ipconfig0", ipconfig0) + if ipconfig1 is not None: + pulumi.set(__self__, "ipconfig1", ipconfig1) + if ipconfig2 is not None: + pulumi.set(__self__, "ipconfig2", ipconfig2) + if iso is not None: + pulumi.set(__self__, "iso", iso) + if kvm is not None: + pulumi.set(__self__, "kvm", kvm) + if mac is not None: + warnings.warn("""Use `network.macaddr` to access the auto generated MAC address""", DeprecationWarning) + pulumi.log.warn("""mac is deprecated: Use `network.macaddr` to access the auto generated MAC address""") + if mac is not None: + pulumi.set(__self__, "mac", mac) + if memory is not None: + pulumi.set(__self__, "memory", memory) + if name is not None: + pulumi.set(__self__, "name", name) + if nameserver is not None: + pulumi.set(__self__, "nameserver", nameserver) + if networks is not None: + pulumi.set(__self__, "networks", networks) + if nic is not None: + warnings.warn("""Use `network` instead""", DeprecationWarning) + pulumi.log.warn("""nic is deprecated: Use `network` instead""") + if nic is not None: + pulumi.set(__self__, "nic", nic) + if numa is not None: + pulumi.set(__self__, "numa", numa) + if onboot is not None: + pulumi.set(__self__, "onboot", onboot) + if os_network_config is not None: + pulumi.set(__self__, "os_network_config", os_network_config) + if os_type is not None: + pulumi.set(__self__, "os_type", os_type) + if pool is not None: + pulumi.set(__self__, "pool", pool) + if preprovision is not None: + pulumi.set(__self__, "preprovision", preprovision) + if qemu_os is not None: + pulumi.set(__self__, "qemu_os", qemu_os) + if reboot_required is not None: + pulumi.set(__self__, "reboot_required", reboot_required) + if scsihw is not None: + pulumi.set(__self__, "scsihw", scsihw) + if searchdomain is not None: + pulumi.set(__self__, "searchdomain", searchdomain) + if serials is not None: + pulumi.set(__self__, "serials", serials) + if sockets is not None: + pulumi.set(__self__, "sockets", sockets) + if ssh_forward_ip is not None: + pulumi.set(__self__, "ssh_forward_ip", ssh_forward_ip) + if ssh_host is not None: + pulumi.set(__self__, "ssh_host", ssh_host) + if ssh_port is not None: + pulumi.set(__self__, "ssh_port", ssh_port) + if ssh_private_key is not None: + pulumi.set(__self__, "ssh_private_key", ssh_private_key) + if ssh_user is not None: + pulumi.set(__self__, "ssh_user", ssh_user) + if sshkeys is not None: + pulumi.set(__self__, "sshkeys", sshkeys) + if storage is not None: + warnings.warn("""Use `disk.storage` instead""", DeprecationWarning) + pulumi.log.warn("""storage is deprecated: Use `disk.storage` instead""") + if storage is not None: + pulumi.set(__self__, "storage", storage) + if storage_type is not None: + warnings.warn("""Use `disk.type` instead""", DeprecationWarning) + pulumi.log.warn("""storage_type is deprecated: Use `disk.type` instead""") + if storage_type is not None: + pulumi.set(__self__, "storage_type", storage_type) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if target_node is not None: + pulumi.set(__self__, "target_node", target_node) + if unused_disks is not None: + pulumi.set(__self__, "unused_disks", unused_disks) + if vcpus is not None: + pulumi.set(__self__, "vcpus", vcpus) + if vgas is not None: + pulumi.set(__self__, "vgas", vgas) + if vlan is not None: + warnings.warn("""Use `network.tag` instead""", DeprecationWarning) + pulumi.log.warn("""vlan is deprecated: Use `network.tag` instead""") + if vlan is not None: + pulumi.set(__self__, "vlan", vlan) + if vmid is not None: + pulumi.set(__self__, "vmid", vmid) + + @property + @pulumi.getter(name="additionalWait") + def additional_wait(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "additional_wait") + + @additional_wait.setter + def additional_wait(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "additional_wait", value) + + @property + @pulumi.getter + def agent(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "agent") + + @agent.setter + def agent(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "agent", value) + + @property + @pulumi.getter + def args(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "args") + + @args.setter + def args(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "args", value) + + @property + @pulumi.getter + def balloon(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "balloon") + + @balloon.setter + def balloon(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "balloon", value) + + @property + @pulumi.getter + def bios(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "bios") + + @bios.setter + def bios(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bios", value) + + @property + @pulumi.getter + def boot(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "boot") + + @boot.setter + def boot(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "boot", value) + + @property + @pulumi.getter + def bootdisk(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "bootdisk") + + @bootdisk.setter + def bootdisk(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bootdisk", value) + + @property + @pulumi.getter + def bridge(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "bridge") + + @bridge.setter + def bridge(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bridge", value) + + @property + @pulumi.getter(name="ciWait") + def ci_wait(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "ci_wait") + + @ci_wait.setter + def ci_wait(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ci_wait", value) + + @property + @pulumi.getter + def cicustom(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cicustom") + + @cicustom.setter + def cicustom(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cicustom", value) + + @property + @pulumi.getter + def cipassword(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cipassword") + + @cipassword.setter + def cipassword(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cipassword", value) + + @property + @pulumi.getter + def ciuser(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ciuser") + + @ciuser.setter + def ciuser(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ciuser", value) + + @property + @pulumi.getter + def clone(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "clone") + + @clone.setter + def clone(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "clone", value) + + @property + @pulumi.getter(name="cloneWait") + def clone_wait(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "clone_wait") + + @clone_wait.setter + def clone_wait(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "clone_wait", value) + + @property + @pulumi.getter(name="cloudinitCdromStorage") + def cloudinit_cdrom_storage(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cloudinit_cdrom_storage") + + @cloudinit_cdrom_storage.setter + def cloudinit_cdrom_storage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloudinit_cdrom_storage", value) + + @property + @pulumi.getter + def cores(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "cores") + + @cores.setter + def cores(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cores", value) + + @property + @pulumi.getter + def cpu(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cpu") + + @cpu.setter + def cpu(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cpu", value) + + @property + @pulumi.getter(name="defaultIpv4Address") + def default_ipv4_address(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "default_ipv4_address") + + @default_ipv4_address.setter + def default_ipv4_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_ipv4_address", value) + + @property + @pulumi.getter(name="defineConnectionInfo") + def define_connection_info(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "define_connection_info") + + @define_connection_info.setter + def define_connection_info(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "define_connection_info", value) + + @property + @pulumi.getter + def desc(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "desc") + + @desc.setter + def desc(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "desc", value) + + @property + @pulumi.getter(name="diskGb") + def disk_gb(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "disk_gb") + + @disk_gb.setter + def disk_gb(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "disk_gb", value) + + @property + @pulumi.getter + def disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMDiskArgs']]]]: + return pulumi.get(self, "disks") + + @disks.setter + def disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMDiskArgs']]]]): + pulumi.set(self, "disks", value) + + @property + @pulumi.getter(name="forceCreate") + def force_create(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "force_create") + + @force_create.setter + def force_create(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force_create", value) + + @property + @pulumi.getter(name="forceRecreateOnChangeOf") + def force_recreate_on_change_of(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "force_recreate_on_change_of") + + @force_recreate_on_change_of.setter + def force_recreate_on_change_of(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "force_recreate_on_change_of", value) + + @property + @pulumi.getter(name="fullClone") + def full_clone(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "full_clone") + + @full_clone.setter + def full_clone(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "full_clone", value) + + @property + @pulumi.getter(name="guestAgentReadyTimeout") + def guest_agent_ready_timeout(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "guest_agent_ready_timeout") + + @guest_agent_ready_timeout.setter + def guest_agent_ready_timeout(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "guest_agent_ready_timeout", value) + + @property + @pulumi.getter + def hastate(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hastate") + + @hastate.setter + def hastate(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hastate", value) + + @property + @pulumi.getter + def hotplug(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "hotplug") + + @hotplug.setter + def hotplug(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hotplug", value) + + @property + @pulumi.getter + def ipconfig0(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ipconfig0") + + @ipconfig0.setter + def ipconfig0(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ipconfig0", value) + + @property + @pulumi.getter + def ipconfig1(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ipconfig1") + + @ipconfig1.setter + def ipconfig1(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ipconfig1", value) + + @property + @pulumi.getter + def ipconfig2(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ipconfig2") + + @ipconfig2.setter + def ipconfig2(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ipconfig2", value) + + @property + @pulumi.getter + def iso(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "iso") + + @iso.setter + def iso(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "iso", value) + + @property + @pulumi.getter + def kvm(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "kvm") + + @kvm.setter + def kvm(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "kvm", value) + + @property + @pulumi.getter + def mac(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "mac") + + @mac.setter + def mac(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mac", value) + + @property + @pulumi.getter + def memory(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "memory") + + @memory.setter + def memory(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "memory", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def nameserver(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "nameserver") + + @nameserver.setter + def nameserver(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "nameserver", value) + + @property + @pulumi.getter + def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMNetworkArgs']]]]: + return pulumi.get(self, "networks") + + @networks.setter + def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMNetworkArgs']]]]): + pulumi.set(self, "networks", value) + + @property + @pulumi.getter + def nic(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "nic") + + @nic.setter + def nic(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "nic", value) + + @property + @pulumi.getter + def numa(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "numa") + + @numa.setter + def numa(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "numa", value) + + @property + @pulumi.getter + def onboot(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "onboot") + + @onboot.setter + def onboot(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "onboot", value) + + @property + @pulumi.getter(name="osNetworkConfig") + def os_network_config(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "os_network_config") + + @os_network_config.setter + def os_network_config(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "os_network_config", value) + + @property + @pulumi.getter(name="osType") + def os_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "os_type") + + @os_type.setter + def os_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "os_type", value) + + @property + @pulumi.getter + def pool(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "pool") + + @pool.setter + def pool(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "pool", value) + + @property + @pulumi.getter + def preprovision(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "preprovision") + + @preprovision.setter + def preprovision(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "preprovision", value) + + @property + @pulumi.getter(name="qemuOs") + def qemu_os(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "qemu_os") + + @qemu_os.setter + def qemu_os(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "qemu_os", value) + + @property + @pulumi.getter(name="rebootRequired") + def reboot_required(self) -> Optional[pulumi.Input[bool]]: + """ + Internal variable, true if any of the modified parameters require a reboot to take effect. + """ + return pulumi.get(self, "reboot_required") + + @reboot_required.setter + def reboot_required(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reboot_required", value) + + @property + @pulumi.getter + def scsihw(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "scsihw") + + @scsihw.setter + def scsihw(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "scsihw", value) + + @property + @pulumi.getter + def searchdomain(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "searchdomain") + + @searchdomain.setter + def searchdomain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "searchdomain", value) + + @property + @pulumi.getter + def serials(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMSerialArgs']]]]: + return pulumi.get(self, "serials") + + @serials.setter + def serials(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMSerialArgs']]]]): + pulumi.set(self, "serials", value) + + @property + @pulumi.getter + def sockets(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "sockets") + + @sockets.setter + def sockets(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "sockets", value) + + @property + @pulumi.getter(name="sshForwardIp") + def ssh_forward_ip(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_forward_ip") + + @ssh_forward_ip.setter + def ssh_forward_ip(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_forward_ip", value) + + @property + @pulumi.getter(name="sshHost") + def ssh_host(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_host") + + @ssh_host.setter + def ssh_host(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_host", value) + + @property + @pulumi.getter(name="sshPort") + def ssh_port(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_port") + + @ssh_port.setter + def ssh_port(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_port", value) + + @property + @pulumi.getter(name="sshPrivateKey") + def ssh_private_key(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_private_key") + + @ssh_private_key.setter + def ssh_private_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_private_key", value) + + @property + @pulumi.getter(name="sshUser") + def ssh_user(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ssh_user") + + @ssh_user.setter + def ssh_user(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ssh_user", value) + + @property + @pulumi.getter + def sshkeys(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "sshkeys") + + @sshkeys.setter + def sshkeys(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sshkeys", value) + + @property + @pulumi.getter + def storage(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "storage") + + @storage.setter + def storage(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage", value) + + @property + @pulumi.getter(name="storageType") + def storage_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "storage_type") + + @storage_type.setter + def storage_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_type", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="targetNode") + def target_node(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "target_node") + + @target_node.setter + def target_node(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "target_node", value) + + @property + @pulumi.getter(name="unusedDisks") + def unused_disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMUnusedDiskArgs']]]]: + """ + Record unused disks in proxmox. This is intended to be read-only for now. + """ + return pulumi.get(self, "unused_disks") + + @unused_disks.setter + def unused_disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMUnusedDiskArgs']]]]): + pulumi.set(self, "unused_disks", value) + + @property + @pulumi.getter + def vcpus(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vcpus") + + @vcpus.setter + def vcpus(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vcpus", value) + + @property + @pulumi.getter + def vgas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMVgaArgs']]]]: + return pulumi.get(self, "vgas") + + @vgas.setter + def vgas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['QemuVMVgaArgs']]]]): + pulumi.set(self, "vgas", value) + + @property + @pulumi.getter + def vlan(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vlan") + + @vlan.setter + def vlan(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vlan", value) + + @property + @pulumi.getter + def vmid(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vmid") + + @vmid.setter + def vmid(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vmid", value) class QemuVM(pulumi.CustomResource): + @overload def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, @@ -78,20 +1667,97 @@ def __init__(__self__, vgas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['QemuVMVgaArgs']]]]] = None, vlan: Optional[pulumi.Input[int]] = None, vmid: Optional[pulumi.Input[int]] = None, - __props__=None, - __name__=None, - __opts__=None): + __props__=None): """ Create a QemuVM resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. """ - if __name__ is not None: - warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) - resource_name = __name__ - if __opts__ is not None: - warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) - opts = __opts__ + ... + @overload + def __init__(__self__, + resource_name: str, + args: QemuVMArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a QemuVM resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param QemuVMArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(QemuVMArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + additional_wait: Optional[pulumi.Input[int]] = None, + agent: Optional[pulumi.Input[int]] = None, + args: Optional[pulumi.Input[str]] = None, + balloon: Optional[pulumi.Input[int]] = None, + bios: Optional[pulumi.Input[str]] = None, + boot: Optional[pulumi.Input[str]] = None, + bootdisk: Optional[pulumi.Input[str]] = None, + bridge: Optional[pulumi.Input[str]] = None, + ci_wait: Optional[pulumi.Input[int]] = None, + cicustom: Optional[pulumi.Input[str]] = None, + cipassword: Optional[pulumi.Input[str]] = None, + ciuser: Optional[pulumi.Input[str]] = None, + clone: Optional[pulumi.Input[str]] = None, + clone_wait: Optional[pulumi.Input[int]] = None, + cloudinit_cdrom_storage: Optional[pulumi.Input[str]] = None, + cores: Optional[pulumi.Input[int]] = None, + cpu: Optional[pulumi.Input[str]] = None, + define_connection_info: Optional[pulumi.Input[bool]] = None, + desc: Optional[pulumi.Input[str]] = None, + disk_gb: Optional[pulumi.Input[float]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['QemuVMDiskArgs']]]]] = None, + force_create: Optional[pulumi.Input[bool]] = None, + force_recreate_on_change_of: Optional[pulumi.Input[str]] = None, + full_clone: Optional[pulumi.Input[bool]] = None, + guest_agent_ready_timeout: Optional[pulumi.Input[int]] = None, + hastate: Optional[pulumi.Input[str]] = None, + hotplug: Optional[pulumi.Input[str]] = None, + ipconfig0: Optional[pulumi.Input[str]] = None, + ipconfig1: Optional[pulumi.Input[str]] = None, + ipconfig2: Optional[pulumi.Input[str]] = None, + iso: Optional[pulumi.Input[str]] = None, + kvm: Optional[pulumi.Input[bool]] = None, + mac: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + nameserver: Optional[pulumi.Input[str]] = None, + networks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['QemuVMNetworkArgs']]]]] = None, + nic: Optional[pulumi.Input[str]] = None, + numa: Optional[pulumi.Input[bool]] = None, + onboot: Optional[pulumi.Input[bool]] = None, + os_network_config: Optional[pulumi.Input[str]] = None, + os_type: Optional[pulumi.Input[str]] = None, + pool: Optional[pulumi.Input[str]] = None, + preprovision: Optional[pulumi.Input[bool]] = None, + qemu_os: Optional[pulumi.Input[str]] = None, + scsihw: Optional[pulumi.Input[str]] = None, + searchdomain: Optional[pulumi.Input[str]] = None, + serials: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['QemuVMSerialArgs']]]]] = None, + sockets: Optional[pulumi.Input[int]] = None, + ssh_forward_ip: Optional[pulumi.Input[str]] = None, + ssh_private_key: Optional[pulumi.Input[str]] = None, + ssh_user: Optional[pulumi.Input[str]] = None, + sshkeys: Optional[pulumi.Input[str]] = None, + storage: Optional[pulumi.Input[str]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[str]] = None, + target_node: Optional[pulumi.Input[str]] = None, + vcpus: Optional[pulumi.Input[int]] = None, + vgas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['QemuVMVgaArgs']]]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + vmid: Optional[pulumi.Input[int]] = None, + __props__=None): if opts is None: opts = pulumi.ResourceOptions() if not isinstance(opts, pulumi.ResourceOptions): @@ -101,97 +1767,97 @@ def __init__(__self__, if opts.id is None: if __props__ is not None: raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = dict() - - __props__['additional_wait'] = additional_wait - __props__['agent'] = agent - __props__['args'] = args - __props__['balloon'] = balloon - __props__['bios'] = bios - __props__['boot'] = boot - __props__['bootdisk'] = bootdisk - if bridge is not None: - warnings.warn("Use `network.bridge` instead", DeprecationWarning) - pulumi.log.warn("bridge is deprecated: Use `network.bridge` instead") - __props__['bridge'] = bridge - __props__['ci_wait'] = ci_wait - __props__['cicustom'] = cicustom - __props__['cipassword'] = cipassword - __props__['ciuser'] = ciuser - __props__['clone'] = clone - __props__['clone_wait'] = clone_wait - __props__['cloudinit_cdrom_storage'] = cloudinit_cdrom_storage - __props__['cores'] = cores - __props__['cpu'] = cpu - __props__['define_connection_info'] = define_connection_info - __props__['desc'] = desc - if disk_gb is not None: - warnings.warn("Use `disk.size` instead", DeprecationWarning) - pulumi.log.warn("disk_gb is deprecated: Use `disk.size` instead") - __props__['disk_gb'] = disk_gb - __props__['disks'] = disks - __props__['force_create'] = force_create - __props__['force_recreate_on_change_of'] = force_recreate_on_change_of - __props__['full_clone'] = full_clone - __props__['guest_agent_ready_timeout'] = guest_agent_ready_timeout - __props__['hastate'] = hastate - __props__['hotplug'] = hotplug - __props__['ipconfig0'] = ipconfig0 - __props__['ipconfig1'] = ipconfig1 - __props__['ipconfig2'] = ipconfig2 - __props__['iso'] = iso - __props__['kvm'] = kvm - if mac is not None: - warnings.warn("Use `network.macaddr` to access the auto generated MAC address", DeprecationWarning) - pulumi.log.warn("mac is deprecated: Use `network.macaddr` to access the auto generated MAC address") - __props__['mac'] = mac - __props__['memory'] = memory - __props__['name'] = name - __props__['nameserver'] = nameserver - __props__['networks'] = networks - if nic is not None: - warnings.warn("Use `network` instead", DeprecationWarning) - pulumi.log.warn("nic is deprecated: Use `network` instead") - __props__['nic'] = nic - __props__['numa'] = numa - __props__['onboot'] = onboot - __props__['os_network_config'] = os_network_config - __props__['os_type'] = os_type - __props__['pool'] = pool - __props__['preprovision'] = preprovision - __props__['qemu_os'] = qemu_os - __props__['scsihw'] = scsihw - __props__['searchdomain'] = searchdomain - __props__['serials'] = serials - __props__['sockets'] = sockets - __props__['ssh_forward_ip'] = ssh_forward_ip - __props__['ssh_private_key'] = ssh_private_key - __props__['ssh_user'] = ssh_user - __props__['sshkeys'] = sshkeys - if storage is not None: - warnings.warn("Use `disk.storage` instead", DeprecationWarning) - pulumi.log.warn("storage is deprecated: Use `disk.storage` instead") - __props__['storage'] = storage - if storage_type is not None: - warnings.warn("Use `disk.type` instead", DeprecationWarning) - pulumi.log.warn("storage_type is deprecated: Use `disk.type` instead") - __props__['storage_type'] = storage_type - __props__['tags'] = tags - if target_node is None: + __props__ = QemuVMArgs.__new__(QemuVMArgs) + + __props__.__dict__["additional_wait"] = additional_wait + __props__.__dict__["agent"] = agent + __props__.__dict__["args"] = args + __props__.__dict__["balloon"] = balloon + __props__.__dict__["bios"] = bios + __props__.__dict__["boot"] = boot + __props__.__dict__["bootdisk"] = bootdisk + if bridge is not None and not opts.urn: + warnings.warn("""Use `network.bridge` instead""", DeprecationWarning) + pulumi.log.warn("""bridge is deprecated: Use `network.bridge` instead""") + __props__.__dict__["bridge"] = bridge + __props__.__dict__["ci_wait"] = ci_wait + __props__.__dict__["cicustom"] = cicustom + __props__.__dict__["cipassword"] = cipassword + __props__.__dict__["ciuser"] = ciuser + __props__.__dict__["clone"] = clone + __props__.__dict__["clone_wait"] = clone_wait + __props__.__dict__["cloudinit_cdrom_storage"] = cloudinit_cdrom_storage + __props__.__dict__["cores"] = cores + __props__.__dict__["cpu"] = cpu + __props__.__dict__["define_connection_info"] = define_connection_info + __props__.__dict__["desc"] = desc + if disk_gb is not None and not opts.urn: + warnings.warn("""Use `disk.size` instead""", DeprecationWarning) + pulumi.log.warn("""disk_gb is deprecated: Use `disk.size` instead""") + __props__.__dict__["disk_gb"] = disk_gb + __props__.__dict__["disks"] = disks + __props__.__dict__["force_create"] = force_create + __props__.__dict__["force_recreate_on_change_of"] = force_recreate_on_change_of + __props__.__dict__["full_clone"] = full_clone + __props__.__dict__["guest_agent_ready_timeout"] = guest_agent_ready_timeout + __props__.__dict__["hastate"] = hastate + __props__.__dict__["hotplug"] = hotplug + __props__.__dict__["ipconfig0"] = ipconfig0 + __props__.__dict__["ipconfig1"] = ipconfig1 + __props__.__dict__["ipconfig2"] = ipconfig2 + __props__.__dict__["iso"] = iso + __props__.__dict__["kvm"] = kvm + if mac is not None and not opts.urn: + warnings.warn("""Use `network.macaddr` to access the auto generated MAC address""", DeprecationWarning) + pulumi.log.warn("""mac is deprecated: Use `network.macaddr` to access the auto generated MAC address""") + __props__.__dict__["mac"] = mac + __props__.__dict__["memory"] = memory + __props__.__dict__["name"] = name + __props__.__dict__["nameserver"] = nameserver + __props__.__dict__["networks"] = networks + if nic is not None and not opts.urn: + warnings.warn("""Use `network` instead""", DeprecationWarning) + pulumi.log.warn("""nic is deprecated: Use `network` instead""") + __props__.__dict__["nic"] = nic + __props__.__dict__["numa"] = numa + __props__.__dict__["onboot"] = onboot + __props__.__dict__["os_network_config"] = os_network_config + __props__.__dict__["os_type"] = os_type + __props__.__dict__["pool"] = pool + __props__.__dict__["preprovision"] = preprovision + __props__.__dict__["qemu_os"] = qemu_os + __props__.__dict__["scsihw"] = scsihw + __props__.__dict__["searchdomain"] = searchdomain + __props__.__dict__["serials"] = serials + __props__.__dict__["sockets"] = sockets + __props__.__dict__["ssh_forward_ip"] = ssh_forward_ip + __props__.__dict__["ssh_private_key"] = ssh_private_key + __props__.__dict__["ssh_user"] = ssh_user + __props__.__dict__["sshkeys"] = sshkeys + if storage is not None and not opts.urn: + warnings.warn("""Use `disk.storage` instead""", DeprecationWarning) + pulumi.log.warn("""storage is deprecated: Use `disk.storage` instead""") + __props__.__dict__["storage"] = storage + if storage_type is not None and not opts.urn: + warnings.warn("""Use `disk.type` instead""", DeprecationWarning) + pulumi.log.warn("""storage_type is deprecated: Use `disk.type` instead""") + __props__.__dict__["storage_type"] = storage_type + __props__.__dict__["tags"] = tags + if target_node is None and not opts.urn: raise TypeError("Missing required property 'target_node'") - __props__['target_node'] = target_node - __props__['vcpus'] = vcpus - __props__['vgas'] = vgas - if vlan is not None: - warnings.warn("Use `network.tag` instead", DeprecationWarning) - pulumi.log.warn("vlan is deprecated: Use `network.tag` instead") - __props__['vlan'] = vlan - __props__['vmid'] = vmid - __props__['default_ipv4_address'] = None - __props__['reboot_required'] = None - __props__['ssh_host'] = None - __props__['ssh_port'] = None - __props__['unused_disks'] = None + __props__.__dict__["target_node"] = target_node + __props__.__dict__["vcpus"] = vcpus + __props__.__dict__["vgas"] = vgas + if vlan is not None and not opts.urn: + warnings.warn("""Use `network.tag` instead""", DeprecationWarning) + pulumi.log.warn("""vlan is deprecated: Use `network.tag` instead""") + __props__.__dict__["vlan"] = vlan + __props__.__dict__["vmid"] = vmid + __props__.__dict__["default_ipv4_address"] = None + __props__.__dict__["reboot_required"] = None + __props__.__dict__["ssh_host"] = None + __props__.__dict__["ssh_port"] = None + __props__.__dict__["unused_disks"] = None super(QemuVM, __self__).__init__( 'proxmoxve:index/qemuVM:QemuVM', resource_name, @@ -280,74 +1946,74 @@ def get(resource_name: str, """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) - __props__ = dict() - - __props__["additional_wait"] = additional_wait - __props__["agent"] = agent - __props__["args"] = args - __props__["balloon"] = balloon - __props__["bios"] = bios - __props__["boot"] = boot - __props__["bootdisk"] = bootdisk - __props__["bridge"] = bridge - __props__["ci_wait"] = ci_wait - __props__["cicustom"] = cicustom - __props__["cipassword"] = cipassword - __props__["ciuser"] = ciuser - __props__["clone"] = clone - __props__["clone_wait"] = clone_wait - __props__["cloudinit_cdrom_storage"] = cloudinit_cdrom_storage - __props__["cores"] = cores - __props__["cpu"] = cpu - __props__["default_ipv4_address"] = default_ipv4_address - __props__["define_connection_info"] = define_connection_info - __props__["desc"] = desc - __props__["disk_gb"] = disk_gb - __props__["disks"] = disks - __props__["force_create"] = force_create - __props__["force_recreate_on_change_of"] = force_recreate_on_change_of - __props__["full_clone"] = full_clone - __props__["guest_agent_ready_timeout"] = guest_agent_ready_timeout - __props__["hastate"] = hastate - __props__["hotplug"] = hotplug - __props__["ipconfig0"] = ipconfig0 - __props__["ipconfig1"] = ipconfig1 - __props__["ipconfig2"] = ipconfig2 - __props__["iso"] = iso - __props__["kvm"] = kvm - __props__["mac"] = mac - __props__["memory"] = memory - __props__["name"] = name - __props__["nameserver"] = nameserver - __props__["networks"] = networks - __props__["nic"] = nic - __props__["numa"] = numa - __props__["onboot"] = onboot - __props__["os_network_config"] = os_network_config - __props__["os_type"] = os_type - __props__["pool"] = pool - __props__["preprovision"] = preprovision - __props__["qemu_os"] = qemu_os - __props__["reboot_required"] = reboot_required - __props__["scsihw"] = scsihw - __props__["searchdomain"] = searchdomain - __props__["serials"] = serials - __props__["sockets"] = sockets - __props__["ssh_forward_ip"] = ssh_forward_ip - __props__["ssh_host"] = ssh_host - __props__["ssh_port"] = ssh_port - __props__["ssh_private_key"] = ssh_private_key - __props__["ssh_user"] = ssh_user - __props__["sshkeys"] = sshkeys - __props__["storage"] = storage - __props__["storage_type"] = storage_type - __props__["tags"] = tags - __props__["target_node"] = target_node - __props__["unused_disks"] = unused_disks - __props__["vcpus"] = vcpus - __props__["vgas"] = vgas - __props__["vlan"] = vlan - __props__["vmid"] = vmid + __props__ = _QemuVMState.__new__(_QemuVMState) + + __props__.__dict__["additional_wait"] = additional_wait + __props__.__dict__["agent"] = agent + __props__.__dict__["args"] = args + __props__.__dict__["balloon"] = balloon + __props__.__dict__["bios"] = bios + __props__.__dict__["boot"] = boot + __props__.__dict__["bootdisk"] = bootdisk + __props__.__dict__["bridge"] = bridge + __props__.__dict__["ci_wait"] = ci_wait + __props__.__dict__["cicustom"] = cicustom + __props__.__dict__["cipassword"] = cipassword + __props__.__dict__["ciuser"] = ciuser + __props__.__dict__["clone"] = clone + __props__.__dict__["clone_wait"] = clone_wait + __props__.__dict__["cloudinit_cdrom_storage"] = cloudinit_cdrom_storage + __props__.__dict__["cores"] = cores + __props__.__dict__["cpu"] = cpu + __props__.__dict__["default_ipv4_address"] = default_ipv4_address + __props__.__dict__["define_connection_info"] = define_connection_info + __props__.__dict__["desc"] = desc + __props__.__dict__["disk_gb"] = disk_gb + __props__.__dict__["disks"] = disks + __props__.__dict__["force_create"] = force_create + __props__.__dict__["force_recreate_on_change_of"] = force_recreate_on_change_of + __props__.__dict__["full_clone"] = full_clone + __props__.__dict__["guest_agent_ready_timeout"] = guest_agent_ready_timeout + __props__.__dict__["hastate"] = hastate + __props__.__dict__["hotplug"] = hotplug + __props__.__dict__["ipconfig0"] = ipconfig0 + __props__.__dict__["ipconfig1"] = ipconfig1 + __props__.__dict__["ipconfig2"] = ipconfig2 + __props__.__dict__["iso"] = iso + __props__.__dict__["kvm"] = kvm + __props__.__dict__["mac"] = mac + __props__.__dict__["memory"] = memory + __props__.__dict__["name"] = name + __props__.__dict__["nameserver"] = nameserver + __props__.__dict__["networks"] = networks + __props__.__dict__["nic"] = nic + __props__.__dict__["numa"] = numa + __props__.__dict__["onboot"] = onboot + __props__.__dict__["os_network_config"] = os_network_config + __props__.__dict__["os_type"] = os_type + __props__.__dict__["pool"] = pool + __props__.__dict__["preprovision"] = preprovision + __props__.__dict__["qemu_os"] = qemu_os + __props__.__dict__["reboot_required"] = reboot_required + __props__.__dict__["scsihw"] = scsihw + __props__.__dict__["searchdomain"] = searchdomain + __props__.__dict__["serials"] = serials + __props__.__dict__["sockets"] = sockets + __props__.__dict__["ssh_forward_ip"] = ssh_forward_ip + __props__.__dict__["ssh_host"] = ssh_host + __props__.__dict__["ssh_port"] = ssh_port + __props__.__dict__["ssh_private_key"] = ssh_private_key + __props__.__dict__["ssh_user"] = ssh_user + __props__.__dict__["sshkeys"] = sshkeys + __props__.__dict__["storage"] = storage + __props__.__dict__["storage_type"] = storage_type + __props__.__dict__["tags"] = tags + __props__.__dict__["target_node"] = target_node + __props__.__dict__["unused_disks"] = unused_disks + __props__.__dict__["vcpus"] = vcpus + __props__.__dict__["vgas"] = vgas + __props__.__dict__["vlan"] = vlan + __props__.__dict__["vmid"] = vmid return QemuVM(resource_name, opts=opts, __props__=__props__) @property @@ -686,9 +2352,3 @@ def vlan(self) -> pulumi.Output[Optional[int]]: def vmid(self) -> pulumi.Output[int]: return pulumi.get(self, "vmid") - def translate_output_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop - - def translate_input_property(self, prop): - return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop - diff --git a/sdk/python/setup.py b/sdk/python/setup.py index 1252815..81022d0 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -8,31 +8,37 @@ from subprocess import check_call +VERSION = "0.0.0" +PLUGIN_VERSION = "0.0.0" + class InstallPluginCommand(install): def run(self): install.run(self) try: - check_call(['pulumi', 'plugin', 'install', 'resource', 'proxmoxve', '${PLUGIN_VERSION}']) + check_call(['pulumi', 'plugin', 'install', 'resource', 'proxmoxve', PLUGIN_VERSION]) except OSError as error: if error.errno == errno.ENOENT: - print(""" + print(f""" There was an error installing the proxmoxve resource provider plugin. It looks like `pulumi` is not installed on your system. Please visit https://pulumi.com/ to install the Pulumi CLI. You may try manually installing the plugin by running - `pulumi plugin install resource proxmoxve ${PLUGIN_VERSION}` + `pulumi plugin install resource proxmoxve {PLUGIN_VERSION}` """) else: raise def readme(): - with open('README.md', encoding='utf-8') as f: - return f.read() + try: + with open('README.md', encoding='utf-8') as f: + return f.read() + except FileNotFoundError: + return "proxmoxve Pulumi Package - Development Version" setup(name='pulumi_proxmoxve', - version='${VERSION}', + version=VERSION, description="A Pulumi package for creating and managing proxmoxve cloud resources.", long_description=readme(), long_description_content_type='text/markdown', @@ -48,12 +54,12 @@ def readme(): packages=find_packages(), package_data={ 'pulumi_proxmoxve': [ - 'py.typed' + 'py.typed', ] }, install_requires=[ 'parver>=0.2.1', - 'pulumi>=2.9.0,<3.0.0', + 'pulumi>=3.0.0,<4.0.0', 'semver>=2.8.1' ], zip_safe=False)