wip: init go provider

This commit is contained in:
2025-12-06 01:34:42 -05:00
parent ce4fee82c0
commit ef3fde0b79
40 changed files with 10962 additions and 181 deletions

View File

@@ -2,7 +2,7 @@ VERSION 0.8
# tfgen builds the tfgen binary and nodejs TypeScript SDK
tfgen:
FROM golang:1.24.2
FROM golang:1.25.4
WORKDIR /go/src/git.kalinow.ski/nimbus/pulumi-incus/provider
ENV WORKING_DIR=/go/src/git.kalinow.ski/nimbus/pulumi-incus
# ENV PULUMI_HOME=$(WORKING_DIR)/.pulumi
@@ -13,15 +13,15 @@ tfgen:
ENV PULUMI_HOME=${WORKING_DIR}/.pulumi
ENV PATH=${WORKING_DIR}/.pulumi/bin:$PATH
RUN curl -fsSL https://get.pulumi.com | HOME=${WORKING_DIR} sh -s -- --version "$(cat .pulumi/version)"
RUN pulumi plugin install converter terraform 1.0.16
RUN pulumi plugin install converter terraform 1.2.4
RUN go mod download
ENV PROVIDER_VERSION=1.0.0-beta.1
ENV PROVIDER_VERSION=1.0.0-beta.2
ENV LDFLAGS_PROJ_VERSION="-X git.kalinow.ski/nimbus/pulumi-incus/provider/pkg/version.Version=${PROVIDER_VERSION}"
ENV PULUMI_CONVERT=1
ENV PULUMI_CONVERT_EXAMPLES_CACHE_DIR=/go/src/git.kalinow.ski/nimbus/pulumi-incus/provider/.pulumi/examples-cache
ENV PULUMI_DISABLE_AUTOMATIC_PLUGIN_ACQUISITION=1
ENV PULUMI_MISSING_DOCS_ERROR=false
COPY --dir provider/resources.go provider/pkg .
COPY provider/cmd/pulumi-tfgen-incus cmd/pulumi-tfgen-incus
RUN echo '{}' > cmd/pulumi-resource-incus/bridge-metadata.json
@@ -35,7 +35,7 @@ tfgen:
# nodejs builds the nodejs SDK using the generated tfgen file
nodejs:
FROM node:23-bookworm
FROM node:24-bookworm
WORKDIR /root/sdk/nodejs
RUN corepack enable pnpm
COPY scripts/clean-package-json.js /bin
@@ -50,7 +50,7 @@ nodejs:
pnpm config set -g -- '//git.kalinow.ski/api/packages/kiterun/npm/:_authToken' "$TOKEN" && \
pnpm publish . && \
rm /root/.npmrc
# provider builds and publishes the provider binaries
provider:
FROM +tfgen
@@ -76,5 +76,5 @@ BINARY:
RUN cd $WORKING_DIR/provider && GOOS=$GOOS GOARCH=$GOARCH CGO_ENABLED=0 go build \
-o ../bin/$GOOS-$GOARCH/pulumi-resource-incus -ldflags "${LDFLAGS_PROJ_VERSION} -s -w" \
git.kalinow.ski/nimbus/pulumi-incus/provider/cmd/pulumi-resource-incus
RUN cd $WORKING_DIR && tar --gzip -cf /root/dist/pulumi-resource-incus-v${PROVIDER_VERSION}-$GOOS-$GOARCH.tar.gz \
RUN cd $WORKING_DIR && tar --gzip -cf /root/dist/pulumi-resource-incus-v${PROVIDER_VERSION}-$GOOS-$GOARCH.tar.gz \
README.md LICENSE -C bin/$GOOS-$GOARCH .

View File

@@ -1,9 +1,8 @@
import * as pulumi from "@pulumi/pulumi";
import * as incus from "@kiterun/incus";
const resource = new incus.Instance("instance1", {
name: "instance1",
image: "images:ubuntu/22.04",
image: "images:ubuntu/24.04",
project: "default",
config: {
"limits.cpu": "4",

View File

@@ -1,13 +1,16 @@
{
"name": "basic",
"devDependencies": {
"@types/node": "^18.19.87"
"@types/node": "^24.1.0"
},
"dependencies": {
"@kiterun/incus": "1.0.0-beta.1",
"@pulumi/pulumi": "^3.165.0"
"@pulumi/pulumi": "^3.186.0"
},
"pnpm": {
"overrides": {}
}
"overrides": {
"@kiterun/incus": "link:../../sdk/nodejs/bin"
}
},
"packageManager": "pnpm@10.23.0+sha512.21c4e5698002ade97e4efe8b8b4a89a8de3c85a37919f957e7a0f30f38fbc5bbdd05980ffe29179b2fb6e6e691242e098d945d1601772cad0fef5fb6411e2a4b"
}

View File

@@ -1,19 +1,16 @@
module git.kalinow.ski/nimbus/pulumi-incus/provider
go 1.23.7
toolchain go1.24.2
go 1.25.5
replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20250221232320-8d4cfd37a3cd
replace github.com/lxc/terraform-provider-incus/shim => ./shim
require (
github.com/lxc/terraform-provider-incus/shim v0.0.0-00010101000000-000000000000
github.com/lxc/terraform-provider-incus/shim v1.0.0
github.com/pulumi/pulumi-terraform-bridge/v3 v3.106.0
github.com/pulumi/pulumi/pkg/v3 v3.160.0
github.com/pulumi/pulumi/sdk/v3 v3.160.0
)
require (

View File

@@ -1,49 +1,73 @@
module github.com/lxc/terraform-provider-incus/shim
go 1.23.7
go 1.25.5
require github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.1 // indirect
require github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1 // indirect
require (
github.com/hashicorp/terraform-plugin-framework v1.14.1
github.com/lxc/terraform-provider-incus v0.3.1
github.com/hashicorp/terraform-plugin-framework v1.16.1
github.com/lxc/terraform-provider-incus v1.0.1
)
require (
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
github.com/apex/log v1.9.0 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/containerd/log v0.1.0 // indirect
github.com/containerd/platforms v0.2.1 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/go-jose/go-jose/v4 v4.0.5 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/flosch/pongo2/v6 v6.0.0 // indirect
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/securecookie v1.1.2 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/hashicorp/go-hclog v1.6.3 // indirect
github.com/hashicorp/go-version v1.7.0 // indirect
github.com/hashicorp/terraform-plugin-framework-validators v0.17.0 // indirect
github.com/hashicorp/terraform-plugin-go v0.26.0 // indirect
github.com/hashicorp/go-version v1.8.0 // indirect
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 // indirect
github.com/hashicorp/terraform-plugin-go v0.29.0 // indirect
github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect
github.com/klauspost/compress v1.18.1 // indirect
github.com/klauspost/pgzip v1.2.6 // indirect
github.com/kr/fs v0.1.0 // indirect
github.com/lxc/incus/v6 v6.11.0 // indirect
github.com/lxc/incus/v6 v6.19.1 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
github.com/moby/sys/user v0.4.0 // indirect
github.com/moby/sys/userns v0.1.0 // indirect
github.com/muhlemmer/gu v0.3.1 // indirect
github.com/pkg/sftp v1.13.9 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/opencontainers/runtime-spec v1.3.0 // indirect
github.com/opencontainers/umoci v0.6.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/sftp v1.13.10 // indirect
github.com/pkg/xattr v0.4.12 // indirect
github.com/rootless-containers/proto/go-proto v0.0.0-20230421021042-4cd87ebadd67 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/urfave/cli v1.22.17 // indirect
github.com/vbatts/go-mtree v0.6.1-0.20250911112631-8307d76bc1b9 // indirect
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/zitadel/logging v0.6.2 // indirect
github.com/zitadel/oidc/v3 v3.37.0 // indirect
github.com/zitadel/oidc/v3 v3.45.0 // indirect
github.com/zitadel/schema v1.3.1 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/otel v1.35.0 // indirect
go.opentelemetry.io/otel/metric v1.35.0 // indirect
go.opentelemetry.io/otel/trace v1.35.0 // indirect
golang.org/x/crypto v0.36.0 // indirect
golang.org/x/oauth2 v0.28.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/term v0.30.0 // indirect
golang.org/x/text v0.23.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/otel v1.38.0 // indirect
go.opentelemetry.io/otel/metric v1.38.0 // indirect
go.opentelemetry.io/otel/trace v1.38.0 // indirect
golang.org/x/crypto v0.45.0 // indirect
golang.org/x/oauth2 v0.33.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // indirect
golang.org/x/text v0.31.0 // indirect
google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)

View File

@@ -1,38 +1,69 @@
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/ProtonMail/go-crypto v1.1.6 h1:ZcV+Ropw6Qn0AX9brlQLAUXfqLBc7Bl+f/DmNxpLfdw=
github.com/ProtonMail/go-crypto v1.1.6/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
github.com/apex/log v1.9.0 h1:FHtw/xuaM8AgmvDDTI9fiwoAL25Sq2cxojnZICUU8l0=
github.com/apex/log v1.9.0/go.mod h1:m82fZlWIuiWzWP04XCTXmnX0xRkYYbCdYn8jbJeLBEA=
github.com/apex/logs v1.0.0/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo=
github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=
github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys=
github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
github.com/bmatcuk/doublestar/v4 v4.8.1 h1:54Bopc5c2cAvhLRAzqOGCYHYyhcDHsFF4wWIR5wKP38=
github.com/bmatcuk/doublestar/v4 v4.8.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
github.com/cloudflare/circl v1.6.0 h1:cr5JKic4HI+LkINy2lg3W2jF8sHCVTBncJr5gIIq7qk=
github.com/cloudflare/circl v1.6.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
github.com/bmatcuk/doublestar/v4 v4.9.1 h1:X8jg9rRZmJd4yRy7ZeNDRnM+T3ZfHv15JiBJ/avrEXE=
github.com/bmatcuk/doublestar/v4 v4.9.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A=
github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw=
github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/cyphar/filepath-securejoin v0.6.1 h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE=
github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/dustinkirkland/golang-petname v0.0.0-20240428194347-eebcea082ee0 h1:aYo8nnk3ojoQkP5iErif5Xxv0Mo0Ga/FR5+ffl/7+Nk=
github.com/dustinkirkland/golang-petname v0.0.0-20240428194347-eebcea082ee0/go.mod h1:8AuBTZBRSFqEYBPYULd+NN474/zZBLP+6WeT5S9xlAc=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/go-chi/chi/v5 v5.2.1 h1:KOIHODQj58PmL80G2Eak4WdvUzjSJSm0vG72crDCqb8=
github.com/go-chi/chi/v5 v5.2.1/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops=
github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE=
github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA=
github.com/flosch/pongo2/v6 v6.0.0 h1:lsGru8IAzHgIAw6H2m4PCyleO58I40ow6apih0WprMU=
github.com/flosch/pongo2/v6 v6.0.0/go.mod h1:CuDpFm47R0uGGE7z13/tTlt1Y6zdxvr2RLT5LJhsHEU=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/go-chi/chi/v5 v5.2.3 h1:WQIt9uxdsAbgIYgid+BpYc+liqQZGMHRaUwp0JUcvdE=
github.com/go-chi/chi/v5 v5.2.3/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops=
github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
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.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA=
@@ -51,62 +82,78 @@ github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB1
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
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.6.3 h1:xgHB+ZUSYeuJi96WtxEjzi23uh7YQpznjGh0U0UUrwg=
github.com/hashicorp/go-plugin v1.6.3/go.mod h1:MRobyh+Wc/nYy1V4KAXUiYfzxoYhs7V1mlH1Z7iY2h0=
github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshfk+mA=
github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8=
github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU=
github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8=
github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/hc-install v0.9.1 h1:gkqTfE3vVbafGQo6VZXcy2v5yoz2bE0+nhZXruCuODQ=
github.com/hashicorp/hc-install v0.9.1/go.mod h1:pWWvN/IrfeBK4XPeXXYkL6EjMufHkCK5DvwxeLKuBf0=
github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos=
github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
github.com/hashicorp/go-version v1.8.0 h1:KAkNb1HAiZd1ukkxDFGmokVZe1Xy9HG6NUp+bPle2i4=
github.com/hashicorp/go-version v1.8.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/hc-install v0.9.2 h1:v80EtNX4fCVHqzL9Lg/2xkp62bbvQMnvPQ0G+OmtO24=
github.com/hashicorp/hc-install v0.9.2/go.mod h1:XUqBQNnuT4RsxoxiM9ZaUk0NX8hi2h+Lb6/c0OZnC/I=
github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE=
github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM=
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/terraform-exec v0.22.0 h1:G5+4Sz6jYZfRYUCg6eQgDsqTzkNXV+fP8l+uRmZHj64=
github.com/hashicorp/terraform-exec v0.22.0/go.mod h1:bjVbsncaeh8jVdhttWYZuBGj21FcYw6Ia/XfHcNO7lQ=
github.com/hashicorp/terraform-json v0.24.0 h1:rUiyF+x1kYawXeRth6fKFm/MdfBS6+lW4NbeATsYz8Q=
github.com/hashicorp/terraform-json v0.24.0/go.mod h1:Nfj5ubo9xbu9uiAoZVBsNOjvNKB66Oyrvtit74kC7ow=
github.com/hashicorp/terraform-plugin-framework v1.14.1 h1:jaT1yvU/kEKEsxnbrn4ZHlgcxyIfjvZ41BLdlLk52fY=
github.com/hashicorp/terraform-plugin-framework v1.14.1/go.mod h1:xNUKmvTs6ldbwTuId5euAtg37dTxuyj3LHS3uj7BHQ4=
github.com/hashicorp/terraform-plugin-framework-validators v0.17.0 h1:0uYQcqqgW3BMyyve07WJgpKorXST3zkpzvrOnf3mpbg=
github.com/hashicorp/terraform-plugin-framework-validators v0.17.0/go.mod h1:VwdfgE/5Zxm43flraNa0VjcvKQOGVrcO4X8peIri0T0=
github.com/hashicorp/terraform-plugin-go v0.26.0 h1:cuIzCv4qwigug3OS7iKhpGAbZTiypAfFQmw8aE65O2M=
github.com/hashicorp/terraform-plugin-go v0.26.0/go.mod h1:+CXjuLDiFgqR+GcrM5a2E2Kal5t5q2jb0E3D57tTdNY=
github.com/hashicorp/terraform-exec v0.23.1 h1:diK5NSSDXDKqHEOIQefBMu9ny+FhzwlwV0xgUTB7VTo=
github.com/hashicorp/terraform-exec v0.23.1/go.mod h1:e4ZEg9BJDRaSalGm2z8vvrPONt0XWG0/tXpmzYTf+dM=
github.com/hashicorp/terraform-json v0.27.1 h1:zWhEracxJW6lcjt/JvximOYyc12pS/gaKSy/wzzE7nY=
github.com/hashicorp/terraform-json v0.27.1/go.mod h1:GzPLJ1PLdUG5xL6xn1OXWIjteQRT2CNT9o/6A9mi9hE=
github.com/hashicorp/terraform-plugin-framework v1.16.1 h1:1+zwFm3MEqd/0K3YBB2v9u9DtyYHyEuhVOfeIXbteWA=
github.com/hashicorp/terraform-plugin-framework v1.16.1/go.mod h1:0xFOxLy5lRzDTayc4dzK/FakIgBhNf/lC4499R9cV4Y=
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 h1:Zz3iGgzxe/1XBkooZCewS0nJAaCFPFPHdNJd8FgE4Ow=
github.com/hashicorp/terraform-plugin-framework-validators v0.19.0/go.mod h1:GBKTNGbGVJohU03dZ7U8wHqc2zYnMUawgCN+gC0itLc=
github.com/hashicorp/terraform-plugin-go v0.29.0 h1:1nXKl/nSpaYIUBU1IG/EsDOX0vv+9JxAltQyDMpq5mU=
github.com/hashicorp/terraform-plugin-go v0.29.0/go.mod h1:vYZbIyvxyy0FWSmDHChCqKvI40cFTDGSb3D8D70i9GM=
github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0=
github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.1 h1:WNMsTLkZf/3ydlgsuXePa3jvZFwAJhruxTxP/c1Viuw=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.1/go.mod h1:P6o64QS97plG44iFzSM6rAn6VJIC/Sy9a9IkEtl79K4=
github.com/hashicorp/terraform-plugin-testing v1.12.0 h1:tpIe+T5KBkA1EO6aT704SPLedHUo55RenguLHcaSBdI=
github.com/hashicorp/terraform-plugin-testing v1.12.0/go.mod h1:jbDQUkT9XRjAh1Bvyufq+PEH1Xs4RqIdpOQumSgSXBM=
github.com/hashicorp/terraform-registry-address v0.2.4 h1:JXu/zHB2Ymg/TGVCRu10XqNa4Sh2bWcqCNyKWjnCPJA=
github.com/hashicorp/terraform-registry-address v0.2.4/go.mod h1:tUNYTVyCtU4OIGXXMDp7WNcJ+0W1B4nmstVDgHMjfAU=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1 h1:mlAq/OrMlg04IuJT7NpefI1wwtdpWudnEmjuQs04t/4=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.38.1/go.mod h1:GQhpKVvvuwzD79e8/NZ+xzj+ZpWovdPAe8nfV/skwNU=
github.com/hashicorp/terraform-plugin-testing v1.13.3 h1:QLi/khB8Z0a5L54AfPrHukFpnwsGL8cwwswj4RZduCo=
github.com/hashicorp/terraform-plugin-testing v1.13.3/go.mod h1:WHQ9FDdiLoneey2/QHpGM/6SAYf4A7AZazVg7230pLE=
github.com/hashicorp/terraform-registry-address v0.4.0 h1:S1yCGomj30Sao4l5BMPjTGZmCNzuv7/GDTDX99E9gTk=
github.com/hashicorp/terraform-registry-address v0.4.0/go.mod h1:LRS1Ay0+mAiRkUyltGT+UHWkIqTFvigGn/LbMshfflE=
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=
github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc=
github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8=
github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/jeremija/gosubmit v0.2.8 h1:mmSITBz9JxVtu8eqbN+zmmwX7Ij2RidQxhcwRVI4wqA=
github.com/jeremija/gosubmit v0.2.8/go.mod h1:Ui+HS073lCFREXBbdfrJzMB57OI/bdxTiLtrDHHhFPI=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=
github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co=
github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0=
github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lxc/incus/v6 v6.11.0 h1:p+O5XFZ4K61A6h7tH74+KlPC+f8NPMqw59i9mH1W1oM=
github.com/lxc/incus/v6 v6.11.0/go.mod h1:nuqbxYAx0brbbRho062fXnpQv3viEo37wnJlfnKEHqU=
github.com/lxc/terraform-provider-incus v0.3.1 h1:JIslQ3efXoaL8LqIUu4RdfLM0cgn4ofLuGhon4s8gB4=
github.com/lxc/terraform-provider-incus v0.3.1/go.mod h1:e67wjHqKsKQByukxI1kInYcYJEJpW+WqvHsmOkTyVII=
github.com/lxc/incus/v6 v6.19.1 h1:p5RKNY8iGb+C9ud2pPwHKNBk/8eGyrT6xisZPGSx3DU=
github.com/lxc/incus/v6 v6.19.1/go.mod h1:huGl4lNtU6dVDiBldgxdRE1tazIygpV69DCV/22mJa8=
github.com/lxc/terraform-provider-incus v1.0.1 h1:DhkFVDCnYLCS1QgFCTZdyBAwABlZ9aWffbA1lJiOeao=
github.com/lxc/terraform-provider-incus v1.0.1/go.mod h1:GlRQlBvayauVGcuQMFJ3dxgXIEGDerWGnHgUhQ8ULIA=
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.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
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.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
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.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
@@ -119,154 +166,161 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs=
github.com/moby/sys/user v0.4.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs=
github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g=
github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
github.com/muhlemmer/gu v0.3.1 h1:7EAqmFrW7n3hETvuAdmFmn4hS8W+z3LgKtrnow+YzNM=
github.com/muhlemmer/gu v0.3.1/go.mod h1:YHtHR+gxM+bKEIIs7Hmi9sPT3ZDUvTN/i88wQpZkrdM=
github.com/muhlemmer/httpforwarded v0.1.0 h1:x4DLrzXdliq8mprgUMR0olDvHGkou5BJsK/vWUetyzY=
github.com/muhlemmer/httpforwarded v0.1.0/go.mod h1:yo9czKedo2pdZhoXe+yDkGVbU0TJ0q9oQ90BVoDEtw0=
github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
github.com/pkg/sftp v1.13.9 h1:4NGkvGudBL7GteO3m6qnaQ4pC0Kvf0onSVc9gR3EWBw=
github.com/pkg/sftp v1.13.9/go.mod h1:OBN7bVXdstkFFN/gdnHPUb5TE8eb8G1Rp9wCItqjkkA=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
github.com/opencontainers/runtime-spec v1.3.0 h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg=
github.com/opencontainers/runtime-spec v1.3.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opencontainers/umoci v0.6.0 h1:Dsm4beJpglN5y2E2EUSZZcNey4Ml4+nKepvwLQwgIec=
github.com/opencontainers/umoci v0.6.0/go.mod h1:2DS3cxVN9pRJGYaCK5mnmmwVKV5vd9r6HIYAV0IvdbI=
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/pkg/sftp v1.13.10 h1:+5FbKNTe5Z9aspU88DPIKJ9z2KZoaGCu6Sr6kKR/5mU=
github.com/pkg/sftp v1.13.10/go.mod h1:bJ1a7uDhrX/4OII+agvy28lzRvQrmIQuaHrcI1HbeGA=
github.com/pkg/xattr v0.4.12 h1:rRTkSyFNTRElv6pkA3zpjHpQ90p/OdHQC1GmGh1aTjM=
github.com/pkg/xattr v0.4.12/go.mod h1:di8WF84zAKk8jzR1UBTEWh9AUlIZZ7M/JNt8e9B6ktU=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rootless-containers/proto/go-proto v0.0.0-20230421021042-4cd87ebadd67 h1:58jvc5cZ+hGKidQ4Z37/+rj9eQxRRjOOsqNEwPSZXR4=
github.com/rootless-containers/proto/go-proto v0.0.0-20230421021042-4cd87ebadd67/go.mod h1:LLjEAc6zmycfeN7/1fxIphWQPjHpTt7ElqT7eVf8e4A=
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
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/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=
github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0=
github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk=
github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk=
github.com/tj/go-buffer v1.1.0/go.mod h1:iyiJpfFcR2B9sXu7KvjbT9fpM4mOelRSDTbntVj52Uc=
github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=
github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=
github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
github.com/urfave/cli v1.22.17 h1:SYzXoiPfQjHBbkYxbew5prZHS1TOLT3ierW8SYLqtVQ=
github.com/urfave/cli v1.22.17/go.mod h1:b0ht0aqgH/6pBYzzxURyrM4xXNgsoT/n2ZzwQiEhNVo=
github.com/vbatts/go-mtree v0.6.1-0.20250911112631-8307d76bc1b9 h1:R6l9BtUe83abUGu1YKGkfa17wMMFLt6mhHVQ8MxpfRE=
github.com/vbatts/go-mtree v0.6.1-0.20250911112631-8307d76bc1b9/go.mod h1:W7bcG9PCn6lFY+ljGlZxx9DONkxL3v8a7HyN+PrSrjA=
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/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8=
github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok=
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/zclconf/go-cty v1.16.2 h1:LAJSwc3v81IRBZyUVQDUdZ7hs3SYs9jv0eZJDWHD/70=
github.com/zclconf/go-cty v1.16.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0=
github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U=
github.com/zitadel/logging v0.6.2 h1:MW2kDDR0ieQynPZ0KIZPrh9ote2WkxfBif5QoARDQcU=
github.com/zitadel/logging v0.6.2/go.mod h1:z6VWLWUkJpnNVDSLzrPSQSQyttysKZ6bCRongw0ROK4=
github.com/zitadel/oidc/v3 v3.37.0 h1:nYATWlnP7f18XiAbw6upUruBaqfB1kUrXrSTf1EYGO8=
github.com/zitadel/oidc/v3 v3.37.0/go.mod h1:/xDan4OUQhguJ4Ur73OOJrtugvR164OMnidXP9xfVNw=
github.com/zitadel/oidc/v3 v3.45.0 h1:SaVJ2kdcJi/zdEWWlAns+81VxmfdYX4E+2mWFVIH7Ec=
github.com/zitadel/oidc/v3 v3.45.0/go.mod h1:UeK0iVOoqfMuDVgSfv56BqTz8YQC2M+tGRIXZ7Ii3VY=
github.com/zitadel/schema v1.3.1 h1:QT3kwiRIRXXLVAs6gCK/u044WmUVh6IlbLXUsn6yRQU=
github.com/zitadel/schema v1.3.1/go.mod h1:071u7D2LQacy1HAN+YnMd/mx1qVE2isb0Mjeqg46xnU=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk=
golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/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-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/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-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251124214823-79d6a2a48846 h1:Wgl1rcDNThT+Zn47YyCXOXyX/COgMTIdhJ717F0l4xk=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251124214823-79d6a2a48846/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
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.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

6
sdk/go.mod generated
View File

@@ -1,8 +1,6 @@
module github.com/pulumi/pulumi-xyz/sdk
module git.kalinow.ski/nimbus/pulumi-incus/sdk
go 1.22
toolchain go1.22.11
go 1.25.4
require (
github.com/blang/semver v3.5.1+incompatible

0
sdk/go/Pulumi.yaml generated Normal file
View File

334
sdk/go/incus/certificate.go generated Normal file
View File

@@ -0,0 +1,334 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # Certificate
//
// Manages an Incus certificate.
type Certificate struct {
pulumi.CustomResourceState
// **Required** - The certificate.
Certificate pulumi.StringOutput `pulumi:"certificate"`
// *Optional* - Description of the certificate.
Description pulumi.StringOutput `pulumi:"description"`
// The fingerprint of the certificate.
Fingerprint pulumi.StringOutput `pulumi:"fingerprint"`
// **Required** - Name of the certificate.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - List of projects to restrict the certificate to.
Projects pulumi.StringArrayOutput `pulumi:"projects"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Restrict the certificate to one or more projects.
Restricted pulumi.BoolOutput `pulumi:"restricted"`
// *Optional* - The type of certificate to create. Can be one of: client,
// or metrics. If no type is specified, a client certificate is created.
Type pulumi.StringOutput `pulumi:"type"`
}
// NewCertificate registers a new resource with the given unique name, arguments, and options.
func NewCertificate(ctx *pulumi.Context,
name string, args *CertificateArgs, opts ...pulumi.ResourceOption) (*Certificate, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Certificate == nil {
return nil, errors.New("invalid value for required argument 'Certificate'")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Certificate
err := ctx.RegisterResource("incus:index/certificate:Certificate", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetCertificate gets an existing Certificate resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetCertificate(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *CertificateState, opts ...pulumi.ResourceOption) (*Certificate, error) {
var resource Certificate
err := ctx.ReadResource("incus:index/certificate:Certificate", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Certificate resources.
type certificateState struct {
// **Required** - The certificate.
Certificate *string `pulumi:"certificate"`
// *Optional* - Description of the certificate.
Description *string `pulumi:"description"`
// The fingerprint of the certificate.
Fingerprint *string `pulumi:"fingerprint"`
// **Required** - Name of the certificate.
Name *string `pulumi:"name"`
// *Optional* - List of projects to restrict the certificate to.
Projects []string `pulumi:"projects"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Restrict the certificate to one or more projects.
Restricted *bool `pulumi:"restricted"`
// *Optional* - The type of certificate to create. Can be one of: client,
// or metrics. If no type is specified, a client certificate is created.
Type *string `pulumi:"type"`
}
type CertificateState struct {
// **Required** - The certificate.
Certificate pulumi.StringPtrInput
// *Optional* - Description of the certificate.
Description pulumi.StringPtrInput
// The fingerprint of the certificate.
Fingerprint pulumi.StringPtrInput
// **Required** - Name of the certificate.
Name pulumi.StringPtrInput
// *Optional* - List of projects to restrict the certificate to.
Projects pulumi.StringArrayInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Restrict the certificate to one or more projects.
Restricted pulumi.BoolPtrInput
// *Optional* - The type of certificate to create. Can be one of: client,
// or metrics. If no type is specified, a client certificate is created.
Type pulumi.StringPtrInput
}
func (CertificateState) ElementType() reflect.Type {
return reflect.TypeOf((*certificateState)(nil)).Elem()
}
type certificateArgs struct {
// **Required** - The certificate.
Certificate string `pulumi:"certificate"`
// *Optional* - Description of the certificate.
Description *string `pulumi:"description"`
// **Required** - Name of the certificate.
Name *string `pulumi:"name"`
// *Optional* - List of projects to restrict the certificate to.
Projects []string `pulumi:"projects"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Restrict the certificate to one or more projects.
Restricted *bool `pulumi:"restricted"`
// *Optional* - The type of certificate to create. Can be one of: client,
// or metrics. If no type is specified, a client certificate is created.
Type *string `pulumi:"type"`
}
// The set of arguments for constructing a Certificate resource.
type CertificateArgs struct {
// **Required** - The certificate.
Certificate pulumi.StringInput
// *Optional* - Description of the certificate.
Description pulumi.StringPtrInput
// **Required** - Name of the certificate.
Name pulumi.StringPtrInput
// *Optional* - List of projects to restrict the certificate to.
Projects pulumi.StringArrayInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Restrict the certificate to one or more projects.
Restricted pulumi.BoolPtrInput
// *Optional* - The type of certificate to create. Can be one of: client,
// or metrics. If no type is specified, a client certificate is created.
Type pulumi.StringPtrInput
}
func (CertificateArgs) ElementType() reflect.Type {
return reflect.TypeOf((*certificateArgs)(nil)).Elem()
}
type CertificateInput interface {
pulumi.Input
ToCertificateOutput() CertificateOutput
ToCertificateOutputWithContext(ctx context.Context) CertificateOutput
}
func (*Certificate) ElementType() reflect.Type {
return reflect.TypeOf((**Certificate)(nil)).Elem()
}
func (i *Certificate) ToCertificateOutput() CertificateOutput {
return i.ToCertificateOutputWithContext(context.Background())
}
func (i *Certificate) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput {
return pulumi.ToOutputWithContext(ctx, i).(CertificateOutput)
}
// CertificateArrayInput is an input type that accepts CertificateArray and CertificateArrayOutput values.
// You can construct a concrete instance of `CertificateArrayInput` via:
//
// CertificateArray{ CertificateArgs{...} }
type CertificateArrayInput interface {
pulumi.Input
ToCertificateArrayOutput() CertificateArrayOutput
ToCertificateArrayOutputWithContext(context.Context) CertificateArrayOutput
}
type CertificateArray []CertificateInput
func (CertificateArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Certificate)(nil)).Elem()
}
func (i CertificateArray) ToCertificateArrayOutput() CertificateArrayOutput {
return i.ToCertificateArrayOutputWithContext(context.Background())
}
func (i CertificateArray) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(CertificateArrayOutput)
}
// CertificateMapInput is an input type that accepts CertificateMap and CertificateMapOutput values.
// You can construct a concrete instance of `CertificateMapInput` via:
//
// CertificateMap{ "key": CertificateArgs{...} }
type CertificateMapInput interface {
pulumi.Input
ToCertificateMapOutput() CertificateMapOutput
ToCertificateMapOutputWithContext(context.Context) CertificateMapOutput
}
type CertificateMap map[string]CertificateInput
func (CertificateMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem()
}
func (i CertificateMap) ToCertificateMapOutput() CertificateMapOutput {
return i.ToCertificateMapOutputWithContext(context.Background())
}
func (i CertificateMap) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(CertificateMapOutput)
}
type CertificateOutput struct{ *pulumi.OutputState }
func (CertificateOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Certificate)(nil)).Elem()
}
func (o CertificateOutput) ToCertificateOutput() CertificateOutput {
return o
}
func (o CertificateOutput) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput {
return o
}
// **Required** - The certificate.
func (o CertificateOutput) Certificate() pulumi.StringOutput {
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Certificate }).(pulumi.StringOutput)
}
// *Optional* - Description of the certificate.
func (o CertificateOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// The fingerprint of the certificate.
func (o CertificateOutput) Fingerprint() pulumi.StringOutput {
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Fingerprint }).(pulumi.StringOutput)
}
// **Required** - Name of the certificate.
func (o CertificateOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - List of projects to restrict the certificate to.
func (o CertificateOutput) Projects() pulumi.StringArrayOutput {
return o.ApplyT(func(v *Certificate) pulumi.StringArrayOutput { return v.Projects }).(pulumi.StringArrayOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o CertificateOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Certificate) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Restrict the certificate to one or more projects.
func (o CertificateOutput) Restricted() pulumi.BoolOutput {
return o.ApplyT(func(v *Certificate) pulumi.BoolOutput { return v.Restricted }).(pulumi.BoolOutput)
}
// *Optional* - The type of certificate to create. Can be one of: client,
// or metrics. If no type is specified, a client certificate is created.
func (o CertificateOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
}
type CertificateArrayOutput struct{ *pulumi.OutputState }
func (CertificateArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Certificate)(nil)).Elem()
}
func (o CertificateArrayOutput) ToCertificateArrayOutput() CertificateArrayOutput {
return o
}
func (o CertificateArrayOutput) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput {
return o
}
func (o CertificateArrayOutput) Index(i pulumi.IntInput) CertificateOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Certificate {
return vs[0].([]*Certificate)[vs[1].(int)]
}).(CertificateOutput)
}
type CertificateMapOutput struct{ *pulumi.OutputState }
func (CertificateMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem()
}
func (o CertificateMapOutput) ToCertificateMapOutput() CertificateMapOutput {
return o
}
func (o CertificateMapOutput) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput {
return o
}
func (o CertificateMapOutput) MapIndex(k pulumi.StringInput) CertificateOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Certificate {
return vs[0].(map[string]*Certificate)[vs[1].(string)]
}).(CertificateOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*CertificateInput)(nil)).Elem(), &Certificate{})
pulumi.RegisterInputType(reflect.TypeOf((*CertificateArrayInput)(nil)).Elem(), CertificateArray{})
pulumi.RegisterInputType(reflect.TypeOf((*CertificateMapInput)(nil)).Elem(), CertificateMap{})
pulumi.RegisterOutputType(CertificateOutput{})
pulumi.RegisterOutputType(CertificateArrayOutput{})
pulumi.RegisterOutputType(CertificateMapOutput{})
}

265
sdk/go/incus/clusterGroup.go generated Normal file
View File

@@ -0,0 +1,265 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type ClusterGroup struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [cluster group config settings](https://linuxcontainers.org/incus/docs/main/howto/cluster_groups/#configuration-options).
Config pulumi.StringMapOutput `pulumi:"config"`
Description pulumi.StringOutput `pulumi:"description"`
// **Required** - Name of the cluster group.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewClusterGroup registers a new resource with the given unique name, arguments, and options.
func NewClusterGroup(ctx *pulumi.Context,
name string, args *ClusterGroupArgs, opts ...pulumi.ResourceOption) (*ClusterGroup, error) {
if args == nil {
args = &ClusterGroupArgs{}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource ClusterGroup
err := ctx.RegisterResource("incus:index/clusterGroup:ClusterGroup", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetClusterGroup gets an existing ClusterGroup resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetClusterGroup(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *ClusterGroupState, opts ...pulumi.ResourceOption) (*ClusterGroup, error) {
var resource ClusterGroup
err := ctx.ReadResource("incus:index/clusterGroup:ClusterGroup", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering ClusterGroup resources.
type clusterGroupState struct {
// *Optional* - Map of key/value pairs of
// [cluster group config settings](https://linuxcontainers.org/incus/docs/main/howto/cluster_groups/#configuration-options).
Config map[string]string `pulumi:"config"`
Description *string `pulumi:"description"`
// **Required** - Name of the cluster group.
Name *string `pulumi:"name"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
type ClusterGroupState struct {
// *Optional* - Map of key/value pairs of
// [cluster group config settings](https://linuxcontainers.org/incus/docs/main/howto/cluster_groups/#configuration-options).
Config pulumi.StringMapInput
Description pulumi.StringPtrInput
// **Required** - Name of the cluster group.
Name pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ClusterGroupState) ElementType() reflect.Type {
return reflect.TypeOf((*clusterGroupState)(nil)).Elem()
}
type clusterGroupArgs struct {
// *Optional* - Map of key/value pairs of
// [cluster group config settings](https://linuxcontainers.org/incus/docs/main/howto/cluster_groups/#configuration-options).
Config map[string]string `pulumi:"config"`
Description *string `pulumi:"description"`
// **Required** - Name of the cluster group.
Name *string `pulumi:"name"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a ClusterGroup resource.
type ClusterGroupArgs struct {
// *Optional* - Map of key/value pairs of
// [cluster group config settings](https://linuxcontainers.org/incus/docs/main/howto/cluster_groups/#configuration-options).
Config pulumi.StringMapInput
Description pulumi.StringPtrInput
// **Required** - Name of the cluster group.
Name pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ClusterGroupArgs) ElementType() reflect.Type {
return reflect.TypeOf((*clusterGroupArgs)(nil)).Elem()
}
type ClusterGroupInput interface {
pulumi.Input
ToClusterGroupOutput() ClusterGroupOutput
ToClusterGroupOutputWithContext(ctx context.Context) ClusterGroupOutput
}
func (*ClusterGroup) ElementType() reflect.Type {
return reflect.TypeOf((**ClusterGroup)(nil)).Elem()
}
func (i *ClusterGroup) ToClusterGroupOutput() ClusterGroupOutput {
return i.ToClusterGroupOutputWithContext(context.Background())
}
func (i *ClusterGroup) ToClusterGroupOutputWithContext(ctx context.Context) ClusterGroupOutput {
return pulumi.ToOutputWithContext(ctx, i).(ClusterGroupOutput)
}
// ClusterGroupArrayInput is an input type that accepts ClusterGroupArray and ClusterGroupArrayOutput values.
// You can construct a concrete instance of `ClusterGroupArrayInput` via:
//
// ClusterGroupArray{ ClusterGroupArgs{...} }
type ClusterGroupArrayInput interface {
pulumi.Input
ToClusterGroupArrayOutput() ClusterGroupArrayOutput
ToClusterGroupArrayOutputWithContext(context.Context) ClusterGroupArrayOutput
}
type ClusterGroupArray []ClusterGroupInput
func (ClusterGroupArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*ClusterGroup)(nil)).Elem()
}
func (i ClusterGroupArray) ToClusterGroupArrayOutput() ClusterGroupArrayOutput {
return i.ToClusterGroupArrayOutputWithContext(context.Background())
}
func (i ClusterGroupArray) ToClusterGroupArrayOutputWithContext(ctx context.Context) ClusterGroupArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(ClusterGroupArrayOutput)
}
// ClusterGroupMapInput is an input type that accepts ClusterGroupMap and ClusterGroupMapOutput values.
// You can construct a concrete instance of `ClusterGroupMapInput` via:
//
// ClusterGroupMap{ "key": ClusterGroupArgs{...} }
type ClusterGroupMapInput interface {
pulumi.Input
ToClusterGroupMapOutput() ClusterGroupMapOutput
ToClusterGroupMapOutputWithContext(context.Context) ClusterGroupMapOutput
}
type ClusterGroupMap map[string]ClusterGroupInput
func (ClusterGroupMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*ClusterGroup)(nil)).Elem()
}
func (i ClusterGroupMap) ToClusterGroupMapOutput() ClusterGroupMapOutput {
return i.ToClusterGroupMapOutputWithContext(context.Background())
}
func (i ClusterGroupMap) ToClusterGroupMapOutputWithContext(ctx context.Context) ClusterGroupMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(ClusterGroupMapOutput)
}
type ClusterGroupOutput struct{ *pulumi.OutputState }
func (ClusterGroupOutput) ElementType() reflect.Type {
return reflect.TypeOf((**ClusterGroup)(nil)).Elem()
}
func (o ClusterGroupOutput) ToClusterGroupOutput() ClusterGroupOutput {
return o
}
func (o ClusterGroupOutput) ToClusterGroupOutputWithContext(ctx context.Context) ClusterGroupOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [cluster group config settings](https://linuxcontainers.org/incus/docs/main/howto/cluster_groups/#configuration-options).
func (o ClusterGroupOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *ClusterGroup) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
func (o ClusterGroupOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *ClusterGroup) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **Required** - Name of the cluster group.
func (o ClusterGroupOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *ClusterGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o ClusterGroupOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *ClusterGroup) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type ClusterGroupArrayOutput struct{ *pulumi.OutputState }
func (ClusterGroupArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*ClusterGroup)(nil)).Elem()
}
func (o ClusterGroupArrayOutput) ToClusterGroupArrayOutput() ClusterGroupArrayOutput {
return o
}
func (o ClusterGroupArrayOutput) ToClusterGroupArrayOutputWithContext(ctx context.Context) ClusterGroupArrayOutput {
return o
}
func (o ClusterGroupArrayOutput) Index(i pulumi.IntInput) ClusterGroupOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterGroup {
return vs[0].([]*ClusterGroup)[vs[1].(int)]
}).(ClusterGroupOutput)
}
type ClusterGroupMapOutput struct{ *pulumi.OutputState }
func (ClusterGroupMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*ClusterGroup)(nil)).Elem()
}
func (o ClusterGroupMapOutput) ToClusterGroupMapOutput() ClusterGroupMapOutput {
return o
}
func (o ClusterGroupMapOutput) ToClusterGroupMapOutputWithContext(ctx context.Context) ClusterGroupMapOutput {
return o
}
func (o ClusterGroupMapOutput) MapIndex(k pulumi.StringInput) ClusterGroupOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterGroup {
return vs[0].(map[string]*ClusterGroup)[vs[1].(string)]
}).(ClusterGroupOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ClusterGroupInput)(nil)).Elem(), &ClusterGroup{})
pulumi.RegisterInputType(reflect.TypeOf((*ClusterGroupArrayInput)(nil)).Elem(), ClusterGroupArray{})
pulumi.RegisterInputType(reflect.TypeOf((*ClusterGroupMapInput)(nil)).Elem(), ClusterGroupMap{})
pulumi.RegisterOutputType(ClusterGroupOutput{})
pulumi.RegisterOutputType(ClusterGroupArrayOutput{})
pulumi.RegisterOutputType(ClusterGroupMapOutput{})
}

257
sdk/go/incus/clusterGroupAssignment.go generated Normal file
View File

@@ -0,0 +1,257 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type ClusterGroupAssignment struct {
pulumi.CustomResourceState
// **Required** - Name of the cluster group.
ClusterGroup pulumi.StringOutput `pulumi:"clusterGroup"`
// **Required** - Name of the cluster group member.
Member pulumi.StringOutput `pulumi:"member"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewClusterGroupAssignment registers a new resource with the given unique name, arguments, and options.
func NewClusterGroupAssignment(ctx *pulumi.Context,
name string, args *ClusterGroupAssignmentArgs, opts ...pulumi.ResourceOption) (*ClusterGroupAssignment, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.ClusterGroup == nil {
return nil, errors.New("invalid value for required argument 'ClusterGroup'")
}
if args.Member == nil {
return nil, errors.New("invalid value for required argument 'Member'")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource ClusterGroupAssignment
err := ctx.RegisterResource("incus:index/clusterGroupAssignment:ClusterGroupAssignment", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetClusterGroupAssignment gets an existing ClusterGroupAssignment resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetClusterGroupAssignment(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *ClusterGroupAssignmentState, opts ...pulumi.ResourceOption) (*ClusterGroupAssignment, error) {
var resource ClusterGroupAssignment
err := ctx.ReadResource("incus:index/clusterGroupAssignment:ClusterGroupAssignment", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering ClusterGroupAssignment resources.
type clusterGroupAssignmentState struct {
// **Required** - Name of the cluster group.
ClusterGroup *string `pulumi:"clusterGroup"`
// **Required** - Name of the cluster group member.
Member *string `pulumi:"member"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
type ClusterGroupAssignmentState struct {
// **Required** - Name of the cluster group.
ClusterGroup pulumi.StringPtrInput
// **Required** - Name of the cluster group member.
Member pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ClusterGroupAssignmentState) ElementType() reflect.Type {
return reflect.TypeOf((*clusterGroupAssignmentState)(nil)).Elem()
}
type clusterGroupAssignmentArgs struct {
// **Required** - Name of the cluster group.
ClusterGroup string `pulumi:"clusterGroup"`
// **Required** - Name of the cluster group member.
Member string `pulumi:"member"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a ClusterGroupAssignment resource.
type ClusterGroupAssignmentArgs struct {
// **Required** - Name of the cluster group.
ClusterGroup pulumi.StringInput
// **Required** - Name of the cluster group member.
Member pulumi.StringInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ClusterGroupAssignmentArgs) ElementType() reflect.Type {
return reflect.TypeOf((*clusterGroupAssignmentArgs)(nil)).Elem()
}
type ClusterGroupAssignmentInput interface {
pulumi.Input
ToClusterGroupAssignmentOutput() ClusterGroupAssignmentOutput
ToClusterGroupAssignmentOutputWithContext(ctx context.Context) ClusterGroupAssignmentOutput
}
func (*ClusterGroupAssignment) ElementType() reflect.Type {
return reflect.TypeOf((**ClusterGroupAssignment)(nil)).Elem()
}
func (i *ClusterGroupAssignment) ToClusterGroupAssignmentOutput() ClusterGroupAssignmentOutput {
return i.ToClusterGroupAssignmentOutputWithContext(context.Background())
}
func (i *ClusterGroupAssignment) ToClusterGroupAssignmentOutputWithContext(ctx context.Context) ClusterGroupAssignmentOutput {
return pulumi.ToOutputWithContext(ctx, i).(ClusterGroupAssignmentOutput)
}
// ClusterGroupAssignmentArrayInput is an input type that accepts ClusterGroupAssignmentArray and ClusterGroupAssignmentArrayOutput values.
// You can construct a concrete instance of `ClusterGroupAssignmentArrayInput` via:
//
// ClusterGroupAssignmentArray{ ClusterGroupAssignmentArgs{...} }
type ClusterGroupAssignmentArrayInput interface {
pulumi.Input
ToClusterGroupAssignmentArrayOutput() ClusterGroupAssignmentArrayOutput
ToClusterGroupAssignmentArrayOutputWithContext(context.Context) ClusterGroupAssignmentArrayOutput
}
type ClusterGroupAssignmentArray []ClusterGroupAssignmentInput
func (ClusterGroupAssignmentArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*ClusterGroupAssignment)(nil)).Elem()
}
func (i ClusterGroupAssignmentArray) ToClusterGroupAssignmentArrayOutput() ClusterGroupAssignmentArrayOutput {
return i.ToClusterGroupAssignmentArrayOutputWithContext(context.Background())
}
func (i ClusterGroupAssignmentArray) ToClusterGroupAssignmentArrayOutputWithContext(ctx context.Context) ClusterGroupAssignmentArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(ClusterGroupAssignmentArrayOutput)
}
// ClusterGroupAssignmentMapInput is an input type that accepts ClusterGroupAssignmentMap and ClusterGroupAssignmentMapOutput values.
// You can construct a concrete instance of `ClusterGroupAssignmentMapInput` via:
//
// ClusterGroupAssignmentMap{ "key": ClusterGroupAssignmentArgs{...} }
type ClusterGroupAssignmentMapInput interface {
pulumi.Input
ToClusterGroupAssignmentMapOutput() ClusterGroupAssignmentMapOutput
ToClusterGroupAssignmentMapOutputWithContext(context.Context) ClusterGroupAssignmentMapOutput
}
type ClusterGroupAssignmentMap map[string]ClusterGroupAssignmentInput
func (ClusterGroupAssignmentMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*ClusterGroupAssignment)(nil)).Elem()
}
func (i ClusterGroupAssignmentMap) ToClusterGroupAssignmentMapOutput() ClusterGroupAssignmentMapOutput {
return i.ToClusterGroupAssignmentMapOutputWithContext(context.Background())
}
func (i ClusterGroupAssignmentMap) ToClusterGroupAssignmentMapOutputWithContext(ctx context.Context) ClusterGroupAssignmentMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(ClusterGroupAssignmentMapOutput)
}
type ClusterGroupAssignmentOutput struct{ *pulumi.OutputState }
func (ClusterGroupAssignmentOutput) ElementType() reflect.Type {
return reflect.TypeOf((**ClusterGroupAssignment)(nil)).Elem()
}
func (o ClusterGroupAssignmentOutput) ToClusterGroupAssignmentOutput() ClusterGroupAssignmentOutput {
return o
}
func (o ClusterGroupAssignmentOutput) ToClusterGroupAssignmentOutputWithContext(ctx context.Context) ClusterGroupAssignmentOutput {
return o
}
// **Required** - Name of the cluster group.
func (o ClusterGroupAssignmentOutput) ClusterGroup() pulumi.StringOutput {
return o.ApplyT(func(v *ClusterGroupAssignment) pulumi.StringOutput { return v.ClusterGroup }).(pulumi.StringOutput)
}
// **Required** - Name of the cluster group member.
func (o ClusterGroupAssignmentOutput) Member() pulumi.StringOutput {
return o.ApplyT(func(v *ClusterGroupAssignment) pulumi.StringOutput { return v.Member }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o ClusterGroupAssignmentOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *ClusterGroupAssignment) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type ClusterGroupAssignmentArrayOutput struct{ *pulumi.OutputState }
func (ClusterGroupAssignmentArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*ClusterGroupAssignment)(nil)).Elem()
}
func (o ClusterGroupAssignmentArrayOutput) ToClusterGroupAssignmentArrayOutput() ClusterGroupAssignmentArrayOutput {
return o
}
func (o ClusterGroupAssignmentArrayOutput) ToClusterGroupAssignmentArrayOutputWithContext(ctx context.Context) ClusterGroupAssignmentArrayOutput {
return o
}
func (o ClusterGroupAssignmentArrayOutput) Index(i pulumi.IntInput) ClusterGroupAssignmentOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterGroupAssignment {
return vs[0].([]*ClusterGroupAssignment)[vs[1].(int)]
}).(ClusterGroupAssignmentOutput)
}
type ClusterGroupAssignmentMapOutput struct{ *pulumi.OutputState }
func (ClusterGroupAssignmentMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*ClusterGroupAssignment)(nil)).Elem()
}
func (o ClusterGroupAssignmentMapOutput) ToClusterGroupAssignmentMapOutput() ClusterGroupAssignmentMapOutput {
return o
}
func (o ClusterGroupAssignmentMapOutput) ToClusterGroupAssignmentMapOutputWithContext(ctx context.Context) ClusterGroupAssignmentMapOutput {
return o
}
func (o ClusterGroupAssignmentMapOutput) MapIndex(k pulumi.StringInput) ClusterGroupAssignmentOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterGroupAssignment {
return vs[0].(map[string]*ClusterGroupAssignment)[vs[1].(string)]
}).(ClusterGroupAssignmentOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ClusterGroupAssignmentInput)(nil)).Elem(), &ClusterGroupAssignment{})
pulumi.RegisterInputType(reflect.TypeOf((*ClusterGroupAssignmentArrayInput)(nil)).Elem(), ClusterGroupAssignmentArray{})
pulumi.RegisterInputType(reflect.TypeOf((*ClusterGroupAssignmentMapInput)(nil)).Elem(), ClusterGroupAssignmentMap{})
pulumi.RegisterOutputType(ClusterGroupAssignmentOutput{})
pulumi.RegisterOutputType(ClusterGroupAssignmentArrayOutput{})
pulumi.RegisterOutputType(ClusterGroupAssignmentMapOutput{})
}

38
sdk/go/incus/config/config.go generated Normal file
View File

@@ -0,0 +1,38 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package config
import (
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
var _ = internal.GetEnvOrDefault
// Accept the server certificate.
func GetAcceptRemoteCertificate(ctx *pulumi.Context) bool {
return config.GetBool(ctx, "incus:acceptRemoteCertificate")
}
// The directory to look for existing Incus configuration. (default = $HOME/.config/incus)
func GetConfigDir(ctx *pulumi.Context) string {
return config.Get(ctx, "incus:configDir")
}
// Automatically generate the Incus client certificates if they don't exist.
func GetGenerateClientCertificates(ctx *pulumi.Context) bool {
return config.GetBool(ctx, "incus:generateClientCertificates")
}
// The project where project-scoped resources will be created. Can be overridden in individual resources. (default =
// default)
func GetProject(ctx *pulumi.Context) string {
return config.Get(ctx, "incus:project")
}
// Incus Remote
func GetRemotes(ctx *pulumi.Context) string {
return config.Get(ctx, "incus:remotes")
}

163
sdk/go/incus/config/pulumiTypes.go generated Normal file
View File

@@ -0,0 +1,163 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package config
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
var _ = internal.GetEnvOrDefault
type Remotes struct {
// The FQDN or IP where the Incus daemon can be contacted. (default = "" (read from lxc config))
Address *string `pulumi:"address"`
// Set this remote as default.
Default *bool `pulumi:"default"`
// Name of the Incus remote. Required when incusScheme set to https, to enable locating server certificate.
Name string `pulumi:"name"`
// Port Incus Daemon API is listening on. (default = 8443)
Port *string `pulumi:"port"`
// Unix (unix) or HTTPs (https). (default = unix)
Scheme *string `pulumi:"scheme"`
// The trust token for the remote.
Token *string `pulumi:"token"`
}
// RemotesInput is an input type that accepts RemotesArgs and RemotesOutput values.
// You can construct a concrete instance of `RemotesInput` via:
//
// RemotesArgs{...}
type RemotesInput interface {
pulumi.Input
ToRemotesOutput() RemotesOutput
ToRemotesOutputWithContext(context.Context) RemotesOutput
}
type RemotesArgs struct {
// The FQDN or IP where the Incus daemon can be contacted. (default = "" (read from lxc config))
Address pulumi.StringPtrInput `pulumi:"address"`
// Set this remote as default.
Default pulumi.BoolPtrInput `pulumi:"default"`
// Name of the Incus remote. Required when incusScheme set to https, to enable locating server certificate.
Name pulumi.StringInput `pulumi:"name"`
// Port Incus Daemon API is listening on. (default = 8443)
Port pulumi.StringPtrInput `pulumi:"port"`
// Unix (unix) or HTTPs (https). (default = unix)
Scheme pulumi.StringPtrInput `pulumi:"scheme"`
// The trust token for the remote.
Token pulumi.StringPtrInput `pulumi:"token"`
}
func (RemotesArgs) ElementType() reflect.Type {
return reflect.TypeOf((*Remotes)(nil)).Elem()
}
func (i RemotesArgs) ToRemotesOutput() RemotesOutput {
return i.ToRemotesOutputWithContext(context.Background())
}
func (i RemotesArgs) ToRemotesOutputWithContext(ctx context.Context) RemotesOutput {
return pulumi.ToOutputWithContext(ctx, i).(RemotesOutput)
}
// RemotesArrayInput is an input type that accepts RemotesArray and RemotesArrayOutput values.
// You can construct a concrete instance of `RemotesArrayInput` via:
//
// RemotesArray{ RemotesArgs{...} }
type RemotesArrayInput interface {
pulumi.Input
ToRemotesArrayOutput() RemotesArrayOutput
ToRemotesArrayOutputWithContext(context.Context) RemotesArrayOutput
}
type RemotesArray []RemotesInput
func (RemotesArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]Remotes)(nil)).Elem()
}
func (i RemotesArray) ToRemotesArrayOutput() RemotesArrayOutput {
return i.ToRemotesArrayOutputWithContext(context.Background())
}
func (i RemotesArray) ToRemotesArrayOutputWithContext(ctx context.Context) RemotesArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(RemotesArrayOutput)
}
type RemotesOutput struct{ *pulumi.OutputState }
func (RemotesOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Remotes)(nil)).Elem()
}
func (o RemotesOutput) ToRemotesOutput() RemotesOutput {
return o
}
func (o RemotesOutput) ToRemotesOutputWithContext(ctx context.Context) RemotesOutput {
return o
}
// The FQDN or IP where the Incus daemon can be contacted. (default = "" (read from lxc config))
func (o RemotesOutput) Address() pulumi.StringPtrOutput {
return o.ApplyT(func(v Remotes) *string { return v.Address }).(pulumi.StringPtrOutput)
}
// Set this remote as default.
func (o RemotesOutput) Default() pulumi.BoolPtrOutput {
return o.ApplyT(func(v Remotes) *bool { return v.Default }).(pulumi.BoolPtrOutput)
}
// Name of the Incus remote. Required when incusScheme set to https, to enable locating server certificate.
func (o RemotesOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v Remotes) string { return v.Name }).(pulumi.StringOutput)
}
// Port Incus Daemon API is listening on. (default = 8443)
func (o RemotesOutput) Port() pulumi.StringPtrOutput {
return o.ApplyT(func(v Remotes) *string { return v.Port }).(pulumi.StringPtrOutput)
}
// Unix (unix) or HTTPs (https). (default = unix)
func (o RemotesOutput) Scheme() pulumi.StringPtrOutput {
return o.ApplyT(func(v Remotes) *string { return v.Scheme }).(pulumi.StringPtrOutput)
}
// The trust token for the remote.
func (o RemotesOutput) Token() pulumi.StringPtrOutput {
return o.ApplyT(func(v Remotes) *string { return v.Token }).(pulumi.StringPtrOutput)
}
type RemotesArrayOutput struct{ *pulumi.OutputState }
func (RemotesArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]Remotes)(nil)).Elem()
}
func (o RemotesArrayOutput) ToRemotesArrayOutput() RemotesArrayOutput {
return o
}
func (o RemotesArrayOutput) ToRemotesArrayOutputWithContext(ctx context.Context) RemotesArrayOutput {
return o
}
func (o RemotesArrayOutput) Index(i pulumi.IntInput) RemotesOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) Remotes {
return vs[0].([]Remotes)[vs[1].(int)]
}).(RemotesOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*RemotesInput)(nil)).Elem(), RemotesArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*RemotesArrayInput)(nil)).Elem(), RemotesArray{})
pulumi.RegisterOutputType(RemotesOutput{})
pulumi.RegisterOutputType(RemotesArrayOutput{})
}

2
sdk/go/incus/doc.go generated Normal file
View File

@@ -0,0 +1,2 @@
// A Pulumi package for creating and managing incus cloud resources.
package incus

179
sdk/go/incus/getImage.go generated Normal file
View File

@@ -0,0 +1,179 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # Image
//
// Provides information about an Incus image.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// debianCustom, err := incus.LookupImage(ctx, &incus.LookupImageArgs{
// Name: pulumi.StringRef("debian_custom"),
// }, nil)
// if err != nil {
// return err
// }
// _, err = incus.NewInstance(ctx, "d1", &incus.InstanceArgs{
// Image: pulumi.String(debianCustom.Fingerprint),
// Name: pulumi.String("d1"),
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
func LookupImage(ctx *pulumi.Context, args *LookupImageArgs, opts ...pulumi.InvokeOption) (*LookupImageResult, error) {
opts = internal.PkgInvokeDefaultOpts(opts)
var rv LookupImageResult
err := ctx.Invoke("incus:index/getImage:getImage", args, &rv, opts...)
if err != nil {
return nil, err
}
return &rv, nil
}
// A collection of arguments for invoking getImage.
type LookupImageArgs struct {
// *Optional* - The image architecture (e.g. x86_64, aarch64). See [Architectures](https://linuxcontainers.org/incus/docs/main/architectures/) for all possible values.
Architecture *string `pulumi:"architecture"`
// *Optional* - Fingerprint of the image.
Fingerprint *string `pulumi:"fingerprint"`
// *Optional* - Name of the image.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the image is stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource was created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Type of image. Must be one of `container` or `virtual-machine`.
Type *string `pulumi:"type"`
}
// A collection of values returned by getImage.
type LookupImageResult struct {
// The list of aliases for the image.
Aliases []string `pulumi:"aliases"`
Architecture string `pulumi:"architecture"`
// The datetime of image creation, in Unix time.
CreatedAt int `pulumi:"createdAt"`
Fingerprint string `pulumi:"fingerprint"`
// The provider-assigned unique ID for this managed resource.
Id string `pulumi:"id"`
Name *string `pulumi:"name"`
Project *string `pulumi:"project"`
Remote *string `pulumi:"remote"`
Type string `pulumi:"type"`
}
func LookupImageOutput(ctx *pulumi.Context, args LookupImageOutputArgs, opts ...pulumi.InvokeOption) LookupImageResultOutput {
return pulumi.ToOutputWithContext(ctx.Context(), args).
ApplyT(func(v interface{}) (LookupImageResultOutput, error) {
args := v.(LookupImageArgs)
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
return ctx.InvokeOutput("incus:index/getImage:getImage", args, LookupImageResultOutput{}, options).(LookupImageResultOutput), nil
}).(LookupImageResultOutput)
}
// A collection of arguments for invoking getImage.
type LookupImageOutputArgs struct {
// *Optional* - The image architecture (e.g. x86_64, aarch64). See [Architectures](https://linuxcontainers.org/incus/docs/main/architectures/) for all possible values.
Architecture pulumi.StringPtrInput `pulumi:"architecture"`
// *Optional* - Fingerprint of the image.
Fingerprint pulumi.StringPtrInput `pulumi:"fingerprint"`
// *Optional* - Name of the image.
Name pulumi.StringPtrInput `pulumi:"name"`
// *Optional* - Name of the project where the image is stored.
Project pulumi.StringPtrInput `pulumi:"project"`
// *Optional* - The remote in which the resource was created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput `pulumi:"remote"`
// *Optional* - Type of image. Must be one of `container` or `virtual-machine`.
Type pulumi.StringPtrInput `pulumi:"type"`
}
func (LookupImageOutputArgs) ElementType() reflect.Type {
return reflect.TypeOf((*LookupImageArgs)(nil)).Elem()
}
// A collection of values returned by getImage.
type LookupImageResultOutput struct{ *pulumi.OutputState }
func (LookupImageResultOutput) ElementType() reflect.Type {
return reflect.TypeOf((*LookupImageResult)(nil)).Elem()
}
func (o LookupImageResultOutput) ToLookupImageResultOutput() LookupImageResultOutput {
return o
}
func (o LookupImageResultOutput) ToLookupImageResultOutputWithContext(ctx context.Context) LookupImageResultOutput {
return o
}
// The list of aliases for the image.
func (o LookupImageResultOutput) Aliases() pulumi.StringArrayOutput {
return o.ApplyT(func(v LookupImageResult) []string { return v.Aliases }).(pulumi.StringArrayOutput)
}
func (o LookupImageResultOutput) Architecture() pulumi.StringOutput {
return o.ApplyT(func(v LookupImageResult) string { return v.Architecture }).(pulumi.StringOutput)
}
// The datetime of image creation, in Unix time.
func (o LookupImageResultOutput) CreatedAt() pulumi.IntOutput {
return o.ApplyT(func(v LookupImageResult) int { return v.CreatedAt }).(pulumi.IntOutput)
}
func (o LookupImageResultOutput) Fingerprint() pulumi.StringOutput {
return o.ApplyT(func(v LookupImageResult) string { return v.Fingerprint }).(pulumi.StringOutput)
}
// The provider-assigned unique ID for this managed resource.
func (o LookupImageResultOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v LookupImageResult) string { return v.Id }).(pulumi.StringOutput)
}
func (o LookupImageResultOutput) Name() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupImageResult) *string { return v.Name }).(pulumi.StringPtrOutput)
}
func (o LookupImageResultOutput) Project() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupImageResult) *string { return v.Project }).(pulumi.StringPtrOutput)
}
func (o LookupImageResultOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupImageResult) *string { return v.Remote }).(pulumi.StringPtrOutput)
}
func (o LookupImageResultOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v LookupImageResult) string { return v.Type }).(pulumi.StringOutput)
}
func init() {
pulumi.RegisterOutputType(LookupImageResultOutput{})
}

168
sdk/go/incus/getProfile.go generated Normal file
View File

@@ -0,0 +1,168 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # Profile
//
// Provides information about an Incus profile.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// _default, err := incus.LookupProfile(ctx, &incus.LookupProfileArgs{
// Name: "default",
// }, nil)
// if err != nil {
// return err
// }
// _, err = incus.NewInstance(ctx, "d1", &incus.InstanceArgs{
// Profiles: pulumi.StringArray{
// pulumi.String(_default.Name),
// },
// Image: pulumi.String("images:debian/12"),
// Name: pulumi.String("d1"),
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
func LookupProfile(ctx *pulumi.Context, args *LookupProfileArgs, opts ...pulumi.InvokeOption) (*LookupProfileResult, error) {
opts = internal.PkgInvokeDefaultOpts(opts)
var rv LookupProfileResult
err := ctx.Invoke("incus:index/getProfile:getProfile", args, &rv, opts...)
if err != nil {
return nil, err
}
return &rv, nil
}
// A collection of arguments for invoking getProfile.
type LookupProfileArgs struct {
// Device definition. See reference below.
Devices []GetProfileDevice `pulumi:"devices"`
// **Required** - Name of the profile.
Name string `pulumi:"name"`
// *Optional* - Name of the project where the profile will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource was created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// A collection of values returned by getProfile.
type LookupProfileResult struct {
// Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config map[string]string `pulumi:"config"`
Description string `pulumi:"description"`
// Device definition. See reference below.
Devices []GetProfileDevice `pulumi:"devices"`
// The provider-assigned unique ID for this managed resource.
Id string `pulumi:"id"`
// Name of the device.
Name string `pulumi:"name"`
Project *string `pulumi:"project"`
Remote *string `pulumi:"remote"`
}
func LookupProfileOutput(ctx *pulumi.Context, args LookupProfileOutputArgs, opts ...pulumi.InvokeOption) LookupProfileResultOutput {
return pulumi.ToOutputWithContext(ctx.Context(), args).
ApplyT(func(v interface{}) (LookupProfileResultOutput, error) {
args := v.(LookupProfileArgs)
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
return ctx.InvokeOutput("incus:index/getProfile:getProfile", args, LookupProfileResultOutput{}, options).(LookupProfileResultOutput), nil
}).(LookupProfileResultOutput)
}
// A collection of arguments for invoking getProfile.
type LookupProfileOutputArgs struct {
// Device definition. See reference below.
Devices GetProfileDeviceArrayInput `pulumi:"devices"`
// **Required** - Name of the profile.
Name pulumi.StringInput `pulumi:"name"`
// *Optional* - Name of the project where the profile will be stored.
Project pulumi.StringPtrInput `pulumi:"project"`
// *Optional* - The remote in which the resource was created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput `pulumi:"remote"`
}
func (LookupProfileOutputArgs) ElementType() reflect.Type {
return reflect.TypeOf((*LookupProfileArgs)(nil)).Elem()
}
// A collection of values returned by getProfile.
type LookupProfileResultOutput struct{ *pulumi.OutputState }
func (LookupProfileResultOutput) ElementType() reflect.Type {
return reflect.TypeOf((*LookupProfileResult)(nil)).Elem()
}
func (o LookupProfileResultOutput) ToLookupProfileResultOutput() LookupProfileResultOutput {
return o
}
func (o LookupProfileResultOutput) ToLookupProfileResultOutputWithContext(ctx context.Context) LookupProfileResultOutput {
return o
}
// Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
func (o LookupProfileResultOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v LookupProfileResult) map[string]string { return v.Config }).(pulumi.StringMapOutput)
}
func (o LookupProfileResultOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v LookupProfileResult) string { return v.Description }).(pulumi.StringOutput)
}
// Device definition. See reference below.
func (o LookupProfileResultOutput) Devices() GetProfileDeviceArrayOutput {
return o.ApplyT(func(v LookupProfileResult) []GetProfileDevice { return v.Devices }).(GetProfileDeviceArrayOutput)
}
// The provider-assigned unique ID for this managed resource.
func (o LookupProfileResultOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v LookupProfileResult) string { return v.Id }).(pulumi.StringOutput)
}
// Name of the device.
func (o LookupProfileResultOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v LookupProfileResult) string { return v.Name }).(pulumi.StringOutput)
}
func (o LookupProfileResultOutput) Project() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupProfileResult) *string { return v.Project }).(pulumi.StringPtrOutput)
}
func (o LookupProfileResultOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupProfileResult) *string { return v.Remote }).(pulumi.StringPtrOutput)
}
func init() {
pulumi.RegisterOutputType(LookupProfileResultOutput{})
}

156
sdk/go/incus/getProject.go generated Normal file
View File

@@ -0,0 +1,156 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # Project
//
// Provides information about an Incus project.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// _default, err := incus.LookupProject(ctx, &incus.LookupProjectArgs{
// Name: "default",
// }, nil)
// if err != nil {
// return err
// }
// _, err = incus.NewInstance(ctx, "d1", &incus.InstanceArgs{
// Project: pulumi.String(_default.Name),
// Image: pulumi.String("images:debian/12"),
// Name: pulumi.String("d1"),
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
func LookupProject(ctx *pulumi.Context, args *LookupProjectArgs, opts ...pulumi.InvokeOption) (*LookupProjectResult, error) {
opts = internal.PkgInvokeDefaultOpts(opts)
var rv LookupProjectResult
err := ctx.Invoke("incus:index/getProject:getProject", args, &rv, opts...)
if err != nil {
return nil, err
}
return &rv, nil
}
// A collection of arguments for invoking getProject.
type LookupProjectArgs struct {
// Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config map[string]string `pulumi:"config"`
// Description of the project.
Description *string `pulumi:"description"`
// **Required** - Name of the project.
Name string `pulumi:"name"`
// *Optional* - The remote in which the resource was created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// A collection of values returned by getProject.
type LookupProjectResult struct {
// Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config map[string]string `pulumi:"config"`
// Description of the project.
Description string `pulumi:"description"`
// The provider-assigned unique ID for this managed resource.
Id string `pulumi:"id"`
Name string `pulumi:"name"`
Remote *string `pulumi:"remote"`
}
func LookupProjectOutput(ctx *pulumi.Context, args LookupProjectOutputArgs, opts ...pulumi.InvokeOption) LookupProjectResultOutput {
return pulumi.ToOutputWithContext(ctx.Context(), args).
ApplyT(func(v interface{}) (LookupProjectResultOutput, error) {
args := v.(LookupProjectArgs)
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
return ctx.InvokeOutput("incus:index/getProject:getProject", args, LookupProjectResultOutput{}, options).(LookupProjectResultOutput), nil
}).(LookupProjectResultOutput)
}
// A collection of arguments for invoking getProject.
type LookupProjectOutputArgs struct {
// Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config pulumi.StringMapInput `pulumi:"config"`
// Description of the project.
Description pulumi.StringPtrInput `pulumi:"description"`
// **Required** - Name of the project.
Name pulumi.StringInput `pulumi:"name"`
// *Optional* - The remote in which the resource was created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput `pulumi:"remote"`
}
func (LookupProjectOutputArgs) ElementType() reflect.Type {
return reflect.TypeOf((*LookupProjectArgs)(nil)).Elem()
}
// A collection of values returned by getProject.
type LookupProjectResultOutput struct{ *pulumi.OutputState }
func (LookupProjectResultOutput) ElementType() reflect.Type {
return reflect.TypeOf((*LookupProjectResult)(nil)).Elem()
}
func (o LookupProjectResultOutput) ToLookupProjectResultOutput() LookupProjectResultOutput {
return o
}
func (o LookupProjectResultOutput) ToLookupProjectResultOutputWithContext(ctx context.Context) LookupProjectResultOutput {
return o
}
// Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
func (o LookupProjectResultOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v LookupProjectResult) map[string]string { return v.Config }).(pulumi.StringMapOutput)
}
// Description of the project.
func (o LookupProjectResultOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v LookupProjectResult) string { return v.Description }).(pulumi.StringOutput)
}
// The provider-assigned unique ID for this managed resource.
func (o LookupProjectResultOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v LookupProjectResult) string { return v.Id }).(pulumi.StringOutput)
}
func (o LookupProjectResultOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v LookupProjectResult) string { return v.Name }).(pulumi.StringOutput)
}
func (o LookupProjectResultOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupProjectResult) *string { return v.Remote }).(pulumi.StringPtrOutput)
}
func init() {
pulumi.RegisterOutputType(LookupProjectResultOutput{})
}

389
sdk/go/incus/image.go generated Normal file
View File

@@ -0,0 +1,389 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # Image
//
// Manages a locally-stored Incus image.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// alpine, err := incus.NewImage(ctx, "alpine", &incus.ImageArgs{
// SourceImage: &incus.ImageSourceImageArgs{
// Remote: pulumi.String("images"),
// Name: pulumi.String("alpine/edge"),
// },
// })
// if err != nil {
// return err
// }
// _, err = incus.NewInstance(ctx, "test1", &incus.InstanceArgs{
// Name: pulumi.String("test1"),
// Image: alpine.Fingerprint,
// Ephemeral: pulumi.Bool(false),
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
//
// ## Notes
//
// * See the Incus [documentation](https://linuxcontainers.org/incus/docs/main/howto/images_remote) for more info on default image remotes.
type Image struct {
pulumi.CustomResourceState
// *Optional* - A list of aliases to assign to the image after
// pulling.
Aliases pulumi.StringArrayOutput `pulumi:"aliases"`
// The list of aliases that were copied from the
// `sourceImage`.
CopiedAliases pulumi.StringArrayOutput `pulumi:"copiedAliases"`
// The datetime of image creation, in Unix time.
CreatedAt pulumi.IntOutput `pulumi:"createdAt"`
// The unique hash fingperint of the image.
Fingerprint pulumi.StringOutput `pulumi:"fingerprint"`
// *Optional* - Name of the project where the image will be stored.
Project pulumi.StringPtrOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
ResourceId pulumi.StringOutput `pulumi:"resourceId"`
// *Optional* - The image file from the local file system from which the image will be created. See reference below.
SourceFile ImageSourceFilePtrOutput `pulumi:"sourceFile"`
// *Optional* - The source image from which the image will be created. See reference below.
SourceImage ImageSourceImagePtrOutput `pulumi:"sourceImage"`
// *Optional* - The source instance from which the image will be created. See reference below.
SourceInstance ImageSourceInstancePtrOutput `pulumi:"sourceInstance"`
}
// NewImage registers a new resource with the given unique name, arguments, and options.
func NewImage(ctx *pulumi.Context,
name string, args *ImageArgs, opts ...pulumi.ResourceOption) (*Image, error) {
if args == nil {
args = &ImageArgs{}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Image
err := ctx.RegisterResource("incus:index/image:Image", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetImage gets an existing Image resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetImage(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *ImageState, opts ...pulumi.ResourceOption) (*Image, error) {
var resource Image
err := ctx.ReadResource("incus:index/image:Image", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Image resources.
type imageState struct {
// *Optional* - A list of aliases to assign to the image after
// pulling.
Aliases []string `pulumi:"aliases"`
// The list of aliases that were copied from the
// `sourceImage`.
CopiedAliases []string `pulumi:"copiedAliases"`
// The datetime of image creation, in Unix time.
CreatedAt *int `pulumi:"createdAt"`
// The unique hash fingperint of the image.
Fingerprint *string `pulumi:"fingerprint"`
// *Optional* - Name of the project where the image will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
ResourceId *string `pulumi:"resourceId"`
// *Optional* - The image file from the local file system from which the image will be created. See reference below.
SourceFile *ImageSourceFile `pulumi:"sourceFile"`
// *Optional* - The source image from which the image will be created. See reference below.
SourceImage *ImageSourceImage `pulumi:"sourceImage"`
// *Optional* - The source instance from which the image will be created. See reference below.
SourceInstance *ImageSourceInstance `pulumi:"sourceInstance"`
}
type ImageState struct {
// *Optional* - A list of aliases to assign to the image after
// pulling.
Aliases pulumi.StringArrayInput
// The list of aliases that were copied from the
// `sourceImage`.
CopiedAliases pulumi.StringArrayInput
// The datetime of image creation, in Unix time.
CreatedAt pulumi.IntPtrInput
// The unique hash fingperint of the image.
Fingerprint pulumi.StringPtrInput
// *Optional* - Name of the project where the image will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
ResourceId pulumi.StringPtrInput
// *Optional* - The image file from the local file system from which the image will be created. See reference below.
SourceFile ImageSourceFilePtrInput
// *Optional* - The source image from which the image will be created. See reference below.
SourceImage ImageSourceImagePtrInput
// *Optional* - The source instance from which the image will be created. See reference below.
SourceInstance ImageSourceInstancePtrInput
}
func (ImageState) ElementType() reflect.Type {
return reflect.TypeOf((*imageState)(nil)).Elem()
}
type imageArgs struct {
// *Optional* - A list of aliases to assign to the image after
// pulling.
Aliases []string `pulumi:"aliases"`
// *Optional* - Name of the project where the image will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - The image file from the local file system from which the image will be created. See reference below.
SourceFile *ImageSourceFile `pulumi:"sourceFile"`
// *Optional* - The source image from which the image will be created. See reference below.
SourceImage *ImageSourceImage `pulumi:"sourceImage"`
// *Optional* - The source instance from which the image will be created. See reference below.
SourceInstance *ImageSourceInstance `pulumi:"sourceInstance"`
}
// The set of arguments for constructing a Image resource.
type ImageArgs struct {
// *Optional* - A list of aliases to assign to the image after
// pulling.
Aliases pulumi.StringArrayInput
// *Optional* - Name of the project where the image will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - The image file from the local file system from which the image will be created. See reference below.
SourceFile ImageSourceFilePtrInput
// *Optional* - The source image from which the image will be created. See reference below.
SourceImage ImageSourceImagePtrInput
// *Optional* - The source instance from which the image will be created. See reference below.
SourceInstance ImageSourceInstancePtrInput
}
func (ImageArgs) ElementType() reflect.Type {
return reflect.TypeOf((*imageArgs)(nil)).Elem()
}
type ImageInput interface {
pulumi.Input
ToImageOutput() ImageOutput
ToImageOutputWithContext(ctx context.Context) ImageOutput
}
func (*Image) ElementType() reflect.Type {
return reflect.TypeOf((**Image)(nil)).Elem()
}
func (i *Image) ToImageOutput() ImageOutput {
return i.ToImageOutputWithContext(context.Background())
}
func (i *Image) ToImageOutputWithContext(ctx context.Context) ImageOutput {
return pulumi.ToOutputWithContext(ctx, i).(ImageOutput)
}
// ImageArrayInput is an input type that accepts ImageArray and ImageArrayOutput values.
// You can construct a concrete instance of `ImageArrayInput` via:
//
// ImageArray{ ImageArgs{...} }
type ImageArrayInput interface {
pulumi.Input
ToImageArrayOutput() ImageArrayOutput
ToImageArrayOutputWithContext(context.Context) ImageArrayOutput
}
type ImageArray []ImageInput
func (ImageArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Image)(nil)).Elem()
}
func (i ImageArray) ToImageArrayOutput() ImageArrayOutput {
return i.ToImageArrayOutputWithContext(context.Background())
}
func (i ImageArray) ToImageArrayOutputWithContext(ctx context.Context) ImageArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(ImageArrayOutput)
}
// ImageMapInput is an input type that accepts ImageMap and ImageMapOutput values.
// You can construct a concrete instance of `ImageMapInput` via:
//
// ImageMap{ "key": ImageArgs{...} }
type ImageMapInput interface {
pulumi.Input
ToImageMapOutput() ImageMapOutput
ToImageMapOutputWithContext(context.Context) ImageMapOutput
}
type ImageMap map[string]ImageInput
func (ImageMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Image)(nil)).Elem()
}
func (i ImageMap) ToImageMapOutput() ImageMapOutput {
return i.ToImageMapOutputWithContext(context.Background())
}
func (i ImageMap) ToImageMapOutputWithContext(ctx context.Context) ImageMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(ImageMapOutput)
}
type ImageOutput struct{ *pulumi.OutputState }
func (ImageOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Image)(nil)).Elem()
}
func (o ImageOutput) ToImageOutput() ImageOutput {
return o
}
func (o ImageOutput) ToImageOutputWithContext(ctx context.Context) ImageOutput {
return o
}
// *Optional* - A list of aliases to assign to the image after
// pulling.
func (o ImageOutput) Aliases() pulumi.StringArrayOutput {
return o.ApplyT(func(v *Image) pulumi.StringArrayOutput { return v.Aliases }).(pulumi.StringArrayOutput)
}
// The list of aliases that were copied from the
// `sourceImage`.
func (o ImageOutput) CopiedAliases() pulumi.StringArrayOutput {
return o.ApplyT(func(v *Image) pulumi.StringArrayOutput { return v.CopiedAliases }).(pulumi.StringArrayOutput)
}
// The datetime of image creation, in Unix time.
func (o ImageOutput) CreatedAt() pulumi.IntOutput {
return o.ApplyT(func(v *Image) pulumi.IntOutput { return v.CreatedAt }).(pulumi.IntOutput)
}
// The unique hash fingperint of the image.
func (o ImageOutput) Fingerprint() pulumi.StringOutput {
return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.Fingerprint }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the image will be stored.
func (o ImageOutput) Project() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Image) pulumi.StringPtrOutput { return v.Project }).(pulumi.StringPtrOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o ImageOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Image) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
func (o ImageOutput) ResourceId() pulumi.StringOutput {
return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput)
}
// *Optional* - The image file from the local file system from which the image will be created. See reference below.
func (o ImageOutput) SourceFile() ImageSourceFilePtrOutput {
return o.ApplyT(func(v *Image) ImageSourceFilePtrOutput { return v.SourceFile }).(ImageSourceFilePtrOutput)
}
// *Optional* - The source image from which the image will be created. See reference below.
func (o ImageOutput) SourceImage() ImageSourceImagePtrOutput {
return o.ApplyT(func(v *Image) ImageSourceImagePtrOutput { return v.SourceImage }).(ImageSourceImagePtrOutput)
}
// *Optional* - The source instance from which the image will be created. See reference below.
func (o ImageOutput) SourceInstance() ImageSourceInstancePtrOutput {
return o.ApplyT(func(v *Image) ImageSourceInstancePtrOutput { return v.SourceInstance }).(ImageSourceInstancePtrOutput)
}
type ImageArrayOutput struct{ *pulumi.OutputState }
func (ImageArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Image)(nil)).Elem()
}
func (o ImageArrayOutput) ToImageArrayOutput() ImageArrayOutput {
return o
}
func (o ImageArrayOutput) ToImageArrayOutputWithContext(ctx context.Context) ImageArrayOutput {
return o
}
func (o ImageArrayOutput) Index(i pulumi.IntInput) ImageOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Image {
return vs[0].([]*Image)[vs[1].(int)]
}).(ImageOutput)
}
type ImageMapOutput struct{ *pulumi.OutputState }
func (ImageMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Image)(nil)).Elem()
}
func (o ImageMapOutput) ToImageMapOutput() ImageMapOutput {
return o
}
func (o ImageMapOutput) ToImageMapOutputWithContext(ctx context.Context) ImageMapOutput {
return o
}
func (o ImageMapOutput) MapIndex(k pulumi.StringInput) ImageOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Image {
return vs[0].(map[string]*Image)[vs[1].(string)]
}).(ImageOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ImageInput)(nil)).Elem(), &Image{})
pulumi.RegisterInputType(reflect.TypeOf((*ImageArrayInput)(nil)).Elem(), ImageArray{})
pulumi.RegisterInputType(reflect.TypeOf((*ImageMapInput)(nil)).Elem(), ImageMap{})
pulumi.RegisterOutputType(ImageOutput{})
pulumi.RegisterOutputType(ImageArrayOutput{})
pulumi.RegisterOutputType(ImageMapOutput{})
}

199
sdk/go/incus/init.go generated Normal file
View File

@@ -0,0 +1,199 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"fmt"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"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 "incus:index/certificate:Certificate":
r = &Certificate{}
case "incus:index/clusterGroup:ClusterGroup":
r = &ClusterGroup{}
case "incus:index/clusterGroupAssignment:ClusterGroupAssignment":
r = &ClusterGroupAssignment{}
case "incus:index/image:Image":
r = &Image{}
case "incus:index/instance:Instance":
r = &Instance{}
case "incus:index/instanceSnapshot:InstanceSnapshot":
r = &InstanceSnapshot{}
case "incus:index/network:Network":
r = &Network{}
case "incus:index/networkAcl:NetworkAcl":
r = &NetworkAcl{}
case "incus:index/networkForward:NetworkForward":
r = &NetworkForward{}
case "incus:index/networkIntegration:NetworkIntegration":
r = &NetworkIntegration{}
case "incus:index/networkLoadBalancer:NetworkLoadBalancer":
r = &NetworkLoadBalancer{}
case "incus:index/networkPeer:NetworkPeer":
r = &NetworkPeer{}
case "incus:index/networkZone:NetworkZone":
r = &NetworkZone{}
case "incus:index/networkZoneRecord:NetworkZoneRecord":
r = &NetworkZoneRecord{}
case "incus:index/profile:Profile":
r = &Profile{}
case "incus:index/project:Project":
r = &Project{}
case "incus:index/storageBucket:StorageBucket":
r = &StorageBucket{}
case "incus:index/storageBucketKey:StorageBucketKey":
r = &StorageBucketKey{}
case "incus:index/storagePool:StoragePool":
r = &StoragePool{}
case "incus:index/storageVolume:StorageVolume":
r = &StorageVolume{}
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:incus" {
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 := internal.PkgVersion()
if err != nil {
version = semver.Version{Major: 1}
}
pulumi.RegisterResourceModule(
"incus",
"index/certificate",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/clusterGroup",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/clusterGroupAssignment",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/image",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/instance",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/instanceSnapshot",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/network",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/networkAcl",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/networkForward",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/networkIntegration",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/networkLoadBalancer",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/networkPeer",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/networkZone",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/networkZoneRecord",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/profile",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/project",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/storageBucket",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/storageBucketKey",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/storagePool",
&module{version},
)
pulumi.RegisterResourceModule(
"incus",
"index/storageVolume",
&module{version},
)
pulumi.RegisterResourcePackage(
"incus",
&pkg{version},
)
}

534
sdk/go/incus/instance.go generated Normal file
View File

@@ -0,0 +1,534 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type Instance struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the instance.
Description pulumi.StringOutput `pulumi:"description"`
// *Optional* - Device definition. See reference below.
Devices InstanceDeviceArrayOutput `pulumi:"devices"`
// *Optional* - Boolean indicating if this instance is ephemeral. Defaults to `false`.
Ephemeral pulumi.BoolOutput `pulumi:"ephemeral"`
// *Optional* - File to upload to the instance. See reference below.
Files InstanceFileArrayOutput `pulumi:"files"`
// *Optional* - Base image from which the instance will be created. Must
// specify [an image accessible from the provider remote](https://linuxcontainers.org/incus/docs/main/reference/image_servers/).
Image pulumi.StringPtrOutput `pulumi:"image"`
// The IPv4 Address of the instance. See Instance Network
// Access for more details.
Ipv4Address pulumi.StringOutput `pulumi:"ipv4Address"`
// The IPv6 Address of the instance. See Instance Network
// Access for more details.
Ipv6Address pulumi.StringOutput `pulumi:"ipv6Address"`
// The MAC address of the detected NIC. See Instance Network
// Access for more details.
MacAddress pulumi.StringOutput `pulumi:"macAddress"`
// **Required** - Name of the instance.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - List of Incus config profiles to apply to the new
// instance. Profile `default` will be applied if profiles are not set (are `null`).
// However, if an empty array (`[]`) is set as a value, no profiles will be applied.
Profiles pulumi.StringArrayOutput `pulumi:"profiles"`
// *Optional* - Name of the project where the instance will be spawned.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Boolean indicating whether the instance should be started (running). Defaults to `true`.
Running pulumi.BoolOutput `pulumi:"running"`
// *Optional* - The souce backup file from which the instance should be restored. For handling of storage pool, see examples.
SourceFile pulumi.StringPtrOutput `pulumi:"sourceFile"`
// *Optional* - The source instance from which the instance will be created. See reference below.
SourceInstance InstanceSourceInstancePtrOutput `pulumi:"sourceInstance"`
// The status of the instance.
Status pulumi.StringOutput `pulumi:"status"`
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringOutput `pulumi:"target"`
// *Optional* - Instance type. Can be `container`, or `virtual-machine`. Defaults to `container`.
Type pulumi.StringOutput `pulumi:"type"`
// *Optional* - WaitFor definition. See reference below.
// If `running` is set to false or instance is already running (on update), this value has no effect.
WaitFors InstanceWaitForArrayOutput `pulumi:"waitFors"`
}
// NewInstance registers a new resource with the given unique name, arguments, and options.
func NewInstance(ctx *pulumi.Context,
name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error) {
if args == nil {
args = &InstanceArgs{}
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Instance
err := ctx.RegisterResource("incus:index/instance:Instance", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetInstance gets an existing Instance resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetInstance(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *InstanceState, opts ...pulumi.ResourceOption) (*Instance, error) {
var resource Instance
err := ctx.ReadResource("incus:index/instance:Instance", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Instance resources.
type instanceState struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the instance.
Description *string `pulumi:"description"`
// *Optional* - Device definition. See reference below.
Devices []InstanceDevice `pulumi:"devices"`
// *Optional* - Boolean indicating if this instance is ephemeral. Defaults to `false`.
Ephemeral *bool `pulumi:"ephemeral"`
// *Optional* - File to upload to the instance. See reference below.
Files []InstanceFile `pulumi:"files"`
// *Optional* - Base image from which the instance will be created. Must
// specify [an image accessible from the provider remote](https://linuxcontainers.org/incus/docs/main/reference/image_servers/).
Image *string `pulumi:"image"`
// The IPv4 Address of the instance. See Instance Network
// Access for more details.
Ipv4Address *string `pulumi:"ipv4Address"`
// The IPv6 Address of the instance. See Instance Network
// Access for more details.
Ipv6Address *string `pulumi:"ipv6Address"`
// The MAC address of the detected NIC. See Instance Network
// Access for more details.
MacAddress *string `pulumi:"macAddress"`
// **Required** - Name of the instance.
Name *string `pulumi:"name"`
// *Optional* - List of Incus config profiles to apply to the new
// instance. Profile `default` will be applied if profiles are not set (are `null`).
// However, if an empty array (`[]`) is set as a value, no profiles will be applied.
Profiles []string `pulumi:"profiles"`
// *Optional* - Name of the project where the instance will be spawned.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Boolean indicating whether the instance should be started (running). Defaults to `true`.
Running *bool `pulumi:"running"`
// *Optional* - The souce backup file from which the instance should be restored. For handling of storage pool, see examples.
SourceFile *string `pulumi:"sourceFile"`
// *Optional* - The source instance from which the instance will be created. See reference below.
SourceInstance *InstanceSourceInstance `pulumi:"sourceInstance"`
// The status of the instance.
Status *string `pulumi:"status"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
// *Optional* - Instance type. Can be `container`, or `virtual-machine`. Defaults to `container`.
Type *string `pulumi:"type"`
// *Optional* - WaitFor definition. See reference below.
// If `running` is set to false or instance is already running (on update), this value has no effect.
WaitFors []InstanceWaitFor `pulumi:"waitFors"`
}
type InstanceState struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config pulumi.StringMapInput
// *Optional* - Description of the instance.
Description pulumi.StringPtrInput
// *Optional* - Device definition. See reference below.
Devices InstanceDeviceArrayInput
// *Optional* - Boolean indicating if this instance is ephemeral. Defaults to `false`.
Ephemeral pulumi.BoolPtrInput
// *Optional* - File to upload to the instance. See reference below.
Files InstanceFileArrayInput
// *Optional* - Base image from which the instance will be created. Must
// specify [an image accessible from the provider remote](https://linuxcontainers.org/incus/docs/main/reference/image_servers/).
Image pulumi.StringPtrInput
// The IPv4 Address of the instance. See Instance Network
// Access for more details.
Ipv4Address pulumi.StringPtrInput
// The IPv6 Address of the instance. See Instance Network
// Access for more details.
Ipv6Address pulumi.StringPtrInput
// The MAC address of the detected NIC. See Instance Network
// Access for more details.
MacAddress pulumi.StringPtrInput
// **Required** - Name of the instance.
Name pulumi.StringPtrInput
// *Optional* - List of Incus config profiles to apply to the new
// instance. Profile `default` will be applied if profiles are not set (are `null`).
// However, if an empty array (`[]`) is set as a value, no profiles will be applied.
Profiles pulumi.StringArrayInput
// *Optional* - Name of the project where the instance will be spawned.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Boolean indicating whether the instance should be started (running). Defaults to `true`.
Running pulumi.BoolPtrInput
// *Optional* - The souce backup file from which the instance should be restored. For handling of storage pool, see examples.
SourceFile pulumi.StringPtrInput
// *Optional* - The source instance from which the instance will be created. See reference below.
SourceInstance InstanceSourceInstancePtrInput
// The status of the instance.
Status pulumi.StringPtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
// *Optional* - Instance type. Can be `container`, or `virtual-machine`. Defaults to `container`.
Type pulumi.StringPtrInput
// *Optional* - WaitFor definition. See reference below.
// If `running` is set to false or instance is already running (on update), this value has no effect.
WaitFors InstanceWaitForArrayInput
}
func (InstanceState) ElementType() reflect.Type {
return reflect.TypeOf((*instanceState)(nil)).Elem()
}
type instanceArgs struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the instance.
Description *string `pulumi:"description"`
// *Optional* - Device definition. See reference below.
Devices []InstanceDevice `pulumi:"devices"`
// *Optional* - Boolean indicating if this instance is ephemeral. Defaults to `false`.
Ephemeral *bool `pulumi:"ephemeral"`
// *Optional* - File to upload to the instance. See reference below.
Files []InstanceFile `pulumi:"files"`
// *Optional* - Base image from which the instance will be created. Must
// specify [an image accessible from the provider remote](https://linuxcontainers.org/incus/docs/main/reference/image_servers/).
Image *string `pulumi:"image"`
// **Required** - Name of the instance.
Name *string `pulumi:"name"`
// *Optional* - List of Incus config profiles to apply to the new
// instance. Profile `default` will be applied if profiles are not set (are `null`).
// However, if an empty array (`[]`) is set as a value, no profiles will be applied.
Profiles []string `pulumi:"profiles"`
// *Optional* - Name of the project where the instance will be spawned.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Boolean indicating whether the instance should be started (running). Defaults to `true`.
Running *bool `pulumi:"running"`
// *Optional* - The souce backup file from which the instance should be restored. For handling of storage pool, see examples.
SourceFile *string `pulumi:"sourceFile"`
// *Optional* - The source instance from which the instance will be created. See reference below.
SourceInstance *InstanceSourceInstance `pulumi:"sourceInstance"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
// *Optional* - Instance type. Can be `container`, or `virtual-machine`. Defaults to `container`.
Type *string `pulumi:"type"`
// *Optional* - WaitFor definition. See reference below.
// If `running` is set to false or instance is already running (on update), this value has no effect.
WaitFors []InstanceWaitFor `pulumi:"waitFors"`
}
// The set of arguments for constructing a Instance resource.
type InstanceArgs struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config pulumi.StringMapInput
// *Optional* - Description of the instance.
Description pulumi.StringPtrInput
// *Optional* - Device definition. See reference below.
Devices InstanceDeviceArrayInput
// *Optional* - Boolean indicating if this instance is ephemeral. Defaults to `false`.
Ephemeral pulumi.BoolPtrInput
// *Optional* - File to upload to the instance. See reference below.
Files InstanceFileArrayInput
// *Optional* - Base image from which the instance will be created. Must
// specify [an image accessible from the provider remote](https://linuxcontainers.org/incus/docs/main/reference/image_servers/).
Image pulumi.StringPtrInput
// **Required** - Name of the instance.
Name pulumi.StringPtrInput
// *Optional* - List of Incus config profiles to apply to the new
// instance. Profile `default` will be applied if profiles are not set (are `null`).
// However, if an empty array (`[]`) is set as a value, no profiles will be applied.
Profiles pulumi.StringArrayInput
// *Optional* - Name of the project where the instance will be spawned.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Boolean indicating whether the instance should be started (running). Defaults to `true`.
Running pulumi.BoolPtrInput
// *Optional* - The souce backup file from which the instance should be restored. For handling of storage pool, see examples.
SourceFile pulumi.StringPtrInput
// *Optional* - The source instance from which the instance will be created. See reference below.
SourceInstance InstanceSourceInstancePtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
// *Optional* - Instance type. Can be `container`, or `virtual-machine`. Defaults to `container`.
Type pulumi.StringPtrInput
// *Optional* - WaitFor definition. See reference below.
// If `running` is set to false or instance is already running (on update), this value has no effect.
WaitFors InstanceWaitForArrayInput
}
func (InstanceArgs) ElementType() reflect.Type {
return reflect.TypeOf((*instanceArgs)(nil)).Elem()
}
type InstanceInput interface {
pulumi.Input
ToInstanceOutput() InstanceOutput
ToInstanceOutputWithContext(ctx context.Context) InstanceOutput
}
func (*Instance) ElementType() reflect.Type {
return reflect.TypeOf((**Instance)(nil)).Elem()
}
func (i *Instance) ToInstanceOutput() InstanceOutput {
return i.ToInstanceOutputWithContext(context.Background())
}
func (i *Instance) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput {
return pulumi.ToOutputWithContext(ctx, i).(InstanceOutput)
}
// InstanceArrayInput is an input type that accepts InstanceArray and InstanceArrayOutput values.
// You can construct a concrete instance of `InstanceArrayInput` via:
//
// InstanceArray{ InstanceArgs{...} }
type InstanceArrayInput interface {
pulumi.Input
ToInstanceArrayOutput() InstanceArrayOutput
ToInstanceArrayOutputWithContext(context.Context) InstanceArrayOutput
}
type InstanceArray []InstanceInput
func (InstanceArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Instance)(nil)).Elem()
}
func (i InstanceArray) ToInstanceArrayOutput() InstanceArrayOutput {
return i.ToInstanceArrayOutputWithContext(context.Background())
}
func (i InstanceArray) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(InstanceArrayOutput)
}
// InstanceMapInput is an input type that accepts InstanceMap and InstanceMapOutput values.
// You can construct a concrete instance of `InstanceMapInput` via:
//
// InstanceMap{ "key": InstanceArgs{...} }
type InstanceMapInput interface {
pulumi.Input
ToInstanceMapOutput() InstanceMapOutput
ToInstanceMapOutputWithContext(context.Context) InstanceMapOutput
}
type InstanceMap map[string]InstanceInput
func (InstanceMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Instance)(nil)).Elem()
}
func (i InstanceMap) ToInstanceMapOutput() InstanceMapOutput {
return i.ToInstanceMapOutputWithContext(context.Background())
}
func (i InstanceMap) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(InstanceMapOutput)
}
type InstanceOutput struct{ *pulumi.OutputState }
func (InstanceOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Instance)(nil)).Elem()
}
func (o InstanceOutput) ToInstanceOutput() InstanceOutput {
return o
}
func (o InstanceOutput) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
func (o InstanceOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *Instance) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the instance.
func (o InstanceOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// *Optional* - Device definition. See reference below.
func (o InstanceOutput) Devices() InstanceDeviceArrayOutput {
return o.ApplyT(func(v *Instance) InstanceDeviceArrayOutput { return v.Devices }).(InstanceDeviceArrayOutput)
}
// *Optional* - Boolean indicating if this instance is ephemeral. Defaults to `false`.
func (o InstanceOutput) Ephemeral() pulumi.BoolOutput {
return o.ApplyT(func(v *Instance) pulumi.BoolOutput { return v.Ephemeral }).(pulumi.BoolOutput)
}
// *Optional* - File to upload to the instance. See reference below.
func (o InstanceOutput) Files() InstanceFileArrayOutput {
return o.ApplyT(func(v *Instance) InstanceFileArrayOutput { return v.Files }).(InstanceFileArrayOutput)
}
// *Optional* - Base image from which the instance will be created. Must
// specify [an image accessible from the provider remote](https://linuxcontainers.org/incus/docs/main/reference/image_servers/).
func (o InstanceOutput) Image() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.Image }).(pulumi.StringPtrOutput)
}
// The IPv4 Address of the instance. See Instance Network
// Access for more details.
func (o InstanceOutput) Ipv4Address() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Ipv4Address }).(pulumi.StringOutput)
}
// The IPv6 Address of the instance. See Instance Network
// Access for more details.
func (o InstanceOutput) Ipv6Address() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Ipv6Address }).(pulumi.StringOutput)
}
// The MAC address of the detected NIC. See Instance Network
// Access for more details.
func (o InstanceOutput) MacAddress() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.MacAddress }).(pulumi.StringOutput)
}
// **Required** - Name of the instance.
func (o InstanceOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - List of Incus config profiles to apply to the new
// instance. Profile `default` will be applied if profiles are not set (are `null`).
// However, if an empty array (`[]`) is set as a value, no profiles will be applied.
func (o InstanceOutput) Profiles() pulumi.StringArrayOutput {
return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.Profiles }).(pulumi.StringArrayOutput)
}
// *Optional* - Name of the project where the instance will be spawned.
func (o InstanceOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o InstanceOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Boolean indicating whether the instance should be started (running). Defaults to `true`.
func (o InstanceOutput) Running() pulumi.BoolOutput {
return o.ApplyT(func(v *Instance) pulumi.BoolOutput { return v.Running }).(pulumi.BoolOutput)
}
// *Optional* - The souce backup file from which the instance should be restored. For handling of storage pool, see examples.
func (o InstanceOutput) SourceFile() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.SourceFile }).(pulumi.StringPtrOutput)
}
// *Optional* - The source instance from which the instance will be created. See reference below.
func (o InstanceOutput) SourceInstance() InstanceSourceInstancePtrOutput {
return o.ApplyT(func(v *Instance) InstanceSourceInstancePtrOutput { return v.SourceInstance }).(InstanceSourceInstancePtrOutput)
}
// The status of the instance.
func (o InstanceOutput) Status() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
}
// *Optional* - Specify a target node in a cluster.
func (o InstanceOutput) Target() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Target }).(pulumi.StringOutput)
}
// *Optional* - Instance type. Can be `container`, or `virtual-machine`. Defaults to `container`.
func (o InstanceOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
}
// *Optional* - WaitFor definition. See reference below.
// If `running` is set to false or instance is already running (on update), this value has no effect.
func (o InstanceOutput) WaitFors() InstanceWaitForArrayOutput {
return o.ApplyT(func(v *Instance) InstanceWaitForArrayOutput { return v.WaitFors }).(InstanceWaitForArrayOutput)
}
type InstanceArrayOutput struct{ *pulumi.OutputState }
func (InstanceArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Instance)(nil)).Elem()
}
func (o InstanceArrayOutput) ToInstanceArrayOutput() InstanceArrayOutput {
return o
}
func (o InstanceArrayOutput) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput {
return o
}
func (o InstanceArrayOutput) Index(i pulumi.IntInput) InstanceOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Instance {
return vs[0].([]*Instance)[vs[1].(int)]
}).(InstanceOutput)
}
type InstanceMapOutput struct{ *pulumi.OutputState }
func (InstanceMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Instance)(nil)).Elem()
}
func (o InstanceMapOutput) ToInstanceMapOutput() InstanceMapOutput {
return o
}
func (o InstanceMapOutput) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput {
return o
}
func (o InstanceMapOutput) MapIndex(k pulumi.StringInput) InstanceOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Instance {
return vs[0].(map[string]*Instance)[vs[1].(string)]
}).(InstanceOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*InstanceInput)(nil)).Elem(), &Instance{})
pulumi.RegisterInputType(reflect.TypeOf((*InstanceArrayInput)(nil)).Elem(), InstanceArray{})
pulumi.RegisterInputType(reflect.TypeOf((*InstanceMapInput)(nil)).Elem(), InstanceMap{})
pulumi.RegisterOutputType(InstanceOutput{})
pulumi.RegisterOutputType(InstanceArrayOutput{})
pulumi.RegisterOutputType(InstanceMapOutput{})
}

352
sdk/go/incus/instanceSnapshot.go generated Normal file
View File

@@ -0,0 +1,352 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # InstanceSnapshot
//
// Manages a snapshot of an Incus instance.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// instance, err := incus.NewInstance(ctx, "instance", &incus.InstanceArgs{
// Name: pulumi.String("my-instance"),
// Image: pulumi.String("ubuntu"),
// Ephemeral: pulumi.Bool(false),
// })
// if err != nil {
// return err
// }
// _, err = incus.NewInstanceSnapshot(ctx, "snap1", &incus.InstanceSnapshotArgs{
// Name: pulumi.String("my-snapshot-1"),
// Instance: instance.Name,
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
type InstanceSnapshot struct {
pulumi.CustomResourceState
// The time Incus reported the snapshot was successfully created,
// in UTC.
CreatedAt pulumi.IntOutput `pulumi:"createdAt"`
// **Required** - The name of the instance to snapshot.
Instance pulumi.StringOutput `pulumi:"instance"`
// **Required** - Name of the snapshot.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the snapshot will be stored.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Set to `true` to create a stateful snapshot,
// `false` for stateless. Stateful snapshots include runtime state. Defaults to
// `false`.
Stateful pulumi.BoolOutput `pulumi:"stateful"`
}
// NewInstanceSnapshot registers a new resource with the given unique name, arguments, and options.
func NewInstanceSnapshot(ctx *pulumi.Context,
name string, args *InstanceSnapshotArgs, opts ...pulumi.ResourceOption) (*InstanceSnapshot, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Instance == nil {
return nil, errors.New("invalid value for required argument 'Instance'")
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource InstanceSnapshot
err := ctx.RegisterResource("incus:index/instanceSnapshot:InstanceSnapshot", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetInstanceSnapshot gets an existing InstanceSnapshot resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetInstanceSnapshot(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *InstanceSnapshotState, opts ...pulumi.ResourceOption) (*InstanceSnapshot, error) {
var resource InstanceSnapshot
err := ctx.ReadResource("incus:index/instanceSnapshot:InstanceSnapshot", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering InstanceSnapshot resources.
type instanceSnapshotState struct {
// The time Incus reported the snapshot was successfully created,
// in UTC.
CreatedAt *int `pulumi:"createdAt"`
// **Required** - The name of the instance to snapshot.
Instance *string `pulumi:"instance"`
// **Required** - Name of the snapshot.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the snapshot will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Set to `true` to create a stateful snapshot,
// `false` for stateless. Stateful snapshots include runtime state. Defaults to
// `false`.
Stateful *bool `pulumi:"stateful"`
}
type InstanceSnapshotState struct {
// The time Incus reported the snapshot was successfully created,
// in UTC.
CreatedAt pulumi.IntPtrInput
// **Required** - The name of the instance to snapshot.
Instance pulumi.StringPtrInput
// **Required** - Name of the snapshot.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the snapshot will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Set to `true` to create a stateful snapshot,
// `false` for stateless. Stateful snapshots include runtime state. Defaults to
// `false`.
Stateful pulumi.BoolPtrInput
}
func (InstanceSnapshotState) ElementType() reflect.Type {
return reflect.TypeOf((*instanceSnapshotState)(nil)).Elem()
}
type instanceSnapshotArgs struct {
// **Required** - The name of the instance to snapshot.
Instance string `pulumi:"instance"`
// **Required** - Name of the snapshot.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the snapshot will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Set to `true` to create a stateful snapshot,
// `false` for stateless. Stateful snapshots include runtime state. Defaults to
// `false`.
Stateful *bool `pulumi:"stateful"`
}
// The set of arguments for constructing a InstanceSnapshot resource.
type InstanceSnapshotArgs struct {
// **Required** - The name of the instance to snapshot.
Instance pulumi.StringInput
// **Required** - Name of the snapshot.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the snapshot will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Set to `true` to create a stateful snapshot,
// `false` for stateless. Stateful snapshots include runtime state. Defaults to
// `false`.
Stateful pulumi.BoolPtrInput
}
func (InstanceSnapshotArgs) ElementType() reflect.Type {
return reflect.TypeOf((*instanceSnapshotArgs)(nil)).Elem()
}
type InstanceSnapshotInput interface {
pulumi.Input
ToInstanceSnapshotOutput() InstanceSnapshotOutput
ToInstanceSnapshotOutputWithContext(ctx context.Context) InstanceSnapshotOutput
}
func (*InstanceSnapshot) ElementType() reflect.Type {
return reflect.TypeOf((**InstanceSnapshot)(nil)).Elem()
}
func (i *InstanceSnapshot) ToInstanceSnapshotOutput() InstanceSnapshotOutput {
return i.ToInstanceSnapshotOutputWithContext(context.Background())
}
func (i *InstanceSnapshot) ToInstanceSnapshotOutputWithContext(ctx context.Context) InstanceSnapshotOutput {
return pulumi.ToOutputWithContext(ctx, i).(InstanceSnapshotOutput)
}
// InstanceSnapshotArrayInput is an input type that accepts InstanceSnapshotArray and InstanceSnapshotArrayOutput values.
// You can construct a concrete instance of `InstanceSnapshotArrayInput` via:
//
// InstanceSnapshotArray{ InstanceSnapshotArgs{...} }
type InstanceSnapshotArrayInput interface {
pulumi.Input
ToInstanceSnapshotArrayOutput() InstanceSnapshotArrayOutput
ToInstanceSnapshotArrayOutputWithContext(context.Context) InstanceSnapshotArrayOutput
}
type InstanceSnapshotArray []InstanceSnapshotInput
func (InstanceSnapshotArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*InstanceSnapshot)(nil)).Elem()
}
func (i InstanceSnapshotArray) ToInstanceSnapshotArrayOutput() InstanceSnapshotArrayOutput {
return i.ToInstanceSnapshotArrayOutputWithContext(context.Background())
}
func (i InstanceSnapshotArray) ToInstanceSnapshotArrayOutputWithContext(ctx context.Context) InstanceSnapshotArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(InstanceSnapshotArrayOutput)
}
// InstanceSnapshotMapInput is an input type that accepts InstanceSnapshotMap and InstanceSnapshotMapOutput values.
// You can construct a concrete instance of `InstanceSnapshotMapInput` via:
//
// InstanceSnapshotMap{ "key": InstanceSnapshotArgs{...} }
type InstanceSnapshotMapInput interface {
pulumi.Input
ToInstanceSnapshotMapOutput() InstanceSnapshotMapOutput
ToInstanceSnapshotMapOutputWithContext(context.Context) InstanceSnapshotMapOutput
}
type InstanceSnapshotMap map[string]InstanceSnapshotInput
func (InstanceSnapshotMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*InstanceSnapshot)(nil)).Elem()
}
func (i InstanceSnapshotMap) ToInstanceSnapshotMapOutput() InstanceSnapshotMapOutput {
return i.ToInstanceSnapshotMapOutputWithContext(context.Background())
}
func (i InstanceSnapshotMap) ToInstanceSnapshotMapOutputWithContext(ctx context.Context) InstanceSnapshotMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(InstanceSnapshotMapOutput)
}
type InstanceSnapshotOutput struct{ *pulumi.OutputState }
func (InstanceSnapshotOutput) ElementType() reflect.Type {
return reflect.TypeOf((**InstanceSnapshot)(nil)).Elem()
}
func (o InstanceSnapshotOutput) ToInstanceSnapshotOutput() InstanceSnapshotOutput {
return o
}
func (o InstanceSnapshotOutput) ToInstanceSnapshotOutputWithContext(ctx context.Context) InstanceSnapshotOutput {
return o
}
// The time Incus reported the snapshot was successfully created,
// in UTC.
func (o InstanceSnapshotOutput) CreatedAt() pulumi.IntOutput {
return o.ApplyT(func(v *InstanceSnapshot) pulumi.IntOutput { return v.CreatedAt }).(pulumi.IntOutput)
}
// **Required** - The name of the instance to snapshot.
func (o InstanceSnapshotOutput) Instance() pulumi.StringOutput {
return o.ApplyT(func(v *InstanceSnapshot) pulumi.StringOutput { return v.Instance }).(pulumi.StringOutput)
}
// **Required** - Name of the snapshot.
func (o InstanceSnapshotOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *InstanceSnapshot) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the snapshot will be stored.
func (o InstanceSnapshotOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *InstanceSnapshot) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o InstanceSnapshotOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *InstanceSnapshot) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Set to `true` to create a stateful snapshot,
// `false` for stateless. Stateful snapshots include runtime state. Defaults to
// `false`.
func (o InstanceSnapshotOutput) Stateful() pulumi.BoolOutput {
return o.ApplyT(func(v *InstanceSnapshot) pulumi.BoolOutput { return v.Stateful }).(pulumi.BoolOutput)
}
type InstanceSnapshotArrayOutput struct{ *pulumi.OutputState }
func (InstanceSnapshotArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*InstanceSnapshot)(nil)).Elem()
}
func (o InstanceSnapshotArrayOutput) ToInstanceSnapshotArrayOutput() InstanceSnapshotArrayOutput {
return o
}
func (o InstanceSnapshotArrayOutput) ToInstanceSnapshotArrayOutputWithContext(ctx context.Context) InstanceSnapshotArrayOutput {
return o
}
func (o InstanceSnapshotArrayOutput) Index(i pulumi.IntInput) InstanceSnapshotOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InstanceSnapshot {
return vs[0].([]*InstanceSnapshot)[vs[1].(int)]
}).(InstanceSnapshotOutput)
}
type InstanceSnapshotMapOutput struct{ *pulumi.OutputState }
func (InstanceSnapshotMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*InstanceSnapshot)(nil)).Elem()
}
func (o InstanceSnapshotMapOutput) ToInstanceSnapshotMapOutput() InstanceSnapshotMapOutput {
return o
}
func (o InstanceSnapshotMapOutput) ToInstanceSnapshotMapOutputWithContext(ctx context.Context) InstanceSnapshotMapOutput {
return o
}
func (o InstanceSnapshotMapOutput) MapIndex(k pulumi.StringInput) InstanceSnapshotOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InstanceSnapshot {
return vs[0].(map[string]*InstanceSnapshot)[vs[1].(string)]
}).(InstanceSnapshotOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*InstanceSnapshotInput)(nil)).Elem(), &InstanceSnapshot{})
pulumi.RegisterInputType(reflect.TypeOf((*InstanceSnapshotArrayInput)(nil)).Elem(), InstanceSnapshotArray{})
pulumi.RegisterInputType(reflect.TypeOf((*InstanceSnapshotMapInput)(nil)).Elem(), InstanceSnapshotMap{})
pulumi.RegisterOutputType(InstanceSnapshotOutput{})
pulumi.RegisterOutputType(InstanceSnapshotArrayOutput{})
pulumi.RegisterOutputType(InstanceSnapshotMapOutput{})
}

184
sdk/go/incus/internal/pulumiUtilities.go generated Normal file
View File

@@ -0,0 +1,184 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package internal
import (
"fmt"
"os"
"reflect"
"regexp"
"strconv"
"strings"
"github.com/blang/semver"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/internals"
)
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, ok := os.LookupEnv(v); ok {
if parser != nil {
return parser(value)
}
return value
}
}
return def
}
// PkgVersion uses reflection to determine the version of the current package.
// If a version cannot be determined, v1 will be assumed. The second return
// value is always nil.
func PkgVersion() (semver.Version, error) {
// emptyVersion defaults to v0.0.0
if !SdkVersion.Equals(semver.Version{}) {
return SdkVersion, nil
}
type sentinal struct{}
pkgPath := reflect.TypeOf(sentinal{}).PkgPath()
re := regexp.MustCompile("^.*/pulumi-incus/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{Major: 1}, nil
}
// isZero is a null safe check for if a value is it's types zero value.
func IsZero(v interface{}) bool {
if v == nil {
return true
}
return reflect.ValueOf(v).IsZero()
}
func CallPlain(
ctx *pulumi.Context,
tok string,
args pulumi.Input,
output pulumi.Output,
self pulumi.Resource,
property string,
resultPtr reflect.Value,
errorPtr *error,
opts ...pulumi.InvokeOption,
) {
res, err := callPlainInner(ctx, tok, args, output, self, opts...)
if err != nil {
*errorPtr = err
return
}
v := reflect.ValueOf(res)
// extract res.property field if asked to do so
if property != "" {
v = v.FieldByName("Res")
}
// return by setting the result pointer; this style of returns shortens the generated code without generics
resultPtr.Elem().Set(v)
}
func callPlainInner(
ctx *pulumi.Context,
tok string,
args pulumi.Input,
output pulumi.Output,
self pulumi.Resource,
opts ...pulumi.InvokeOption,
) (any, error) {
o, err := ctx.Call(tok, args, output, self, opts...)
if err != nil {
return nil, err
}
outputData, err := internals.UnsafeAwaitOutput(ctx.Context(), o)
if err != nil {
return nil, err
}
// Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency.
known := outputData.Known
value := outputData.Value
secret := outputData.Secret
problem := ""
if !known {
problem = "an unknown value"
} else if secret {
problem = "a secret value"
}
if problem != "" {
return nil, fmt.Errorf("Plain resource method %q incorrectly returned %s. "+
"This is an error in the provider, please report this to the provider developer.",
tok, problem)
}
return value, nil
}
// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource.
func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption {
defaults := []pulumi.ResourceOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("https://git.kalinow.ski/api/packages/kiterun/generic/pulumi-incus/${VERSION}/"))
version := semver.MustParse("1.0.0-alpha.0+dev")
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))
}
return append(defaults, opts...)
}
// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke.
func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption {
defaults := []pulumi.InvokeOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("https://git.kalinow.ski/api/packages/kiterun/generic/pulumi-incus/${VERSION}/"))
version := semver.MustParse("1.0.0-alpha.0+dev")
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))
}
return append(defaults, opts...)
}

11
sdk/go/incus/internal/pulumiVersion.go generated Normal file
View File

@@ -0,0 +1,11 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package internal
import (
"github.com/blang/semver"
)
var SdkVersion semver.Version = semver.Version{}
var pluginDownloadURL string = ""

348
sdk/go/incus/network.go generated Normal file
View File

@@ -0,0 +1,348 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type Network struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [network config settings](https://linuxcontainers.org/incus/docs/main/networks/).
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the network.
Description pulumi.StringOutput `pulumi:"description"`
// Whether or not the network is managed.
Managed pulumi.BoolOutput `pulumi:"managed"`
// **Required** - Name of the network. This is usually the device the
// network will appear as to instances.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the network will be created.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrOutput `pulumi:"target"`
// *Optional* - The type of network to create. Can be one of: bridge,
// macvlan, sriov, ovn, or physical. If no type is specified, a bridge network
// is created.
Type pulumi.StringOutput `pulumi:"type"`
}
// NewNetwork registers a new resource with the given unique name, arguments, and options.
func NewNetwork(ctx *pulumi.Context,
name string, args *NetworkArgs, opts ...pulumi.ResourceOption) (*Network, error) {
if args == nil {
args = &NetworkArgs{}
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Network
err := ctx.RegisterResource("incus:index/network:Network", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetwork gets an existing Network resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetwork(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkState, opts ...pulumi.ResourceOption) (*Network, error) {
var resource Network
err := ctx.ReadResource("incus:index/network:Network", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Network resources.
type networkState struct {
// *Optional* - Map of key/value pairs of
// [network config settings](https://linuxcontainers.org/incus/docs/main/networks/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network.
Description *string `pulumi:"description"`
// Whether or not the network is managed.
Managed *bool `pulumi:"managed"`
// **Required** - Name of the network. This is usually the device the
// network will appear as to instances.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
// *Optional* - The type of network to create. Can be one of: bridge,
// macvlan, sriov, ovn, or physical. If no type is specified, a bridge network
// is created.
Type *string `pulumi:"type"`
}
type NetworkState struct {
// *Optional* - Map of key/value pairs of
// [network config settings](https://linuxcontainers.org/incus/docs/main/networks/).
Config pulumi.StringMapInput
// *Optional* - Description of the network.
Description pulumi.StringPtrInput
// Whether or not the network is managed.
Managed pulumi.BoolPtrInput
// **Required** - Name of the network. This is usually the device the
// network will appear as to instances.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
// *Optional* - The type of network to create. Can be one of: bridge,
// macvlan, sriov, ovn, or physical. If no type is specified, a bridge network
// is created.
Type pulumi.StringPtrInput
}
func (NetworkState) ElementType() reflect.Type {
return reflect.TypeOf((*networkState)(nil)).Elem()
}
type networkArgs struct {
// *Optional* - Map of key/value pairs of
// [network config settings](https://linuxcontainers.org/incus/docs/main/networks/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network.
Description *string `pulumi:"description"`
// **Required** - Name of the network. This is usually the device the
// network will appear as to instances.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
// *Optional* - The type of network to create. Can be one of: bridge,
// macvlan, sriov, ovn, or physical. If no type is specified, a bridge network
// is created.
Type *string `pulumi:"type"`
}
// The set of arguments for constructing a Network resource.
type NetworkArgs struct {
// *Optional* - Map of key/value pairs of
// [network config settings](https://linuxcontainers.org/incus/docs/main/networks/).
Config pulumi.StringMapInput
// *Optional* - Description of the network.
Description pulumi.StringPtrInput
// **Required** - Name of the network. This is usually the device the
// network will appear as to instances.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
// *Optional* - The type of network to create. Can be one of: bridge,
// macvlan, sriov, ovn, or physical. If no type is specified, a bridge network
// is created.
Type pulumi.StringPtrInput
}
func (NetworkArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkArgs)(nil)).Elem()
}
type NetworkInput interface {
pulumi.Input
ToNetworkOutput() NetworkOutput
ToNetworkOutputWithContext(ctx context.Context) NetworkOutput
}
func (*Network) ElementType() reflect.Type {
return reflect.TypeOf((**Network)(nil)).Elem()
}
func (i *Network) ToNetworkOutput() NetworkOutput {
return i.ToNetworkOutputWithContext(context.Background())
}
func (i *Network) ToNetworkOutputWithContext(ctx context.Context) NetworkOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkOutput)
}
// NetworkArrayInput is an input type that accepts NetworkArray and NetworkArrayOutput values.
// You can construct a concrete instance of `NetworkArrayInput` via:
//
// NetworkArray{ NetworkArgs{...} }
type NetworkArrayInput interface {
pulumi.Input
ToNetworkArrayOutput() NetworkArrayOutput
ToNetworkArrayOutputWithContext(context.Context) NetworkArrayOutput
}
type NetworkArray []NetworkInput
func (NetworkArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Network)(nil)).Elem()
}
func (i NetworkArray) ToNetworkArrayOutput() NetworkArrayOutput {
return i.ToNetworkArrayOutputWithContext(context.Background())
}
func (i NetworkArray) ToNetworkArrayOutputWithContext(ctx context.Context) NetworkArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkArrayOutput)
}
// NetworkMapInput is an input type that accepts NetworkMap and NetworkMapOutput values.
// You can construct a concrete instance of `NetworkMapInput` via:
//
// NetworkMap{ "key": NetworkArgs{...} }
type NetworkMapInput interface {
pulumi.Input
ToNetworkMapOutput() NetworkMapOutput
ToNetworkMapOutputWithContext(context.Context) NetworkMapOutput
}
type NetworkMap map[string]NetworkInput
func (NetworkMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Network)(nil)).Elem()
}
func (i NetworkMap) ToNetworkMapOutput() NetworkMapOutput {
return i.ToNetworkMapOutputWithContext(context.Background())
}
func (i NetworkMap) ToNetworkMapOutputWithContext(ctx context.Context) NetworkMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkMapOutput)
}
type NetworkOutput struct{ *pulumi.OutputState }
func (NetworkOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Network)(nil)).Elem()
}
func (o NetworkOutput) ToNetworkOutput() NetworkOutput {
return o
}
func (o NetworkOutput) ToNetworkOutputWithContext(ctx context.Context) NetworkOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [network config settings](https://linuxcontainers.org/incus/docs/main/networks/).
func (o NetworkOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *Network) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the network.
func (o NetworkOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// Whether or not the network is managed.
func (o NetworkOutput) Managed() pulumi.BoolOutput {
return o.ApplyT(func(v *Network) pulumi.BoolOutput { return v.Managed }).(pulumi.BoolOutput)
}
// **Required** - Name of the network. This is usually the device the
// network will appear as to instances.
func (o NetworkOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the network will be created.
func (o NetworkOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o NetworkOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Network) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Specify a target node in a cluster.
func (o NetworkOutput) Target() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Network) pulumi.StringPtrOutput { return v.Target }).(pulumi.StringPtrOutput)
}
// *Optional* - The type of network to create. Can be one of: bridge,
// macvlan, sriov, ovn, or physical. If no type is specified, a bridge network
// is created.
func (o NetworkOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
}
type NetworkArrayOutput struct{ *pulumi.OutputState }
func (NetworkArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Network)(nil)).Elem()
}
func (o NetworkArrayOutput) ToNetworkArrayOutput() NetworkArrayOutput {
return o
}
func (o NetworkArrayOutput) ToNetworkArrayOutputWithContext(ctx context.Context) NetworkArrayOutput {
return o
}
func (o NetworkArrayOutput) Index(i pulumi.IntInput) NetworkOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Network {
return vs[0].([]*Network)[vs[1].(int)]
}).(NetworkOutput)
}
type NetworkMapOutput struct{ *pulumi.OutputState }
func (NetworkMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Network)(nil)).Elem()
}
func (o NetworkMapOutput) ToNetworkMapOutput() NetworkMapOutput {
return o
}
func (o NetworkMapOutput) ToNetworkMapOutputWithContext(ctx context.Context) NetworkMapOutput {
return o
}
func (o NetworkMapOutput) MapIndex(k pulumi.StringInput) NetworkOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Network {
return vs[0].(map[string]*Network)[vs[1].(string)]
}).(NetworkOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkInput)(nil)).Elem(), &Network{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkArrayInput)(nil)).Elem(), NetworkArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkMapInput)(nil)).Elem(), NetworkMap{})
pulumi.RegisterOutputType(NetworkOutput{})
pulumi.RegisterOutputType(NetworkArrayOutput{})
pulumi.RegisterOutputType(NetworkMapOutput{})
}

331
sdk/go/incus/networkAcl.go generated Normal file
View File

@@ -0,0 +1,331 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type NetworkAcl struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// network ACL config settings.
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the network ACL rule.
Description pulumi.StringOutput `pulumi:"description"`
// *Optional* - List of network ACL rules for egress traffic. See reference below.
Egresses NetworkAclEgressArrayOutput `pulumi:"egresses"`
// *Optional* - List of network ACL rules for ingress traffic. See reference below.
//
// The network ACL rule supports:
Ingresses NetworkAclIngressArrayOutput `pulumi:"ingresses"`
// **Required** - Name of the network ACL.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the network ACL will be created.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewNetworkAcl registers a new resource with the given unique name, arguments, and options.
func NewNetworkAcl(ctx *pulumi.Context,
name string, args *NetworkAclArgs, opts ...pulumi.ResourceOption) (*NetworkAcl, error) {
if args == nil {
args = &NetworkAclArgs{}
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource NetworkAcl
err := ctx.RegisterResource("incus:index/networkAcl:NetworkAcl", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetworkAcl gets an existing NetworkAcl resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetworkAcl(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkAclState, opts ...pulumi.ResourceOption) (*NetworkAcl, error) {
var resource NetworkAcl
err := ctx.ReadResource("incus:index/networkAcl:NetworkAcl", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering NetworkAcl resources.
type networkAclState struct {
// *Optional* - Map of key/value pairs of
// network ACL config settings.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network ACL rule.
Description *string `pulumi:"description"`
// *Optional* - List of network ACL rules for egress traffic. See reference below.
Egresses []NetworkAclEgress `pulumi:"egresses"`
// *Optional* - List of network ACL rules for ingress traffic. See reference below.
//
// The network ACL rule supports:
Ingresses []NetworkAclIngress `pulumi:"ingresses"`
// **Required** - Name of the network ACL.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network ACL will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
type NetworkAclState struct {
// *Optional* - Map of key/value pairs of
// network ACL config settings.
Config pulumi.StringMapInput
// *Optional* - Description of the network ACL rule.
Description pulumi.StringPtrInput
// *Optional* - List of network ACL rules for egress traffic. See reference below.
Egresses NetworkAclEgressArrayInput
// *Optional* - List of network ACL rules for ingress traffic. See reference below.
//
// The network ACL rule supports:
Ingresses NetworkAclIngressArrayInput
// **Required** - Name of the network ACL.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network ACL will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (NetworkAclState) ElementType() reflect.Type {
return reflect.TypeOf((*networkAclState)(nil)).Elem()
}
type networkAclArgs struct {
// *Optional* - Map of key/value pairs of
// network ACL config settings.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network ACL rule.
Description *string `pulumi:"description"`
// *Optional* - List of network ACL rules for egress traffic. See reference below.
Egresses []NetworkAclEgress `pulumi:"egresses"`
// *Optional* - List of network ACL rules for ingress traffic. See reference below.
//
// The network ACL rule supports:
Ingresses []NetworkAclIngress `pulumi:"ingresses"`
// **Required** - Name of the network ACL.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network ACL will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a NetworkAcl resource.
type NetworkAclArgs struct {
// *Optional* - Map of key/value pairs of
// network ACL config settings.
Config pulumi.StringMapInput
// *Optional* - Description of the network ACL rule.
Description pulumi.StringPtrInput
// *Optional* - List of network ACL rules for egress traffic. See reference below.
Egresses NetworkAclEgressArrayInput
// *Optional* - List of network ACL rules for ingress traffic. See reference below.
//
// The network ACL rule supports:
Ingresses NetworkAclIngressArrayInput
// **Required** - Name of the network ACL.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network ACL will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (NetworkAclArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkAclArgs)(nil)).Elem()
}
type NetworkAclInput interface {
pulumi.Input
ToNetworkAclOutput() NetworkAclOutput
ToNetworkAclOutputWithContext(ctx context.Context) NetworkAclOutput
}
func (*NetworkAcl) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkAcl)(nil)).Elem()
}
func (i *NetworkAcl) ToNetworkAclOutput() NetworkAclOutput {
return i.ToNetworkAclOutputWithContext(context.Background())
}
func (i *NetworkAcl) ToNetworkAclOutputWithContext(ctx context.Context) NetworkAclOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkAclOutput)
}
// NetworkAclArrayInput is an input type that accepts NetworkAclArray and NetworkAclArrayOutput values.
// You can construct a concrete instance of `NetworkAclArrayInput` via:
//
// NetworkAclArray{ NetworkAclArgs{...} }
type NetworkAclArrayInput interface {
pulumi.Input
ToNetworkAclArrayOutput() NetworkAclArrayOutput
ToNetworkAclArrayOutputWithContext(context.Context) NetworkAclArrayOutput
}
type NetworkAclArray []NetworkAclInput
func (NetworkAclArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkAcl)(nil)).Elem()
}
func (i NetworkAclArray) ToNetworkAclArrayOutput() NetworkAclArrayOutput {
return i.ToNetworkAclArrayOutputWithContext(context.Background())
}
func (i NetworkAclArray) ToNetworkAclArrayOutputWithContext(ctx context.Context) NetworkAclArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkAclArrayOutput)
}
// NetworkAclMapInput is an input type that accepts NetworkAclMap and NetworkAclMapOutput values.
// You can construct a concrete instance of `NetworkAclMapInput` via:
//
// NetworkAclMap{ "key": NetworkAclArgs{...} }
type NetworkAclMapInput interface {
pulumi.Input
ToNetworkAclMapOutput() NetworkAclMapOutput
ToNetworkAclMapOutputWithContext(context.Context) NetworkAclMapOutput
}
type NetworkAclMap map[string]NetworkAclInput
func (NetworkAclMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkAcl)(nil)).Elem()
}
func (i NetworkAclMap) ToNetworkAclMapOutput() NetworkAclMapOutput {
return i.ToNetworkAclMapOutputWithContext(context.Background())
}
func (i NetworkAclMap) ToNetworkAclMapOutputWithContext(ctx context.Context) NetworkAclMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkAclMapOutput)
}
type NetworkAclOutput struct{ *pulumi.OutputState }
func (NetworkAclOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkAcl)(nil)).Elem()
}
func (o NetworkAclOutput) ToNetworkAclOutput() NetworkAclOutput {
return o
}
func (o NetworkAclOutput) ToNetworkAclOutputWithContext(ctx context.Context) NetworkAclOutput {
return o
}
// *Optional* - Map of key/value pairs of
// network ACL config settings.
func (o NetworkAclOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *NetworkAcl) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the network ACL rule.
func (o NetworkAclOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkAcl) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// *Optional* - List of network ACL rules for egress traffic. See reference below.
func (o NetworkAclOutput) Egresses() NetworkAclEgressArrayOutput {
return o.ApplyT(func(v *NetworkAcl) NetworkAclEgressArrayOutput { return v.Egresses }).(NetworkAclEgressArrayOutput)
}
// *Optional* - List of network ACL rules for ingress traffic. See reference below.
//
// The network ACL rule supports:
func (o NetworkAclOutput) Ingresses() NetworkAclIngressArrayOutput {
return o.ApplyT(func(v *NetworkAcl) NetworkAclIngressArrayOutput { return v.Ingresses }).(NetworkAclIngressArrayOutput)
}
// **Required** - Name of the network ACL.
func (o NetworkAclOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkAcl) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the network ACL will be created.
func (o NetworkAclOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkAcl) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o NetworkAclOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkAcl) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type NetworkAclArrayOutput struct{ *pulumi.OutputState }
func (NetworkAclArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkAcl)(nil)).Elem()
}
func (o NetworkAclArrayOutput) ToNetworkAclArrayOutput() NetworkAclArrayOutput {
return o
}
func (o NetworkAclArrayOutput) ToNetworkAclArrayOutputWithContext(ctx context.Context) NetworkAclArrayOutput {
return o
}
func (o NetworkAclArrayOutput) Index(i pulumi.IntInput) NetworkAclOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NetworkAcl {
return vs[0].([]*NetworkAcl)[vs[1].(int)]
}).(NetworkAclOutput)
}
type NetworkAclMapOutput struct{ *pulumi.OutputState }
func (NetworkAclMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkAcl)(nil)).Elem()
}
func (o NetworkAclMapOutput) ToNetworkAclMapOutput() NetworkAclMapOutput {
return o
}
func (o NetworkAclMapOutput) ToNetworkAclMapOutputWithContext(ctx context.Context) NetworkAclMapOutput {
return o
}
func (o NetworkAclMapOutput) MapIndex(k pulumi.StringInput) NetworkAclOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NetworkAcl {
return vs[0].(map[string]*NetworkAcl)[vs[1].(string)]
}).(NetworkAclOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkAclInput)(nil)).Elem(), &NetworkAcl{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkAclArrayInput)(nil)).Elem(), NetworkAclArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkAclMapInput)(nil)).Elem(), NetworkAclMap{})
pulumi.RegisterOutputType(NetworkAclOutput{})
pulumi.RegisterOutputType(NetworkAclArrayOutput{})
pulumi.RegisterOutputType(NetworkAclMapOutput{})
}

335
sdk/go/incus/networkForward.go generated Normal file
View File

@@ -0,0 +1,335 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type NetworkForward struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// network forward config settings.
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of port(s)
Description pulumi.StringOutput `pulumi:"description"`
// **Required** - IP address to listen on.
ListenAddress pulumi.StringOutput `pulumi:"listenAddress"`
// **Required** - Name of the network.
Network pulumi.StringOutput `pulumi:"network"`
// *Optional* - List of port specifications. See reference below.
//
// The network forward port supports:
Ports NetworkForwardPortArrayOutput `pulumi:"ports"`
// *Optional* - Name of the project where the network forward will be created.
Project pulumi.StringPtrOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewNetworkForward registers a new resource with the given unique name, arguments, and options.
func NewNetworkForward(ctx *pulumi.Context,
name string, args *NetworkForwardArgs, opts ...pulumi.ResourceOption) (*NetworkForward, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.ListenAddress == nil {
return nil, errors.New("invalid value for required argument 'ListenAddress'")
}
if args.Network == nil {
return nil, errors.New("invalid value for required argument 'Network'")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource NetworkForward
err := ctx.RegisterResource("incus:index/networkForward:NetworkForward", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetworkForward gets an existing NetworkForward resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetworkForward(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkForwardState, opts ...pulumi.ResourceOption) (*NetworkForward, error) {
var resource NetworkForward
err := ctx.ReadResource("incus:index/networkForward:NetworkForward", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering NetworkForward resources.
type networkForwardState struct {
// *Optional* - Map of key/value pairs of
// network forward config settings.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of port(s)
Description *string `pulumi:"description"`
// **Required** - IP address to listen on.
ListenAddress *string `pulumi:"listenAddress"`
// **Required** - Name of the network.
Network *string `pulumi:"network"`
// *Optional* - List of port specifications. See reference below.
//
// The network forward port supports:
Ports []NetworkForwardPort `pulumi:"ports"`
// *Optional* - Name of the project where the network forward will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
type NetworkForwardState struct {
// *Optional* - Map of key/value pairs of
// network forward config settings.
Config pulumi.StringMapInput
// *Optional* - Description of port(s)
Description pulumi.StringPtrInput
// **Required** - IP address to listen on.
ListenAddress pulumi.StringPtrInput
// **Required** - Name of the network.
Network pulumi.StringPtrInput
// *Optional* - List of port specifications. See reference below.
//
// The network forward port supports:
Ports NetworkForwardPortArrayInput
// *Optional* - Name of the project where the network forward will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (NetworkForwardState) ElementType() reflect.Type {
return reflect.TypeOf((*networkForwardState)(nil)).Elem()
}
type networkForwardArgs struct {
// *Optional* - Map of key/value pairs of
// network forward config settings.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of port(s)
Description *string `pulumi:"description"`
// **Required** - IP address to listen on.
ListenAddress string `pulumi:"listenAddress"`
// **Required** - Name of the network.
Network string `pulumi:"network"`
// *Optional* - List of port specifications. See reference below.
//
// The network forward port supports:
Ports []NetworkForwardPort `pulumi:"ports"`
// *Optional* - Name of the project where the network forward will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a NetworkForward resource.
type NetworkForwardArgs struct {
// *Optional* - Map of key/value pairs of
// network forward config settings.
Config pulumi.StringMapInput
// *Optional* - Description of port(s)
Description pulumi.StringPtrInput
// **Required** - IP address to listen on.
ListenAddress pulumi.StringInput
// **Required** - Name of the network.
Network pulumi.StringInput
// *Optional* - List of port specifications. See reference below.
//
// The network forward port supports:
Ports NetworkForwardPortArrayInput
// *Optional* - Name of the project where the network forward will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (NetworkForwardArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkForwardArgs)(nil)).Elem()
}
type NetworkForwardInput interface {
pulumi.Input
ToNetworkForwardOutput() NetworkForwardOutput
ToNetworkForwardOutputWithContext(ctx context.Context) NetworkForwardOutput
}
func (*NetworkForward) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkForward)(nil)).Elem()
}
func (i *NetworkForward) ToNetworkForwardOutput() NetworkForwardOutput {
return i.ToNetworkForwardOutputWithContext(context.Background())
}
func (i *NetworkForward) ToNetworkForwardOutputWithContext(ctx context.Context) NetworkForwardOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkForwardOutput)
}
// NetworkForwardArrayInput is an input type that accepts NetworkForwardArray and NetworkForwardArrayOutput values.
// You can construct a concrete instance of `NetworkForwardArrayInput` via:
//
// NetworkForwardArray{ NetworkForwardArgs{...} }
type NetworkForwardArrayInput interface {
pulumi.Input
ToNetworkForwardArrayOutput() NetworkForwardArrayOutput
ToNetworkForwardArrayOutputWithContext(context.Context) NetworkForwardArrayOutput
}
type NetworkForwardArray []NetworkForwardInput
func (NetworkForwardArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkForward)(nil)).Elem()
}
func (i NetworkForwardArray) ToNetworkForwardArrayOutput() NetworkForwardArrayOutput {
return i.ToNetworkForwardArrayOutputWithContext(context.Background())
}
func (i NetworkForwardArray) ToNetworkForwardArrayOutputWithContext(ctx context.Context) NetworkForwardArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkForwardArrayOutput)
}
// NetworkForwardMapInput is an input type that accepts NetworkForwardMap and NetworkForwardMapOutput values.
// You can construct a concrete instance of `NetworkForwardMapInput` via:
//
// NetworkForwardMap{ "key": NetworkForwardArgs{...} }
type NetworkForwardMapInput interface {
pulumi.Input
ToNetworkForwardMapOutput() NetworkForwardMapOutput
ToNetworkForwardMapOutputWithContext(context.Context) NetworkForwardMapOutput
}
type NetworkForwardMap map[string]NetworkForwardInput
func (NetworkForwardMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkForward)(nil)).Elem()
}
func (i NetworkForwardMap) ToNetworkForwardMapOutput() NetworkForwardMapOutput {
return i.ToNetworkForwardMapOutputWithContext(context.Background())
}
func (i NetworkForwardMap) ToNetworkForwardMapOutputWithContext(ctx context.Context) NetworkForwardMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkForwardMapOutput)
}
type NetworkForwardOutput struct{ *pulumi.OutputState }
func (NetworkForwardOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkForward)(nil)).Elem()
}
func (o NetworkForwardOutput) ToNetworkForwardOutput() NetworkForwardOutput {
return o
}
func (o NetworkForwardOutput) ToNetworkForwardOutputWithContext(ctx context.Context) NetworkForwardOutput {
return o
}
// *Optional* - Map of key/value pairs of
// network forward config settings.
func (o NetworkForwardOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *NetworkForward) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of port(s)
func (o NetworkForwardOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkForward) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **Required** - IP address to listen on.
func (o NetworkForwardOutput) ListenAddress() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkForward) pulumi.StringOutput { return v.ListenAddress }).(pulumi.StringOutput)
}
// **Required** - Name of the network.
func (o NetworkForwardOutput) Network() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkForward) pulumi.StringOutput { return v.Network }).(pulumi.StringOutput)
}
// *Optional* - List of port specifications. See reference below.
//
// The network forward port supports:
func (o NetworkForwardOutput) Ports() NetworkForwardPortArrayOutput {
return o.ApplyT(func(v *NetworkForward) NetworkForwardPortArrayOutput { return v.Ports }).(NetworkForwardPortArrayOutput)
}
// *Optional* - Name of the project where the network forward will be created.
func (o NetworkForwardOutput) Project() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkForward) pulumi.StringPtrOutput { return v.Project }).(pulumi.StringPtrOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o NetworkForwardOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkForward) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type NetworkForwardArrayOutput struct{ *pulumi.OutputState }
func (NetworkForwardArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkForward)(nil)).Elem()
}
func (o NetworkForwardArrayOutput) ToNetworkForwardArrayOutput() NetworkForwardArrayOutput {
return o
}
func (o NetworkForwardArrayOutput) ToNetworkForwardArrayOutputWithContext(ctx context.Context) NetworkForwardArrayOutput {
return o
}
func (o NetworkForwardArrayOutput) Index(i pulumi.IntInput) NetworkForwardOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NetworkForward {
return vs[0].([]*NetworkForward)[vs[1].(int)]
}).(NetworkForwardOutput)
}
type NetworkForwardMapOutput struct{ *pulumi.OutputState }
func (NetworkForwardMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkForward)(nil)).Elem()
}
func (o NetworkForwardMapOutput) ToNetworkForwardMapOutput() NetworkForwardMapOutput {
return o
}
func (o NetworkForwardMapOutput) ToNetworkForwardMapOutputWithContext(ctx context.Context) NetworkForwardMapOutput {
return o
}
func (o NetworkForwardMapOutput) MapIndex(k pulumi.StringInput) NetworkForwardOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NetworkForward {
return vs[0].(map[string]*NetworkForward)[vs[1].(string)]
}).(NetworkForwardOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkForwardInput)(nil)).Elem(), &NetworkForward{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkForwardArrayInput)(nil)).Elem(), NetworkForwardArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkForwardMapInput)(nil)).Elem(), NetworkForwardMap{})
pulumi.RegisterOutputType(NetworkForwardOutput{})
pulumi.RegisterOutputType(NetworkForwardArrayOutput{})
pulumi.RegisterOutputType(NetworkForwardMapOutput{})
}

387
sdk/go/incus/networkIntegration.go generated Normal file
View File

@@ -0,0 +1,387 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # NetworkIntegration
//
// Manage integrations between the local Incus deployment and remote networks hosted on Incus or other platforms. Currently available only for [OVN networks](https://linuxcontainers.org/incus/docs/main/reference/network_ovn/#network-ovn).
//
// ## Basic Example
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// _, err := incus.NewNetworkIntegration(ctx, "this", &incus.NetworkIntegrationArgs{
// Name: pulumi.String("ovn-region"),
// Type: pulumi.String("ovn"),
// Config: pulumi.StringMap{
// "ovn.northbound_connection": pulumi.String("tcp:[192.0.2.12]:6645,tcp:[192.0.3.13]:6645,tcp:[192.0.3.14]:6645"),
// "ovn.southbound_connection": pulumi.String("tcp:[192.0.2.12]:6646,tcp:[192.0.3.13]:6646,tcp:[192.0.3.14]:6646"),
// },
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
//
// ## Peer Example
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// _default, err := incus.NewNetwork(ctx, "default", &incus.NetworkArgs{
// Name: pulumi.String("default"),
// Type: pulumi.String("ovn"),
// Config: pulumi.StringMap{
// "ipv4.address": pulumi.String("192.168.2.0/24"),
// "ipv4.nat": pulumi.String("true"),
// },
// })
// if err != nil {
// return err
// }
// this, err := incus.NewNetworkIntegration(ctx, "this", &incus.NetworkIntegrationArgs{
// Name: pulumi.String("ovn-region"),
// Type: pulumi.String("ovn"),
// Config: pulumi.StringMap{
// "ovn.northbound_connection": pulumi.String("tcp:[192.0.2.12]:6645,tcp:[192.0.3.13]:6645,tcp:[192.0.3.14]:6645"),
// "ovn.southbound_connection": pulumi.String("tcp:[192.0.2.12]:6646,tcp:[192.0.3.13]:6646,tcp:[192.0.3.14]:6646"),
// },
// })
// if err != nil {
// return err
// }
// _, err = incus.NewNetworkPeer(ctx, "this", &incus.NetworkPeerArgs{
// Name: pulumi.String("ovn-peer"),
// Network: _default.Name,
// TargetIntegration: this.Name,
// Type: pulumi.String("remote"),
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
type NetworkIntegration struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of [network integration config settings](https://linuxcontainers.org/incus/docs/main/howto/network_integrations/)
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the network integration.
Description pulumi.StringOutput `pulumi:"description"`
// **Required** - Name of the network integration.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the network will be created.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// **Required** - The type of the network integration. Currently, only supports `ovn` type.
Type pulumi.StringOutput `pulumi:"type"`
}
// NewNetworkIntegration registers a new resource with the given unique name, arguments, and options.
func NewNetworkIntegration(ctx *pulumi.Context,
name string, args *NetworkIntegrationArgs, opts ...pulumi.ResourceOption) (*NetworkIntegration, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Type == nil {
return nil, errors.New("invalid value for required argument 'Type'")
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource NetworkIntegration
err := ctx.RegisterResource("incus:index/networkIntegration:NetworkIntegration", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetworkIntegration gets an existing NetworkIntegration resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetworkIntegration(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkIntegrationState, opts ...pulumi.ResourceOption) (*NetworkIntegration, error) {
var resource NetworkIntegration
err := ctx.ReadResource("incus:index/networkIntegration:NetworkIntegration", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering NetworkIntegration resources.
type networkIntegrationState struct {
// *Optional* - Map of key/value pairs of [network integration config settings](https://linuxcontainers.org/incus/docs/main/howto/network_integrations/)
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network integration.
Description *string `pulumi:"description"`
// **Required** - Name of the network integration.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// **Required** - The type of the network integration. Currently, only supports `ovn` type.
Type *string `pulumi:"type"`
}
type NetworkIntegrationState struct {
// *Optional* - Map of key/value pairs of [network integration config settings](https://linuxcontainers.org/incus/docs/main/howto/network_integrations/)
Config pulumi.StringMapInput
// *Optional* - Description of the network integration.
Description pulumi.StringPtrInput
// **Required** - Name of the network integration.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// **Required** - The type of the network integration. Currently, only supports `ovn` type.
Type pulumi.StringPtrInput
}
func (NetworkIntegrationState) ElementType() reflect.Type {
return reflect.TypeOf((*networkIntegrationState)(nil)).Elem()
}
type networkIntegrationArgs struct {
// *Optional* - Map of key/value pairs of [network integration config settings](https://linuxcontainers.org/incus/docs/main/howto/network_integrations/)
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network integration.
Description *string `pulumi:"description"`
// **Required** - Name of the network integration.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// **Required** - The type of the network integration. Currently, only supports `ovn` type.
Type string `pulumi:"type"`
}
// The set of arguments for constructing a NetworkIntegration resource.
type NetworkIntegrationArgs struct {
// *Optional* - Map of key/value pairs of [network integration config settings](https://linuxcontainers.org/incus/docs/main/howto/network_integrations/)
Config pulumi.StringMapInput
// *Optional* - Description of the network integration.
Description pulumi.StringPtrInput
// **Required** - Name of the network integration.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// **Required** - The type of the network integration. Currently, only supports `ovn` type.
Type pulumi.StringInput
}
func (NetworkIntegrationArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkIntegrationArgs)(nil)).Elem()
}
type NetworkIntegrationInput interface {
pulumi.Input
ToNetworkIntegrationOutput() NetworkIntegrationOutput
ToNetworkIntegrationOutputWithContext(ctx context.Context) NetworkIntegrationOutput
}
func (*NetworkIntegration) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkIntegration)(nil)).Elem()
}
func (i *NetworkIntegration) ToNetworkIntegrationOutput() NetworkIntegrationOutput {
return i.ToNetworkIntegrationOutputWithContext(context.Background())
}
func (i *NetworkIntegration) ToNetworkIntegrationOutputWithContext(ctx context.Context) NetworkIntegrationOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkIntegrationOutput)
}
// NetworkIntegrationArrayInput is an input type that accepts NetworkIntegrationArray and NetworkIntegrationArrayOutput values.
// You can construct a concrete instance of `NetworkIntegrationArrayInput` via:
//
// NetworkIntegrationArray{ NetworkIntegrationArgs{...} }
type NetworkIntegrationArrayInput interface {
pulumi.Input
ToNetworkIntegrationArrayOutput() NetworkIntegrationArrayOutput
ToNetworkIntegrationArrayOutputWithContext(context.Context) NetworkIntegrationArrayOutput
}
type NetworkIntegrationArray []NetworkIntegrationInput
func (NetworkIntegrationArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkIntegration)(nil)).Elem()
}
func (i NetworkIntegrationArray) ToNetworkIntegrationArrayOutput() NetworkIntegrationArrayOutput {
return i.ToNetworkIntegrationArrayOutputWithContext(context.Background())
}
func (i NetworkIntegrationArray) ToNetworkIntegrationArrayOutputWithContext(ctx context.Context) NetworkIntegrationArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkIntegrationArrayOutput)
}
// NetworkIntegrationMapInput is an input type that accepts NetworkIntegrationMap and NetworkIntegrationMapOutput values.
// You can construct a concrete instance of `NetworkIntegrationMapInput` via:
//
// NetworkIntegrationMap{ "key": NetworkIntegrationArgs{...} }
type NetworkIntegrationMapInput interface {
pulumi.Input
ToNetworkIntegrationMapOutput() NetworkIntegrationMapOutput
ToNetworkIntegrationMapOutputWithContext(context.Context) NetworkIntegrationMapOutput
}
type NetworkIntegrationMap map[string]NetworkIntegrationInput
func (NetworkIntegrationMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkIntegration)(nil)).Elem()
}
func (i NetworkIntegrationMap) ToNetworkIntegrationMapOutput() NetworkIntegrationMapOutput {
return i.ToNetworkIntegrationMapOutputWithContext(context.Background())
}
func (i NetworkIntegrationMap) ToNetworkIntegrationMapOutputWithContext(ctx context.Context) NetworkIntegrationMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkIntegrationMapOutput)
}
type NetworkIntegrationOutput struct{ *pulumi.OutputState }
func (NetworkIntegrationOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkIntegration)(nil)).Elem()
}
func (o NetworkIntegrationOutput) ToNetworkIntegrationOutput() NetworkIntegrationOutput {
return o
}
func (o NetworkIntegrationOutput) ToNetworkIntegrationOutputWithContext(ctx context.Context) NetworkIntegrationOutput {
return o
}
// *Optional* - Map of key/value pairs of [network integration config settings](https://linuxcontainers.org/incus/docs/main/howto/network_integrations/)
func (o NetworkIntegrationOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *NetworkIntegration) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the network integration.
func (o NetworkIntegrationOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkIntegration) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **Required** - Name of the network integration.
func (o NetworkIntegrationOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkIntegration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the network will be created.
func (o NetworkIntegrationOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkIntegration) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o NetworkIntegrationOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkIntegration) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// **Required** - The type of the network integration. Currently, only supports `ovn` type.
func (o NetworkIntegrationOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkIntegration) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
}
type NetworkIntegrationArrayOutput struct{ *pulumi.OutputState }
func (NetworkIntegrationArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkIntegration)(nil)).Elem()
}
func (o NetworkIntegrationArrayOutput) ToNetworkIntegrationArrayOutput() NetworkIntegrationArrayOutput {
return o
}
func (o NetworkIntegrationArrayOutput) ToNetworkIntegrationArrayOutputWithContext(ctx context.Context) NetworkIntegrationArrayOutput {
return o
}
func (o NetworkIntegrationArrayOutput) Index(i pulumi.IntInput) NetworkIntegrationOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NetworkIntegration {
return vs[0].([]*NetworkIntegration)[vs[1].(int)]
}).(NetworkIntegrationOutput)
}
type NetworkIntegrationMapOutput struct{ *pulumi.OutputState }
func (NetworkIntegrationMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkIntegration)(nil)).Elem()
}
func (o NetworkIntegrationMapOutput) ToNetworkIntegrationMapOutput() NetworkIntegrationMapOutput {
return o
}
func (o NetworkIntegrationMapOutput) ToNetworkIntegrationMapOutputWithContext(ctx context.Context) NetworkIntegrationMapOutput {
return o
}
func (o NetworkIntegrationMapOutput) MapIndex(k pulumi.StringInput) NetworkIntegrationOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NetworkIntegration {
return vs[0].(map[string]*NetworkIntegration)[vs[1].(string)]
}).(NetworkIntegrationOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkIntegrationInput)(nil)).Elem(), &NetworkIntegration{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkIntegrationArrayInput)(nil)).Elem(), NetworkIntegrationArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkIntegrationMapInput)(nil)).Elem(), NetworkIntegrationMap{})
pulumi.RegisterOutputType(NetworkIntegrationOutput{})
pulumi.RegisterOutputType(NetworkIntegrationArrayOutput{})
pulumi.RegisterOutputType(NetworkIntegrationMapOutput{})
}

290
sdk/go/incus/networkLoadBalancer.go generated Normal file
View File

@@ -0,0 +1,290 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type NetworkLoadBalancer struct {
pulumi.CustomResourceState
// Network load balancer backend
Backends NetworkLoadBalancerBackendArrayOutput `pulumi:"backends"`
Config pulumi.StringMapOutput `pulumi:"config"`
Description pulumi.StringOutput `pulumi:"description"`
ListenAddress pulumi.StringOutput `pulumi:"listenAddress"`
Network pulumi.StringOutput `pulumi:"network"`
// Network load balancer port
Ports NetworkLoadBalancerPortArrayOutput `pulumi:"ports"`
Project pulumi.StringPtrOutput `pulumi:"project"`
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewNetworkLoadBalancer registers a new resource with the given unique name, arguments, and options.
func NewNetworkLoadBalancer(ctx *pulumi.Context,
name string, args *NetworkLoadBalancerArgs, opts ...pulumi.ResourceOption) (*NetworkLoadBalancer, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.ListenAddress == nil {
return nil, errors.New("invalid value for required argument 'ListenAddress'")
}
if args.Network == nil {
return nil, errors.New("invalid value for required argument 'Network'")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource NetworkLoadBalancer
err := ctx.RegisterResource("incus:index/networkLoadBalancer:NetworkLoadBalancer", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetworkLoadBalancer gets an existing NetworkLoadBalancer resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetworkLoadBalancer(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkLoadBalancerState, opts ...pulumi.ResourceOption) (*NetworkLoadBalancer, error) {
var resource NetworkLoadBalancer
err := ctx.ReadResource("incus:index/networkLoadBalancer:NetworkLoadBalancer", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering NetworkLoadBalancer resources.
type networkLoadBalancerState struct {
// Network load balancer backend
Backends []NetworkLoadBalancerBackend `pulumi:"backends"`
Config map[string]string `pulumi:"config"`
Description *string `pulumi:"description"`
ListenAddress *string `pulumi:"listenAddress"`
Network *string `pulumi:"network"`
// Network load balancer port
Ports []NetworkLoadBalancerPort `pulumi:"ports"`
Project *string `pulumi:"project"`
Remote *string `pulumi:"remote"`
}
type NetworkLoadBalancerState struct {
// Network load balancer backend
Backends NetworkLoadBalancerBackendArrayInput
Config pulumi.StringMapInput
Description pulumi.StringPtrInput
ListenAddress pulumi.StringPtrInput
Network pulumi.StringPtrInput
// Network load balancer port
Ports NetworkLoadBalancerPortArrayInput
Project pulumi.StringPtrInput
Remote pulumi.StringPtrInput
}
func (NetworkLoadBalancerState) ElementType() reflect.Type {
return reflect.TypeOf((*networkLoadBalancerState)(nil)).Elem()
}
type networkLoadBalancerArgs struct {
// Network load balancer backend
Backends []NetworkLoadBalancerBackend `pulumi:"backends"`
Config map[string]string `pulumi:"config"`
Description *string `pulumi:"description"`
ListenAddress string `pulumi:"listenAddress"`
Network string `pulumi:"network"`
// Network load balancer port
Ports []NetworkLoadBalancerPort `pulumi:"ports"`
Project *string `pulumi:"project"`
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a NetworkLoadBalancer resource.
type NetworkLoadBalancerArgs struct {
// Network load balancer backend
Backends NetworkLoadBalancerBackendArrayInput
Config pulumi.StringMapInput
Description pulumi.StringPtrInput
ListenAddress pulumi.StringInput
Network pulumi.StringInput
// Network load balancer port
Ports NetworkLoadBalancerPortArrayInput
Project pulumi.StringPtrInput
Remote pulumi.StringPtrInput
}
func (NetworkLoadBalancerArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkLoadBalancerArgs)(nil)).Elem()
}
type NetworkLoadBalancerInput interface {
pulumi.Input
ToNetworkLoadBalancerOutput() NetworkLoadBalancerOutput
ToNetworkLoadBalancerOutputWithContext(ctx context.Context) NetworkLoadBalancerOutput
}
func (*NetworkLoadBalancer) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkLoadBalancer)(nil)).Elem()
}
func (i *NetworkLoadBalancer) ToNetworkLoadBalancerOutput() NetworkLoadBalancerOutput {
return i.ToNetworkLoadBalancerOutputWithContext(context.Background())
}
func (i *NetworkLoadBalancer) ToNetworkLoadBalancerOutputWithContext(ctx context.Context) NetworkLoadBalancerOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkLoadBalancerOutput)
}
// NetworkLoadBalancerArrayInput is an input type that accepts NetworkLoadBalancerArray and NetworkLoadBalancerArrayOutput values.
// You can construct a concrete instance of `NetworkLoadBalancerArrayInput` via:
//
// NetworkLoadBalancerArray{ NetworkLoadBalancerArgs{...} }
type NetworkLoadBalancerArrayInput interface {
pulumi.Input
ToNetworkLoadBalancerArrayOutput() NetworkLoadBalancerArrayOutput
ToNetworkLoadBalancerArrayOutputWithContext(context.Context) NetworkLoadBalancerArrayOutput
}
type NetworkLoadBalancerArray []NetworkLoadBalancerInput
func (NetworkLoadBalancerArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkLoadBalancer)(nil)).Elem()
}
func (i NetworkLoadBalancerArray) ToNetworkLoadBalancerArrayOutput() NetworkLoadBalancerArrayOutput {
return i.ToNetworkLoadBalancerArrayOutputWithContext(context.Background())
}
func (i NetworkLoadBalancerArray) ToNetworkLoadBalancerArrayOutputWithContext(ctx context.Context) NetworkLoadBalancerArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkLoadBalancerArrayOutput)
}
// NetworkLoadBalancerMapInput is an input type that accepts NetworkLoadBalancerMap and NetworkLoadBalancerMapOutput values.
// You can construct a concrete instance of `NetworkLoadBalancerMapInput` via:
//
// NetworkLoadBalancerMap{ "key": NetworkLoadBalancerArgs{...} }
type NetworkLoadBalancerMapInput interface {
pulumi.Input
ToNetworkLoadBalancerMapOutput() NetworkLoadBalancerMapOutput
ToNetworkLoadBalancerMapOutputWithContext(context.Context) NetworkLoadBalancerMapOutput
}
type NetworkLoadBalancerMap map[string]NetworkLoadBalancerInput
func (NetworkLoadBalancerMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkLoadBalancer)(nil)).Elem()
}
func (i NetworkLoadBalancerMap) ToNetworkLoadBalancerMapOutput() NetworkLoadBalancerMapOutput {
return i.ToNetworkLoadBalancerMapOutputWithContext(context.Background())
}
func (i NetworkLoadBalancerMap) ToNetworkLoadBalancerMapOutputWithContext(ctx context.Context) NetworkLoadBalancerMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkLoadBalancerMapOutput)
}
type NetworkLoadBalancerOutput struct{ *pulumi.OutputState }
func (NetworkLoadBalancerOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkLoadBalancer)(nil)).Elem()
}
func (o NetworkLoadBalancerOutput) ToNetworkLoadBalancerOutput() NetworkLoadBalancerOutput {
return o
}
func (o NetworkLoadBalancerOutput) ToNetworkLoadBalancerOutputWithContext(ctx context.Context) NetworkLoadBalancerOutput {
return o
}
// Network load balancer backend
func (o NetworkLoadBalancerOutput) Backends() NetworkLoadBalancerBackendArrayOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) NetworkLoadBalancerBackendArrayOutput { return v.Backends }).(NetworkLoadBalancerBackendArrayOutput)
}
func (o NetworkLoadBalancerOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
func (o NetworkLoadBalancerOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
func (o NetworkLoadBalancerOutput) ListenAddress() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) pulumi.StringOutput { return v.ListenAddress }).(pulumi.StringOutput)
}
func (o NetworkLoadBalancerOutput) Network() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) pulumi.StringOutput { return v.Network }).(pulumi.StringOutput)
}
// Network load balancer port
func (o NetworkLoadBalancerOutput) Ports() NetworkLoadBalancerPortArrayOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) NetworkLoadBalancerPortArrayOutput { return v.Ports }).(NetworkLoadBalancerPortArrayOutput)
}
func (o NetworkLoadBalancerOutput) Project() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) pulumi.StringPtrOutput { return v.Project }).(pulumi.StringPtrOutput)
}
func (o NetworkLoadBalancerOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkLoadBalancer) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type NetworkLoadBalancerArrayOutput struct{ *pulumi.OutputState }
func (NetworkLoadBalancerArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkLoadBalancer)(nil)).Elem()
}
func (o NetworkLoadBalancerArrayOutput) ToNetworkLoadBalancerArrayOutput() NetworkLoadBalancerArrayOutput {
return o
}
func (o NetworkLoadBalancerArrayOutput) ToNetworkLoadBalancerArrayOutputWithContext(ctx context.Context) NetworkLoadBalancerArrayOutput {
return o
}
func (o NetworkLoadBalancerArrayOutput) Index(i pulumi.IntInput) NetworkLoadBalancerOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NetworkLoadBalancer {
return vs[0].([]*NetworkLoadBalancer)[vs[1].(int)]
}).(NetworkLoadBalancerOutput)
}
type NetworkLoadBalancerMapOutput struct{ *pulumi.OutputState }
func (NetworkLoadBalancerMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkLoadBalancer)(nil)).Elem()
}
func (o NetworkLoadBalancerMapOutput) ToNetworkLoadBalancerMapOutput() NetworkLoadBalancerMapOutput {
return o
}
func (o NetworkLoadBalancerMapOutput) ToNetworkLoadBalancerMapOutputWithContext(ctx context.Context) NetworkLoadBalancerMapOutput {
return o
}
func (o NetworkLoadBalancerMapOutput) MapIndex(k pulumi.StringInput) NetworkLoadBalancerOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NetworkLoadBalancer {
return vs[0].(map[string]*NetworkLoadBalancer)[vs[1].(string)]
}).(NetworkLoadBalancerOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkLoadBalancerInput)(nil)).Elem(), &NetworkLoadBalancer{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkLoadBalancerArrayInput)(nil)).Elem(), NetworkLoadBalancerArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkLoadBalancerMapInput)(nil)).Elem(), NetworkLoadBalancerMap{})
pulumi.RegisterOutputType(NetworkLoadBalancerOutput{})
pulumi.RegisterOutputType(NetworkLoadBalancerArrayOutput{})
pulumi.RegisterOutputType(NetworkLoadBalancerMapOutput{})
}

427
sdk/go/incus/networkPeer.go generated Normal file
View File

@@ -0,0 +1,427 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # NetworkPeer
//
// Incus allows creating peer routing relationships between two OVN networks. Using this method, traffic between the two
// networks can go directly from one OVN network to the other and thus stays within the OVN subsystem, rather than transiting
// through the uplink network.
//
// > The peer resource is exclusively compatible with OVN (Open Virtual Network).
//
// For more information, please refer to [How to create peer routing relationships](https://linuxcontainers.org/incus/docs/main/howto/network_ovn_peers/)
// in the official Incus documentation.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
//
// "git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// lan0, err := incus.NewNetwork(ctx, "lan0", &incus.NetworkArgs{
// Name: pulumi.String("lan0"),
// Type: pulumi.String("ovn"),
// Config: pulumi.StringMap{},
// })
// if err != nil {
// return err
// }
// lan1, err := incus.NewNetwork(ctx, "lan1", &incus.NetworkArgs{
// Name: pulumi.String("lan1"),
// Type: pulumi.String("ovn"),
// Config: pulumi.StringMap{},
// })
// if err != nil {
// return err
// }
// _, err = incus.NewNetworkPeer(ctx, "lan0_lan1", &incus.NetworkPeerArgs{
// Name: pulumi.String("lab0-lan1"),
// Description: pulumi.String("A meaningful description"),
// Network: lan0.Name,
// Project: pulumi.String("default"),
// TargetNetwork: lan1.Name,
// TargetProject: pulumi.String("default"),
// })
// if err != nil {
// return err
// }
// _, err = incus.NewNetworkPeer(ctx, "lan1_lan0", &incus.NetworkPeerArgs{
// Name: pulumi.String("lab1-lan0"),
// Description: pulumi.String("A meaningful description"),
// Network: lan1.Name,
// Project: pulumi.String("default"),
// TargetNetwork: lan0.Name,
// TargetProject: pulumi.String("default"),
// })
// if err != nil {
// return err
// }
// return nil
// })
// }
//
// ```
type NetworkPeer struct {
pulumi.CustomResourceState
// *Optional* - Configuration options as key/value pairs (only user.* custom keys supported)
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the network peering
Description pulumi.StringOutput `pulumi:"description"`
// **required** - Name of the network peering on the local network
Name pulumi.StringOutput `pulumi:"name"`
// **Required** - Name of the local network.
Network pulumi.StringPtrOutput `pulumi:"network"`
// *Optional* - Name of the project where the network is located.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
Status pulumi.StringOutput `pulumi:"status"`
TargetIntegration pulumi.StringOutput `pulumi:"targetIntegration"`
// **required** - Which network to create a peering with (required at create time for local peers)
TargetNetwork pulumi.StringOutput `pulumi:"targetNetwork"`
// *Optional* - Which project the target network exists in (required at create time for local peers)
TargetProject pulumi.StringOutput `pulumi:"targetProject"`
// *Optional* - Type of network peering
Type pulumi.StringOutput `pulumi:"type"`
}
// NewNetworkPeer registers a new resource with the given unique name, arguments, and options.
func NewNetworkPeer(ctx *pulumi.Context,
name string, args *NetworkPeerArgs, opts ...pulumi.ResourceOption) (*NetworkPeer, error) {
if args == nil {
args = &NetworkPeerArgs{}
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource NetworkPeer
err := ctx.RegisterResource("incus:index/networkPeer:NetworkPeer", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetworkPeer gets an existing NetworkPeer resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetworkPeer(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkPeerState, opts ...pulumi.ResourceOption) (*NetworkPeer, error) {
var resource NetworkPeer
err := ctx.ReadResource("incus:index/networkPeer:NetworkPeer", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering NetworkPeer resources.
type networkPeerState struct {
// *Optional* - Configuration options as key/value pairs (only user.* custom keys supported)
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network peering
Description *string `pulumi:"description"`
// **required** - Name of the network peering on the local network
Name *string `pulumi:"name"`
// **Required** - Name of the local network.
Network *string `pulumi:"network"`
// *Optional* - Name of the project where the network is located.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
Status *string `pulumi:"status"`
TargetIntegration *string `pulumi:"targetIntegration"`
// **required** - Which network to create a peering with (required at create time for local peers)
TargetNetwork *string `pulumi:"targetNetwork"`
// *Optional* - Which project the target network exists in (required at create time for local peers)
TargetProject *string `pulumi:"targetProject"`
// *Optional* - Type of network peering
Type *string `pulumi:"type"`
}
type NetworkPeerState struct {
// *Optional* - Configuration options as key/value pairs (only user.* custom keys supported)
Config pulumi.StringMapInput
// *Optional* - Description of the network peering
Description pulumi.StringPtrInput
// **required** - Name of the network peering on the local network
Name pulumi.StringPtrInput
// **Required** - Name of the local network.
Network pulumi.StringPtrInput
// *Optional* - Name of the project where the network is located.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
Status pulumi.StringPtrInput
TargetIntegration pulumi.StringPtrInput
// **required** - Which network to create a peering with (required at create time for local peers)
TargetNetwork pulumi.StringPtrInput
// *Optional* - Which project the target network exists in (required at create time for local peers)
TargetProject pulumi.StringPtrInput
// *Optional* - Type of network peering
Type pulumi.StringPtrInput
}
func (NetworkPeerState) ElementType() reflect.Type {
return reflect.TypeOf((*networkPeerState)(nil)).Elem()
}
type networkPeerArgs struct {
// *Optional* - Configuration options as key/value pairs (only user.* custom keys supported)
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network peering
Description *string `pulumi:"description"`
// **required** - Name of the network peering on the local network
Name *string `pulumi:"name"`
// **Required** - Name of the local network.
Network *string `pulumi:"network"`
// *Optional* - Name of the project where the network is located.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
TargetIntegration *string `pulumi:"targetIntegration"`
// **required** - Which network to create a peering with (required at create time for local peers)
TargetNetwork *string `pulumi:"targetNetwork"`
// *Optional* - Which project the target network exists in (required at create time for local peers)
TargetProject *string `pulumi:"targetProject"`
// *Optional* - Type of network peering
Type *string `pulumi:"type"`
}
// The set of arguments for constructing a NetworkPeer resource.
type NetworkPeerArgs struct {
// *Optional* - Configuration options as key/value pairs (only user.* custom keys supported)
Config pulumi.StringMapInput
// *Optional* - Description of the network peering
Description pulumi.StringPtrInput
// **required** - Name of the network peering on the local network
Name pulumi.StringPtrInput
// **Required** - Name of the local network.
Network pulumi.StringPtrInput
// *Optional* - Name of the project where the network is located.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
TargetIntegration pulumi.StringPtrInput
// **required** - Which network to create a peering with (required at create time for local peers)
TargetNetwork pulumi.StringPtrInput
// *Optional* - Which project the target network exists in (required at create time for local peers)
TargetProject pulumi.StringPtrInput
// *Optional* - Type of network peering
Type pulumi.StringPtrInput
}
func (NetworkPeerArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkPeerArgs)(nil)).Elem()
}
type NetworkPeerInput interface {
pulumi.Input
ToNetworkPeerOutput() NetworkPeerOutput
ToNetworkPeerOutputWithContext(ctx context.Context) NetworkPeerOutput
}
func (*NetworkPeer) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkPeer)(nil)).Elem()
}
func (i *NetworkPeer) ToNetworkPeerOutput() NetworkPeerOutput {
return i.ToNetworkPeerOutputWithContext(context.Background())
}
func (i *NetworkPeer) ToNetworkPeerOutputWithContext(ctx context.Context) NetworkPeerOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkPeerOutput)
}
// NetworkPeerArrayInput is an input type that accepts NetworkPeerArray and NetworkPeerArrayOutput values.
// You can construct a concrete instance of `NetworkPeerArrayInput` via:
//
// NetworkPeerArray{ NetworkPeerArgs{...} }
type NetworkPeerArrayInput interface {
pulumi.Input
ToNetworkPeerArrayOutput() NetworkPeerArrayOutput
ToNetworkPeerArrayOutputWithContext(context.Context) NetworkPeerArrayOutput
}
type NetworkPeerArray []NetworkPeerInput
func (NetworkPeerArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkPeer)(nil)).Elem()
}
func (i NetworkPeerArray) ToNetworkPeerArrayOutput() NetworkPeerArrayOutput {
return i.ToNetworkPeerArrayOutputWithContext(context.Background())
}
func (i NetworkPeerArray) ToNetworkPeerArrayOutputWithContext(ctx context.Context) NetworkPeerArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkPeerArrayOutput)
}
// NetworkPeerMapInput is an input type that accepts NetworkPeerMap and NetworkPeerMapOutput values.
// You can construct a concrete instance of `NetworkPeerMapInput` via:
//
// NetworkPeerMap{ "key": NetworkPeerArgs{...} }
type NetworkPeerMapInput interface {
pulumi.Input
ToNetworkPeerMapOutput() NetworkPeerMapOutput
ToNetworkPeerMapOutputWithContext(context.Context) NetworkPeerMapOutput
}
type NetworkPeerMap map[string]NetworkPeerInput
func (NetworkPeerMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkPeer)(nil)).Elem()
}
func (i NetworkPeerMap) ToNetworkPeerMapOutput() NetworkPeerMapOutput {
return i.ToNetworkPeerMapOutputWithContext(context.Background())
}
func (i NetworkPeerMap) ToNetworkPeerMapOutputWithContext(ctx context.Context) NetworkPeerMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkPeerMapOutput)
}
type NetworkPeerOutput struct{ *pulumi.OutputState }
func (NetworkPeerOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkPeer)(nil)).Elem()
}
func (o NetworkPeerOutput) ToNetworkPeerOutput() NetworkPeerOutput {
return o
}
func (o NetworkPeerOutput) ToNetworkPeerOutputWithContext(ctx context.Context) NetworkPeerOutput {
return o
}
// *Optional* - Configuration options as key/value pairs (only user.* custom keys supported)
func (o NetworkPeerOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the network peering
func (o NetworkPeerOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **required** - Name of the network peering on the local network
func (o NetworkPeerOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// **Required** - Name of the local network.
func (o NetworkPeerOutput) Network() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringPtrOutput { return v.Network }).(pulumi.StringPtrOutput)
}
// *Optional* - Name of the project where the network is located.
func (o NetworkPeerOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o NetworkPeerOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
func (o NetworkPeerOutput) Status() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
}
func (o NetworkPeerOutput) TargetIntegration() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.TargetIntegration }).(pulumi.StringOutput)
}
// **required** - Which network to create a peering with (required at create time for local peers)
func (o NetworkPeerOutput) TargetNetwork() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.TargetNetwork }).(pulumi.StringOutput)
}
// *Optional* - Which project the target network exists in (required at create time for local peers)
func (o NetworkPeerOutput) TargetProject() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.TargetProject }).(pulumi.StringOutput)
}
// *Optional* - Type of network peering
func (o NetworkPeerOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkPeer) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
}
type NetworkPeerArrayOutput struct{ *pulumi.OutputState }
func (NetworkPeerArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkPeer)(nil)).Elem()
}
func (o NetworkPeerArrayOutput) ToNetworkPeerArrayOutput() NetworkPeerArrayOutput {
return o
}
func (o NetworkPeerArrayOutput) ToNetworkPeerArrayOutputWithContext(ctx context.Context) NetworkPeerArrayOutput {
return o
}
func (o NetworkPeerArrayOutput) Index(i pulumi.IntInput) NetworkPeerOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NetworkPeer {
return vs[0].([]*NetworkPeer)[vs[1].(int)]
}).(NetworkPeerOutput)
}
type NetworkPeerMapOutput struct{ *pulumi.OutputState }
func (NetworkPeerMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkPeer)(nil)).Elem()
}
func (o NetworkPeerMapOutput) ToNetworkPeerMapOutput() NetworkPeerMapOutput {
return o
}
func (o NetworkPeerMapOutput) ToNetworkPeerMapOutputWithContext(ctx context.Context) NetworkPeerMapOutput {
return o
}
func (o NetworkPeerMapOutput) MapIndex(k pulumi.StringInput) NetworkPeerOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NetworkPeer {
return vs[0].(map[string]*NetworkPeer)[vs[1].(string)]
}).(NetworkPeerOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkPeerInput)(nil)).Elem(), &NetworkPeer{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkPeerArrayInput)(nil)).Elem(), NetworkPeerArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkPeerMapInput)(nil)).Elem(), NetworkPeerMap{})
pulumi.RegisterOutputType(NetworkPeerOutput{})
pulumi.RegisterOutputType(NetworkPeerArrayOutput{})
pulumi.RegisterOutputType(NetworkPeerMapOutput{})
}

289
sdk/go/incus/networkZone.go generated Normal file
View File

@@ -0,0 +1,289 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type NetworkZone struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the network zone.
Description pulumi.StringOutput `pulumi:"description"`
// **Required** - Name of the network zone.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the network zone will be created.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewNetworkZone registers a new resource with the given unique name, arguments, and options.
func NewNetworkZone(ctx *pulumi.Context,
name string, args *NetworkZoneArgs, opts ...pulumi.ResourceOption) (*NetworkZone, error) {
if args == nil {
args = &NetworkZoneArgs{}
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource NetworkZone
err := ctx.RegisterResource("incus:index/networkZone:NetworkZone", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetworkZone gets an existing NetworkZone resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetworkZone(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkZoneState, opts ...pulumi.ResourceOption) (*NetworkZone, error) {
var resource NetworkZone
err := ctx.ReadResource("incus:index/networkZone:NetworkZone", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering NetworkZone resources.
type networkZoneState struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network zone.
Description *string `pulumi:"description"`
// **Required** - Name of the network zone.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network zone will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
type NetworkZoneState struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config pulumi.StringMapInput
// *Optional* - Description of the network zone.
Description pulumi.StringPtrInput
// **Required** - Name of the network zone.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network zone will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (NetworkZoneState) ElementType() reflect.Type {
return reflect.TypeOf((*networkZoneState)(nil)).Elem()
}
type networkZoneArgs struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network zone.
Description *string `pulumi:"description"`
// **Required** - Name of the network zone.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network zone will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a NetworkZone resource.
type NetworkZoneArgs struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config pulumi.StringMapInput
// *Optional* - Description of the network zone.
Description pulumi.StringPtrInput
// **Required** - Name of the network zone.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network zone will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (NetworkZoneArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkZoneArgs)(nil)).Elem()
}
type NetworkZoneInput interface {
pulumi.Input
ToNetworkZoneOutput() NetworkZoneOutput
ToNetworkZoneOutputWithContext(ctx context.Context) NetworkZoneOutput
}
func (*NetworkZone) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkZone)(nil)).Elem()
}
func (i *NetworkZone) ToNetworkZoneOutput() NetworkZoneOutput {
return i.ToNetworkZoneOutputWithContext(context.Background())
}
func (i *NetworkZone) ToNetworkZoneOutputWithContext(ctx context.Context) NetworkZoneOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkZoneOutput)
}
// NetworkZoneArrayInput is an input type that accepts NetworkZoneArray and NetworkZoneArrayOutput values.
// You can construct a concrete instance of `NetworkZoneArrayInput` via:
//
// NetworkZoneArray{ NetworkZoneArgs{...} }
type NetworkZoneArrayInput interface {
pulumi.Input
ToNetworkZoneArrayOutput() NetworkZoneArrayOutput
ToNetworkZoneArrayOutputWithContext(context.Context) NetworkZoneArrayOutput
}
type NetworkZoneArray []NetworkZoneInput
func (NetworkZoneArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkZone)(nil)).Elem()
}
func (i NetworkZoneArray) ToNetworkZoneArrayOutput() NetworkZoneArrayOutput {
return i.ToNetworkZoneArrayOutputWithContext(context.Background())
}
func (i NetworkZoneArray) ToNetworkZoneArrayOutputWithContext(ctx context.Context) NetworkZoneArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkZoneArrayOutput)
}
// NetworkZoneMapInput is an input type that accepts NetworkZoneMap and NetworkZoneMapOutput values.
// You can construct a concrete instance of `NetworkZoneMapInput` via:
//
// NetworkZoneMap{ "key": NetworkZoneArgs{...} }
type NetworkZoneMapInput interface {
pulumi.Input
ToNetworkZoneMapOutput() NetworkZoneMapOutput
ToNetworkZoneMapOutputWithContext(context.Context) NetworkZoneMapOutput
}
type NetworkZoneMap map[string]NetworkZoneInput
func (NetworkZoneMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkZone)(nil)).Elem()
}
func (i NetworkZoneMap) ToNetworkZoneMapOutput() NetworkZoneMapOutput {
return i.ToNetworkZoneMapOutputWithContext(context.Background())
}
func (i NetworkZoneMap) ToNetworkZoneMapOutputWithContext(ctx context.Context) NetworkZoneMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkZoneMapOutput)
}
type NetworkZoneOutput struct{ *pulumi.OutputState }
func (NetworkZoneOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkZone)(nil)).Elem()
}
func (o NetworkZoneOutput) ToNetworkZoneOutput() NetworkZoneOutput {
return o
}
func (o NetworkZoneOutput) ToNetworkZoneOutputWithContext(ctx context.Context) NetworkZoneOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
func (o NetworkZoneOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *NetworkZone) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the network zone.
func (o NetworkZoneOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkZone) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **Required** - Name of the network zone.
func (o NetworkZoneOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkZone) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the network zone will be created.
func (o NetworkZoneOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkZone) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o NetworkZoneOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkZone) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type NetworkZoneArrayOutput struct{ *pulumi.OutputState }
func (NetworkZoneArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkZone)(nil)).Elem()
}
func (o NetworkZoneArrayOutput) ToNetworkZoneArrayOutput() NetworkZoneArrayOutput {
return o
}
func (o NetworkZoneArrayOutput) ToNetworkZoneArrayOutputWithContext(ctx context.Context) NetworkZoneArrayOutput {
return o
}
func (o NetworkZoneArrayOutput) Index(i pulumi.IntInput) NetworkZoneOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NetworkZone {
return vs[0].([]*NetworkZone)[vs[1].(int)]
}).(NetworkZoneOutput)
}
type NetworkZoneMapOutput struct{ *pulumi.OutputState }
func (NetworkZoneMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkZone)(nil)).Elem()
}
func (o NetworkZoneMapOutput) ToNetworkZoneMapOutput() NetworkZoneMapOutput {
return o
}
func (o NetworkZoneMapOutput) ToNetworkZoneMapOutputWithContext(ctx context.Context) NetworkZoneMapOutput {
return o
}
func (o NetworkZoneMapOutput) MapIndex(k pulumi.StringInput) NetworkZoneOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NetworkZone {
return vs[0].(map[string]*NetworkZone)[vs[1].(string)]
}).(NetworkZoneOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkZoneInput)(nil)).Elem(), &NetworkZone{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkZoneArrayInput)(nil)).Elem(), NetworkZoneArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkZoneMapInput)(nil)).Elem(), NetworkZoneMap{})
pulumi.RegisterOutputType(NetworkZoneOutput{})
pulumi.RegisterOutputType(NetworkZoneArrayOutput{})
pulumi.RegisterOutputType(NetworkZoneMapOutput{})
}

323
sdk/go/incus/networkZoneRecord.go generated Normal file
View File

@@ -0,0 +1,323 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type NetworkZoneRecord struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the network zone.
Description pulumi.StringOutput `pulumi:"description"`
// *Optional* - Entry in network zone record - see below.
Entries NetworkZoneRecordEntryArrayOutput `pulumi:"entries"`
// **Required** - Name of the network zone record.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the network zone record will be created.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// **Required** - Name of the zone to add the entries of this record.
Zone pulumi.StringOutput `pulumi:"zone"`
}
// NewNetworkZoneRecord registers a new resource with the given unique name, arguments, and options.
func NewNetworkZoneRecord(ctx *pulumi.Context,
name string, args *NetworkZoneRecordArgs, opts ...pulumi.ResourceOption) (*NetworkZoneRecord, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Zone == nil {
return nil, errors.New("invalid value for required argument 'Zone'")
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource NetworkZoneRecord
err := ctx.RegisterResource("incus:index/networkZoneRecord:NetworkZoneRecord", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetNetworkZoneRecord gets an existing NetworkZoneRecord resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetNetworkZoneRecord(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *NetworkZoneRecordState, opts ...pulumi.ResourceOption) (*NetworkZoneRecord, error) {
var resource NetworkZoneRecord
err := ctx.ReadResource("incus:index/networkZoneRecord:NetworkZoneRecord", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering NetworkZoneRecord resources.
type networkZoneRecordState struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network zone.
Description *string `pulumi:"description"`
// *Optional* - Entry in network zone record - see below.
Entries []NetworkZoneRecordEntry `pulumi:"entries"`
// **Required** - Name of the network zone record.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network zone record will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// **Required** - Name of the zone to add the entries of this record.
Zone *string `pulumi:"zone"`
}
type NetworkZoneRecordState struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config pulumi.StringMapInput
// *Optional* - Description of the network zone.
Description pulumi.StringPtrInput
// *Optional* - Entry in network zone record - see below.
Entries NetworkZoneRecordEntryArrayInput
// **Required** - Name of the network zone record.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network zone record will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// **Required** - Name of the zone to add the entries of this record.
Zone pulumi.StringPtrInput
}
func (NetworkZoneRecordState) ElementType() reflect.Type {
return reflect.TypeOf((*networkZoneRecordState)(nil)).Elem()
}
type networkZoneRecordArgs struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the network zone.
Description *string `pulumi:"description"`
// *Optional* - Entry in network zone record - see below.
Entries []NetworkZoneRecordEntry `pulumi:"entries"`
// **Required** - Name of the network zone record.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the network zone record will be created.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// **Required** - Name of the zone to add the entries of this record.
Zone string `pulumi:"zone"`
}
// The set of arguments for constructing a NetworkZoneRecord resource.
type NetworkZoneRecordArgs struct {
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
Config pulumi.StringMapInput
// *Optional* - Description of the network zone.
Description pulumi.StringPtrInput
// *Optional* - Entry in network zone record - see below.
Entries NetworkZoneRecordEntryArrayInput
// **Required** - Name of the network zone record.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the network zone record will be created.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// **Required** - Name of the zone to add the entries of this record.
Zone pulumi.StringInput
}
func (NetworkZoneRecordArgs) ElementType() reflect.Type {
return reflect.TypeOf((*networkZoneRecordArgs)(nil)).Elem()
}
type NetworkZoneRecordInput interface {
pulumi.Input
ToNetworkZoneRecordOutput() NetworkZoneRecordOutput
ToNetworkZoneRecordOutputWithContext(ctx context.Context) NetworkZoneRecordOutput
}
func (*NetworkZoneRecord) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkZoneRecord)(nil)).Elem()
}
func (i *NetworkZoneRecord) ToNetworkZoneRecordOutput() NetworkZoneRecordOutput {
return i.ToNetworkZoneRecordOutputWithContext(context.Background())
}
func (i *NetworkZoneRecord) ToNetworkZoneRecordOutputWithContext(ctx context.Context) NetworkZoneRecordOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkZoneRecordOutput)
}
// NetworkZoneRecordArrayInput is an input type that accepts NetworkZoneRecordArray and NetworkZoneRecordArrayOutput values.
// You can construct a concrete instance of `NetworkZoneRecordArrayInput` via:
//
// NetworkZoneRecordArray{ NetworkZoneRecordArgs{...} }
type NetworkZoneRecordArrayInput interface {
pulumi.Input
ToNetworkZoneRecordArrayOutput() NetworkZoneRecordArrayOutput
ToNetworkZoneRecordArrayOutputWithContext(context.Context) NetworkZoneRecordArrayOutput
}
type NetworkZoneRecordArray []NetworkZoneRecordInput
func (NetworkZoneRecordArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkZoneRecord)(nil)).Elem()
}
func (i NetworkZoneRecordArray) ToNetworkZoneRecordArrayOutput() NetworkZoneRecordArrayOutput {
return i.ToNetworkZoneRecordArrayOutputWithContext(context.Background())
}
func (i NetworkZoneRecordArray) ToNetworkZoneRecordArrayOutputWithContext(ctx context.Context) NetworkZoneRecordArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkZoneRecordArrayOutput)
}
// NetworkZoneRecordMapInput is an input type that accepts NetworkZoneRecordMap and NetworkZoneRecordMapOutput values.
// You can construct a concrete instance of `NetworkZoneRecordMapInput` via:
//
// NetworkZoneRecordMap{ "key": NetworkZoneRecordArgs{...} }
type NetworkZoneRecordMapInput interface {
pulumi.Input
ToNetworkZoneRecordMapOutput() NetworkZoneRecordMapOutput
ToNetworkZoneRecordMapOutputWithContext(context.Context) NetworkZoneRecordMapOutput
}
type NetworkZoneRecordMap map[string]NetworkZoneRecordInput
func (NetworkZoneRecordMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkZoneRecord)(nil)).Elem()
}
func (i NetworkZoneRecordMap) ToNetworkZoneRecordMapOutput() NetworkZoneRecordMapOutput {
return i.ToNetworkZoneRecordMapOutputWithContext(context.Background())
}
func (i NetworkZoneRecordMap) ToNetworkZoneRecordMapOutputWithContext(ctx context.Context) NetworkZoneRecordMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(NetworkZoneRecordMapOutput)
}
type NetworkZoneRecordOutput struct{ *pulumi.OutputState }
func (NetworkZoneRecordOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkZoneRecord)(nil)).Elem()
}
func (o NetworkZoneRecordOutput) ToNetworkZoneRecordOutput() NetworkZoneRecordOutput {
return o
}
func (o NetworkZoneRecordOutput) ToNetworkZoneRecordOutputWithContext(ctx context.Context) NetworkZoneRecordOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [network zoneConfig settings](https://linuxcontainers.org/incus/docs/main/howto/network_zones/#configuration-options).
func (o NetworkZoneRecordOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *NetworkZoneRecord) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the network zone.
func (o NetworkZoneRecordOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkZoneRecord) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// *Optional* - Entry in network zone record - see below.
func (o NetworkZoneRecordOutput) Entries() NetworkZoneRecordEntryArrayOutput {
return o.ApplyT(func(v *NetworkZoneRecord) NetworkZoneRecordEntryArrayOutput { return v.Entries }).(NetworkZoneRecordEntryArrayOutput)
}
// **Required** - Name of the network zone record.
func (o NetworkZoneRecordOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkZoneRecord) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the network zone record will be created.
func (o NetworkZoneRecordOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkZoneRecord) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o NetworkZoneRecordOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *NetworkZoneRecord) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// **Required** - Name of the zone to add the entries of this record.
func (o NetworkZoneRecordOutput) Zone() pulumi.StringOutput {
return o.ApplyT(func(v *NetworkZoneRecord) pulumi.StringOutput { return v.Zone }).(pulumi.StringOutput)
}
type NetworkZoneRecordArrayOutput struct{ *pulumi.OutputState }
func (NetworkZoneRecordArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*NetworkZoneRecord)(nil)).Elem()
}
func (o NetworkZoneRecordArrayOutput) ToNetworkZoneRecordArrayOutput() NetworkZoneRecordArrayOutput {
return o
}
func (o NetworkZoneRecordArrayOutput) ToNetworkZoneRecordArrayOutputWithContext(ctx context.Context) NetworkZoneRecordArrayOutput {
return o
}
func (o NetworkZoneRecordArrayOutput) Index(i pulumi.IntInput) NetworkZoneRecordOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NetworkZoneRecord {
return vs[0].([]*NetworkZoneRecord)[vs[1].(int)]
}).(NetworkZoneRecordOutput)
}
type NetworkZoneRecordMapOutput struct{ *pulumi.OutputState }
func (NetworkZoneRecordMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*NetworkZoneRecord)(nil)).Elem()
}
func (o NetworkZoneRecordMapOutput) ToNetworkZoneRecordMapOutput() NetworkZoneRecordMapOutput {
return o
}
func (o NetworkZoneRecordMapOutput) ToNetworkZoneRecordMapOutputWithContext(ctx context.Context) NetworkZoneRecordMapOutput {
return o
}
func (o NetworkZoneRecordMapOutput) MapIndex(k pulumi.StringInput) NetworkZoneRecordOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NetworkZoneRecord {
return vs[0].(map[string]*NetworkZoneRecord)[vs[1].(string)]
}).(NetworkZoneRecordOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*NetworkZoneRecordInput)(nil)).Elem(), &NetworkZoneRecord{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkZoneRecordArrayInput)(nil)).Elem(), NetworkZoneRecordArray{})
pulumi.RegisterInputType(reflect.TypeOf((*NetworkZoneRecordMapInput)(nil)).Elem(), NetworkZoneRecordMap{})
pulumi.RegisterOutputType(NetworkZoneRecordOutput{})
pulumi.RegisterOutputType(NetworkZoneRecordArrayOutput{})
pulumi.RegisterOutputType(NetworkZoneRecordMapOutput{})
}

304
sdk/go/incus/profile.go generated Normal file
View File

@@ -0,0 +1,304 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type Profile struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the profile.
Description pulumi.StringOutput `pulumi:"description"`
// *Optional* - Device definition. See reference below.
Devices ProfileDeviceArrayOutput `pulumi:"devices"`
// **Required** - Name of the profile.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the profile will be stored.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewProfile registers a new resource with the given unique name, arguments, and options.
func NewProfile(ctx *pulumi.Context,
name string, args *ProfileArgs, opts ...pulumi.ResourceOption) (*Profile, error) {
if args == nil {
args = &ProfileArgs{}
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Profile
err := ctx.RegisterResource("incus:index/profile:Profile", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetProfile gets an existing Profile resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetProfile(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *ProfileState, opts ...pulumi.ResourceOption) (*Profile, error) {
var resource Profile
err := ctx.ReadResource("incus:index/profile:Profile", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Profile resources.
type profileState struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the profile.
Description *string `pulumi:"description"`
// *Optional* - Device definition. See reference below.
Devices []ProfileDevice `pulumi:"devices"`
// **Required** - Name of the profile.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the profile will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
type ProfileState struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config pulumi.StringMapInput
// *Optional* - Description of the profile.
Description pulumi.StringPtrInput
// *Optional* - Device definition. See reference below.
Devices ProfileDeviceArrayInput
// **Required** - Name of the profile.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the profile will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ProfileState) ElementType() reflect.Type {
return reflect.TypeOf((*profileState)(nil)).Elem()
}
type profileArgs struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the profile.
Description *string `pulumi:"description"`
// *Optional* - Device definition. See reference below.
Devices []ProfileDevice `pulumi:"devices"`
// **Required** - Name of the profile.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the profile will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a Profile resource.
type ProfileArgs struct {
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
Config pulumi.StringMapInput
// *Optional* - Description of the profile.
Description pulumi.StringPtrInput
// *Optional* - Device definition. See reference below.
Devices ProfileDeviceArrayInput
// **Required** - Name of the profile.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the profile will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ProfileArgs) ElementType() reflect.Type {
return reflect.TypeOf((*profileArgs)(nil)).Elem()
}
type ProfileInput interface {
pulumi.Input
ToProfileOutput() ProfileOutput
ToProfileOutputWithContext(ctx context.Context) ProfileOutput
}
func (*Profile) ElementType() reflect.Type {
return reflect.TypeOf((**Profile)(nil)).Elem()
}
func (i *Profile) ToProfileOutput() ProfileOutput {
return i.ToProfileOutputWithContext(context.Background())
}
func (i *Profile) ToProfileOutputWithContext(ctx context.Context) ProfileOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProfileOutput)
}
// ProfileArrayInput is an input type that accepts ProfileArray and ProfileArrayOutput values.
// You can construct a concrete instance of `ProfileArrayInput` via:
//
// ProfileArray{ ProfileArgs{...} }
type ProfileArrayInput interface {
pulumi.Input
ToProfileArrayOutput() ProfileArrayOutput
ToProfileArrayOutputWithContext(context.Context) ProfileArrayOutput
}
type ProfileArray []ProfileInput
func (ProfileArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Profile)(nil)).Elem()
}
func (i ProfileArray) ToProfileArrayOutput() ProfileArrayOutput {
return i.ToProfileArrayOutputWithContext(context.Background())
}
func (i ProfileArray) ToProfileArrayOutputWithContext(ctx context.Context) ProfileArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProfileArrayOutput)
}
// ProfileMapInput is an input type that accepts ProfileMap and ProfileMapOutput values.
// You can construct a concrete instance of `ProfileMapInput` via:
//
// ProfileMap{ "key": ProfileArgs{...} }
type ProfileMapInput interface {
pulumi.Input
ToProfileMapOutput() ProfileMapOutput
ToProfileMapOutputWithContext(context.Context) ProfileMapOutput
}
type ProfileMap map[string]ProfileInput
func (ProfileMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Profile)(nil)).Elem()
}
func (i ProfileMap) ToProfileMapOutput() ProfileMapOutput {
return i.ToProfileMapOutputWithContext(context.Background())
}
func (i ProfileMap) ToProfileMapOutputWithContext(ctx context.Context) ProfileMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProfileMapOutput)
}
type ProfileOutput struct{ *pulumi.OutputState }
func (ProfileOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Profile)(nil)).Elem()
}
func (o ProfileOutput) ToProfileOutput() ProfileOutput {
return o
}
func (o ProfileOutput) ToProfileOutputWithContext(ctx context.Context) ProfileOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [instance config settings](https://linuxcontainers.org/incus/docs/main/reference/instance_options/).
func (o ProfileOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *Profile) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the profile.
func (o ProfileOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *Profile) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// *Optional* - Device definition. See reference below.
func (o ProfileOutput) Devices() ProfileDeviceArrayOutput {
return o.ApplyT(func(v *Profile) ProfileDeviceArrayOutput { return v.Devices }).(ProfileDeviceArrayOutput)
}
// **Required** - Name of the profile.
func (o ProfileOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *Profile) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the profile will be stored.
func (o ProfileOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *Profile) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o ProfileOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Profile) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type ProfileArrayOutput struct{ *pulumi.OutputState }
func (ProfileArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Profile)(nil)).Elem()
}
func (o ProfileArrayOutput) ToProfileArrayOutput() ProfileArrayOutput {
return o
}
func (o ProfileArrayOutput) ToProfileArrayOutputWithContext(ctx context.Context) ProfileArrayOutput {
return o
}
func (o ProfileArrayOutput) Index(i pulumi.IntInput) ProfileOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Profile {
return vs[0].([]*Profile)[vs[1].(int)]
}).(ProfileOutput)
}
type ProfileMapOutput struct{ *pulumi.OutputState }
func (ProfileMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Profile)(nil)).Elem()
}
func (o ProfileMapOutput) ToProfileMapOutput() ProfileMapOutput {
return o
}
func (o ProfileMapOutput) ToProfileMapOutputWithContext(ctx context.Context) ProfileMapOutput {
return o
}
func (o ProfileMapOutput) MapIndex(k pulumi.StringInput) ProfileOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Profile {
return vs[0].(map[string]*Profile)[vs[1].(string)]
}).(ProfileOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ProfileInput)(nil)).Elem(), &Profile{})
pulumi.RegisterInputType(reflect.TypeOf((*ProfileArrayInput)(nil)).Elem(), ProfileArray{})
pulumi.RegisterInputType(reflect.TypeOf((*ProfileMapInput)(nil)).Elem(), ProfileMap{})
pulumi.RegisterOutputType(ProfileOutput{})
pulumi.RegisterOutputType(ProfileArrayOutput{})
pulumi.RegisterOutputType(ProfileMapOutput{})
}

265
sdk/go/incus/project.go generated Normal file
View File

@@ -0,0 +1,265 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type Project struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of [project config settings](https://linuxcontainers.org/incus/docs/main/reference/projects/).
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the project.
Description pulumi.StringOutput `pulumi:"description"`
// **Required** - Name of the project.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
}
// NewProject registers a new resource with the given unique name, arguments, and options.
func NewProject(ctx *pulumi.Context,
name string, args *ProjectArgs, opts ...pulumi.ResourceOption) (*Project, error) {
if args == nil {
args = &ProjectArgs{}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Project
err := ctx.RegisterResource("incus:index/project:Project", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetProject gets an existing Project resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetProject(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *ProjectState, opts ...pulumi.ResourceOption) (*Project, error) {
var resource Project
err := ctx.ReadResource("incus:index/project:Project", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Project resources.
type projectState struct {
// *Optional* - Map of key/value pairs of [project config settings](https://linuxcontainers.org/incus/docs/main/reference/projects/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the project.
Description *string `pulumi:"description"`
// **Required** - Name of the project.
Name *string `pulumi:"name"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
type ProjectState struct {
// *Optional* - Map of key/value pairs of [project config settings](https://linuxcontainers.org/incus/docs/main/reference/projects/).
Config pulumi.StringMapInput
// *Optional* - Description of the project.
Description pulumi.StringPtrInput
// **Required** - Name of the project.
Name pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ProjectState) ElementType() reflect.Type {
return reflect.TypeOf((*projectState)(nil)).Elem()
}
type projectArgs struct {
// *Optional* - Map of key/value pairs of [project config settings](https://linuxcontainers.org/incus/docs/main/reference/projects/).
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the project.
Description *string `pulumi:"description"`
// **Required** - Name of the project.
Name *string `pulumi:"name"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
}
// The set of arguments for constructing a Project resource.
type ProjectArgs struct {
// *Optional* - Map of key/value pairs of [project config settings](https://linuxcontainers.org/incus/docs/main/reference/projects/).
Config pulumi.StringMapInput
// *Optional* - Description of the project.
Description pulumi.StringPtrInput
// **Required** - Name of the project.
Name pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
}
func (ProjectArgs) ElementType() reflect.Type {
return reflect.TypeOf((*projectArgs)(nil)).Elem()
}
type ProjectInput interface {
pulumi.Input
ToProjectOutput() ProjectOutput
ToProjectOutputWithContext(ctx context.Context) ProjectOutput
}
func (*Project) ElementType() reflect.Type {
return reflect.TypeOf((**Project)(nil)).Elem()
}
func (i *Project) ToProjectOutput() ProjectOutput {
return i.ToProjectOutputWithContext(context.Background())
}
func (i *Project) ToProjectOutputWithContext(ctx context.Context) ProjectOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProjectOutput)
}
// ProjectArrayInput is an input type that accepts ProjectArray and ProjectArrayOutput values.
// You can construct a concrete instance of `ProjectArrayInput` via:
//
// ProjectArray{ ProjectArgs{...} }
type ProjectArrayInput interface {
pulumi.Input
ToProjectArrayOutput() ProjectArrayOutput
ToProjectArrayOutputWithContext(context.Context) ProjectArrayOutput
}
type ProjectArray []ProjectInput
func (ProjectArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Project)(nil)).Elem()
}
func (i ProjectArray) ToProjectArrayOutput() ProjectArrayOutput {
return i.ToProjectArrayOutputWithContext(context.Background())
}
func (i ProjectArray) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProjectArrayOutput)
}
// ProjectMapInput is an input type that accepts ProjectMap and ProjectMapOutput values.
// You can construct a concrete instance of `ProjectMapInput` via:
//
// ProjectMap{ "key": ProjectArgs{...} }
type ProjectMapInput interface {
pulumi.Input
ToProjectMapOutput() ProjectMapOutput
ToProjectMapOutputWithContext(context.Context) ProjectMapOutput
}
type ProjectMap map[string]ProjectInput
func (ProjectMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Project)(nil)).Elem()
}
func (i ProjectMap) ToProjectMapOutput() ProjectMapOutput {
return i.ToProjectMapOutputWithContext(context.Background())
}
func (i ProjectMap) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProjectMapOutput)
}
type ProjectOutput struct{ *pulumi.OutputState }
func (ProjectOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Project)(nil)).Elem()
}
func (o ProjectOutput) ToProjectOutput() ProjectOutput {
return o
}
func (o ProjectOutput) ToProjectOutputWithContext(ctx context.Context) ProjectOutput {
return o
}
// *Optional* - Map of key/value pairs of [project config settings](https://linuxcontainers.org/incus/docs/main/reference/projects/).
func (o ProjectOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *Project) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the project.
func (o ProjectOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **Required** - Name of the project.
func (o ProjectOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o ProjectOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Project) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
type ProjectArrayOutput struct{ *pulumi.OutputState }
func (ProjectArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*Project)(nil)).Elem()
}
func (o ProjectArrayOutput) ToProjectArrayOutput() ProjectArrayOutput {
return o
}
func (o ProjectArrayOutput) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput {
return o
}
func (o ProjectArrayOutput) Index(i pulumi.IntInput) ProjectOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Project {
return vs[0].([]*Project)[vs[1].(int)]
}).(ProjectOutput)
}
type ProjectMapOutput struct{ *pulumi.OutputState }
func (ProjectMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*Project)(nil)).Elem()
}
func (o ProjectMapOutput) ToProjectMapOutput() ProjectMapOutput {
return o
}
func (o ProjectMapOutput) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput {
return o
}
func (o ProjectMapOutput) MapIndex(k pulumi.StringInput) ProjectOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Project {
return vs[0].(map[string]*Project)[vs[1].(string)]
}).(ProjectOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ProjectInput)(nil)).Elem(), &Project{})
pulumi.RegisterInputType(reflect.TypeOf((*ProjectArrayInput)(nil)).Elem(), ProjectArray{})
pulumi.RegisterInputType(reflect.TypeOf((*ProjectMapInput)(nil)).Elem(), ProjectMap{})
pulumi.RegisterOutputType(ProjectOutput{})
pulumi.RegisterOutputType(ProjectArrayOutput{})
pulumi.RegisterOutputType(ProjectMapOutput{})
}

124
sdk/go/incus/provider.go generated Normal file
View File

@@ -0,0 +1,124 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// The provider type for the incus 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.
type Provider struct {
pulumi.ProviderResourceState
// The directory to look for existing Incus configuration. (default = $HOME/.config/incus)
ConfigDir pulumi.StringPtrOutput `pulumi:"configDir"`
// The project where project-scoped resources will be created. Can be overridden in individual resources. (default =
// default)
Project pulumi.StringPtrOutput `pulumi:"project"`
}
// 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 = &ProviderArgs{}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Provider
err := ctx.RegisterResource("pulumi:providers:incus", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
type providerArgs struct {
// Accept the server certificate.
AcceptRemoteCertificate *bool `pulumi:"acceptRemoteCertificate"`
// The directory to look for existing Incus configuration. (default = $HOME/.config/incus)
ConfigDir *string `pulumi:"configDir"`
// Automatically generate the Incus client certificates if they don't exist.
GenerateClientCertificates *bool `pulumi:"generateClientCertificates"`
// The project where project-scoped resources will be created. Can be overridden in individual resources. (default =
// default)
Project *string `pulumi:"project"`
// Incus Remote
Remotes []ProviderRemote `pulumi:"remotes"`
}
// The set of arguments for constructing a Provider resource.
type ProviderArgs struct {
// Accept the server certificate.
AcceptRemoteCertificate pulumi.BoolPtrInput
// The directory to look for existing Incus configuration. (default = $HOME/.config/incus)
ConfigDir pulumi.StringPtrInput
// Automatically generate the Incus client certificates if they don't exist.
GenerateClientCertificates pulumi.BoolPtrInput
// The project where project-scoped resources will be created. Can be overridden in individual resources. (default =
// default)
Project pulumi.StringPtrInput
// Incus Remote
Remotes ProviderRemoteArrayInput
}
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)).Elem()
}
func (i *Provider) ToProviderOutput() ProviderOutput {
return i.ToProviderOutputWithContext(context.Background())
}
func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput)
}
type ProviderOutput struct{ *pulumi.OutputState }
func (ProviderOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Provider)(nil)).Elem()
}
func (o ProviderOutput) ToProviderOutput() ProviderOutput {
return o
}
func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
return o
}
// The directory to look for existing Incus configuration. (default = $HOME/.config/incus)
func (o ProviderOutput) ConfigDir() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ConfigDir }).(pulumi.StringPtrOutput)
}
// The project where project-scoped resources will be created. Can be overridden in individual resources. (default =
// default)
func (o ProviderOutput) Project() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Project }).(pulumi.StringPtrOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{})
pulumi.RegisterOutputType(ProviderOutput{})
}

6
sdk/go/incus/pulumi-plugin.json generated Normal file
View File

@@ -0,0 +1,6 @@
{
"resource": true,
"name": "incus",
"version": "1.0.0-alpha.0+dev",
"server": "https://git.kalinow.ski/api/packages/kiterun/generic/pulumi-incus/${VERSION}/"
}

2603
sdk/go/incus/pulumiTypes.go generated Normal file

File diff suppressed because it is too large Load Diff

355
sdk/go/incus/storageBucket.go generated Normal file
View File

@@ -0,0 +1,355 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type StorageBucket struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [storage bucket config settings](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#configure-storage-bucket-settings).
// Config settings vary depending on the Storage Pool used.
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the storage bucket.
Description pulumi.StringOutput `pulumi:"description"`
// Name of the node where storage bucket was created. It could be useful with Incus in cluster mode.
Location pulumi.StringOutput `pulumi:"location"`
// **Required** - Name of the storage bucket.
Name pulumi.StringOutput `pulumi:"name"`
// **Required** - Name of storage pool to host the storage bucket.
Pool pulumi.StringOutput `pulumi:"pool"`
// *Optional* - Name of the project where the storage bucket will be stored.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Path to a backup file from which the bucket will be created.
SourceFile pulumi.StringPtrOutput `pulumi:"sourceFile"`
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringOutput `pulumi:"target"`
}
// NewStorageBucket registers a new resource with the given unique name, arguments, and options.
func NewStorageBucket(ctx *pulumi.Context,
name string, args *StorageBucketArgs, opts ...pulumi.ResourceOption) (*StorageBucket, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Pool == nil {
return nil, errors.New("invalid value for required argument 'Pool'")
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource StorageBucket
err := ctx.RegisterResource("incus:index/storageBucket:StorageBucket", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetStorageBucket gets an existing StorageBucket resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetStorageBucket(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *StorageBucketState, opts ...pulumi.ResourceOption) (*StorageBucket, error) {
var resource StorageBucket
err := ctx.ReadResource("incus:index/storageBucket:StorageBucket", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering StorageBucket resources.
type storageBucketState struct {
// *Optional* - Map of key/value pairs of
// [storage bucket config settings](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#configure-storage-bucket-settings).
// Config settings vary depending on the Storage Pool used.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the storage bucket.
Description *string `pulumi:"description"`
// Name of the node where storage bucket was created. It could be useful with Incus in cluster mode.
Location *string `pulumi:"location"`
// **Required** - Name of the storage bucket.
Name *string `pulumi:"name"`
// **Required** - Name of storage pool to host the storage bucket.
Pool *string `pulumi:"pool"`
// *Optional* - Name of the project where the storage bucket will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Path to a backup file from which the bucket will be created.
SourceFile *string `pulumi:"sourceFile"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
}
type StorageBucketState struct {
// *Optional* - Map of key/value pairs of
// [storage bucket config settings](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#configure-storage-bucket-settings).
// Config settings vary depending on the Storage Pool used.
Config pulumi.StringMapInput
// *Optional* - Description of the storage bucket.
Description pulumi.StringPtrInput
// Name of the node where storage bucket was created. It could be useful with Incus in cluster mode.
Location pulumi.StringPtrInput
// **Required** - Name of the storage bucket.
Name pulumi.StringPtrInput
// **Required** - Name of storage pool to host the storage bucket.
Pool pulumi.StringPtrInput
// *Optional* - Name of the project where the storage bucket will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Path to a backup file from which the bucket will be created.
SourceFile pulumi.StringPtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
}
func (StorageBucketState) ElementType() reflect.Type {
return reflect.TypeOf((*storageBucketState)(nil)).Elem()
}
type storageBucketArgs struct {
// *Optional* - Map of key/value pairs of
// [storage bucket config settings](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#configure-storage-bucket-settings).
// Config settings vary depending on the Storage Pool used.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the storage bucket.
Description *string `pulumi:"description"`
// **Required** - Name of the storage bucket.
Name *string `pulumi:"name"`
// **Required** - Name of storage pool to host the storage bucket.
Pool string `pulumi:"pool"`
// *Optional* - Name of the project where the storage bucket will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Path to a backup file from which the bucket will be created.
SourceFile *string `pulumi:"sourceFile"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
}
// The set of arguments for constructing a StorageBucket resource.
type StorageBucketArgs struct {
// *Optional* - Map of key/value pairs of
// [storage bucket config settings](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#configure-storage-bucket-settings).
// Config settings vary depending on the Storage Pool used.
Config pulumi.StringMapInput
// *Optional* - Description of the storage bucket.
Description pulumi.StringPtrInput
// **Required** - Name of the storage bucket.
Name pulumi.StringPtrInput
// **Required** - Name of storage pool to host the storage bucket.
Pool pulumi.StringInput
// *Optional* - Name of the project where the storage bucket will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Path to a backup file from which the bucket will be created.
SourceFile pulumi.StringPtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
}
func (StorageBucketArgs) ElementType() reflect.Type {
return reflect.TypeOf((*storageBucketArgs)(nil)).Elem()
}
type StorageBucketInput interface {
pulumi.Input
ToStorageBucketOutput() StorageBucketOutput
ToStorageBucketOutputWithContext(ctx context.Context) StorageBucketOutput
}
func (*StorageBucket) ElementType() reflect.Type {
return reflect.TypeOf((**StorageBucket)(nil)).Elem()
}
func (i *StorageBucket) ToStorageBucketOutput() StorageBucketOutput {
return i.ToStorageBucketOutputWithContext(context.Background())
}
func (i *StorageBucket) ToStorageBucketOutputWithContext(ctx context.Context) StorageBucketOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageBucketOutput)
}
// StorageBucketArrayInput is an input type that accepts StorageBucketArray and StorageBucketArrayOutput values.
// You can construct a concrete instance of `StorageBucketArrayInput` via:
//
// StorageBucketArray{ StorageBucketArgs{...} }
type StorageBucketArrayInput interface {
pulumi.Input
ToStorageBucketArrayOutput() StorageBucketArrayOutput
ToStorageBucketArrayOutputWithContext(context.Context) StorageBucketArrayOutput
}
type StorageBucketArray []StorageBucketInput
func (StorageBucketArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StorageBucket)(nil)).Elem()
}
func (i StorageBucketArray) ToStorageBucketArrayOutput() StorageBucketArrayOutput {
return i.ToStorageBucketArrayOutputWithContext(context.Background())
}
func (i StorageBucketArray) ToStorageBucketArrayOutputWithContext(ctx context.Context) StorageBucketArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageBucketArrayOutput)
}
// StorageBucketMapInput is an input type that accepts StorageBucketMap and StorageBucketMapOutput values.
// You can construct a concrete instance of `StorageBucketMapInput` via:
//
// StorageBucketMap{ "key": StorageBucketArgs{...} }
type StorageBucketMapInput interface {
pulumi.Input
ToStorageBucketMapOutput() StorageBucketMapOutput
ToStorageBucketMapOutputWithContext(context.Context) StorageBucketMapOutput
}
type StorageBucketMap map[string]StorageBucketInput
func (StorageBucketMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StorageBucket)(nil)).Elem()
}
func (i StorageBucketMap) ToStorageBucketMapOutput() StorageBucketMapOutput {
return i.ToStorageBucketMapOutputWithContext(context.Background())
}
func (i StorageBucketMap) ToStorageBucketMapOutputWithContext(ctx context.Context) StorageBucketMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageBucketMapOutput)
}
type StorageBucketOutput struct{ *pulumi.OutputState }
func (StorageBucketOutput) ElementType() reflect.Type {
return reflect.TypeOf((**StorageBucket)(nil)).Elem()
}
func (o StorageBucketOutput) ToStorageBucketOutput() StorageBucketOutput {
return o
}
func (o StorageBucketOutput) ToStorageBucketOutputWithContext(ctx context.Context) StorageBucketOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [storage bucket config settings](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#configure-storage-bucket-settings).
// Config settings vary depending on the Storage Pool used.
func (o StorageBucketOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the storage bucket.
func (o StorageBucketOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// Name of the node where storage bucket was created. It could be useful with Incus in cluster mode.
func (o StorageBucketOutput) Location() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput)
}
// **Required** - Name of the storage bucket.
func (o StorageBucketOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// **Required** - Name of storage pool to host the storage bucket.
func (o StorageBucketOutput) Pool() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringOutput { return v.Pool }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the storage bucket will be stored.
func (o StorageBucketOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o StorageBucketOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Path to a backup file from which the bucket will be created.
func (o StorageBucketOutput) SourceFile() pulumi.StringPtrOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringPtrOutput { return v.SourceFile }).(pulumi.StringPtrOutput)
}
// *Optional* - Specify a target node in a cluster.
func (o StorageBucketOutput) Target() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucket) pulumi.StringOutput { return v.Target }).(pulumi.StringOutput)
}
type StorageBucketArrayOutput struct{ *pulumi.OutputState }
func (StorageBucketArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StorageBucket)(nil)).Elem()
}
func (o StorageBucketArrayOutput) ToStorageBucketArrayOutput() StorageBucketArrayOutput {
return o
}
func (o StorageBucketArrayOutput) ToStorageBucketArrayOutputWithContext(ctx context.Context) StorageBucketArrayOutput {
return o
}
func (o StorageBucketArrayOutput) Index(i pulumi.IntInput) StorageBucketOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StorageBucket {
return vs[0].([]*StorageBucket)[vs[1].(int)]
}).(StorageBucketOutput)
}
type StorageBucketMapOutput struct{ *pulumi.OutputState }
func (StorageBucketMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StorageBucket)(nil)).Elem()
}
func (o StorageBucketMapOutput) ToStorageBucketMapOutput() StorageBucketMapOutput {
return o
}
func (o StorageBucketMapOutput) ToStorageBucketMapOutputWithContext(ctx context.Context) StorageBucketMapOutput {
return o
}
func (o StorageBucketMapOutput) MapIndex(k pulumi.StringInput) StorageBucketOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StorageBucket {
return vs[0].(map[string]*StorageBucket)[vs[1].(string)]
}).(StorageBucketOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*StorageBucketInput)(nil)).Elem(), &StorageBucket{})
pulumi.RegisterInputType(reflect.TypeOf((*StorageBucketArrayInput)(nil)).Elem(), StorageBucketArray{})
pulumi.RegisterInputType(reflect.TypeOf((*StorageBucketMapInput)(nil)).Elem(), StorageBucketMap{})
pulumi.RegisterOutputType(StorageBucketOutput{})
pulumi.RegisterOutputType(StorageBucketArrayOutput{})
pulumi.RegisterOutputType(StorageBucketMapOutput{})
}

353
sdk/go/incus/storageBucketKey.go generated Normal file
View File

@@ -0,0 +1,353 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type StorageBucketKey struct {
pulumi.CustomResourceState
// Access key of the storage bucket key.
AccessKey pulumi.StringOutput `pulumi:"accessKey"`
// *Optional* - Description of the storage bucket key.
Description pulumi.StringOutput `pulumi:"description"`
// **Required** - Name of the storage bucket key.
Name pulumi.StringOutput `pulumi:"name"`
// **Required** - Name of storage pool to host the storage bucket key.
Pool pulumi.StringOutput `pulumi:"pool"`
// *Optional* - Name of the project where the storage bucket key will be stored.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Name of the role that controls the access rights for the
// key. If not specified, the default role is used, as described in the [official documentation](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#manage-storage-bucket-keys).
Role pulumi.StringOutput `pulumi:"role"`
// Secret key of the storage bucket key.
SecretKey pulumi.StringOutput `pulumi:"secretKey"`
// **Required** - Name of the storage bucket.
StorageBucket pulumi.StringOutput `pulumi:"storageBucket"`
}
// NewStorageBucketKey registers a new resource with the given unique name, arguments, and options.
func NewStorageBucketKey(ctx *pulumi.Context,
name string, args *StorageBucketKeyArgs, opts ...pulumi.ResourceOption) (*StorageBucketKey, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Pool == nil {
return nil, errors.New("invalid value for required argument 'Pool'")
}
if args.StorageBucket == nil {
return nil, errors.New("invalid value for required argument 'StorageBucket'")
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
secrets := pulumi.AdditionalSecretOutputs([]string{
"accessKey",
"secretKey",
})
opts = append(opts, secrets)
opts = internal.PkgResourceDefaultOpts(opts)
var resource StorageBucketKey
err := ctx.RegisterResource("incus:index/storageBucketKey:StorageBucketKey", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetStorageBucketKey gets an existing StorageBucketKey resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetStorageBucketKey(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *StorageBucketKeyState, opts ...pulumi.ResourceOption) (*StorageBucketKey, error) {
var resource StorageBucketKey
err := ctx.ReadResource("incus:index/storageBucketKey:StorageBucketKey", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering StorageBucketKey resources.
type storageBucketKeyState struct {
// Access key of the storage bucket key.
AccessKey *string `pulumi:"accessKey"`
// *Optional* - Description of the storage bucket key.
Description *string `pulumi:"description"`
// **Required** - Name of the storage bucket key.
Name *string `pulumi:"name"`
// **Required** - Name of storage pool to host the storage bucket key.
Pool *string `pulumi:"pool"`
// *Optional* - Name of the project where the storage bucket key will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Name of the role that controls the access rights for the
// key. If not specified, the default role is used, as described in the [official documentation](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#manage-storage-bucket-keys).
Role *string `pulumi:"role"`
// Secret key of the storage bucket key.
SecretKey *string `pulumi:"secretKey"`
// **Required** - Name of the storage bucket.
StorageBucket *string `pulumi:"storageBucket"`
}
type StorageBucketKeyState struct {
// Access key of the storage bucket key.
AccessKey pulumi.StringPtrInput
// *Optional* - Description of the storage bucket key.
Description pulumi.StringPtrInput
// **Required** - Name of the storage bucket key.
Name pulumi.StringPtrInput
// **Required** - Name of storage pool to host the storage bucket key.
Pool pulumi.StringPtrInput
// *Optional* - Name of the project where the storage bucket key will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Name of the role that controls the access rights for the
// key. If not specified, the default role is used, as described in the [official documentation](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#manage-storage-bucket-keys).
Role pulumi.StringPtrInput
// Secret key of the storage bucket key.
SecretKey pulumi.StringPtrInput
// **Required** - Name of the storage bucket.
StorageBucket pulumi.StringPtrInput
}
func (StorageBucketKeyState) ElementType() reflect.Type {
return reflect.TypeOf((*storageBucketKeyState)(nil)).Elem()
}
type storageBucketKeyArgs struct {
// *Optional* - Description of the storage bucket key.
Description *string `pulumi:"description"`
// **Required** - Name of the storage bucket key.
Name *string `pulumi:"name"`
// **Required** - Name of storage pool to host the storage bucket key.
Pool string `pulumi:"pool"`
// *Optional* - Name of the project where the storage bucket key will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Name of the role that controls the access rights for the
// key. If not specified, the default role is used, as described in the [official documentation](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#manage-storage-bucket-keys).
Role *string `pulumi:"role"`
// **Required** - Name of the storage bucket.
StorageBucket string `pulumi:"storageBucket"`
}
// The set of arguments for constructing a StorageBucketKey resource.
type StorageBucketKeyArgs struct {
// *Optional* - Description of the storage bucket key.
Description pulumi.StringPtrInput
// **Required** - Name of the storage bucket key.
Name pulumi.StringPtrInput
// **Required** - Name of storage pool to host the storage bucket key.
Pool pulumi.StringInput
// *Optional* - Name of the project where the storage bucket key will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Name of the role that controls the access rights for the
// key. If not specified, the default role is used, as described in the [official documentation](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#manage-storage-bucket-keys).
Role pulumi.StringPtrInput
// **Required** - Name of the storage bucket.
StorageBucket pulumi.StringInput
}
func (StorageBucketKeyArgs) ElementType() reflect.Type {
return reflect.TypeOf((*storageBucketKeyArgs)(nil)).Elem()
}
type StorageBucketKeyInput interface {
pulumi.Input
ToStorageBucketKeyOutput() StorageBucketKeyOutput
ToStorageBucketKeyOutputWithContext(ctx context.Context) StorageBucketKeyOutput
}
func (*StorageBucketKey) ElementType() reflect.Type {
return reflect.TypeOf((**StorageBucketKey)(nil)).Elem()
}
func (i *StorageBucketKey) ToStorageBucketKeyOutput() StorageBucketKeyOutput {
return i.ToStorageBucketKeyOutputWithContext(context.Background())
}
func (i *StorageBucketKey) ToStorageBucketKeyOutputWithContext(ctx context.Context) StorageBucketKeyOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageBucketKeyOutput)
}
// StorageBucketKeyArrayInput is an input type that accepts StorageBucketKeyArray and StorageBucketKeyArrayOutput values.
// You can construct a concrete instance of `StorageBucketKeyArrayInput` via:
//
// StorageBucketKeyArray{ StorageBucketKeyArgs{...} }
type StorageBucketKeyArrayInput interface {
pulumi.Input
ToStorageBucketKeyArrayOutput() StorageBucketKeyArrayOutput
ToStorageBucketKeyArrayOutputWithContext(context.Context) StorageBucketKeyArrayOutput
}
type StorageBucketKeyArray []StorageBucketKeyInput
func (StorageBucketKeyArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StorageBucketKey)(nil)).Elem()
}
func (i StorageBucketKeyArray) ToStorageBucketKeyArrayOutput() StorageBucketKeyArrayOutput {
return i.ToStorageBucketKeyArrayOutputWithContext(context.Background())
}
func (i StorageBucketKeyArray) ToStorageBucketKeyArrayOutputWithContext(ctx context.Context) StorageBucketKeyArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageBucketKeyArrayOutput)
}
// StorageBucketKeyMapInput is an input type that accepts StorageBucketKeyMap and StorageBucketKeyMapOutput values.
// You can construct a concrete instance of `StorageBucketKeyMapInput` via:
//
// StorageBucketKeyMap{ "key": StorageBucketKeyArgs{...} }
type StorageBucketKeyMapInput interface {
pulumi.Input
ToStorageBucketKeyMapOutput() StorageBucketKeyMapOutput
ToStorageBucketKeyMapOutputWithContext(context.Context) StorageBucketKeyMapOutput
}
type StorageBucketKeyMap map[string]StorageBucketKeyInput
func (StorageBucketKeyMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StorageBucketKey)(nil)).Elem()
}
func (i StorageBucketKeyMap) ToStorageBucketKeyMapOutput() StorageBucketKeyMapOutput {
return i.ToStorageBucketKeyMapOutputWithContext(context.Background())
}
func (i StorageBucketKeyMap) ToStorageBucketKeyMapOutputWithContext(ctx context.Context) StorageBucketKeyMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageBucketKeyMapOutput)
}
type StorageBucketKeyOutput struct{ *pulumi.OutputState }
func (StorageBucketKeyOutput) ElementType() reflect.Type {
return reflect.TypeOf((**StorageBucketKey)(nil)).Elem()
}
func (o StorageBucketKeyOutput) ToStorageBucketKeyOutput() StorageBucketKeyOutput {
return o
}
func (o StorageBucketKeyOutput) ToStorageBucketKeyOutputWithContext(ctx context.Context) StorageBucketKeyOutput {
return o
}
// Access key of the storage bucket key.
func (o StorageBucketKeyOutput) AccessKey() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.AccessKey }).(pulumi.StringOutput)
}
// *Optional* - Description of the storage bucket key.
func (o StorageBucketKeyOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **Required** - Name of the storage bucket key.
func (o StorageBucketKeyOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// **Required** - Name of storage pool to host the storage bucket key.
func (o StorageBucketKeyOutput) Pool() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.Pool }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the storage bucket key will be stored.
func (o StorageBucketKeyOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o StorageBucketKeyOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Name of the role that controls the access rights for the
// key. If not specified, the default role is used, as described in the [official documentation](https://linuxcontainers.org/incus/docs/main/howto/storage_buckets/#manage-storage-bucket-keys).
func (o StorageBucketKeyOutput) Role() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput)
}
// Secret key of the storage bucket key.
func (o StorageBucketKeyOutput) SecretKey() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.SecretKey }).(pulumi.StringOutput)
}
// **Required** - Name of the storage bucket.
func (o StorageBucketKeyOutput) StorageBucket() pulumi.StringOutput {
return o.ApplyT(func(v *StorageBucketKey) pulumi.StringOutput { return v.StorageBucket }).(pulumi.StringOutput)
}
type StorageBucketKeyArrayOutput struct{ *pulumi.OutputState }
func (StorageBucketKeyArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StorageBucketKey)(nil)).Elem()
}
func (o StorageBucketKeyArrayOutput) ToStorageBucketKeyArrayOutput() StorageBucketKeyArrayOutput {
return o
}
func (o StorageBucketKeyArrayOutput) ToStorageBucketKeyArrayOutputWithContext(ctx context.Context) StorageBucketKeyArrayOutput {
return o
}
func (o StorageBucketKeyArrayOutput) Index(i pulumi.IntInput) StorageBucketKeyOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StorageBucketKey {
return vs[0].([]*StorageBucketKey)[vs[1].(int)]
}).(StorageBucketKeyOutput)
}
type StorageBucketKeyMapOutput struct{ *pulumi.OutputState }
func (StorageBucketKeyMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StorageBucketKey)(nil)).Elem()
}
func (o StorageBucketKeyMapOutput) ToStorageBucketKeyMapOutput() StorageBucketKeyMapOutput {
return o
}
func (o StorageBucketKeyMapOutput) ToStorageBucketKeyMapOutputWithContext(ctx context.Context) StorageBucketKeyMapOutput {
return o
}
func (o StorageBucketKeyMapOutput) MapIndex(k pulumi.StringInput) StorageBucketKeyOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StorageBucketKey {
return vs[0].(map[string]*StorageBucketKey)[vs[1].(string)]
}).(StorageBucketKeyOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*StorageBucketKeyInput)(nil)).Elem(), &StorageBucketKey{})
pulumi.RegisterInputType(reflect.TypeOf((*StorageBucketKeyArrayInput)(nil)).Elem(), StorageBucketKeyArray{})
pulumi.RegisterInputType(reflect.TypeOf((*StorageBucketKeyMapInput)(nil)).Elem(), StorageBucketKeyMap{})
pulumi.RegisterOutputType(StorageBucketKeyOutput{})
pulumi.RegisterOutputType(StorageBucketKeyArrayOutput{})
pulumi.RegisterOutputType(StorageBucketKeyMapOutput{})
}

329
sdk/go/incus/storagePool.go generated Normal file
View File

@@ -0,0 +1,329 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type StoragePool struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [storage pool config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary from driver to driver.
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Description of the storage pool.
Description pulumi.StringOutput `pulumi:"description"`
// **Required** - Storage Pool driver. Must be one of `dir`, `zfs`, `lvm`, `btrfs`, `ceph`, `cephfs`, or `cephobject`.
Driver pulumi.StringOutput `pulumi:"driver"`
// **Required** - Name of the storage pool.
Name pulumi.StringOutput `pulumi:"name"`
// *Optional* - Name of the project where the storage pool will be stored.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrOutput `pulumi:"target"`
}
// NewStoragePool registers a new resource with the given unique name, arguments, and options.
func NewStoragePool(ctx *pulumi.Context,
name string, args *StoragePoolArgs, opts ...pulumi.ResourceOption) (*StoragePool, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Driver == nil {
return nil, errors.New("invalid value for required argument 'Driver'")
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource StoragePool
err := ctx.RegisterResource("incus:index/storagePool:StoragePool", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetStoragePool gets an existing StoragePool resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetStoragePool(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *StoragePoolState, opts ...pulumi.ResourceOption) (*StoragePool, error) {
var resource StoragePool
err := ctx.ReadResource("incus:index/storagePool:StoragePool", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering StoragePool resources.
type storagePoolState struct {
// *Optional* - Map of key/value pairs of
// [storage pool config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary from driver to driver.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the storage pool.
Description *string `pulumi:"description"`
// **Required** - Storage Pool driver. Must be one of `dir`, `zfs`, `lvm`, `btrfs`, `ceph`, `cephfs`, or `cephobject`.
Driver *string `pulumi:"driver"`
// **Required** - Name of the storage pool.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the storage pool will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
}
type StoragePoolState struct {
// *Optional* - Map of key/value pairs of
// [storage pool config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary from driver to driver.
Config pulumi.StringMapInput
// *Optional* - Description of the storage pool.
Description pulumi.StringPtrInput
// **Required** - Storage Pool driver. Must be one of `dir`, `zfs`, `lvm`, `btrfs`, `ceph`, `cephfs`, or `cephobject`.
Driver pulumi.StringPtrInput
// **Required** - Name of the storage pool.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the storage pool will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
}
func (StoragePoolState) ElementType() reflect.Type {
return reflect.TypeOf((*storagePoolState)(nil)).Elem()
}
type storagePoolArgs struct {
// *Optional* - Map of key/value pairs of
// [storage pool config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary from driver to driver.
Config map[string]string `pulumi:"config"`
// *Optional* - Description of the storage pool.
Description *string `pulumi:"description"`
// **Required** - Storage Pool driver. Must be one of `dir`, `zfs`, `lvm`, `btrfs`, `ceph`, `cephfs`, or `cephobject`.
Driver string `pulumi:"driver"`
// **Required** - Name of the storage pool.
Name *string `pulumi:"name"`
// *Optional* - Name of the project where the storage pool will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
}
// The set of arguments for constructing a StoragePool resource.
type StoragePoolArgs struct {
// *Optional* - Map of key/value pairs of
// [storage pool config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary from driver to driver.
Config pulumi.StringMapInput
// *Optional* - Description of the storage pool.
Description pulumi.StringPtrInput
// **Required** - Storage Pool driver. Must be one of `dir`, `zfs`, `lvm`, `btrfs`, `ceph`, `cephfs`, or `cephobject`.
Driver pulumi.StringInput
// **Required** - Name of the storage pool.
Name pulumi.StringPtrInput
// *Optional* - Name of the project where the storage pool will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
}
func (StoragePoolArgs) ElementType() reflect.Type {
return reflect.TypeOf((*storagePoolArgs)(nil)).Elem()
}
type StoragePoolInput interface {
pulumi.Input
ToStoragePoolOutput() StoragePoolOutput
ToStoragePoolOutputWithContext(ctx context.Context) StoragePoolOutput
}
func (*StoragePool) ElementType() reflect.Type {
return reflect.TypeOf((**StoragePool)(nil)).Elem()
}
func (i *StoragePool) ToStoragePoolOutput() StoragePoolOutput {
return i.ToStoragePoolOutputWithContext(context.Background())
}
func (i *StoragePool) ToStoragePoolOutputWithContext(ctx context.Context) StoragePoolOutput {
return pulumi.ToOutputWithContext(ctx, i).(StoragePoolOutput)
}
// StoragePoolArrayInput is an input type that accepts StoragePoolArray and StoragePoolArrayOutput values.
// You can construct a concrete instance of `StoragePoolArrayInput` via:
//
// StoragePoolArray{ StoragePoolArgs{...} }
type StoragePoolArrayInput interface {
pulumi.Input
ToStoragePoolArrayOutput() StoragePoolArrayOutput
ToStoragePoolArrayOutputWithContext(context.Context) StoragePoolArrayOutput
}
type StoragePoolArray []StoragePoolInput
func (StoragePoolArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StoragePool)(nil)).Elem()
}
func (i StoragePoolArray) ToStoragePoolArrayOutput() StoragePoolArrayOutput {
return i.ToStoragePoolArrayOutputWithContext(context.Background())
}
func (i StoragePoolArray) ToStoragePoolArrayOutputWithContext(ctx context.Context) StoragePoolArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(StoragePoolArrayOutput)
}
// StoragePoolMapInput is an input type that accepts StoragePoolMap and StoragePoolMapOutput values.
// You can construct a concrete instance of `StoragePoolMapInput` via:
//
// StoragePoolMap{ "key": StoragePoolArgs{...} }
type StoragePoolMapInput interface {
pulumi.Input
ToStoragePoolMapOutput() StoragePoolMapOutput
ToStoragePoolMapOutputWithContext(context.Context) StoragePoolMapOutput
}
type StoragePoolMap map[string]StoragePoolInput
func (StoragePoolMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StoragePool)(nil)).Elem()
}
func (i StoragePoolMap) ToStoragePoolMapOutput() StoragePoolMapOutput {
return i.ToStoragePoolMapOutputWithContext(context.Background())
}
func (i StoragePoolMap) ToStoragePoolMapOutputWithContext(ctx context.Context) StoragePoolMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(StoragePoolMapOutput)
}
type StoragePoolOutput struct{ *pulumi.OutputState }
func (StoragePoolOutput) ElementType() reflect.Type {
return reflect.TypeOf((**StoragePool)(nil)).Elem()
}
func (o StoragePoolOutput) ToStoragePoolOutput() StoragePoolOutput {
return o
}
func (o StoragePoolOutput) ToStoragePoolOutputWithContext(ctx context.Context) StoragePoolOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [storage pool config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary from driver to driver.
func (o StoragePoolOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *StoragePool) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Description of the storage pool.
func (o StoragePoolOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *StoragePool) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// **Required** - Storage Pool driver. Must be one of `dir`, `zfs`, `lvm`, `btrfs`, `ceph`, `cephfs`, or `cephobject`.
func (o StoragePoolOutput) Driver() pulumi.StringOutput {
return o.ApplyT(func(v *StoragePool) pulumi.StringOutput { return v.Driver }).(pulumi.StringOutput)
}
// **Required** - Name of the storage pool.
func (o StoragePoolOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *StoragePool) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the storage pool will be stored.
func (o StoragePoolOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *StoragePool) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o StoragePoolOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *StoragePool) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Specify a target node in a cluster.
func (o StoragePoolOutput) Target() pulumi.StringPtrOutput {
return o.ApplyT(func(v *StoragePool) pulumi.StringPtrOutput { return v.Target }).(pulumi.StringPtrOutput)
}
type StoragePoolArrayOutput struct{ *pulumi.OutputState }
func (StoragePoolArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StoragePool)(nil)).Elem()
}
func (o StoragePoolArrayOutput) ToStoragePoolArrayOutput() StoragePoolArrayOutput {
return o
}
func (o StoragePoolArrayOutput) ToStoragePoolArrayOutputWithContext(ctx context.Context) StoragePoolArrayOutput {
return o
}
func (o StoragePoolArrayOutput) Index(i pulumi.IntInput) StoragePoolOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StoragePool {
return vs[0].([]*StoragePool)[vs[1].(int)]
}).(StoragePoolOutput)
}
type StoragePoolMapOutput struct{ *pulumi.OutputState }
func (StoragePoolMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StoragePool)(nil)).Elem()
}
func (o StoragePoolMapOutput) ToStoragePoolMapOutput() StoragePoolMapOutput {
return o
}
func (o StoragePoolMapOutput) ToStoragePoolMapOutputWithContext(ctx context.Context) StoragePoolMapOutput {
return o
}
func (o StoragePoolMapOutput) MapIndex(k pulumi.StringInput) StoragePoolOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StoragePool {
return vs[0].(map[string]*StoragePool)[vs[1].(string)]
}).(StoragePoolOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*StoragePoolInput)(nil)).Elem(), &StoragePool{})
pulumi.RegisterInputType(reflect.TypeOf((*StoragePoolArrayInput)(nil)).Elem(), StoragePoolArray{})
pulumi.RegisterInputType(reflect.TypeOf((*StoragePoolMapInput)(nil)).Elem(), StoragePoolMap{})
pulumi.RegisterOutputType(StoragePoolOutput{})
pulumi.RegisterOutputType(StoragePoolArrayOutput{})
pulumi.RegisterOutputType(StoragePoolMapOutput{})
}

406
sdk/go/incus/storageVolume.go generated Normal file
View File

@@ -0,0 +1,406 @@
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package incus
import (
"context"
"reflect"
"errors"
"git.kalinow.ski/nimbus/pulumi-incus/sdk/go/incus/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type StorageVolume struct {
pulumi.CustomResourceState
// *Optional* - Map of key/value pairs of
// [volume config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary depending on the Storage Pool used.
Config pulumi.StringMapOutput `pulumi:"config"`
// *Optional* - Volume content type (`filesystem` or `block`)
ContentType pulumi.StringOutput `pulumi:"contentType"`
// *Optional* - Description of the volume.
Description pulumi.StringOutput `pulumi:"description"`
// Name of the node where volume was created. It could be useful with Incus in cluster mode.
Location pulumi.StringOutput `pulumi:"location"`
// **Required** - Name of the storage volume.
Name pulumi.StringOutput `pulumi:"name"`
// **Required** - Name of storage pool to host the volume.
Pool pulumi.StringOutput `pulumi:"pool"`
// *Optional* - Name of the project where the volume will be stored.
Project pulumi.StringOutput `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrOutput `pulumi:"remote"`
// *Optional* - Path to a backup file from which the volume will be created.
SourceFile pulumi.StringPtrOutput `pulumi:"sourceFile"`
// *Optional* - The source volume from which the volume will be created. See reference below.
SourceVolume StorageVolumeSourceVolumePtrOutput `pulumi:"sourceVolume"`
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringOutput `pulumi:"target"`
// *Optional* - The "type" of volume. The default value is `custom`,
// which is the type to use for storage volumes attached to instances.
Type pulumi.StringOutput `pulumi:"type"`
}
// NewStorageVolume registers a new resource with the given unique name, arguments, and options.
func NewStorageVolume(ctx *pulumi.Context,
name string, args *StorageVolumeArgs, opts ...pulumi.ResourceOption) (*StorageVolume, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Pool == nil {
return nil, errors.New("invalid value for required argument 'Pool'")
}
if args.Project == nil {
args.Project = pulumi.StringPtr("default")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource StorageVolume
err := ctx.RegisterResource("incus:index/storageVolume:StorageVolume", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetStorageVolume gets an existing StorageVolume resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetStorageVolume(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *StorageVolumeState, opts ...pulumi.ResourceOption) (*StorageVolume, error) {
var resource StorageVolume
err := ctx.ReadResource("incus:index/storageVolume:StorageVolume", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering StorageVolume resources.
type storageVolumeState struct {
// *Optional* - Map of key/value pairs of
// [volume config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary depending on the Storage Pool used.
Config map[string]string `pulumi:"config"`
// *Optional* - Volume content type (`filesystem` or `block`)
ContentType *string `pulumi:"contentType"`
// *Optional* - Description of the volume.
Description *string `pulumi:"description"`
// Name of the node where volume was created. It could be useful with Incus in cluster mode.
Location *string `pulumi:"location"`
// **Required** - Name of the storage volume.
Name *string `pulumi:"name"`
// **Required** - Name of storage pool to host the volume.
Pool *string `pulumi:"pool"`
// *Optional* - Name of the project where the volume will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Path to a backup file from which the volume will be created.
SourceFile *string `pulumi:"sourceFile"`
// *Optional* - The source volume from which the volume will be created. See reference below.
SourceVolume *StorageVolumeSourceVolume `pulumi:"sourceVolume"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
// *Optional* - The "type" of volume. The default value is `custom`,
// which is the type to use for storage volumes attached to instances.
Type *string `pulumi:"type"`
}
type StorageVolumeState struct {
// *Optional* - Map of key/value pairs of
// [volume config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary depending on the Storage Pool used.
Config pulumi.StringMapInput
// *Optional* - Volume content type (`filesystem` or `block`)
ContentType pulumi.StringPtrInput
// *Optional* - Description of the volume.
Description pulumi.StringPtrInput
// Name of the node where volume was created. It could be useful with Incus in cluster mode.
Location pulumi.StringPtrInput
// **Required** - Name of the storage volume.
Name pulumi.StringPtrInput
// **Required** - Name of storage pool to host the volume.
Pool pulumi.StringPtrInput
// *Optional* - Name of the project where the volume will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Path to a backup file from which the volume will be created.
SourceFile pulumi.StringPtrInput
// *Optional* - The source volume from which the volume will be created. See reference below.
SourceVolume StorageVolumeSourceVolumePtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
// *Optional* - The "type" of volume. The default value is `custom`,
// which is the type to use for storage volumes attached to instances.
Type pulumi.StringPtrInput
}
func (StorageVolumeState) ElementType() reflect.Type {
return reflect.TypeOf((*storageVolumeState)(nil)).Elem()
}
type storageVolumeArgs struct {
// *Optional* - Map of key/value pairs of
// [volume config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary depending on the Storage Pool used.
Config map[string]string `pulumi:"config"`
// *Optional* - Volume content type (`filesystem` or `block`)
ContentType *string `pulumi:"contentType"`
// *Optional* - Description of the volume.
Description *string `pulumi:"description"`
// **Required** - Name of the storage volume.
Name *string `pulumi:"name"`
// **Required** - Name of storage pool to host the volume.
Pool string `pulumi:"pool"`
// *Optional* - Name of the project where the volume will be stored.
Project *string `pulumi:"project"`
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote *string `pulumi:"remote"`
// *Optional* - Path to a backup file from which the volume will be created.
SourceFile *string `pulumi:"sourceFile"`
// *Optional* - The source volume from which the volume will be created. See reference below.
SourceVolume *StorageVolumeSourceVolume `pulumi:"sourceVolume"`
// *Optional* - Specify a target node in a cluster.
Target *string `pulumi:"target"`
// *Optional* - The "type" of volume. The default value is `custom`,
// which is the type to use for storage volumes attached to instances.
Type *string `pulumi:"type"`
}
// The set of arguments for constructing a StorageVolume resource.
type StorageVolumeArgs struct {
// *Optional* - Map of key/value pairs of
// [volume config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary depending on the Storage Pool used.
Config pulumi.StringMapInput
// *Optional* - Volume content type (`filesystem` or `block`)
ContentType pulumi.StringPtrInput
// *Optional* - Description of the volume.
Description pulumi.StringPtrInput
// **Required** - Name of the storage volume.
Name pulumi.StringPtrInput
// **Required** - Name of storage pool to host the volume.
Pool pulumi.StringInput
// *Optional* - Name of the project where the volume will be stored.
Project pulumi.StringPtrInput
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
Remote pulumi.StringPtrInput
// *Optional* - Path to a backup file from which the volume will be created.
SourceFile pulumi.StringPtrInput
// *Optional* - The source volume from which the volume will be created. See reference below.
SourceVolume StorageVolumeSourceVolumePtrInput
// *Optional* - Specify a target node in a cluster.
Target pulumi.StringPtrInput
// *Optional* - The "type" of volume. The default value is `custom`,
// which is the type to use for storage volumes attached to instances.
Type pulumi.StringPtrInput
}
func (StorageVolumeArgs) ElementType() reflect.Type {
return reflect.TypeOf((*storageVolumeArgs)(nil)).Elem()
}
type StorageVolumeInput interface {
pulumi.Input
ToStorageVolumeOutput() StorageVolumeOutput
ToStorageVolumeOutputWithContext(ctx context.Context) StorageVolumeOutput
}
func (*StorageVolume) ElementType() reflect.Type {
return reflect.TypeOf((**StorageVolume)(nil)).Elem()
}
func (i *StorageVolume) ToStorageVolumeOutput() StorageVolumeOutput {
return i.ToStorageVolumeOutputWithContext(context.Background())
}
func (i *StorageVolume) ToStorageVolumeOutputWithContext(ctx context.Context) StorageVolumeOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageVolumeOutput)
}
// StorageVolumeArrayInput is an input type that accepts StorageVolumeArray and StorageVolumeArrayOutput values.
// You can construct a concrete instance of `StorageVolumeArrayInput` via:
//
// StorageVolumeArray{ StorageVolumeArgs{...} }
type StorageVolumeArrayInput interface {
pulumi.Input
ToStorageVolumeArrayOutput() StorageVolumeArrayOutput
ToStorageVolumeArrayOutputWithContext(context.Context) StorageVolumeArrayOutput
}
type StorageVolumeArray []StorageVolumeInput
func (StorageVolumeArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StorageVolume)(nil)).Elem()
}
func (i StorageVolumeArray) ToStorageVolumeArrayOutput() StorageVolumeArrayOutput {
return i.ToStorageVolumeArrayOutputWithContext(context.Background())
}
func (i StorageVolumeArray) ToStorageVolumeArrayOutputWithContext(ctx context.Context) StorageVolumeArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageVolumeArrayOutput)
}
// StorageVolumeMapInput is an input type that accepts StorageVolumeMap and StorageVolumeMapOutput values.
// You can construct a concrete instance of `StorageVolumeMapInput` via:
//
// StorageVolumeMap{ "key": StorageVolumeArgs{...} }
type StorageVolumeMapInput interface {
pulumi.Input
ToStorageVolumeMapOutput() StorageVolumeMapOutput
ToStorageVolumeMapOutputWithContext(context.Context) StorageVolumeMapOutput
}
type StorageVolumeMap map[string]StorageVolumeInput
func (StorageVolumeMap) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StorageVolume)(nil)).Elem()
}
func (i StorageVolumeMap) ToStorageVolumeMapOutput() StorageVolumeMapOutput {
return i.ToStorageVolumeMapOutputWithContext(context.Background())
}
func (i StorageVolumeMap) ToStorageVolumeMapOutputWithContext(ctx context.Context) StorageVolumeMapOutput {
return pulumi.ToOutputWithContext(ctx, i).(StorageVolumeMapOutput)
}
type StorageVolumeOutput struct{ *pulumi.OutputState }
func (StorageVolumeOutput) ElementType() reflect.Type {
return reflect.TypeOf((**StorageVolume)(nil)).Elem()
}
func (o StorageVolumeOutput) ToStorageVolumeOutput() StorageVolumeOutput {
return o
}
func (o StorageVolumeOutput) ToStorageVolumeOutputWithContext(ctx context.Context) StorageVolumeOutput {
return o
}
// *Optional* - Map of key/value pairs of
// [volume config settings](https://linuxcontainers.org/incus/docs/main/reference/storage_drivers/).
// Config settings vary depending on the Storage Pool used.
func (o StorageVolumeOutput) Config() pulumi.StringMapOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringMapOutput { return v.Config }).(pulumi.StringMapOutput)
}
// *Optional* - Volume content type (`filesystem` or `block`)
func (o StorageVolumeOutput) ContentType() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.ContentType }).(pulumi.StringOutput)
}
// *Optional* - Description of the volume.
func (o StorageVolumeOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
}
// Name of the node where volume was created. It could be useful with Incus in cluster mode.
func (o StorageVolumeOutput) Location() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput)
}
// **Required** - Name of the storage volume.
func (o StorageVolumeOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
// **Required** - Name of storage pool to host the volume.
func (o StorageVolumeOutput) Pool() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.Pool }).(pulumi.StringOutput)
}
// *Optional* - Name of the project where the volume will be stored.
func (o StorageVolumeOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
}
// *Optional* - The remote in which the resource will be created. If
// not provided, the provider's default remote will be used.
func (o StorageVolumeOutput) Remote() pulumi.StringPtrOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringPtrOutput { return v.Remote }).(pulumi.StringPtrOutput)
}
// *Optional* - Path to a backup file from which the volume will be created.
func (o StorageVolumeOutput) SourceFile() pulumi.StringPtrOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringPtrOutput { return v.SourceFile }).(pulumi.StringPtrOutput)
}
// *Optional* - The source volume from which the volume will be created. See reference below.
func (o StorageVolumeOutput) SourceVolume() StorageVolumeSourceVolumePtrOutput {
return o.ApplyT(func(v *StorageVolume) StorageVolumeSourceVolumePtrOutput { return v.SourceVolume }).(StorageVolumeSourceVolumePtrOutput)
}
// *Optional* - Specify a target node in a cluster.
func (o StorageVolumeOutput) Target() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.Target }).(pulumi.StringOutput)
}
// *Optional* - The "type" of volume. The default value is `custom`,
// which is the type to use for storage volumes attached to instances.
func (o StorageVolumeOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v *StorageVolume) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
}
type StorageVolumeArrayOutput struct{ *pulumi.OutputState }
func (StorageVolumeArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]*StorageVolume)(nil)).Elem()
}
func (o StorageVolumeArrayOutput) ToStorageVolumeArrayOutput() StorageVolumeArrayOutput {
return o
}
func (o StorageVolumeArrayOutput) ToStorageVolumeArrayOutputWithContext(ctx context.Context) StorageVolumeArrayOutput {
return o
}
func (o StorageVolumeArrayOutput) Index(i pulumi.IntInput) StorageVolumeOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StorageVolume {
return vs[0].([]*StorageVolume)[vs[1].(int)]
}).(StorageVolumeOutput)
}
type StorageVolumeMapOutput struct{ *pulumi.OutputState }
func (StorageVolumeMapOutput) ElementType() reflect.Type {
return reflect.TypeOf((*map[string]*StorageVolume)(nil)).Elem()
}
func (o StorageVolumeMapOutput) ToStorageVolumeMapOutput() StorageVolumeMapOutput {
return o
}
func (o StorageVolumeMapOutput) ToStorageVolumeMapOutputWithContext(ctx context.Context) StorageVolumeMapOutput {
return o
}
func (o StorageVolumeMapOutput) MapIndex(k pulumi.StringInput) StorageVolumeOutput {
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StorageVolume {
return vs[0].(map[string]*StorageVolume)[vs[1].(string)]
}).(StorageVolumeOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*StorageVolumeInput)(nil)).Elem(), &StorageVolume{})
pulumi.RegisterInputType(reflect.TypeOf((*StorageVolumeArrayInput)(nil)).Elem(), StorageVolumeArray{})
pulumi.RegisterInputType(reflect.TypeOf((*StorageVolumeMapInput)(nil)).Elem(), StorageVolumeMap{})
pulumi.RegisterOutputType(StorageVolumeOutput{})
pulumi.RegisterOutputType(StorageVolumeArrayOutput{})
pulumi.RegisterOutputType(StorageVolumeMapOutput{})
}