From 79f1bfa2d592482bde49bf5fb7e6a4bdda84221f Mon Sep 17 00:00:00 2001 From: Alexander Dahmen Date: Wed, 19 Nov 2025 13:58:45 +0100 Subject: [PATCH 1/3] Pulumi enable upgrade pipeline This CI can be run when there is a new terraform provider version present. Afterwards a PR is created which updates the bridge and the provider. Signed-off-by: Alexander Dahmen --- .github/actions/pulumitools/action.yaml | 36 +++++++++++++++ .github/workflows/ci.yaml | 20 +-------- .github/workflows/upgrade-provider.yaml | 59 ++++++++++++++++++++----- 3 files changed, 85 insertions(+), 30 deletions(-) create mode 100644 .github/actions/pulumitools/action.yaml diff --git a/.github/actions/pulumitools/action.yaml b/.github/actions/pulumitools/action.yaml new file mode 100644 index 00000000..f4f675d1 --- /dev/null +++ b/.github/actions/pulumitools/action.yaml @@ -0,0 +1,36 @@ +name: Install Pulumi Tools +description: "Install Pulumi Tools for pipeline" +inputs: + dotnet-version: + description: "Dotnet version to install" + required: false + default: 9.0.x + node-version: + description: "node version to install" + required: false + default: 20.x + python-version: + description: "python version to install" + required: false + default: "3.9" +runs: + using: "composite" + steps: + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # tag=v2.1.0 + with: + repo: pulumi/pulumictl + - name: Install pulumi + uses: pulumi/actions@v6 + - name: Setup Node + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # tag=v6.0.0 + with: + node-version: ${{ inputs.node-version }} + - name: Setup DotNet + uses: actions/setup-dotnet@d4c94342e560b34958eacfc5d055d21461ed1c5d # tag=v5.0.0 + with: + dotnet-version: ${{ inputs.dotnet-version }} + - name: Setup Python + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # tag=v6.0.0 + with: + python-version: ${{ inputs.python-version }} \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 30b754bc..7329286c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -32,28 +32,12 @@ jobs: # TODO: remove end - name: Unshallow clone for tags run: git fetch --prune --unshallow --tags - - name: Install pulumictl - uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # tag=v2.1.0 - with: - repo: pulumi/pulumictl - - name: Install pulumi - uses: pulumi/actions@v6 - name: Install Go Tools uses: ./.github/actions/gotools with: go-version: ${{ env.GO_VERSION }} - - name: Setup Node - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # tag=v6.0.0 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Setup DotNet - uses: actions/setup-dotnet@d4c94342e560b34958eacfc5d055d21461ed1c5d # tag=v5.0.0 - with: - dotnet-version: ${{ env.DOTNET_VERSION }} - - name: Setup Python - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # tag=v6.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} + - name: Install Pulumi Tools + uses: ./.github/actions/pulumitools - name: Build sdks run: make generate_sdks - name: Lint diff --git a/.github/workflows/upgrade-provider.yaml b/.github/workflows/upgrade-provider.yaml index 4456f413..4ca713e3 100644 --- a/.github/workflows/upgrade-provider.yaml +++ b/.github/workflows/upgrade-provider.yaml @@ -1,15 +1,3 @@ -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -jobs: - upgrade_provider: - if: ${{ (contains(github.event.issue.title, 'Upgrade terraform-provider-')) || github.event_name == 'workflow_dispatch' }} - name: upgrade-provider - runs-on: ubuntu-latest - steps: - - name: Call upgrade provider action - uses: pulumi/pulumi-upgrade-provider-action@e247104aede3eb4641f48c8ad0ea9de9346f2457 # v0.0.18 - with: - kind: all name: Upgrade provider permissions: @@ -21,3 +9,50 @@ on: types: - opened workflow_dispatch: {} + +env: + GH_TOKEN: ${{ secrets.PR_TOKEN }} + GO_VERSION: "1.24" + +jobs: + upgrade_provider: + if: ${{ (contains(github.event.issue.title, 'Upgrade terraform-provider-')) || github.event_name == 'workflow_dispatch' }} + name: upgrade-provider + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + # TODO: remove when this repo is made public + - name: Configure Git for Private Modules + run: | + git config --global url."https://oauth2:${{ secrets.PR_TOKEN }}@github.com".insteadOf "https://github.com" + # Sets GOPRIVATE and GONOSUMDB in order to use the git authetnication for go mod. + echo "GOPRIVATE=github.com/${{ github.repository }}/*,github.com/stackitcloud/*" >> $GITHUB_ENV + echo "GONOSUMDB=github.com/${{ github.repository }}/*,github.com/stackitcloud/*" >> $GITHUB_ENV + # TODO: remove end + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go Tools + uses: ./.github/actions/gotools + with: + go-version: ${{ env.GO_VERSION }} + - name: Install Pulumi Tools + uses: ./.github/actions/pulumitools + - name: Get latest tag from terraform-provider-stackit and update the pulumi provider and bridge + run: | + git config user.name "Pulumi Generator Bot" + git config user.email "noreply@stackit.de" + LATEST_TAG=$(git ls-remote --tags https://github.com/stackitcloud/terraform-provider-stackit | grep -oP 'refs/tags/v\d+\.\d+\.\d+$' |sed 's/refs\/tags\///' | sort -V | tail -n 1) + BRANCH_NAME="upgrade-terraform-provider-stackit-to-$LATEST_TAG" + git checkout -b "$BRANCH_NAME" + (cd provider && go get github.com/stackitcloud/terraform-provider-stackit@"$LATEST_TAG") + (cd provider/shim && go get github.com/stackitcloud/terraform-provider-stackit@"$LATEST_TAG") + make ensure + make tfgen + git add --all + git commit -m "make tfgen" + make generate_sdks + git add --all + git commit -m "make generate_sdks" + git push --set-upstream origin "$BRANCH_NAME" + gh pr create --title "Upgrade terraform-provider-stackit to $LATEST_TAG" --body "This PR was generated by the Pulumi upgrade CI pipeline" --base main --head "$BRANCH_NAME" From f348643294de8ebee4bdc8cb4e6500cb99968480 Mon Sep 17 00:00:00 2001 From: Pulumi Generator Bot Date: Wed, 26 Nov 2025 14:06:08 +0000 Subject: [PATCH 2/3] make tfgen --- go.work.sum | 362 ++++++- .../bridge-metadata.json | 36 + .../cmd/pulumi-resource-stackit/schema.json | 934 ++++++++++++++++-- provider/go.mod | 17 +- provider/go.sum | 34 +- provider/shim/go.mod | 16 +- provider/shim/go.sum | 75 +- 7 files changed, 1339 insertions(+), 135 deletions(-) diff --git a/go.work.sum b/go.work.sum index 9d72305c..52b453eb 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,274 +1,570 @@ +cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +cloud.google.com/go/accessapproval v1.7.5 h1:uzmAMSgYcnlHa9X9YSQZ4Q1wlfl4NNkZyQgho1Z6p04= cloud.google.com/go/accessapproval v1.7.5/go.mod h1:g88i1ok5dvQ9XJsxpUInWWvUBrIZhyPDPbk4T01OoJ0= +cloud.google.com/go/accesscontextmanager v1.8.5 h1:2GLNaNu9KRJhJBFTIVRoPwk6xE5mUDgD47abBq4Zp/I= cloud.google.com/go/accesscontextmanager v1.8.5/go.mod h1:TInEhcZ7V9jptGNqN3EzZ5XMhT6ijWxTGjzyETwmL0Q= +cloud.google.com/go/aiplatform v1.62.2 h1:9lhLkJ6euJVCzB1A+W9qaig5Sa5I5SvWPJ1Q4P441P0= cloud.google.com/go/aiplatform v1.62.2/go.mod h1:ViLUVST6/gJAR80fyZmFSOn77rPHDkXqZDMDr4Qb8OM= +cloud.google.com/go/analytics v0.23.0 h1:Q+y94XH84jM8SK8O7qiY/PJRexb6n7dRbQ6PiUa4YGM= cloud.google.com/go/analytics v0.23.0/go.mod h1:YPd7Bvik3WS95KBok2gPXDqQPHy08TsCQG6CdUCb+u0= +cloud.google.com/go/apigateway v1.6.5 h1:sPXnpk+6TneKIrjCjcpX5YGsAKy3PTdpIchoj8/74OE= cloud.google.com/go/apigateway v1.6.5/go.mod h1:6wCwvYRckRQogyDDltpANi3zsCDl6kWi0b4Je+w2UiI= +cloud.google.com/go/apigeeconnect v1.6.5 h1:CrfIKv9Go3fh/QfQgisU3MeP90Ww7l/sVGmr3TpECo8= cloud.google.com/go/apigeeconnect v1.6.5/go.mod h1:MEKm3AiT7s11PqTfKE3KZluZA9O91FNysvd3E6SJ6Ow= +cloud.google.com/go/apigeeregistry v0.8.3 h1:C+QU2K+DzDjk4g074ouwHQGkoff1h5OMQp6sblCVreQ= cloud.google.com/go/apigeeregistry v0.8.3/go.mod h1:aInOWnqF4yMQx8kTjDqHNXjZGh/mxeNlAf52YqtASUs= +cloud.google.com/go/apikeys v0.6.0 h1:B9CdHFZTFjVti89tmyXXrO+7vSNo2jvZuHG8zD5trdQ= +cloud.google.com/go/appengine v1.8.5 h1:l2SviT44zWQiOv8bPoMBzW0vOcMO22iO0s+nVtVhdts= cloud.google.com/go/appengine v1.8.5/go.mod h1:uHBgNoGLTS5di7BvU25NFDuKa82v0qQLjyMJLuPQrVo= +cloud.google.com/go/area120 v0.8.5 h1:vTs08KPLN/iMzTbxpu5ciL06KcsrVPMjz4IwcQyZ4uY= cloud.google.com/go/area120 v0.8.5/go.mod h1:BcoFCbDLZjsfe4EkCnEq1LKvHSK0Ew/zk5UFu6GMyA0= +cloud.google.com/go/artifactregistry v1.14.7 h1:W9sVlyb1VRcUf83w7aM3yMsnp4HS4PoyGqYQNG0O5lI= cloud.google.com/go/artifactregistry v1.14.7/go.mod h1:0AUKhzWQzfmeTvT4SjfI4zjot72EMfrkvL9g9aRjnnM= +cloud.google.com/go/asset v1.18.0 h1:lA0oLEsXEzKBV9LprEdeX3e9HHt8jFW2QafIhqG15JI= cloud.google.com/go/asset v1.18.0/go.mod h1:JnuX7WLUc55AFKJOqF0n7gBPZostxZQCHPEu2WQ1980= +cloud.google.com/go/assuredworkloads v1.11.5 h1:gCrN3IyvqY3cP0wh2h43d99CgH3G+WYs9CeuFVKChR8= cloud.google.com/go/assuredworkloads v1.11.5/go.mod h1:FKJ3g3ZvkL2D7qtqIGnDufFkHxwIpNM9vtmhvt+6wqk= +cloud.google.com/go/automl v1.13.5 h1:ijiJy9sYWh75WrqImXsfWc1e3HR3iO+ef9fvW03Ig/4= cloud.google.com/go/automl v1.13.5/go.mod h1:MDw3vLem3yh+SvmSgeYUmUKqyls6NzSumDm9OJ3xJ1Y= +cloud.google.com/go/baremetalsolution v1.2.4 h1:LFydisRmS7hQk9P/YhekwuZGqb45TW4QavcrMToWo5A= cloud.google.com/go/baremetalsolution v1.2.4/go.mod h1:BHCmxgpevw9IEryE99HbYEfxXkAEA3hkMJbYYsHtIuY= +cloud.google.com/go/batch v1.8.2 h1:wYtUBI8NND3FNUknEEcJiag7gsDJWlQ2EG89PK+GDCA= cloud.google.com/go/batch v1.8.2/go.mod h1:QA8HAbPZ1tTcTFZmRgk7v13i0tNQ9x6s1wsZl6jZQh0= +cloud.google.com/go/beyondcorp v1.0.4 h1:qs0J0O9Ol2h1yA0AU+r7l3hOCPzs2MjE1d6d/kaHIKo= cloud.google.com/go/beyondcorp v1.0.4/go.mod h1:Gx8/Rk2MxrvWfn4WIhHIG1NV7IBfg14pTKv1+EArVcc= +cloud.google.com/go/bigquery v1.59.1 h1:CpT+/njKuKT3CEmswm6IbhNu9u35zt5dO4yPDLW+nG4= cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= +cloud.google.com/go/billing v1.18.3 h1:HURzwPXOxvIUKiE19f41U4ObEt6no1n8+Nyq7H9Z2EE= cloud.google.com/go/billing v1.18.3/go.mod h1:RuLq6KCY/YQfB2X/hCv3xpsrrBCdxnMS0pJcL7qqx5w= +cloud.google.com/go/binaryauthorization v1.8.1 h1:1jcyh2uIUwSZkJ/JmL8kd5SUkL/Krbv8zmYLEbAz6kY= cloud.google.com/go/binaryauthorization v1.8.1/go.mod h1:1HVRyBerREA/nhI7yLang4Zn7vfNVA3okoAR9qYQJAQ= +cloud.google.com/go/certificatemanager v1.7.5 h1:UMBr/twXvH3jcT5J5/YjRxf2tvwTYIfrpemTebe0txc= cloud.google.com/go/certificatemanager v1.7.5/go.mod h1:uX+v7kWqy0Y3NG/ZhNvffh0kuqkKZIXdvlZRO7z0VtM= +cloud.google.com/go/channel v1.17.5 h1:/omiBnyFjm4S1ETHoOmJbL7LH7Ljcei4rYG6Sj3hc80= cloud.google.com/go/channel v1.17.5/go.mod h1:FlpaOSINDAXgEext0KMaBq/vwpLMkkPAw9b2mApQeHc= +cloud.google.com/go/cloudbuild v1.15.1 h1:ZB6oOmJo+MTov9n629fiCrO9YZPOg25FZvQ7gIHu5ng= cloud.google.com/go/cloudbuild v1.15.1/go.mod h1:gIofXZSu+XD2Uy+qkOrGKEx45zd7s28u/k8f99qKals= +cloud.google.com/go/clouddms v1.7.4 h1:Sr0Zo5EAcPQiCBgHWICg3VGkcdS/LLP1d9SR7qQBM/s= cloud.google.com/go/clouddms v1.7.4/go.mod h1:RdrVqoFG9RWI5AvZ81SxJ/xvxPdtcRhFotwdE79DieY= +cloud.google.com/go/cloudtasks v1.12.6 h1:EUt1hIZ9bLv8Iz9yWaCrqgMnIU+Tdh0yXM1MMVGhjfE= cloud.google.com/go/cloudtasks v1.12.6/go.mod h1:b7c7fe4+TJsFZfDyzO51F7cjq7HLUlRi/KZQLQjDsaY= cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU= cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/contactcenterinsights v1.13.0 h1:6Vs/YnDG5STGjlWMEjN/xtmft7MrOTOnOZYUZtGTx0w= cloud.google.com/go/contactcenterinsights v1.13.0/go.mod h1:ieq5d5EtHsu8vhe2y3amtZ+BE+AQwX5qAy7cpo0POsI= +cloud.google.com/go/container v1.33.0 h1:GS4W16lmqkGP78w7XQ9VEkqayo8CSIXrZkcqbPINvCU= cloud.google.com/go/container v1.33.0/go.mod h1:u5QBBv/V9dVNK/NtTppCf6T4P8gzp+dQSwx2DqPnAKc= +cloud.google.com/go/containeranalysis v0.11.4 h1:doJ0M1ljS4hS0D2UbHywlHGwB7sQLNrt9vFk9Zyi7vY= cloud.google.com/go/containeranalysis v0.11.4/go.mod h1:cVZT7rXYBS9NG1rhQbWL9pWbXCKHWJPYraE8/FTSYPE= +cloud.google.com/go/datacatalog v1.19.3 h1:A0vKYCQdxQuV4Pi0LL9p39Vwvg4jH5yYveMv50gU5Tw= cloud.google.com/go/datacatalog v1.19.3/go.mod h1:ra8V3UAsciBpJKQ+z9Whkxzxv7jmQg1hfODr3N3YPJ4= +cloud.google.com/go/dataflow v0.9.5 h1:RYHtcPhmE664+F0Je46p+NvFbG8z//KCXp+uEqB4jZU= cloud.google.com/go/dataflow v0.9.5/go.mod h1:udl6oi8pfUHnL0z6UN9Lf9chGqzDMVqcYTcZ1aPnCZQ= +cloud.google.com/go/dataform v0.9.2 h1:5e4eqGrd0iDTCg4Q+VlAao5j2naKAA7xRurNtwmUknU= cloud.google.com/go/dataform v0.9.2/go.mod h1:S8cQUwPNWXo7m/g3DhWHsLBoufRNn9EgFrMgne2j7cI= +cloud.google.com/go/datafusion v1.7.5 h1:HQ/BUOP8OIGJxuztpYvNvlb+/U+/Bfs9SO8tQbh61fk= cloud.google.com/go/datafusion v1.7.5/go.mod h1:bYH53Oa5UiqahfbNK9YuYKteeD4RbQSNMx7JF7peGHc= +cloud.google.com/go/datalabeling v0.8.5 h1:GpIFRdm0qIZNsxqURFJwHt0ZBJZ0nF/mUVEigR7PH/8= cloud.google.com/go/datalabeling v0.8.5/go.mod h1:IABB2lxQnkdUbMnQaOl2prCOfms20mcPxDBm36lps+s= +cloud.google.com/go/dataplex v1.14.2 h1:fxIfdU8fxzR3clhOoNI7XFppvAmndxDu1AMH+qX9WKQ= cloud.google.com/go/dataplex v1.14.2/go.mod h1:0oGOSFlEKef1cQeAHXy4GZPB/Ife0fz/PxBf+ZymA2U= +cloud.google.com/go/dataproc v1.12.0 h1:W47qHL3W4BPkAIbk4SWmIERwsWBaNnWm0P2sdx3YgGU= +cloud.google.com/go/dataproc/v2 v2.4.0 h1:/u81Fd+BvCLp+xjctI1DiWVJn6cn9/s3Akc8xPH02yk= cloud.google.com/go/dataproc/v2 v2.4.0/go.mod h1:3B1Ht2aRB8VZIteGxQS/iNSJGzt9+CA0WGnDVMEm7Z4= +cloud.google.com/go/dataqna v0.8.5 h1:9ybXs3nr9BzxSGC04SsvtuXaHY0qmJSLIpIAbZo9GqQ= cloud.google.com/go/dataqna v0.8.5/go.mod h1:vgihg1mz6n7pb5q2YJF7KlXve6tCglInd6XO0JGOlWM= +cloud.google.com/go/datastore v1.15.0 h1:0P9WcsQeTWjuD1H14JIY7XQscIPQ4Laje8ti96IC5vg= cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastream v1.10.4 h1:o1QDKMo/hk0FN7vhoUQURREuA0rgKmnYapB+1M+7Qz4= cloud.google.com/go/datastream v1.10.4/go.mod h1:7kRxPdxZxhPg3MFeCSulmAJnil8NJGGvSNdn4p1sRZo= +cloud.google.com/go/deploy v1.17.1 h1:m27Ojwj03gvpJqCbodLYiVmE9x4/LrHGGMjzc0LBfM4= cloud.google.com/go/deploy v1.17.1/go.mod h1:SXQyfsXrk0fBmgBHRzBjQbZhMfKZ3hMQBw5ym7MN/50= +cloud.google.com/go/dialogflow v1.49.0 h1:KqG0oxGE71qo0lRVyAoeBozefCvsMfcDzDjoLYSY0F4= cloud.google.com/go/dialogflow v1.49.0/go.mod h1:dhVrXKETtdPlpPhE7+2/k4Z8FRNUp6kMV3EW3oz/fe0= +cloud.google.com/go/dlp v1.12.0 h1:Hwsowo9Bf+BUqSe29NNPkUb3cLDiyhlLUFG+VApXbFI= cloud.google.com/go/dlp v1.12.0/go.mod h1:IUCT4ZMALgUqQyy2VMhvfYD/yFQFfbsgk1d7RoSLeSk= +cloud.google.com/go/documentai v1.26.0 h1:KSi6/IHRgHKwhVKfyi/1MMvUCdDypvrPiwo4Arq+9v8= cloud.google.com/go/documentai v1.26.0/go.mod h1:9YCBSv7aXXS88lpXQWcJbLB490u3WeQdGt5aGCkHGkA= +cloud.google.com/go/domains v0.9.5 h1:Mml/R6s3vQQvFPpi/9oX3O5dRirgjyJ8cksK8N19Y7g= cloud.google.com/go/domains v0.9.5/go.mod h1:dBzlxgepazdFhvG7u23XMhmMKBjrkoUNaw0A8AQB55Y= +cloud.google.com/go/edgecontainer v1.1.5 h1:tBY32km78ScpK2aOP84JoW/+wtpx5WluyPUSEE3270U= cloud.google.com/go/edgecontainer v1.1.5/go.mod h1:rgcjrba3DEDEQAidT4yuzaKWTbkTI5zAMu3yy6ZWS0M= +cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= +cloud.google.com/go/essentialcontacts v1.6.6 h1:13eHn5qBnsawxI7mIrv4jRIEmQ1xg0Ztqw5ZGqtUNfA= cloud.google.com/go/essentialcontacts v1.6.6/go.mod h1:XbqHJGaiH0v2UvtuucfOzFXN+rpL/aU5BCZLn4DYl1Q= +cloud.google.com/go/eventarc v1.13.4 h1:ORkd6/UV5FIdA8KZQDLNZYKS7BBOrj0p01DXPmT4tE4= cloud.google.com/go/eventarc v1.13.4/go.mod h1:zV5sFVoAa9orc/52Q+OuYUG9xL2IIZTbbuTHC6JSY8s= +cloud.google.com/go/filestore v1.8.1 h1:X5G4y/vrUo1B8Nsz93qSWTMAcM8LXbGUldq33OdcdCw= cloud.google.com/go/filestore v1.8.1/go.mod h1:MbN9KcaM47DRTIuLfQhJEsjaocVebNtNQhSLhKCF5GM= +cloud.google.com/go/firestore v1.15.0 h1:/k8ppuWOtNuDHt2tsRV42yI21uaGnKDEQnRFeBpbFF8= cloud.google.com/go/firestore v1.15.0/go.mod h1:GWOxFXcv8GZUtYpWHw/w6IuYNux/BtmeVTMmjrm4yhk= +cloud.google.com/go/functions v1.16.0 h1:IWVylmK5F6hJ3R5zaRW7jI5PrWhCvtBVU4axQLmXSo4= cloud.google.com/go/functions v1.16.0/go.mod h1:nbNpfAG7SG7Duw/o1iZ6ohvL7mc6MapWQVpqtM29n8k= +cloud.google.com/go/gaming v1.9.0 h1:7vEhFnZmd931Mo7sZ6pJy7uQPDxF7m7v8xtBheG08tc= +cloud.google.com/go/gkebackup v1.3.5 h1:iuE8KNtTsPOc79qeWoNS8zOWoXPD9SAdOmwgxtlCmh8= cloud.google.com/go/gkebackup v1.3.5/go.mod h1:KJ77KkNN7Wm1LdMopOelV6OodM01pMuK2/5Zt1t4Tvc= +cloud.google.com/go/gkeconnect v0.8.5 h1:17d+ZSSXKqG/RwZCq3oFMIWLPI8Zw3b8+a9/BEVlwH0= cloud.google.com/go/gkeconnect v0.8.5/go.mod h1:LC/rS7+CuJ5fgIbXv8tCD/mdfnlAadTaUufgOkmijuk= +cloud.google.com/go/gkehub v0.14.5 h1:RboLNFzf9wEMSo7DrKVBlf+YhK/A/jrLN454L5Tz99Q= cloud.google.com/go/gkehub v0.14.5/go.mod h1:6bzqxM+a+vEH/h8W8ec4OJl4r36laxTs3A/fMNHJ0wA= +cloud.google.com/go/gkemulticloud v1.1.1 h1:rsSZAGLhyjyE/bE2ToT5fqo1qSW7S+Ubsc9jFOcbhSI= cloud.google.com/go/gkemulticloud v1.1.1/go.mod h1:C+a4vcHlWeEIf45IB5FFR5XGjTeYhF83+AYIpTy4i2Q= +cloud.google.com/go/grafeas v0.2.0 h1:CYjC+xzdPvbV65gi6Dr4YowKcmLo045pm18L0DhdELM= +cloud.google.com/go/gsuiteaddons v1.6.5 h1:CZEbaBwmbYdhFw21Fwbo+C35HMe36fTE0FBSR4KSfWg= cloud.google.com/go/gsuiteaddons v1.6.5/go.mod h1:Lo4P2IvO8uZ9W+RaC6s1JVxo42vgy+TX5a6hfBZ0ubs= +cloud.google.com/go/iap v1.9.4 h1:94zirc2r4t6KzhAMW0R6Dme005eTP6yf7g6vN4IhRrA= cloud.google.com/go/iap v1.9.4/go.mod h1:vO4mSq0xNf/Pu6E5paORLASBwEmphXEjgCFg7aeNu1w= +cloud.google.com/go/ids v1.4.5 h1:xd4U7pgl3GHV+MABnv1BF4/Vy/zBF7CYC8XngkOLzag= cloud.google.com/go/ids v1.4.5/go.mod h1:p0ZnyzjMWxww6d2DvMGnFwCsSxDJM666Iir1bK1UuBo= +cloud.google.com/go/iot v1.7.5 h1:munTeBlbqI33iuTYgXy7S8lW2TCgi5l1hA4roSIY+EE= cloud.google.com/go/iot v1.7.5/go.mod h1:nq3/sqTz3HGaWJi1xNiX7F41ThOzpud67vwk0YsSsqs= +cloud.google.com/go/language v1.12.3 h1:iaJZg6K4j/2PvZZVcjeO/btcWWIllVRBhuTFjGO4LXs= cloud.google.com/go/language v1.12.3/go.mod h1:evFX9wECX6mksEva8RbRnr/4wi/vKGYnAJrTRXU8+f8= +cloud.google.com/go/lifesciences v0.9.5 h1:gXvN70m2p+4zgJFzaz6gMKaxTuF9WJ0USYoMLWAOm8g= cloud.google.com/go/lifesciences v0.9.5/go.mod h1:OdBm0n7C0Osh5yZB7j9BXyrMnTRGBJIZonUMxo5CzPw= +cloud.google.com/go/managedidentities v1.6.5 h1:+bpih1piZVLxla/XBqeSUzJBp8gv9plGHIMAI7DLpDM= cloud.google.com/go/managedidentities v1.6.5/go.mod h1:fkFI2PwwyRQbjLxlm5bQ8SjtObFMW3ChBGNqaMcgZjI= +cloud.google.com/go/maps v1.7.0 h1:bsQEGB0UOI8A4NWerBESDBTi3VxLT5jfFqZJ6nY4sO4= cloud.google.com/go/maps v1.7.0/go.mod h1:LqhDUCNSDAH6MvvubxDm7lPfHPhn6MduIaGCZ4iY1Ig= +cloud.google.com/go/mediatranslation v0.8.5 h1:c76KdIXljQHSCb/Cy47S8H4s05A4zbK3pAFGzwcczZo= cloud.google.com/go/mediatranslation v0.8.5/go.mod h1:y7kTHYIPCIfgyLbKncgqouXJtLsU+26hZhHEEy80fSs= +cloud.google.com/go/memcache v1.10.5 h1:yeDv5qxRedFosvpMSEswrqUsJM5OdWvssPHFliNFTc4= cloud.google.com/go/memcache v1.10.5/go.mod h1:/FcblbNd0FdMsx4natdj+2GWzTq+cjZvMa1I+9QsuMA= +cloud.google.com/go/metastore v1.13.4 h1:dR7vqWXlK6IYR8Wbu9mdFfwlVjodIBhd1JRrpZftTEg= cloud.google.com/go/metastore v1.13.4/go.mod h1:FMv9bvPInEfX9Ac1cVcRXp8EBBQnBcqH6gz3KvJ9BAE= +cloud.google.com/go/monitoring v1.18.0 h1:NfkDLQDG2UR3WYZVQE8kwSbUIEyIqJUPl+aOQdFH1T4= cloud.google.com/go/monitoring v1.18.0/go.mod h1:c92vVBCeq/OB4Ioyo+NbN2U7tlg5ZH41PZcdvfc+Lcg= +cloud.google.com/go/networkconnectivity v1.14.4 h1:GBfXFhLyPspnaBE3nI/BRjdhW8vcbpT9QjE/4kDCDdc= cloud.google.com/go/networkconnectivity v1.14.4/go.mod h1:PU12q++/IMnDJAB+3r+tJtuCXCfwfN+C6Niyj6ji1Po= +cloud.google.com/go/networkmanagement v1.9.4 h1:aLV5GcosBNmd6M8+a0ekB0XlLRexv4fvnJJrYnqeBcg= cloud.google.com/go/networkmanagement v1.9.4/go.mod h1:daWJAl0KTFytFL7ar33I6R/oNBH8eEOX/rBNHrC/8TA= +cloud.google.com/go/networksecurity v0.9.5 h1:+caSxBTj0E8OYVh/5wElFdjEMO1S/rZtE1152Cepchc= cloud.google.com/go/networksecurity v0.9.5/go.mod h1:KNkjH/RsylSGyyZ8wXpue8xpCEK+bTtvof8SBfIhMG8= +cloud.google.com/go/notebooks v1.11.3 h1:FH48boYmrWVQ6k0Mx/WrnNafXncT5iSYxA8CNyWTgy0= cloud.google.com/go/notebooks v1.11.3/go.mod h1:0wQyI2dQC3AZyQqWnRsp+yA+kY4gC7ZIVP4Qg3AQcgo= +cloud.google.com/go/optimization v1.6.3 h1:63NZaWyN+5rZEKHPX4ACpw3BjgyeuY8+rCehiCMaGPY= cloud.google.com/go/optimization v1.6.3/go.mod h1:8ve3svp3W6NFcAEFr4SfJxrldzhUl4VMUJmhrqVKtYA= +cloud.google.com/go/orchestration v1.9.0 h1:dPCclIVWuQoQc2afvUNmHA/RD+hg1CpLxYO1+G3zBko= cloud.google.com/go/orchestration v1.9.0/go.mod h1:sq28tiaY9crFRQlxIcYUupwq3Tr5fLctHmDlc+3WE9c= +cloud.google.com/go/orgpolicy v1.12.1 h1:2JbXigqBJVp8Dx5dONUttFqewu4fP0p3pgOdIZAhpYU= cloud.google.com/go/orgpolicy v1.12.1/go.mod h1:aibX78RDl5pcK3jA8ysDQCFkVxLj3aOQqrbBaUL2V5I= +cloud.google.com/go/osconfig v1.12.5 h1:Mo5jGAxOMKH/PmDY7fgY19yFcVbvwREb5D5zMPQjFfo= cloud.google.com/go/osconfig v1.12.5/go.mod h1:D9QFdxzfjgw3h/+ZaAb5NypM8bhOMqBzgmbhzWViiW8= +cloud.google.com/go/oslogin v1.13.1 h1:1K4nOT5VEZNt7XkhaTXupBYos5HjzvJMfhvyD2wWdFs= cloud.google.com/go/oslogin v1.13.1/go.mod h1:vS8Sr/jR7QvPWpCjNqy6LYZr5Zs1e8ZGW/KPn9gmhws= +cloud.google.com/go/phishingprotection v0.8.5 h1:DH3WFLzEoJdW/6xgsmoDqOwT1xddFi7gKu0QGZQhpGU= cloud.google.com/go/phishingprotection v0.8.5/go.mod h1:g1smd68F7mF1hgQPuYn3z8HDbNre8L6Z0b7XMYFmX7I= +cloud.google.com/go/policytroubleshooter v1.10.3 h1:c0WOzC6hz964QWNBkyKfna8A2jOIx1zzZa43Gx/P09o= cloud.google.com/go/policytroubleshooter v1.10.3/go.mod h1:+ZqG3agHT7WPb4EBIRqUv4OyIwRTZvsVDHZ8GlZaoxk= +cloud.google.com/go/privatecatalog v0.9.5 h1:UZ0assTnATXSggoxUIh61RjTQ4P9zCMk/kEMbn0nMYA= cloud.google.com/go/privatecatalog v0.9.5/go.mod h1:fVWeBOVe7uj2n3kWRGlUQqR/pOd450J9yZoOECcQqJk= +cloud.google.com/go/pubsub v1.37.0 h1:0uEEfaB1VIJzabPpwpZf44zWAKAme3zwKKxHk7vJQxQ= cloud.google.com/go/pubsub v1.37.0/go.mod h1:YQOQr1uiUM092EXwKs56OPT650nwnawc+8/IjoUeGzQ= +cloud.google.com/go/pubsublite v1.8.1 h1:pX+idpWMIH30/K7c0epN6V703xpIcMXWRjKJsz0tYGY= cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= +cloud.google.com/go/recaptchaenterprise v1.3.1 h1:u6EznTGzIdsyOsvm+Xkw0aSuKFXQlyjGE9a4exk6iNQ= +cloud.google.com/go/recaptchaenterprise/v2 v2.11.0 h1:EN9QUsq9LrHFAZiCRH03u/0VkFoFnyvUj8q0Je59rUg= cloud.google.com/go/recaptchaenterprise/v2 v2.11.0/go.mod h1:AgMf7QG7DBLcv8dstOz9+9dohjfh76IhBrkFxWdDL5Y= +cloud.google.com/go/recommendationengine v0.8.5 h1:ineqLswaCSBY0csYv5/wuXJMBlxATK6Xc5jJkpiTEdM= cloud.google.com/go/recommendationengine v0.8.5/go.mod h1:A38rIXHGFvoPvmy6pZLozr0g59NRNREz4cx7F58HAsQ= +cloud.google.com/go/recommender v1.12.1 h1:LVLYS3r3u0MSCxQSDUtLSkporEGi9OAE6hGvayrZNPs= cloud.google.com/go/recommender v1.12.1/go.mod h1:gf95SInWNND5aPas3yjwl0I572dtudMhMIG4ni8nr+0= +cloud.google.com/go/redis v1.14.2 h1:QF0maEdVv0Fj/2roU8sX3NpiDBzP9ICYTO+5F32gQNo= cloud.google.com/go/redis v1.14.2/go.mod h1:g0Lu7RRRz46ENdFKQ2EcQZBAJ2PtJHJLuiiRuEXwyQw= +cloud.google.com/go/resourcemanager v1.9.5 h1:AZWr1vWVDKGwfLsVhcN+vcwOz3xqqYxtmMa0aABCMms= cloud.google.com/go/resourcemanager v1.9.5/go.mod h1:hep6KjelHA+ToEjOfO3garMKi/CLYwTqeAw7YiEI9x8= +cloud.google.com/go/resourcesettings v1.6.5 h1:BTr5MVykJwClASci/7Og4Qfx70aQ4n3epsNLj94ZYgw= cloud.google.com/go/resourcesettings v1.6.5/go.mod h1:WBOIWZraXZOGAgoR4ukNj0o0HiSMO62H9RpFi9WjP9I= +cloud.google.com/go/retail v1.16.0 h1:Fn1GuAua1c6crCGqfJ1qMxG1Xh10Tg/x5EUODEHMqkw= cloud.google.com/go/retail v1.16.0/go.mod h1:LW7tllVveZo4ReWt68VnldZFWJRzsh9np+01J9dYWzE= +cloud.google.com/go/run v1.3.5 h1:zSbf1/r2BLg7uTgItwtGFZN+ne8OkQMWCbPDZaevFmQ= cloud.google.com/go/run v1.3.5/go.mod h1:AuT4W7a7gq7TUa0GrX9F6w/uiUoWHIV767yhqXqcbeg= +cloud.google.com/go/scheduler v1.10.6 h1:5U8iXLoQ03qOB+ZXlAecU7fiE33+u3QiM9nh4cd0eTE= cloud.google.com/go/scheduler v1.10.6/go.mod h1:pe2pNCtJ+R01E06XCDOJs1XvAMbv28ZsQEbqknxGOuE= +cloud.google.com/go/secretmanager v1.11.5 h1:82fpF5vBBvu9XW4qj0FU2C6qVMtj1RM/XHwKXUEAfYY= cloud.google.com/go/secretmanager v1.11.5/go.mod h1:eAGv+DaCHkeVyQi0BeXgAHOU0RdrMeZIASKc+S7VqH4= +cloud.google.com/go/security v1.15.5 h1:wTKJQ10j8EYgvE8Y+KhovxDRVDk2iv/OsxZ6GrLP3kE= cloud.google.com/go/security v1.15.5/go.mod h1:KS6X2eG3ynWjqcIX976fuToN5juVkF6Ra6c7MPnldtc= +cloud.google.com/go/securitycenter v1.27.0 h1:6aPV8eauNYC6kU69sMuuQSs6NXtgM9l85T4JqVPi7Yk= cloud.google.com/go/securitycenter v1.27.0/go.mod h1:J8BkC1KQ59pzVwFZ9OiqcKL57JwPNEv8SMxfVztjqD0= +cloud.google.com/go/servicecontrol v1.11.1 h1:d0uV7Qegtfaa7Z2ClDzr9HJmnbJW7jn0WhZ7wOX6hLE= +cloud.google.com/go/servicedirectory v1.11.4 h1:da7HFI1229kyzIyuVEzHXip0cw0d+E0s8mjQby0WN+k= cloud.google.com/go/servicedirectory v1.11.4/go.mod h1:Bz2T9t+/Ehg6x+Y7Ycq5xiShYLD96NfEsWNHyitj1qM= +cloud.google.com/go/servicemanagement v1.8.0 h1:fopAQI/IAzlxnVeiKn/8WiV6zKndjFkvi+gzu+NjywY= +cloud.google.com/go/serviceusage v1.6.0 h1:rXyq+0+RSIm3HFypctp7WoXxIA563rn206CfMWdqXX4= +cloud.google.com/go/shell v1.7.5 h1:3Fq2hzO0ZSyaqBboJrFkwwf/qMufDtqwwA6ep8EZxEI= cloud.google.com/go/shell v1.7.5/go.mod h1:hL2++7F47/IfpfTO53KYf1EC+F56k3ThfNEXd4zcuiE= +cloud.google.com/go/spanner v1.58.0 h1:W0SAtTz50XIZlTCJtHJ7x4Yxux6ZsorBBxjdXfjZ7UQ= cloud.google.com/go/spanner v1.58.0/go.mod h1:eSpP+aaT38sdwFs0ovo7Z1VsG9RyM9n7EHpM5DhDEsE= +cloud.google.com/go/speech v1.22.0 h1:AWpbl2POalAOvO5uudJoaknkFNhATuBVODozDXyTD1Q= cloud.google.com/go/speech v1.22.0/go.mod h1:d7pmrSKyrD12c7dRrjqgA/U0eeyZs0i4VpvOlpJXEBA= +cloud.google.com/go/storagetransfer v1.10.4 h1:dy4fL3wO0VABvzM05ycMUPFHxTPbJz9Em8ikAJVqSbI= cloud.google.com/go/storagetransfer v1.10.4/go.mod h1:vef30rZKu5HSEf/x1tK3WfWrL0XVoUQN/EPDRGPzjZs= +cloud.google.com/go/talent v1.6.6 h1:JssV0CE3FNujuSWn7SkosOzg7qrMxVnt6txOfGcMSa4= cloud.google.com/go/talent v1.6.6/go.mod h1:y/WQDKrhVz12WagoarpAIyKKMeKGKHWPoReZ0g8tseQ= +cloud.google.com/go/texttospeech v1.7.5 h1:dxY2Q5mHCbrGa3oPR2O3PCicdnvKa1JmwGQK36EFLOw= cloud.google.com/go/texttospeech v1.7.5/go.mod h1:tzpCuNWPwrNJnEa4Pu5taALuZL4QRRLcb+K9pbhXT6M= +cloud.google.com/go/tpu v1.6.5 h1:C8YyYda8WtNdBoCgFwwBzZd+S6+EScHOxM/z1h0NNp8= cloud.google.com/go/tpu v1.6.5/go.mod h1:P9DFOEBIBhuEcZhXi+wPoVy/cji+0ICFi4TtTkMHSSs= +cloud.google.com/go/trace v1.10.5 h1:0pr4lIKJ5XZFYD9GtxXEWr0KkVeigc3wlGpZco0X1oA= cloud.google.com/go/trace v1.10.5/go.mod h1:9hjCV1nGBCtXbAE4YK7OqJ8pmPYSxPA0I67JwRd5s3M= +cloud.google.com/go/translate v1.10.1 h1:upovZ0wRMdzZvXnu+RPam41B0mRJ+coRXFP2cYFJ7ew= cloud.google.com/go/translate v1.10.1/go.mod h1:adGZcQNom/3ogU65N9UXHOnnSvjPwA/jKQUMnsYXOyk= +cloud.google.com/go/video v1.20.4 h1:TXwotxkShP1OqgKsbd+b8N5hrIHavSyLGvYnLGCZ7xc= cloud.google.com/go/video v1.20.4/go.mod h1:LyUVjyW+Bwj7dh3UJnUGZfyqjEto9DnrvTe1f/+QrW0= +cloud.google.com/go/videointelligence v1.11.5 h1:mYaWH8uhUCXLJCN3gdXswKzRa2+lK0zN6/KsIubm6pE= cloud.google.com/go/videointelligence v1.11.5/go.mod h1:/PkeQjpRponmOerPeJxNPuxvi12HlW7Em0lJO14FC3I= +cloud.google.com/go/vision v1.2.0 h1:/CsSTkbmO9HC8iQpxbK8ATms3OQaX3YQUeTMGCxlaK4= +cloud.google.com/go/vision/v2 v2.8.0 h1:W52z1b6LdGI66MVhE70g/NFty9zCYYcjdKuycqmlhtg= cloud.google.com/go/vision/v2 v2.8.0/go.mod h1:ocqDiA2j97pvgogdyhoxiQp2ZkDCyr0HWpicywGGRhU= +cloud.google.com/go/vmmigration v1.7.5 h1:5v9RT2vWyuw3pK2ox0HQpkoftO7Q7/8591dTxxQc79g= cloud.google.com/go/vmmigration v1.7.5/go.mod h1:pkvO6huVnVWzkFioxSghZxIGcsstDvYiVCxQ9ZH3eYI= +cloud.google.com/go/vmwareengine v1.1.1 h1:EGdDi9QbqThfZq3ILcDK5g+m9jTevc34AY5tACx5v7k= cloud.google.com/go/vmwareengine v1.1.1/go.mod h1:nMpdsIVkUrSaX8UvmnBhzVzG7PPvNYc5BszcvIVudYs= +cloud.google.com/go/vpcaccess v1.7.5 h1:XyL6hTLtEM/eE4F1GEge8xUN9ZCkiVWn44K/YA7z1rQ= cloud.google.com/go/vpcaccess v1.7.5/go.mod h1:slc5ZRvvjP78c2dnL7m4l4R9GwL3wDLcpIWz6P/ziig= +cloud.google.com/go/webrisk v1.9.5 h1:251MvGuC8wisNN7+jqu9DDDZAi38KiMXxOpA/EWy4dE= cloud.google.com/go/webrisk v1.9.5/go.mod h1:aako0Fzep1Q714cPEM5E+mtYX8/jsfegAuS8aivxy3U= +cloud.google.com/go/websecurityscanner v1.6.5 h1:YqWZrZYabG88TZt7364XWRJGhxmxhony2ZUyZEYMF2k= cloud.google.com/go/websecurityscanner v1.6.5/go.mod h1:QR+DWaxAz2pWooylsBF854/Ijvuoa3FCyS1zBa1rAVQ= +cloud.google.com/go/workflows v1.12.4 h1:uHNmUiatTbPQ4H1pabwfzpfEYD4BBnqDHqMm2IesOh4= cloud.google.com/go/workflows v1.12.4/go.mod h1:yQ7HUqOkdJK4duVtMeBCAOPiN1ZF1E9pAMX51vpwB/w= codeberg.org/go-fonts/liberation v0.5.0/go.mod h1:zS/2e1354/mJ4pGzIIaEtm/59VFCFnYC7YV6YdGl5GU= codeberg.org/go-latex/latex v0.1.0/go.mod h1:LA0q/AyWIYrqVd+A9Upkgsb+IqPcmSTKc9Dny04MHMw= codeberg.org/go-pdf/fpdf v0.10.0/go.mod h1:Y0DGRAdZ0OmnZPvjbMp/1bYxmIPxm0ws4tfoPOc4LjU= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= +gioui.org v0.0.0-20210308172011-57750fc8a0a6 h1:K72hopUosKG3ntOPNG4OzzbuhxGuVf06fa2la1/H/Ho= +git.sr.ht/~sbinet/gg v0.3.1 h1:LNhjNn8DerC8f9DHLz6lS0YYul/b602DUxDgGkd/Aik= git.sr.ht/~sbinet/gg v0.6.0/go.mod h1:uucygbfC9wVPQIfrmwM2et0imr8L7KQWywX0xpFMm94= +github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ= github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1 h1:fXPMAmuh0gDuRDey0atC8cXBuKIlqCzCkL8sm1n9Ov0= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1/go.mod h1:SUZc9YRRHfx2+FAQKNDGrssXehqLpxmwRv2mC/5ntj4= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= +github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= +github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8= github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= +github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= +github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9 h1:7kQgkwGRoLzC9K0oyXdJo7nve/bynv/KwUsxbiTlzAM= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19 h1:iXUgAaqDcIUGbRoy2TdeofRG/j1zpGRSEmNK05T+bi8= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw= +github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek= github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= +github.com/alecthomas/chroma/v2 v2.13.0 h1:VP72+99Fb2zEcYM0MeaWJmV+xQvz5v5cxRHd+ooU1lI= github.com/alecthomas/chroma/v2 v2.13.0/go.mod h1:BUGjjsD+ndS6eX37YgTchSEG+Jg9Jv1GiZs9sqPqztk= +github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6ez9cI= +github.com/apache/arrow/go/v11 v11.0.0 h1:hqauxvFQxww+0mEU/2XHG6LT7eZternCZq+A5Yly2uM= +github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= +github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 h1:MzVXffFUye+ZcSR6opIgz9Co7WcDx6ZcY+RjfFHoA0I= github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0= +github.com/apparentlymart/go-textseg/v12 v12.0.0 h1:bNEQyAGak9tojivJNkoqWErVCQbjdL7GzRt3F8NvfJ0= +github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= +github.com/apparentlymart/go-versions v1.0.3 h1:T3b8tumoQLuu1dej2Y9v22J4PWV9IzDLh2A9lIPoVSM= github.com/apparentlymart/go-versions v1.0.3/go.mod h1:YF5j7IQtrOAOnsGkniupEA5bfCjzd7i14yu0shZavyM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= +github.com/aws/aws-sdk-go-v2/service/iam v1.31.4 h1:eVm30ZIDv//r6Aogat9I88b5YX1xASSLcEDqHYRPVl0= github.com/aws/aws-sdk-go-v2/service/iam v1.31.4/go.mod h1:aXWImQV0uTW35LM0A/T4wEg6R1/ReXUu4SM6/lUHYK0= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= +github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= +github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= +github.com/bwesterb/go-ristretto v1.2.3 h1:1w53tCkGhCQ5djbat3+MH0BAQ5Kfgbt56UZQ/JMzngw= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8= +github.com/ccojocar/zxcvbn-go v1.0.1 h1:+sxrANSCj6CdadkcMnvde/GWU1vZiiXRbqYSCalV4/4= github.com/ccojocar/zxcvbn-go v1.0.1/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= +github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charmbracelet/glamour v0.6.0 h1:wi8fse3Y7nfcabbbDuwolqTqMQPMnVPeZhDM273bISc= github.com/charmbracelet/glamour v0.6.0/go.mod h1:taqWV4swIMMbWALc0m7AfE9JkPSU8om2538k9ITBxOc= +github.com/charmbracelet/harmonica v0.2.0 h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ= github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= +github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0 h1:90Ly+6UfUypEF6vvvW5rQIv9opIL8CbmW9FT20LDQoY= github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0/go.mod h1:V+Qd57rJe8gd4eiGzZyg4h54VLHmYVVw54iMnlAMrF8= +github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA= +github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI= github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4= +github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/erikgeiser/promptkit v0.9.0 h1:3qL1mS/ntCrXdb8sTP/ka82CJ9kEQaGuYXNrYJkWYBc= github.com/erikgeiser/promptkit v0.9.0/go.mod h1:pU9dtogSe3Jlc2AY77EP7R4WFP/vgD4v+iImC83KsCo= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/go-fonts/dejavu v0.1.0 h1:JSajPXURYqpr+Cu8U9bt8K+XcACIHWqWrvWCKyeFmVQ= +github.com/go-fonts/latin-modern v0.2.0 h1:5/Tv1Ek/QCr20C6ZOz15vw3g7GELYL98KWr8Hgo+3vk= +github.com/go-fonts/liberation v0.2.0 h1:jAkAWJP4S+OsrPLZM4/eC9iW7CtHy+HBXrEwZXWo5VM= +github.com/go-fonts/stix v0.1.0 h1:UlZlgrvvmT/58o573ot7NFw0vZasZ5I6bcIft/oMdgg= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= +github.com/go-jose/go-jose/v4 v4.1.1 h1:JYhSgy4mXXzAdF3nUx3ygx347LRXJRrpgyU3adRmkAI= github.com/go-jose/go-jose/v4 v4.1.1/go.mod h1:BdsZGqgdO3b6tTc6LSE56wcDbMMLuPsw5d4ZD5f94kA= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 h1:6zl3BbBhdnMkpSj2YY30qV3gDcVBGtFgVsV3+/i+mKQ= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-pdf/fpdf v0.6.0 h1:MlgtGIfsdMEEQJr2le6b/HNr1ZlQwxyWr77r2aj2U/8= github.com/goccmack/gocc v0.0.0-20230228185258-2292f9e40198/go.mod h1:DTh/Y2+NbnOVVoypCCQrovMPDKUGp4yZpSbWg5D0XIM= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v5 v5.2.3/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= +github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= +github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg= github.com/google/go-github/v55 v55.0.0/go.mod h1:JLahOTA1DnXzhxEymmFF5PP2tSS9JVNj68mSZNDwskA= +github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9 h1:OF1IPgv+F4NmqmJ98KTjdN97Vs1JxDPB3vbmYzV2dpk= github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= +github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= +github.com/google/pprof v0.0.0-20230406165453-00490a63f317 h1:hFhpt7CTmR3DX+b4R19ydQFtofxT0Sv3QsKNMVQYTMQ= github.com/google/pprof v0.0.0-20230406165453-00490a63f317/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= +github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= +github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= -github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= -github.com/hashicorp/hc-install v0.9.2/go.mod h1:XUqBQNnuT4RsxoxiM9ZaUk0NX8hi2h+Lb6/c0OZnC/I= -github.com/hashicorp/terraform-exec v0.23.0/go.mod h1:mA+qnx1R8eePycfwKkCRk3Wy65mwInvlpAeOwmA7vlY= -github.com/hashicorp/terraform-json v0.25.0/go.mod h1:sMKS8fiRDX4rVlR6EJUMudg1WcanxCMoWwTLkgZP/vc= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/terraform-config-inspect v0.0.0-20191115094559-17f92b0546e8 h1:+RyjwU+Gnd/aTJBPZVDNm903eXVjjqhbaR4Ypx3xYyY= +github.com/hashicorp/terraform-plugin-mux v0.20.0 h1:3QpBnI9uCuL0Yy2Rq/kR9cOdmOFNhw88A2GoZtk5aXM= github.com/hashicorp/terraform-plugin-mux v0.20.0/go.mod h1:wSIZwJjSYk86NOTX3fKUlThMT4EAV1XpBHz9SAvjQr4= -github.com/hashicorp/terraform-plugin-testing v1.13.3/go.mod h1:WHQ9FDdiLoneey2/QHpGM/6SAYf4A7AZazVg7230pLE= +github.com/hashicorp/terraform-plugin-test v1.2.0 h1:AWFdqyfnOj04sxTdaAF57QqvW7XXrT8PseUHkbKsE8I= +github.com/hashicorp/terraform-provider-tls v1.2.1-0.20230117062332-afdd54107aba h1:xoUp/RqxaIf20SzMbRTbdM/ORPoJ6CBGuw9PoxyGWqk= github.com/hashicorp/terraform-provider-tls v1.2.1-0.20230117062332-afdd54107aba/go.mod h1:TBjYP1eCMBy/8zMvovtWNHC9/HT/qaRNqN8HdxeIWaE= +github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 h1:AgcIVYPa6XJnU3phs104wLj8l5GEththEw6+F79YsIY= github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639 h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI= +github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd h1:anPrsicrIi2ColgWTVPk+TrN42hJIWlfPHSBP9S0ZkM= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= +github.com/iwdgo/sigintwindows v0.2.2 h1:P6oWzpvV7MrEAmhUgs+zmarrWkyL77ycZz4v7+1gYAE= github.com/iwdgo/sigintwindows v0.2.2/go.mod h1:70wPb8oz8OnxPvsj2QMUjgIVhb8hMu5TUgX8KfFl7QY= github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= +github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= +github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba h1:NARVGAAgEXvoMeNPHhPFt1SBt1VMznA3Gnz9d0qj+co= +github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= +github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= +github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/lyft/protoc-gen-star v0.6.1 h1:erE0rdztuaDq3bpGifD95wfoPrSZc95nGA6tbiNYh6M= +github.com/lyft/protoc-gen-star/v2 v2.0.1 h1:keaAo8hRuAT0O3DfJ/wM3rufbAjGeJ1lAtWZHDjKGB0= github.com/lyft/protoc-gen-star/v2 v2.0.4-0.20230330145011-496ad1ac90a4/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.14 h1:qZgc/Rwetq+MtyE18WhzjokPD93dNqLGNT3QJuLvBGw= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/microcosm-cc/bluemonday v1.0.21 h1:dNH3e4PSyE4vNX+KlRGHT5KrSvjeUkoNPwEORjffHJg= github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= +github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= +github.com/moby/moby v28.3.3+incompatible h1:nzkZIIn9bQP9S553kNmJ+U8PBhdS2ciFWphV2vX/Zp4= github.com/moby/moby v28.3.3+incompatible/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/mxschmitt/golang-combinations v1.0.0 h1:NFoO7CSP8MUcFlHpe1YdewKwMa15dgDbaqkVLC5DUPI= github.com/mxschmitt/golang-combinations v1.0.0/go.mod h1:RbMhWvfCelHR6WROvT2bVfxJvZHoEvBj71SKe+H0MYU= +github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d h1:AREM5mwr4u1ORQBMvzfzBgpsctsbQikCVpvC+tX285E= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= +github.com/pgavlin/aho-corasick v0.5.1 h1:ujv4DzpWK8G+MhoPAKYAir7znMHtcRQLDVa0cwFRvHw= github.com/pgavlin/aho-corasick v0.5.1/go.mod h1:UyKgVsAp5Un59BCpzrpFkPyETFMn1tGjdbRYvoq0l2g= +github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e h1:Or25BtWLCyWKjnLyuMDrQsc6VcCs1V2AiKdOnxHEeEk= github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e/go.mod h1:WGwlmuPAiQTGQUjxyAfP7j4JgbgiFvFpI/qRtsQtS/4= +github.com/pgavlin/text v0.0.0-20240821195002-b51d0990e284 h1:qpLdAFg3kyV/mEsuMPBgLzFo3xRpKBdOff8m0up9eAs= github.com/pgavlin/text v0.0.0-20240821195002-b51d0990e284/go.mod h1:fk4+YyTLi0Ap0CsL1HA70/tAs6evqw3hbPGdR8rD/3E= +github.com/phpdave11/gofpdf v1.4.2 h1:KPKiIbfwbvC/wOncwhrpRdXVj2CZTCFlw4wnoyjtHfQ= +github.com/phpdave11/gofpdi v1.0.13 h1:o61duiW8M9sMlkVXWlvP92sZJtGKENvW3VExs6dZukQ= +github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= +github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= +github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= +github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245 h1:K1Xf3bKttbF+koVGaX5xngRIZ5bVjbmPnaxE/dR08uY= +github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= +github.com/shirou/gopsutil/v3 v3.22.3 h1:UebRzEomgMpv61e3hgD1tGooqX5trFbdU/ehphbHd00= github.com/shirou/gopsutil/v3 v3.22.3/go.mod h1:D01hZJ4pVHPpCTZ3m3T2+wDF2YAGfd+H4ifUguaQzHM= +github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= +github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 h1:8ZnTA26bBOoPkAbbitKPgNlpw0Bwt7ZlpYgZWHWJR/w= github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:tNZjgbYncKL5HxvDULAr/mWDmFz4B7H8yrXEDlnoIiw= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= -github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.9.0/go.mod h1:/FoXa6hF77Gv8brrvLBCKa5ie1Xy9xn39yfHwaln9Tw= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.5.0/go.mod h1:YGadfhuy8yoseczTxF7vN4t9ES2WxGQr0Pug14ii7y4= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.1/go.mod h1:7Bx85knfNSBxulPdJUFuBePXNee3cO+sOTYnUG6M+iQ= -github.com/stackitcloud/stackit-sdk-go/services/git v0.8.0/go.mod h1:AXFfYBJZIW1o0W0zZEb/proQMhMsb3Nn5E1htS8NDPE= -github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0/go.mod h1:854gnLR92NvAbJAA1xZEumrtNh1DoBP1FXTMvhwYA6w= -github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha/go.mod h1:Nu1b5Phsv8plgZ51+fkxPVsU91ZJ5Ayz+cthilxdmQ8= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0/go.mod h1:20QOZ3rBC9wTGgzXzLz9M6YheX0VaxWE0/JI+s8On7k= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.1/go.mod h1:ivt8lvnAoBZsde2jSAuicyn6RgTmHvvNAJ3whaUbAD4= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.1/go.mod h1:8jdN4v2euK3f9gfdzbRi8e4nBJ8g/Q5YF9aPB4M4fCQ= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.0/go.mod h1:DvNLTENxoJEQ8AwUvcVBoWqVtdZNS4vEJppTKfvfeec= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.2/go.mod h1:oc8Mpwl7O6EZwG0YxfhOzNCJwNQBWK5rFh764OtxoMY= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.0/go.mod h1:foslkEiICdtHR3v0A/i/Rgo6EP9MMula9XNC9luNOgw= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.14.0/go.mod h1:tJEOi6L0le4yQZPGwalup/PZ13gqs1aCQDqlUs2cYW0= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.1/go.mod h1:jfguuSPa56Z5Bzs/Xg/CI37XzPo5Zn5lzC5LhfuT8Qc= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.2.1/go.mod h1:hyhw+I19NtjKmRLcUkY4boaTxnYSPFGbpn4RxvGqH2s= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.1/go.mod h1:+qGWSehoV0Js3FalgvT/bOgPj+UqW4I7lP5s8uAxP+o= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.1/go.mod h1:1Y2GEICmZDt+kr8aGnBx/sjYVAIYHmtfC8xYi9oxNEE= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.17.1/go.mod h1:ipcrPRbwfQXHH18dJVfY7K5ujHF5dTT6isoXgmA7YwQ= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.2.1/go.mod h1:5p7Xi8jadpJNDYr0t+07DXS104/RJLfhhA1r6P7PlGs= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.13.1/go.mod h1:WGMFtGugBmUxI+nibI7eUZIQk4AGlDvwqX+m17W1y5w= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.2/go.mod h1:wV7/BUV3BCLq5+E1bHXrKKt/eOPVdWgLArWLAq7rZ/U= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.1/go.mod h1:jZwTg3wU4/UxgNJ7TKlFZ3dTIlnfvppnW8kJTc4UXy8= -github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.1/go.mod h1:QCrAW/Rmf+styT25ke8cUV6hDHpdKNmAY14kkJ3+Fd8= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.2/go.mod h1:DFEamKVoOjm/rjMwzfZK0Zg/hwsSkXOibdA4HcC6swk= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.4.0/go.mod h1:xRBgpJ8P5Nf1T5tD0tGAeNg1FNQzx5VF7qqOXt2Fp3s= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.3.1/go.mod h1:+LYy2pB+tpF0lkkmCf524wvv2Sa49REgEaNh7JGzN6Y= -github.com/stackitcloud/terraform-provider-stackit v0.68.0/go.mod h1:4e5Li3xS+XpWCX0b6pmGDD7blAA1C4ajzH9OEReKyrA= +github.com/terraform-providers/terraform-provider-random v1.3.2-0.20231204135814-c6e90de46687 h1:4gT3jbJFnnGV2Liq4jziT7C4w/OOM+pkuwBGVDagRgc= github.com/terraform-providers/terraform-provider-random v1.3.2-0.20231204135814-c6e90de46687/go.mod h1:nH2NdrX91QoiiaPJsTZ9vKoezUq5IgHJ8nijpD6lT5o= +github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= +github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= +github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= +github.com/yuin/goldmark-emoji v1.0.1 h1:ctuWEyzGBwiucEqxzwe0SOYDXPAucOrE9NQC18Wa1os= github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ= +github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8FktLnIcy6jJNyOCQw= go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 h1:dNzwXjZKpMpE2JhmO+9HsPl42NIXFIFSUSSs0fiqra0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0/go.mod h1:90PoxvaEB5n6AOdZvi+yWJQoE95U8Dhhw2bSyRqnTD0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 h1:JgtbA0xkWHnTmYk7YusopJFX6uleBmAuZ8n05NEh8nQ= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0/go.mod h1:179AK5aar5R3eS9FucPy6rggvU0g52cvKId8pv4+v0c= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= +go.pennock.tech/tabular v1.1.3 h1:JYN3TdVkTjOWdZz2FwKcW7f69vRhPl4NAQqJ8RZAsmY= go.pennock.tech/tabular v1.1.3/go.mod h1:UzyxF5itNqTCS1ZGXfwDwbFgYj/lS+e67Fid68QOYZ0= +go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= +golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867 h1:TcHcE0vrmgzNH1v3ppjcMGbhG5+9fMuvOmUYwNEF4q4= golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20250908211612-aef8a434d053/go.mod h1:+nZKN+XVh4LCiA9DV3ywrzN4gumyCnKjau3NGb9SGoE= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 h1:LvzTn0GQhWuvKH/kVRS3R3bVAsdQWI7hvfLHGgh9+lU= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8/go.mod h1:Pi4ztBfryZoJEkyFTI5/Ocsu2jXyDr6iSdgJiYE/uwE= golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= +gonum.org/v1/plot v0.10.1 h1:dnifSs43YJuNMDzB7v8wV64O4ABBHReuAVAoBxqBqS4= gonum.org/v1/plot v0.15.2/go.mod h1:DX+x+DWso3LTha+AdkJEv5Txvi+Tql3KAGkehP0/Ubg= google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20240304161311-37d4d3c04a78 h1:YqFWYZXim8bG9v68xU8WjTZmYKb5M5dMeSOWIp6jogI= google.golang.org/genproto/googleapis/bytestream v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:vh/N7795ftP0AkN1w8XKqN4w1OdUKXW5Eummda+ofv8= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= google.golang.org/grpc/examples v0.0.0-20230224211313-3775f633ce20/go.mod h1:Nr5H8+MlGWr5+xX/STzdoEqJrO+YteqFbMyCsrb6mH0= +gopkg.in/cheggaaa/pb.v1 v1.0.27 h1:kJdccidYzt3CaHD1crCFTS1hxyhSi059NhOFUf03YFo= +gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +honnef.co/go/tools v0.1.3 h1:qTakTkI6ni6LFD5sBwwsdSO+AQqbSIxOauHTTQKZ/7o= +lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= +modernc.org/cc/v3 v3.36.3 h1:uISP3F66UlixxWEcKuIWERa4TwrZENHSL8tWxZz8bHg= +modernc.org/ccgo/v3 v3.16.9 h1:AXquSwg7GuMk11pIdw7fmO1Y/ybgazVkMhsZWCV0mHM= +modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= +modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= +modernc.org/libc v1.17.1 h1:Q8/Cpi36V/QBfuQaFVeisEBs3WqoGAJprZzmf7TfEYI= +modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= +modernc.org/memory v1.2.1 h1:dkRh86wgmq/bJu2cAS2oqBCz/KsMZU7TUM4CibQ7eBs= +modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= +modernc.org/sqlite v1.18.1 h1:ko32eKt3jf7eqIkCgPAeHMBXw3riNSLhl2f3loEF7o8= +modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= +modernc.org/tcl v1.13.1 h1:npxzTwFTZYM8ghWicVIX1cRWzj7Nd8i6AqqX2p+IYao= +modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= +modernc.org/z v1.5.1 h1:RTNHdsrOpeoSeOF4FbzTo8gBYByaJ5xT7NgZ9ZqRiJM= +mvdan.cc/sh/v3 v3.7.0 h1:lSTjdP/1xsddtaKfGg7Myu7DnlHItd3/M2tomOcNNBg= mvdan.cc/sh/v3 v3.7.0/go.mod h1:K2gwkaesF/D7av7Kxl0HbF5kGOd2ArupNTX3X44+8l8= +rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= +rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= +rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= +rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= +sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600 h1:hfyJ5ku9yFtLVOiSxa3IN+dx5eBQT9mPmKFypAmg8XM= sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json index a66dc30a..e77c343a 100644 --- a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json @@ -28,6 +28,15 @@ "fields": { "config": { "fields": { + "backend": { + "fields": { + "geofencing": { + "elem": { + "maxItemsOne": false + } + } + } + }, "blocked_countries": { "maxItemsOne": false }, @@ -81,6 +90,15 @@ "stackit_key_pair": { "current": "stackit:index/keyPair:KeyPair" }, + "stackit_kms_key": { + "current": "stackit:index/kmsKey:KmsKey" + }, + "stackit_kms_keyring": { + "current": "stackit:index/kmsKeyring:KmsKeyring" + }, + "stackit_kms_wrapping_key": { + "current": "stackit:index/kmsWrappingKey:KmsWrappingKey" + }, "stackit_loadbalancer": { "current": "stackit:index/loadbalancer:Loadbalancer", "fields": { @@ -596,6 +614,15 @@ "fields": { "config": { "fields": { + "backend": { + "fields": { + "geofencing": { + "elem": { + "maxItemsOne": false + } + } + } + }, "blocked_countries": { "maxItemsOne": false }, @@ -655,6 +682,15 @@ "stackit_key_pair": { "current": "stackit:index/getKeyPair:getKeyPair" }, + "stackit_kms_key": { + "current": "stackit:index/getKmsKey:getKmsKey" + }, + "stackit_kms_keyring": { + "current": "stackit:index/getKmsKeyring:getKmsKeyring" + }, + "stackit_kms_wrapping_key": { + "current": "stackit:index/getKmsWrappingKey:getKmsWrappingKey" + }, "stackit_loadbalancer": { "current": "stackit:index/getLoadbalancer:getLoadbalancer", "fields": { diff --git a/provider/cmd/pulumi-resource-stackit/schema.json b/provider/cmd/pulumi-resource-stackit/schema.json index da92a705..19ff5a1e 100644 --- a/provider/cmd/pulumi-resource-stackit/schema.json +++ b/provider/cmd/pulumi-resource-stackit/schema.json @@ -93,6 +93,10 @@ "type": "string", "description": "Custom endpoint for the IaaS service" }, + "kmsCustomEndpoint": { + "type": "string", + "description": "Custom endpoint for the KMS service" + }, "loadbalancerCustomEndpoint": { "type": "string", "description": "Custom endpoint for the Load Balancer service" @@ -279,6 +283,16 @@ }, "stackit:index/CdnDistributionConfigBackend:CdnDistributionConfigBackend": { "properties": { + "geofencing": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "A map of URLs to a list of countries where content is allowed.\n" + }, "originRequestHeaders": { "type": "object", "additionalProperties": { @@ -292,7 +306,7 @@ }, "type": { "type": "string", - "description": "The configured backend type. Supported values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e.\n" + "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e.\n" } }, "type": "object", @@ -458,7 +472,7 @@ }, "protocol": { "type": "string", - "description": "Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`.\n" + "description": "Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`.\n" }, "serverNameIndicators": { "type": "array", @@ -470,6 +484,14 @@ "targetPool": { "type": "string", "description": "Reference target pool by target pool name.\n" + }, + "tcp": { + "$ref": "#/types/stackit:index/LoadbalancerListenerTcp:LoadbalancerListenerTcp", + "description": "Options that are specific to the TCP protocol.\n" + }, + "udp": { + "$ref": "#/types/stackit:index/LoadbalancerListenerUdp:LoadbalancerListenerUdp", + "description": "Options that are specific to the UDP protocol.\n" } }, "type": "object", @@ -498,6 +520,24 @@ }, "type": "object" }, + "stackit:index/LoadbalancerListenerTcp:LoadbalancerListenerTcp": { + "properties": { + "idleTimeout": { + "type": "string", + "description": "Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s\n" + } + }, + "type": "object" + }, + "stackit:index/LoadbalancerListenerUdp:LoadbalancerListenerUdp": { + "properties": { + "idleTimeout": { + "type": "string", + "description": "Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s\n" + } + }, + "type": "object" + }, "stackit:index/LoadbalancerNetwork:LoadbalancerNetwork": { "properties": { "networkId": { @@ -506,7 +546,7 @@ }, "role": { "type": "string", - "description": "The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.\n" + "description": "The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`.\n" } }, "type": "object", @@ -936,7 +976,7 @@ }, "type": { "type": "string", - "description": "Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`.\n" + "description": "Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`.\n" }, "weeklySnapshotRetentionWeeks": { "type": "integer", @@ -1818,7 +1858,7 @@ "properties": { "type": { "type": "string", - "description": "Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e is supported during experimental stage..\n" + "description": "Type of the next hop. Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n" }, "value": { "type": "string", @@ -1930,7 +1970,7 @@ }, "sourceType": { "type": "string", - "description": "The type of the source. Supported values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n" + "description": "The type of the source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e.\n" } }, "type": "object", @@ -2341,7 +2381,7 @@ }, "type": { "type": "string", - "description": "The type of the source. Supported values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snapshot`\" pulumi-lang-dotnet=\"`Snapshot`\" pulumi-lang-go=\"`snapshot`\" pulumi-lang-python=\"`snapshot`\" pulumi-lang-yaml=\"`snapshot`\" pulumi-lang-java=\"`snapshot`\"\u003e`snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\"\u003e`backup`\u003c/span\u003e.\n" + "description": "The type of the source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snapshot`\" pulumi-lang-dotnet=\"`Snapshot`\" pulumi-lang-go=\"`snapshot`\" pulumi-lang-python=\"`snapshot`\" pulumi-lang-yaml=\"`snapshot`\" pulumi-lang-java=\"`snapshot`\"\u003e`snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\"\u003e`backup`\u003c/span\u003e.\n" } }, "type": "object", @@ -2406,6 +2446,16 @@ }, "stackit:index/getCdnDistributionConfigBackend:getCdnDistributionConfigBackend": { "properties": { + "geofencing": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "A map of URLs to a list of countries where content is allowed.\n" + }, "originRequestHeaders": { "type": "object", "additionalProperties": { @@ -2419,11 +2469,12 @@ }, "type": { "type": "string", - "description": "The configured backend type. Supported values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e.\n" + "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e.\n" } }, "type": "object", "required": [ + "geofencing", "originRequestHeaders", "originUrl", "type" @@ -2731,6 +2782,14 @@ "targetPool": { "type": "string", "description": "Reference target pool by target pool name.\n" + }, + "tcp": { + "$ref": "#/types/stackit:index/getLoadbalancerListenerTcp:getLoadbalancerListenerTcp", + "description": "Options that are specific to the TCP protocol.\n" + }, + "udp": { + "$ref": "#/types/stackit:index/getLoadbalancerListenerUdp:getLoadbalancerListenerUdp", + "description": "Options that are specific to the UDP protocol.\n" } }, "type": "object", @@ -2738,7 +2797,9 @@ "displayName", "port", "protocol", - "targetPool" + "targetPool", + "tcp", + "udp" ], "language": { "nodejs": { @@ -2755,6 +2816,40 @@ }, "type": "object" }, + "stackit:index/getLoadbalancerListenerTcp:getLoadbalancerListenerTcp": { + "properties": { + "idleTimeout": { + "type": "string", + "description": "Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour.\n" + } + }, + "type": "object", + "required": [ + "idleTimeout" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "stackit:index/getLoadbalancerListenerUdp:getLoadbalancerListenerUdp": { + "properties": { + "idleTimeout": { + "type": "string", + "description": "Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes.\n" + } + }, + "type": "object", + "required": [ + "idleTimeout" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "stackit:index/getLoadbalancerNetwork:getLoadbalancerNetwork": { "properties": { "networkId": { @@ -4179,7 +4274,7 @@ "properties": { "type": { "type": "string", - "description": "Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e is supported during experimental stage..\n" + "description": "Type of the next hop. Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n" }, "value": { "type": "string", @@ -4268,7 +4363,7 @@ "properties": { "type": { "type": "string", - "description": "Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e. Only \u003cspan pulumi-lang-nodejs=\"`cidrv4`\" pulumi-lang-dotnet=\"`Cidrv4`\" pulumi-lang-go=\"`cidrv4`\" pulumi-lang-python=\"`cidrv4`\" pulumi-lang-yaml=\"`cidrv4`\" pulumi-lang-java=\"`cidrv4`\"\u003e`cidrv4`\u003c/span\u003e is supported during experimental stage..\n" + "description": "Type of the next hop. Possible values are: \u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n" }, "value": { "type": "string", @@ -4967,7 +5062,7 @@ }, "type": { "type": "string", - "description": "The type of the source. Supported values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snapshot`\" pulumi-lang-dotnet=\"`Snapshot`\" pulumi-lang-go=\"`snapshot`\" pulumi-lang-python=\"`snapshot`\" pulumi-lang-yaml=\"`snapshot`\" pulumi-lang-java=\"`snapshot`\"\u003e`snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\"\u003e`backup`\u003c/span\u003e.\n" + "description": "The type of the source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snapshot`\" pulumi-lang-dotnet=\"`Snapshot`\" pulumi-lang-go=\"`snapshot`\" pulumi-lang-python=\"`snapshot`\" pulumi-lang-yaml=\"`snapshot`\" pulumi-lang-java=\"`snapshot`\"\u003e`snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`backup`\" pulumi-lang-dotnet=\"`Backup`\" pulumi-lang-go=\"`backup`\" pulumi-lang-python=\"`backup`\" pulumi-lang-yaml=\"`backup`\" pulumi-lang-java=\"`backup`\"\u003e`backup`\u003c/span\u003e.\n" } }, "type": "object", @@ -5024,6 +5119,10 @@ "type": "string", "description": "Custom endpoint for the IaaS service" }, + "kmsCustomEndpoint": { + "type": "string", + "description": "Custom endpoint for the KMS service" + }, "loadbalancerCustomEndpoint": { "type": "string", "description": "Custom endpoint for the Load Balancer service" @@ -5180,6 +5279,10 @@ "type": "string", "description": "Custom endpoint for the IaaS service" }, + "kmsCustomEndpoint": { + "type": "string", + "description": "Custom endpoint for the KMS service" + }, "loadbalancerCustomEndpoint": { "type": "string", "description": "Custom endpoint for the Load Balancer service" @@ -5593,7 +5696,7 @@ } }, "stackit:index/cdnDistribution:CdnDistribution": { - "description": "CDN distribution data source schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_cdn_distribution\" \"example_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"http\"\n origin_url = \"https://mybackend.onstackit.cloud\"\n }\n regions = [\"EU\", \"US\", \"ASIA\", \"AF\", \"SA\"]\n blocked_countries = [\"DE\", \"AT\", \"CH\"]\n\n optimizer = {\n enabled = true\n }\n }\n}\n\n# Only use the import statement, if you want to import an existing cdn distribution\nimport {\n to = stackit_cdn_distribution.import-example\n id = \"${var.project_id},${var.distribution_id}\"\n}\n```\n", + "description": "CDN distribution data source schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_cdn_distribution\" \"example_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"http\"\n origin_url = \"https://mybackend.onstackit.cloud\"\n geofencing = {\n \"https://mybackend.onstackit.cloud\" = [\"DE\"]\n }\n }\n regions = [\"EU\", \"US\", \"ASIA\", \"AF\", \"SA\"]\n blocked_countries = [\"DE\", \"AT\", \"CH\"]\n\n optimizer = {\n enabled = true\n }\n }\n}\n\n# Only use the import statement, if you want to import an existing cdn distribution\nimport {\n to = stackit_cdn_distribution.import-example\n id = \"${var.project_id},${var.distribution_id}\"\n}\n```\n", "properties": { "config": { "$ref": "#/types/stackit:index/CdnDistributionConfig:CdnDistributionConfig", @@ -5952,7 +6055,7 @@ }, "type": { "type": "string", - "description": "Zone type. Defaults to \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Supported values are: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n" + "description": "Zone type. Defaults to \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Possible values are: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n" }, "visibility": { "type": "string", @@ -6047,7 +6150,7 @@ }, "type": { "type": "string", - "description": "Zone type. Defaults to \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Supported values are: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n" + "description": "Zone type. Defaults to \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Possible values are: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n" } }, "requiredInputs": [ @@ -6133,7 +6236,7 @@ }, "type": { "type": "string", - "description": "Zone type. Defaults to \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Supported values are: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n" + "description": "Zone type. Defaults to \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Possible values are: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n" }, "visibility": { "type": "string", @@ -6484,46 +6587,461 @@ }, "description": "Labels are key-value string pairs which can be attached to a resource container.\n" }, - "name": { + "name": { + "type": "string", + "description": "The name of the SSH key pair.\n" + }, + "publicKey": { + "type": "string", + "description": "A string representation of the public SSH key. E.g., `ssh-rsa \u003ckey_data\u003e` or `ssh-ed25519 \u003ckey-data\u003e`.\n" + } + }, + "requiredInputs": [ + "publicKey" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering KeyPair resources.\n", + "properties": { + "fingerprint": { + "type": "string", + "description": "The fingerprint of the public SSH key.\n" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels are key-value string pairs which can be attached to a resource container.\n" + }, + "name": { + "type": "string", + "description": "The name of the SSH key pair.\n" + }, + "publicKey": { + "type": "string", + "description": "A string representation of the public SSH key. E.g., `ssh-rsa \u003ckey_data\u003e` or `ssh-ed25519 \u003ckey-data\u003e`.\n" + } + }, + "type": "object" + } + }, + "stackit:index/kmsKey:KmsKey": { + "description": "## Example Usage\n\n```terraform\nresource \"stackit_kms_key\" \"key\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n keyring_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n display_name = \"key-01\"\n protection = \"software\"\n algorithm = \"aes_256_gcm\"\n purpose = \"symmetric_encrypt_decrypt\"\n}\n```\n", + "properties": { + "accessScope": { + "type": "string", + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" + }, + "algorithm": { + "type": "string", + "description": "The encryption algorithm that the key will use to encrypt data. Possible values are: \u003cspan pulumi-lang-nodejs=\"`aes256Gcm`\" pulumi-lang-dotnet=\"`Aes256Gcm`\" pulumi-lang-go=\"`aes256Gcm`\" pulumi-lang-python=\"`aes_256_gcm`\" pulumi-lang-yaml=\"`aes256Gcm`\" pulumi-lang-java=\"`aes256Gcm`\"\u003e`aes_256_gcm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha256`\" pulumi-lang-dotnet=\"`HmacSha256`\" pulumi-lang-go=\"`hmacSha256`\" pulumi-lang-python=\"`hmac_sha256`\" pulumi-lang-yaml=\"`hmacSha256`\" pulumi-lang-java=\"`hmacSha256`\"\u003e`hmac_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha384`\" pulumi-lang-dotnet=\"`HmacSha384`\" pulumi-lang-go=\"`hmacSha384`\" pulumi-lang-python=\"`hmac_sha384`\" pulumi-lang-yaml=\"`hmacSha384`\" pulumi-lang-java=\"`hmacSha384`\"\u003e`hmac_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha512`\" pulumi-lang-dotnet=\"`HmacSha512`\" pulumi-lang-go=\"`hmacSha512`\" pulumi-lang-python=\"`hmac_sha512`\" pulumi-lang-yaml=\"`hmacSha512`\" pulumi-lang-java=\"`hmacSha512`\"\u003e`hmac_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP256Sha256`\" pulumi-lang-dotnet=\"`EcdsaP256Sha256`\" pulumi-lang-go=\"`ecdsaP256Sha256`\" pulumi-lang-python=\"`ecdsa_p256_sha256`\" pulumi-lang-yaml=\"`ecdsaP256Sha256`\" pulumi-lang-java=\"`ecdsaP256Sha256`\"\u003e`ecdsa_p256_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP384Sha384`\" pulumi-lang-dotnet=\"`EcdsaP384Sha384`\" pulumi-lang-go=\"`ecdsaP384Sha384`\" pulumi-lang-python=\"`ecdsa_p384_sha384`\" pulumi-lang-yaml=\"`ecdsaP384Sha384`\" pulumi-lang-java=\"`ecdsaP384Sha384`\"\u003e`ecdsa_p384_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP521Sha512`\" pulumi-lang-dotnet=\"`EcdsaP521Sha512`\" pulumi-lang-go=\"`ecdsaP521Sha512`\" pulumi-lang-python=\"`ecdsa_p521_sha512`\" pulumi-lang-yaml=\"`ecdsaP521Sha512`\" pulumi-lang-java=\"`ecdsaP521Sha512`\"\u003e`ecdsa_p521_sha512`\u003c/span\u003e.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keys\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keys\n" + }, + "importOnly": { + "type": "boolean", + "description": "States whether versions can be created or only imported.\n" + }, + "keyId": { + "type": "string", + "description": "The ID of the key\n" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the key is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`symmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`SymmetricEncryptDecrypt`\" pulumi-lang-go=\"`symmetricEncryptDecrypt`\" pulumi-lang-python=\"`symmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`symmetricEncryptDecrypt`\" pulumi-lang-java=\"`symmetricEncryptDecrypt`\"\u003e`symmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`AsymmetricEncryptDecrypt`\" pulumi-lang-go=\"`asymmetricEncryptDecrypt`\" pulumi-lang-python=\"`asymmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`asymmetricEncryptDecrypt`\" pulumi-lang-java=\"`asymmetricEncryptDecrypt`\"\u003e`asymmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`messageAuthenticationCode`\" pulumi-lang-dotnet=\"`MessageAuthenticationCode`\" pulumi-lang-go=\"`messageAuthenticationCode`\" pulumi-lang-python=\"`message_authentication_code`\" pulumi-lang-yaml=\"`messageAuthenticationCode`\" pulumi-lang-java=\"`messageAuthenticationCode`\"\u003e`message_authentication_code`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricSignVerify`\" pulumi-lang-dotnet=\"`AsymmetricSignVerify`\" pulumi-lang-go=\"`asymmetricSignVerify`\" pulumi-lang-python=\"`asymmetric_sign_verify`\" pulumi-lang-yaml=\"`asymmetricSignVerify`\" pulumi-lang-java=\"`asymmetricSignVerify`\"\u003e`asymmetric_sign_verify`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "required": [ + "accessScope", + "algorithm", + "displayName", + "importOnly", + "keyId", + "keyringId", + "projectId", + "protection", + "purpose", + "region" + ], + "inputProperties": { + "accessScope": { + "type": "string", + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" + }, + "algorithm": { + "type": "string", + "description": "The encryption algorithm that the key will use to encrypt data. Possible values are: \u003cspan pulumi-lang-nodejs=\"`aes256Gcm`\" pulumi-lang-dotnet=\"`Aes256Gcm`\" pulumi-lang-go=\"`aes256Gcm`\" pulumi-lang-python=\"`aes_256_gcm`\" pulumi-lang-yaml=\"`aes256Gcm`\" pulumi-lang-java=\"`aes256Gcm`\"\u003e`aes_256_gcm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha256`\" pulumi-lang-dotnet=\"`HmacSha256`\" pulumi-lang-go=\"`hmacSha256`\" pulumi-lang-python=\"`hmac_sha256`\" pulumi-lang-yaml=\"`hmacSha256`\" pulumi-lang-java=\"`hmacSha256`\"\u003e`hmac_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha384`\" pulumi-lang-dotnet=\"`HmacSha384`\" pulumi-lang-go=\"`hmacSha384`\" pulumi-lang-python=\"`hmac_sha384`\" pulumi-lang-yaml=\"`hmacSha384`\" pulumi-lang-java=\"`hmacSha384`\"\u003e`hmac_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha512`\" pulumi-lang-dotnet=\"`HmacSha512`\" pulumi-lang-go=\"`hmacSha512`\" pulumi-lang-python=\"`hmac_sha512`\" pulumi-lang-yaml=\"`hmacSha512`\" pulumi-lang-java=\"`hmacSha512`\"\u003e`hmac_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP256Sha256`\" pulumi-lang-dotnet=\"`EcdsaP256Sha256`\" pulumi-lang-go=\"`ecdsaP256Sha256`\" pulumi-lang-python=\"`ecdsa_p256_sha256`\" pulumi-lang-yaml=\"`ecdsaP256Sha256`\" pulumi-lang-java=\"`ecdsaP256Sha256`\"\u003e`ecdsa_p256_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP384Sha384`\" pulumi-lang-dotnet=\"`EcdsaP384Sha384`\" pulumi-lang-go=\"`ecdsaP384Sha384`\" pulumi-lang-python=\"`ecdsa_p384_sha384`\" pulumi-lang-yaml=\"`ecdsaP384Sha384`\" pulumi-lang-java=\"`ecdsaP384Sha384`\"\u003e`ecdsa_p384_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP521Sha512`\" pulumi-lang-dotnet=\"`EcdsaP521Sha512`\" pulumi-lang-go=\"`ecdsaP521Sha512`\" pulumi-lang-python=\"`ecdsa_p521_sha512`\" pulumi-lang-yaml=\"`ecdsaP521Sha512`\" pulumi-lang-java=\"`ecdsaP521Sha512`\"\u003e`ecdsa_p521_sha512`\u003c/span\u003e.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keys\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keys\n" + }, + "importOnly": { + "type": "boolean", + "description": "States whether versions can be created or only imported.\n" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the key is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`symmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`SymmetricEncryptDecrypt`\" pulumi-lang-go=\"`symmetricEncryptDecrypt`\" pulumi-lang-python=\"`symmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`symmetricEncryptDecrypt`\" pulumi-lang-java=\"`symmetricEncryptDecrypt`\"\u003e`symmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`AsymmetricEncryptDecrypt`\" pulumi-lang-go=\"`asymmetricEncryptDecrypt`\" pulumi-lang-python=\"`asymmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`asymmetricEncryptDecrypt`\" pulumi-lang-java=\"`asymmetricEncryptDecrypt`\"\u003e`asymmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`messageAuthenticationCode`\" pulumi-lang-dotnet=\"`MessageAuthenticationCode`\" pulumi-lang-go=\"`messageAuthenticationCode`\" pulumi-lang-python=\"`message_authentication_code`\" pulumi-lang-yaml=\"`messageAuthenticationCode`\" pulumi-lang-java=\"`messageAuthenticationCode`\"\u003e`message_authentication_code`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricSignVerify`\" pulumi-lang-dotnet=\"`AsymmetricSignVerify`\" pulumi-lang-go=\"`asymmetricSignVerify`\" pulumi-lang-python=\"`asymmetric_sign_verify`\" pulumi-lang-yaml=\"`asymmetricSignVerify`\" pulumi-lang-java=\"`asymmetricSignVerify`\"\u003e`asymmetric_sign_verify`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "requiredInputs": [ + "algorithm", + "displayName", + "keyringId", + "projectId", + "protection", + "purpose" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering KmsKey resources.\n", + "properties": { + "accessScope": { + "type": "string", + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" + }, + "algorithm": { + "type": "string", + "description": "The encryption algorithm that the key will use to encrypt data. Possible values are: \u003cspan pulumi-lang-nodejs=\"`aes256Gcm`\" pulumi-lang-dotnet=\"`Aes256Gcm`\" pulumi-lang-go=\"`aes256Gcm`\" pulumi-lang-python=\"`aes_256_gcm`\" pulumi-lang-yaml=\"`aes256Gcm`\" pulumi-lang-java=\"`aes256Gcm`\"\u003e`aes_256_gcm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha256`\" pulumi-lang-dotnet=\"`HmacSha256`\" pulumi-lang-go=\"`hmacSha256`\" pulumi-lang-python=\"`hmac_sha256`\" pulumi-lang-yaml=\"`hmacSha256`\" pulumi-lang-java=\"`hmacSha256`\"\u003e`hmac_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha384`\" pulumi-lang-dotnet=\"`HmacSha384`\" pulumi-lang-go=\"`hmacSha384`\" pulumi-lang-python=\"`hmac_sha384`\" pulumi-lang-yaml=\"`hmacSha384`\" pulumi-lang-java=\"`hmacSha384`\"\u003e`hmac_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha512`\" pulumi-lang-dotnet=\"`HmacSha512`\" pulumi-lang-go=\"`hmacSha512`\" pulumi-lang-python=\"`hmac_sha512`\" pulumi-lang-yaml=\"`hmacSha512`\" pulumi-lang-java=\"`hmacSha512`\"\u003e`hmac_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP256Sha256`\" pulumi-lang-dotnet=\"`EcdsaP256Sha256`\" pulumi-lang-go=\"`ecdsaP256Sha256`\" pulumi-lang-python=\"`ecdsa_p256_sha256`\" pulumi-lang-yaml=\"`ecdsaP256Sha256`\" pulumi-lang-java=\"`ecdsaP256Sha256`\"\u003e`ecdsa_p256_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP384Sha384`\" pulumi-lang-dotnet=\"`EcdsaP384Sha384`\" pulumi-lang-go=\"`ecdsaP384Sha384`\" pulumi-lang-python=\"`ecdsa_p384_sha384`\" pulumi-lang-yaml=\"`ecdsaP384Sha384`\" pulumi-lang-java=\"`ecdsaP384Sha384`\"\u003e`ecdsa_p384_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP521Sha512`\" pulumi-lang-dotnet=\"`EcdsaP521Sha512`\" pulumi-lang-go=\"`ecdsaP521Sha512`\" pulumi-lang-python=\"`ecdsa_p521_sha512`\" pulumi-lang-yaml=\"`ecdsaP521Sha512`\" pulumi-lang-java=\"`ecdsaP521Sha512`\"\u003e`ecdsa_p521_sha512`\u003c/span\u003e.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keys\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keys\n" + }, + "importOnly": { + "type": "boolean", + "description": "States whether versions can be created or only imported.\n" + }, + "keyId": { + "type": "string", + "description": "The ID of the key\n" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the key is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`symmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`SymmetricEncryptDecrypt`\" pulumi-lang-go=\"`symmetricEncryptDecrypt`\" pulumi-lang-python=\"`symmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`symmetricEncryptDecrypt`\" pulumi-lang-java=\"`symmetricEncryptDecrypt`\"\u003e`symmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`AsymmetricEncryptDecrypt`\" pulumi-lang-go=\"`asymmetricEncryptDecrypt`\" pulumi-lang-python=\"`asymmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`asymmetricEncryptDecrypt`\" pulumi-lang-java=\"`asymmetricEncryptDecrypt`\"\u003e`asymmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`messageAuthenticationCode`\" pulumi-lang-dotnet=\"`MessageAuthenticationCode`\" pulumi-lang-go=\"`messageAuthenticationCode`\" pulumi-lang-python=\"`message_authentication_code`\" pulumi-lang-yaml=\"`messageAuthenticationCode`\" pulumi-lang-java=\"`messageAuthenticationCode`\"\u003e`message_authentication_code`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricSignVerify`\" pulumi-lang-dotnet=\"`AsymmetricSignVerify`\" pulumi-lang-go=\"`asymmetricSignVerify`\" pulumi-lang-python=\"`asymmetric_sign_verify`\" pulumi-lang-yaml=\"`asymmetricSignVerify`\" pulumi-lang-java=\"`asymmetricSignVerify`\"\u003e`asymmetric_sign_verify`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object" + } + }, + "stackit:index/kmsKeyring:KmsKeyring": { + "description": "## Example Usage\n\n```terraform\nresource \"stackit_kms_keyring\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n display_name = \"example-name\"\n description = \"example description\"\n}\n```\n", + "properties": { + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keyrings.\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keyrings.\n" + }, + "keyringId": { + "type": "string", + "description": "An auto generated unique id which identifies the keyring.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "required": [ + "displayName", + "keyringId", + "projectId", + "region" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keyrings.\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keyrings.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "requiredInputs": [ + "displayName", + "projectId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering KmsKeyring resources.\n", + "properties": { + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keyrings.\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keyrings.\n" + }, + "keyringId": { + "type": "string", + "description": "An auto generated unique id which identifies the keyring.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object" + } + }, + "stackit:index/kmsWrappingKey:KmsWrappingKey": { + "description": "KMS wrapping key resource schema.\n\n## Example Usage\n\n```terraform\nresource \"stackit_kms_wrapping_key\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n keyring_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n display_name = \"example-name\"\n protection = \"software\"\n algorithm = \"rsa_2048_oaep_sha256\"\n purpose = \"wrap_symmetric_key\"\n}\n```\n", + "properties": { + "accessScope": { + "type": "string", + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" + }, + "algorithm": { + "type": "string", + "description": "The wrapping algorithm used to wrap the key to import. Possible values are: \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa2048OaepSha256Aes256KeyWrap`\"\u003e`rsa_2048_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa3072OaepSha256Aes256KeyWrap`\"\u003e`rsa_3072_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha256Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha512Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha512_aes_256_key_wrap`\u003c/span\u003e.\n" + }, + "createdAt": { + "type": "string", + "description": "The date and time the creation of the wrapping key was triggered.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple wrapping keys.\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple wrapping keys.\n" + }, + "expiresAt": { + "type": "string", + "description": "The date and time the wrapping key will expire.\n" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" + }, + "publicKey": { + "type": "string", + "description": "The public key of the wrapping key.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`wrapSymmetricKey`\" pulumi-lang-dotnet=\"`WrapSymmetricKey`\" pulumi-lang-go=\"`wrapSymmetricKey`\" pulumi-lang-python=\"`wrap_symmetric_key`\" pulumi-lang-yaml=\"`wrapSymmetricKey`\" pulumi-lang-java=\"`wrapSymmetricKey`\"\u003e`wrap_symmetric_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wrapAsymmetricKey`\" pulumi-lang-dotnet=\"`WrapAsymmetricKey`\" pulumi-lang-go=\"`wrapAsymmetricKey`\" pulumi-lang-python=\"`wrap_asymmetric_key`\" pulumi-lang-yaml=\"`wrapAsymmetricKey`\" pulumi-lang-java=\"`wrapAsymmetricKey`\"\u003e`wrap_asymmetric_key`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "wrappingKeyId": { + "type": "string", + "description": "The ID of the wrapping key\n" + } + }, + "required": [ + "accessScope", + "algorithm", + "createdAt", + "displayName", + "expiresAt", + "keyringId", + "projectId", + "protection", + "publicKey", + "purpose", + "region", + "wrappingKeyId" + ], + "inputProperties": { + "accessScope": { + "type": "string", + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" + }, + "algorithm": { + "type": "string", + "description": "The wrapping algorithm used to wrap the key to import. Possible values are: \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa2048OaepSha256Aes256KeyWrap`\"\u003e`rsa_2048_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa3072OaepSha256Aes256KeyWrap`\"\u003e`rsa_3072_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha256Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha512Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha512_aes_256_key_wrap`\u003c/span\u003e.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple wrapping keys.\n" + }, + "displayName": { "type": "string", - "description": "The name of the SSH key pair.\n" + "description": "The display name to distinguish multiple wrapping keys.\n" }, - "publicKey": { + "keyringId": { "type": "string", - "description": "A string representation of the public SSH key. E.g., `ssh-rsa \u003ckey_data\u003e` or `ssh-ed25519 \u003ckey-data\u003e`.\n" + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`wrapSymmetricKey`\" pulumi-lang-dotnet=\"`WrapSymmetricKey`\" pulumi-lang-go=\"`wrapSymmetricKey`\" pulumi-lang-python=\"`wrap_symmetric_key`\" pulumi-lang-yaml=\"`wrapSymmetricKey`\" pulumi-lang-java=\"`wrapSymmetricKey`\"\u003e`wrap_symmetric_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wrapAsymmetricKey`\" pulumi-lang-dotnet=\"`WrapAsymmetricKey`\" pulumi-lang-go=\"`wrapAsymmetricKey`\" pulumi-lang-python=\"`wrap_asymmetric_key`\" pulumi-lang-yaml=\"`wrapAsymmetricKey`\" pulumi-lang-java=\"`wrapAsymmetricKey`\"\u003e`wrap_asymmetric_key`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" } }, "requiredInputs": [ - "publicKey" + "algorithm", + "displayName", + "keyringId", + "projectId", + "protection", + "purpose" ], "stateInputs": { - "description": "Input properties used for looking up and filtering KeyPair resources.\n", + "description": "Input properties used for looking up and filtering KmsWrappingKey resources.\n", "properties": { - "fingerprint": { + "accessScope": { "type": "string", - "description": "The fingerprint of the public SSH key.\n" + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Labels are key-value string pairs which can be attached to a resource container.\n" + "algorithm": { + "type": "string", + "description": "The wrapping algorithm used to wrap the key to import. Possible values are: \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa2048OaepSha256Aes256KeyWrap`\"\u003e`rsa_2048_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa3072OaepSha256Aes256KeyWrap`\"\u003e`rsa_3072_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha256Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha512Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha512_aes_256_key_wrap`\u003c/span\u003e.\n" }, - "name": { + "createdAt": { "type": "string", - "description": "The name of the SSH key pair.\n" + "description": "The date and time the creation of the wrapping key was triggered.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple wrapping keys.\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple wrapping keys.\n" + }, + "expiresAt": { + "type": "string", + "description": "The date and time the wrapping key will expire.\n" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" }, "publicKey": { "type": "string", - "description": "A string representation of the public SSH key. E.g., `ssh-rsa \u003ckey_data\u003e` or `ssh-ed25519 \u003ckey-data\u003e`.\n" + "description": "The public key of the wrapping key.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`wrapSymmetricKey`\" pulumi-lang-dotnet=\"`WrapSymmetricKey`\" pulumi-lang-go=\"`wrapSymmetricKey`\" pulumi-lang-python=\"`wrap_symmetric_key`\" pulumi-lang-yaml=\"`wrapSymmetricKey`\" pulumi-lang-java=\"`wrapSymmetricKey`\"\u003e`wrap_symmetric_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wrapAsymmetricKey`\" pulumi-lang-dotnet=\"`WrapAsymmetricKey`\" pulumi-lang-go=\"`wrapAsymmetricKey`\" pulumi-lang-python=\"`wrap_asymmetric_key`\" pulumi-lang-yaml=\"`wrapAsymmetricKey`\" pulumi-lang-java=\"`wrapAsymmetricKey`\"\u003e`wrap_asymmetric_key`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "wrappingKeyId": { + "type": "string", + "description": "The ID of the wrapping key\n" } }, "type": "object" } }, "stackit:index/loadbalancer:Loadbalancer": { - "description": "## Example Usage\n\n```terraform\n# Create a network\nresource \"stackit_network\" \"example_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-network\"\n ipv4_nameservers = [\"8.8.8.8\"]\n ipv4_prefix = \"192.168.0.0/25\"\n labels = {\n \"key\" = \"value\"\n }\n routed = true\n}\n\n# Create a network interface\nresource \"stackit_network_interface\" \"nic\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_id = stackit_network.example_network.network_id\n}\n\n# Create a public IP for the load balancer\nresource \"stackit_public_ip\" \"public-ip\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n lifecycle {\n ignore_changes = [network_interface_id]\n }\n}\n\n# Create a key pair for accessing the server instance\nresource \"stackit_key_pair\" \"keypair\" {\n name = \"example-key-pair\"\n public_key = chomp(file(\"path/to/id_rsa.pub\"))\n}\n\n# Create a server instance\nresource \"stackit_server\" \"boot-from-image\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"59838a89-51b1-4892-b57f-b3caf598ee2f\" // Ubuntu 24.04\n }\n availability_zone = \"xxxx-x\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n network_interfaces = [\n stackit_network_interface.nic.network_interface_id\n ]\n}\n\n# Create a load balancer\nresource \"stackit_loadbalancer\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-load-balancer\"\n plan_id = \"p10\"\n target_pools = [\n {\n name = \"example-target-pool\"\n target_port = 80\n targets = [\n {\n display_name = stackit_server.boot-from-image.name\n ip = stackit_network_interface.nic.ipv4\n }\n ]\n active_health_check = {\n healthy_threshold = 10\n interval = \"3s\"\n interval_jitter = \"3s\"\n timeout = \"3s\"\n unhealthy_threshold = 10\n }\n }\n ]\n listeners = [\n {\n display_name = \"example-listener\"\n port = 80\n protocol = \"PROTOCOL_TCP\"\n target_pool = \"example-target-pool\"\n }\n ]\n networks = [\n {\n network_id = stackit_network.example_network.network_id\n role = \"ROLE_LISTENERS_AND_TARGETS\"\n }\n ]\n external_address = stackit_public_ip.public-ip.ip\n options = {\n private_network_only = false\n }\n}\n\n# This example demonstrates an advanced setup where the Load Balancer is in one\n# network and the target server is in another. This requires manual\n# security group configuration using the `disable_security_group_assignment`\n# and `security_group_id` attributes.\n\n# We create two separate networks: one for the load balancer and one for the target.\nresource \"stackit_network\" \"lb_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"lb-network-example\"\n ipv4_prefix = \"192.168.10.0/25\"\n ipv4_nameservers = [\"8.8.8.8\"]\n}\n\nresource \"stackit_network\" \"target_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"target-network-example\"\n ipv4_prefix = \"192.168.10.0/25\"\n ipv4_nameservers = [\"8.8.8.8\"]\n}\n\nresource \"stackit_public_ip\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\nresource \"stackit_loadbalancer\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-advanced-lb\"\n external_address = stackit_public_ip.example.ip\n\n # Key setting for manual mode: disables automatic security group handling.\n disable_security_group_assignment = true\n\n networks = [{\n network_id = stackit_network.lb_network.network_id\n role = \"ROLE_LISTENERS_AND_TARGETS\"\n }]\n\n listeners = [{\n port = 80\n protocol = \"PROTOCOL_TCP\"\n target_pool = \"cross-network-pool\"\n }]\n\n target_pools = [{\n name = \"cross-network-pool\"\n target_port = 80\n targets = [{\n display_name = stackit_server.example.name\n ip = stackit_network_interface.nic.ipv4\n }]\n }]\n}\n\n# Create a new security group to be assigned to the target server.\nresource \"stackit_security_group\" \"target_sg\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"target-sg-for-lb-access\"\n description = \"Allows ingress traffic from the example load balancer.\"\n}\n\n# Create a rule to allow traffic FROM the load balancer.\n# This rule uses the computed `security_group_id` of the load balancer.\nresource \"stackit_security_group_rule\" \"allow_lb_ingress\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n security_group_id = stackit_security_group.target_sg.security_group_id\n direction = \"ingress\"\n protocol = {\n name = \"tcp\"\n }\n\n # This is the crucial link: it allows traffic from the LB's security group.\n remote_security_group_id = stackit_loadbalancer.example.security_group_id\n\n port_range = {\n min = 80\n max = 80\n }\n}\n\nresource \"stackit_server\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-remote-target\"\n machine_type = \"g2i.2\"\n availability_zone = \"eu01-1\"\n\n boot_volume = {\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n size = 10\n }\n\n network_interfaces = [\n stackit_network_interface.nic.network_interface_id\n ]\n}\n\nresource \"stackit_network_interface\" \"nic\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_id = stackit_network.target_network.network_id\n security_group_ids = [stackit_security_group.target_sg.security_group_id]\n}\n# End of advanced example\n\n# Only use the import statement, if you want to import an existing loadbalancer\nimport {\n to = stackit_loadbalancer.import-example\n id = \"${var.project_id},${var.region},${var.loadbalancer_name}\"\n}\n```\n", + "description": "## Example Usage\n\n```terraform\n# Create a network\nresource \"stackit_network\" \"example_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-network\"\n ipv4_nameservers = [\"8.8.8.8\"]\n ipv4_prefix = \"192.168.0.0/25\"\n labels = {\n \"key\" = \"value\"\n }\n routed = true\n}\n\n# Create a network interface\nresource \"stackit_network_interface\" \"nic\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_id = stackit_network.example_network.network_id\n}\n\n# Create a public IP for the load balancer\nresource \"stackit_public_ip\" \"public-ip\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n lifecycle {\n ignore_changes = [network_interface_id]\n }\n}\n\n# Create a key pair for accessing the server instance\nresource \"stackit_key_pair\" \"keypair\" {\n name = \"example-key-pair\"\n public_key = chomp(file(\"path/to/id_rsa.pub\"))\n}\n\n# Create a server instance\nresource \"stackit_server\" \"boot-from-image\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-server\"\n boot_volume = {\n size = 64\n source_type = \"image\"\n source_id = \"59838a89-51b1-4892-b57f-b3caf598ee2f\" // Ubuntu 24.04\n }\n availability_zone = \"xxxx-x\"\n machine_type = \"g2i.1\"\n keypair_name = stackit_key_pair.keypair.name\n network_interfaces = [\n stackit_network_interface.nic.network_interface_id\n ]\n}\n\n# Create a load balancer\nresource \"stackit_loadbalancer\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-load-balancer\"\n plan_id = \"p10\"\n target_pools = [\n {\n name = \"example-target-pool\"\n target_port = 80\n targets = [\n {\n display_name = stackit_server.boot-from-image.name\n ip = stackit_network_interface.nic.ipv4\n }\n ]\n active_health_check = {\n healthy_threshold = 10\n interval = \"3s\"\n interval_jitter = \"3s\"\n timeout = \"3s\"\n unhealthy_threshold = 10\n }\n }\n ]\n listeners = [\n {\n display_name = \"example-listener\"\n port = 80\n protocol = \"PROTOCOL_TCP\"\n target_pool = \"example-target-pool\"\n tcp = {\n idle_timeout = \"90s\"\n }\n }\n ]\n networks = [\n {\n network_id = stackit_network.example_network.network_id\n role = \"ROLE_LISTENERS_AND_TARGETS\"\n }\n ]\n external_address = stackit_public_ip.public-ip.ip\n options = {\n private_network_only = false\n }\n}\n\n# This example demonstrates an advanced setup where the Load Balancer is in one\n# network and the target server is in another. This requires manual\n# security group configuration using the `disable_security_group_assignment`\n# and `security_group_id` attributes.\n\n# We create two separate networks: one for the load balancer and one for the target.\nresource \"stackit_network\" \"lb_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"lb-network-example\"\n ipv4_prefix = \"192.168.10.0/25\"\n ipv4_nameservers = [\"8.8.8.8\"]\n}\n\nresource \"stackit_network\" \"target_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"target-network-example\"\n ipv4_prefix = \"192.168.10.0/25\"\n ipv4_nameservers = [\"8.8.8.8\"]\n}\n\nresource \"stackit_public_ip\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\nresource \"stackit_loadbalancer\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-advanced-lb\"\n external_address = stackit_public_ip.example.ip\n\n # Key setting for manual mode: disables automatic security group handling.\n disable_security_group_assignment = true\n\n networks = [{\n network_id = stackit_network.lb_network.network_id\n role = \"ROLE_LISTENERS_AND_TARGETS\"\n }]\n\n listeners = [{\n port = 80\n protocol = \"PROTOCOL_TCP\"\n target_pool = \"cross-network-pool\"\n }]\n\n target_pools = [{\n name = \"cross-network-pool\"\n target_port = 80\n targets = [{\n display_name = stackit_server.example.name\n ip = stackit_network_interface.nic.ipv4\n }]\n }]\n}\n\n# Create a new security group to be assigned to the target server.\nresource \"stackit_security_group\" \"target_sg\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"target-sg-for-lb-access\"\n description = \"Allows ingress traffic from the example load balancer.\"\n}\n\n# Create a rule to allow traffic FROM the load balancer.\n# This rule uses the computed `security_group_id` of the load balancer.\nresource \"stackit_security_group_rule\" \"allow_lb_ingress\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n security_group_id = stackit_security_group.target_sg.security_group_id\n direction = \"ingress\"\n protocol = {\n name = \"tcp\"\n }\n\n # This is the crucial link: it allows traffic from the LB's security group.\n remote_security_group_id = stackit_loadbalancer.example.security_group_id\n\n port_range = {\n min = 80\n max = 80\n }\n}\n\nresource \"stackit_server\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-remote-target\"\n machine_type = \"g2i.2\"\n availability_zone = \"eu01-1\"\n\n boot_volume = {\n source_type = \"image\"\n source_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n size = 10\n }\n\n network_interfaces = [\n stackit_network_interface.nic.network_interface_id\n ]\n}\n\nresource \"stackit_network_interface\" \"nic\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n network_id = stackit_network.target_network.network_id\n security_group_ids = [stackit_security_group.target_sg.security_group_id]\n}\n# End of advanced example\n\n# Only use the import statement, if you want to import an existing loadbalancer\nimport {\n to = stackit_loadbalancer.import-example\n id = \"${var.project_id},${var.region},${var.loadbalancer_name}\"\n}\n```\n", "properties": { "disableSecurityGroupAssignment": { "type": "boolean", @@ -7730,7 +8248,7 @@ } }, "stackit:index/network:Network": { - "description": "Network resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_network\" \"example_with_name\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-with-name\"\n}\n\nresource \"stackit_network\" \"example_routed_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-routed-network\"\n labels = {\n \"key\" = \"value\"\n }\n routed = true\n}\n\nresource \"stackit_network\" \"example_non_routed_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-non-routed-network\"\n ipv4_nameservers = [\"1.2.3.4\", \"5.6.7.8\"]\n ipv4_prefix_length = 24\n ipv4_gateway = \"10.1.2.3\"\n ipv4_prefix = \"10.1.2.0/24\"\n labels = {\n \"key\" = \"value\"\n }\n routed = false\n}\n\n# Only use the import statement, if you want to import an existing network\n# Note: There will be a conflict which needs to be resolved manually.\n# These attributes cannot be configured together: [ipv4_prefix,ipv4_prefix_length,ipv4_gateway]\nimport {\n to = stackit_network.import-example\n id = \"${var.project_id},${var.network_id}\"\n}\n```\n", + "description": "Network resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\u003e Behavior of not configured \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e will change from January 2026. When \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e is not set, it will be set to the network area's \u003cspan pulumi-lang-nodejs=\"`defaultNameservers`\" pulumi-lang-dotnet=\"`DefaultNameservers`\" pulumi-lang-go=\"`defaultNameservers`\" pulumi-lang-python=\"`default_nameservers`\" pulumi-lang-yaml=\"`defaultNameservers`\" pulumi-lang-java=\"`defaultNameservers`\"\u003e`default_nameservers`\u003c/span\u003e.\nTo prevent any nameserver configuration, the \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e attribute should be explicitly set to an empty list `[]`.\nIn cases where \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e are defined within the resource, the existing behavior will remain unchanged.\n\n## Example Usage\n\n```terraform\nresource \"stackit_network\" \"example_with_name\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-with-name\"\n}\n\nresource \"stackit_network\" \"example_routed_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-routed-network\"\n labels = {\n \"key\" = \"value\"\n }\n routed = true\n}\n\nresource \"stackit_network\" \"example_non_routed_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-non-routed-network\"\n ipv4_nameservers = [\"1.2.3.4\", \"5.6.7.8\"]\n ipv4_prefix_length = 24\n ipv4_gateway = \"10.1.2.3\"\n ipv4_prefix = \"10.1.2.0/24\"\n labels = {\n \"key\" = \"value\"\n }\n routed = false\n}\n\n# Only use the import statement, if you want to import an existing network\n# Note: There will be a conflict which needs to be resolved manually.\n# These attributes cannot be configured together: [ipv4_prefix,ipv4_prefix_length,ipv4_gateway]\nimport {\n to = stackit_network.import-example\n id = \"${var.project_id},${var.network_id}\"\n}\n```\n", "properties": { "ipv4Gateway": { "type": "string", @@ -7800,7 +8318,7 @@ "items": { "type": "string" }, - "description": "The nameservers of the network. This field is deprecated and will be removed soon, use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4.\n", + "description": "The nameservers of the network. This field is deprecated and will be removed in January 2026, use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4.\n", "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4." }, "networkId": { @@ -7820,7 +8338,7 @@ "items": { "type": "string" }, - "description": "The prefixes of the network. This field is deprecated and will be removed soon, use \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e to read the prefixes of the IPv4 networks.\n", + "description": "The prefixes of the network. This field is deprecated and will be removed in January 2026, use \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e to read the prefixes of the IPv4 networks.\n", "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e to read the prefixes of the IPv4 networks." }, "projectId": { @@ -7852,6 +8370,8 @@ "ipv4Prefixes", "ipv6Gateway", "ipv6Nameservers", + "ipv6Prefix", + "ipv6PrefixLength", "ipv6Prefixes", "name", "nameservers", @@ -7918,7 +8438,7 @@ "items": { "type": "string" }, - "description": "The nameservers of the network. This field is deprecated and will be removed soon, use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4.\n", + "description": "The nameservers of the network. This field is deprecated and will be removed in January 2026, use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4.\n", "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4." }, "noIpv4Gateway": { @@ -8020,7 +8540,7 @@ "items": { "type": "string" }, - "description": "The nameservers of the network. This field is deprecated and will be removed soon, use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4.\n", + "description": "The nameservers of the network. This field is deprecated and will be removed in January 2026, use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4.\n", "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e to configure the nameservers for IPv4." }, "networkId": { @@ -8040,7 +8560,7 @@ "items": { "type": "string" }, - "description": "The prefixes of the network. This field is deprecated and will be removed soon, use \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e to read the prefixes of the IPv4 networks.\n", + "description": "The prefixes of the network. This field is deprecated and will be removed in January 2026, use \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e to read the prefixes of the IPv4 networks.\n", "deprecationMessage": "Use \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e to read the prefixes of the IPv4 networks." }, "projectId": { @@ -8408,7 +8928,7 @@ }, "type": { "type": "string", - "description": "Type of network interface. Some of the possible values are: Supported values are: \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gateway`\" pulumi-lang-dotnet=\"`Gateway`\" pulumi-lang-go=\"`gateway`\" pulumi-lang-python=\"`gateway`\" pulumi-lang-yaml=\"`gateway`\" pulumi-lang-java=\"`gateway`\"\u003e`gateway`\u003c/span\u003e.\n" + "description": "Type of network interface. Some of the possible values are: Possible values are: \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gateway`\" pulumi-lang-dotnet=\"`Gateway`\" pulumi-lang-go=\"`gateway`\" pulumi-lang-python=\"`gateway`\" pulumi-lang-yaml=\"`gateway`\" pulumi-lang-java=\"`gateway`\"\u003e`gateway`\u003c/span\u003e.\n" } }, "required": [ @@ -8529,7 +9049,7 @@ }, "type": { "type": "string", - "description": "Type of network interface. Some of the possible values are: Supported values are: \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gateway`\" pulumi-lang-dotnet=\"`Gateway`\" pulumi-lang-go=\"`gateway`\" pulumi-lang-python=\"`gateway`\" pulumi-lang-yaml=\"`gateway`\" pulumi-lang-java=\"`gateway`\"\u003e`gateway`\u003c/span\u003e.\n" + "description": "Type of network interface. Some of the possible values are: Possible values are: \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gateway`\" pulumi-lang-dotnet=\"`Gateway`\" pulumi-lang-go=\"`gateway`\" pulumi-lang-python=\"`gateway`\" pulumi-lang-yaml=\"`gateway`\" pulumi-lang-java=\"`gateway`\"\u003e`gateway`\u003c/span\u003e.\n" } }, "type": "object" @@ -8956,7 +9476,7 @@ } }, "stackit:index/observabilityInstance:ObservabilityInstance": { - "description": "Observability instance resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_observability_instance\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-instance\"\n plan_name = \"Observability-Monitoring-Medium-EU01\"\n acl = [\"1.1.1.1/32\", \"2.2.2.2/32\"]\n metrics_retention_days = 90\n metrics_retention_days_5m_downsampling = 90\n metrics_retention_days_1h_downsampling = 90\n}\n\n# Only use the import statement, if you want to import an existing observability instance\nimport {\n to = stackit_observability_instance.import-example\n id = \"${var.project_id},${var.observability_instance_id}\"\n}\n```\n", + "description": "Observability instance resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_observability_instance\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-instance\"\n plan_name = \"Observability-Starter-EU01\"\n acl = [\"1.1.1.1/32\", \"2.2.2.2/32\"]\n logs_retention_days = 30\n traces_retention_days = 30\n metrics_retention_days = 90\n metrics_retention_days_5m_downsampling = 90\n metrics_retention_days_1h_downsampling = 90\n}\n\n# Only use the import statement, if you want to import an existing observability instance\nimport {\n to = stackit_observability_instance.import-example\n id = \"${var.project_id},${var.observability_instance_id}\"\n}\n```\n", "properties": { "acls": { "type": "array", @@ -9012,6 +9532,10 @@ "type": "string", "description": "Specifies URL for pushing logs.\n" }, + "logsRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the logs are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" + }, "logsUrl": { "type": "string", "description": "Specifies Logs URL.\n" @@ -9066,6 +9590,10 @@ "type": "string", "description": "Specifies Targets URL.\n" }, + "tracesRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the traces are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" + }, "zipkinSpansUrl": { "type": "string" } @@ -9082,6 +9610,7 @@ "jaegerTracesUrl", "jaegerUiUrl", "logsPushUrl", + "logsRetentionDays", "logsUrl", "metricsPushUrl", "metricsRetentionDays", @@ -9095,6 +9624,7 @@ "planName", "projectId", "targetsUrl", + "tracesRetentionDays", "zipkinSpansUrl" ], "inputProperties": { @@ -9109,6 +9639,10 @@ "$ref": "#/types/stackit:index/ObservabilityInstanceAlertConfig:ObservabilityInstanceAlertConfig", "description": "Alert configuration for the instance.\n" }, + "logsRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the logs are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" + }, "metricsRetentionDays": { "type": "integer", "description": "Specifies for how many days the raw metrics are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e.\n" @@ -9139,6 +9673,10 @@ "projectId": { "type": "string", "description": "STACKIT project ID to which the instance is associated.\n" + }, + "tracesRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the traces are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" } }, "requiredInputs": [ @@ -9202,6 +9740,10 @@ "type": "string", "description": "Specifies URL for pushing logs.\n" }, + "logsRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the logs are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" + }, "logsUrl": { "type": "string", "description": "Specifies Logs URL.\n" @@ -9256,6 +9798,10 @@ "type": "string", "description": "Specifies Targets URL.\n" }, + "tracesRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the traces are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" + }, "zipkinSpansUrl": { "type": "string" } @@ -10046,7 +10592,7 @@ "items": { "type": "string" }, - "description": "Database access levels for the user. Supported values are: \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdb`\" pulumi-lang-dotnet=\"`Createdb`\" pulumi-lang-go=\"`createdb`\" pulumi-lang-python=\"`createdb`\" pulumi-lang-yaml=\"`createdb`\" pulumi-lang-java=\"`createdb`\"\u003e`createdb`\u003c/span\u003e.\n" + "description": "Database access levels for the user. Possible values are: \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdb`\" pulumi-lang-dotnet=\"`Createdb`\" pulumi-lang-go=\"`createdb`\" pulumi-lang-python=\"`createdb`\" pulumi-lang-yaml=\"`createdb`\" pulumi-lang-java=\"`createdb`\"\u003e`createdb`\u003c/span\u003e.\n" }, "uri": { "type": "string", @@ -10090,7 +10636,7 @@ "items": { "type": "string" }, - "description": "Database access levels for the user. Supported values are: \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdb`\" pulumi-lang-dotnet=\"`Createdb`\" pulumi-lang-go=\"`createdb`\" pulumi-lang-python=\"`createdb`\" pulumi-lang-yaml=\"`createdb`\" pulumi-lang-java=\"`createdb`\"\u003e`createdb`\u003c/span\u003e.\n" + "description": "Database access levels for the user. Possible values are: \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdb`\" pulumi-lang-dotnet=\"`Createdb`\" pulumi-lang-go=\"`createdb`\" pulumi-lang-python=\"`createdb`\" pulumi-lang-yaml=\"`createdb`\" pulumi-lang-java=\"`createdb`\"\u003e`createdb`\u003c/span\u003e.\n" }, "username": { "type": "string" @@ -10132,7 +10678,7 @@ "items": { "type": "string" }, - "description": "Database access levels for the user. Supported values are: \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdb`\" pulumi-lang-dotnet=\"`Createdb`\" pulumi-lang-go=\"`createdb`\" pulumi-lang-python=\"`createdb`\" pulumi-lang-yaml=\"`createdb`\" pulumi-lang-java=\"`createdb`\"\u003e`createdb`\u003c/span\u003e.\n" + "description": "Database access levels for the user. Possible values are: \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdb`\" pulumi-lang-dotnet=\"`Createdb`\" pulumi-lang-go=\"`createdb`\" pulumi-lang-python=\"`createdb`\" pulumi-lang-yaml=\"`createdb`\" pulumi-lang-java=\"`createdb`\"\u003e`createdb`\u003c/span\u003e.\n" }, "uri": { "type": "string", @@ -10829,7 +11375,7 @@ } }, "stackit:index/resourcemanagerFolder:ResourcemanagerFolder": { - "description": "Resource Manager folder resource schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_resourcemanager_folder\" \"example\" {\n name = \"example-folder\"\n owner_email = \"foo.bar@stackit.cloud\"\n parent_container_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\n# Note:\n# You can add projects under folders.\n# However, when deleting a project, be aware:\n# - Projects may remain \"invisible\" for up to 7 days after deletion\n# - During this time, deleting the parent folder may fail because the project is still technically linked\nresource \"stackit_resourcemanager_project\" \"example_project\" {\n name = \"example-project\"\n owner_email = \"foo.bar@stackit.cloud\"\n parent_container_id = stackit_resourcemanager_folder.example.container_id\n}\n\n# Only use the import statement, if you want to import an existing resourcemanager folder\n# Note: There will be a conflict which needs to be resolved manually.\n# Must set a configuration value for the owner_email attribute as the provider has marked it as required.\nimport {\n to = stackit_resourcemanager_folder.import-example\n id = var.container_id\n}\n```\n", + "description": "Resource Manager folder resource schema.\n\n## Example Usage\n\n```terraform\nresource \"stackit_resourcemanager_folder\" \"example\" {\n name = \"example-folder\"\n owner_email = \"foo.bar@stackit.cloud\"\n parent_container_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n\n# Note:\n# You can add projects under folders.\n# However, when deleting a project, be aware:\n# - Projects may remain \"invisible\" for up to 7 days after deletion\n# - During this time, deleting the parent folder may fail because the project is still technically linked\nresource \"stackit_resourcemanager_project\" \"example_project\" {\n name = \"example-project\"\n owner_email = \"foo.bar@stackit.cloud\"\n parent_container_id = stackit_resourcemanager_folder.example.container_id\n}\n\n# Only use the import statement, if you want to import an existing resourcemanager folder\n# Note: There will be a conflict which needs to be resolved manually.\n# Must set a configuration value for the owner_email attribute as the provider has marked it as required.\nimport {\n to = stackit_resourcemanager_folder.import-example\n id = var.container_id\n}\n```\n", "properties": { "containerId": { "type": "string", @@ -11882,7 +12428,7 @@ }, "direction": { "type": "string", - "description": "The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" + "description": "The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" }, "etherType": { "type": "string", @@ -11938,7 +12484,7 @@ }, "direction": { "type": "string", - "description": "The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" + "description": "The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" }, "etherType": { "type": "string", @@ -11987,7 +12533,7 @@ }, "direction": { "type": "string", - "description": "The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" + "description": "The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" }, "etherType": { "type": "string", @@ -12050,7 +12596,7 @@ }, "desiredStatus": { "type": "string", - "description": "The desired status of the server resource. Supported values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deallocated`\" pulumi-lang-dotnet=\"`Deallocated`\" pulumi-lang-go=\"`deallocated`\" pulumi-lang-python=\"`deallocated`\" pulumi-lang-yaml=\"`deallocated`\" pulumi-lang-java=\"`deallocated`\"\u003e`deallocated`\u003c/span\u003e.\n" + "description": "The desired status of the server resource. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deallocated`\" pulumi-lang-dotnet=\"`Deallocated`\" pulumi-lang-go=\"`deallocated`\" pulumi-lang-python=\"`deallocated`\" pulumi-lang-yaml=\"`deallocated`\" pulumi-lang-java=\"`deallocated`\"\u003e`deallocated`\u003c/span\u003e.\n" }, "imageId": { "type": "string", @@ -12128,7 +12674,7 @@ }, "desiredStatus": { "type": "string", - "description": "The desired status of the server resource. Supported values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deallocated`\" pulumi-lang-dotnet=\"`Deallocated`\" pulumi-lang-go=\"`deallocated`\" pulumi-lang-python=\"`deallocated`\" pulumi-lang-yaml=\"`deallocated`\" pulumi-lang-java=\"`deallocated`\"\u003e`deallocated`\u003c/span\u003e.\n" + "description": "The desired status of the server resource. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deallocated`\" pulumi-lang-dotnet=\"`Deallocated`\" pulumi-lang-go=\"`deallocated`\" pulumi-lang-python=\"`deallocated`\" pulumi-lang-yaml=\"`deallocated`\" pulumi-lang-java=\"`deallocated`\"\u003e`deallocated`\u003c/span\u003e.\n" }, "imageId": { "type": "string", @@ -12194,7 +12740,7 @@ }, "desiredStatus": { "type": "string", - "description": "The desired status of the server resource. Supported values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deallocated`\" pulumi-lang-dotnet=\"`Deallocated`\" pulumi-lang-go=\"`deallocated`\" pulumi-lang-python=\"`deallocated`\" pulumi-lang-yaml=\"`deallocated`\" pulumi-lang-java=\"`deallocated`\"\u003e`deallocated`\u003c/span\u003e.\n" + "description": "The desired status of the server resource. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deallocated`\" pulumi-lang-dotnet=\"`Deallocated`\" pulumi-lang-go=\"`deallocated`\" pulumi-lang-python=\"`deallocated`\" pulumi-lang-yaml=\"`deallocated`\" pulumi-lang-java=\"`deallocated`\"\u003e`deallocated`\u003c/span\u003e.\n" }, "imageId": { "type": "string", @@ -14590,6 +15136,272 @@ ] } }, + "stackit:index/getKmsKey:getKmsKey": { + "description": "KMS Key datasource schema. Uses the \u003cspan pulumi-lang-nodejs=\"`defaultRegion`\" pulumi-lang-dotnet=\"`DefaultRegion`\" pulumi-lang-go=\"`defaultRegion`\" pulumi-lang-python=\"`default_region`\" pulumi-lang-yaml=\"`defaultRegion`\" pulumi-lang-java=\"`defaultRegion`\"\u003e`default_region`\u003c/span\u003e specified in the provider configuration as a fallback in case no \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e is defined on datasource level.\n\n## Example Usage\n\n```terraform\ndata \"stackit_kms_key\" \"key\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n keyring_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n key_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getKmsKey.\n", + "properties": { + "keyId": { + "type": "string", + "description": "The ID of the key\n" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated key ring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the key is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object", + "required": [ + "keyId", + "keyringId", + "projectId" + ] + }, + "outputs": { + "description": "A collection of values returned by getKmsKey.\n", + "properties": { + "accessScope": { + "type": "string", + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" + }, + "algorithm": { + "type": "string", + "description": "The encryption algorithm that the key will use to encrypt data. Possible values are: \u003cspan pulumi-lang-nodejs=\"`aes256Gcm`\" pulumi-lang-dotnet=\"`Aes256Gcm`\" pulumi-lang-go=\"`aes256Gcm`\" pulumi-lang-python=\"`aes_256_gcm`\" pulumi-lang-yaml=\"`aes256Gcm`\" pulumi-lang-java=\"`aes256Gcm`\"\u003e`aes_256_gcm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha256`\" pulumi-lang-dotnet=\"`HmacSha256`\" pulumi-lang-go=\"`hmacSha256`\" pulumi-lang-python=\"`hmac_sha256`\" pulumi-lang-yaml=\"`hmacSha256`\" pulumi-lang-java=\"`hmacSha256`\"\u003e`hmac_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha384`\" pulumi-lang-dotnet=\"`HmacSha384`\" pulumi-lang-go=\"`hmacSha384`\" pulumi-lang-python=\"`hmac_sha384`\" pulumi-lang-yaml=\"`hmacSha384`\" pulumi-lang-java=\"`hmacSha384`\"\u003e`hmac_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hmacSha512`\" pulumi-lang-dotnet=\"`HmacSha512`\" pulumi-lang-go=\"`hmacSha512`\" pulumi-lang-python=\"`hmac_sha512`\" pulumi-lang-yaml=\"`hmacSha512`\" pulumi-lang-java=\"`hmacSha512`\"\u003e`hmac_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP256Sha256`\" pulumi-lang-dotnet=\"`EcdsaP256Sha256`\" pulumi-lang-go=\"`ecdsaP256Sha256`\" pulumi-lang-python=\"`ecdsa_p256_sha256`\" pulumi-lang-yaml=\"`ecdsaP256Sha256`\" pulumi-lang-java=\"`ecdsaP256Sha256`\"\u003e`ecdsa_p256_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP384Sha384`\" pulumi-lang-dotnet=\"`EcdsaP384Sha384`\" pulumi-lang-go=\"`ecdsaP384Sha384`\" pulumi-lang-python=\"`ecdsa_p384_sha384`\" pulumi-lang-yaml=\"`ecdsaP384Sha384`\" pulumi-lang-java=\"`ecdsaP384Sha384`\"\u003e`ecdsa_p384_sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsaP521Sha512`\" pulumi-lang-dotnet=\"`EcdsaP521Sha512`\" pulumi-lang-go=\"`ecdsaP521Sha512`\" pulumi-lang-python=\"`ecdsa_p521_sha512`\" pulumi-lang-yaml=\"`ecdsaP521Sha512`\" pulumi-lang-java=\"`ecdsaP521Sha512`\"\u003e`ecdsa_p521_sha512`\u003c/span\u003e.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keys\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keys\n" + }, + "id": { + "type": "string" + }, + "importOnly": { + "type": "boolean", + "description": "States whether versions can be created or only imported.\n" + }, + "keyId": { + "type": "string", + "description": "The ID of the key\n" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated key ring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the key is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`symmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`SymmetricEncryptDecrypt`\" pulumi-lang-go=\"`symmetricEncryptDecrypt`\" pulumi-lang-python=\"`symmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`symmetricEncryptDecrypt`\" pulumi-lang-java=\"`symmetricEncryptDecrypt`\"\u003e`symmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricEncryptDecrypt`\" pulumi-lang-dotnet=\"`AsymmetricEncryptDecrypt`\" pulumi-lang-go=\"`asymmetricEncryptDecrypt`\" pulumi-lang-python=\"`asymmetric_encrypt_decrypt`\" pulumi-lang-yaml=\"`asymmetricEncryptDecrypt`\" pulumi-lang-java=\"`asymmetricEncryptDecrypt`\"\u003e`asymmetric_encrypt_decrypt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`messageAuthenticationCode`\" pulumi-lang-dotnet=\"`MessageAuthenticationCode`\" pulumi-lang-go=\"`messageAuthenticationCode`\" pulumi-lang-python=\"`message_authentication_code`\" pulumi-lang-yaml=\"`messageAuthenticationCode`\" pulumi-lang-java=\"`messageAuthenticationCode`\"\u003e`message_authentication_code`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`asymmetricSignVerify`\" pulumi-lang-dotnet=\"`AsymmetricSignVerify`\" pulumi-lang-go=\"`asymmetricSignVerify`\" pulumi-lang-python=\"`asymmetric_sign_verify`\" pulumi-lang-yaml=\"`asymmetricSignVerify`\" pulumi-lang-java=\"`asymmetricSignVerify`\"\u003e`asymmetric_sign_verify`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object", + "required": [ + "accessScope", + "algorithm", + "description", + "displayName", + "id", + "importOnly", + "keyId", + "keyringId", + "projectId", + "protection", + "purpose", + "region" + ] + } + }, + "stackit:index/getKmsKeyring:getKmsKeyring": { + "description": "KMS Keyring datasource schema. Uses the \u003cspan pulumi-lang-nodejs=\"`defaultRegion`\" pulumi-lang-dotnet=\"`DefaultRegion`\" pulumi-lang-go=\"`defaultRegion`\" pulumi-lang-python=\"`default_region`\" pulumi-lang-yaml=\"`defaultRegion`\" pulumi-lang-java=\"`defaultRegion`\"\u003e`default_region`\u003c/span\u003e specified in the provider configuration as a fallback in case no \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e is defined on datasource level.\n\n## Example Usage\n\n```terraform\ndata \"stackit_kms_keyring\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n keyring_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getKmsKeyring.\n", + "properties": { + "keyringId": { + "type": "string", + "description": "An auto generated unique id which identifies the keyring.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object", + "required": [ + "keyringId", + "projectId" + ] + }, + "outputs": { + "description": "A collection of values returned by getKmsKeyring.\n", + "properties": { + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple keyrings.\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple keyrings.\n" + }, + "id": { + "type": "string" + }, + "keyringId": { + "type": "string", + "description": "An auto generated unique id which identifies the keyring.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + } + }, + "type": "object", + "required": [ + "description", + "displayName", + "id", + "keyringId", + "projectId", + "region" + ] + } + }, + "stackit:index/getKmsWrappingKey:getKmsWrappingKey": { + "description": "KMS wrapping key datasource schema.\n\n## Example Usage\n\n```terraform\ndata \"stackit_kms_wrapping_key\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n keyring_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n wrapping_key_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getKmsWrappingKey.\n", + "properties": { + "keyringId": { + "type": "string", + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "wrappingKeyId": { + "type": "string", + "description": "The ID of the wrapping key\n" + } + }, + "type": "object", + "required": [ + "keyringId", + "projectId", + "wrappingKeyId" + ] + }, + "outputs": { + "description": "A collection of values returned by getKmsWrappingKey.\n", + "properties": { + "accessScope": { + "type": "string", + "description": "The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`.\n" + }, + "algorithm": { + "type": "string", + "description": "The wrapping algorithm used to wrap the key to import. Possible values are: \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256`\" pulumi-lang-go=\"`rsa2048OaepSha256`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256`\" pulumi-lang-yaml=\"`rsa2048OaepSha256`\" pulumi-lang-java=\"`rsa2048OaepSha256`\"\u003e`rsa_2048_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256`\" pulumi-lang-go=\"`rsa3072OaepSha256`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256`\" pulumi-lang-yaml=\"`rsa3072OaepSha256`\" pulumi-lang-java=\"`rsa3072OaepSha256`\"\u003e`rsa_3072_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256`\" pulumi-lang-go=\"`rsa4096OaepSha256`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256`\" pulumi-lang-yaml=\"`rsa4096OaepSha256`\" pulumi-lang-java=\"`rsa4096OaepSha256`\"\u003e`rsa_4096_oaep_sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512`\" pulumi-lang-go=\"`rsa4096OaepSha512`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512`\" pulumi-lang-yaml=\"`rsa4096OaepSha512`\" pulumi-lang-java=\"`rsa4096OaepSha512`\"\u003e`rsa_4096_oaep_sha512`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_2048_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa2048OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa2048OaepSha256Aes256KeyWrap`\"\u003e`rsa_2048_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_3072_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa3072OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa3072OaepSha256Aes256KeyWrap`\"\u003e`rsa_3072_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha256_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha256Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha256Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha256_aes_256_key_wrap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-dotnet=\"`Rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-go=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-python=\"`rsa_4096_oaep_sha512_aes_256_key_wrap`\" pulumi-lang-yaml=\"`rsa4096OaepSha512Aes256KeyWrap`\" pulumi-lang-java=\"`rsa4096OaepSha512Aes256KeyWrap`\"\u003e`rsa_4096_oaep_sha512_aes_256_key_wrap`\u003c/span\u003e.\n" + }, + "createdAt": { + "type": "string", + "description": "The date and time the creation of the wrapping key was triggered.\n" + }, + "description": { + "type": "string", + "description": "A user chosen description to distinguish multiple wrapping keys.\n" + }, + "displayName": { + "type": "string", + "description": "The display name to distinguish multiple wrapping keys.\n" + }, + "expiresAt": { + "type": "string", + "description": "The date and time the wrapping key will expire.\n" + }, + "id": { + "type": "string" + }, + "keyringId": { + "type": "string", + "description": "The ID of the associated keyring\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID to which the keyring is associated.\n" + }, + "protection": { + "type": "string", + "description": "The underlying system that is responsible for protecting the key material. Possible values are: \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e.\n" + }, + "publicKey": { + "type": "string", + "description": "The public key of the wrapping key.\n" + }, + "purpose": { + "type": "string", + "description": "The purpose for which the key will be used. Possible values are: \u003cspan pulumi-lang-nodejs=\"`wrapSymmetricKey`\" pulumi-lang-dotnet=\"`WrapSymmetricKey`\" pulumi-lang-go=\"`wrapSymmetricKey`\" pulumi-lang-python=\"`wrap_symmetric_key`\" pulumi-lang-yaml=\"`wrapSymmetricKey`\" pulumi-lang-java=\"`wrapSymmetricKey`\"\u003e`wrap_symmetric_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wrapAsymmetricKey`\" pulumi-lang-dotnet=\"`WrapAsymmetricKey`\" pulumi-lang-go=\"`wrapAsymmetricKey`\" pulumi-lang-python=\"`wrap_asymmetric_key`\" pulumi-lang-yaml=\"`wrapAsymmetricKey`\" pulumi-lang-java=\"`wrapAsymmetricKey`\"\u003e`wrap_asymmetric_key`\u003c/span\u003e.\n" + }, + "region": { + "type": "string", + "description": "The resource region. If not defined, the provider region is used.\n" + }, + "wrappingKeyId": { + "type": "string", + "description": "The ID of the wrapping key\n" + } + }, + "type": "object", + "required": [ + "accessScope", + "algorithm", + "createdAt", + "description", + "displayName", + "expiresAt", + "id", + "keyringId", + "projectId", + "protection", + "publicKey", + "purpose", + "region", + "wrappingKeyId" + ] + } + }, "stackit:index/getLoadbalancer:getLoadbalancer": { "description": "Load Balancer data source schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\ndata \"stackit_loadbalancer\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-load-balancer\"\n}\n```\n", "inputs": { @@ -15695,7 +16507,7 @@ }, "type": { "type": "string", - "description": "Type of network interface. Some of the possible values are: Supported values are: \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gateway`\" pulumi-lang-dotnet=\"`Gateway`\" pulumi-lang-go=\"`gateway`\" pulumi-lang-python=\"`gateway`\" pulumi-lang-yaml=\"`gateway`\" pulumi-lang-java=\"`gateway`\"\u003e`gateway`\u003c/span\u003e.\n" + "description": "Type of network interface. Some of the possible values are: Possible values are: \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gateway`\" pulumi-lang-dotnet=\"`Gateway`\" pulumi-lang-go=\"`gateway`\" pulumi-lang-python=\"`gateway`\" pulumi-lang-yaml=\"`gateway`\" pulumi-lang-java=\"`gateway`\"\u003e`gateway`\u003c/span\u003e.\n" } }, "type": "object", @@ -16050,6 +16862,10 @@ "type": "string", "description": "Specifies URL for pushing logs.\n" }, + "logsRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the logs are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" + }, "logsUrl": { "type": "string", "description": "Specifies Logs URL.\n" @@ -16104,6 +16920,10 @@ "type": "string", "description": "Specifies Targets URL.\n" }, + "tracesRetentionDays": { + "type": "integer", + "description": "Specifies for how many days the traces are kept. Default is set to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n" + }, "zipkinSpansUrl": { "type": "string" } @@ -16124,6 +16944,7 @@ "jaegerTracesUrl", "jaegerUiUrl", "logsPushUrl", + "logsRetentionDays", "logsUrl", "metricsPushUrl", "metricsRetentionDays", @@ -16137,6 +16958,7 @@ "planName", "projectId", "targetsUrl", + "tracesRetentionDays", "zipkinSpansUrl" ] } @@ -17168,7 +17990,7 @@ } }, "stackit:index/getResourcemanagerFolder:getResourcemanagerFolder": { - "description": "Resource Manager folder data source schema. To identify the folder, you need to provide the container_id.\n\n\u003e This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\ndata \"stackit_resourcemanager_folder\" \"example\" {\n container_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "description": "Resource Manager folder data source schema. To identify the folder, you need to provide the container_id.\n\n## Example Usage\n\n```terraform\ndata \"stackit_resourcemanager_folder\" \"example\" {\n container_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", "inputs": { "description": "A collection of arguments for invoking getResourcemanagerFolder.\n", "properties": { @@ -18084,7 +18906,7 @@ }, "direction": { "type": "string", - "description": "The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" + "description": "The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n" }, "etherType": { "type": "string", diff --git a/provider/go.mod b/provider/go.mod index cf0e3380..849a2a4b 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -83,7 +83,7 @@ require ( github.com/hashicorp/terraform-plugin-framework v1.16.1 // 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/hashicorp/terraform-plugin-log v0.10.0 // indirect github.com/hashicorp/terraform-plugin-sdk v1.8.0 // indirect github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0 // indirect github.com/hashicorp/terraform-registry-address v0.4.0 // indirect @@ -119,7 +119,7 @@ require ( github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect github.com/natefinch/atomic v1.0.1 // indirect - github.com/oklog/run v1.1.0 // indirect + github.com/oklog/run v1.2.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/opentofu/registry-address v0.0.0-20230922120653-901b9ae4061a // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect @@ -152,20 +152,21 @@ require ( github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cobra v1.10.1 // indirect github.com/spf13/pflag v1.0.9 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.17.3 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.19.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/authorization v0.9.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/cdn v1.5.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/cdn v1.6.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/git v0.8.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha // indirect + github.com/stackitcloud/stackit-sdk-go/services/kms v1.0.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.2 // indirect github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/observability v0.14.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/observability v0.15.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.2.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.1 // indirect @@ -179,7 +180,7 @@ require ( github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.2 // indirect github.com/stackitcloud/stackit-sdk-go/services/ske v1.4.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.3.1 // indirect - github.com/stackitcloud/terraform-provider-stackit v0.68.0 // indirect + github.com/stackitcloud/terraform-provider-stackit v0.71.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/teambition/rrule-go v1.8.2 // indirect github.com/teekennedy/goldmark-markdown v0.3.0 // indirect @@ -203,7 +204,7 @@ require ( go.uber.org/atomic v1.9.0 // indirect golang.org/x/crypto v0.45.0 // indirect golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect - golang.org/x/mod v0.29.0 // indirect + golang.org/x/mod v0.30.0 // indirect golang.org/x/net v0.47.0 // indirect golang.org/x/oauth2 v0.30.0 // indirect golang.org/x/sync v0.18.0 // indirect @@ -211,7 +212,7 @@ require ( golang.org/x/term v0.37.0 // indirect golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.38.0 // indirect + golang.org/x/tools v0.39.0 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect diff --git a/provider/go.sum b/provider/go.sum index 38543eb7..dc4d9276 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1054,8 +1054,8 @@ github.com/hashicorp/terraform-plugin-framework-validators v0.19.0 h1:Zz3iGgzxe/ 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-log v0.10.0 h1:eu2kW6/QBVdN4P3Ju2WiB2W3ObjkAsyfBsL3Wh1fj3g= +github.com/hashicorp/terraform-plugin-log v0.10.0/go.mod h1:/9RR5Cv2aAbrqcTSdNmY1NRHP4E3ekrXRGjqORpXyB0= github.com/hashicorp/terraform-plugin-sdk v1.8.0 h1:HE1p52nzcgz88hIJmapUnkmM9noEjV3QhTOLaua5XUA= github.com/hashicorp/terraform-plugin-sdk v1.8.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= @@ -1215,8 +1215,8 @@ github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjH github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA= github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -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/oklog/run v1.2.0 h1:O8x3yXwah4A73hJdlrwo/2X6J62gE5qTMusH0dvz60E= +github.com/oklog/run v1.2.0/go.mod h1:mgDbKRSwPhJfesJ4PntqFUbKQRZ50NgmZTSPlFA0YFk= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= @@ -1341,12 +1341,12 @@ github.com/stackitcloud/pulumi-stackit/provider/pkg/version v0.0.1 h1:WD39FlXeXR github.com/stackitcloud/pulumi-stackit/provider/pkg/version v0.0.1/go.mod h1:AYaRzbN02xCp5DnA2tbc/5pnFxHvY12bp3KftVkZhOE= github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.1 h1:WdJrAYJN5PaQWVuDV8IdhaqJfgLqCRlxcfawL6gy3NQ= github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.1/go.mod h1:W5Pn9gelbEJ//SQIXvREQBq7q7KJ+lLwjMQz6l92QvA= -github.com/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg= -github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg= +github.com/stackitcloud/stackit-sdk-go/core v0.19.0 h1:dtJcs6/TTCzzb2RKI7HJugDrbCkaFEDmn1pOeFe8qnI= +github.com/stackitcloud/stackit-sdk-go/core v0.19.0/go.mod h1:fqto7M82ynGhEnpZU6VkQKYWYoFG5goC076JWXTUPRQ= github.com/stackitcloud/stackit-sdk-go/services/authorization v0.9.0 h1:7ZKd3b+E/R4TEVShLTXxx5FrsuDuJBOyuVOuKTMa4mo= github.com/stackitcloud/stackit-sdk-go/services/authorization v0.9.0/go.mod h1:/FoXa6hF77Gv8brrvLBCKa5ie1Xy9xn39yfHwaln9Tw= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.5.0 h1:3sSDuOIWUWxkyItfi2ENdKFfHcMhX371INwDYxXeTzc= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.5.0/go.mod h1:YGadfhuy8yoseczTxF7vN4t9ES2WxGQr0Pug14ii7y4= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.6.0 h1:Q+qIdejeMsYMkbtVoI9BpGlKGdSVFRBhH/zj44SP8TM= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.6.0/go.mod h1:YGadfhuy8yoseczTxF7vN4t9ES2WxGQr0Pug14ii7y4= github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.1 h1:CnhAMLql0MNmAeq4roQKN8OpSKX4FSgTU6Eu6detB4I= github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.1/go.mod h1:7Bx85knfNSBxulPdJUFuBePXNee3cO+sOTYnUG6M+iQ= github.com/stackitcloud/stackit-sdk-go/services/git v0.8.0 h1:/weT7P5Uwy1Qlhw0NidqtQBlbbb/dQehweDV/I9ShXg= @@ -1355,6 +1355,8 @@ github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0 h1:dnEjyapuv8WwRN5v github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0/go.mod h1:854gnLR92NvAbJAA1xZEumrtNh1DoBP1FXTMvhwYA6w= github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha h1:m1jq6a8dbUe+suFuUNdHmM/cSehpGLUtDbK1CqLqydg= github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha/go.mod h1:Nu1b5Phsv8plgZ51+fkxPVsU91ZJ5Ayz+cthilxdmQ8= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.0.0 h1:zxoOv7Fu+FmdsvTKiKkbmLItrMKfL+QoVtz9ReEF30E= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.0.0/go.mod h1:KEPVoO21pC4bjy5l0nyhjUJ0+uVwVWb+k2TYrzJ8xYw= github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0 h1:q33ZaCBVEBUsnMDxYyuJKtJvGcE5nKgvuPed3s8zXNI= github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0/go.mod h1:20QOZ3rBC9wTGgzXzLz9M6YheX0VaxWE0/JI+s8On7k= github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.1 h1:hv5WrRU9rN6Jx4OwdOGJRyaQrfA9p1tzEoQK6/CDyoA= @@ -1367,8 +1369,8 @@ github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.2 h1:BQ+qAkVS/a github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.2/go.mod h1:oc8Mpwl7O6EZwG0YxfhOzNCJwNQBWK5rFh764OtxoMY= github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.0 h1:g3yNDUc3JydAikezUrI9bQ4nuMJpVeAQ35jOFfFmq1U= github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.0/go.mod h1:foslkEiICdtHR3v0A/i/Rgo6EP9MMula9XNC9luNOgw= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.14.0 h1:oewwaYjABWbNqDkmSwIXmjDBK4a46+tnznyZSXh3Xk0= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.14.0/go.mod h1:tJEOi6L0le4yQZPGwalup/PZ13gqs1aCQDqlUs2cYW0= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.15.0 h1:MA5i1ScjXLWe5CYeFCLHeZzNS1AH4mbx1kUyiVbxKjI= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.15.0/go.mod h1:tJEOi6L0le4yQZPGwalup/PZ13gqs1aCQDqlUs2cYW0= github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.1 h1:50n87uZn0EvSP9hJGLqd3Wm2hfqbyh7BMGGCk7axgqA= github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.1/go.mod h1:jfguuSPa56Z5Bzs/Xg/CI37XzPo5Zn5lzC5LhfuT8Qc= github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.2.1 h1:K8vXele3U6b5urcSIpq21EkVblWfPDY3eMPSuQ48TkI= @@ -1395,8 +1397,8 @@ github.com/stackitcloud/stackit-sdk-go/services/ske v1.4.0 h1:V6RFvybDeJvvmT3g7/ github.com/stackitcloud/stackit-sdk-go/services/ske v1.4.0/go.mod h1:xRBgpJ8P5Nf1T5tD0tGAeNg1FNQzx5VF7qqOXt2Fp3s= github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.3.1 h1:r5808lRhtY8l5anft/UwgJEaef1XsoYObmwd3FVai48= github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.3.1/go.mod h1:+LYy2pB+tpF0lkkmCf524wvv2Sa49REgEaNh7JGzN6Y= -github.com/stackitcloud/terraform-provider-stackit v0.68.0 h1:DloxGtfCBfsdGQMgvv/0hhdIkqxuJRDZYKE0bgpqwk4= -github.com/stackitcloud/terraform-provider-stackit v0.68.0/go.mod h1:4e5Li3xS+XpWCX0b6pmGDD7blAA1C4ajzH9OEReKyrA= +github.com/stackitcloud/terraform-provider-stackit v0.71.0 h1:gKu9+4xJj2EHo1C20McWZ/h08vqBkljmgHBBLdByksc= +github.com/stackitcloud/terraform-provider-stackit v0.71.0/go.mod h1:EVGN6Dkt/jyTB0Yuv+govS3Crk+N/argotQZ8kmrCTg= 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= @@ -1583,8 +1585,8 @@ golang.org/x/mod v0.9.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.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= -golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +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-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1915,8 +1917,8 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= 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.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= -golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +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-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/provider/shim/go.mod b/provider/shim/go.mod index a664df76..a5051e85 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -4,13 +4,15 @@ go 1.24.0 toolchain go1.24.2 -require github.com/stackitcloud/terraform-provider-stackit v0.68.0 +require github.com/stackitcloud/terraform-provider-stackit v0.71.0 require ( github.com/hashicorp/hcl/v2 v2.24.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha // indirect + github.com/stackitcloud/stackit-sdk-go/services/kms v1.0.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/scf v0.2.1 // indirect github.com/zclconf/go-cty v1.17.0 // indirect + golang.org/x/crypto v0.45.0 // indirect ) require ( @@ -23,13 +25,13 @@ require ( github.com/hashicorp/terraform-plugin-framework v1.16.1 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/hashicorp/terraform-plugin-log v0.10.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.17.3 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.19.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/authorization v0.9.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/cdn v1.5.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/cdn v1.6.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/git v0.8.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0 // indirect @@ -39,7 +41,7 @@ require ( github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.2 // indirect github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/observability v0.14.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/observability v0.15.0 // indirect github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.2.1 // indirect github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.1 // indirect @@ -55,6 +57,6 @@ require ( github.com/teambition/rrule-go v1.8.2 // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect - golang.org/x/mod v0.28.0 // indirect - golang.org/x/sys v0.36.0 // indirect + golang.org/x/mod v0.30.0 // indirect + golang.org/x/sys v0.38.0 // indirect ) diff --git a/provider/shim/go.sum b/provider/shim/go.sum index daf0d2ba..e3c940fa 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -11,6 +11,7 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF 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/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= 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.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= @@ -28,6 +29,7 @@ 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-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= @@ -36,19 +38,24 @@ github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKe github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/hc-install v0.9.2 h1:v80EtNX4fCVHqzL9Lg/2xkp62bbvQMnvPQ0G+OmtO24= 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.23.0 h1:MUiBM1s0CNlRFsCLJuM5wXZrzA3MnPYEsiXmzATMW/I= github.com/hashicorp/terraform-json v0.25.0 h1:rmNqc/CIfcWawGiwXmRuiXJKEiJu1ntGoxseG1hLhoQ= 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-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-go v0.29.0/go.mod h1:vYZbIyvxyy0FWSmDHChCqKvI40cFTDGSb3D8D70i9GM= +github.com/hashicorp/terraform-plugin-log v0.10.0 h1:eu2kW6/QBVdN4P3Ju2WiB2W3ObjkAsyfBsL3Wh1fj3g= +github.com/hashicorp/terraform-plugin-log v0.10.0/go.mod h1:/9RR5Cv2aAbrqcTSdNmY1NRHP4E3ekrXRGjqORpXyB0= github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0 h1:NFPMacTrY/IdcIcnUB+7hsore1ZaRWU9cnB6jFoBnIM= github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0/go.mod h1:QYmYnLfsosrxjCnGY1p9c7Zj6n9thnEE+7RObeYs3fA= github.com/hashicorp/terraform-plugin-testing v1.13.3 h1:QLi/khB8Z0a5L54AfPrHukFpnwsGL8cwwswj4RZduCo= 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= @@ -71,38 +78,68 @@ 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/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= -github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/oklog/run v1.2.0 h1:O8x3yXwah4A73hJdlrwo/2X6J62gE5qTMusH0dvz60E= +github.com/oklog/run v1.2.0/go.mod h1:mgDbKRSwPhJfesJ4PntqFUbKQRZ50NgmZTSPlFA0YFk= 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/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg= +github.com/stackitcloud/stackit-sdk-go/core v0.19.0 h1:dtJcs6/TTCzzb2RKI7HJugDrbCkaFEDmn1pOeFe8qnI= +github.com/stackitcloud/stackit-sdk-go/core v0.19.0/go.mod h1:fqto7M82ynGhEnpZU6VkQKYWYoFG5goC076JWXTUPRQ= github.com/stackitcloud/stackit-sdk-go/services/authorization v0.9.0 h1:7ZKd3b+E/R4TEVShLTXxx5FrsuDuJBOyuVOuKTMa4mo= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.5.0 h1:3sSDuOIWUWxkyItfi2ENdKFfHcMhX371INwDYxXeTzc= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.9.0/go.mod h1:/FoXa6hF77Gv8brrvLBCKa5ie1Xy9xn39yfHwaln9Tw= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.6.0 h1:Q+qIdejeMsYMkbtVoI9BpGlKGdSVFRBhH/zj44SP8TM= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.6.0/go.mod h1:YGadfhuy8yoseczTxF7vN4t9ES2WxGQr0Pug14ii7y4= github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.1 h1:CnhAMLql0MNmAeq4roQKN8OpSKX4FSgTU6Eu6detB4I= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.1/go.mod h1:7Bx85knfNSBxulPdJUFuBePXNee3cO+sOTYnUG6M+iQ= github.com/stackitcloud/stackit-sdk-go/services/git v0.8.0 h1:/weT7P5Uwy1Qlhw0NidqtQBlbbb/dQehweDV/I9ShXg= +github.com/stackitcloud/stackit-sdk-go/services/git v0.8.0/go.mod h1:AXFfYBJZIW1o0W0zZEb/proQMhMsb3Nn5E1htS8NDPE= github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0 h1:dnEjyapuv8WwRN5vE2z6+4/+ZqQTBx+bX27x2nOF7Jw= +github.com/stackitcloud/stackit-sdk-go/services/iaas v0.31.0/go.mod h1:854gnLR92NvAbJAA1xZEumrtNh1DoBP1FXTMvhwYA6w= github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha h1:m1jq6a8dbUe+suFuUNdHmM/cSehpGLUtDbK1CqLqydg= +github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha/go.mod h1:Nu1b5Phsv8plgZ51+fkxPVsU91ZJ5Ayz+cthilxdmQ8= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.0.0 h1:zxoOv7Fu+FmdsvTKiKkbmLItrMKfL+QoVtz9ReEF30E= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.0.0/go.mod h1:KEPVoO21pC4bjy5l0nyhjUJ0+uVwVWb+k2TYrzJ8xYw= github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0 h1:q33ZaCBVEBUsnMDxYyuJKtJvGcE5nKgvuPed3s8zXNI= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.6.0/go.mod h1:20QOZ3rBC9wTGgzXzLz9M6YheX0VaxWE0/JI+s8On7k= github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.1 h1:hv5WrRU9rN6Jx4OwdOGJRyaQrfA9p1tzEoQK6/CDyoA= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.1/go.mod h1:ivt8lvnAoBZsde2jSAuicyn6RgTmHvvNAJ3whaUbAD4= github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.1 h1:Db/ebOL2vbpIeh5XB2Ews2B9Lj5DJlMWIEJh60FfZ4Y= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.1/go.mod h1:8jdN4v2euK3f9gfdzbRi8e4nBJ8g/Q5YF9aPB4M4fCQ= github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.0 h1:JZI+3sLVAtTFk4QJ/ao2bAumzBq+iV6dUvDoIrOKTcw= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.0/go.mod h1:DvNLTENxoJEQ8AwUvcVBoWqVtdZNS4vEJppTKfvfeec= github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.2 h1:BQ+qAkVS/aGHepE/+gVsvSg1sRkPOyIUI/jkCyUOrWg= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.2/go.mod h1:oc8Mpwl7O6EZwG0YxfhOzNCJwNQBWK5rFh764OtxoMY= github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.0 h1:g3yNDUc3JydAikezUrI9bQ4nuMJpVeAQ35jOFfFmq1U= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.14.0 h1:oewwaYjABWbNqDkmSwIXmjDBK4a46+tnznyZSXh3Xk0= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.0/go.mod h1:foslkEiICdtHR3v0A/i/Rgo6EP9MMula9XNC9luNOgw= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.15.0 h1:MA5i1ScjXLWe5CYeFCLHeZzNS1AH4mbx1kUyiVbxKjI= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.15.0/go.mod h1:tJEOi6L0le4yQZPGwalup/PZ13gqs1aCQDqlUs2cYW0= github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.1 h1:50n87uZn0EvSP9hJGLqd3Wm2hfqbyh7BMGGCk7axgqA= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.1/go.mod h1:jfguuSPa56Z5Bzs/Xg/CI37XzPo5Zn5lzC5LhfuT8Qc= github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.2.1 h1:K8vXele3U6b5urcSIpq21EkVblWfPDY3eMPSuQ48TkI= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.2.1/go.mod h1:hyhw+I19NtjKmRLcUkY4boaTxnYSPFGbpn4RxvGqH2s= github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.1 h1:ALrDCBih8Fu8e6530KdOjuH0iMxOLntO381BbKFlTFY= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.1/go.mod h1:+qGWSehoV0Js3FalgvT/bOgPj+UqW4I7lP5s8uAxP+o= github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.1 h1:8uPt82Ez34OYMOijjEYxB1zUW6kiybkt6veQKl0AL68= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.1/go.mod h1:1Y2GEICmZDt+kr8aGnBx/sjYVAIYHmtfC8xYi9oxNEE= github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.17.1 h1:r7oaINTwLmIG31AaqKTuQHHFF8YNuYGzi+46DOuSjw4= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.17.1/go.mod h1:ipcrPRbwfQXHH18dJVfY7K5ujHF5dTT6isoXgmA7YwQ= github.com/stackitcloud/stackit-sdk-go/services/scf v0.2.1 h1:OdofRB6uj6lwN/TXLVHVrEOwNMG34MlFNwkiHD+eOts= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.2.1/go.mod h1:5p7Xi8jadpJNDYr0t+07DXS104/RJLfhhA1r6P7PlGs= github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.13.1 h1:WKFzlHllql3JsVcAq+Y1m5pSMkvwp1qH3Vf2N7i8CPg= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.13.1/go.mod h1:WGMFtGugBmUxI+nibI7eUZIQk4AGlDvwqX+m17W1y5w= github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.2 h1:tfKC4Z6Uah9AQZrtCn/ytqOgc//ChQRfJ6ozxovgads= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.2/go.mod h1:wV7/BUV3BCLq5+E1bHXrKKt/eOPVdWgLArWLAq7rZ/U= github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.1 h1:hcHX2n5pUsOcv2PPPbSJph1fQ/I6P7g7781T1f1ycEI= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.1/go.mod h1:jZwTg3wU4/UxgNJ7TKlFZ3dTIlnfvppnW8kJTc4UXy8= github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.1 h1:crKlHl7QVF97A8CTBK3PBtVpO9c/7qwFvRJi5UN/F7Y= +github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.1/go.mod h1:QCrAW/Rmf+styT25ke8cUV6hDHpdKNmAY14kkJ3+Fd8= github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.2 h1:s2iag/Gc4tuQH7x5I0n4mQWVhpfl/cj+SVNAFAB5ck0= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.2/go.mod h1:DFEamKVoOjm/rjMwzfZK0Zg/hwsSkXOibdA4HcC6swk= github.com/stackitcloud/stackit-sdk-go/services/ske v1.4.0 h1:V6RFvybDeJvvmT3g7/BZodF0gozz3TEpahbpiTftbeY= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.4.0/go.mod h1:xRBgpJ8P5Nf1T5tD0tGAeNg1FNQzx5VF7qqOXt2Fp3s= github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.3.1 h1:r5808lRhtY8l5anft/UwgJEaef1XsoYObmwd3FVai48= -github.com/stackitcloud/terraform-provider-stackit v0.68.0 h1:DloxGtfCBfsdGQMgvv/0hhdIkqxuJRDZYKE0bgpqwk4= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.3.1/go.mod h1:+LYy2pB+tpF0lkkmCf524wvv2Sa49REgEaNh7JGzN6Y= +github.com/stackitcloud/terraform-provider-stackit v0.71.0 h1:gKu9+4xJj2EHo1C20McWZ/h08vqBkljmgHBBLdByksc= +github.com/stackitcloud/terraform-provider-stackit v0.71.0/go.mod h1:EVGN6Dkt/jyTB0Yuv+govS3Crk+N/argotQZ8kmrCTg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= @@ -115,24 +152,32 @@ github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21 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/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0= -golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= -golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +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.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= 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-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-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= +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/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= 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-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= +google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= +google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From e015403fcaf9208f7daa7621d9ab86baa7606305 Mon Sep 17 00:00:00 2001 From: Pulumi Generator Bot Date: Wed, 26 Nov 2025 14:07:07 +0000 Subject: [PATCH 3/3] make generate_sdks --- sdk/dotnet/Config/Config.cs | 10 + sdk/dotnet/DnsZone.cs | 6 +- sdk/dotnet/GetKmsKey.cs | 218 ++++++ sdk/dotnet/GetKmsKeyring.cs | 161 +++++ sdk/dotnet/GetKmsWrappingKey.cs | 232 +++++++ sdk/dotnet/GetNetworkInterface.cs | 2 +- sdk/dotnet/GetObservabilityInstance.cs | 14 + sdk/dotnet/GetResourcemanagerFolder.cs | 6 - sdk/dotnet/GetSecurityGroupRule.cs | 2 +- .../CdnDistributionConfigBackendArgs.cs | 14 +- .../CdnDistributionConfigBackendGetArgs.cs | 14 +- sdk/dotnet/Inputs/LoadbalancerListenerArgs.cs | 14 +- .../Inputs/LoadbalancerListenerGetArgs.cs | 14 +- .../Inputs/LoadbalancerListenerTcpArgs.cs | 26 + .../Inputs/LoadbalancerListenerTcpGetArgs.cs | 26 + .../Inputs/LoadbalancerListenerUdpArgs.cs | 26 + .../Inputs/LoadbalancerListenerUdpGetArgs.cs | 26 + sdk/dotnet/Inputs/LoadbalancerNetworkArgs.cs | 2 +- .../Inputs/LoadbalancerNetworkGetArgs.cs | 2 +- .../Inputs/MongodbflexInstanceOptionsArgs.cs | 2 +- .../MongodbflexInstanceOptionsGetArgs.cs | 2 +- .../Inputs/RoutingTableRouteNextHopArgs.cs | 2 +- .../Inputs/RoutingTableRouteNextHopGetArgs.cs | 2 +- sdk/dotnet/Inputs/ServerBootVolumeArgs.cs | 2 +- sdk/dotnet/Inputs/ServerBootVolumeGetArgs.cs | 2 +- sdk/dotnet/Inputs/VolumeSourceArgs.cs | 2 +- sdk/dotnet/Inputs/VolumeSourceGetArgs.cs | 2 +- sdk/dotnet/KmsKey.cs | 270 ++++++++ sdk/dotnet/KmsKeyring.cs | 162 +++++ sdk/dotnet/KmsWrappingKey.cs | 290 ++++++++ sdk/dotnet/Network.cs | 17 +- sdk/dotnet/NetworkInterface.cs | 4 +- sdk/dotnet/ObservabilityInstance.cs | 36 + .../Outputs/CdnDistributionConfigBackend.cs | 9 +- .../GetCdnDistributionConfigBackendResult.cs | 9 +- .../Outputs/GetLoadbalancerListenerResult.cs | 16 +- .../GetLoadbalancerListenerTcpResult.cs | 27 + .../GetLoadbalancerListenerUdpResult.cs | 27 + .../GetRoutingTableRouteNextHopResult.cs | 2 +- ...GetRoutingTableRoutesRouteNextHopResult.cs | 2 +- sdk/dotnet/Outputs/GetVolumeSourceResult.cs | 2 +- sdk/dotnet/Outputs/LoadbalancerListener.cs | 18 +- sdk/dotnet/Outputs/LoadbalancerListenerTcp.cs | 27 + sdk/dotnet/Outputs/LoadbalancerListenerUdp.cs | 27 + sdk/dotnet/Outputs/LoadbalancerNetwork.cs | 2 +- .../Outputs/MongodbflexInstanceOptions.cs | 2 +- .../Outputs/RoutingTableRouteNextHop.cs | 2 +- sdk/dotnet/Outputs/ServerBootVolume.cs | 2 +- sdk/dotnet/Outputs/VolumeSource.cs | 2 +- sdk/dotnet/PostgresflexUser.cs | 6 +- sdk/dotnet/Provider.cs | 12 + sdk/dotnet/ResourcemanagerFolder.cs | 2 - sdk/dotnet/SecurityGroupRule.cs | 6 +- sdk/dotnet/Server.cs | 6 +- sdk/go/stackit/config/config.go | 5 + sdk/go/stackit/dnsZone.go | 12 +- sdk/go/stackit/getKmsKey.go | 167 +++++ sdk/go/stackit/getKmsKeyring.go | 121 ++++ sdk/go/stackit/getKmsWrappingKey.go | 181 +++++ sdk/go/stackit/getNetworkInterface.go | 4 +- sdk/go/stackit/getObservabilityInstance.go | 18 +- sdk/go/stackit/getResourcemanagerFolder.go | 2 - sdk/go/stackit/getSecurityGroupRule.go | 4 +- sdk/go/stackit/init.go | 21 + sdk/go/stackit/kmsKey.go | 380 ++++++++++ sdk/go/stackit/kmsKeyring.go | 278 ++++++++ sdk/go/stackit/kmsWrappingKey.go | 400 +++++++++++ sdk/go/stackit/network.go | 35 +- sdk/go/stackit/networkInterface.go | 8 +- sdk/go/stackit/observabilityInstance.go | 42 +- sdk/go/stackit/postgresflexUser.go | 12 +- sdk/go/stackit/provider.go | 11 + sdk/go/stackit/pulumiTypes.go | 530 +++++++++++++- sdk/go/stackit/resourcemanagerFolder.go | 2 - sdk/go/stackit/securityGroupRule.go | 12 +- sdk/go/stackit/server.go | 12 +- sdk/nodejs/config/vars.ts | 11 + sdk/nodejs/dnsZone.ts | 6 +- sdk/nodejs/getKmsKey.ts | 129 ++++ sdk/nodejs/getKmsKeyring.ts | 95 +++ sdk/nodejs/getKmsWrappingKey.ts | 137 ++++ sdk/nodejs/getNetworkInterface.ts | 2 +- sdk/nodejs/getObservabilityInstance.ts | 8 + sdk/nodejs/getResourcemanagerFolder.ts | 4 - sdk/nodejs/getSecurityGroupRule.ts | 2 +- sdk/nodejs/index.ts | 39 ++ sdk/nodejs/kmsKey.ts | 238 +++++++ sdk/nodejs/kmsKeyring.ts | 142 ++++ sdk/nodejs/kmsWrappingKey.ts | 256 +++++++ sdk/nodejs/network.ts | 17 +- sdk/nodejs/networkInterface.ts | 4 +- sdk/nodejs/observabilityInstance.ts | 28 + sdk/nodejs/postgresflexUser.ts | 6 +- sdk/nodejs/provider.ts | 9 + sdk/nodejs/resourcemanagerFolder.ts | 2 - sdk/nodejs/securityGroupRule.ts | 6 +- sdk/nodejs/server.ts | 6 +- sdk/nodejs/tsconfig.json | 6 + sdk/nodejs/types/input.ts | 40 +- sdk/nodejs/types/output.ts | 74 +- sdk/python/README.md | 102 +++ sdk/python/pulumi_stackit/__init__.py | 30 + sdk/python/pulumi_stackit/_inputs.py | 172 ++++- sdk/python/pulumi_stackit/config/__init__.pyi | 5 + sdk/python/pulumi_stackit/config/vars.py | 7 + sdk/python/pulumi_stackit/dns_zone.py | 14 +- sdk/python/pulumi_stackit/get_kms_key.py | 253 +++++++ sdk/python/pulumi_stackit/get_kms_keyring.py | 163 +++++ .../pulumi_stackit/get_kms_wrapping_key.py | 281 ++++++++ .../pulumi_stackit/get_network_interface.py | 2 +- .../get_observability_instance.py | 30 +- .../get_resourcemanager_folder.py | 4 - .../pulumi_stackit/get_security_group_rule.py | 2 +- sdk/python/pulumi_stackit/kms_key.py | 608 ++++++++++++++++ sdk/python/pulumi_stackit/kms_keyring.py | 322 +++++++++ sdk/python/pulumi_stackit/kms_wrapping_key.py | 649 ++++++++++++++++++ sdk/python/pulumi_stackit/network.py | 32 +- .../pulumi_stackit/network_interface.py | 8 +- .../pulumi_stackit/observability_instance.py | 96 ++- sdk/python/pulumi_stackit/outputs.py | 227 +++++- .../pulumi_stackit/postgresflex_user.py | 14 +- sdk/python/pulumi_stackit/provider.py | 28 + .../pulumi_stackit/resourcemanager_folder.py | 4 - .../pulumi_stackit/security_group_rule.py | 14 +- sdk/python/pulumi_stackit/server.py | 14 +- 125 files changed, 8118 insertions(+), 305 deletions(-) create mode 100644 sdk/dotnet/GetKmsKey.cs create mode 100644 sdk/dotnet/GetKmsKeyring.cs create mode 100644 sdk/dotnet/GetKmsWrappingKey.cs create mode 100644 sdk/dotnet/Inputs/LoadbalancerListenerTcpArgs.cs create mode 100644 sdk/dotnet/Inputs/LoadbalancerListenerTcpGetArgs.cs create mode 100644 sdk/dotnet/Inputs/LoadbalancerListenerUdpArgs.cs create mode 100644 sdk/dotnet/Inputs/LoadbalancerListenerUdpGetArgs.cs create mode 100644 sdk/dotnet/KmsKey.cs create mode 100644 sdk/dotnet/KmsKeyring.cs create mode 100644 sdk/dotnet/KmsWrappingKey.cs create mode 100644 sdk/dotnet/Outputs/GetLoadbalancerListenerTcpResult.cs create mode 100644 sdk/dotnet/Outputs/GetLoadbalancerListenerUdpResult.cs create mode 100644 sdk/dotnet/Outputs/LoadbalancerListenerTcp.cs create mode 100644 sdk/dotnet/Outputs/LoadbalancerListenerUdp.cs create mode 100644 sdk/go/stackit/getKmsKey.go create mode 100644 sdk/go/stackit/getKmsKeyring.go create mode 100644 sdk/go/stackit/getKmsWrappingKey.go create mode 100644 sdk/go/stackit/kmsKey.go create mode 100644 sdk/go/stackit/kmsKeyring.go create mode 100644 sdk/go/stackit/kmsWrappingKey.go create mode 100644 sdk/nodejs/getKmsKey.ts create mode 100644 sdk/nodejs/getKmsKeyring.ts create mode 100644 sdk/nodejs/getKmsWrappingKey.ts create mode 100644 sdk/nodejs/kmsKey.ts create mode 100644 sdk/nodejs/kmsKeyring.ts create mode 100644 sdk/nodejs/kmsWrappingKey.ts create mode 100644 sdk/python/pulumi_stackit/get_kms_key.py create mode 100644 sdk/python/pulumi_stackit/get_kms_keyring.py create mode 100644 sdk/python/pulumi_stackit/get_kms_wrapping_key.py create mode 100644 sdk/python/pulumi_stackit/kms_key.py create mode 100644 sdk/python/pulumi_stackit/kms_keyring.py create mode 100644 sdk/python/pulumi_stackit/kms_wrapping_key.py diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index 3630cfc9..e131eaf0 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -122,6 +122,16 @@ public static string? IaasCustomEndpoint set => _iaasCustomEndpoint.Set(value); } + private static readonly __Value _kmsCustomEndpoint = new __Value(() => __config.Get("kmsCustomEndpoint")); + /// + /// Custom endpoint for the KMS service + /// + public static string? KmsCustomEndpoint + { + get => _kmsCustomEndpoint.Get(); + set => _kmsCustomEndpoint.Set(value); + } + private static readonly __Value _loadbalancerCustomEndpoint = new __Value(() => __config.Get("loadbalancerCustomEndpoint")); /// /// Custom endpoint for the Load Balancer service diff --git a/sdk/dotnet/DnsZone.cs b/sdk/dotnet/DnsZone.cs index 30b7e236..b62c950e 100644 --- a/sdk/dotnet/DnsZone.cs +++ b/sdk/dotnet/DnsZone.cs @@ -123,7 +123,7 @@ public partial class DnsZone : global::Pulumi.CustomResource public Output State { get; private set; } = null!; /// - /// Zone type. Defaults to `Primary`. Supported values are: `Primary`, `Secondary`. + /// Zone type. Defaults to `Primary`. Possible values are: `Primary`, `Secondary`. /// [Output("type")] public Output Type { get; private set; } = null!; @@ -275,7 +275,7 @@ public InputList Primaries public Input? RetryTime { get; set; } /// - /// Zone type. Defaults to `Primary`. Supported values are: `Primary`, `Secondary`. + /// Zone type. Defaults to `Primary`. Possible values are: `Primary`, `Secondary`. /// [Input("type")] public Input? Type { get; set; } @@ -400,7 +400,7 @@ public InputList Primaries public Input? State { get; set; } /// - /// Zone type. Defaults to `Primary`. Supported values are: `Primary`, `Secondary`. + /// Zone type. Defaults to `Primary`. Possible values are: `Primary`, `Secondary`. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/GetKmsKey.cs b/sdk/dotnet/GetKmsKey.cs new file mode 100644 index 00000000..b1686e56 --- /dev/null +++ b/sdk/dotnet/GetKmsKey.cs @@ -0,0 +1,218 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetKmsKey + { + /// + /// KMS Key datasource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_key" "key" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// key_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Task InvokeAsync(GetKmsKeyArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getKmsKey:getKmsKey", args ?? new GetKmsKeyArgs(), options.WithDefaults()); + + /// + /// KMS Key datasource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_key" "key" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// key_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetKmsKeyInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getKmsKey:getKmsKey", args ?? new GetKmsKeyInvokeArgs(), options.WithDefaults()); + + /// + /// KMS Key datasource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_key" "key" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// key_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetKmsKeyInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getKmsKey:getKmsKey", args ?? new GetKmsKeyInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetKmsKeyArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of the key + /// + [Input("keyId", required: true)] + public string KeyId { get; set; } = null!; + + /// + /// The ID of the associated key ring + /// + [Input("keyringId", required: true)] + public string KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the key is associated. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public string? Region { get; set; } + + public GetKmsKeyArgs() + { + } + public static new GetKmsKeyArgs Empty => new GetKmsKeyArgs(); + } + + public sealed class GetKmsKeyInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of the key + /// + [Input("keyId", required: true)] + public Input KeyId { get; set; } = null!; + + /// + /// The ID of the associated key ring + /// + [Input("keyringId", required: true)] + public Input KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the key is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public GetKmsKeyInvokeArgs() + { + } + public static new GetKmsKeyInvokeArgs Empty => new GetKmsKeyInvokeArgs(); + } + + + [OutputType] + public sealed class GetKmsKeyResult + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + public readonly string AccessScope; + /// + /// The encryption algorithm that the key will use to encrypt data. Possible values are: `Aes256Gcm`, `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `HmacSha256`, `HmacSha384`, `HmacSha512`, `EcdsaP256Sha256`, `EcdsaP384Sha384`, `EcdsaP521Sha512`. + /// + public readonly string Algorithm; + /// + /// A user chosen description to distinguish multiple keys + /// + public readonly string Description; + /// + /// The display name to distinguish multiple keys + /// + public readonly string DisplayName; + public readonly string Id; + /// + /// States whether versions can be created or only imported. + /// + public readonly bool ImportOnly; + /// + /// The ID of the key + /// + public readonly string KeyId; + /// + /// The ID of the associated key ring + /// + public readonly string KeyringId; + /// + /// STACKIT project ID to which the key is associated. + /// + public readonly string ProjectId; + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + public readonly string Protection; + /// + /// The purpose for which the key will be used. Possible values are: `SymmetricEncryptDecrypt`, `AsymmetricEncryptDecrypt`, `MessageAuthenticationCode`, `AsymmetricSignVerify`. + /// + public readonly string Purpose; + /// + /// The resource region. If not defined, the provider region is used. + /// + public readonly string Region; + + [OutputConstructor] + private GetKmsKeyResult( + string accessScope, + + string algorithm, + + string description, + + string displayName, + + string id, + + bool importOnly, + + string keyId, + + string keyringId, + + string projectId, + + string protection, + + string purpose, + + string region) + { + AccessScope = accessScope; + Algorithm = algorithm; + Description = description; + DisplayName = displayName; + Id = id; + ImportOnly = importOnly; + KeyId = keyId; + KeyringId = keyringId; + ProjectId = projectId; + Protection = protection; + Purpose = purpose; + Region = region; + } + } +} diff --git a/sdk/dotnet/GetKmsKeyring.cs b/sdk/dotnet/GetKmsKeyring.cs new file mode 100644 index 00000000..f777d9cf --- /dev/null +++ b/sdk/dotnet/GetKmsKeyring.cs @@ -0,0 +1,161 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetKmsKeyring + { + /// + /// KMS Keyring datasource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_keyring" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Task InvokeAsync(GetKmsKeyringArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getKmsKeyring:getKmsKeyring", args ?? new GetKmsKeyringArgs(), options.WithDefaults()); + + /// + /// KMS Keyring datasource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_keyring" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetKmsKeyringInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getKmsKeyring:getKmsKeyring", args ?? new GetKmsKeyringInvokeArgs(), options.WithDefaults()); + + /// + /// KMS Keyring datasource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_keyring" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetKmsKeyringInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getKmsKeyring:getKmsKeyring", args ?? new GetKmsKeyringInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetKmsKeyringArgs : global::Pulumi.InvokeArgs + { + /// + /// An auto generated unique id which identifies the keyring. + /// + [Input("keyringId", required: true)] + public string KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public string? Region { get; set; } + + public GetKmsKeyringArgs() + { + } + public static new GetKmsKeyringArgs Empty => new GetKmsKeyringArgs(); + } + + public sealed class GetKmsKeyringInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// An auto generated unique id which identifies the keyring. + /// + [Input("keyringId", required: true)] + public Input KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public GetKmsKeyringInvokeArgs() + { + } + public static new GetKmsKeyringInvokeArgs Empty => new GetKmsKeyringInvokeArgs(); + } + + + [OutputType] + public sealed class GetKmsKeyringResult + { + /// + /// A user chosen description to distinguish multiple keyrings. + /// + public readonly string Description; + /// + /// The display name to distinguish multiple keyrings. + /// + public readonly string DisplayName; + public readonly string Id; + /// + /// An auto generated unique id which identifies the keyring. + /// + public readonly string KeyringId; + /// + /// STACKIT project ID to which the keyring is associated. + /// + public readonly string ProjectId; + /// + /// The resource region. If not defined, the provider region is used. + /// + public readonly string Region; + + [OutputConstructor] + private GetKmsKeyringResult( + string description, + + string displayName, + + string id, + + string keyringId, + + string projectId, + + string region) + { + Description = description; + DisplayName = displayName; + Id = id; + KeyringId = keyringId; + ProjectId = projectId; + Region = region; + } + } +} diff --git a/sdk/dotnet/GetKmsWrappingKey.cs b/sdk/dotnet/GetKmsWrappingKey.cs new file mode 100644 index 00000000..388b5efa --- /dev/null +++ b/sdk/dotnet/GetKmsWrappingKey.cs @@ -0,0 +1,232 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetKmsWrappingKey + { + /// + /// KMS wrapping key datasource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_wrapping_key" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// wrapping_key_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Task InvokeAsync(GetKmsWrappingKeyArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getKmsWrappingKey:getKmsWrappingKey", args ?? new GetKmsWrappingKeyArgs(), options.WithDefaults()); + + /// + /// KMS wrapping key datasource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_wrapping_key" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// wrapping_key_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetKmsWrappingKeyInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getKmsWrappingKey:getKmsWrappingKey", args ?? new GetKmsWrappingKeyInvokeArgs(), options.WithDefaults()); + + /// + /// KMS wrapping key datasource schema. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_kms_wrapping_key" "example" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// keyring_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// wrapping_key_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetKmsWrappingKeyInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getKmsWrappingKey:getKmsWrappingKey", args ?? new GetKmsWrappingKeyInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetKmsWrappingKeyArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of the associated keyring + /// + [Input("keyringId", required: true)] + public string KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public string? Region { get; set; } + + /// + /// The ID of the wrapping key + /// + [Input("wrappingKeyId", required: true)] + public string WrappingKeyId { get; set; } = null!; + + public GetKmsWrappingKeyArgs() + { + } + public static new GetKmsWrappingKeyArgs Empty => new GetKmsWrappingKeyArgs(); + } + + public sealed class GetKmsWrappingKeyInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of the associated keyring + /// + [Input("keyringId", required: true)] + public Input KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The ID of the wrapping key + /// + [Input("wrappingKeyId", required: true)] + public Input WrappingKeyId { get; set; } = null!; + + public GetKmsWrappingKeyInvokeArgs() + { + } + public static new GetKmsWrappingKeyInvokeArgs Empty => new GetKmsWrappingKeyInvokeArgs(); + } + + + [OutputType] + public sealed class GetKmsWrappingKeyResult + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + public readonly string AccessScope; + /// + /// The wrapping algorithm used to wrap the key to import. Possible values are: `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `Rsa2048OaepSha256Aes256KeyWrap`, `Rsa3072OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha512Aes256KeyWrap`. + /// + public readonly string Algorithm; + /// + /// The date and time the creation of the wrapping key was triggered. + /// + public readonly string CreatedAt; + /// + /// A user chosen description to distinguish multiple wrapping keys. + /// + public readonly string Description; + /// + /// The display name to distinguish multiple wrapping keys. + /// + public readonly string DisplayName; + /// + /// The date and time the wrapping key will expire. + /// + public readonly string ExpiresAt; + public readonly string Id; + /// + /// The ID of the associated keyring + /// + public readonly string KeyringId; + /// + /// STACKIT project ID to which the keyring is associated. + /// + public readonly string ProjectId; + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + public readonly string Protection; + /// + /// The public key of the wrapping key. + /// + public readonly string PublicKey; + /// + /// The purpose for which the key will be used. Possible values are: `WrapSymmetricKey`, `WrapAsymmetricKey`. + /// + public readonly string Purpose; + /// + /// The resource region. If not defined, the provider region is used. + /// + public readonly string Region; + /// + /// The ID of the wrapping key + /// + public readonly string WrappingKeyId; + + [OutputConstructor] + private GetKmsWrappingKeyResult( + string accessScope, + + string algorithm, + + string createdAt, + + string description, + + string displayName, + + string expiresAt, + + string id, + + string keyringId, + + string projectId, + + string protection, + + string publicKey, + + string purpose, + + string region, + + string wrappingKeyId) + { + AccessScope = accessScope; + Algorithm = algorithm; + CreatedAt = createdAt; + Description = description; + DisplayName = displayName; + ExpiresAt = expiresAt; + Id = id; + KeyringId = keyringId; + ProjectId = projectId; + Protection = protection; + PublicKey = publicKey; + Purpose = purpose; + Region = region; + WrappingKeyId = wrappingKeyId; + } + } +} diff --git a/sdk/dotnet/GetNetworkInterface.cs b/sdk/dotnet/GetNetworkInterface.cs index 8e56eaab..a597cef7 100644 --- a/sdk/dotnet/GetNetworkInterface.cs +++ b/sdk/dotnet/GetNetworkInterface.cs @@ -163,7 +163,7 @@ public sealed class GetNetworkInterfaceResult /// public readonly ImmutableArray SecurityGroupIds; /// - /// Type of network interface. Some of the possible values are: Supported values are: `Server`, `Metadata`, `Gateway`. + /// Type of network interface. Some of the possible values are: Possible values are: `Server`, `Metadata`, `Gateway`. /// public readonly string Type; diff --git a/sdk/dotnet/GetObservabilityInstance.cs b/sdk/dotnet/GetObservabilityInstance.cs index dd8dd01a..6c18bf55 100644 --- a/sdk/dotnet/GetObservabilityInstance.cs +++ b/sdk/dotnet/GetObservabilityInstance.cs @@ -150,6 +150,10 @@ public sealed class GetObservabilityInstanceResult /// public readonly string LogsPushUrl; /// + /// Specifies for how many days the logs are kept. Default is set to `7`. + /// + public readonly int LogsRetentionDays; + /// /// Specifies Logs URL. /// public readonly string LogsUrl; @@ -198,6 +202,10 @@ public sealed class GetObservabilityInstanceResult /// Specifies Targets URL. /// public readonly string TargetsUrl; + /// + /// Specifies for how many days the traces are kept. Default is set to `7`. + /// + public readonly int TracesRetentionDays; public readonly string ZipkinSpansUrl; [OutputConstructor] @@ -230,6 +238,8 @@ private GetObservabilityInstanceResult( string logsPushUrl, + int logsRetentionDays, + string logsUrl, string metricsPushUrl, @@ -256,6 +266,8 @@ private GetObservabilityInstanceResult( string targetsUrl, + int tracesRetentionDays, + string zipkinSpansUrl) { Acls = acls; @@ -272,6 +284,7 @@ private GetObservabilityInstanceResult( JaegerTracesUrl = jaegerTracesUrl; JaegerUiUrl = jaegerUiUrl; LogsPushUrl = logsPushUrl; + LogsRetentionDays = logsRetentionDays; LogsUrl = logsUrl; MetricsPushUrl = metricsPushUrl; MetricsRetentionDays = metricsRetentionDays; @@ -285,6 +298,7 @@ private GetObservabilityInstanceResult( PlanName = planName; ProjectId = projectId; TargetsUrl = targetsUrl; + TracesRetentionDays = tracesRetentionDays; ZipkinSpansUrl = zipkinSpansUrl; } } diff --git a/sdk/dotnet/GetResourcemanagerFolder.cs b/sdk/dotnet/GetResourcemanagerFolder.cs index f3df9af4..efbb78e5 100644 --- a/sdk/dotnet/GetResourcemanagerFolder.cs +++ b/sdk/dotnet/GetResourcemanagerFolder.cs @@ -14,8 +14,6 @@ public static class GetResourcemanagerFolder /// /// Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. /// - /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - /// /// ## Example Usage /// /// ```terraform @@ -30,8 +28,6 @@ public static Task InvokeAsync(GetResourcemanage /// /// Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. /// - /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - /// /// ## Example Usage /// /// ```terraform @@ -46,8 +42,6 @@ public static Output Invoke(GetResourcemanagerFo /// /// Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. /// - /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - /// /// ## Example Usage /// /// ```terraform diff --git a/sdk/dotnet/GetSecurityGroupRule.cs b/sdk/dotnet/GetSecurityGroupRule.cs index b00ead61..07f1bad4 100644 --- a/sdk/dotnet/GetSecurityGroupRule.cs +++ b/sdk/dotnet/GetSecurityGroupRule.cs @@ -122,7 +122,7 @@ public sealed class GetSecurityGroupRuleResult /// public readonly string Description; /// - /// The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `Ingress`, `Egress`. + /// The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `Ingress`, `Egress`. /// public readonly string Direction; /// diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs index 7c841fad..0a83e405 100644 --- a/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs +++ b/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Stackit.Inputs public sealed class CdnDistributionConfigBackendArgs : global::Pulumi.ResourceArgs { + [Input("geofencing")] + private InputMap>? _geofencing; + + /// + /// A map of URLs to a list of countries where content is allowed. + /// + public InputMap> Geofencing + { + get => _geofencing ?? (_geofencing = new InputMap>()); + set => _geofencing = value; + } + [Input("originRequestHeaders")] private InputMap? _originRequestHeaders; @@ -31,7 +43,7 @@ public InputMap OriginRequestHeaders public Input OriginUrl { get; set; } = null!; /// - /// The configured backend type. Supported values are: `Http`. + /// The configured backend type. Possible values are: `Http`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs index 767921c9..a98bb6f8 100644 --- a/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs +++ b/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Stackit.Inputs public sealed class CdnDistributionConfigBackendGetArgs : global::Pulumi.ResourceArgs { + [Input("geofencing")] + private InputMap>? _geofencing; + + /// + /// A map of URLs to a list of countries where content is allowed. + /// + public InputMap> Geofencing + { + get => _geofencing ?? (_geofencing = new InputMap>()); + set => _geofencing = value; + } + [Input("originRequestHeaders")] private InputMap? _originRequestHeaders; @@ -31,7 +43,7 @@ public InputMap OriginRequestHeaders public Input OriginUrl { get; set; } = null!; /// - /// The configured backend type. Supported values are: `Http`. + /// The configured backend type. Possible values are: `Http`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/LoadbalancerListenerArgs.cs b/sdk/dotnet/Inputs/LoadbalancerListenerArgs.cs index f2258537..f7563d50 100644 --- a/sdk/dotnet/Inputs/LoadbalancerListenerArgs.cs +++ b/sdk/dotnet/Inputs/LoadbalancerListenerArgs.cs @@ -22,7 +22,7 @@ public sealed class LoadbalancerListenerArgs : global::Pulumi.ResourceArgs public Input Port { get; set; } = null!; /// - /// Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + /// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. /// [Input("protocol", required: true)] public Input Protocol { get; set; } = null!; @@ -45,6 +45,18 @@ public InputList ServerNameI [Input("targetPool", required: true)] public Input TargetPool { get; set; } = null!; + /// + /// Options that are specific to the TCP protocol. + /// + [Input("tcp")] + public Input? Tcp { get; set; } + + /// + /// Options that are specific to the UDP protocol. + /// + [Input("udp")] + public Input? Udp { get; set; } + public LoadbalancerListenerArgs() { } diff --git a/sdk/dotnet/Inputs/LoadbalancerListenerGetArgs.cs b/sdk/dotnet/Inputs/LoadbalancerListenerGetArgs.cs index 82ccff98..1508eca5 100644 --- a/sdk/dotnet/Inputs/LoadbalancerListenerGetArgs.cs +++ b/sdk/dotnet/Inputs/LoadbalancerListenerGetArgs.cs @@ -22,7 +22,7 @@ public sealed class LoadbalancerListenerGetArgs : global::Pulumi.ResourceArgs public Input Port { get; set; } = null!; /// - /// Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + /// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. /// [Input("protocol", required: true)] public Input Protocol { get; set; } = null!; @@ -45,6 +45,18 @@ public InputList ServerNa [Input("targetPool", required: true)] public Input TargetPool { get; set; } = null!; + /// + /// Options that are specific to the TCP protocol. + /// + [Input("tcp")] + public Input? Tcp { get; set; } + + /// + /// Options that are specific to the UDP protocol. + /// + [Input("udp")] + public Input? Udp { get; set; } + public LoadbalancerListenerGetArgs() { } diff --git a/sdk/dotnet/Inputs/LoadbalancerListenerTcpArgs.cs b/sdk/dotnet/Inputs/LoadbalancerListenerTcpArgs.cs new file mode 100644 index 00000000..ad7f9a39 --- /dev/null +++ b/sdk/dotnet/Inputs/LoadbalancerListenerTcpArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class LoadbalancerListenerTcpArgs : global::Pulumi.ResourceArgs + { + /// + /// Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + /// + [Input("idleTimeout")] + public Input? IdleTimeout { get; set; } + + public LoadbalancerListenerTcpArgs() + { + } + public static new LoadbalancerListenerTcpArgs Empty => new LoadbalancerListenerTcpArgs(); + } +} diff --git a/sdk/dotnet/Inputs/LoadbalancerListenerTcpGetArgs.cs b/sdk/dotnet/Inputs/LoadbalancerListenerTcpGetArgs.cs new file mode 100644 index 00000000..cd4e89a0 --- /dev/null +++ b/sdk/dotnet/Inputs/LoadbalancerListenerTcpGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class LoadbalancerListenerTcpGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + /// + [Input("idleTimeout")] + public Input? IdleTimeout { get; set; } + + public LoadbalancerListenerTcpGetArgs() + { + } + public static new LoadbalancerListenerTcpGetArgs Empty => new LoadbalancerListenerTcpGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/LoadbalancerListenerUdpArgs.cs b/sdk/dotnet/Inputs/LoadbalancerListenerUdpArgs.cs new file mode 100644 index 00000000..ad688a89 --- /dev/null +++ b/sdk/dotnet/Inputs/LoadbalancerListenerUdpArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class LoadbalancerListenerUdpArgs : global::Pulumi.ResourceArgs + { + /// + /// Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + /// + [Input("idleTimeout")] + public Input? IdleTimeout { get; set; } + + public LoadbalancerListenerUdpArgs() + { + } + public static new LoadbalancerListenerUdpArgs Empty => new LoadbalancerListenerUdpArgs(); + } +} diff --git a/sdk/dotnet/Inputs/LoadbalancerListenerUdpGetArgs.cs b/sdk/dotnet/Inputs/LoadbalancerListenerUdpGetArgs.cs new file mode 100644 index 00000000..cb9ef5ca --- /dev/null +++ b/sdk/dotnet/Inputs/LoadbalancerListenerUdpGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class LoadbalancerListenerUdpGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + /// + [Input("idleTimeout")] + public Input? IdleTimeout { get; set; } + + public LoadbalancerListenerUdpGetArgs() + { + } + public static new LoadbalancerListenerUdpGetArgs Empty => new LoadbalancerListenerUdpGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/LoadbalancerNetworkArgs.cs b/sdk/dotnet/Inputs/LoadbalancerNetworkArgs.cs index 30d77a4f..aabccff5 100644 --- a/sdk/dotnet/Inputs/LoadbalancerNetworkArgs.cs +++ b/sdk/dotnet/Inputs/LoadbalancerNetworkArgs.cs @@ -19,7 +19,7 @@ public sealed class LoadbalancerNetworkArgs : global::Pulumi.ResourceArgs public Input NetworkId { get; set; } = null!; /// - /// The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + /// The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. /// [Input("role", required: true)] public Input Role { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/LoadbalancerNetworkGetArgs.cs b/sdk/dotnet/Inputs/LoadbalancerNetworkGetArgs.cs index 99ff18ea..38e73d5e 100644 --- a/sdk/dotnet/Inputs/LoadbalancerNetworkGetArgs.cs +++ b/sdk/dotnet/Inputs/LoadbalancerNetworkGetArgs.cs @@ -19,7 +19,7 @@ public sealed class LoadbalancerNetworkGetArgs : global::Pulumi.ResourceArgs public Input NetworkId { get; set; } = null!; /// - /// The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + /// The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. /// [Input("role", required: true)] public Input Role { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/MongodbflexInstanceOptionsArgs.cs b/sdk/dotnet/Inputs/MongodbflexInstanceOptionsArgs.cs index e54154b8..310e9a00 100644 --- a/sdk/dotnet/Inputs/MongodbflexInstanceOptionsArgs.cs +++ b/sdk/dotnet/Inputs/MongodbflexInstanceOptionsArgs.cs @@ -37,7 +37,7 @@ public sealed class MongodbflexInstanceOptionsArgs : global::Pulumi.ResourceArgs public Input? SnapshotRetentionDays { get; set; } /// - /// Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + /// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/MongodbflexInstanceOptionsGetArgs.cs b/sdk/dotnet/Inputs/MongodbflexInstanceOptionsGetArgs.cs index 06350133..2c475df5 100644 --- a/sdk/dotnet/Inputs/MongodbflexInstanceOptionsGetArgs.cs +++ b/sdk/dotnet/Inputs/MongodbflexInstanceOptionsGetArgs.cs @@ -37,7 +37,7 @@ public sealed class MongodbflexInstanceOptionsGetArgs : global::Pulumi.ResourceA public Input? SnapshotRetentionDays { get; set; } /// - /// Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + /// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/RoutingTableRouteNextHopArgs.cs b/sdk/dotnet/Inputs/RoutingTableRouteNextHopArgs.cs index faa83350..39d470e0 100644 --- a/sdk/dotnet/Inputs/RoutingTableRouteNextHopArgs.cs +++ b/sdk/dotnet/Inputs/RoutingTableRouteNextHopArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Stackit.Inputs public sealed class RoutingTableRouteNextHopArgs : global::Pulumi.ResourceArgs { /// - /// Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. Only `Cidrv4` is supported during experimental stage.. + /// Type of the next hop. Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/RoutingTableRouteNextHopGetArgs.cs b/sdk/dotnet/Inputs/RoutingTableRouteNextHopGetArgs.cs index e9935f5d..145eb3dc 100644 --- a/sdk/dotnet/Inputs/RoutingTableRouteNextHopGetArgs.cs +++ b/sdk/dotnet/Inputs/RoutingTableRouteNextHopGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Stackit.Inputs public sealed class RoutingTableRouteNextHopGetArgs : global::Pulumi.ResourceArgs { /// - /// Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. Only `Cidrv4` is supported during experimental stage.. + /// Type of the next hop. Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/ServerBootVolumeArgs.cs b/sdk/dotnet/Inputs/ServerBootVolumeArgs.cs index b9a4a904..9ed2f040 100644 --- a/sdk/dotnet/Inputs/ServerBootVolumeArgs.cs +++ b/sdk/dotnet/Inputs/ServerBootVolumeArgs.cs @@ -43,7 +43,7 @@ public sealed class ServerBootVolumeArgs : global::Pulumi.ResourceArgs public Input SourceId { get; set; } = null!; /// - /// The type of the source. Supported values are: `Volume`, `Image`. + /// The type of the source. Possible values are: `Volume`, `Image`. /// [Input("sourceType", required: true)] public Input SourceType { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/ServerBootVolumeGetArgs.cs b/sdk/dotnet/Inputs/ServerBootVolumeGetArgs.cs index c30c803a..181d3736 100644 --- a/sdk/dotnet/Inputs/ServerBootVolumeGetArgs.cs +++ b/sdk/dotnet/Inputs/ServerBootVolumeGetArgs.cs @@ -43,7 +43,7 @@ public sealed class ServerBootVolumeGetArgs : global::Pulumi.ResourceArgs public Input SourceId { get; set; } = null!; /// - /// The type of the source. Supported values are: `Volume`, `Image`. + /// The type of the source. Possible values are: `Volume`, `Image`. /// [Input("sourceType", required: true)] public Input SourceType { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/VolumeSourceArgs.cs b/sdk/dotnet/Inputs/VolumeSourceArgs.cs index e2b2d2cf..99b033c9 100644 --- a/sdk/dotnet/Inputs/VolumeSourceArgs.cs +++ b/sdk/dotnet/Inputs/VolumeSourceArgs.cs @@ -19,7 +19,7 @@ public sealed class VolumeSourceArgs : global::Pulumi.ResourceArgs public Input Id { get; set; } = null!; /// - /// The type of the source. Supported values are: `Volume`, `Image`, `Snapshot`, `Backup`. + /// The type of the source. Possible values are: `Volume`, `Image`, `Snapshot`, `Backup`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/VolumeSourceGetArgs.cs b/sdk/dotnet/Inputs/VolumeSourceGetArgs.cs index e8d4240d..f292c662 100644 --- a/sdk/dotnet/Inputs/VolumeSourceGetArgs.cs +++ b/sdk/dotnet/Inputs/VolumeSourceGetArgs.cs @@ -19,7 +19,7 @@ public sealed class VolumeSourceGetArgs : global::Pulumi.ResourceArgs public Input Id { get; set; } = null!; /// - /// The type of the source. Supported values are: `Volume`, `Image`, `Snapshot`, `Backup`. + /// The type of the source. Possible values are: `Volume`, `Image`, `Snapshot`, `Backup`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/KmsKey.cs b/sdk/dotnet/KmsKey.cs new file mode 100644 index 00000000..120d008c --- /dev/null +++ b/sdk/dotnet/KmsKey.cs @@ -0,0 +1,270 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// ## Example Usage + /// + [StackitResourceType("stackit:index/kmsKey:KmsKey")] + public partial class KmsKey : global::Pulumi.CustomResource + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + [Output("accessScope")] + public Output AccessScope { get; private set; } = null!; + + /// + /// The encryption algorithm that the key will use to encrypt data. Possible values are: `Aes256Gcm`, `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `HmacSha256`, `HmacSha384`, `HmacSha512`, `EcdsaP256Sha256`, `EcdsaP384Sha384`, `EcdsaP521Sha512`. + /// + [Output("algorithm")] + public Output Algorithm { get; private set; } = null!; + + /// + /// A user chosen description to distinguish multiple keys + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The display name to distinguish multiple keys + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + /// + /// States whether versions can be created or only imported. + /// + [Output("importOnly")] + public Output ImportOnly { get; private set; } = null!; + + /// + /// The ID of the key + /// + [Output("keyId")] + public Output KeyId { get; private set; } = null!; + + /// + /// The ID of the associated keyring + /// + [Output("keyringId")] + public Output KeyringId { get; private set; } = null!; + + /// + /// STACKIT project ID to which the key is associated. + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + [Output("protection")] + public Output Protection { get; private set; } = null!; + + /// + /// The purpose for which the key will be used. Possible values are: `SymmetricEncryptDecrypt`, `AsymmetricEncryptDecrypt`, `MessageAuthenticationCode`, `AsymmetricSignVerify`. + /// + [Output("purpose")] + public Output Purpose { get; private set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + + /// + /// Create a KmsKey resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public KmsKey(string name, KmsKeyArgs args, CustomResourceOptions? options = null) + : base("stackit:index/kmsKey:KmsKey", name, args ?? new KmsKeyArgs(), MakeResourceOptions(options, "")) + { + } + + private KmsKey(string name, Input id, KmsKeyState? state = null, CustomResourceOptions? options = null) + : base("stackit:index/kmsKey:KmsKey", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing KmsKey resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static KmsKey Get(string name, Input id, KmsKeyState? state = null, CustomResourceOptions? options = null) + { + return new KmsKey(name, id, state, options); + } + } + + public sealed class KmsKeyArgs : global::Pulumi.ResourceArgs + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + [Input("accessScope")] + public Input? AccessScope { get; set; } + + /// + /// The encryption algorithm that the key will use to encrypt data. Possible values are: `Aes256Gcm`, `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `HmacSha256`, `HmacSha384`, `HmacSha512`, `EcdsaP256Sha256`, `EcdsaP384Sha384`, `EcdsaP521Sha512`. + /// + [Input("algorithm", required: true)] + public Input Algorithm { get; set; } = null!; + + /// + /// A user chosen description to distinguish multiple keys + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The display name to distinguish multiple keys + /// + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + /// + /// States whether versions can be created or only imported. + /// + [Input("importOnly")] + public Input? ImportOnly { get; set; } + + /// + /// The ID of the associated keyring + /// + [Input("keyringId", required: true)] + public Input KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the key is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + [Input("protection", required: true)] + public Input Protection { get; set; } = null!; + + /// + /// The purpose for which the key will be used. Possible values are: `SymmetricEncryptDecrypt`, `AsymmetricEncryptDecrypt`, `MessageAuthenticationCode`, `AsymmetricSignVerify`. + /// + [Input("purpose", required: true)] + public Input Purpose { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public KmsKeyArgs() + { + } + public static new KmsKeyArgs Empty => new KmsKeyArgs(); + } + + public sealed class KmsKeyState : global::Pulumi.ResourceArgs + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + [Input("accessScope")] + public Input? AccessScope { get; set; } + + /// + /// The encryption algorithm that the key will use to encrypt data. Possible values are: `Aes256Gcm`, `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `HmacSha256`, `HmacSha384`, `HmacSha512`, `EcdsaP256Sha256`, `EcdsaP384Sha384`, `EcdsaP521Sha512`. + /// + [Input("algorithm")] + public Input? Algorithm { get; set; } + + /// + /// A user chosen description to distinguish multiple keys + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The display name to distinguish multiple keys + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// States whether versions can be created or only imported. + /// + [Input("importOnly")] + public Input? ImportOnly { get; set; } + + /// + /// The ID of the key + /// + [Input("keyId")] + public Input? KeyId { get; set; } + + /// + /// The ID of the associated keyring + /// + [Input("keyringId")] + public Input? KeyringId { get; set; } + + /// + /// STACKIT project ID to which the key is associated. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + [Input("protection")] + public Input? Protection { get; set; } + + /// + /// The purpose for which the key will be used. Possible values are: `SymmetricEncryptDecrypt`, `AsymmetricEncryptDecrypt`, `MessageAuthenticationCode`, `AsymmetricSignVerify`. + /// + [Input("purpose")] + public Input? Purpose { get; set; } + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public KmsKeyState() + { + } + public static new KmsKeyState Empty => new KmsKeyState(); + } +} diff --git a/sdk/dotnet/KmsKeyring.cs b/sdk/dotnet/KmsKeyring.cs new file mode 100644 index 00000000..a52dc576 --- /dev/null +++ b/sdk/dotnet/KmsKeyring.cs @@ -0,0 +1,162 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// ## Example Usage + /// + [StackitResourceType("stackit:index/kmsKeyring:KmsKeyring")] + public partial class KmsKeyring : global::Pulumi.CustomResource + { + /// + /// A user chosen description to distinguish multiple keyrings. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The display name to distinguish multiple keyrings. + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + /// + /// An auto generated unique id which identifies the keyring. + /// + [Output("keyringId")] + public Output KeyringId { get; private set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + + /// + /// Create a KmsKeyring resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public KmsKeyring(string name, KmsKeyringArgs args, CustomResourceOptions? options = null) + : base("stackit:index/kmsKeyring:KmsKeyring", name, args ?? new KmsKeyringArgs(), MakeResourceOptions(options, "")) + { + } + + private KmsKeyring(string name, Input id, KmsKeyringState? state = null, CustomResourceOptions? options = null) + : base("stackit:index/kmsKeyring:KmsKeyring", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing KmsKeyring resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static KmsKeyring Get(string name, Input id, KmsKeyringState? state = null, CustomResourceOptions? options = null) + { + return new KmsKeyring(name, id, state, options); + } + } + + public sealed class KmsKeyringArgs : global::Pulumi.ResourceArgs + { + /// + /// A user chosen description to distinguish multiple keyrings. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The display name to distinguish multiple keyrings. + /// + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public KmsKeyringArgs() + { + } + public static new KmsKeyringArgs Empty => new KmsKeyringArgs(); + } + + public sealed class KmsKeyringState : global::Pulumi.ResourceArgs + { + /// + /// A user chosen description to distinguish multiple keyrings. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The display name to distinguish multiple keyrings. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// An auto generated unique id which identifies the keyring. + /// + [Input("keyringId")] + public Input? KeyringId { get; set; } + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public KmsKeyringState() + { + } + public static new KmsKeyringState Empty => new KmsKeyringState(); + } +} diff --git a/sdk/dotnet/KmsWrappingKey.cs b/sdk/dotnet/KmsWrappingKey.cs new file mode 100644 index 00000000..67341782 --- /dev/null +++ b/sdk/dotnet/KmsWrappingKey.cs @@ -0,0 +1,290 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// KMS wrapping key resource schema. + /// + /// ## Example Usage + /// + [StackitResourceType("stackit:index/kmsWrappingKey:KmsWrappingKey")] + public partial class KmsWrappingKey : global::Pulumi.CustomResource + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + [Output("accessScope")] + public Output AccessScope { get; private set; } = null!; + + /// + /// The wrapping algorithm used to wrap the key to import. Possible values are: `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `Rsa2048OaepSha256Aes256KeyWrap`, `Rsa3072OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha512Aes256KeyWrap`. + /// + [Output("algorithm")] + public Output Algorithm { get; private set; } = null!; + + /// + /// The date and time the creation of the wrapping key was triggered. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// A user chosen description to distinguish multiple wrapping keys. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The display name to distinguish multiple wrapping keys. + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + /// + /// The date and time the wrapping key will expire. + /// + [Output("expiresAt")] + public Output ExpiresAt { get; private set; } = null!; + + /// + /// The ID of the associated keyring + /// + [Output("keyringId")] + public Output KeyringId { get; private set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + [Output("protection")] + public Output Protection { get; private set; } = null!; + + /// + /// The public key of the wrapping key. + /// + [Output("publicKey")] + public Output PublicKey { get; private set; } = null!; + + /// + /// The purpose for which the key will be used. Possible values are: `WrapSymmetricKey`, `WrapAsymmetricKey`. + /// + [Output("purpose")] + public Output Purpose { get; private set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// The ID of the wrapping key + /// + [Output("wrappingKeyId")] + public Output WrappingKeyId { get; private set; } = null!; + + + /// + /// Create a KmsWrappingKey resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public KmsWrappingKey(string name, KmsWrappingKeyArgs args, CustomResourceOptions? options = null) + : base("stackit:index/kmsWrappingKey:KmsWrappingKey", name, args ?? new KmsWrappingKeyArgs(), MakeResourceOptions(options, "")) + { + } + + private KmsWrappingKey(string name, Input id, KmsWrappingKeyState? state = null, CustomResourceOptions? options = null) + : base("stackit:index/kmsWrappingKey:KmsWrappingKey", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing KmsWrappingKey resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static KmsWrappingKey Get(string name, Input id, KmsWrappingKeyState? state = null, CustomResourceOptions? options = null) + { + return new KmsWrappingKey(name, id, state, options); + } + } + + public sealed class KmsWrappingKeyArgs : global::Pulumi.ResourceArgs + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + [Input("accessScope")] + public Input? AccessScope { get; set; } + + /// + /// The wrapping algorithm used to wrap the key to import. Possible values are: `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `Rsa2048OaepSha256Aes256KeyWrap`, `Rsa3072OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha512Aes256KeyWrap`. + /// + [Input("algorithm", required: true)] + public Input Algorithm { get; set; } = null!; + + /// + /// A user chosen description to distinguish multiple wrapping keys. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The display name to distinguish multiple wrapping keys. + /// + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + /// + /// The ID of the associated keyring + /// + [Input("keyringId", required: true)] + public Input KeyringId { get; set; } = null!; + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + [Input("protection", required: true)] + public Input Protection { get; set; } = null!; + + /// + /// The purpose for which the key will be used. Possible values are: `WrapSymmetricKey`, `WrapAsymmetricKey`. + /// + [Input("purpose", required: true)] + public Input Purpose { get; set; } = null!; + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public KmsWrappingKeyArgs() + { + } + public static new KmsWrappingKeyArgs Empty => new KmsWrappingKeyArgs(); + } + + public sealed class KmsWrappingKeyState : global::Pulumi.ResourceArgs + { + /// + /// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + /// + [Input("accessScope")] + public Input? AccessScope { get; set; } + + /// + /// The wrapping algorithm used to wrap the key to import. Possible values are: `Rsa2048OaepSha256`, `Rsa3072OaepSha256`, `Rsa4096OaepSha256`, `Rsa4096OaepSha512`, `Rsa2048OaepSha256Aes256KeyWrap`, `Rsa3072OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha256Aes256KeyWrap`, `Rsa4096OaepSha512Aes256KeyWrap`. + /// + [Input("algorithm")] + public Input? Algorithm { get; set; } + + /// + /// The date and time the creation of the wrapping key was triggered. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// A user chosen description to distinguish multiple wrapping keys. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The display name to distinguish multiple wrapping keys. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// The date and time the wrapping key will expire. + /// + [Input("expiresAt")] + public Input? ExpiresAt { get; set; } + + /// + /// The ID of the associated keyring + /// + [Input("keyringId")] + public Input? KeyringId { get; set; } + + /// + /// STACKIT project ID to which the keyring is associated. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// The underlying system that is responsible for protecting the key material. Possible values are: `Software`. + /// + [Input("protection")] + public Input? Protection { get; set; } + + /// + /// The public key of the wrapping key. + /// + [Input("publicKey")] + public Input? PublicKey { get; set; } + + /// + /// The purpose for which the key will be used. Possible values are: `WrapSymmetricKey`, `WrapAsymmetricKey`. + /// + [Input("purpose")] + public Input? Purpose { get; set; } + + /// + /// The resource region. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The ID of the wrapping key + /// + [Input("wrappingKeyId")] + public Input? WrappingKeyId { get; set; } + + public KmsWrappingKeyState() + { + } + public static new KmsWrappingKeyState Empty => new KmsWrappingKeyState(); + } +} diff --git a/sdk/dotnet/Network.cs b/sdk/dotnet/Network.cs index 3500e1a5..dc5a1451 100644 --- a/sdk/dotnet/Network.cs +++ b/sdk/dotnet/Network.cs @@ -11,6 +11,9 @@ namespace Pulumi.Stackit { /// /// Network resource schema. Must have a `Region` specified in the provider configuration. + /// > Behavior of not configured `Ipv4Nameservers` will change from January 2026. When `Ipv4Nameservers` is not set, it will be set to the network area's `DefaultNameservers`. + /// To prevent any nameserver configuration, the `Ipv4Nameservers` attribute should be explicitly set to an empty list `[]`. + /// In cases where `Ipv4Nameservers` are defined within the resource, the existing behavior will remain unchanged. /// /// ## Example Usage /// @@ -63,13 +66,13 @@ public partial class Network : global::Pulumi.CustomResource /// The IPv6 prefix of the network (CIDR). /// [Output("ipv6Prefix")] - public Output Ipv6Prefix { get; private set; } = null!; + public Output Ipv6Prefix { get; private set; } = null!; /// /// The IPv6 prefix length of the network. /// [Output("ipv6PrefixLength")] - public Output Ipv6PrefixLength { get; private set; } = null!; + public Output Ipv6PrefixLength { get; private set; } = null!; /// /// The IPv6 prefixes of the network. @@ -90,7 +93,7 @@ public partial class Network : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// The nameservers of the network. This field is deprecated and will be removed soon, use `Ipv4Nameservers` to configure the nameservers for IPv4. + /// The nameservers of the network. This field is deprecated and will be removed in January 2026, use `Ipv4Nameservers` to configure the nameservers for IPv4. /// [Output("nameservers")] public Output> Nameservers { get; private set; } = null!; @@ -114,7 +117,7 @@ public partial class Network : global::Pulumi.CustomResource public Output NoIpv6Gateway { get; private set; } = null!; /// - /// The prefixes of the network. This field is deprecated and will be removed soon, use `Ipv4Prefixes` to read the prefixes of the IPv4 networks. + /// The prefixes of the network. This field is deprecated and will be removed in January 2026, use `Ipv4Prefixes` to read the prefixes of the IPv4 networks. /// [Output("prefixes")] public Output> Prefixes { get; private set; } = null!; @@ -280,7 +283,7 @@ public InputMap Labels private InputList? _nameservers; /// - /// The nameservers of the network. This field is deprecated and will be removed soon, use `Ipv4Nameservers` to configure the nameservers for IPv4. + /// The nameservers of the network. This field is deprecated and will be removed in January 2026, use `Ipv4Nameservers` to configure the nameservers for IPv4. /// [Obsolete(@"Use `Ipv4Nameservers` to configure the nameservers for IPv4.")] public InputList Nameservers @@ -441,7 +444,7 @@ public InputMap Labels private InputList? _nameservers; /// - /// The nameservers of the network. This field is deprecated and will be removed soon, use `Ipv4Nameservers` to configure the nameservers for IPv4. + /// The nameservers of the network. This field is deprecated and will be removed in January 2026, use `Ipv4Nameservers` to configure the nameservers for IPv4. /// [Obsolete(@"Use `Ipv4Nameservers` to configure the nameservers for IPv4.")] public InputList Nameservers @@ -472,7 +475,7 @@ public InputList Nameservers private InputList? _prefixes; /// - /// The prefixes of the network. This field is deprecated and will be removed soon, use `Ipv4Prefixes` to read the prefixes of the IPv4 networks. + /// The prefixes of the network. This field is deprecated and will be removed in January 2026, use `Ipv4Prefixes` to read the prefixes of the IPv4 networks. /// [Obsolete(@"Use `Ipv4Prefixes` to read the prefixes of the IPv4 networks.")] public InputList Prefixes diff --git a/sdk/dotnet/NetworkInterface.cs b/sdk/dotnet/NetworkInterface.cs index c6ac10a2..aa264bcb 100644 --- a/sdk/dotnet/NetworkInterface.cs +++ b/sdk/dotnet/NetworkInterface.cs @@ -84,7 +84,7 @@ public partial class NetworkInterface : global::Pulumi.CustomResource public Output> SecurityGroupIds { get; private set; } = null!; /// - /// Type of network interface. Some of the possible values are: Supported values are: `Server`, `Metadata`, `Gateway`. + /// Type of network interface. Some of the possible values are: Possible values are: `Server`, `Metadata`, `Gateway`. /// [Output("type")] public Output Type { get; private set; } = null!; @@ -295,7 +295,7 @@ public InputList SecurityGroupIds } /// - /// Type of network interface. Some of the possible values are: Supported values are: `Server`, `Metadata`, `Gateway`. + /// Type of network interface. Some of the possible values are: Possible values are: `Server`, `Metadata`, `Gateway`. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/ObservabilityInstance.cs b/sdk/dotnet/ObservabilityInstance.cs index d0a73126..b0a9f926 100644 --- a/sdk/dotnet/ObservabilityInstance.cs +++ b/sdk/dotnet/ObservabilityInstance.cs @@ -89,6 +89,12 @@ public partial class ObservabilityInstance : global::Pulumi.CustomResource [Output("logsPushUrl")] public Output LogsPushUrl { get; private set; } = null!; + /// + /// Specifies for how many days the logs are kept. Default is set to `7`. + /// + [Output("logsRetentionDays")] + public Output LogsRetentionDays { get; private set; } = null!; + /// /// Specifies Logs URL. /// @@ -164,6 +170,12 @@ public partial class ObservabilityInstance : global::Pulumi.CustomResource [Output("targetsUrl")] public Output TargetsUrl { get; private set; } = null!; + /// + /// Specifies for how many days the traces are kept. Default is set to `7`. + /// + [Output("tracesRetentionDays")] + public Output TracesRetentionDays { get; private set; } = null!; + [Output("zipkinSpansUrl")] public Output ZipkinSpansUrl { get; private set; } = null!; @@ -236,6 +248,12 @@ public InputList Acls [Input("alertConfig")] public Input? AlertConfig { get; set; } + /// + /// Specifies for how many days the logs are kept. Default is set to `7`. + /// + [Input("logsRetentionDays")] + public Input? LogsRetentionDays { get; set; } + /// /// Specifies for how many days the raw metrics are kept. Default is set to `90`. /// @@ -284,6 +302,12 @@ public InputMap Parameters [Input("projectId", required: true)] public Input ProjectId { get; set; } = null!; + /// + /// Specifies for how many days the traces are kept. Default is set to `7`. + /// + [Input("tracesRetentionDays")] + public Input? TracesRetentionDays { get; set; } + public ObservabilityInstanceArgs() { } @@ -380,6 +404,12 @@ public Input? GrafanaInitialAdminPassword [Input("logsPushUrl")] public Input? LogsPushUrl { get; set; } + /// + /// Specifies for how many days the logs are kept. Default is set to `7`. + /// + [Input("logsRetentionDays")] + public Input? LogsRetentionDays { get; set; } + /// /// Specifies Logs URL. /// @@ -461,6 +491,12 @@ public InputMap Parameters [Input("targetsUrl")] public Input? TargetsUrl { get; set; } + /// + /// Specifies for how many days the traces are kept. Default is set to `7`. + /// + [Input("tracesRetentionDays")] + public Input? TracesRetentionDays { get; set; } + [Input("zipkinSpansUrl")] public Input? ZipkinSpansUrl { get; set; } diff --git a/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs b/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs index 258c50bb..6e20b071 100644 --- a/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs +++ b/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs @@ -13,6 +13,10 @@ namespace Pulumi.Stackit.Outputs [OutputType] public sealed class CdnDistributionConfigBackend { + /// + /// A map of URLs to a list of countries where content is allowed. + /// + public readonly ImmutableDictionary>? Geofencing; /// /// The configured origin request headers for the backend /// @@ -22,18 +26,21 @@ public sealed class CdnDistributionConfigBackend /// public readonly string OriginUrl; /// - /// The configured backend type. Supported values are: `Http`. + /// The configured backend type. Possible values are: `Http`. /// public readonly string Type; [OutputConstructor] private CdnDistributionConfigBackend( + ImmutableDictionary>? geofencing, + ImmutableDictionary? originRequestHeaders, string originUrl, string type) { + Geofencing = geofencing; OriginRequestHeaders = originRequestHeaders; OriginUrl = originUrl; Type = type; diff --git a/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs b/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs index 2677d107..5f6238bb 100644 --- a/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs +++ b/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs @@ -13,6 +13,10 @@ namespace Pulumi.Stackit.Outputs [OutputType] public sealed class GetCdnDistributionConfigBackendResult { + /// + /// A map of URLs to a list of countries where content is allowed. + /// + public readonly ImmutableDictionary> Geofencing; /// /// The configured origin request headers for the backend /// @@ -22,18 +26,21 @@ public sealed class GetCdnDistributionConfigBackendResult /// public readonly string OriginUrl; /// - /// The configured backend type. Supported values are: `Http`. + /// The configured backend type. Possible values are: `Http`. /// public readonly string Type; [OutputConstructor] private GetCdnDistributionConfigBackendResult( + ImmutableDictionary> geofencing, + ImmutableDictionary originRequestHeaders, string originUrl, string type) { + Geofencing = geofencing; OriginRequestHeaders = originRequestHeaders; OriginUrl = originUrl; Type = type; diff --git a/sdk/dotnet/Outputs/GetLoadbalancerListenerResult.cs b/sdk/dotnet/Outputs/GetLoadbalancerListenerResult.cs index b12de198..f3be2ae6 100644 --- a/sdk/dotnet/Outputs/GetLoadbalancerListenerResult.cs +++ b/sdk/dotnet/Outputs/GetLoadbalancerListenerResult.cs @@ -30,6 +30,14 @@ public sealed class GetLoadbalancerListenerResult /// Reference target pool by target pool name. /// public readonly string TargetPool; + /// + /// Options that are specific to the TCP protocol. + /// + public readonly Outputs.GetLoadbalancerListenerTcpResult Tcp; + /// + /// Options that are specific to the UDP protocol. + /// + public readonly Outputs.GetLoadbalancerListenerUdpResult Udp; [OutputConstructor] private GetLoadbalancerListenerResult( @@ -41,13 +49,19 @@ private GetLoadbalancerListenerResult( ImmutableArray serverNameIndicators, - string targetPool) + string targetPool, + + Outputs.GetLoadbalancerListenerTcpResult tcp, + + Outputs.GetLoadbalancerListenerUdpResult udp) { DisplayName = displayName; Port = port; Protocol = protocol; ServerNameIndicators = serverNameIndicators; TargetPool = targetPool; + Tcp = tcp; + Udp = udp; } } } diff --git a/sdk/dotnet/Outputs/GetLoadbalancerListenerTcpResult.cs b/sdk/dotnet/Outputs/GetLoadbalancerListenerTcpResult.cs new file mode 100644 index 00000000..5b49c0f2 --- /dev/null +++ b/sdk/dotnet/Outputs/GetLoadbalancerListenerTcpResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class GetLoadbalancerListenerTcpResult + { + /// + /// Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour. + /// + public readonly string IdleTimeout; + + [OutputConstructor] + private GetLoadbalancerListenerTcpResult(string idleTimeout) + { + IdleTimeout = idleTimeout; + } + } +} diff --git a/sdk/dotnet/Outputs/GetLoadbalancerListenerUdpResult.cs b/sdk/dotnet/Outputs/GetLoadbalancerListenerUdpResult.cs new file mode 100644 index 00000000..0e4f0a2f --- /dev/null +++ b/sdk/dotnet/Outputs/GetLoadbalancerListenerUdpResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class GetLoadbalancerListenerUdpResult + { + /// + /// Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. + /// + public readonly string IdleTimeout; + + [OutputConstructor] + private GetLoadbalancerListenerUdpResult(string idleTimeout) + { + IdleTimeout = idleTimeout; + } + } +} diff --git a/sdk/dotnet/Outputs/GetRoutingTableRouteNextHopResult.cs b/sdk/dotnet/Outputs/GetRoutingTableRouteNextHopResult.cs index 60b2073c..6b6af095 100644 --- a/sdk/dotnet/Outputs/GetRoutingTableRouteNextHopResult.cs +++ b/sdk/dotnet/Outputs/GetRoutingTableRouteNextHopResult.cs @@ -14,7 +14,7 @@ namespace Pulumi.Stackit.Outputs public sealed class GetRoutingTableRouteNextHopResult { /// - /// Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. Only `Cidrv4` is supported during experimental stage.. + /// Type of the next hop. Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. /// public readonly string Type; /// diff --git a/sdk/dotnet/Outputs/GetRoutingTableRoutesRouteNextHopResult.cs b/sdk/dotnet/Outputs/GetRoutingTableRoutesRouteNextHopResult.cs index 27f90451..6773f389 100644 --- a/sdk/dotnet/Outputs/GetRoutingTableRoutesRouteNextHopResult.cs +++ b/sdk/dotnet/Outputs/GetRoutingTableRoutesRouteNextHopResult.cs @@ -14,7 +14,7 @@ namespace Pulumi.Stackit.Outputs public sealed class GetRoutingTableRoutesRouteNextHopResult { /// - /// Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. Only `Cidrv4` is supported during experimental stage.. + /// Type of the next hop. Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. /// public readonly string Type; /// diff --git a/sdk/dotnet/Outputs/GetVolumeSourceResult.cs b/sdk/dotnet/Outputs/GetVolumeSourceResult.cs index 1093962f..19d40452 100644 --- a/sdk/dotnet/Outputs/GetVolumeSourceResult.cs +++ b/sdk/dotnet/Outputs/GetVolumeSourceResult.cs @@ -18,7 +18,7 @@ public sealed class GetVolumeSourceResult /// public readonly string Id; /// - /// The type of the source. Supported values are: `Volume`, `Image`, `Snapshot`, `Backup`. + /// The type of the source. Possible values are: `Volume`, `Image`, `Snapshot`, `Backup`. /// public readonly string Type; diff --git a/sdk/dotnet/Outputs/LoadbalancerListener.cs b/sdk/dotnet/Outputs/LoadbalancerListener.cs index 9333066f..dda3650a 100644 --- a/sdk/dotnet/Outputs/LoadbalancerListener.cs +++ b/sdk/dotnet/Outputs/LoadbalancerListener.cs @@ -19,7 +19,7 @@ public sealed class LoadbalancerListener /// public readonly int Port; /// - /// Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + /// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. /// public readonly string Protocol; /// @@ -30,6 +30,14 @@ public sealed class LoadbalancerListener /// Reference target pool by target pool name. /// public readonly string TargetPool; + /// + /// Options that are specific to the TCP protocol. + /// + public readonly Outputs.LoadbalancerListenerTcp? Tcp; + /// + /// Options that are specific to the UDP protocol. + /// + public readonly Outputs.LoadbalancerListenerUdp? Udp; [OutputConstructor] private LoadbalancerListener( @@ -41,13 +49,19 @@ private LoadbalancerListener( ImmutableArray serverNameIndicators, - string targetPool) + string targetPool, + + Outputs.LoadbalancerListenerTcp? tcp, + + Outputs.LoadbalancerListenerUdp? udp) { DisplayName = displayName; Port = port; Protocol = protocol; ServerNameIndicators = serverNameIndicators; TargetPool = targetPool; + Tcp = tcp; + Udp = udp; } } } diff --git a/sdk/dotnet/Outputs/LoadbalancerListenerTcp.cs b/sdk/dotnet/Outputs/LoadbalancerListenerTcp.cs new file mode 100644 index 00000000..0c97e5f9 --- /dev/null +++ b/sdk/dotnet/Outputs/LoadbalancerListenerTcp.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class LoadbalancerListenerTcp + { + /// + /// Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + /// + public readonly string? IdleTimeout; + + [OutputConstructor] + private LoadbalancerListenerTcp(string? idleTimeout) + { + IdleTimeout = idleTimeout; + } + } +} diff --git a/sdk/dotnet/Outputs/LoadbalancerListenerUdp.cs b/sdk/dotnet/Outputs/LoadbalancerListenerUdp.cs new file mode 100644 index 00000000..751c82b1 --- /dev/null +++ b/sdk/dotnet/Outputs/LoadbalancerListenerUdp.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class LoadbalancerListenerUdp + { + /// + /// Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + /// + public readonly string? IdleTimeout; + + [OutputConstructor] + private LoadbalancerListenerUdp(string? idleTimeout) + { + IdleTimeout = idleTimeout; + } + } +} diff --git a/sdk/dotnet/Outputs/LoadbalancerNetwork.cs b/sdk/dotnet/Outputs/LoadbalancerNetwork.cs index f5d0792f..30895ce6 100644 --- a/sdk/dotnet/Outputs/LoadbalancerNetwork.cs +++ b/sdk/dotnet/Outputs/LoadbalancerNetwork.cs @@ -18,7 +18,7 @@ public sealed class LoadbalancerNetwork /// public readonly string NetworkId; /// - /// The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + /// The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. /// public readonly string Role; diff --git a/sdk/dotnet/Outputs/MongodbflexInstanceOptions.cs b/sdk/dotnet/Outputs/MongodbflexInstanceOptions.cs index 649f5124..1afcb684 100644 --- a/sdk/dotnet/Outputs/MongodbflexInstanceOptions.cs +++ b/sdk/dotnet/Outputs/MongodbflexInstanceOptions.cs @@ -30,7 +30,7 @@ public sealed class MongodbflexInstanceOptions /// public readonly int? SnapshotRetentionDays; /// - /// Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + /// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. /// public readonly string Type; /// diff --git a/sdk/dotnet/Outputs/RoutingTableRouteNextHop.cs b/sdk/dotnet/Outputs/RoutingTableRouteNextHop.cs index f8c7d610..66ee9994 100644 --- a/sdk/dotnet/Outputs/RoutingTableRouteNextHop.cs +++ b/sdk/dotnet/Outputs/RoutingTableRouteNextHop.cs @@ -14,7 +14,7 @@ namespace Pulumi.Stackit.Outputs public sealed class RoutingTableRouteNextHop { /// - /// Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. Only `Cidrv4` is supported during experimental stage.. + /// Type of the next hop. Possible values are: `Blackhole`, `Internet`, `Ipv4`, `Ipv6`. /// public readonly string Type; /// diff --git a/sdk/dotnet/Outputs/ServerBootVolume.cs b/sdk/dotnet/Outputs/ServerBootVolume.cs index 60db8031..045ffd11 100644 --- a/sdk/dotnet/Outputs/ServerBootVolume.cs +++ b/sdk/dotnet/Outputs/ServerBootVolume.cs @@ -34,7 +34,7 @@ public sealed class ServerBootVolume /// public readonly string SourceId; /// - /// The type of the source. Supported values are: `Volume`, `Image`. + /// The type of the source. Possible values are: `Volume`, `Image`. /// public readonly string SourceType; diff --git a/sdk/dotnet/Outputs/VolumeSource.cs b/sdk/dotnet/Outputs/VolumeSource.cs index 5787244a..303e59c2 100644 --- a/sdk/dotnet/Outputs/VolumeSource.cs +++ b/sdk/dotnet/Outputs/VolumeSource.cs @@ -18,7 +18,7 @@ public sealed class VolumeSource /// public readonly string Id; /// - /// The type of the source. Supported values are: `Volume`, `Image`, `Snapshot`, `Backup`. + /// The type of the source. Possible values are: `Volume`, `Image`, `Snapshot`, `Backup`. /// public readonly string Type; diff --git a/sdk/dotnet/PostgresflexUser.cs b/sdk/dotnet/PostgresflexUser.cs index 33359c32..b3690e6b 100644 --- a/sdk/dotnet/PostgresflexUser.cs +++ b/sdk/dotnet/PostgresflexUser.cs @@ -45,7 +45,7 @@ public partial class PostgresflexUser : global::Pulumi.CustomResource public Output Region { get; private set; } = null!; /// - /// Database access levels for the user. Supported values are: `Login`, `Createdb`. + /// Database access levels for the user. Possible values are: `Login`, `Createdb`. /// [Output("roles")] public Output> Roles { get; private set; } = null!; @@ -136,7 +136,7 @@ public sealed class PostgresflexUserArgs : global::Pulumi.ResourceArgs private InputList? _roles; /// - /// Database access levels for the user. Supported values are: `Login`, `Createdb`. + /// Database access levels for the user. Possible values are: `Login`, `Createdb`. /// public InputList Roles { @@ -195,7 +195,7 @@ public Input? Password private InputList? _roles; /// - /// Database access levels for the user. Supported values are: `Login`, `Createdb`. + /// Database access levels for the user. Possible values are: `Login`, `Createdb`. /// public InputList Roles { diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index d46980f7..15b81f75 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -60,6 +60,12 @@ public partial class Provider : global::Pulumi.ProviderResource [Output("iaasCustomEndpoint")] public Output IaasCustomEndpoint { get; private set; } = null!; + /// + /// Custom endpoint for the KMS service + /// + [Output("kmsCustomEndpoint")] + public Output KmsCustomEndpoint { get; private set; } = null!; + /// /// Custom endpoint for the Load Balancer service /// @@ -323,6 +329,12 @@ public InputList Experiments [Input("iaasCustomEndpoint")] public Input? IaasCustomEndpoint { get; set; } + /// + /// Custom endpoint for the KMS service + /// + [Input("kmsCustomEndpoint")] + public Input? KmsCustomEndpoint { get; set; } + /// /// Custom endpoint for the Load Balancer service /// diff --git a/sdk/dotnet/ResourcemanagerFolder.cs b/sdk/dotnet/ResourcemanagerFolder.cs index 4ad496a5..9a929aeb 100644 --- a/sdk/dotnet/ResourcemanagerFolder.cs +++ b/sdk/dotnet/ResourcemanagerFolder.cs @@ -12,8 +12,6 @@ namespace Pulumi.Stackit /// /// Resource Manager folder resource schema. /// - /// > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - /// /// ## Example Usage /// [StackitResourceType("stackit:index/resourcemanagerFolder:ResourcemanagerFolder")] diff --git a/sdk/dotnet/SecurityGroupRule.cs b/sdk/dotnet/SecurityGroupRule.cs index b59f485b..34ff1cd2 100644 --- a/sdk/dotnet/SecurityGroupRule.cs +++ b/sdk/dotnet/SecurityGroupRule.cs @@ -24,7 +24,7 @@ public partial class SecurityGroupRule : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `Ingress`, `Egress`. + /// The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `Ingress`, `Egress`. /// [Output("direction")] public Output Direction { get; private set; } = null!; @@ -137,7 +137,7 @@ public sealed class SecurityGroupRuleArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `Ingress`, `Egress`. + /// The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `Ingress`, `Egress`. /// [Input("direction", required: true)] public Input Direction { get; set; } = null!; @@ -205,7 +205,7 @@ public sealed class SecurityGroupRuleState : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `Ingress`, `Egress`. + /// The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `Ingress`, `Egress`. /// [Input("direction")] public Input? Direction { get; set; } diff --git a/sdk/dotnet/Server.cs b/sdk/dotnet/Server.cs index 50e92704..be04eae6 100644 --- a/sdk/dotnet/Server.cs +++ b/sdk/dotnet/Server.cs @@ -56,7 +56,7 @@ public partial class Server : global::Pulumi.CustomResource public Output CreatedAt { get; private set; } = null!; /// - /// The desired status of the server resource. Supported values are: `Active`, `Inactive`, `Deallocated`. + /// The desired status of the server resource. Possible values are: `Active`, `Inactive`, `Deallocated`. /// [Output("desiredStatus")] public Output DesiredStatus { get; private set; } = null!; @@ -193,7 +193,7 @@ public sealed class ServerArgs : global::Pulumi.ResourceArgs public Input? BootVolume { get; set; } /// - /// The desired status of the server resource. Supported values are: `Active`, `Inactive`, `Deallocated`. + /// The desired status of the server resource. Possible values are: `Active`, `Inactive`, `Deallocated`. /// [Input("desiredStatus")] public Input? DesiredStatus { get; set; } @@ -291,7 +291,7 @@ public sealed class ServerState : global::Pulumi.ResourceArgs public Input? CreatedAt { get; set; } /// - /// The desired status of the server resource. Supported values are: `Active`, `Inactive`, `Deallocated`. + /// The desired status of the server resource. Possible values are: `Active`, `Inactive`, `Deallocated`. /// [Input("desiredStatus")] public Input? DesiredStatus { get; set; } diff --git a/sdk/go/stackit/config/config.go b/sdk/go/stackit/config/config.go index 92c0d8f9..82e894c2 100644 --- a/sdk/go/stackit/config/config.go +++ b/sdk/go/stackit/config/config.go @@ -56,6 +56,11 @@ func GetIaasCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "stackit:iaasCustomEndpoint") } +// Custom endpoint for the KMS service +func GetKmsCustomEndpoint(ctx *pulumi.Context) string { + return config.Get(ctx, "stackit:kmsCustomEndpoint") +} + // Custom endpoint for the Load Balancer service func GetLoadbalancerCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "stackit:loadbalancerCustomEndpoint") diff --git a/sdk/go/stackit/dnsZone.go b/sdk/go/stackit/dnsZone.go index 119a5f9e..162a178f 100644 --- a/sdk/go/stackit/dnsZone.go +++ b/sdk/go/stackit/dnsZone.go @@ -53,7 +53,7 @@ type DnsZone struct { SerialNumber pulumi.IntOutput `pulumi:"serialNumber"` // Zone state. E.g. `CREATE_SUCCEEDED`. State pulumi.StringOutput `pulumi:"state"` - // Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + // Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. Type pulumi.StringOutput `pulumi:"type"` // Visibility of the zone. E.g. `public`. Visibility pulumi.StringOutput `pulumi:"visibility"` @@ -132,7 +132,7 @@ type dnsZoneState struct { SerialNumber *int `pulumi:"serialNumber"` // Zone state. E.g. `CREATE_SUCCEEDED`. State *string `pulumi:"state"` - // Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + // Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. Type *string `pulumi:"type"` // Visibility of the zone. E.g. `public`. Visibility *string `pulumi:"visibility"` @@ -176,7 +176,7 @@ type DnsZoneState struct { SerialNumber pulumi.IntPtrInput // Zone state. E.g. `CREATE_SUCCEEDED`. State pulumi.StringPtrInput - // Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + // Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. Type pulumi.StringPtrInput // Visibility of the zone. E.g. `public`. Visibility pulumi.StringPtrInput @@ -216,7 +216,7 @@ type dnsZoneArgs struct { RefreshTime *int `pulumi:"refreshTime"` // Retry time. E.g. 600 RetryTime *int `pulumi:"retryTime"` - // Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + // Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. Type *string `pulumi:"type"` } @@ -249,7 +249,7 @@ type DnsZoneArgs struct { RefreshTime pulumi.IntPtrInput // Retry time. E.g. 600 RetryTime pulumi.IntPtrInput - // Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + // Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. Type pulumi.StringPtrInput } @@ -429,7 +429,7 @@ func (o DnsZoneOutput) State() pulumi.StringOutput { return o.ApplyT(func(v *DnsZone) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) } -// Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. +// Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. func (o DnsZoneOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *DnsZone) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } diff --git a/sdk/go/stackit/getKmsKey.go b/sdk/go/stackit/getKmsKey.go new file mode 100644 index 00000000..3ebccb66 --- /dev/null +++ b/sdk/go/stackit/getKmsKey.go @@ -0,0 +1,167 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// KMS Key datasource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. +// +// ## Example Usage +func LookupKmsKey(ctx *pulumi.Context, args *LookupKmsKeyArgs, opts ...pulumi.InvokeOption) (*LookupKmsKeyResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupKmsKeyResult + err := ctx.Invoke("stackit:index/getKmsKey:getKmsKey", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getKmsKey. +type LookupKmsKeyArgs struct { + // The ID of the key + KeyId string `pulumi:"keyId"` + // The ID of the associated key ring + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the key is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// A collection of values returned by getKmsKey. +type LookupKmsKeyResult struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope string `pulumi:"accessScope"` + // The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + Algorithm string `pulumi:"algorithm"` + // A user chosen description to distinguish multiple keys + Description string `pulumi:"description"` + // The display name to distinguish multiple keys + DisplayName string `pulumi:"displayName"` + Id string `pulumi:"id"` + // States whether versions can be created or only imported. + ImportOnly bool `pulumi:"importOnly"` + // The ID of the key + KeyId string `pulumi:"keyId"` + // The ID of the associated key ring + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the key is associated. + ProjectId string `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection string `pulumi:"protection"` + // The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + Purpose string `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region string `pulumi:"region"` +} + +func LookupKmsKeyOutput(ctx *pulumi.Context, args LookupKmsKeyOutputArgs, opts ...pulumi.InvokeOption) LookupKmsKeyResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupKmsKeyResultOutput, error) { + args := v.(LookupKmsKeyArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getKmsKey:getKmsKey", args, LookupKmsKeyResultOutput{}, options).(LookupKmsKeyResultOutput), nil + }).(LookupKmsKeyResultOutput) +} + +// A collection of arguments for invoking getKmsKey. +type LookupKmsKeyOutputArgs struct { + // The ID of the key + KeyId pulumi.StringInput `pulumi:"keyId"` + // The ID of the associated key ring + KeyringId pulumi.StringInput `pulumi:"keyringId"` + // STACKIT project ID to which the key is associated. + ProjectId pulumi.StringInput `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput `pulumi:"region"` +} + +func (LookupKmsKeyOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKmsKeyArgs)(nil)).Elem() +} + +// A collection of values returned by getKmsKey. +type LookupKmsKeyResultOutput struct{ *pulumi.OutputState } + +func (LookupKmsKeyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKmsKeyResult)(nil)).Elem() +} + +func (o LookupKmsKeyResultOutput) ToLookupKmsKeyResultOutput() LookupKmsKeyResultOutput { + return o +} + +func (o LookupKmsKeyResultOutput) ToLookupKmsKeyResultOutputWithContext(ctx context.Context) LookupKmsKeyResultOutput { + return o +} + +// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. +func (o LookupKmsKeyResultOutput) AccessScope() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.AccessScope }).(pulumi.StringOutput) +} + +// The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. +func (o LookupKmsKeyResultOutput) Algorithm() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.Algorithm }).(pulumi.StringOutput) +} + +// A user chosen description to distinguish multiple keys +func (o LookupKmsKeyResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.Description }).(pulumi.StringOutput) +} + +// The display name to distinguish multiple keys +func (o LookupKmsKeyResultOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.DisplayName }).(pulumi.StringOutput) +} + +func (o LookupKmsKeyResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.Id }).(pulumi.StringOutput) +} + +// States whether versions can be created or only imported. +func (o LookupKmsKeyResultOutput) ImportOnly() pulumi.BoolOutput { + return o.ApplyT(func(v LookupKmsKeyResult) bool { return v.ImportOnly }).(pulumi.BoolOutput) +} + +// The ID of the key +func (o LookupKmsKeyResultOutput) KeyId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.KeyId }).(pulumi.StringOutput) +} + +// The ID of the associated key ring +func (o LookupKmsKeyResultOutput) KeyringId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.KeyringId }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the key is associated. +func (o LookupKmsKeyResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// The underlying system that is responsible for protecting the key material. Possible values are: `software`. +func (o LookupKmsKeyResultOutput) Protection() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.Protection }).(pulumi.StringOutput) +} + +// The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. +func (o LookupKmsKeyResultOutput) Purpose() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.Purpose }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o LookupKmsKeyResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyResult) string { return v.Region }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupKmsKeyResultOutput{}) +} diff --git a/sdk/go/stackit/getKmsKeyring.go b/sdk/go/stackit/getKmsKeyring.go new file mode 100644 index 00000000..2a620a2d --- /dev/null +++ b/sdk/go/stackit/getKmsKeyring.go @@ -0,0 +1,121 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// KMS Keyring datasource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. +// +// ## Example Usage +func LookupKmsKeyring(ctx *pulumi.Context, args *LookupKmsKeyringArgs, opts ...pulumi.InvokeOption) (*LookupKmsKeyringResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupKmsKeyringResult + err := ctx.Invoke("stackit:index/getKmsKeyring:getKmsKeyring", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getKmsKeyring. +type LookupKmsKeyringArgs struct { + // An auto generated unique id which identifies the keyring. + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// A collection of values returned by getKmsKeyring. +type LookupKmsKeyringResult struct { + // A user chosen description to distinguish multiple keyrings. + Description string `pulumi:"description"` + // The display name to distinguish multiple keyrings. + DisplayName string `pulumi:"displayName"` + Id string `pulumi:"id"` + // An auto generated unique id which identifies the keyring. + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region string `pulumi:"region"` +} + +func LookupKmsKeyringOutput(ctx *pulumi.Context, args LookupKmsKeyringOutputArgs, opts ...pulumi.InvokeOption) LookupKmsKeyringResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupKmsKeyringResultOutput, error) { + args := v.(LookupKmsKeyringArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getKmsKeyring:getKmsKeyring", args, LookupKmsKeyringResultOutput{}, options).(LookupKmsKeyringResultOutput), nil + }).(LookupKmsKeyringResultOutput) +} + +// A collection of arguments for invoking getKmsKeyring. +type LookupKmsKeyringOutputArgs struct { + // An auto generated unique id which identifies the keyring. + KeyringId pulumi.StringInput `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringInput `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput `pulumi:"region"` +} + +func (LookupKmsKeyringOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKmsKeyringArgs)(nil)).Elem() +} + +// A collection of values returned by getKmsKeyring. +type LookupKmsKeyringResultOutput struct{ *pulumi.OutputState } + +func (LookupKmsKeyringResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKmsKeyringResult)(nil)).Elem() +} + +func (o LookupKmsKeyringResultOutput) ToLookupKmsKeyringResultOutput() LookupKmsKeyringResultOutput { + return o +} + +func (o LookupKmsKeyringResultOutput) ToLookupKmsKeyringResultOutputWithContext(ctx context.Context) LookupKmsKeyringResultOutput { + return o +} + +// A user chosen description to distinguish multiple keyrings. +func (o LookupKmsKeyringResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyringResult) string { return v.Description }).(pulumi.StringOutput) +} + +// The display name to distinguish multiple keyrings. +func (o LookupKmsKeyringResultOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyringResult) string { return v.DisplayName }).(pulumi.StringOutput) +} + +func (o LookupKmsKeyringResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyringResult) string { return v.Id }).(pulumi.StringOutput) +} + +// An auto generated unique id which identifies the keyring. +func (o LookupKmsKeyringResultOutput) KeyringId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyringResult) string { return v.KeyringId }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the keyring is associated. +func (o LookupKmsKeyringResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyringResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o LookupKmsKeyringResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsKeyringResult) string { return v.Region }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupKmsKeyringResultOutput{}) +} diff --git a/sdk/go/stackit/getKmsWrappingKey.go b/sdk/go/stackit/getKmsWrappingKey.go new file mode 100644 index 00000000..2b6f2619 --- /dev/null +++ b/sdk/go/stackit/getKmsWrappingKey.go @@ -0,0 +1,181 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// KMS wrapping key datasource schema. +// +// ## Example Usage +func LookupKmsWrappingKey(ctx *pulumi.Context, args *LookupKmsWrappingKeyArgs, opts ...pulumi.InvokeOption) (*LookupKmsWrappingKeyResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupKmsWrappingKeyResult + err := ctx.Invoke("stackit:index/getKmsWrappingKey:getKmsWrappingKey", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getKmsWrappingKey. +type LookupKmsWrappingKeyArgs struct { + // The ID of the associated keyring + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The ID of the wrapping key + WrappingKeyId string `pulumi:"wrappingKeyId"` +} + +// A collection of values returned by getKmsWrappingKey. +type LookupKmsWrappingKeyResult struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope string `pulumi:"accessScope"` + // The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + Algorithm string `pulumi:"algorithm"` + // The date and time the creation of the wrapping key was triggered. + CreatedAt string `pulumi:"createdAt"` + // A user chosen description to distinguish multiple wrapping keys. + Description string `pulumi:"description"` + // The display name to distinguish multiple wrapping keys. + DisplayName string `pulumi:"displayName"` + // The date and time the wrapping key will expire. + ExpiresAt string `pulumi:"expiresAt"` + Id string `pulumi:"id"` + // The ID of the associated keyring + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId string `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection string `pulumi:"protection"` + // The public key of the wrapping key. + PublicKey string `pulumi:"publicKey"` + // The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + Purpose string `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region string `pulumi:"region"` + // The ID of the wrapping key + WrappingKeyId string `pulumi:"wrappingKeyId"` +} + +func LookupKmsWrappingKeyOutput(ctx *pulumi.Context, args LookupKmsWrappingKeyOutputArgs, opts ...pulumi.InvokeOption) LookupKmsWrappingKeyResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupKmsWrappingKeyResultOutput, error) { + args := v.(LookupKmsWrappingKeyArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getKmsWrappingKey:getKmsWrappingKey", args, LookupKmsWrappingKeyResultOutput{}, options).(LookupKmsWrappingKeyResultOutput), nil + }).(LookupKmsWrappingKeyResultOutput) +} + +// A collection of arguments for invoking getKmsWrappingKey. +type LookupKmsWrappingKeyOutputArgs struct { + // The ID of the associated keyring + KeyringId pulumi.StringInput `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringInput `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput `pulumi:"region"` + // The ID of the wrapping key + WrappingKeyId pulumi.StringInput `pulumi:"wrappingKeyId"` +} + +func (LookupKmsWrappingKeyOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKmsWrappingKeyArgs)(nil)).Elem() +} + +// A collection of values returned by getKmsWrappingKey. +type LookupKmsWrappingKeyResultOutput struct{ *pulumi.OutputState } + +func (LookupKmsWrappingKeyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKmsWrappingKeyResult)(nil)).Elem() +} + +func (o LookupKmsWrappingKeyResultOutput) ToLookupKmsWrappingKeyResultOutput() LookupKmsWrappingKeyResultOutput { + return o +} + +func (o LookupKmsWrappingKeyResultOutput) ToLookupKmsWrappingKeyResultOutputWithContext(ctx context.Context) LookupKmsWrappingKeyResultOutput { + return o +} + +// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. +func (o LookupKmsWrappingKeyResultOutput) AccessScope() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.AccessScope }).(pulumi.StringOutput) +} + +// The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. +func (o LookupKmsWrappingKeyResultOutput) Algorithm() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.Algorithm }).(pulumi.StringOutput) +} + +// The date and time the creation of the wrapping key was triggered. +func (o LookupKmsWrappingKeyResultOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +// A user chosen description to distinguish multiple wrapping keys. +func (o LookupKmsWrappingKeyResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.Description }).(pulumi.StringOutput) +} + +// The display name to distinguish multiple wrapping keys. +func (o LookupKmsWrappingKeyResultOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.DisplayName }).(pulumi.StringOutput) +} + +// The date and time the wrapping key will expire. +func (o LookupKmsWrappingKeyResultOutput) ExpiresAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.ExpiresAt }).(pulumi.StringOutput) +} + +func (o LookupKmsWrappingKeyResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The ID of the associated keyring +func (o LookupKmsWrappingKeyResultOutput) KeyringId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.KeyringId }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the keyring is associated. +func (o LookupKmsWrappingKeyResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// The underlying system that is responsible for protecting the key material. Possible values are: `software`. +func (o LookupKmsWrappingKeyResultOutput) Protection() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.Protection }).(pulumi.StringOutput) +} + +// The public key of the wrapping key. +func (o LookupKmsWrappingKeyResultOutput) PublicKey() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.PublicKey }).(pulumi.StringOutput) +} + +// The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. +func (o LookupKmsWrappingKeyResultOutput) Purpose() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.Purpose }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o LookupKmsWrappingKeyResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.Region }).(pulumi.StringOutput) +} + +// The ID of the wrapping key +func (o LookupKmsWrappingKeyResultOutput) WrappingKeyId() pulumi.StringOutput { + return o.ApplyT(func(v LookupKmsWrappingKeyResult) string { return v.WrappingKeyId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupKmsWrappingKeyResultOutput{}) +} diff --git a/sdk/go/stackit/getNetworkInterface.go b/sdk/go/stackit/getNetworkInterface.go index 3dd4d9ef..affbde5e 100644 --- a/sdk/go/stackit/getNetworkInterface.go +++ b/sdk/go/stackit/getNetworkInterface.go @@ -59,7 +59,7 @@ type LookupNetworkInterfaceResult struct { Security bool `pulumi:"security"` // The list of security group UUIDs. If security is set to false, setting this field will lead to an error. SecurityGroupIds []string `pulumi:"securityGroupIds"` - // Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + // Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. Type string `pulumi:"type"` } @@ -160,7 +160,7 @@ func (o LookupNetworkInterfaceResultOutput) SecurityGroupIds() pulumi.StringArra return o.ApplyT(func(v LookupNetworkInterfaceResult) []string { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) } -// Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. +// Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. func (o LookupNetworkInterfaceResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkInterfaceResult) string { return v.Type }).(pulumi.StringOutput) } diff --git a/sdk/go/stackit/getObservabilityInstance.go b/sdk/go/stackit/getObservabilityInstance.go index 5c418724..a15a39b5 100644 --- a/sdk/go/stackit/getObservabilityInstance.go +++ b/sdk/go/stackit/getObservabilityInstance.go @@ -59,6 +59,8 @@ type LookupObservabilityInstanceResult struct { JaegerUiUrl string `pulumi:"jaegerUiUrl"` // Specifies URL for pushing logs. LogsPushUrl string `pulumi:"logsPushUrl"` + // Specifies for how many days the logs are kept. Default is set to `7`. + LogsRetentionDays int `pulumi:"logsRetentionDays"` // Specifies Logs URL. LogsUrl string `pulumi:"logsUrl"` // Specifies URL for pushing metrics. @@ -83,8 +85,10 @@ type LookupObservabilityInstanceResult struct { // STACKIT project ID to which the instance is associated. ProjectId string `pulumi:"projectId"` // Specifies Targets URL. - TargetsUrl string `pulumi:"targetsUrl"` - ZipkinSpansUrl string `pulumi:"zipkinSpansUrl"` + TargetsUrl string `pulumi:"targetsUrl"` + // Specifies for how many days the traces are kept. Default is set to `7`. + TracesRetentionDays int `pulumi:"tracesRetentionDays"` + ZipkinSpansUrl string `pulumi:"zipkinSpansUrl"` } func LookupObservabilityInstanceOutput(ctx *pulumi.Context, args LookupObservabilityInstanceOutputArgs, opts ...pulumi.InvokeOption) LookupObservabilityInstanceResultOutput { @@ -190,6 +194,11 @@ func (o LookupObservabilityInstanceResultOutput) LogsPushUrl() pulumi.StringOutp return o.ApplyT(func(v LookupObservabilityInstanceResult) string { return v.LogsPushUrl }).(pulumi.StringOutput) } +// Specifies for how many days the logs are kept. Default is set to `7`. +func (o LookupObservabilityInstanceResultOutput) LogsRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v LookupObservabilityInstanceResult) int { return v.LogsRetentionDays }).(pulumi.IntOutput) +} + // Specifies Logs URL. func (o LookupObservabilityInstanceResultOutput) LogsUrl() pulumi.StringOutput { return o.ApplyT(func(v LookupObservabilityInstanceResult) string { return v.LogsUrl }).(pulumi.StringOutput) @@ -254,6 +263,11 @@ func (o LookupObservabilityInstanceResultOutput) TargetsUrl() pulumi.StringOutpu return o.ApplyT(func(v LookupObservabilityInstanceResult) string { return v.TargetsUrl }).(pulumi.StringOutput) } +// Specifies for how many days the traces are kept. Default is set to `7`. +func (o LookupObservabilityInstanceResultOutput) TracesRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v LookupObservabilityInstanceResult) int { return v.TracesRetentionDays }).(pulumi.IntOutput) +} + func (o LookupObservabilityInstanceResultOutput) ZipkinSpansUrl() pulumi.StringOutput { return o.ApplyT(func(v LookupObservabilityInstanceResult) string { return v.ZipkinSpansUrl }).(pulumi.StringOutput) } diff --git a/sdk/go/stackit/getResourcemanagerFolder.go b/sdk/go/stackit/getResourcemanagerFolder.go index a65c4748..2b647d95 100644 --- a/sdk/go/stackit/getResourcemanagerFolder.go +++ b/sdk/go/stackit/getResourcemanagerFolder.go @@ -13,8 +13,6 @@ import ( // Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. // -// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. -// // ## Example Usage func LookupResourcemanagerFolder(ctx *pulumi.Context, args *LookupResourcemanagerFolderArgs, opts ...pulumi.InvokeOption) (*LookupResourcemanagerFolderResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) diff --git a/sdk/go/stackit/getSecurityGroupRule.go b/sdk/go/stackit/getSecurityGroupRule.go index 0e73758e..c4ffb7ee 100644 --- a/sdk/go/stackit/getSecurityGroupRule.go +++ b/sdk/go/stackit/getSecurityGroupRule.go @@ -38,7 +38,7 @@ type LookupSecurityGroupRuleArgs struct { type LookupSecurityGroupRuleResult struct { // The description of the security group rule. Description string `pulumi:"description"` - // The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + // The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. Direction string `pulumi:"direction"` // The ethertype which the rule should match. EtherType string `pulumi:"etherType"` @@ -104,7 +104,7 @@ func (o LookupSecurityGroupRuleResultOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v LookupSecurityGroupRuleResult) string { return v.Description }).(pulumi.StringOutput) } -// The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. +// The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. func (o LookupSecurityGroupRuleResultOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v LookupSecurityGroupRuleResult) string { return v.Direction }).(pulumi.StringOutput) } diff --git a/sdk/go/stackit/init.go b/sdk/go/stackit/init.go index 76dbc8ab..b410f66e 100644 --- a/sdk/go/stackit/init.go +++ b/sdk/go/stackit/init.go @@ -41,6 +41,12 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Image{} case "stackit:index/keyPair:KeyPair": r = &KeyPair{} + case "stackit:index/kmsKey:KmsKey": + r = &KmsKey{} + case "stackit:index/kmsKeyring:KmsKeyring": + r = &KmsKeyring{} + case "stackit:index/kmsWrappingKey:KmsWrappingKey": + r = &KmsWrappingKey{} case "stackit:index/loadbalancer:Loadbalancer": r = &Loadbalancer{} case "stackit:index/loadbalancerObservabilityCredential:LoadbalancerObservabilityCredential": @@ -234,6 +240,21 @@ func init() { "index/keyPair", &module{version}, ) + pulumi.RegisterResourceModule( + "stackit", + "index/kmsKey", + &module{version}, + ) + pulumi.RegisterResourceModule( + "stackit", + "index/kmsKeyring", + &module{version}, + ) + pulumi.RegisterResourceModule( + "stackit", + "index/kmsWrappingKey", + &module{version}, + ) pulumi.RegisterResourceModule( "stackit", "index/loadbalancer", diff --git a/sdk/go/stackit/kmsKey.go b/sdk/go/stackit/kmsKey.go new file mode 100644 index 00000000..9cec6ce0 --- /dev/null +++ b/sdk/go/stackit/kmsKey.go @@ -0,0 +1,380 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// ## Example Usage +type KmsKey struct { + pulumi.CustomResourceState + + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope pulumi.StringOutput `pulumi:"accessScope"` + // The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + Algorithm pulumi.StringOutput `pulumi:"algorithm"` + // A user chosen description to distinguish multiple keys + Description pulumi.StringPtrOutput `pulumi:"description"` + // The display name to distinguish multiple keys + DisplayName pulumi.StringOutput `pulumi:"displayName"` + // States whether versions can be created or only imported. + ImportOnly pulumi.BoolOutput `pulumi:"importOnly"` + // The ID of the key + KeyId pulumi.StringOutput `pulumi:"keyId"` + // The ID of the associated keyring + KeyringId pulumi.StringOutput `pulumi:"keyringId"` + // STACKIT project ID to which the key is associated. + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection pulumi.StringOutput `pulumi:"protection"` + // The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + Purpose pulumi.StringOutput `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` +} + +// NewKmsKey registers a new resource with the given unique name, arguments, and options. +func NewKmsKey(ctx *pulumi.Context, + name string, args *KmsKeyArgs, opts ...pulumi.ResourceOption) (*KmsKey, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Algorithm == nil { + return nil, errors.New("invalid value for required argument 'Algorithm'") + } + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + if args.KeyringId == nil { + return nil, errors.New("invalid value for required argument 'KeyringId'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + if args.Protection == nil { + return nil, errors.New("invalid value for required argument 'Protection'") + } + if args.Purpose == nil { + return nil, errors.New("invalid value for required argument 'Purpose'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource KmsKey + err := ctx.RegisterResource("stackit:index/kmsKey:KmsKey", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetKmsKey gets an existing KmsKey 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 GetKmsKey(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *KmsKeyState, opts ...pulumi.ResourceOption) (*KmsKey, error) { + var resource KmsKey + err := ctx.ReadResource("stackit:index/kmsKey:KmsKey", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering KmsKey resources. +type kmsKeyState struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope *string `pulumi:"accessScope"` + // The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + Algorithm *string `pulumi:"algorithm"` + // A user chosen description to distinguish multiple keys + Description *string `pulumi:"description"` + // The display name to distinguish multiple keys + DisplayName *string `pulumi:"displayName"` + // States whether versions can be created or only imported. + ImportOnly *bool `pulumi:"importOnly"` + // The ID of the key + KeyId *string `pulumi:"keyId"` + // The ID of the associated keyring + KeyringId *string `pulumi:"keyringId"` + // STACKIT project ID to which the key is associated. + ProjectId *string `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection *string `pulumi:"protection"` + // The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + Purpose *string `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +type KmsKeyState struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope pulumi.StringPtrInput + // The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + Algorithm pulumi.StringPtrInput + // A user chosen description to distinguish multiple keys + Description pulumi.StringPtrInput + // The display name to distinguish multiple keys + DisplayName pulumi.StringPtrInput + // States whether versions can be created or only imported. + ImportOnly pulumi.BoolPtrInput + // The ID of the key + KeyId pulumi.StringPtrInput + // The ID of the associated keyring + KeyringId pulumi.StringPtrInput + // STACKIT project ID to which the key is associated. + ProjectId pulumi.StringPtrInput + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection pulumi.StringPtrInput + // The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + Purpose pulumi.StringPtrInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (KmsKeyState) ElementType() reflect.Type { + return reflect.TypeOf((*kmsKeyState)(nil)).Elem() +} + +type kmsKeyArgs struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope *string `pulumi:"accessScope"` + // The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + Algorithm string `pulumi:"algorithm"` + // A user chosen description to distinguish multiple keys + Description *string `pulumi:"description"` + // The display name to distinguish multiple keys + DisplayName string `pulumi:"displayName"` + // States whether versions can be created or only imported. + ImportOnly *bool `pulumi:"importOnly"` + // The ID of the associated keyring + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the key is associated. + ProjectId string `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection string `pulumi:"protection"` + // The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + Purpose string `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// The set of arguments for constructing a KmsKey resource. +type KmsKeyArgs struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope pulumi.StringPtrInput + // The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + Algorithm pulumi.StringInput + // A user chosen description to distinguish multiple keys + Description pulumi.StringPtrInput + // The display name to distinguish multiple keys + DisplayName pulumi.StringInput + // States whether versions can be created or only imported. + ImportOnly pulumi.BoolPtrInput + // The ID of the associated keyring + KeyringId pulumi.StringInput + // STACKIT project ID to which the key is associated. + ProjectId pulumi.StringInput + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection pulumi.StringInput + // The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + Purpose pulumi.StringInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (KmsKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*kmsKeyArgs)(nil)).Elem() +} + +type KmsKeyInput interface { + pulumi.Input + + ToKmsKeyOutput() KmsKeyOutput + ToKmsKeyOutputWithContext(ctx context.Context) KmsKeyOutput +} + +func (*KmsKey) ElementType() reflect.Type { + return reflect.TypeOf((**KmsKey)(nil)).Elem() +} + +func (i *KmsKey) ToKmsKeyOutput() KmsKeyOutput { + return i.ToKmsKeyOutputWithContext(context.Background()) +} + +func (i *KmsKey) ToKmsKeyOutputWithContext(ctx context.Context) KmsKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsKeyOutput) +} + +// KmsKeyArrayInput is an input type that accepts KmsKeyArray and KmsKeyArrayOutput values. +// You can construct a concrete instance of `KmsKeyArrayInput` via: +// +// KmsKeyArray{ KmsKeyArgs{...} } +type KmsKeyArrayInput interface { + pulumi.Input + + ToKmsKeyArrayOutput() KmsKeyArrayOutput + ToKmsKeyArrayOutputWithContext(context.Context) KmsKeyArrayOutput +} + +type KmsKeyArray []KmsKeyInput + +func (KmsKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KmsKey)(nil)).Elem() +} + +func (i KmsKeyArray) ToKmsKeyArrayOutput() KmsKeyArrayOutput { + return i.ToKmsKeyArrayOutputWithContext(context.Background()) +} + +func (i KmsKeyArray) ToKmsKeyArrayOutputWithContext(ctx context.Context) KmsKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsKeyArrayOutput) +} + +// KmsKeyMapInput is an input type that accepts KmsKeyMap and KmsKeyMapOutput values. +// You can construct a concrete instance of `KmsKeyMapInput` via: +// +// KmsKeyMap{ "key": KmsKeyArgs{...} } +type KmsKeyMapInput interface { + pulumi.Input + + ToKmsKeyMapOutput() KmsKeyMapOutput + ToKmsKeyMapOutputWithContext(context.Context) KmsKeyMapOutput +} + +type KmsKeyMap map[string]KmsKeyInput + +func (KmsKeyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KmsKey)(nil)).Elem() +} + +func (i KmsKeyMap) ToKmsKeyMapOutput() KmsKeyMapOutput { + return i.ToKmsKeyMapOutputWithContext(context.Background()) +} + +func (i KmsKeyMap) ToKmsKeyMapOutputWithContext(ctx context.Context) KmsKeyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsKeyMapOutput) +} + +type KmsKeyOutput struct{ *pulumi.OutputState } + +func (KmsKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KmsKey)(nil)).Elem() +} + +func (o KmsKeyOutput) ToKmsKeyOutput() KmsKeyOutput { + return o +} + +func (o KmsKeyOutput) ToKmsKeyOutputWithContext(ctx context.Context) KmsKeyOutput { + return o +} + +// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. +func (o KmsKeyOutput) AccessScope() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.AccessScope }).(pulumi.StringOutput) +} + +// The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. +func (o KmsKeyOutput) Algorithm() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.Algorithm }).(pulumi.StringOutput) +} + +// A user chosen description to distinguish multiple keys +func (o KmsKeyOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The display name to distinguish multiple keys +func (o KmsKeyOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +// States whether versions can be created or only imported. +func (o KmsKeyOutput) ImportOnly() pulumi.BoolOutput { + return o.ApplyT(func(v *KmsKey) pulumi.BoolOutput { return v.ImportOnly }).(pulumi.BoolOutput) +} + +// The ID of the key +func (o KmsKeyOutput) KeyId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.KeyId }).(pulumi.StringOutput) +} + +// The ID of the associated keyring +func (o KmsKeyOutput) KeyringId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.KeyringId }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the key is associated. +func (o KmsKeyOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// The underlying system that is responsible for protecting the key material. Possible values are: `software`. +func (o KmsKeyOutput) Protection() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.Protection }).(pulumi.StringOutput) +} + +// The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. +func (o KmsKeyOutput) Purpose() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.Purpose }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o KmsKeyOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKey) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +type KmsKeyArrayOutput struct{ *pulumi.OutputState } + +func (KmsKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KmsKey)(nil)).Elem() +} + +func (o KmsKeyArrayOutput) ToKmsKeyArrayOutput() KmsKeyArrayOutput { + return o +} + +func (o KmsKeyArrayOutput) ToKmsKeyArrayOutputWithContext(ctx context.Context) KmsKeyArrayOutput { + return o +} + +func (o KmsKeyArrayOutput) Index(i pulumi.IntInput) KmsKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KmsKey { + return vs[0].([]*KmsKey)[vs[1].(int)] + }).(KmsKeyOutput) +} + +type KmsKeyMapOutput struct{ *pulumi.OutputState } + +func (KmsKeyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KmsKey)(nil)).Elem() +} + +func (o KmsKeyMapOutput) ToKmsKeyMapOutput() KmsKeyMapOutput { + return o +} + +func (o KmsKeyMapOutput) ToKmsKeyMapOutputWithContext(ctx context.Context) KmsKeyMapOutput { + return o +} + +func (o KmsKeyMapOutput) MapIndex(k pulumi.StringInput) KmsKeyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KmsKey { + return vs[0].(map[string]*KmsKey)[vs[1].(string)] + }).(KmsKeyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KmsKeyInput)(nil)).Elem(), &KmsKey{}) + pulumi.RegisterInputType(reflect.TypeOf((*KmsKeyArrayInput)(nil)).Elem(), KmsKeyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*KmsKeyMapInput)(nil)).Elem(), KmsKeyMap{}) + pulumi.RegisterOutputType(KmsKeyOutput{}) + pulumi.RegisterOutputType(KmsKeyArrayOutput{}) + pulumi.RegisterOutputType(KmsKeyMapOutput{}) +} diff --git a/sdk/go/stackit/kmsKeyring.go b/sdk/go/stackit/kmsKeyring.go new file mode 100644 index 00000000..9e781a53 --- /dev/null +++ b/sdk/go/stackit/kmsKeyring.go @@ -0,0 +1,278 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// ## Example Usage +type KmsKeyring struct { + pulumi.CustomResourceState + + // A user chosen description to distinguish multiple keyrings. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The display name to distinguish multiple keyrings. + DisplayName pulumi.StringOutput `pulumi:"displayName"` + // An auto generated unique id which identifies the keyring. + KeyringId pulumi.StringOutput `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` +} + +// NewKmsKeyring registers a new resource with the given unique name, arguments, and options. +func NewKmsKeyring(ctx *pulumi.Context, + name string, args *KmsKeyringArgs, opts ...pulumi.ResourceOption) (*KmsKeyring, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource KmsKeyring + err := ctx.RegisterResource("stackit:index/kmsKeyring:KmsKeyring", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetKmsKeyring gets an existing KmsKeyring 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 GetKmsKeyring(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *KmsKeyringState, opts ...pulumi.ResourceOption) (*KmsKeyring, error) { + var resource KmsKeyring + err := ctx.ReadResource("stackit:index/kmsKeyring:KmsKeyring", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering KmsKeyring resources. +type kmsKeyringState struct { + // A user chosen description to distinguish multiple keyrings. + Description *string `pulumi:"description"` + // The display name to distinguish multiple keyrings. + DisplayName *string `pulumi:"displayName"` + // An auto generated unique id which identifies the keyring. + KeyringId *string `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId *string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +type KmsKeyringState struct { + // A user chosen description to distinguish multiple keyrings. + Description pulumi.StringPtrInput + // The display name to distinguish multiple keyrings. + DisplayName pulumi.StringPtrInput + // An auto generated unique id which identifies the keyring. + KeyringId pulumi.StringPtrInput + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringPtrInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (KmsKeyringState) ElementType() reflect.Type { + return reflect.TypeOf((*kmsKeyringState)(nil)).Elem() +} + +type kmsKeyringArgs struct { + // A user chosen description to distinguish multiple keyrings. + Description *string `pulumi:"description"` + // The display name to distinguish multiple keyrings. + DisplayName string `pulumi:"displayName"` + // STACKIT project ID to which the keyring is associated. + ProjectId string `pulumi:"projectId"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// The set of arguments for constructing a KmsKeyring resource. +type KmsKeyringArgs struct { + // A user chosen description to distinguish multiple keyrings. + Description pulumi.StringPtrInput + // The display name to distinguish multiple keyrings. + DisplayName pulumi.StringInput + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (KmsKeyringArgs) ElementType() reflect.Type { + return reflect.TypeOf((*kmsKeyringArgs)(nil)).Elem() +} + +type KmsKeyringInput interface { + pulumi.Input + + ToKmsKeyringOutput() KmsKeyringOutput + ToKmsKeyringOutputWithContext(ctx context.Context) KmsKeyringOutput +} + +func (*KmsKeyring) ElementType() reflect.Type { + return reflect.TypeOf((**KmsKeyring)(nil)).Elem() +} + +func (i *KmsKeyring) ToKmsKeyringOutput() KmsKeyringOutput { + return i.ToKmsKeyringOutputWithContext(context.Background()) +} + +func (i *KmsKeyring) ToKmsKeyringOutputWithContext(ctx context.Context) KmsKeyringOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsKeyringOutput) +} + +// KmsKeyringArrayInput is an input type that accepts KmsKeyringArray and KmsKeyringArrayOutput values. +// You can construct a concrete instance of `KmsKeyringArrayInput` via: +// +// KmsKeyringArray{ KmsKeyringArgs{...} } +type KmsKeyringArrayInput interface { + pulumi.Input + + ToKmsKeyringArrayOutput() KmsKeyringArrayOutput + ToKmsKeyringArrayOutputWithContext(context.Context) KmsKeyringArrayOutput +} + +type KmsKeyringArray []KmsKeyringInput + +func (KmsKeyringArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KmsKeyring)(nil)).Elem() +} + +func (i KmsKeyringArray) ToKmsKeyringArrayOutput() KmsKeyringArrayOutput { + return i.ToKmsKeyringArrayOutputWithContext(context.Background()) +} + +func (i KmsKeyringArray) ToKmsKeyringArrayOutputWithContext(ctx context.Context) KmsKeyringArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsKeyringArrayOutput) +} + +// KmsKeyringMapInput is an input type that accepts KmsKeyringMap and KmsKeyringMapOutput values. +// You can construct a concrete instance of `KmsKeyringMapInput` via: +// +// KmsKeyringMap{ "key": KmsKeyringArgs{...} } +type KmsKeyringMapInput interface { + pulumi.Input + + ToKmsKeyringMapOutput() KmsKeyringMapOutput + ToKmsKeyringMapOutputWithContext(context.Context) KmsKeyringMapOutput +} + +type KmsKeyringMap map[string]KmsKeyringInput + +func (KmsKeyringMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KmsKeyring)(nil)).Elem() +} + +func (i KmsKeyringMap) ToKmsKeyringMapOutput() KmsKeyringMapOutput { + return i.ToKmsKeyringMapOutputWithContext(context.Background()) +} + +func (i KmsKeyringMap) ToKmsKeyringMapOutputWithContext(ctx context.Context) KmsKeyringMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsKeyringMapOutput) +} + +type KmsKeyringOutput struct{ *pulumi.OutputState } + +func (KmsKeyringOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KmsKeyring)(nil)).Elem() +} + +func (o KmsKeyringOutput) ToKmsKeyringOutput() KmsKeyringOutput { + return o +} + +func (o KmsKeyringOutput) ToKmsKeyringOutputWithContext(ctx context.Context) KmsKeyringOutput { + return o +} + +// A user chosen description to distinguish multiple keyrings. +func (o KmsKeyringOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KmsKeyring) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The display name to distinguish multiple keyrings. +func (o KmsKeyringOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKeyring) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +// An auto generated unique id which identifies the keyring. +func (o KmsKeyringOutput) KeyringId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKeyring) pulumi.StringOutput { return v.KeyringId }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the keyring is associated. +func (o KmsKeyringOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKeyring) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o KmsKeyringOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *KmsKeyring) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +type KmsKeyringArrayOutput struct{ *pulumi.OutputState } + +func (KmsKeyringArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KmsKeyring)(nil)).Elem() +} + +func (o KmsKeyringArrayOutput) ToKmsKeyringArrayOutput() KmsKeyringArrayOutput { + return o +} + +func (o KmsKeyringArrayOutput) ToKmsKeyringArrayOutputWithContext(ctx context.Context) KmsKeyringArrayOutput { + return o +} + +func (o KmsKeyringArrayOutput) Index(i pulumi.IntInput) KmsKeyringOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KmsKeyring { + return vs[0].([]*KmsKeyring)[vs[1].(int)] + }).(KmsKeyringOutput) +} + +type KmsKeyringMapOutput struct{ *pulumi.OutputState } + +func (KmsKeyringMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KmsKeyring)(nil)).Elem() +} + +func (o KmsKeyringMapOutput) ToKmsKeyringMapOutput() KmsKeyringMapOutput { + return o +} + +func (o KmsKeyringMapOutput) ToKmsKeyringMapOutputWithContext(ctx context.Context) KmsKeyringMapOutput { + return o +} + +func (o KmsKeyringMapOutput) MapIndex(k pulumi.StringInput) KmsKeyringOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KmsKeyring { + return vs[0].(map[string]*KmsKeyring)[vs[1].(string)] + }).(KmsKeyringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KmsKeyringInput)(nil)).Elem(), &KmsKeyring{}) + pulumi.RegisterInputType(reflect.TypeOf((*KmsKeyringArrayInput)(nil)).Elem(), KmsKeyringArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*KmsKeyringMapInput)(nil)).Elem(), KmsKeyringMap{}) + pulumi.RegisterOutputType(KmsKeyringOutput{}) + pulumi.RegisterOutputType(KmsKeyringArrayOutput{}) + pulumi.RegisterOutputType(KmsKeyringMapOutput{}) +} diff --git a/sdk/go/stackit/kmsWrappingKey.go b/sdk/go/stackit/kmsWrappingKey.go new file mode 100644 index 00000000..42b470f6 --- /dev/null +++ b/sdk/go/stackit/kmsWrappingKey.go @@ -0,0 +1,400 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// KMS wrapping key resource schema. +// +// ## Example Usage +type KmsWrappingKey struct { + pulumi.CustomResourceState + + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope pulumi.StringOutput `pulumi:"accessScope"` + // The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + Algorithm pulumi.StringOutput `pulumi:"algorithm"` + // The date and time the creation of the wrapping key was triggered. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // A user chosen description to distinguish multiple wrapping keys. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The display name to distinguish multiple wrapping keys. + DisplayName pulumi.StringOutput `pulumi:"displayName"` + // The date and time the wrapping key will expire. + ExpiresAt pulumi.StringOutput `pulumi:"expiresAt"` + // The ID of the associated keyring + KeyringId pulumi.StringOutput `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection pulumi.StringOutput `pulumi:"protection"` + // The public key of the wrapping key. + PublicKey pulumi.StringOutput `pulumi:"publicKey"` + // The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + Purpose pulumi.StringOutput `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` + // The ID of the wrapping key + WrappingKeyId pulumi.StringOutput `pulumi:"wrappingKeyId"` +} + +// NewKmsWrappingKey registers a new resource with the given unique name, arguments, and options. +func NewKmsWrappingKey(ctx *pulumi.Context, + name string, args *KmsWrappingKeyArgs, opts ...pulumi.ResourceOption) (*KmsWrappingKey, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Algorithm == nil { + return nil, errors.New("invalid value for required argument 'Algorithm'") + } + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + if args.KeyringId == nil { + return nil, errors.New("invalid value for required argument 'KeyringId'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + if args.Protection == nil { + return nil, errors.New("invalid value for required argument 'Protection'") + } + if args.Purpose == nil { + return nil, errors.New("invalid value for required argument 'Purpose'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource KmsWrappingKey + err := ctx.RegisterResource("stackit:index/kmsWrappingKey:KmsWrappingKey", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetKmsWrappingKey gets an existing KmsWrappingKey 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 GetKmsWrappingKey(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *KmsWrappingKeyState, opts ...pulumi.ResourceOption) (*KmsWrappingKey, error) { + var resource KmsWrappingKey + err := ctx.ReadResource("stackit:index/kmsWrappingKey:KmsWrappingKey", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering KmsWrappingKey resources. +type kmsWrappingKeyState struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope *string `pulumi:"accessScope"` + // The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + Algorithm *string `pulumi:"algorithm"` + // The date and time the creation of the wrapping key was triggered. + CreatedAt *string `pulumi:"createdAt"` + // A user chosen description to distinguish multiple wrapping keys. + Description *string `pulumi:"description"` + // The display name to distinguish multiple wrapping keys. + DisplayName *string `pulumi:"displayName"` + // The date and time the wrapping key will expire. + ExpiresAt *string `pulumi:"expiresAt"` + // The ID of the associated keyring + KeyringId *string `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId *string `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection *string `pulumi:"protection"` + // The public key of the wrapping key. + PublicKey *string `pulumi:"publicKey"` + // The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + Purpose *string `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The ID of the wrapping key + WrappingKeyId *string `pulumi:"wrappingKeyId"` +} + +type KmsWrappingKeyState struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope pulumi.StringPtrInput + // The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + Algorithm pulumi.StringPtrInput + // The date and time the creation of the wrapping key was triggered. + CreatedAt pulumi.StringPtrInput + // A user chosen description to distinguish multiple wrapping keys. + Description pulumi.StringPtrInput + // The display name to distinguish multiple wrapping keys. + DisplayName pulumi.StringPtrInput + // The date and time the wrapping key will expire. + ExpiresAt pulumi.StringPtrInput + // The ID of the associated keyring + KeyringId pulumi.StringPtrInput + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringPtrInput + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection pulumi.StringPtrInput + // The public key of the wrapping key. + PublicKey pulumi.StringPtrInput + // The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + Purpose pulumi.StringPtrInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput + // The ID of the wrapping key + WrappingKeyId pulumi.StringPtrInput +} + +func (KmsWrappingKeyState) ElementType() reflect.Type { + return reflect.TypeOf((*kmsWrappingKeyState)(nil)).Elem() +} + +type kmsWrappingKeyArgs struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope *string `pulumi:"accessScope"` + // The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + Algorithm string `pulumi:"algorithm"` + // A user chosen description to distinguish multiple wrapping keys. + Description *string `pulumi:"description"` + // The display name to distinguish multiple wrapping keys. + DisplayName string `pulumi:"displayName"` + // The ID of the associated keyring + KeyringId string `pulumi:"keyringId"` + // STACKIT project ID to which the keyring is associated. + ProjectId string `pulumi:"projectId"` + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection string `pulumi:"protection"` + // The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + Purpose string `pulumi:"purpose"` + // The resource region. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// The set of arguments for constructing a KmsWrappingKey resource. +type KmsWrappingKeyArgs struct { + // The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + AccessScope pulumi.StringPtrInput + // The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + Algorithm pulumi.StringInput + // A user chosen description to distinguish multiple wrapping keys. + Description pulumi.StringPtrInput + // The display name to distinguish multiple wrapping keys. + DisplayName pulumi.StringInput + // The ID of the associated keyring + KeyringId pulumi.StringInput + // STACKIT project ID to which the keyring is associated. + ProjectId pulumi.StringInput + // The underlying system that is responsible for protecting the key material. Possible values are: `software`. + Protection pulumi.StringInput + // The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + Purpose pulumi.StringInput + // The resource region. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (KmsWrappingKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*kmsWrappingKeyArgs)(nil)).Elem() +} + +type KmsWrappingKeyInput interface { + pulumi.Input + + ToKmsWrappingKeyOutput() KmsWrappingKeyOutput + ToKmsWrappingKeyOutputWithContext(ctx context.Context) KmsWrappingKeyOutput +} + +func (*KmsWrappingKey) ElementType() reflect.Type { + return reflect.TypeOf((**KmsWrappingKey)(nil)).Elem() +} + +func (i *KmsWrappingKey) ToKmsWrappingKeyOutput() KmsWrappingKeyOutput { + return i.ToKmsWrappingKeyOutputWithContext(context.Background()) +} + +func (i *KmsWrappingKey) ToKmsWrappingKeyOutputWithContext(ctx context.Context) KmsWrappingKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsWrappingKeyOutput) +} + +// KmsWrappingKeyArrayInput is an input type that accepts KmsWrappingKeyArray and KmsWrappingKeyArrayOutput values. +// You can construct a concrete instance of `KmsWrappingKeyArrayInput` via: +// +// KmsWrappingKeyArray{ KmsWrappingKeyArgs{...} } +type KmsWrappingKeyArrayInput interface { + pulumi.Input + + ToKmsWrappingKeyArrayOutput() KmsWrappingKeyArrayOutput + ToKmsWrappingKeyArrayOutputWithContext(context.Context) KmsWrappingKeyArrayOutput +} + +type KmsWrappingKeyArray []KmsWrappingKeyInput + +func (KmsWrappingKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KmsWrappingKey)(nil)).Elem() +} + +func (i KmsWrappingKeyArray) ToKmsWrappingKeyArrayOutput() KmsWrappingKeyArrayOutput { + return i.ToKmsWrappingKeyArrayOutputWithContext(context.Background()) +} + +func (i KmsWrappingKeyArray) ToKmsWrappingKeyArrayOutputWithContext(ctx context.Context) KmsWrappingKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsWrappingKeyArrayOutput) +} + +// KmsWrappingKeyMapInput is an input type that accepts KmsWrappingKeyMap and KmsWrappingKeyMapOutput values. +// You can construct a concrete instance of `KmsWrappingKeyMapInput` via: +// +// KmsWrappingKeyMap{ "key": KmsWrappingKeyArgs{...} } +type KmsWrappingKeyMapInput interface { + pulumi.Input + + ToKmsWrappingKeyMapOutput() KmsWrappingKeyMapOutput + ToKmsWrappingKeyMapOutputWithContext(context.Context) KmsWrappingKeyMapOutput +} + +type KmsWrappingKeyMap map[string]KmsWrappingKeyInput + +func (KmsWrappingKeyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KmsWrappingKey)(nil)).Elem() +} + +func (i KmsWrappingKeyMap) ToKmsWrappingKeyMapOutput() KmsWrappingKeyMapOutput { + return i.ToKmsWrappingKeyMapOutputWithContext(context.Background()) +} + +func (i KmsWrappingKeyMap) ToKmsWrappingKeyMapOutputWithContext(ctx context.Context) KmsWrappingKeyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(KmsWrappingKeyMapOutput) +} + +type KmsWrappingKeyOutput struct{ *pulumi.OutputState } + +func (KmsWrappingKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KmsWrappingKey)(nil)).Elem() +} + +func (o KmsWrappingKeyOutput) ToKmsWrappingKeyOutput() KmsWrappingKeyOutput { + return o +} + +func (o KmsWrappingKeyOutput) ToKmsWrappingKeyOutputWithContext(ctx context.Context) KmsWrappingKeyOutput { + return o +} + +// The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. +func (o KmsWrappingKeyOutput) AccessScope() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.AccessScope }).(pulumi.StringOutput) +} + +// The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. +func (o KmsWrappingKeyOutput) Algorithm() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.Algorithm }).(pulumi.StringOutput) +} + +// The date and time the creation of the wrapping key was triggered. +func (o KmsWrappingKeyOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// A user chosen description to distinguish multiple wrapping keys. +func (o KmsWrappingKeyOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The display name to distinguish multiple wrapping keys. +func (o KmsWrappingKeyOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +// The date and time the wrapping key will expire. +func (o KmsWrappingKeyOutput) ExpiresAt() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.ExpiresAt }).(pulumi.StringOutput) +} + +// The ID of the associated keyring +func (o KmsWrappingKeyOutput) KeyringId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.KeyringId }).(pulumi.StringOutput) +} + +// STACKIT project ID to which the keyring is associated. +func (o KmsWrappingKeyOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// The underlying system that is responsible for protecting the key material. Possible values are: `software`. +func (o KmsWrappingKeyOutput) Protection() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.Protection }).(pulumi.StringOutput) +} + +// The public key of the wrapping key. +func (o KmsWrappingKeyOutput) PublicKey() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.PublicKey }).(pulumi.StringOutput) +} + +// The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. +func (o KmsWrappingKeyOutput) Purpose() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.Purpose }).(pulumi.StringOutput) +} + +// The resource region. If not defined, the provider region is used. +func (o KmsWrappingKeyOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// The ID of the wrapping key +func (o KmsWrappingKeyOutput) WrappingKeyId() pulumi.StringOutput { + return o.ApplyT(func(v *KmsWrappingKey) pulumi.StringOutput { return v.WrappingKeyId }).(pulumi.StringOutput) +} + +type KmsWrappingKeyArrayOutput struct{ *pulumi.OutputState } + +func (KmsWrappingKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KmsWrappingKey)(nil)).Elem() +} + +func (o KmsWrappingKeyArrayOutput) ToKmsWrappingKeyArrayOutput() KmsWrappingKeyArrayOutput { + return o +} + +func (o KmsWrappingKeyArrayOutput) ToKmsWrappingKeyArrayOutputWithContext(ctx context.Context) KmsWrappingKeyArrayOutput { + return o +} + +func (o KmsWrappingKeyArrayOutput) Index(i pulumi.IntInput) KmsWrappingKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KmsWrappingKey { + return vs[0].([]*KmsWrappingKey)[vs[1].(int)] + }).(KmsWrappingKeyOutput) +} + +type KmsWrappingKeyMapOutput struct{ *pulumi.OutputState } + +func (KmsWrappingKeyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KmsWrappingKey)(nil)).Elem() +} + +func (o KmsWrappingKeyMapOutput) ToKmsWrappingKeyMapOutput() KmsWrappingKeyMapOutput { + return o +} + +func (o KmsWrappingKeyMapOutput) ToKmsWrappingKeyMapOutputWithContext(ctx context.Context) KmsWrappingKeyMapOutput { + return o +} + +func (o KmsWrappingKeyMapOutput) MapIndex(k pulumi.StringInput) KmsWrappingKeyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KmsWrappingKey { + return vs[0].(map[string]*KmsWrappingKey)[vs[1].(string)] + }).(KmsWrappingKeyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KmsWrappingKeyInput)(nil)).Elem(), &KmsWrappingKey{}) + pulumi.RegisterInputType(reflect.TypeOf((*KmsWrappingKeyArrayInput)(nil)).Elem(), KmsWrappingKeyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*KmsWrappingKeyMapInput)(nil)).Elem(), KmsWrappingKeyMap{}) + pulumi.RegisterOutputType(KmsWrappingKeyOutput{}) + pulumi.RegisterOutputType(KmsWrappingKeyArrayOutput{}) + pulumi.RegisterOutputType(KmsWrappingKeyMapOutput{}) +} diff --git a/sdk/go/stackit/network.go b/sdk/go/stackit/network.go index 88acadab..fa42ecf5 100644 --- a/sdk/go/stackit/network.go +++ b/sdk/go/stackit/network.go @@ -13,6 +13,9 @@ import ( ) // Network resource schema. Must have a `region` specified in the provider configuration. +// > Behavior of not configured `ipv4Nameservers` will change from January 2026. When `ipv4Nameservers` is not set, it will be set to the network area's `defaultNameservers`. +// To prevent any nameserver configuration, the `ipv4Nameservers` attribute should be explicitly set to an empty list `[]`. +// In cases where `ipv4Nameservers` are defined within the resource, the existing behavior will remain unchanged. // // ## Example Usage type Network struct { @@ -33,16 +36,16 @@ type Network struct { // The IPv6 nameservers of the network. Ipv6Nameservers pulumi.StringArrayOutput `pulumi:"ipv6Nameservers"` // The IPv6 prefix of the network (CIDR). - Ipv6Prefix pulumi.StringPtrOutput `pulumi:"ipv6Prefix"` + Ipv6Prefix pulumi.StringOutput `pulumi:"ipv6Prefix"` // The IPv6 prefix length of the network. - Ipv6PrefixLength pulumi.IntPtrOutput `pulumi:"ipv6PrefixLength"` + Ipv6PrefixLength pulumi.IntOutput `pulumi:"ipv6PrefixLength"` // The IPv6 prefixes of the network. Ipv6Prefixes pulumi.StringArrayOutput `pulumi:"ipv6Prefixes"` // Labels are key-value string pairs which can be attached to a resource container Labels pulumi.StringMapOutput `pulumi:"labels"` // The name of the network. Name pulumi.StringOutput `pulumi:"name"` - // The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + // The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. // // Deprecated: Use `ipv4Nameservers` to configure the nameservers for IPv4. Nameservers pulumi.StringArrayOutput `pulumi:"nameservers"` @@ -52,7 +55,7 @@ type Network struct { NoIpv4Gateway pulumi.BoolPtrOutput `pulumi:"noIpv4Gateway"` // If set to `true`, the network doesn't have a gateway. NoIpv6Gateway pulumi.BoolPtrOutput `pulumi:"noIpv6Gateway"` - // The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. + // The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. // // Deprecated: Use `ipv4Prefixes` to read the prefixes of the IPv4 networks. Prefixes pulumi.StringArrayOutput `pulumi:"prefixes"` @@ -127,7 +130,7 @@ type networkState struct { Labels map[string]string `pulumi:"labels"` // The name of the network. Name *string `pulumi:"name"` - // The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + // The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. // // Deprecated: Use `ipv4Nameservers` to configure the nameservers for IPv4. Nameservers []string `pulumi:"nameservers"` @@ -137,7 +140,7 @@ type networkState struct { NoIpv4Gateway *bool `pulumi:"noIpv4Gateway"` // If set to `true`, the network doesn't have a gateway. NoIpv6Gateway *bool `pulumi:"noIpv6Gateway"` - // The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. + // The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. // // Deprecated: Use `ipv4Prefixes` to read the prefixes of the IPv4 networks. Prefixes []string `pulumi:"prefixes"` @@ -180,7 +183,7 @@ type NetworkState struct { Labels pulumi.StringMapInput // The name of the network. Name pulumi.StringPtrInput - // The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + // The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. // // Deprecated: Use `ipv4Nameservers` to configure the nameservers for IPv4. Nameservers pulumi.StringArrayInput @@ -190,7 +193,7 @@ type NetworkState struct { NoIpv4Gateway pulumi.BoolPtrInput // If set to `true`, the network doesn't have a gateway. NoIpv6Gateway pulumi.BoolPtrInput - // The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. + // The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. // // Deprecated: Use `ipv4Prefixes` to read the prefixes of the IPv4 networks. Prefixes pulumi.StringArrayInput @@ -233,7 +236,7 @@ type networkArgs struct { Labels map[string]string `pulumi:"labels"` // The name of the network. Name *string `pulumi:"name"` - // The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + // The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. // // Deprecated: Use `ipv4Nameservers` to configure the nameservers for IPv4. Nameservers []string `pulumi:"nameservers"` @@ -275,7 +278,7 @@ type NetworkArgs struct { Labels pulumi.StringMapInput // The name of the network. Name pulumi.StringPtrInput - // The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + // The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. // // Deprecated: Use `ipv4Nameservers` to configure the nameservers for IPv4. Nameservers pulumi.StringArrayInput @@ -418,13 +421,13 @@ func (o NetworkOutput) Ipv6Nameservers() pulumi.StringArrayOutput { } // The IPv6 prefix of the network (CIDR). -func (o NetworkOutput) Ipv6Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Network) pulumi.StringPtrOutput { return v.Ipv6Prefix }).(pulumi.StringPtrOutput) +func (o NetworkOutput) Ipv6Prefix() pulumi.StringOutput { + return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Ipv6Prefix }).(pulumi.StringOutput) } // The IPv6 prefix length of the network. -func (o NetworkOutput) Ipv6PrefixLength() pulumi.IntPtrOutput { - return o.ApplyT(func(v *Network) pulumi.IntPtrOutput { return v.Ipv6PrefixLength }).(pulumi.IntPtrOutput) +func (o NetworkOutput) Ipv6PrefixLength() pulumi.IntOutput { + return o.ApplyT(func(v *Network) pulumi.IntOutput { return v.Ipv6PrefixLength }).(pulumi.IntOutput) } // The IPv6 prefixes of the network. @@ -442,7 +445,7 @@ func (o NetworkOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. +// The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. // // Deprecated: Use `ipv4Nameservers` to configure the nameservers for IPv4. func (o NetworkOutput) Nameservers() pulumi.StringArrayOutput { @@ -464,7 +467,7 @@ func (o NetworkOutput) NoIpv6Gateway() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Network) pulumi.BoolPtrOutput { return v.NoIpv6Gateway }).(pulumi.BoolPtrOutput) } -// The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. +// The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. // // Deprecated: Use `ipv4Prefixes` to read the prefixes of the IPv4 networks. func (o NetworkOutput) Prefixes() pulumi.StringArrayOutput { diff --git a/sdk/go/stackit/networkInterface.go b/sdk/go/stackit/networkInterface.go index fb653edd..6b6607cb 100644 --- a/sdk/go/stackit/networkInterface.go +++ b/sdk/go/stackit/networkInterface.go @@ -40,7 +40,7 @@ type NetworkInterface struct { Security pulumi.BoolOutput `pulumi:"security"` // The list of security group UUIDs. If security is set to false, setting this field will lead to an error. SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` - // Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + // Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. Type pulumi.StringOutput `pulumi:"type"` } @@ -102,7 +102,7 @@ type networkInterfaceState struct { Security *bool `pulumi:"security"` // The list of security group UUIDs. If security is set to false, setting this field will lead to an error. SecurityGroupIds []string `pulumi:"securityGroupIds"` - // Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + // Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. Type *string `pulumi:"type"` } @@ -129,7 +129,7 @@ type NetworkInterfaceState struct { Security pulumi.BoolPtrInput // The list of security group UUIDs. If security is set to false, setting this field will lead to an error. SecurityGroupIds pulumi.StringArrayInput - // Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + // Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. Type pulumi.StringPtrInput } @@ -318,7 +318,7 @@ func (o NetworkInterfaceOutput) SecurityGroupIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *NetworkInterface) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) } -// Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. +// Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. func (o NetworkInterfaceOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *NetworkInterface) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } diff --git a/sdk/go/stackit/observabilityInstance.go b/sdk/go/stackit/observabilityInstance.go index ec4d2a34..6c5f29bb 100644 --- a/sdk/go/stackit/observabilityInstance.go +++ b/sdk/go/stackit/observabilityInstance.go @@ -42,6 +42,8 @@ type ObservabilityInstance struct { JaegerUiUrl pulumi.StringOutput `pulumi:"jaegerUiUrl"` // Specifies URL for pushing logs. LogsPushUrl pulumi.StringOutput `pulumi:"logsPushUrl"` + // Specifies for how many days the logs are kept. Default is set to `7`. + LogsRetentionDays pulumi.IntOutput `pulumi:"logsRetentionDays"` // Specifies Logs URL. LogsUrl pulumi.StringOutput `pulumi:"logsUrl"` // Specifies URL for pushing metrics. @@ -66,8 +68,10 @@ type ObservabilityInstance struct { // STACKIT project ID to which the instance is associated. ProjectId pulumi.StringOutput `pulumi:"projectId"` // Specifies Targets URL. - TargetsUrl pulumi.StringOutput `pulumi:"targetsUrl"` - ZipkinSpansUrl pulumi.StringOutput `pulumi:"zipkinSpansUrl"` + TargetsUrl pulumi.StringOutput `pulumi:"targetsUrl"` + // Specifies for how many days the traces are kept. Default is set to `7`. + TracesRetentionDays pulumi.IntOutput `pulumi:"tracesRetentionDays"` + ZipkinSpansUrl pulumi.StringOutput `pulumi:"zipkinSpansUrl"` } // NewObservabilityInstance registers a new resource with the given unique name, arguments, and options. @@ -134,6 +138,8 @@ type observabilityInstanceState struct { JaegerUiUrl *string `pulumi:"jaegerUiUrl"` // Specifies URL for pushing logs. LogsPushUrl *string `pulumi:"logsPushUrl"` + // Specifies for how many days the logs are kept. Default is set to `7`. + LogsRetentionDays *int `pulumi:"logsRetentionDays"` // Specifies Logs URL. LogsUrl *string `pulumi:"logsUrl"` // Specifies URL for pushing metrics. @@ -158,8 +164,10 @@ type observabilityInstanceState struct { // STACKIT project ID to which the instance is associated. ProjectId *string `pulumi:"projectId"` // Specifies Targets URL. - TargetsUrl *string `pulumi:"targetsUrl"` - ZipkinSpansUrl *string `pulumi:"zipkinSpansUrl"` + TargetsUrl *string `pulumi:"targetsUrl"` + // Specifies for how many days the traces are kept. Default is set to `7`. + TracesRetentionDays *int `pulumi:"tracesRetentionDays"` + ZipkinSpansUrl *string `pulumi:"zipkinSpansUrl"` } type ObservabilityInstanceState struct { @@ -187,6 +195,8 @@ type ObservabilityInstanceState struct { JaegerUiUrl pulumi.StringPtrInput // Specifies URL for pushing logs. LogsPushUrl pulumi.StringPtrInput + // Specifies for how many days the logs are kept. Default is set to `7`. + LogsRetentionDays pulumi.IntPtrInput // Specifies Logs URL. LogsUrl pulumi.StringPtrInput // Specifies URL for pushing metrics. @@ -211,8 +221,10 @@ type ObservabilityInstanceState struct { // STACKIT project ID to which the instance is associated. ProjectId pulumi.StringPtrInput // Specifies Targets URL. - TargetsUrl pulumi.StringPtrInput - ZipkinSpansUrl pulumi.StringPtrInput + TargetsUrl pulumi.StringPtrInput + // Specifies for how many days the traces are kept. Default is set to `7`. + TracesRetentionDays pulumi.IntPtrInput + ZipkinSpansUrl pulumi.StringPtrInput } func (ObservabilityInstanceState) ElementType() reflect.Type { @@ -224,6 +236,8 @@ type observabilityInstanceArgs struct { Acls []string `pulumi:"acls"` // Alert configuration for the instance. AlertConfig *ObservabilityInstanceAlertConfig `pulumi:"alertConfig"` + // Specifies for how many days the logs are kept. Default is set to `7`. + LogsRetentionDays *int `pulumi:"logsRetentionDays"` // Specifies for how many days the raw metrics are kept. Default is set to `90`. MetricsRetentionDays *int `pulumi:"metricsRetentionDays"` // Specifies for how many days the 1h downsampled metrics are kept. must be less than the value of the 5m downsampling retention. Default is set to `90`. @@ -238,6 +252,8 @@ type observabilityInstanceArgs struct { PlanName string `pulumi:"planName"` // STACKIT project ID to which the instance is associated. ProjectId string `pulumi:"projectId"` + // Specifies for how many days the traces are kept. Default is set to `7`. + TracesRetentionDays *int `pulumi:"tracesRetentionDays"` } // The set of arguments for constructing a ObservabilityInstance resource. @@ -246,6 +262,8 @@ type ObservabilityInstanceArgs struct { Acls pulumi.StringArrayInput // Alert configuration for the instance. AlertConfig ObservabilityInstanceAlertConfigPtrInput + // Specifies for how many days the logs are kept. Default is set to `7`. + LogsRetentionDays pulumi.IntPtrInput // Specifies for how many days the raw metrics are kept. Default is set to `90`. MetricsRetentionDays pulumi.IntPtrInput // Specifies for how many days the 1h downsampled metrics are kept. must be less than the value of the 5m downsampling retention. Default is set to `90`. @@ -260,6 +278,8 @@ type ObservabilityInstanceArgs struct { PlanName pulumi.StringInput // STACKIT project ID to which the instance is associated. ProjectId pulumi.StringInput + // Specifies for how many days the traces are kept. Default is set to `7`. + TracesRetentionDays pulumi.IntPtrInput } func (ObservabilityInstanceArgs) ElementType() reflect.Type { @@ -412,6 +432,11 @@ func (o ObservabilityInstanceOutput) LogsPushUrl() pulumi.StringOutput { return o.ApplyT(func(v *ObservabilityInstance) pulumi.StringOutput { return v.LogsPushUrl }).(pulumi.StringOutput) } +// Specifies for how many days the logs are kept. Default is set to `7`. +func (o ObservabilityInstanceOutput) LogsRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v *ObservabilityInstance) pulumi.IntOutput { return v.LogsRetentionDays }).(pulumi.IntOutput) +} + // Specifies Logs URL. func (o ObservabilityInstanceOutput) LogsUrl() pulumi.StringOutput { return o.ApplyT(func(v *ObservabilityInstance) pulumi.StringOutput { return v.LogsUrl }).(pulumi.StringOutput) @@ -476,6 +501,11 @@ func (o ObservabilityInstanceOutput) TargetsUrl() pulumi.StringOutput { return o.ApplyT(func(v *ObservabilityInstance) pulumi.StringOutput { return v.TargetsUrl }).(pulumi.StringOutput) } +// Specifies for how many days the traces are kept. Default is set to `7`. +func (o ObservabilityInstanceOutput) TracesRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v *ObservabilityInstance) pulumi.IntOutput { return v.TracesRetentionDays }).(pulumi.IntOutput) +} + func (o ObservabilityInstanceOutput) ZipkinSpansUrl() pulumi.StringOutput { return o.ApplyT(func(v *ObservabilityInstance) pulumi.StringOutput { return v.ZipkinSpansUrl }).(pulumi.StringOutput) } diff --git a/sdk/go/stackit/postgresflexUser.go b/sdk/go/stackit/postgresflexUser.go index ee912b90..fd738c30 100644 --- a/sdk/go/stackit/postgresflexUser.go +++ b/sdk/go/stackit/postgresflexUser.go @@ -27,7 +27,7 @@ type PostgresflexUser struct { ProjectId pulumi.StringOutput `pulumi:"projectId"` // The resource region. If not defined, the provider region is used. Region pulumi.StringOutput `pulumi:"region"` - // Database access levels for the user. Supported values are: `login`, `createdb`. + // Database access levels for the user. Possible values are: `login`, `createdb`. Roles pulumi.StringArrayOutput `pulumi:"roles"` Uri pulumi.StringOutput `pulumi:"uri"` // User ID. @@ -91,7 +91,7 @@ type postgresflexUserState struct { ProjectId *string `pulumi:"projectId"` // The resource region. If not defined, the provider region is used. Region *string `pulumi:"region"` - // Database access levels for the user. Supported values are: `login`, `createdb`. + // Database access levels for the user. Possible values are: `login`, `createdb`. Roles []string `pulumi:"roles"` Uri *string `pulumi:"uri"` // User ID. @@ -109,7 +109,7 @@ type PostgresflexUserState struct { ProjectId pulumi.StringPtrInput // The resource region. If not defined, the provider region is used. Region pulumi.StringPtrInput - // Database access levels for the user. Supported values are: `login`, `createdb`. + // Database access levels for the user. Possible values are: `login`, `createdb`. Roles pulumi.StringArrayInput Uri pulumi.StringPtrInput // User ID. @@ -128,7 +128,7 @@ type postgresflexUserArgs struct { ProjectId string `pulumi:"projectId"` // The resource region. If not defined, the provider region is used. Region *string `pulumi:"region"` - // Database access levels for the user. Supported values are: `login`, `createdb`. + // Database access levels for the user. Possible values are: `login`, `createdb`. Roles []string `pulumi:"roles"` Username string `pulumi:"username"` } @@ -141,7 +141,7 @@ type PostgresflexUserArgs struct { ProjectId pulumi.StringInput // The resource region. If not defined, the provider region is used. Region pulumi.StringPtrInput - // Database access levels for the user. Supported values are: `login`, `createdb`. + // Database access levels for the user. Possible values are: `login`, `createdb`. Roles pulumi.StringArrayInput Username pulumi.StringInput } @@ -260,7 +260,7 @@ func (o PostgresflexUserOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *PostgresflexUser) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } -// Database access levels for the user. Supported values are: `login`, `createdb`. +// Database access levels for the user. Possible values are: `login`, `createdb`. func (o PostgresflexUserOutput) Roles() pulumi.StringArrayOutput { return o.ApplyT(func(v *PostgresflexUser) pulumi.StringArrayOutput { return v.Roles }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/stackit/provider.go b/sdk/go/stackit/provider.go index 1c391778..ea928324 100644 --- a/sdk/go/stackit/provider.go +++ b/sdk/go/stackit/provider.go @@ -32,6 +32,8 @@ type Provider struct { GitCustomEndpoint pulumi.StringPtrOutput `pulumi:"gitCustomEndpoint"` // Custom endpoint for the IaaS service IaasCustomEndpoint pulumi.StringPtrOutput `pulumi:"iaasCustomEndpoint"` + // Custom endpoint for the KMS service + KmsCustomEndpoint pulumi.StringPtrOutput `pulumi:"kmsCustomEndpoint"` // Custom endpoint for the Load Balancer service LoadbalancerCustomEndpoint pulumi.StringPtrOutput `pulumi:"loadbalancerCustomEndpoint"` // Custom endpoint for the LogMe service @@ -131,6 +133,8 @@ type providerArgs struct { GitCustomEndpoint *string `pulumi:"gitCustomEndpoint"` // Custom endpoint for the IaaS service IaasCustomEndpoint *string `pulumi:"iaasCustomEndpoint"` + // Custom endpoint for the KMS service + KmsCustomEndpoint *string `pulumi:"kmsCustomEndpoint"` // Custom endpoint for the Load Balancer service LoadbalancerCustomEndpoint *string `pulumi:"loadbalancerCustomEndpoint"` // Custom endpoint for the LogMe service @@ -215,6 +219,8 @@ type ProviderArgs struct { GitCustomEndpoint pulumi.StringPtrInput // Custom endpoint for the IaaS service IaasCustomEndpoint pulumi.StringPtrInput + // Custom endpoint for the KMS service + KmsCustomEndpoint pulumi.StringPtrInput // Custom endpoint for the Load Balancer service LoadbalancerCustomEndpoint pulumi.StringPtrInput // Custom endpoint for the LogMe service @@ -374,6 +380,11 @@ func (o ProviderOutput) IaasCustomEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.IaasCustomEndpoint }).(pulumi.StringPtrOutput) } +// Custom endpoint for the KMS service +func (o ProviderOutput) KmsCustomEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.KmsCustomEndpoint }).(pulumi.StringPtrOutput) +} + // Custom endpoint for the Load Balancer service func (o ProviderOutput) LoadbalancerCustomEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.LoadbalancerCustomEndpoint }).(pulumi.StringPtrOutput) diff --git a/sdk/go/stackit/pulumiTypes.go b/sdk/go/stackit/pulumiTypes.go index 1cf7d333..79572993 100644 --- a/sdk/go/stackit/pulumiTypes.go +++ b/sdk/go/stackit/pulumiTypes.go @@ -383,11 +383,13 @@ func (o CdnDistributionConfigPtrOutput) Regions() pulumi.StringArrayOutput { } type CdnDistributionConfigBackend struct { + // A map of URLs to a list of countries where content is allowed. + Geofencing map[string][]string `pulumi:"geofencing"` // The configured origin request headers for the backend OriginRequestHeaders map[string]string `pulumi:"originRequestHeaders"` // The configured backend type for the distribution OriginUrl string `pulumi:"originUrl"` - // The configured backend type. Supported values are: `http`. + // The configured backend type. Possible values are: `http`. Type string `pulumi:"type"` } @@ -403,11 +405,13 @@ type CdnDistributionConfigBackendInput interface { } type CdnDistributionConfigBackendArgs struct { + // A map of URLs to a list of countries where content is allowed. + Geofencing pulumi.StringArrayMapInput `pulumi:"geofencing"` // The configured origin request headers for the backend OriginRequestHeaders pulumi.StringMapInput `pulumi:"originRequestHeaders"` // The configured backend type for the distribution OriginUrl pulumi.StringInput `pulumi:"originUrl"` - // The configured backend type. Supported values are: `http`. + // The configured backend type. Possible values are: `http`. Type pulumi.StringInput `pulumi:"type"` } @@ -488,6 +492,11 @@ func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendPtrOut }).(CdnDistributionConfigBackendPtrOutput) } +// A map of URLs to a list of countries where content is allowed. +func (o CdnDistributionConfigBackendOutput) Geofencing() pulumi.StringArrayMapOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) map[string][]string { return v.Geofencing }).(pulumi.StringArrayMapOutput) +} + // The configured origin request headers for the backend func (o CdnDistributionConfigBackendOutput) OriginRequestHeaders() pulumi.StringMapOutput { return o.ApplyT(func(v CdnDistributionConfigBackend) map[string]string { return v.OriginRequestHeaders }).(pulumi.StringMapOutput) @@ -498,7 +507,7 @@ func (o CdnDistributionConfigBackendOutput) OriginUrl() pulumi.StringOutput { return o.ApplyT(func(v CdnDistributionConfigBackend) string { return v.OriginUrl }).(pulumi.StringOutput) } -// The configured backend type. Supported values are: `http`. +// The configured backend type. Possible values are: `http`. func (o CdnDistributionConfigBackendOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v CdnDistributionConfigBackend) string { return v.Type }).(pulumi.StringOutput) } @@ -527,6 +536,16 @@ func (o CdnDistributionConfigBackendPtrOutput) Elem() CdnDistributionConfigBacke }).(CdnDistributionConfigBackendOutput) } +// A map of URLs to a list of countries where content is allowed. +func (o CdnDistributionConfigBackendPtrOutput) Geofencing() pulumi.StringArrayMapOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string][]string { + if v == nil { + return nil + } + return v.Geofencing + }).(pulumi.StringArrayMapOutput) +} + // The configured origin request headers for the backend func (o CdnDistributionConfigBackendPtrOutput) OriginRequestHeaders() pulumi.StringMapOutput { return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string]string { @@ -547,7 +566,7 @@ func (o CdnDistributionConfigBackendPtrOutput) OriginUrl() pulumi.StringPtrOutpu }).(pulumi.StringPtrOutput) } -// The configured backend type. Supported values are: `http`. +// The configured backend type. Possible values are: `http`. func (o CdnDistributionConfigBackendPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { if v == nil { @@ -1339,12 +1358,16 @@ type LoadbalancerListener struct { DisplayName *string `pulumi:"displayName"` // Port number where we listen for traffic. Port int `pulumi:"port"` - // Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + // Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. Protocol string `pulumi:"protocol"` // A list of domain names to match in order to pass TLS traffic to the target pool in the current listener ServerNameIndicators []LoadbalancerListenerServerNameIndicator `pulumi:"serverNameIndicators"` // Reference target pool by target pool name. TargetPool string `pulumi:"targetPool"` + // Options that are specific to the TCP protocol. + Tcp *LoadbalancerListenerTcp `pulumi:"tcp"` + // Options that are specific to the UDP protocol. + Udp *LoadbalancerListenerUdp `pulumi:"udp"` } // LoadbalancerListenerInput is an input type that accepts LoadbalancerListenerArgs and LoadbalancerListenerOutput values. @@ -1362,12 +1385,16 @@ type LoadbalancerListenerArgs struct { DisplayName pulumi.StringPtrInput `pulumi:"displayName"` // Port number where we listen for traffic. Port pulumi.IntInput `pulumi:"port"` - // Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + // Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. Protocol pulumi.StringInput `pulumi:"protocol"` // A list of domain names to match in order to pass TLS traffic to the target pool in the current listener ServerNameIndicators LoadbalancerListenerServerNameIndicatorArrayInput `pulumi:"serverNameIndicators"` // Reference target pool by target pool name. TargetPool pulumi.StringInput `pulumi:"targetPool"` + // Options that are specific to the TCP protocol. + Tcp LoadbalancerListenerTcpPtrInput `pulumi:"tcp"` + // Options that are specific to the UDP protocol. + Udp LoadbalancerListenerUdpPtrInput `pulumi:"udp"` } func (LoadbalancerListenerArgs) ElementType() reflect.Type { @@ -1430,7 +1457,7 @@ func (o LoadbalancerListenerOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v LoadbalancerListener) int { return v.Port }).(pulumi.IntOutput) } -// Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. +// Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. func (o LoadbalancerListenerOutput) Protocol() pulumi.StringOutput { return o.ApplyT(func(v LoadbalancerListener) string { return v.Protocol }).(pulumi.StringOutput) } @@ -1445,6 +1472,16 @@ func (o LoadbalancerListenerOutput) TargetPool() pulumi.StringOutput { return o.ApplyT(func(v LoadbalancerListener) string { return v.TargetPool }).(pulumi.StringOutput) } +// Options that are specific to the TCP protocol. +func (o LoadbalancerListenerOutput) Tcp() LoadbalancerListenerTcpPtrOutput { + return o.ApplyT(func(v LoadbalancerListener) *LoadbalancerListenerTcp { return v.Tcp }).(LoadbalancerListenerTcpPtrOutput) +} + +// Options that are specific to the UDP protocol. +func (o LoadbalancerListenerOutput) Udp() LoadbalancerListenerUdpPtrOutput { + return o.ApplyT(func(v LoadbalancerListener) *LoadbalancerListenerUdp { return v.Udp }).(LoadbalancerListenerUdpPtrOutput) +} + type LoadbalancerListenerArrayOutput struct{ *pulumi.OutputState } func (LoadbalancerListenerArrayOutput) ElementType() reflect.Type { @@ -1562,10 +1599,284 @@ func (o LoadbalancerListenerServerNameIndicatorArrayOutput) Index(i pulumi.IntIn }).(LoadbalancerListenerServerNameIndicatorOutput) } +type LoadbalancerListenerTcp struct { + // Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + IdleTimeout *string `pulumi:"idleTimeout"` +} + +// LoadbalancerListenerTcpInput is an input type that accepts LoadbalancerListenerTcpArgs and LoadbalancerListenerTcpOutput values. +// You can construct a concrete instance of `LoadbalancerListenerTcpInput` via: +// +// LoadbalancerListenerTcpArgs{...} +type LoadbalancerListenerTcpInput interface { + pulumi.Input + + ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput + ToLoadbalancerListenerTcpOutputWithContext(context.Context) LoadbalancerListenerTcpOutput +} + +type LoadbalancerListenerTcpArgs struct { + // Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + IdleTimeout pulumi.StringPtrInput `pulumi:"idleTimeout"` +} + +func (LoadbalancerListenerTcpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerTcp)(nil)).Elem() +} + +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput { + return i.ToLoadbalancerListenerTcpOutputWithContext(context.Background()) +} + +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpOutputWithContext(ctx context.Context) LoadbalancerListenerTcpOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpOutput) +} + +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { + return i.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) +} + +func (i LoadbalancerListenerTcpArgs) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpOutput).ToLoadbalancerListenerTcpPtrOutputWithContext(ctx) +} + +// LoadbalancerListenerTcpPtrInput is an input type that accepts LoadbalancerListenerTcpArgs, LoadbalancerListenerTcpPtr and LoadbalancerListenerTcpPtrOutput values. +// You can construct a concrete instance of `LoadbalancerListenerTcpPtrInput` via: +// +// LoadbalancerListenerTcpArgs{...} +// +// or: +// +// nil +type LoadbalancerListenerTcpPtrInput interface { + pulumi.Input + + ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput + ToLoadbalancerListenerTcpPtrOutputWithContext(context.Context) LoadbalancerListenerTcpPtrOutput +} + +type loadbalancerListenerTcpPtrType LoadbalancerListenerTcpArgs + +func LoadbalancerListenerTcpPtr(v *LoadbalancerListenerTcpArgs) LoadbalancerListenerTcpPtrInput { + return (*loadbalancerListenerTcpPtrType)(v) +} + +func (*loadbalancerListenerTcpPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerTcp)(nil)).Elem() +} + +func (i *loadbalancerListenerTcpPtrType) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { + return i.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) +} + +func (i *loadbalancerListenerTcpPtrType) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerTcpPtrOutput) +} + +type LoadbalancerListenerTcpOutput struct{ *pulumi.OutputState } + +func (LoadbalancerListenerTcpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerTcp)(nil)).Elem() +} + +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpOutput() LoadbalancerListenerTcpOutput { + return o +} + +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpOutputWithContext(ctx context.Context) LoadbalancerListenerTcpOutput { + return o +} + +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { + return o.ToLoadbalancerListenerTcpPtrOutputWithContext(context.Background()) +} + +func (o LoadbalancerListenerTcpOutput) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerListenerTcp) *LoadbalancerListenerTcp { + return &v + }).(LoadbalancerListenerTcpPtrOutput) +} + +// Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s +func (o LoadbalancerListenerTcpOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerListenerTcp) *string { return v.IdleTimeout }).(pulumi.StringPtrOutput) +} + +type LoadbalancerListenerTcpPtrOutput struct{ *pulumi.OutputState } + +func (LoadbalancerListenerTcpPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerTcp)(nil)).Elem() +} + +func (o LoadbalancerListenerTcpPtrOutput) ToLoadbalancerListenerTcpPtrOutput() LoadbalancerListenerTcpPtrOutput { + return o +} + +func (o LoadbalancerListenerTcpPtrOutput) ToLoadbalancerListenerTcpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerTcpPtrOutput { + return o +} + +func (o LoadbalancerListenerTcpPtrOutput) Elem() LoadbalancerListenerTcpOutput { + return o.ApplyT(func(v *LoadbalancerListenerTcp) LoadbalancerListenerTcp { + if v != nil { + return *v + } + var ret LoadbalancerListenerTcp + return ret + }).(LoadbalancerListenerTcpOutput) +} + +// Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s +func (o LoadbalancerListenerTcpPtrOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerListenerTcp) *string { + if v == nil { + return nil + } + return v.IdleTimeout + }).(pulumi.StringPtrOutput) +} + +type LoadbalancerListenerUdp struct { + // Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + IdleTimeout *string `pulumi:"idleTimeout"` +} + +// LoadbalancerListenerUdpInput is an input type that accepts LoadbalancerListenerUdpArgs and LoadbalancerListenerUdpOutput values. +// You can construct a concrete instance of `LoadbalancerListenerUdpInput` via: +// +// LoadbalancerListenerUdpArgs{...} +type LoadbalancerListenerUdpInput interface { + pulumi.Input + + ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput + ToLoadbalancerListenerUdpOutputWithContext(context.Context) LoadbalancerListenerUdpOutput +} + +type LoadbalancerListenerUdpArgs struct { + // Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + IdleTimeout pulumi.StringPtrInput `pulumi:"idleTimeout"` +} + +func (LoadbalancerListenerUdpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerUdp)(nil)).Elem() +} + +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput { + return i.ToLoadbalancerListenerUdpOutputWithContext(context.Background()) +} + +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpOutputWithContext(ctx context.Context) LoadbalancerListenerUdpOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpOutput) +} + +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { + return i.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) +} + +func (i LoadbalancerListenerUdpArgs) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpOutput).ToLoadbalancerListenerUdpPtrOutputWithContext(ctx) +} + +// LoadbalancerListenerUdpPtrInput is an input type that accepts LoadbalancerListenerUdpArgs, LoadbalancerListenerUdpPtr and LoadbalancerListenerUdpPtrOutput values. +// You can construct a concrete instance of `LoadbalancerListenerUdpPtrInput` via: +// +// LoadbalancerListenerUdpArgs{...} +// +// or: +// +// nil +type LoadbalancerListenerUdpPtrInput interface { + pulumi.Input + + ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput + ToLoadbalancerListenerUdpPtrOutputWithContext(context.Context) LoadbalancerListenerUdpPtrOutput +} + +type loadbalancerListenerUdpPtrType LoadbalancerListenerUdpArgs + +func LoadbalancerListenerUdpPtr(v *LoadbalancerListenerUdpArgs) LoadbalancerListenerUdpPtrInput { + return (*loadbalancerListenerUdpPtrType)(v) +} + +func (*loadbalancerListenerUdpPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerUdp)(nil)).Elem() +} + +func (i *loadbalancerListenerUdpPtrType) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { + return i.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) +} + +func (i *loadbalancerListenerUdpPtrType) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadbalancerListenerUdpPtrOutput) +} + +type LoadbalancerListenerUdpOutput struct{ *pulumi.OutputState } + +func (LoadbalancerListenerUdpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadbalancerListenerUdp)(nil)).Elem() +} + +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpOutput() LoadbalancerListenerUdpOutput { + return o +} + +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpOutputWithContext(ctx context.Context) LoadbalancerListenerUdpOutput { + return o +} + +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { + return o.ToLoadbalancerListenerUdpPtrOutputWithContext(context.Background()) +} + +func (o LoadbalancerListenerUdpOutput) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadbalancerListenerUdp) *LoadbalancerListenerUdp { + return &v + }).(LoadbalancerListenerUdpPtrOutput) +} + +// Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s +func (o LoadbalancerListenerUdpOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerListenerUdp) *string { return v.IdleTimeout }).(pulumi.StringPtrOutput) +} + +type LoadbalancerListenerUdpPtrOutput struct{ *pulumi.OutputState } + +func (LoadbalancerListenerUdpPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadbalancerListenerUdp)(nil)).Elem() +} + +func (o LoadbalancerListenerUdpPtrOutput) ToLoadbalancerListenerUdpPtrOutput() LoadbalancerListenerUdpPtrOutput { + return o +} + +func (o LoadbalancerListenerUdpPtrOutput) ToLoadbalancerListenerUdpPtrOutputWithContext(ctx context.Context) LoadbalancerListenerUdpPtrOutput { + return o +} + +func (o LoadbalancerListenerUdpPtrOutput) Elem() LoadbalancerListenerUdpOutput { + return o.ApplyT(func(v *LoadbalancerListenerUdp) LoadbalancerListenerUdp { + if v != nil { + return *v + } + var ret LoadbalancerListenerUdp + return ret + }).(LoadbalancerListenerUdpOutput) +} + +// Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s +func (o LoadbalancerListenerUdpPtrOutput) IdleTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadbalancerListenerUdp) *string { + if v == nil { + return nil + } + return v.IdleTimeout + }).(pulumi.StringPtrOutput) +} + type LoadbalancerNetwork struct { // Openstack network ID. NetworkId string `pulumi:"networkId"` - // The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + // The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. Role string `pulumi:"role"` } @@ -1583,7 +1894,7 @@ type LoadbalancerNetworkInput interface { type LoadbalancerNetworkArgs struct { // Openstack network ID. NetworkId pulumi.StringInput `pulumi:"networkId"` - // The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + // The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. Role pulumi.StringInput `pulumi:"role"` } @@ -1643,7 +1954,7 @@ func (o LoadbalancerNetworkOutput) NetworkId() pulumi.StringOutput { return o.ApplyT(func(v LoadbalancerNetwork) string { return v.NetworkId }).(pulumi.StringOutput) } -// The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. +// The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. func (o LoadbalancerNetworkOutput) Role() pulumi.StringOutput { return o.ApplyT(func(v LoadbalancerNetwork) string { return v.Role }).(pulumi.StringOutput) } @@ -3850,7 +4161,7 @@ type MongodbflexInstanceOptions struct { PointInTimeWindowHours int `pulumi:"pointInTimeWindowHours"` // The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. SnapshotRetentionDays *int `pulumi:"snapshotRetentionDays"` - // Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + // Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. Type string `pulumi:"type"` // The number of weeks that weekly backups will be retained. WeeklySnapshotRetentionWeeks *int `pulumi:"weeklySnapshotRetentionWeeks"` @@ -3876,7 +4187,7 @@ type MongodbflexInstanceOptionsArgs struct { PointInTimeWindowHours pulumi.IntInput `pulumi:"pointInTimeWindowHours"` // The number of days that continuous backups (controlled via the `backupSchedule`) will be retained. SnapshotRetentionDays pulumi.IntPtrInput `pulumi:"snapshotRetentionDays"` - // Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + // Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. Type pulumi.StringInput `pulumi:"type"` // The number of weeks that weekly backups will be retained. WeeklySnapshotRetentionWeeks pulumi.IntPtrInput `pulumi:"weeklySnapshotRetentionWeeks"` @@ -3979,7 +4290,7 @@ func (o MongodbflexInstanceOptionsOutput) SnapshotRetentionDays() pulumi.IntPtrO return o.ApplyT(func(v MongodbflexInstanceOptions) *int { return v.SnapshotRetentionDays }).(pulumi.IntPtrOutput) } -// Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. +// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. func (o MongodbflexInstanceOptionsOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v MongodbflexInstanceOptions) string { return v.Type }).(pulumi.StringOutput) } @@ -4053,7 +4364,7 @@ func (o MongodbflexInstanceOptionsPtrOutput) SnapshotRetentionDays() pulumi.IntP }).(pulumi.IntPtrOutput) } -// Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. +// Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. func (o MongodbflexInstanceOptionsPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *MongodbflexInstanceOptions) *string { if v == nil { @@ -8157,7 +8468,7 @@ func (o RoutingTableRouteDestinationPtrOutput) Value() pulumi.StringPtrOutput { } type RoutingTableRouteNextHop struct { - // Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Type string `pulumi:"type"` // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. Value *string `pulumi:"value"` @@ -8175,7 +8486,7 @@ type RoutingTableRouteNextHopInput interface { } type RoutingTableRouteNextHopArgs struct { - // Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Type pulumi.StringInput `pulumi:"type"` // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. Value pulumi.StringPtrInput `pulumi:"value"` @@ -8258,7 +8569,7 @@ func (o RoutingTableRouteNextHopOutput) ToRoutingTableRouteNextHopPtrOutputWithC }).(RoutingTableRouteNextHopPtrOutput) } -// Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. func (o RoutingTableRouteNextHopOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v RoutingTableRouteNextHop) string { return v.Type }).(pulumi.StringOutput) } @@ -8292,7 +8603,7 @@ func (o RoutingTableRouteNextHopPtrOutput) Elem() RoutingTableRouteNextHopOutput }).(RoutingTableRouteNextHopOutput) } -// Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. func (o RoutingTableRouteNextHopPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *RoutingTableRouteNextHop) *string { if v == nil { @@ -8954,7 +9265,7 @@ type ServerBootVolume struct { Size *int `pulumi:"size"` // The ID of the source, either image ID or volume ID SourceId string `pulumi:"sourceId"` - // The type of the source. Supported values are: `volume`, `image`. + // The type of the source. Possible values are: `volume`, `image`. SourceType string `pulumi:"sourceType"` } @@ -8980,7 +9291,7 @@ type ServerBootVolumeArgs struct { Size pulumi.IntPtrInput `pulumi:"size"` // The ID of the source, either image ID or volume ID SourceId pulumi.StringInput `pulumi:"sourceId"` - // The type of the source. Supported values are: `volume`, `image`. + // The type of the source. Possible values are: `volume`, `image`. SourceType pulumi.StringInput `pulumi:"sourceType"` } @@ -9086,7 +9397,7 @@ func (o ServerBootVolumeOutput) SourceId() pulumi.StringOutput { return o.ApplyT(func(v ServerBootVolume) string { return v.SourceId }).(pulumi.StringOutput) } -// The type of the source. Supported values are: `volume`, `image`. +// The type of the source. Possible values are: `volume`, `image`. func (o ServerBootVolumeOutput) SourceType() pulumi.StringOutput { return o.ApplyT(func(v ServerBootVolume) string { return v.SourceType }).(pulumi.StringOutput) } @@ -9165,7 +9476,7 @@ func (o ServerBootVolumePtrOutput) SourceId() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The type of the source. Supported values are: `volume`, `image`. +// The type of the source. Possible values are: `volume`, `image`. func (o ServerBootVolumePtrOutput) SourceType() pulumi.StringPtrOutput { return o.ApplyT(func(v *ServerBootVolume) *string { if v == nil { @@ -11286,7 +11597,7 @@ func (o SqlserverflexInstanceStoragePtrOutput) Size() pulumi.IntPtrOutput { type VolumeSource struct { // The ID of the source, e.g. image ID Id string `pulumi:"id"` - // The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. Type string `pulumi:"type"` } @@ -11304,7 +11615,7 @@ type VolumeSourceInput interface { type VolumeSourceArgs struct { // The ID of the source, e.g. image ID Id pulumi.StringInput `pulumi:"id"` - // The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. Type pulumi.StringInput `pulumi:"type"` } @@ -11390,7 +11701,7 @@ func (o VolumeSourceOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v VolumeSource) string { return v.Id }).(pulumi.StringOutput) } -// The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. +// The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. func (o VolumeSourceOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v VolumeSource) string { return v.Type }).(pulumi.StringOutput) } @@ -11429,7 +11740,7 @@ func (o VolumeSourcePtrOutput) Id() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. +// The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. func (o VolumeSourcePtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeSource) *string { if v == nil { @@ -11656,11 +11967,13 @@ func (o GetCdnDistributionConfigOutput) Regions() pulumi.StringArrayOutput { } type GetCdnDistributionConfigBackend struct { + // A map of URLs to a list of countries where content is allowed. + Geofencing map[string][]string `pulumi:"geofencing"` // The configured origin request headers for the backend OriginRequestHeaders map[string]string `pulumi:"originRequestHeaders"` // The configured backend type for the distribution OriginUrl string `pulumi:"originUrl"` - // The configured backend type. Supported values are: `http`. + // The configured backend type. Possible values are: `http`. Type string `pulumi:"type"` } @@ -11676,11 +11989,13 @@ type GetCdnDistributionConfigBackendInput interface { } type GetCdnDistributionConfigBackendArgs struct { + // A map of URLs to a list of countries where content is allowed. + Geofencing pulumi.StringArrayMapInput `pulumi:"geofencing"` // The configured origin request headers for the backend OriginRequestHeaders pulumi.StringMapInput `pulumi:"originRequestHeaders"` // The configured backend type for the distribution OriginUrl pulumi.StringInput `pulumi:"originUrl"` - // The configured backend type. Supported values are: `http`. + // The configured backend type. Possible values are: `http`. Type pulumi.StringInput `pulumi:"type"` } @@ -11710,6 +12025,11 @@ func (o GetCdnDistributionConfigBackendOutput) ToGetCdnDistributionConfigBackend return o } +// A map of URLs to a list of countries where content is allowed. +func (o GetCdnDistributionConfigBackendOutput) Geofencing() pulumi.StringArrayMapOutput { + return o.ApplyT(func(v GetCdnDistributionConfigBackend) map[string][]string { return v.Geofencing }).(pulumi.StringArrayMapOutput) +} + // The configured origin request headers for the backend func (o GetCdnDistributionConfigBackendOutput) OriginRequestHeaders() pulumi.StringMapOutput { return o.ApplyT(func(v GetCdnDistributionConfigBackend) map[string]string { return v.OriginRequestHeaders }).(pulumi.StringMapOutput) @@ -11720,7 +12040,7 @@ func (o GetCdnDistributionConfigBackendOutput) OriginUrl() pulumi.StringOutput { return o.ApplyT(func(v GetCdnDistributionConfigBackend) string { return v.OriginUrl }).(pulumi.StringOutput) } -// The configured backend type. Supported values are: `http`. +// The configured backend type. Possible values are: `http`. func (o GetCdnDistributionConfigBackendOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v GetCdnDistributionConfigBackend) string { return v.Type }).(pulumi.StringOutput) } @@ -12563,6 +12883,10 @@ type GetLoadbalancerListener struct { ServerNameIndicators []GetLoadbalancerListenerServerNameIndicator `pulumi:"serverNameIndicators"` // Reference target pool by target pool name. TargetPool string `pulumi:"targetPool"` + // Options that are specific to the TCP protocol. + Tcp GetLoadbalancerListenerTcp `pulumi:"tcp"` + // Options that are specific to the UDP protocol. + Udp GetLoadbalancerListenerUdp `pulumi:"udp"` } // GetLoadbalancerListenerInput is an input type that accepts GetLoadbalancerListenerArgs and GetLoadbalancerListenerOutput values. @@ -12586,6 +12910,10 @@ type GetLoadbalancerListenerArgs struct { ServerNameIndicators GetLoadbalancerListenerServerNameIndicatorArrayInput `pulumi:"serverNameIndicators"` // Reference target pool by target pool name. TargetPool pulumi.StringInput `pulumi:"targetPool"` + // Options that are specific to the TCP protocol. + Tcp GetLoadbalancerListenerTcpInput `pulumi:"tcp"` + // Options that are specific to the UDP protocol. + Udp GetLoadbalancerListenerUdpInput `pulumi:"udp"` } func (GetLoadbalancerListenerArgs) ElementType() reflect.Type { @@ -12665,6 +12993,16 @@ func (o GetLoadbalancerListenerOutput) TargetPool() pulumi.StringOutput { return o.ApplyT(func(v GetLoadbalancerListener) string { return v.TargetPool }).(pulumi.StringOutput) } +// Options that are specific to the TCP protocol. +func (o GetLoadbalancerListenerOutput) Tcp() GetLoadbalancerListenerTcpOutput { + return o.ApplyT(func(v GetLoadbalancerListener) GetLoadbalancerListenerTcp { return v.Tcp }).(GetLoadbalancerListenerTcpOutput) +} + +// Options that are specific to the UDP protocol. +func (o GetLoadbalancerListenerOutput) Udp() GetLoadbalancerListenerUdpOutput { + return o.ApplyT(func(v GetLoadbalancerListener) GetLoadbalancerListenerUdp { return v.Udp }).(GetLoadbalancerListenerUdpOutput) +} + type GetLoadbalancerListenerArrayOutput struct{ *pulumi.OutputState } func (GetLoadbalancerListenerArrayOutput) ElementType() reflect.Type { @@ -12782,6 +13120,110 @@ func (o GetLoadbalancerListenerServerNameIndicatorArrayOutput) Index(i pulumi.In }).(GetLoadbalancerListenerServerNameIndicatorOutput) } +type GetLoadbalancerListenerTcp struct { + // Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour. + IdleTimeout string `pulumi:"idleTimeout"` +} + +// GetLoadbalancerListenerTcpInput is an input type that accepts GetLoadbalancerListenerTcpArgs and GetLoadbalancerListenerTcpOutput values. +// You can construct a concrete instance of `GetLoadbalancerListenerTcpInput` via: +// +// GetLoadbalancerListenerTcpArgs{...} +type GetLoadbalancerListenerTcpInput interface { + pulumi.Input + + ToGetLoadbalancerListenerTcpOutput() GetLoadbalancerListenerTcpOutput + ToGetLoadbalancerListenerTcpOutputWithContext(context.Context) GetLoadbalancerListenerTcpOutput +} + +type GetLoadbalancerListenerTcpArgs struct { + // Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour. + IdleTimeout pulumi.StringInput `pulumi:"idleTimeout"` +} + +func (GetLoadbalancerListenerTcpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLoadbalancerListenerTcp)(nil)).Elem() +} + +func (i GetLoadbalancerListenerTcpArgs) ToGetLoadbalancerListenerTcpOutput() GetLoadbalancerListenerTcpOutput { + return i.ToGetLoadbalancerListenerTcpOutputWithContext(context.Background()) +} + +func (i GetLoadbalancerListenerTcpArgs) ToGetLoadbalancerListenerTcpOutputWithContext(ctx context.Context) GetLoadbalancerListenerTcpOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLoadbalancerListenerTcpOutput) +} + +type GetLoadbalancerListenerTcpOutput struct{ *pulumi.OutputState } + +func (GetLoadbalancerListenerTcpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLoadbalancerListenerTcp)(nil)).Elem() +} + +func (o GetLoadbalancerListenerTcpOutput) ToGetLoadbalancerListenerTcpOutput() GetLoadbalancerListenerTcpOutput { + return o +} + +func (o GetLoadbalancerListenerTcpOutput) ToGetLoadbalancerListenerTcpOutputWithContext(ctx context.Context) GetLoadbalancerListenerTcpOutput { + return o +} + +// Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour. +func (o GetLoadbalancerListenerTcpOutput) IdleTimeout() pulumi.StringOutput { + return o.ApplyT(func(v GetLoadbalancerListenerTcp) string { return v.IdleTimeout }).(pulumi.StringOutput) +} + +type GetLoadbalancerListenerUdp struct { + // Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. + IdleTimeout string `pulumi:"idleTimeout"` +} + +// GetLoadbalancerListenerUdpInput is an input type that accepts GetLoadbalancerListenerUdpArgs and GetLoadbalancerListenerUdpOutput values. +// You can construct a concrete instance of `GetLoadbalancerListenerUdpInput` via: +// +// GetLoadbalancerListenerUdpArgs{...} +type GetLoadbalancerListenerUdpInput interface { + pulumi.Input + + ToGetLoadbalancerListenerUdpOutput() GetLoadbalancerListenerUdpOutput + ToGetLoadbalancerListenerUdpOutputWithContext(context.Context) GetLoadbalancerListenerUdpOutput +} + +type GetLoadbalancerListenerUdpArgs struct { + // Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. + IdleTimeout pulumi.StringInput `pulumi:"idleTimeout"` +} + +func (GetLoadbalancerListenerUdpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLoadbalancerListenerUdp)(nil)).Elem() +} + +func (i GetLoadbalancerListenerUdpArgs) ToGetLoadbalancerListenerUdpOutput() GetLoadbalancerListenerUdpOutput { + return i.ToGetLoadbalancerListenerUdpOutputWithContext(context.Background()) +} + +func (i GetLoadbalancerListenerUdpArgs) ToGetLoadbalancerListenerUdpOutputWithContext(ctx context.Context) GetLoadbalancerListenerUdpOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLoadbalancerListenerUdpOutput) +} + +type GetLoadbalancerListenerUdpOutput struct{ *pulumi.OutputState } + +func (GetLoadbalancerListenerUdpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLoadbalancerListenerUdp)(nil)).Elem() +} + +func (o GetLoadbalancerListenerUdpOutput) ToGetLoadbalancerListenerUdpOutput() GetLoadbalancerListenerUdpOutput { + return o +} + +func (o GetLoadbalancerListenerUdpOutput) ToGetLoadbalancerListenerUdpOutputWithContext(ctx context.Context) GetLoadbalancerListenerUdpOutput { + return o +} + +// Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. +func (o GetLoadbalancerListenerUdpOutput) IdleTimeout() pulumi.StringOutput { + return o.ApplyT(func(v GetLoadbalancerListenerUdp) string { return v.IdleTimeout }).(pulumi.StringOutput) +} + type GetLoadbalancerNetwork struct { // Openstack network ID. NetworkId string `pulumi:"networkId"` @@ -16591,7 +17033,7 @@ func (o GetRoutingTableRouteDestinationOutput) Value() pulumi.StringOutput { } type GetRoutingTableRouteNextHop struct { - // Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Type string `pulumi:"type"` // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. Value string `pulumi:"value"` @@ -16609,7 +17051,7 @@ type GetRoutingTableRouteNextHopInput interface { } type GetRoutingTableRouteNextHopArgs struct { - // Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Type pulumi.StringInput `pulumi:"type"` // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. Value pulumi.StringInput `pulumi:"value"` @@ -16641,7 +17083,7 @@ func (o GetRoutingTableRouteNextHopOutput) ToGetRoutingTableRouteNextHopOutputWi return o } -// Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. func (o GetRoutingTableRouteNextHopOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v GetRoutingTableRouteNextHop) string { return v.Type }).(pulumi.StringOutput) } @@ -16855,7 +17297,7 @@ func (o GetRoutingTableRoutesRouteDestinationOutput) Value() pulumi.StringOutput } type GetRoutingTableRoutesRouteNextHop struct { - // Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Type string `pulumi:"type"` // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. Value string `pulumi:"value"` @@ -16873,7 +17315,7 @@ type GetRoutingTableRoutesRouteNextHopInput interface { } type GetRoutingTableRoutesRouteNextHopArgs struct { - // Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + // Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Type pulumi.StringInput `pulumi:"type"` // Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. Value pulumi.StringInput `pulumi:"value"` @@ -16905,7 +17347,7 @@ func (o GetRoutingTableRoutesRouteNextHopOutput) ToGetRoutingTableRoutesRouteNex return o } -// Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. +// Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. func (o GetRoutingTableRoutesRouteNextHopOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v GetRoutingTableRoutesRouteNextHop) string { return v.Type }).(pulumi.StringOutput) } @@ -18814,7 +19256,7 @@ func (o GetSqlserverflexInstanceStorageOutput) Size() pulumi.IntOutput { type GetVolumeSource struct { // The ID of the source, e.g. image ID Id string `pulumi:"id"` - // The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. Type string `pulumi:"type"` } @@ -18832,7 +19274,7 @@ type GetVolumeSourceInput interface { type GetVolumeSourceArgs struct { // The ID of the source, e.g. image ID Id pulumi.StringInput `pulumi:"id"` - // The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + // The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. Type pulumi.StringInput `pulumi:"type"` } @@ -18867,7 +19309,7 @@ func (o GetVolumeSourceOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v GetVolumeSource) string { return v.Id }).(pulumi.StringOutput) } -// The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. +// The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. func (o GetVolumeSourceOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v GetVolumeSource) string { return v.Type }).(pulumi.StringOutput) } @@ -18891,6 +19333,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerListenerArrayInput)(nil)).Elem(), LoadbalancerListenerArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerListenerServerNameIndicatorInput)(nil)).Elem(), LoadbalancerListenerServerNameIndicatorArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerListenerServerNameIndicatorArrayInput)(nil)).Elem(), LoadbalancerListenerServerNameIndicatorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerListenerTcpInput)(nil)).Elem(), LoadbalancerListenerTcpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerListenerTcpPtrInput)(nil)).Elem(), LoadbalancerListenerTcpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerListenerUdpInput)(nil)).Elem(), LoadbalancerListenerUdpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerListenerUdpPtrInput)(nil)).Elem(), LoadbalancerListenerUdpArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerNetworkInput)(nil)).Elem(), LoadbalancerNetworkArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerNetworkArrayInput)(nil)).Elem(), LoadbalancerNetworkArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadbalancerOptionsInput)(nil)).Elem(), LoadbalancerOptionsArgs{}) @@ -19016,6 +19462,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerListenerArrayInput)(nil)).Elem(), GetLoadbalancerListenerArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerListenerServerNameIndicatorInput)(nil)).Elem(), GetLoadbalancerListenerServerNameIndicatorArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerListenerServerNameIndicatorArrayInput)(nil)).Elem(), GetLoadbalancerListenerServerNameIndicatorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerListenerTcpInput)(nil)).Elem(), GetLoadbalancerListenerTcpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerListenerUdpInput)(nil)).Elem(), GetLoadbalancerListenerUdpArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerNetworkInput)(nil)).Elem(), GetLoadbalancerNetworkArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerNetworkArrayInput)(nil)).Elem(), GetLoadbalancerNetworkArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerOptionsInput)(nil)).Elem(), GetLoadbalancerOptionsArgs{}) @@ -19117,6 +19565,10 @@ func init() { pulumi.RegisterOutputType(LoadbalancerListenerArrayOutput{}) pulumi.RegisterOutputType(LoadbalancerListenerServerNameIndicatorOutput{}) pulumi.RegisterOutputType(LoadbalancerListenerServerNameIndicatorArrayOutput{}) + pulumi.RegisterOutputType(LoadbalancerListenerTcpOutput{}) + pulumi.RegisterOutputType(LoadbalancerListenerTcpPtrOutput{}) + pulumi.RegisterOutputType(LoadbalancerListenerUdpOutput{}) + pulumi.RegisterOutputType(LoadbalancerListenerUdpPtrOutput{}) pulumi.RegisterOutputType(LoadbalancerNetworkOutput{}) pulumi.RegisterOutputType(LoadbalancerNetworkArrayOutput{}) pulumi.RegisterOutputType(LoadbalancerOptionsOutput{}) @@ -19242,6 +19694,8 @@ func init() { pulumi.RegisterOutputType(GetLoadbalancerListenerArrayOutput{}) pulumi.RegisterOutputType(GetLoadbalancerListenerServerNameIndicatorOutput{}) pulumi.RegisterOutputType(GetLoadbalancerListenerServerNameIndicatorArrayOutput{}) + pulumi.RegisterOutputType(GetLoadbalancerListenerTcpOutput{}) + pulumi.RegisterOutputType(GetLoadbalancerListenerUdpOutput{}) pulumi.RegisterOutputType(GetLoadbalancerNetworkOutput{}) pulumi.RegisterOutputType(GetLoadbalancerNetworkArrayOutput{}) pulumi.RegisterOutputType(GetLoadbalancerOptionsOutput{}) diff --git a/sdk/go/stackit/resourcemanagerFolder.go b/sdk/go/stackit/resourcemanagerFolder.go index 037ccf05..aa3aae71 100644 --- a/sdk/go/stackit/resourcemanagerFolder.go +++ b/sdk/go/stackit/resourcemanagerFolder.go @@ -14,8 +14,6 @@ import ( // Resource Manager folder resource schema. // -// > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. -// // ## Example Usage type ResourcemanagerFolder struct { pulumi.CustomResourceState diff --git a/sdk/go/stackit/securityGroupRule.go b/sdk/go/stackit/securityGroupRule.go index 4dfe771b..b4a28f13 100644 --- a/sdk/go/stackit/securityGroupRule.go +++ b/sdk/go/stackit/securityGroupRule.go @@ -20,7 +20,7 @@ type SecurityGroupRule struct { // The rule description. Description pulumi.StringPtrOutput `pulumi:"description"` - // The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + // The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. Direction pulumi.StringOutput `pulumi:"direction"` // The ethertype which the rule should match. EtherType pulumi.StringOutput `pulumi:"etherType"` @@ -83,7 +83,7 @@ func GetSecurityGroupRule(ctx *pulumi.Context, type securityGroupRuleState struct { // The rule description. Description *string `pulumi:"description"` - // The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + // The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. Direction *string `pulumi:"direction"` // The ethertype which the rule should match. EtherType *string `pulumi:"etherType"` @@ -108,7 +108,7 @@ type securityGroupRuleState struct { type SecurityGroupRuleState struct { // The rule description. Description pulumi.StringPtrInput - // The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + // The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. Direction pulumi.StringPtrInput // The ethertype which the rule should match. EtherType pulumi.StringPtrInput @@ -137,7 +137,7 @@ func (SecurityGroupRuleState) ElementType() reflect.Type { type securityGroupRuleArgs struct { // The rule description. Description *string `pulumi:"description"` - // The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + // The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. Direction string `pulumi:"direction"` // The ethertype which the rule should match. EtherType *string `pulumi:"etherType"` @@ -161,7 +161,7 @@ type securityGroupRuleArgs struct { type SecurityGroupRuleArgs struct { // The rule description. Description pulumi.StringPtrInput - // The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + // The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. Direction pulumi.StringInput // The ethertype which the rule should match. EtherType pulumi.StringPtrInput @@ -273,7 +273,7 @@ func (o SecurityGroupRuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityGroupRule) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. +// The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. func (o SecurityGroupRuleOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v *SecurityGroupRule) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput) } diff --git a/sdk/go/stackit/server.go b/sdk/go/stackit/server.go index abb29c37..ba31daf8 100644 --- a/sdk/go/stackit/server.go +++ b/sdk/go/stackit/server.go @@ -40,7 +40,7 @@ type Server struct { BootVolume ServerBootVolumePtrOutput `pulumi:"bootVolume"` // Date-time when the server was created CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - // The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + // The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. DesiredStatus pulumi.StringPtrOutput `pulumi:"desiredStatus"` // The image ID to be used for an ephemeral disk on the server. ImageId pulumi.StringPtrOutput `pulumi:"imageId"` @@ -110,7 +110,7 @@ type serverState struct { BootVolume *ServerBootVolume `pulumi:"bootVolume"` // Date-time when the server was created CreatedAt *string `pulumi:"createdAt"` - // The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + // The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. DesiredStatus *string `pulumi:"desiredStatus"` // The image ID to be used for an ephemeral disk on the server. ImageId *string `pulumi:"imageId"` @@ -145,7 +145,7 @@ type ServerState struct { BootVolume ServerBootVolumePtrInput // Date-time when the server was created CreatedAt pulumi.StringPtrInput - // The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + // The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. DesiredStatus pulumi.StringPtrInput // The image ID to be used for an ephemeral disk on the server. ImageId pulumi.StringPtrInput @@ -182,7 +182,7 @@ type serverArgs struct { AvailabilityZone *string `pulumi:"availabilityZone"` // The boot volume for the server BootVolume *ServerBootVolume `pulumi:"bootVolume"` - // The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + // The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. DesiredStatus *string `pulumi:"desiredStatus"` // The image ID to be used for an ephemeral disk on the server. ImageId *string `pulumi:"imageId"` @@ -210,7 +210,7 @@ type ServerArgs struct { AvailabilityZone pulumi.StringPtrInput // The boot volume for the server BootVolume ServerBootVolumePtrInput - // The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + // The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. DesiredStatus pulumi.StringPtrInput // The image ID to be used for an ephemeral disk on the server. ImageId pulumi.StringPtrInput @@ -337,7 +337,7 @@ func (o ServerOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } -// The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. +// The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. func (o ServerOutput) DesiredStatus() pulumi.StringPtrOutput { return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.DesiredStatus }).(pulumi.StringPtrOutput) } diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index 53cda7c5..2fdecdf5 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -106,6 +106,17 @@ Object.defineProperty(exports, "iaasCustomEndpoint", { enumerable: true, }); +/** + * Custom endpoint for the KMS service + */ +export declare const kmsCustomEndpoint: string | undefined; +Object.defineProperty(exports, "kmsCustomEndpoint", { + get() { + return __config.get("kmsCustomEndpoint"); + }, + enumerable: true, +}); + /** * Custom endpoint for the Load Balancer service */ diff --git a/sdk/nodejs/dnsZone.ts b/sdk/nodejs/dnsZone.ts index 33c92a6e..b33bcf5d 100644 --- a/sdk/nodejs/dnsZone.ts +++ b/sdk/nodejs/dnsZone.ts @@ -107,7 +107,7 @@ export class DnsZone extends pulumi.CustomResource { */ declare public /*out*/ readonly state: pulumi.Output; /** - * Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + * Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. */ declare public readonly type: pulumi.Output; /** @@ -262,7 +262,7 @@ export interface DnsZoneState { */ state?: pulumi.Input; /** - * Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + * Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. */ type?: pulumi.Input; /** @@ -333,7 +333,7 @@ export interface DnsZoneArgs { */ retryTime?: pulumi.Input; /** - * Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + * Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. */ type?: pulumi.Input; } diff --git a/sdk/nodejs/getKmsKey.ts b/sdk/nodejs/getKmsKey.ts new file mode 100644 index 00000000..266592f5 --- /dev/null +++ b/sdk/nodejs/getKmsKey.ts @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * KMS Key datasource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + * + * ## Example Usage + */ +export function getKmsKey(args: GetKmsKeyArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getKmsKey:getKmsKey", { + "keyId": args.keyId, + "keyringId": args.keyringId, + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getKmsKey. + */ +export interface GetKmsKeyArgs { + /** + * The ID of the key + */ + keyId: string; + /** + * The ID of the associated key ring + */ + keyringId: string; + /** + * STACKIT project ID to which the key is associated. + */ + projectId: string; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: string; +} + +/** + * A collection of values returned by getKmsKey. + */ +export interface GetKmsKeyResult { + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + readonly accessScope: string; + /** + * The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + */ + readonly algorithm: string; + /** + * A user chosen description to distinguish multiple keys + */ + readonly description: string; + /** + * The display name to distinguish multiple keys + */ + readonly displayName: string; + readonly id: string; + /** + * States whether versions can be created or only imported. + */ + readonly importOnly: boolean; + /** + * The ID of the key + */ + readonly keyId: string; + /** + * The ID of the associated key ring + */ + readonly keyringId: string; + /** + * STACKIT project ID to which the key is associated. + */ + readonly projectId: string; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + readonly protection: string; + /** + * The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + */ + readonly purpose: string; + /** + * The resource region. If not defined, the provider region is used. + */ + readonly region: string; +} +/** + * KMS Key datasource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + * + * ## Example Usage + */ +export function getKmsKeyOutput(args: GetKmsKeyOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getKmsKey:getKmsKey", { + "keyId": args.keyId, + "keyringId": args.keyringId, + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getKmsKey. + */ +export interface GetKmsKeyOutputArgs { + /** + * The ID of the key + */ + keyId: pulumi.Input; + /** + * The ID of the associated key ring + */ + keyringId: pulumi.Input; + /** + * STACKIT project ID to which the key is associated. + */ + projectId: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/getKmsKeyring.ts b/sdk/nodejs/getKmsKeyring.ts new file mode 100644 index 00000000..9ed81a67 --- /dev/null +++ b/sdk/nodejs/getKmsKeyring.ts @@ -0,0 +1,95 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * KMS Keyring datasource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + * + * ## Example Usage + */ +export function getKmsKeyring(args: GetKmsKeyringArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getKmsKeyring:getKmsKeyring", { + "keyringId": args.keyringId, + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getKmsKeyring. + */ +export interface GetKmsKeyringArgs { + /** + * An auto generated unique id which identifies the keyring. + */ + keyringId: string; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId: string; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: string; +} + +/** + * A collection of values returned by getKmsKeyring. + */ +export interface GetKmsKeyringResult { + /** + * A user chosen description to distinguish multiple keyrings. + */ + readonly description: string; + /** + * The display name to distinguish multiple keyrings. + */ + readonly displayName: string; + readonly id: string; + /** + * An auto generated unique id which identifies the keyring. + */ + readonly keyringId: string; + /** + * STACKIT project ID to which the keyring is associated. + */ + readonly projectId: string; + /** + * The resource region. If not defined, the provider region is used. + */ + readonly region: string; +} +/** + * KMS Keyring datasource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + * + * ## Example Usage + */ +export function getKmsKeyringOutput(args: GetKmsKeyringOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getKmsKeyring:getKmsKeyring", { + "keyringId": args.keyringId, + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getKmsKeyring. + */ +export interface GetKmsKeyringOutputArgs { + /** + * An auto generated unique id which identifies the keyring. + */ + keyringId: pulumi.Input; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/getKmsWrappingKey.ts b/sdk/nodejs/getKmsWrappingKey.ts new file mode 100644 index 00000000..aa5e2f4b --- /dev/null +++ b/sdk/nodejs/getKmsWrappingKey.ts @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * KMS wrapping key datasource schema. + * + * ## Example Usage + */ +export function getKmsWrappingKey(args: GetKmsWrappingKeyArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getKmsWrappingKey:getKmsWrappingKey", { + "keyringId": args.keyringId, + "projectId": args.projectId, + "region": args.region, + "wrappingKeyId": args.wrappingKeyId, + }, opts); +} + +/** + * A collection of arguments for invoking getKmsWrappingKey. + */ +export interface GetKmsWrappingKeyArgs { + /** + * The ID of the associated keyring + */ + keyringId: string; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId: string; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: string; + /** + * The ID of the wrapping key + */ + wrappingKeyId: string; +} + +/** + * A collection of values returned by getKmsWrappingKey. + */ +export interface GetKmsWrappingKeyResult { + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + readonly accessScope: string; + /** + * The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + */ + readonly algorithm: string; + /** + * The date and time the creation of the wrapping key was triggered. + */ + readonly createdAt: string; + /** + * A user chosen description to distinguish multiple wrapping keys. + */ + readonly description: string; + /** + * The display name to distinguish multiple wrapping keys. + */ + readonly displayName: string; + /** + * The date and time the wrapping key will expire. + */ + readonly expiresAt: string; + readonly id: string; + /** + * The ID of the associated keyring + */ + readonly keyringId: string; + /** + * STACKIT project ID to which the keyring is associated. + */ + readonly projectId: string; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + readonly protection: string; + /** + * The public key of the wrapping key. + */ + readonly publicKey: string; + /** + * The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + */ + readonly purpose: string; + /** + * The resource region. If not defined, the provider region is used. + */ + readonly region: string; + /** + * The ID of the wrapping key + */ + readonly wrappingKeyId: string; +} +/** + * KMS wrapping key datasource schema. + * + * ## Example Usage + */ +export function getKmsWrappingKeyOutput(args: GetKmsWrappingKeyOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getKmsWrappingKey:getKmsWrappingKey", { + "keyringId": args.keyringId, + "projectId": args.projectId, + "region": args.region, + "wrappingKeyId": args.wrappingKeyId, + }, opts); +} + +/** + * A collection of arguments for invoking getKmsWrappingKey. + */ +export interface GetKmsWrappingKeyOutputArgs { + /** + * The ID of the associated keyring + */ + keyringId: pulumi.Input; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The ID of the wrapping key + */ + wrappingKeyId: pulumi.Input; +} diff --git a/sdk/nodejs/getNetworkInterface.ts b/sdk/nodejs/getNetworkInterface.ts index e0ef8769..a9b3e7a7 100644 --- a/sdk/nodejs/getNetworkInterface.ts +++ b/sdk/nodejs/getNetworkInterface.ts @@ -86,7 +86,7 @@ export interface GetNetworkInterfaceResult { */ readonly securityGroupIds: string[]; /** - * Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + * Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. */ readonly type: string; } diff --git a/sdk/nodejs/getObservabilityInstance.ts b/sdk/nodejs/getObservabilityInstance.ts index d55692c7..c8ae9127 100644 --- a/sdk/nodejs/getObservabilityInstance.ts +++ b/sdk/nodejs/getObservabilityInstance.ts @@ -84,6 +84,10 @@ export interface GetObservabilityInstanceResult { * Specifies URL for pushing logs. */ readonly logsPushUrl: string; + /** + * Specifies for how many days the logs are kept. Default is set to `7`. + */ + readonly logsRetentionDays: number; /** * Specifies Logs URL. */ @@ -133,6 +137,10 @@ export interface GetObservabilityInstanceResult { * Specifies Targets URL. */ readonly targetsUrl: string; + /** + * Specifies for how many days the traces are kept. Default is set to `7`. + */ + readonly tracesRetentionDays: number; readonly zipkinSpansUrl: string; } /** diff --git a/sdk/nodejs/getResourcemanagerFolder.ts b/sdk/nodejs/getResourcemanagerFolder.ts index 5c116097..2e76bbcc 100644 --- a/sdk/nodejs/getResourcemanagerFolder.ts +++ b/sdk/nodejs/getResourcemanagerFolder.ts @@ -7,8 +7,6 @@ import * as utilities from "./utilities"; /** * Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. * - * > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - * * ## Example Usage */ export function getResourcemanagerFolder(args: GetResourcemanagerFolderArgs, opts?: pulumi.InvokeOptions): Promise { @@ -65,8 +63,6 @@ export interface GetResourcemanagerFolderResult { /** * Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. * - * > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - * * ## Example Usage */ export function getResourcemanagerFolderOutput(args: GetResourcemanagerFolderOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { diff --git a/sdk/nodejs/getSecurityGroupRule.ts b/sdk/nodejs/getSecurityGroupRule.ts index 4e96a09e..765f7397 100644 --- a/sdk/nodejs/getSecurityGroupRule.ts +++ b/sdk/nodejs/getSecurityGroupRule.ts @@ -47,7 +47,7 @@ export interface GetSecurityGroupRuleResult { */ readonly description: string; /** - * The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + * The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. */ readonly direction: string; /** diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 9d6263cc..22dbed64 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -90,6 +90,21 @@ export const getKeyPair: typeof import("./getKeyPair").getKeyPair = null as any; export const getKeyPairOutput: typeof import("./getKeyPair").getKeyPairOutput = null as any; utilities.lazyLoad(exports, ["getKeyPair","getKeyPairOutput"], () => require("./getKeyPair")); +export { GetKmsKeyArgs, GetKmsKeyResult, GetKmsKeyOutputArgs } from "./getKmsKey"; +export const getKmsKey: typeof import("./getKmsKey").getKmsKey = null as any; +export const getKmsKeyOutput: typeof import("./getKmsKey").getKmsKeyOutput = null as any; +utilities.lazyLoad(exports, ["getKmsKey","getKmsKeyOutput"], () => require("./getKmsKey")); + +export { GetKmsKeyringArgs, GetKmsKeyringResult, GetKmsKeyringOutputArgs } from "./getKmsKeyring"; +export const getKmsKeyring: typeof import("./getKmsKeyring").getKmsKeyring = null as any; +export const getKmsKeyringOutput: typeof import("./getKmsKeyring").getKmsKeyringOutput = null as any; +utilities.lazyLoad(exports, ["getKmsKeyring","getKmsKeyringOutput"], () => require("./getKmsKeyring")); + +export { GetKmsWrappingKeyArgs, GetKmsWrappingKeyResult, GetKmsWrappingKeyOutputArgs } from "./getKmsWrappingKey"; +export const getKmsWrappingKey: typeof import("./getKmsWrappingKey").getKmsWrappingKey = null as any; +export const getKmsWrappingKeyOutput: typeof import("./getKmsWrappingKey").getKmsWrappingKeyOutput = null as any; +utilities.lazyLoad(exports, ["getKmsWrappingKey","getKmsWrappingKeyOutput"], () => require("./getKmsWrappingKey")); + export { GetLoadbalancerArgs, GetLoadbalancerResult, GetLoadbalancerOutputArgs } from "./getLoadbalancer"; export const getLoadbalancer: typeof import("./getLoadbalancer").getLoadbalancer = null as any; export const getLoadbalancerOutput: typeof import("./getLoadbalancer").getLoadbalancerOutput = null as any; @@ -370,6 +385,21 @@ export type KeyPair = import("./keyPair").KeyPair; export const KeyPair: typeof import("./keyPair").KeyPair = null as any; utilities.lazyLoad(exports, ["KeyPair"], () => require("./keyPair")); +export { KmsKeyArgs, KmsKeyState } from "./kmsKey"; +export type KmsKey = import("./kmsKey").KmsKey; +export const KmsKey: typeof import("./kmsKey").KmsKey = null as any; +utilities.lazyLoad(exports, ["KmsKey"], () => require("./kmsKey")); + +export { KmsKeyringArgs, KmsKeyringState } from "./kmsKeyring"; +export type KmsKeyring = import("./kmsKeyring").KmsKeyring; +export const KmsKeyring: typeof import("./kmsKeyring").KmsKeyring = null as any; +utilities.lazyLoad(exports, ["KmsKeyring"], () => require("./kmsKeyring")); + +export { KmsWrappingKeyArgs, KmsWrappingKeyState } from "./kmsWrappingKey"; +export type KmsWrappingKey = import("./kmsWrappingKey").KmsWrappingKey; +export const KmsWrappingKey: typeof import("./kmsWrappingKey").KmsWrappingKey = null as any; +utilities.lazyLoad(exports, ["KmsWrappingKey"], () => require("./kmsWrappingKey")); + export { LoadbalancerArgs, LoadbalancerState } from "./loadbalancer"; export type Loadbalancer = import("./loadbalancer").Loadbalancer; export const Loadbalancer: typeof import("./loadbalancer").Loadbalancer = null as any; @@ -687,6 +717,12 @@ const _module = { return new Image(name, undefined, { urn }) case "stackit:index/keyPair:KeyPair": return new KeyPair(name, undefined, { urn }) + case "stackit:index/kmsKey:KmsKey": + return new KmsKey(name, undefined, { urn }) + case "stackit:index/kmsKeyring:KmsKeyring": + return new KmsKeyring(name, undefined, { urn }) + case "stackit:index/kmsWrappingKey:KmsWrappingKey": + return new KmsWrappingKey(name, undefined, { urn }) case "stackit:index/loadbalancer:Loadbalancer": return new Loadbalancer(name, undefined, { urn }) case "stackit:index/loadbalancerObservabilityCredential:LoadbalancerObservabilityCredential": @@ -814,6 +850,9 @@ pulumi.runtime.registerResourceModule("stackit", "index/dnsZone", _module) pulumi.runtime.registerResourceModule("stackit", "index/git", _module) pulumi.runtime.registerResourceModule("stackit", "index/image", _module) pulumi.runtime.registerResourceModule("stackit", "index/keyPair", _module) +pulumi.runtime.registerResourceModule("stackit", "index/kmsKey", _module) +pulumi.runtime.registerResourceModule("stackit", "index/kmsKeyring", _module) +pulumi.runtime.registerResourceModule("stackit", "index/kmsWrappingKey", _module) pulumi.runtime.registerResourceModule("stackit", "index/loadbalancer", _module) pulumi.runtime.registerResourceModule("stackit", "index/loadbalancerObservabilityCredential", _module) pulumi.runtime.registerResourceModule("stackit", "index/logmeCredential", _module) diff --git a/sdk/nodejs/kmsKey.ts b/sdk/nodejs/kmsKey.ts new file mode 100644 index 00000000..09e58147 --- /dev/null +++ b/sdk/nodejs/kmsKey.ts @@ -0,0 +1,238 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * ## Example Usage + */ +export class KmsKey extends pulumi.CustomResource { + /** + * Get an existing KmsKey resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: KmsKeyState, opts?: pulumi.CustomResourceOptions): KmsKey { + return new KmsKey(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/kmsKey:KmsKey'; + + /** + * Returns true if the given object is an instance of KmsKey. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is KmsKey { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === KmsKey.__pulumiType; + } + + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + declare public readonly accessScope: pulumi.Output; + /** + * The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + */ + declare public readonly algorithm: pulumi.Output; + /** + * A user chosen description to distinguish multiple keys + */ + declare public readonly description: pulumi.Output; + /** + * The display name to distinguish multiple keys + */ + declare public readonly displayName: pulumi.Output; + /** + * States whether versions can be created or only imported. + */ + declare public readonly importOnly: pulumi.Output; + /** + * The ID of the key + */ + declare public /*out*/ readonly keyId: pulumi.Output; + /** + * The ID of the associated keyring + */ + declare public readonly keyringId: pulumi.Output; + /** + * STACKIT project ID to which the key is associated. + */ + declare public readonly projectId: pulumi.Output; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + declare public readonly protection: pulumi.Output; + /** + * The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + */ + declare public readonly purpose: pulumi.Output; + /** + * The resource region. If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + + /** + * Create a KmsKey resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: KmsKeyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: KmsKeyArgs | KmsKeyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as KmsKeyState | undefined; + resourceInputs["accessScope"] = state?.accessScope; + resourceInputs["algorithm"] = state?.algorithm; + resourceInputs["description"] = state?.description; + resourceInputs["displayName"] = state?.displayName; + resourceInputs["importOnly"] = state?.importOnly; + resourceInputs["keyId"] = state?.keyId; + resourceInputs["keyringId"] = state?.keyringId; + resourceInputs["projectId"] = state?.projectId; + resourceInputs["protection"] = state?.protection; + resourceInputs["purpose"] = state?.purpose; + resourceInputs["region"] = state?.region; + } else { + const args = argsOrState as KmsKeyArgs | undefined; + if (args?.algorithm === undefined && !opts.urn) { + throw new Error("Missing required property 'algorithm'"); + } + if (args?.displayName === undefined && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + if (args?.keyringId === undefined && !opts.urn) { + throw new Error("Missing required property 'keyringId'"); + } + if (args?.projectId === undefined && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + if (args?.protection === undefined && !opts.urn) { + throw new Error("Missing required property 'protection'"); + } + if (args?.purpose === undefined && !opts.urn) { + throw new Error("Missing required property 'purpose'"); + } + resourceInputs["accessScope"] = args?.accessScope; + resourceInputs["algorithm"] = args?.algorithm; + resourceInputs["description"] = args?.description; + resourceInputs["displayName"] = args?.displayName; + resourceInputs["importOnly"] = args?.importOnly; + resourceInputs["keyringId"] = args?.keyringId; + resourceInputs["projectId"] = args?.projectId; + resourceInputs["protection"] = args?.protection; + resourceInputs["purpose"] = args?.purpose; + resourceInputs["region"] = args?.region; + resourceInputs["keyId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(KmsKey.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering KmsKey resources. + */ +export interface KmsKeyState { + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + accessScope?: pulumi.Input; + /** + * The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + */ + algorithm?: pulumi.Input; + /** + * A user chosen description to distinguish multiple keys + */ + description?: pulumi.Input; + /** + * The display name to distinguish multiple keys + */ + displayName?: pulumi.Input; + /** + * States whether versions can be created or only imported. + */ + importOnly?: pulumi.Input; + /** + * The ID of the key + */ + keyId?: pulumi.Input; + /** + * The ID of the associated keyring + */ + keyringId?: pulumi.Input; + /** + * STACKIT project ID to which the key is associated. + */ + projectId?: pulumi.Input; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + protection?: pulumi.Input; + /** + * The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + */ + purpose?: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} + +/** + * The set of arguments for constructing a KmsKey resource. + */ +export interface KmsKeyArgs { + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + accessScope?: pulumi.Input; + /** + * The encryption algorithm that the key will use to encrypt data. Possible values are: `aes256Gcm`, `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `hmacSha256`, `hmacSha384`, `hmacSha512`, `ecdsaP256Sha256`, `ecdsaP384Sha384`, `ecdsaP521Sha512`. + */ + algorithm: pulumi.Input; + /** + * A user chosen description to distinguish multiple keys + */ + description?: pulumi.Input; + /** + * The display name to distinguish multiple keys + */ + displayName: pulumi.Input; + /** + * States whether versions can be created or only imported. + */ + importOnly?: pulumi.Input; + /** + * The ID of the associated keyring + */ + keyringId: pulumi.Input; + /** + * STACKIT project ID to which the key is associated. + */ + projectId: pulumi.Input; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + protection: pulumi.Input; + /** + * The purpose for which the key will be used. Possible values are: `symmetricEncryptDecrypt`, `asymmetricEncryptDecrypt`, `messageAuthenticationCode`, `asymmetricSignVerify`. + */ + purpose: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/kmsKeyring.ts b/sdk/nodejs/kmsKeyring.ts new file mode 100644 index 00000000..d48fd2f9 --- /dev/null +++ b/sdk/nodejs/kmsKeyring.ts @@ -0,0 +1,142 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * ## Example Usage + */ +export class KmsKeyring extends pulumi.CustomResource { + /** + * Get an existing KmsKeyring resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: KmsKeyringState, opts?: pulumi.CustomResourceOptions): KmsKeyring { + return new KmsKeyring(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/kmsKeyring:KmsKeyring'; + + /** + * Returns true if the given object is an instance of KmsKeyring. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is KmsKeyring { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === KmsKeyring.__pulumiType; + } + + /** + * A user chosen description to distinguish multiple keyrings. + */ + declare public readonly description: pulumi.Output; + /** + * The display name to distinguish multiple keyrings. + */ + declare public readonly displayName: pulumi.Output; + /** + * An auto generated unique id which identifies the keyring. + */ + declare public /*out*/ readonly keyringId: pulumi.Output; + /** + * STACKIT project ID to which the keyring is associated. + */ + declare public readonly projectId: pulumi.Output; + /** + * The resource region. If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + + /** + * Create a KmsKeyring resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: KmsKeyringArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: KmsKeyringArgs | KmsKeyringState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as KmsKeyringState | undefined; + resourceInputs["description"] = state?.description; + resourceInputs["displayName"] = state?.displayName; + resourceInputs["keyringId"] = state?.keyringId; + resourceInputs["projectId"] = state?.projectId; + resourceInputs["region"] = state?.region; + } else { + const args = argsOrState as KmsKeyringArgs | undefined; + if (args?.displayName === undefined && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + if (args?.projectId === undefined && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + resourceInputs["description"] = args?.description; + resourceInputs["displayName"] = args?.displayName; + resourceInputs["projectId"] = args?.projectId; + resourceInputs["region"] = args?.region; + resourceInputs["keyringId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(KmsKeyring.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering KmsKeyring resources. + */ +export interface KmsKeyringState { + /** + * A user chosen description to distinguish multiple keyrings. + */ + description?: pulumi.Input; + /** + * The display name to distinguish multiple keyrings. + */ + displayName?: pulumi.Input; + /** + * An auto generated unique id which identifies the keyring. + */ + keyringId?: pulumi.Input; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId?: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} + +/** + * The set of arguments for constructing a KmsKeyring resource. + */ +export interface KmsKeyringArgs { + /** + * A user chosen description to distinguish multiple keyrings. + */ + description?: pulumi.Input; + /** + * The display name to distinguish multiple keyrings. + */ + displayName: pulumi.Input; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/kmsWrappingKey.ts b/sdk/nodejs/kmsWrappingKey.ts new file mode 100644 index 00000000..aae28537 --- /dev/null +++ b/sdk/nodejs/kmsWrappingKey.ts @@ -0,0 +1,256 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * KMS wrapping key resource schema. + * + * ## Example Usage + */ +export class KmsWrappingKey extends pulumi.CustomResource { + /** + * Get an existing KmsWrappingKey resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: KmsWrappingKeyState, opts?: pulumi.CustomResourceOptions): KmsWrappingKey { + return new KmsWrappingKey(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/kmsWrappingKey:KmsWrappingKey'; + + /** + * Returns true if the given object is an instance of KmsWrappingKey. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is KmsWrappingKey { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === KmsWrappingKey.__pulumiType; + } + + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + declare public readonly accessScope: pulumi.Output; + /** + * The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + */ + declare public readonly algorithm: pulumi.Output; + /** + * The date and time the creation of the wrapping key was triggered. + */ + declare public /*out*/ readonly createdAt: pulumi.Output; + /** + * A user chosen description to distinguish multiple wrapping keys. + */ + declare public readonly description: pulumi.Output; + /** + * The display name to distinguish multiple wrapping keys. + */ + declare public readonly displayName: pulumi.Output; + /** + * The date and time the wrapping key will expire. + */ + declare public /*out*/ readonly expiresAt: pulumi.Output; + /** + * The ID of the associated keyring + */ + declare public readonly keyringId: pulumi.Output; + /** + * STACKIT project ID to which the keyring is associated. + */ + declare public readonly projectId: pulumi.Output; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + declare public readonly protection: pulumi.Output; + /** + * The public key of the wrapping key. + */ + declare public /*out*/ readonly publicKey: pulumi.Output; + /** + * The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + */ + declare public readonly purpose: pulumi.Output; + /** + * The resource region. If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + /** + * The ID of the wrapping key + */ + declare public /*out*/ readonly wrappingKeyId: pulumi.Output; + + /** + * Create a KmsWrappingKey resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: KmsWrappingKeyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: KmsWrappingKeyArgs | KmsWrappingKeyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as KmsWrappingKeyState | undefined; + resourceInputs["accessScope"] = state?.accessScope; + resourceInputs["algorithm"] = state?.algorithm; + resourceInputs["createdAt"] = state?.createdAt; + resourceInputs["description"] = state?.description; + resourceInputs["displayName"] = state?.displayName; + resourceInputs["expiresAt"] = state?.expiresAt; + resourceInputs["keyringId"] = state?.keyringId; + resourceInputs["projectId"] = state?.projectId; + resourceInputs["protection"] = state?.protection; + resourceInputs["publicKey"] = state?.publicKey; + resourceInputs["purpose"] = state?.purpose; + resourceInputs["region"] = state?.region; + resourceInputs["wrappingKeyId"] = state?.wrappingKeyId; + } else { + const args = argsOrState as KmsWrappingKeyArgs | undefined; + if (args?.algorithm === undefined && !opts.urn) { + throw new Error("Missing required property 'algorithm'"); + } + if (args?.displayName === undefined && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + if (args?.keyringId === undefined && !opts.urn) { + throw new Error("Missing required property 'keyringId'"); + } + if (args?.projectId === undefined && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + if (args?.protection === undefined && !opts.urn) { + throw new Error("Missing required property 'protection'"); + } + if (args?.purpose === undefined && !opts.urn) { + throw new Error("Missing required property 'purpose'"); + } + resourceInputs["accessScope"] = args?.accessScope; + resourceInputs["algorithm"] = args?.algorithm; + resourceInputs["description"] = args?.description; + resourceInputs["displayName"] = args?.displayName; + resourceInputs["keyringId"] = args?.keyringId; + resourceInputs["projectId"] = args?.projectId; + resourceInputs["protection"] = args?.protection; + resourceInputs["purpose"] = args?.purpose; + resourceInputs["region"] = args?.region; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["expiresAt"] = undefined /*out*/; + resourceInputs["publicKey"] = undefined /*out*/; + resourceInputs["wrappingKeyId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(KmsWrappingKey.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering KmsWrappingKey resources. + */ +export interface KmsWrappingKeyState { + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + accessScope?: pulumi.Input; + /** + * The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + */ + algorithm?: pulumi.Input; + /** + * The date and time the creation of the wrapping key was triggered. + */ + createdAt?: pulumi.Input; + /** + * A user chosen description to distinguish multiple wrapping keys. + */ + description?: pulumi.Input; + /** + * The display name to distinguish multiple wrapping keys. + */ + displayName?: pulumi.Input; + /** + * The date and time the wrapping key will expire. + */ + expiresAt?: pulumi.Input; + /** + * The ID of the associated keyring + */ + keyringId?: pulumi.Input; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId?: pulumi.Input; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + protection?: pulumi.Input; + /** + * The public key of the wrapping key. + */ + publicKey?: pulumi.Input; + /** + * The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + */ + purpose?: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The ID of the wrapping key + */ + wrappingKeyId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a KmsWrappingKey resource. + */ +export interface KmsWrappingKeyArgs { + /** + * The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + */ + accessScope?: pulumi.Input; + /** + * The wrapping algorithm used to wrap the key to import. Possible values are: `rsa2048OaepSha256`, `rsa3072OaepSha256`, `rsa4096OaepSha256`, `rsa4096OaepSha512`, `rsa2048OaepSha256Aes256KeyWrap`, `rsa3072OaepSha256Aes256KeyWrap`, `rsa4096OaepSha256Aes256KeyWrap`, `rsa4096OaepSha512Aes256KeyWrap`. + */ + algorithm: pulumi.Input; + /** + * A user chosen description to distinguish multiple wrapping keys. + */ + description?: pulumi.Input; + /** + * The display name to distinguish multiple wrapping keys. + */ + displayName: pulumi.Input; + /** + * The ID of the associated keyring + */ + keyringId: pulumi.Input; + /** + * STACKIT project ID to which the keyring is associated. + */ + projectId: pulumi.Input; + /** + * The underlying system that is responsible for protecting the key material. Possible values are: `software`. + */ + protection: pulumi.Input; + /** + * The purpose for which the key will be used. Possible values are: `wrapSymmetricKey`, `wrapAsymmetricKey`. + */ + purpose: pulumi.Input; + /** + * The resource region. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/network.ts b/sdk/nodejs/network.ts index 188a9bd0..22c08d69 100644 --- a/sdk/nodejs/network.ts +++ b/sdk/nodejs/network.ts @@ -6,6 +6,9 @@ import * as utilities from "./utilities"; /** * Network resource schema. Must have a `region` specified in the provider configuration. + * > Behavior of not configured `ipv4Nameservers` will change from January 2026. When `ipv4Nameservers` is not set, it will be set to the network area's `defaultNameservers`. + * To prevent any nameserver configuration, the `ipv4Nameservers` attribute should be explicitly set to an empty list `[]`. + * In cases where `ipv4Nameservers` are defined within the resource, the existing behavior will remain unchanged. * * ## Example Usage */ @@ -68,11 +71,11 @@ export class Network extends pulumi.CustomResource { /** * The IPv6 prefix of the network (CIDR). */ - declare public readonly ipv6Prefix: pulumi.Output; + declare public readonly ipv6Prefix: pulumi.Output; /** * The IPv6 prefix length of the network. */ - declare public readonly ipv6PrefixLength: pulumi.Output; + declare public readonly ipv6PrefixLength: pulumi.Output; /** * The IPv6 prefixes of the network. */ @@ -86,7 +89,7 @@ export class Network extends pulumi.CustomResource { */ declare public readonly name: pulumi.Output; /** - * The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + * The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. * * @deprecated Use `ipv4Nameservers` to configure the nameservers for IPv4. */ @@ -104,7 +107,7 @@ export class Network extends pulumi.CustomResource { */ declare public readonly noIpv6Gateway: pulumi.Output; /** - * The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. + * The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. * * @deprecated Use `ipv4Prefixes` to read the prefixes of the IPv4 networks. */ @@ -253,7 +256,7 @@ export interface NetworkState { */ name?: pulumi.Input; /** - * The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + * The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. * * @deprecated Use `ipv4Nameservers` to configure the nameservers for IPv4. */ @@ -271,7 +274,7 @@ export interface NetworkState { */ noIpv6Gateway?: pulumi.Input; /** - * The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. + * The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4Prefixes` to read the prefixes of the IPv4 networks. * * @deprecated Use `ipv4Prefixes` to read the prefixes of the IPv4 networks. */ @@ -345,7 +348,7 @@ export interface NetworkArgs { */ name?: pulumi.Input; /** - * The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4Nameservers` to configure the nameservers for IPv4. + * The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4Nameservers` to configure the nameservers for IPv4. * * @deprecated Use `ipv4Nameservers` to configure the nameservers for IPv4. */ diff --git a/sdk/nodejs/networkInterface.ts b/sdk/nodejs/networkInterface.ts index d7d68eba..6a6a5dd5 100644 --- a/sdk/nodejs/networkInterface.ts +++ b/sdk/nodejs/networkInterface.ts @@ -82,7 +82,7 @@ export class NetworkInterface extends pulumi.CustomResource { */ declare public readonly securityGroupIds: pulumi.Output; /** - * Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + * Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. */ declare public /*out*/ readonly type: pulumi.Output; @@ -186,7 +186,7 @@ export interface NetworkInterfaceState { */ securityGroupIds?: pulumi.Input[]>; /** - * Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + * Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. */ type?: pulumi.Input; } diff --git a/sdk/nodejs/observabilityInstance.ts b/sdk/nodejs/observabilityInstance.ts index 77bce796..77dfedd2 100644 --- a/sdk/nodejs/observabilityInstance.ts +++ b/sdk/nodejs/observabilityInstance.ts @@ -85,6 +85,10 @@ export class ObservabilityInstance extends pulumi.CustomResource { * Specifies URL for pushing logs. */ declare public /*out*/ readonly logsPushUrl: pulumi.Output; + /** + * Specifies for how many days the logs are kept. Default is set to `7`. + */ + declare public readonly logsRetentionDays: pulumi.Output; /** * Specifies Logs URL. */ @@ -134,6 +138,10 @@ export class ObservabilityInstance extends pulumi.CustomResource { * Specifies Targets URL. */ declare public /*out*/ readonly targetsUrl: pulumi.Output; + /** + * Specifies for how many days the traces are kept. Default is set to `7`. + */ + declare public readonly tracesRetentionDays: pulumi.Output; declare public /*out*/ readonly zipkinSpansUrl: pulumi.Output; /** @@ -162,6 +170,7 @@ export class ObservabilityInstance extends pulumi.CustomResource { resourceInputs["jaegerTracesUrl"] = state?.jaegerTracesUrl; resourceInputs["jaegerUiUrl"] = state?.jaegerUiUrl; resourceInputs["logsPushUrl"] = state?.logsPushUrl; + resourceInputs["logsRetentionDays"] = state?.logsRetentionDays; resourceInputs["logsUrl"] = state?.logsUrl; resourceInputs["metricsPushUrl"] = state?.metricsPushUrl; resourceInputs["metricsRetentionDays"] = state?.metricsRetentionDays; @@ -175,6 +184,7 @@ export class ObservabilityInstance extends pulumi.CustomResource { resourceInputs["planName"] = state?.planName; resourceInputs["projectId"] = state?.projectId; resourceInputs["targetsUrl"] = state?.targetsUrl; + resourceInputs["tracesRetentionDays"] = state?.tracesRetentionDays; resourceInputs["zipkinSpansUrl"] = state?.zipkinSpansUrl; } else { const args = argsOrState as ObservabilityInstanceArgs | undefined; @@ -186,6 +196,7 @@ export class ObservabilityInstance extends pulumi.CustomResource { } resourceInputs["acls"] = args?.acls; resourceInputs["alertConfig"] = args?.alertConfig; + resourceInputs["logsRetentionDays"] = args?.logsRetentionDays; resourceInputs["metricsRetentionDays"] = args?.metricsRetentionDays; resourceInputs["metricsRetentionDays1hDownsampling"] = args?.metricsRetentionDays1hDownsampling; resourceInputs["metricsRetentionDays5mDownsampling"] = args?.metricsRetentionDays5mDownsampling; @@ -193,6 +204,7 @@ export class ObservabilityInstance extends pulumi.CustomResource { resourceInputs["parameters"] = args?.parameters; resourceInputs["planName"] = args?.planName; resourceInputs["projectId"] = args?.projectId; + resourceInputs["tracesRetentionDays"] = args?.tracesRetentionDays; resourceInputs["alertingUrl"] = undefined /*out*/; resourceInputs["dashboardUrl"] = undefined /*out*/; resourceInputs["grafanaInitialAdminPassword"] = undefined /*out*/; @@ -269,6 +281,10 @@ export interface ObservabilityInstanceState { * Specifies URL for pushing logs. */ logsPushUrl?: pulumi.Input; + /** + * Specifies for how many days the logs are kept. Default is set to `7`. + */ + logsRetentionDays?: pulumi.Input; /** * Specifies Logs URL. */ @@ -318,6 +334,10 @@ export interface ObservabilityInstanceState { * Specifies Targets URL. */ targetsUrl?: pulumi.Input; + /** + * Specifies for how many days the traces are kept. Default is set to `7`. + */ + tracesRetentionDays?: pulumi.Input; zipkinSpansUrl?: pulumi.Input; } @@ -333,6 +353,10 @@ export interface ObservabilityInstanceArgs { * Alert configuration for the instance. */ alertConfig?: pulumi.Input; + /** + * Specifies for how many days the logs are kept. Default is set to `7`. + */ + logsRetentionDays?: pulumi.Input; /** * Specifies for how many days the raw metrics are kept. Default is set to `90`. */ @@ -361,4 +385,8 @@ export interface ObservabilityInstanceArgs { * STACKIT project ID to which the instance is associated. */ projectId: pulumi.Input; + /** + * Specifies for how many days the traces are kept. Default is set to `7`. + */ + tracesRetentionDays?: pulumi.Input; } diff --git a/sdk/nodejs/postgresflexUser.ts b/sdk/nodejs/postgresflexUser.ts index 2e8c1299..6462d316 100644 --- a/sdk/nodejs/postgresflexUser.ts +++ b/sdk/nodejs/postgresflexUser.ts @@ -53,7 +53,7 @@ export class PostgresflexUser extends pulumi.CustomResource { */ declare public readonly region: pulumi.Output; /** - * Database access levels for the user. Supported values are: `login`, `createdb`. + * Database access levels for the user. Possible values are: `login`, `createdb`. */ declare public readonly roles: pulumi.Output; declare public /*out*/ readonly uri: pulumi.Output; @@ -138,7 +138,7 @@ export interface PostgresflexUserState { */ region?: pulumi.Input; /** - * Database access levels for the user. Supported values are: `login`, `createdb`. + * Database access levels for the user. Possible values are: `login`, `createdb`. */ roles?: pulumi.Input[]>; uri?: pulumi.Input; @@ -166,7 +166,7 @@ export interface PostgresflexUserArgs { */ region?: pulumi.Input; /** - * Database access levels for the user. Supported values are: `login`, `createdb`. + * Database access levels for the user. Possible values are: `login`, `createdb`. */ roles: pulumi.Input[]>; username: pulumi.Input; diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 0d1a1831..83ee7ded 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -53,6 +53,10 @@ export class Provider extends pulumi.ProviderResource { * Custom endpoint for the IaaS service */ declare public readonly iaasCustomEndpoint: pulumi.Output; + /** + * Custom endpoint for the KMS service + */ + declare public readonly kmsCustomEndpoint: pulumi.Output; /** * Custom endpoint for the Load Balancer service */ @@ -192,6 +196,7 @@ export class Provider extends pulumi.ProviderResource { resourceInputs["experiments"] = pulumi.output(args?.experiments).apply(JSON.stringify); resourceInputs["gitCustomEndpoint"] = args?.gitCustomEndpoint; resourceInputs["iaasCustomEndpoint"] = args?.iaasCustomEndpoint; + resourceInputs["kmsCustomEndpoint"] = args?.kmsCustomEndpoint; resourceInputs["loadbalancerCustomEndpoint"] = args?.loadbalancerCustomEndpoint; resourceInputs["logmeCustomEndpoint"] = args?.logmeCustomEndpoint; resourceInputs["mariadbCustomEndpoint"] = args?.mariadbCustomEndpoint; @@ -275,6 +280,10 @@ export interface ProviderArgs { * Custom endpoint for the IaaS service */ iaasCustomEndpoint?: pulumi.Input; + /** + * Custom endpoint for the KMS service + */ + kmsCustomEndpoint?: pulumi.Input; /** * Custom endpoint for the Load Balancer service */ diff --git a/sdk/nodejs/resourcemanagerFolder.ts b/sdk/nodejs/resourcemanagerFolder.ts index f447e16d..63bc7371 100644 --- a/sdk/nodejs/resourcemanagerFolder.ts +++ b/sdk/nodejs/resourcemanagerFolder.ts @@ -7,8 +7,6 @@ import * as utilities from "./utilities"; /** * Resource Manager folder resource schema. * - * > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - * * ## Example Usage */ export class ResourcemanagerFolder extends pulumi.CustomResource { diff --git a/sdk/nodejs/securityGroupRule.ts b/sdk/nodejs/securityGroupRule.ts index 8a04bb16..a13356a0 100644 --- a/sdk/nodejs/securityGroupRule.ts +++ b/sdk/nodejs/securityGroupRule.ts @@ -44,7 +44,7 @@ export class SecurityGroupRule extends pulumi.CustomResource { */ declare public readonly description: pulumi.Output; /** - * The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + * The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. */ declare public readonly direction: pulumi.Output; /** @@ -145,7 +145,7 @@ export interface SecurityGroupRuleState { */ description?: pulumi.Input; /** - * The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + * The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. */ direction?: pulumi.Input; /** @@ -195,7 +195,7 @@ export interface SecurityGroupRuleArgs { */ description?: pulumi.Input; /** - * The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + * The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. */ direction: pulumi.Input; /** diff --git a/sdk/nodejs/server.ts b/sdk/nodejs/server.ts index 691763bd..04bb6f79 100644 --- a/sdk/nodejs/server.ts +++ b/sdk/nodejs/server.ts @@ -70,7 +70,7 @@ export class Server extends pulumi.CustomResource { */ declare public /*out*/ readonly createdAt: pulumi.Output; /** - * The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + * The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. */ declare public readonly desiredStatus: pulumi.Output; /** @@ -198,7 +198,7 @@ export interface ServerState { */ createdAt?: pulumi.Input; /** - * The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + * The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. */ desiredStatus?: pulumi.Input; /** @@ -264,7 +264,7 @@ export interface ServerArgs { */ bootVolume?: pulumi.Input; /** - * The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + * The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. */ desiredStatus?: pulumi.Input; /** diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 291657dd..7776483f 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -32,6 +32,9 @@ "getImage.ts", "getImageV2.ts", "getKeyPair.ts", + "getKmsKey.ts", + "getKmsKeyring.ts", + "getKmsWrappingKey.ts", "getLoadbalancer.ts", "getLogmeCredential.ts", "getLogmeInstance.ts", @@ -89,6 +92,9 @@ "image.ts", "index.ts", "keyPair.ts", + "kmsKey.ts", + "kmsKeyring.ts", + "kmsWrappingKey.ts", "loadbalancer.ts", "loadbalancerObservabilityCredential.ts", "logmeCredential.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 775fd924..1f9fb11f 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -40,6 +40,10 @@ export interface CdnDistributionConfig { } export interface CdnDistributionConfigBackend { + /** + * A map of URLs to a list of countries where content is allowed. + */ + geofencing?: pulumi.Input<{[key: string]: pulumi.Input[]>}>; /** * The configured origin request headers for the backend */ @@ -49,7 +53,7 @@ export interface CdnDistributionConfigBackend { */ originUrl: pulumi.Input; /** - * The configured backend type. Supported values are: `http`. + * The configured backend type. Possible values are: `http`. */ type: pulumi.Input; } @@ -210,7 +214,7 @@ export interface LoadbalancerListener { */ port: pulumi.Input; /** - * Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + * Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. */ protocol: pulumi.Input; /** @@ -221,6 +225,14 @@ export interface LoadbalancerListener { * Reference target pool by target pool name. */ targetPool: pulumi.Input; + /** + * Options that are specific to the TCP protocol. + */ + tcp?: pulumi.Input; + /** + * Options that are specific to the UDP protocol. + */ + udp?: pulumi.Input; } export interface LoadbalancerListenerServerNameIndicator { @@ -230,13 +242,27 @@ export interface LoadbalancerListenerServerNameIndicator { name?: pulumi.Input; } +export interface LoadbalancerListenerTcp { + /** + * Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + */ + idleTimeout?: pulumi.Input; +} + +export interface LoadbalancerListenerUdp { + /** + * Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + */ + idleTimeout?: pulumi.Input; +} + export interface LoadbalancerNetwork { /** * Openstack network ID. */ networkId: pulumi.Input; /** - * The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + * The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. */ role: pulumi.Input; } @@ -471,7 +497,7 @@ export interface MongodbflexInstanceOptions { */ snapshotRetentionDays?: pulumi.Input; /** - * Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + * Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. */ type: pulumi.Input; /** @@ -1010,7 +1036,7 @@ export interface RoutingTableRouteDestination { export interface RoutingTableRouteNextHop { /** - * Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + * Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. */ type: pulumi.Input; /** @@ -1080,7 +1106,7 @@ export interface ServerBootVolume { */ sourceId: pulumi.Input; /** - * The type of the source. Supported values are: `volume`, `image`. + * The type of the source. Possible values are: `volume`, `image`. */ sourceType: pulumi.Input; } @@ -1302,7 +1328,7 @@ export interface VolumeSource { */ id: pulumi.Input; /** - * The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + * The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. */ type: pulumi.Input; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 7b2f9216..3f2e300e 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -40,6 +40,10 @@ export interface CdnDistributionConfig { } export interface CdnDistributionConfigBackend { + /** + * A map of URLs to a list of countries where content is allowed. + */ + geofencing?: {[key: string]: string[]}; /** * The configured origin request headers for the backend */ @@ -49,7 +53,7 @@ export interface CdnDistributionConfigBackend { */ originUrl: string; /** - * The configured backend type. Supported values are: `http`. + * The configured backend type. Possible values are: `http`. */ type: string; } @@ -104,6 +108,10 @@ export interface GetCdnDistributionConfig { } export interface GetCdnDistributionConfigBackend { + /** + * A map of URLs to a list of countries where content is allowed. + */ + geofencing: {[key: string]: string[]}; /** * The configured origin request headers for the backend */ @@ -113,7 +121,7 @@ export interface GetCdnDistributionConfigBackend { */ originUrl: string; /** - * The configured backend type. Supported values are: `http`. + * The configured backend type. Possible values are: `http`. */ type: string; } @@ -314,6 +322,14 @@ export interface GetLoadbalancerListener { * Reference target pool by target pool name. */ targetPool: string; + /** + * Options that are specific to the TCP protocol. + */ + tcp: outputs.GetLoadbalancerListenerTcp; + /** + * Options that are specific to the UDP protocol. + */ + udp: outputs.GetLoadbalancerListenerUdp; } export interface GetLoadbalancerListenerServerNameIndicator { @@ -323,6 +339,20 @@ export interface GetLoadbalancerListenerServerNameIndicator { name?: string; } +export interface GetLoadbalancerListenerTcp { + /** + * Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour. + */ + idleTimeout: string; +} + +export interface GetLoadbalancerListenerUdp { + /** + * Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. + */ + idleTimeout: string; +} + export interface GetLoadbalancerNetwork { /** * Openstack network ID. @@ -1104,7 +1134,7 @@ export interface GetRoutingTableRouteDestination { export interface GetRoutingTableRouteNextHop { /** - * Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + * Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. */ type: string; /** @@ -1153,7 +1183,7 @@ export interface GetRoutingTableRoutesRouteDestination { export interface GetRoutingTableRoutesRouteNextHop { /** - * Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + * Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. */ type: string; /** @@ -1508,7 +1538,7 @@ export interface GetVolumeSource { */ id: string; /** - * The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + * The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. */ type: string; } @@ -1586,7 +1616,7 @@ export interface LoadbalancerListener { */ port: number; /** - * Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + * Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. */ protocol: string; /** @@ -1597,6 +1627,14 @@ export interface LoadbalancerListener { * Reference target pool by target pool name. */ targetPool: string; + /** + * Options that are specific to the TCP protocol. + */ + tcp?: outputs.LoadbalancerListenerTcp; + /** + * Options that are specific to the UDP protocol. + */ + udp?: outputs.LoadbalancerListenerUdp; } export interface LoadbalancerListenerServerNameIndicator { @@ -1606,13 +1644,27 @@ export interface LoadbalancerListenerServerNameIndicator { name?: string; } +export interface LoadbalancerListenerTcp { + /** + * Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + */ + idleTimeout?: string; +} + +export interface LoadbalancerListenerUdp { + /** + * Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + */ + idleTimeout?: string; +} + export interface LoadbalancerNetwork { /** * Openstack network ID. */ networkId: string; /** - * The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + * The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. */ role: string; } @@ -1847,7 +1899,7 @@ export interface MongodbflexInstanceOptions { */ snapshotRetentionDays: number; /** - * Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + * Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. */ type: string; /** @@ -2386,7 +2438,7 @@ export interface RoutingTableRouteDestination { export interface RoutingTableRouteNextHop { /** - * Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + * Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. */ type: string; /** @@ -2456,7 +2508,7 @@ export interface ServerBootVolume { */ sourceId: string; /** - * The type of the source. Supported values are: `volume`, `image`. + * The type of the source. Possible values are: `volume`, `image`. */ sourceType: string; } @@ -2678,7 +2730,7 @@ export interface VolumeSource { */ id: string; /** - * The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + * The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. */ type: string; } diff --git a/sdk/python/README.md b/sdk/python/README.md index 9f352014..ee1187e8 100644 --- a/sdk/python/README.md +++ b/sdk/python/README.md @@ -65,6 +65,108 @@ To use from .NET, install using `dotnet add package`: dotnet add package Pulumi.stackit ``` +## Authentication + +To authenticate, you will need a [service account](https://docs.stackit.cloud/stackit/en/service-accounts-134415819.html). Create it in the [STACKIT Portal](https://portal.stackit.cloud/) and assign the necessary permissions to it, e.g. `project.owner`. + +When setting up authentication, the provider will always try to use the key flow first and search for credentials in several locations, following a specific order: + +1. Explicit configuration, e.g. by setting the field `serviceAccountKeyPath` in the provider block +2. Environment variable, e.g. by setting `STACKIT_SERVICE_ACCOUNT_KEY_PATH` or `STACKIT_SERVICE_ACCOUNT_KEY` +3. Credentials file + + The provider will check the credentials file located in the path defined by the `STACKIT_CREDENTIALS_PATH` env var, if specified, + or in `$HOME/.stackit/credentials.json` as a fallback. + The credentials file should be a JSON and each credential should be set using the name of the respective environment variable, as stated below in each flow. Example: + + ```json + { + "STACKIT_SERVICE_ACCOUNT_KEY_PATH": "path/to/sa_key.json" + } + ``` + +### Key flow + +The following instructions assume that you have created a service account and assigned the necessary permissions to it, e.g. `project.owner`. + +To use the key flow, you need to have a service account key, which must have an RSA key-pair attached to it. + +When creating the service account key, a new pair can be created automatically, which will be included in the service account key. + +**Optionally**, you can provide your own private key when creating the service account key, which will then require you to also provide it explicitly to the [STACKIT Pulumi Provider](https://github.com/stackitcloud/pulumi-stackit), additionally to the service account key. Check the STACKIT Knowledge Base for an [example of how to create your own key-pair](https://docs.stackit.cloud/stackit/en/usage-of-the-service-account-keys-in-stackit-175112464.html#UsageoftheserviceaccountkeysinSTACKIT-CreatinganRSAkey-pair). + +To configure the key flow, follow this steps: + +1. Create a service account key: + +- Use the [STACKIT Portal](https://portal.stackit.cloud/): go to the `Service Accounts` tab, choose a `Service Account` and go to `Service Account Keys` to create a key. For more details, see [Create a service account key](https://docs.stackit.cloud/stackit/en/create-a-service-account-key-175112456.html) + +2. Save the content of the service account key by copying it and saving it in a JSON file. + + The expected format of the service account key is a **JSON** with the following structure: + +```json +{ +"id": "uuid", +"publicKey": "public key", +"createdAt": "2023-08-24T14:15:22Z", +"validUntil": "2023-08-24T14:15:22Z", +"keyType": "USER_MANAGED", +"keyOrigin": "USER_PROVIDED", +"keyAlgorithm": "RSA_2048", +"active": true, +"credentials": { + "kid": "string", + "iss": "my-sa@sa.stackit.cloud", + "sub": "uuid", + "aud": "string", + (optional) "privateKey": "private key when generated by the SA service" +} +} +``` + +3. Configure the service account key for authentication in the provider by following one of the alternatives below: + + - setting the fields in the provider block: `serviceAccountKey` or `serviceAccountKeyPath` + - setting the environment variable: `STACKIT_SERVICE_ACCOUNT_KEY_PATH` or `STACKIT_SERVICE_ACCOUNT_KEY` + - ensure the set the service account key in `STACKIT_SERVICE_ACCOUNT_KEY` is correctly formatted. Use e.g. + `$ export STACKIT_SERVICE_ACCOUNT_KEY=$(cat ./service-account-key.json)` + - setting `STACKIT_SERVICE_ACCOUNT_KEY_PATH` in the credentials file (see above) + +> **Optionally, only if you have provided your own RSA key-pair when creating the service account key**, you also need to configure your private key (takes precedence over the one included in the service account key, if present). **The private key must be PEM encoded** and can be provided using one of the options below: +> +> - setting the field in the provider block: `privateKey` or `privateKeyPath` +> - setting the environment variable: `STACKIT_PRIVATE_KEY_PATH` or `STACKIT_PRIVATE_KEY` +> - setting `STACKIT_PRIVATE_KEY_PATH` in the credentials file (see above) + + +## Opting into Beta Resources + +To use beta resources in the STACKIT Pulumi provider, follow these steps: + +1. **Provider Configuration Option** + + Set the `enableBetaResources` option in the provider configuration. This is a boolean attribute that can be either `true` or `false`. This can be done either in code directly or via the `pulumi config` command which writes this to a Pulumi.yaml file (e.g. `pulumi config set stackit:experiments [\"routing-tables\"]`). + + The examples folder provides the information how this can be done in code. + +2. **Environment Variable** + + Set the `STACKIT_TF_ENABLE_BETA_RESOURCES` environment variable to `"true"` or `"false"`. Other values will be ignored and will produce a warning. + + ```sh + export STACKIT_TF_ENABLE_BETA_RESOURCES=true + ``` + +> **Note**: The environment variable takes precedence over the provider configuration option. This means that if the `STACKIT_TF_ENABLE_BETA_RESOURCES` environment variable is set to a valid value (`"true"` or `"false"`), it will override the `enableBetaResources` option specified in the provider configuration. + + +## Opting into Experiments + +Experiments are features that are even less mature and stable than Beta Resources. While there is some assumed stability in beta resources, will have to expect breaking changes while using experimental resources. Experimental Resources do not come with any support or warranty. + +To enable experiments set the experiments field in the provider definition via the same way as seen for beta resources. + ## Configuration The following configuration points are available for the `stackit` provider: diff --git a/sdk/python/pulumi_stackit/__init__.py b/sdk/python/pulumi_stackit/__init__.py index 3da4abae..64413a6a 100644 --- a/sdk/python/pulumi_stackit/__init__.py +++ b/sdk/python/pulumi_stackit/__init__.py @@ -23,6 +23,9 @@ from .get_image import * from .get_image_v2 import * from .get_key_pair import * +from .get_kms_key import * +from .get_kms_keyring import * +from .get_kms_wrapping_key import * from .get_loadbalancer import * from .get_logme_credential import * from .get_logme_instance import * @@ -79,6 +82,9 @@ from .git import * from .image import * from .key_pair import * +from .kms_key import * +from .kms_keyring import * +from .kms_wrapping_key import * from .loadbalancer import * from .loadbalancer_observability_credential import * from .logme_credential import * @@ -229,6 +235,30 @@ "stackit:index/keyPair:KeyPair": "KeyPair" } }, + { + "pkg": "stackit", + "mod": "index/kmsKey", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/kmsKey:KmsKey": "KmsKey" + } + }, + { + "pkg": "stackit", + "mod": "index/kmsKeyring", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/kmsKeyring:KmsKeyring": "KmsKeyring" + } + }, + { + "pkg": "stackit", + "mod": "index/kmsWrappingKey", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/kmsWrappingKey:KmsWrappingKey": "KmsWrappingKey" + } + }, { "pkg": "stackit", "mod": "index/loadbalancer", diff --git a/sdk/python/pulumi_stackit/_inputs.py b/sdk/python/pulumi_stackit/_inputs.py index d19a192d..bffe8f33 100644 --- a/sdk/python/pulumi_stackit/_inputs.py +++ b/sdk/python/pulumi_stackit/_inputs.py @@ -33,6 +33,10 @@ 'LoadbalancerListenerArgsDict', 'LoadbalancerListenerServerNameIndicatorArgs', 'LoadbalancerListenerServerNameIndicatorArgsDict', + 'LoadbalancerListenerTcpArgs', + 'LoadbalancerListenerTcpArgsDict', + 'LoadbalancerListenerUdpArgs', + 'LoadbalancerListenerUdpArgsDict', 'LoadbalancerNetworkArgs', 'LoadbalancerNetworkArgsDict', 'LoadbalancerOptionsArgs', @@ -319,7 +323,11 @@ class CdnDistributionConfigBackendArgsDict(TypedDict): """ type: pulumi.Input[_builtins.str] """ - The configured backend type. Supported values are: `http`. + The configured backend type. Possible values are: `http`. + """ + geofencing: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]]] + """ + A map of URLs to a list of countries where content is allowed. """ origin_request_headers: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] """ @@ -333,14 +341,18 @@ class CdnDistributionConfigBackendArgs: def __init__(__self__, *, origin_url: pulumi.Input[_builtins.str], type: pulumi.Input[_builtins.str], + geofencing: Optional[pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]]] = None, origin_request_headers: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None): """ :param pulumi.Input[_builtins.str] origin_url: The configured backend type for the distribution - :param pulumi.Input[_builtins.str] type: The configured backend type. Supported values are: `http`. + :param pulumi.Input[_builtins.str] type: The configured backend type. Possible values are: `http`. + :param pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]] geofencing: A map of URLs to a list of countries where content is allowed. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] origin_request_headers: The configured origin request headers for the backend """ pulumi.set(__self__, "origin_url", origin_url) pulumi.set(__self__, "type", type) + if geofencing is not None: + pulumi.set(__self__, "geofencing", geofencing) if origin_request_headers is not None: pulumi.set(__self__, "origin_request_headers", origin_request_headers) @@ -360,7 +372,7 @@ def origin_url(self, value: pulumi.Input[_builtins.str]): @pulumi.getter def type(self) -> pulumi.Input[_builtins.str]: """ - The configured backend type. Supported values are: `http`. + The configured backend type. Possible values are: `http`. """ return pulumi.get(self, "type") @@ -368,6 +380,18 @@ def type(self) -> pulumi.Input[_builtins.str]: def type(self, value: pulumi.Input[_builtins.str]): pulumi.set(self, "type", value) + @_builtins.property + @pulumi.getter + def geofencing(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]]]: + """ + A map of URLs to a list of countries where content is allowed. + """ + return pulumi.get(self, "geofencing") + + @geofencing.setter + def geofencing(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]]]): + pulumi.set(self, "geofencing", value) + @_builtins.property @pulumi.getter(name="originRequestHeaders") def origin_request_headers(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]: @@ -828,7 +852,7 @@ class LoadbalancerListenerArgsDict(TypedDict): """ protocol: pulumi.Input[_builtins.str] """ - Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. """ target_pool: pulumi.Input[_builtins.str] """ @@ -839,6 +863,14 @@ class LoadbalancerListenerArgsDict(TypedDict): """ A list of domain names to match in order to pass TLS traffic to the target pool in the current listener """ + tcp: NotRequired[pulumi.Input['LoadbalancerListenerTcpArgsDict']] + """ + Options that are specific to the TCP protocol. + """ + udp: NotRequired[pulumi.Input['LoadbalancerListenerUdpArgsDict']] + """ + Options that are specific to the UDP protocol. + """ elif False: LoadbalancerListenerArgsDict: TypeAlias = Mapping[str, Any] @@ -849,12 +881,16 @@ def __init__(__self__, *, protocol: pulumi.Input[_builtins.str], target_pool: pulumi.Input[_builtins.str], display_name: Optional[pulumi.Input[_builtins.str]] = None, - server_name_indicators: Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerListenerServerNameIndicatorArgs']]]] = None): + server_name_indicators: Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerListenerServerNameIndicatorArgs']]]] = None, + tcp: Optional[pulumi.Input['LoadbalancerListenerTcpArgs']] = None, + udp: Optional[pulumi.Input['LoadbalancerListenerUdpArgs']] = None): """ :param pulumi.Input[_builtins.int] port: Port number where we listen for traffic. - :param pulumi.Input[_builtins.str] protocol: Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + :param pulumi.Input[_builtins.str] protocol: Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. :param pulumi.Input[_builtins.str] target_pool: Reference target pool by target pool name. :param pulumi.Input[Sequence[pulumi.Input['LoadbalancerListenerServerNameIndicatorArgs']]] server_name_indicators: A list of domain names to match in order to pass TLS traffic to the target pool in the current listener + :param pulumi.Input['LoadbalancerListenerTcpArgs'] tcp: Options that are specific to the TCP protocol. + :param pulumi.Input['LoadbalancerListenerUdpArgs'] udp: Options that are specific to the UDP protocol. """ pulumi.set(__self__, "port", port) pulumi.set(__self__, "protocol", protocol) @@ -863,6 +899,10 @@ def __init__(__self__, *, pulumi.set(__self__, "display_name", display_name) if server_name_indicators is not None: pulumi.set(__self__, "server_name_indicators", server_name_indicators) + if tcp is not None: + pulumi.set(__self__, "tcp", tcp) + if udp is not None: + pulumi.set(__self__, "udp", udp) @_builtins.property @pulumi.getter @@ -880,7 +920,7 @@ def port(self, value: pulumi.Input[_builtins.int]): @pulumi.getter def protocol(self) -> pulumi.Input[_builtins.str]: """ - Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. """ return pulumi.get(self, "protocol") @@ -921,6 +961,30 @@ def server_name_indicators(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[ def server_name_indicators(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadbalancerListenerServerNameIndicatorArgs']]]]): pulumi.set(self, "server_name_indicators", value) + @_builtins.property + @pulumi.getter + def tcp(self) -> Optional[pulumi.Input['LoadbalancerListenerTcpArgs']]: + """ + Options that are specific to the TCP protocol. + """ + return pulumi.get(self, "tcp") + + @tcp.setter + def tcp(self, value: Optional[pulumi.Input['LoadbalancerListenerTcpArgs']]): + pulumi.set(self, "tcp", value) + + @_builtins.property + @pulumi.getter + def udp(self) -> Optional[pulumi.Input['LoadbalancerListenerUdpArgs']]: + """ + Options that are specific to the UDP protocol. + """ + return pulumi.get(self, "udp") + + @udp.setter + def udp(self, value: Optional[pulumi.Input['LoadbalancerListenerUdpArgs']]): + pulumi.set(self, "udp", value) + if not MYPY: class LoadbalancerListenerServerNameIndicatorArgsDict(TypedDict): @@ -954,6 +1018,70 @@ def name(self, value: Optional[pulumi.Input[_builtins.str]]): pulumi.set(self, "name", value) +if not MYPY: + class LoadbalancerListenerTcpArgsDict(TypedDict): + idle_timeout: NotRequired[pulumi.Input[_builtins.str]] + """ + Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + """ +elif False: + LoadbalancerListenerTcpArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LoadbalancerListenerTcpArgs: + def __init__(__self__, *, + idle_timeout: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] idle_timeout: Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + """ + if idle_timeout is not None: + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + """ + return pulumi.get(self, "idle_timeout") + + @idle_timeout.setter + def idle_timeout(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "idle_timeout", value) + + +if not MYPY: + class LoadbalancerListenerUdpArgsDict(TypedDict): + idle_timeout: NotRequired[pulumi.Input[_builtins.str]] + """ + Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + """ +elif False: + LoadbalancerListenerUdpArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LoadbalancerListenerUdpArgs: + def __init__(__self__, *, + idle_timeout: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] idle_timeout: Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + """ + if idle_timeout is not None: + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + """ + return pulumi.get(self, "idle_timeout") + + @idle_timeout.setter + def idle_timeout(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "idle_timeout", value) + + if not MYPY: class LoadbalancerNetworkArgsDict(TypedDict): network_id: pulumi.Input[_builtins.str] @@ -962,7 +1090,7 @@ class LoadbalancerNetworkArgsDict(TypedDict): """ role: pulumi.Input[_builtins.str] """ - The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. """ elif False: LoadbalancerNetworkArgsDict: TypeAlias = Mapping[str, Any] @@ -974,7 +1102,7 @@ def __init__(__self__, *, role: pulumi.Input[_builtins.str]): """ :param pulumi.Input[_builtins.str] network_id: Openstack network ID. - :param pulumi.Input[_builtins.str] role: The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + :param pulumi.Input[_builtins.str] role: The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. """ pulumi.set(__self__, "network_id", network_id) pulumi.set(__self__, "role", role) @@ -995,7 +1123,7 @@ def network_id(self, value: pulumi.Input[_builtins.str]): @pulumi.getter def role(self) -> pulumi.Input[_builtins.str]: """ - The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. """ return pulumi.get(self, "role") @@ -2150,7 +2278,7 @@ class MongodbflexInstanceOptionsArgsDict(TypedDict): """ type: pulumi.Input[_builtins.str] """ - Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. """ daily_snapshot_retention_days: NotRequired[pulumi.Input[_builtins.int]] """ @@ -2182,7 +2310,7 @@ def __init__(__self__, *, weekly_snapshot_retention_weeks: Optional[pulumi.Input[_builtins.int]] = None): """ :param pulumi.Input[_builtins.int] point_in_time_window_hours: The number of hours back in time the point-in-time recovery feature will be able to recover. - :param pulumi.Input[_builtins.str] type: Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + :param pulumi.Input[_builtins.str] type: Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. :param pulumi.Input[_builtins.int] daily_snapshot_retention_days: The number of days that daily backups will be retained. :param pulumi.Input[_builtins.int] monthly_snapshot_retention_months: The number of months that monthly backups will be retained. :param pulumi.Input[_builtins.int] snapshot_retention_days: The number of days that continuous backups (controlled via the `backup_schedule`) will be retained. @@ -2215,7 +2343,7 @@ def point_in_time_window_hours(self, value: pulumi.Input[_builtins.int]): @pulumi.getter def type(self) -> pulumi.Input[_builtins.str]: """ - Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. """ return pulumi.get(self, "type") @@ -4886,7 +5014,7 @@ def value(self, value: pulumi.Input[_builtins.str]): class RoutingTableRouteNextHopArgsDict(TypedDict): type: pulumi.Input[_builtins.str] """ - Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. """ value: NotRequired[pulumi.Input[_builtins.str]] """ @@ -4901,7 +5029,7 @@ def __init__(__self__, *, type: pulumi.Input[_builtins.str], value: Optional[pulumi.Input[_builtins.str]] = None): """ - :param pulumi.Input[_builtins.str] type: Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + :param pulumi.Input[_builtins.str] type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. :param pulumi.Input[_builtins.str] value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. """ pulumi.set(__self__, "type", type) @@ -4912,7 +5040,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[_builtins.str]: """ - Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. """ return pulumi.get(self, "type") @@ -5140,7 +5268,7 @@ class ServerBootVolumeArgsDict(TypedDict): """ source_type: pulumi.Input[_builtins.str] """ - The type of the source. Supported values are: `volume`, `image`. + The type of the source. Possible values are: `volume`, `image`. """ delete_on_termination: NotRequired[pulumi.Input[_builtins.bool]] """ @@ -5172,7 +5300,7 @@ def __init__(__self__, *, size: Optional[pulumi.Input[_builtins.int]] = None): """ :param pulumi.Input[_builtins.str] source_id: The ID of the source, either image ID or volume ID - :param pulumi.Input[_builtins.str] source_type: The type of the source. Supported values are: `volume`, `image`. + :param pulumi.Input[_builtins.str] source_type: The type of the source. Possible values are: `volume`, `image`. :param pulumi.Input[_builtins.bool] delete_on_termination: Delete the volume during the termination of the server. Only allowed when `source_type` is `image`. :param pulumi.Input[_builtins.str] id: The ID of the boot volume :param pulumi.Input[_builtins.str] performance_class: The performance class of the server. @@ -5205,7 +5333,7 @@ def source_id(self, value: pulumi.Input[_builtins.str]): @pulumi.getter(name="sourceType") def source_type(self) -> pulumi.Input[_builtins.str]: """ - The type of the source. Supported values are: `volume`, `image`. + The type of the source. Possible values are: `volume`, `image`. """ return pulumi.get(self, "source_type") @@ -6314,7 +6442,7 @@ class VolumeSourceArgsDict(TypedDict): """ type: pulumi.Input[_builtins.str] """ - The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ elif False: VolumeSourceArgsDict: TypeAlias = Mapping[str, Any] @@ -6326,7 +6454,7 @@ def __init__(__self__, *, type: pulumi.Input[_builtins.str]): """ :param pulumi.Input[_builtins.str] id: The ID of the source, e.g. image ID - :param pulumi.Input[_builtins.str] type: The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + :param pulumi.Input[_builtins.str] type: The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ pulumi.set(__self__, "id", id) pulumi.set(__self__, "type", type) @@ -6347,7 +6475,7 @@ def id(self, value: pulumi.Input[_builtins.str]): @pulumi.getter def type(self) -> pulumi.Input[_builtins.str]: """ - The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_stackit/config/__init__.pyi b/sdk/python/pulumi_stackit/config/__init__.pyi index c740be5e..a46108aa 100644 --- a/sdk/python/pulumi_stackit/config/__init__.pyi +++ b/sdk/python/pulumi_stackit/config/__init__.pyi @@ -59,6 +59,11 @@ iaasCustomEndpoint: Optional[str] Custom endpoint for the IaaS service """ +kmsCustomEndpoint: Optional[str] +""" +Custom endpoint for the KMS service +""" + loadbalancerCustomEndpoint: Optional[str] """ Custom endpoint for the Load Balancer service diff --git a/sdk/python/pulumi_stackit/config/vars.py b/sdk/python/pulumi_stackit/config/vars.py index 6fce86e9..e77050a2 100644 --- a/sdk/python/pulumi_stackit/config/vars.py +++ b/sdk/python/pulumi_stackit/config/vars.py @@ -83,6 +83,13 @@ def iaas_custom_endpoint(self) -> Optional[str]: """ return __config__.get('iaasCustomEndpoint') + @_builtins.property + def kms_custom_endpoint(self) -> Optional[str]: + """ + Custom endpoint for the KMS service + """ + return __config__.get('kmsCustomEndpoint') + @_builtins.property def loadbalancer_custom_endpoint(self) -> Optional[str]: """ diff --git a/sdk/python/pulumi_stackit/dns_zone.py b/sdk/python/pulumi_stackit/dns_zone.py index e93b4b1b..16c87cd5 100644 --- a/sdk/python/pulumi_stackit/dns_zone.py +++ b/sdk/python/pulumi_stackit/dns_zone.py @@ -49,7 +49,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] primaries: Primary name server for secondary zone. E.g. ["1.2.3.4"] :param pulumi.Input[_builtins.int] refresh_time: Refresh time. E.g. 3600 :param pulumi.Input[_builtins.int] retry_time: Retry time. E.g. 600 - :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. """ pulumi.set(__self__, "dns_name", dns_name) pulumi.set(__self__, "project_id", project_id) @@ -249,7 +249,7 @@ def retry_time(self, value: Optional[pulumi.Input[_builtins.int]]): @pulumi.getter def type(self) -> Optional[pulumi.Input[_builtins.str]]: """ - Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. """ return pulumi.get(self, "type") @@ -301,7 +301,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.int] retry_time: Retry time. E.g. 600 :param pulumi.Input[_builtins.int] serial_number: Serial number. E.g. `2022111400`. :param pulumi.Input[_builtins.str] state: Zone state. E.g. `CREATE_SUCCEEDED`. - :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. :param pulumi.Input[_builtins.str] visibility: Visibility of the zone. E.g. `public`. :param pulumi.Input[_builtins.str] zone_id: The zone ID. """ @@ -565,7 +565,7 @@ def state(self, value: Optional[pulumi.Input[_builtins.str]]): @pulumi.getter def type(self) -> Optional[pulumi.Input[_builtins.str]]: """ - Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. """ return pulumi.get(self, "type") @@ -640,7 +640,7 @@ def __init__(__self__, :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the dns zone is associated. :param pulumi.Input[_builtins.int] refresh_time: Refresh time. E.g. 3600 :param pulumi.Input[_builtins.int] retry_time: Retry time. E.g. 600 - :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. """ ... @overload @@ -772,7 +772,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.int] retry_time: Retry time. E.g. 600 :param pulumi.Input[_builtins.int] serial_number: Serial number. E.g. `2022111400`. :param pulumi.Input[_builtins.str] state: Zone state. E.g. `CREATE_SUCCEEDED`. - :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + :param pulumi.Input[_builtins.str] type: Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. :param pulumi.Input[_builtins.str] visibility: Visibility of the zone. E.g. `public`. :param pulumi.Input[_builtins.str] zone_id: The zone ID. """ @@ -948,7 +948,7 @@ def state(self) -> pulumi.Output[_builtins.str]: @pulumi.getter def type(self) -> pulumi.Output[_builtins.str]: """ - Zone type. Defaults to `primary`. Supported values are: `primary`, `secondary`. + Zone type. Defaults to `primary`. Possible values are: `primary`, `secondary`. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_stackit/get_kms_key.py b/sdk/python/pulumi_stackit/get_kms_key.py new file mode 100644 index 00000000..35bb9dab --- /dev/null +++ b/sdk/python/pulumi_stackit/get_kms_key.py @@ -0,0 +1,253 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetKmsKeyResult', + 'AwaitableGetKmsKeyResult', + 'get_kms_key', + 'get_kms_key_output', +] + +@pulumi.output_type +class GetKmsKeyResult: + """ + A collection of values returned by getKmsKey. + """ + def __init__(__self__, access_scope=None, algorithm=None, description=None, display_name=None, id=None, import_only=None, key_id=None, keyring_id=None, project_id=None, protection=None, purpose=None, region=None): + if access_scope and not isinstance(access_scope, str): + raise TypeError("Expected argument 'access_scope' to be a str") + pulumi.set(__self__, "access_scope", access_scope) + if algorithm and not isinstance(algorithm, str): + raise TypeError("Expected argument 'algorithm' to be a str") + pulumi.set(__self__, "algorithm", algorithm) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if import_only and not isinstance(import_only, bool): + raise TypeError("Expected argument 'import_only' to be a bool") + pulumi.set(__self__, "import_only", import_only) + if key_id and not isinstance(key_id, str): + raise TypeError("Expected argument 'key_id' to be a str") + pulumi.set(__self__, "key_id", key_id) + if keyring_id and not isinstance(keyring_id, str): + raise TypeError("Expected argument 'keyring_id' to be a str") + pulumi.set(__self__, "keyring_id", keyring_id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if protection and not isinstance(protection, str): + raise TypeError("Expected argument 'protection' to be a str") + pulumi.set(__self__, "protection", protection) + if purpose and not isinstance(purpose, str): + raise TypeError("Expected argument 'purpose' to be a str") + pulumi.set(__self__, "purpose", purpose) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> _builtins.str: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @_builtins.property + @pulumi.getter + def algorithm(self) -> _builtins.str: + """ + The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + """ + return pulumi.get(self, "algorithm") + + @_builtins.property + @pulumi.getter + def description(self) -> _builtins.str: + """ + A user chosen description to distinguish multiple keys + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> _builtins.str: + """ + The display name to distinguish multiple keys + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter(name="importOnly") + def import_only(self) -> _builtins.bool: + """ + States whether versions can be created or only imported. + """ + return pulumi.get(self, "import_only") + + @_builtins.property + @pulumi.getter(name="keyId") + def key_id(self) -> _builtins.str: + """ + The ID of the key + """ + return pulumi.get(self, "key_id") + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> _builtins.str: + """ + The ID of the associated key ring + """ + return pulumi.get(self, "keyring_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> _builtins.str: + """ + STACKIT project ID to which the key is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def protection(self) -> _builtins.str: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @_builtins.property + @pulumi.getter + def purpose(self) -> _builtins.str: + """ + The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + """ + return pulumi.get(self, "purpose") + + @_builtins.property + @pulumi.getter + def region(self) -> _builtins.str: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + +class AwaitableGetKmsKeyResult(GetKmsKeyResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetKmsKeyResult( + access_scope=self.access_scope, + algorithm=self.algorithm, + description=self.description, + display_name=self.display_name, + id=self.id, + import_only=self.import_only, + key_id=self.key_id, + keyring_id=self.keyring_id, + project_id=self.project_id, + protection=self.protection, + purpose=self.purpose, + region=self.region) + + +def get_kms_key(key_id: Optional[_builtins.str] = None, + keyring_id: Optional[_builtins.str] = None, + project_id: Optional[_builtins.str] = None, + region: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKmsKeyResult: + """ + KMS Key datasource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + + ## Example Usage + + + :param _builtins.str key_id: The ID of the key + :param _builtins.str keyring_id: The ID of the associated key ring + :param _builtins.str project_id: STACKIT project ID to which the key is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['keyId'] = key_id + __args__['keyringId'] = keyring_id + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getKmsKey:getKmsKey', __args__, opts=opts, typ=GetKmsKeyResult).value + + return AwaitableGetKmsKeyResult( + access_scope=pulumi.get(__ret__, 'access_scope'), + algorithm=pulumi.get(__ret__, 'algorithm'), + description=pulumi.get(__ret__, 'description'), + display_name=pulumi.get(__ret__, 'display_name'), + id=pulumi.get(__ret__, 'id'), + import_only=pulumi.get(__ret__, 'import_only'), + key_id=pulumi.get(__ret__, 'key_id'), + keyring_id=pulumi.get(__ret__, 'keyring_id'), + project_id=pulumi.get(__ret__, 'project_id'), + protection=pulumi.get(__ret__, 'protection'), + purpose=pulumi.get(__ret__, 'purpose'), + region=pulumi.get(__ret__, 'region')) +def get_kms_key_output(key_id: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetKmsKeyResult]: + """ + KMS Key datasource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + + ## Example Usage + + + :param _builtins.str key_id: The ID of the key + :param _builtins.str keyring_id: The ID of the associated key ring + :param _builtins.str project_id: STACKIT project ID to which the key is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['keyId'] = key_id + __args__['keyringId'] = keyring_id + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getKmsKey:getKmsKey', __args__, opts=opts, typ=GetKmsKeyResult) + return __ret__.apply(lambda __response__: GetKmsKeyResult( + access_scope=pulumi.get(__response__, 'access_scope'), + algorithm=pulumi.get(__response__, 'algorithm'), + description=pulumi.get(__response__, 'description'), + display_name=pulumi.get(__response__, 'display_name'), + id=pulumi.get(__response__, 'id'), + import_only=pulumi.get(__response__, 'import_only'), + key_id=pulumi.get(__response__, 'key_id'), + keyring_id=pulumi.get(__response__, 'keyring_id'), + project_id=pulumi.get(__response__, 'project_id'), + protection=pulumi.get(__response__, 'protection'), + purpose=pulumi.get(__response__, 'purpose'), + region=pulumi.get(__response__, 'region'))) diff --git a/sdk/python/pulumi_stackit/get_kms_keyring.py b/sdk/python/pulumi_stackit/get_kms_keyring.py new file mode 100644 index 00000000..e54b0ddf --- /dev/null +++ b/sdk/python/pulumi_stackit/get_kms_keyring.py @@ -0,0 +1,163 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetKmsKeyringResult', + 'AwaitableGetKmsKeyringResult', + 'get_kms_keyring', + 'get_kms_keyring_output', +] + +@pulumi.output_type +class GetKmsKeyringResult: + """ + A collection of values returned by getKmsKeyring. + """ + def __init__(__self__, description=None, display_name=None, id=None, keyring_id=None, project_id=None, region=None): + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if keyring_id and not isinstance(keyring_id, str): + raise TypeError("Expected argument 'keyring_id' to be a str") + pulumi.set(__self__, "keyring_id", keyring_id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter + def description(self) -> _builtins.str: + """ + A user chosen description to distinguish multiple keyrings. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> _builtins.str: + """ + The display name to distinguish multiple keyrings. + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> _builtins.str: + """ + An auto generated unique id which identifies the keyring. + """ + return pulumi.get(self, "keyring_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> _builtins.str: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> _builtins.str: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + +class AwaitableGetKmsKeyringResult(GetKmsKeyringResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetKmsKeyringResult( + description=self.description, + display_name=self.display_name, + id=self.id, + keyring_id=self.keyring_id, + project_id=self.project_id, + region=self.region) + + +def get_kms_keyring(keyring_id: Optional[_builtins.str] = None, + project_id: Optional[_builtins.str] = None, + region: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKmsKeyringResult: + """ + KMS Keyring datasource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + + ## Example Usage + + + :param _builtins.str keyring_id: An auto generated unique id which identifies the keyring. + :param _builtins.str project_id: STACKIT project ID to which the keyring is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['keyringId'] = keyring_id + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getKmsKeyring:getKmsKeyring', __args__, opts=opts, typ=GetKmsKeyringResult).value + + return AwaitableGetKmsKeyringResult( + description=pulumi.get(__ret__, 'description'), + display_name=pulumi.get(__ret__, 'display_name'), + id=pulumi.get(__ret__, 'id'), + keyring_id=pulumi.get(__ret__, 'keyring_id'), + project_id=pulumi.get(__ret__, 'project_id'), + region=pulumi.get(__ret__, 'region')) +def get_kms_keyring_output(keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetKmsKeyringResult]: + """ + KMS Keyring datasource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + + ## Example Usage + + + :param _builtins.str keyring_id: An auto generated unique id which identifies the keyring. + :param _builtins.str project_id: STACKIT project ID to which the keyring is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['keyringId'] = keyring_id + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getKmsKeyring:getKmsKeyring', __args__, opts=opts, typ=GetKmsKeyringResult) + return __ret__.apply(lambda __response__: GetKmsKeyringResult( + description=pulumi.get(__response__, 'description'), + display_name=pulumi.get(__response__, 'display_name'), + id=pulumi.get(__response__, 'id'), + keyring_id=pulumi.get(__response__, 'keyring_id'), + project_id=pulumi.get(__response__, 'project_id'), + region=pulumi.get(__response__, 'region'))) diff --git a/sdk/python/pulumi_stackit/get_kms_wrapping_key.py b/sdk/python/pulumi_stackit/get_kms_wrapping_key.py new file mode 100644 index 00000000..70010b92 --- /dev/null +++ b/sdk/python/pulumi_stackit/get_kms_wrapping_key.py @@ -0,0 +1,281 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetKmsWrappingKeyResult', + 'AwaitableGetKmsWrappingKeyResult', + 'get_kms_wrapping_key', + 'get_kms_wrapping_key_output', +] + +@pulumi.output_type +class GetKmsWrappingKeyResult: + """ + A collection of values returned by getKmsWrappingKey. + """ + def __init__(__self__, access_scope=None, algorithm=None, created_at=None, description=None, display_name=None, expires_at=None, id=None, keyring_id=None, project_id=None, protection=None, public_key=None, purpose=None, region=None, wrapping_key_id=None): + if access_scope and not isinstance(access_scope, str): + raise TypeError("Expected argument 'access_scope' to be a str") + pulumi.set(__self__, "access_scope", access_scope) + if algorithm and not isinstance(algorithm, str): + raise TypeError("Expected argument 'algorithm' to be a str") + pulumi.set(__self__, "algorithm", algorithm) + if created_at and not isinstance(created_at, str): + raise TypeError("Expected argument 'created_at' to be a str") + pulumi.set(__self__, "created_at", created_at) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if expires_at and not isinstance(expires_at, str): + raise TypeError("Expected argument 'expires_at' to be a str") + pulumi.set(__self__, "expires_at", expires_at) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if keyring_id and not isinstance(keyring_id, str): + raise TypeError("Expected argument 'keyring_id' to be a str") + pulumi.set(__self__, "keyring_id", keyring_id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if protection and not isinstance(protection, str): + raise TypeError("Expected argument 'protection' to be a str") + pulumi.set(__self__, "protection", protection) + if public_key and not isinstance(public_key, str): + raise TypeError("Expected argument 'public_key' to be a str") + pulumi.set(__self__, "public_key", public_key) + if purpose and not isinstance(purpose, str): + raise TypeError("Expected argument 'purpose' to be a str") + pulumi.set(__self__, "purpose", purpose) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + if wrapping_key_id and not isinstance(wrapping_key_id, str): + raise TypeError("Expected argument 'wrapping_key_id' to be a str") + pulumi.set(__self__, "wrapping_key_id", wrapping_key_id) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> _builtins.str: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @_builtins.property + @pulumi.getter + def algorithm(self) -> _builtins.str: + """ + The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + """ + return pulumi.get(self, "algorithm") + + @_builtins.property + @pulumi.getter(name="createdAt") + def created_at(self) -> _builtins.str: + """ + The date and time the creation of the wrapping key was triggered. + """ + return pulumi.get(self, "created_at") + + @_builtins.property + @pulumi.getter + def description(self) -> _builtins.str: + """ + A user chosen description to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> _builtins.str: + """ + The display name to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> _builtins.str: + """ + The date and time the wrapping key will expire. + """ + return pulumi.get(self, "expires_at") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> _builtins.str: + """ + The ID of the associated keyring + """ + return pulumi.get(self, "keyring_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> _builtins.str: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def protection(self) -> _builtins.str: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @_builtins.property + @pulumi.getter(name="publicKey") + def public_key(self) -> _builtins.str: + """ + The public key of the wrapping key. + """ + return pulumi.get(self, "public_key") + + @_builtins.property + @pulumi.getter + def purpose(self) -> _builtins.str: + """ + The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + """ + return pulumi.get(self, "purpose") + + @_builtins.property + @pulumi.getter + def region(self) -> _builtins.str: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="wrappingKeyId") + def wrapping_key_id(self) -> _builtins.str: + """ + The ID of the wrapping key + """ + return pulumi.get(self, "wrapping_key_id") + + +class AwaitableGetKmsWrappingKeyResult(GetKmsWrappingKeyResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetKmsWrappingKeyResult( + access_scope=self.access_scope, + algorithm=self.algorithm, + created_at=self.created_at, + description=self.description, + display_name=self.display_name, + expires_at=self.expires_at, + id=self.id, + keyring_id=self.keyring_id, + project_id=self.project_id, + protection=self.protection, + public_key=self.public_key, + purpose=self.purpose, + region=self.region, + wrapping_key_id=self.wrapping_key_id) + + +def get_kms_wrapping_key(keyring_id: Optional[_builtins.str] = None, + project_id: Optional[_builtins.str] = None, + region: Optional[_builtins.str] = None, + wrapping_key_id: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKmsWrappingKeyResult: + """ + KMS wrapping key datasource schema. + + ## Example Usage + + + :param _builtins.str keyring_id: The ID of the associated keyring + :param _builtins.str project_id: STACKIT project ID to which the keyring is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + :param _builtins.str wrapping_key_id: The ID of the wrapping key + """ + __args__ = dict() + __args__['keyringId'] = keyring_id + __args__['projectId'] = project_id + __args__['region'] = region + __args__['wrappingKeyId'] = wrapping_key_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getKmsWrappingKey:getKmsWrappingKey', __args__, opts=opts, typ=GetKmsWrappingKeyResult).value + + return AwaitableGetKmsWrappingKeyResult( + access_scope=pulumi.get(__ret__, 'access_scope'), + algorithm=pulumi.get(__ret__, 'algorithm'), + created_at=pulumi.get(__ret__, 'created_at'), + description=pulumi.get(__ret__, 'description'), + display_name=pulumi.get(__ret__, 'display_name'), + expires_at=pulumi.get(__ret__, 'expires_at'), + id=pulumi.get(__ret__, 'id'), + keyring_id=pulumi.get(__ret__, 'keyring_id'), + project_id=pulumi.get(__ret__, 'project_id'), + protection=pulumi.get(__ret__, 'protection'), + public_key=pulumi.get(__ret__, 'public_key'), + purpose=pulumi.get(__ret__, 'purpose'), + region=pulumi.get(__ret__, 'region'), + wrapping_key_id=pulumi.get(__ret__, 'wrapping_key_id')) +def get_kms_wrapping_key_output(keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + wrapping_key_id: Optional[pulumi.Input[_builtins.str]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetKmsWrappingKeyResult]: + """ + KMS wrapping key datasource schema. + + ## Example Usage + + + :param _builtins.str keyring_id: The ID of the associated keyring + :param _builtins.str project_id: STACKIT project ID to which the keyring is associated. + :param _builtins.str region: The resource region. If not defined, the provider region is used. + :param _builtins.str wrapping_key_id: The ID of the wrapping key + """ + __args__ = dict() + __args__['keyringId'] = keyring_id + __args__['projectId'] = project_id + __args__['region'] = region + __args__['wrappingKeyId'] = wrapping_key_id + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getKmsWrappingKey:getKmsWrappingKey', __args__, opts=opts, typ=GetKmsWrappingKeyResult) + return __ret__.apply(lambda __response__: GetKmsWrappingKeyResult( + access_scope=pulumi.get(__response__, 'access_scope'), + algorithm=pulumi.get(__response__, 'algorithm'), + created_at=pulumi.get(__response__, 'created_at'), + description=pulumi.get(__response__, 'description'), + display_name=pulumi.get(__response__, 'display_name'), + expires_at=pulumi.get(__response__, 'expires_at'), + id=pulumi.get(__response__, 'id'), + keyring_id=pulumi.get(__response__, 'keyring_id'), + project_id=pulumi.get(__response__, 'project_id'), + protection=pulumi.get(__response__, 'protection'), + public_key=pulumi.get(__response__, 'public_key'), + purpose=pulumi.get(__response__, 'purpose'), + region=pulumi.get(__response__, 'region'), + wrapping_key_id=pulumi.get(__response__, 'wrapping_key_id'))) diff --git a/sdk/python/pulumi_stackit/get_network_interface.py b/sdk/python/pulumi_stackit/get_network_interface.py index 78372269..e0ce2d70 100644 --- a/sdk/python/pulumi_stackit/get_network_interface.py +++ b/sdk/python/pulumi_stackit/get_network_interface.py @@ -164,7 +164,7 @@ def security_group_ids(self) -> Sequence[_builtins.str]: @pulumi.getter def type(self) -> _builtins.str: """ - Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_stackit/get_observability_instance.py b/sdk/python/pulumi_stackit/get_observability_instance.py index f139d88e..97279d4e 100644 --- a/sdk/python/pulumi_stackit/get_observability_instance.py +++ b/sdk/python/pulumi_stackit/get_observability_instance.py @@ -27,7 +27,7 @@ class GetObservabilityInstanceResult: """ A collection of values returned by getObservabilityInstance. """ - def __init__(__self__, acls=None, alert_config=None, alerting_url=None, dashboard_url=None, grafana_initial_admin_password=None, grafana_initial_admin_user=None, grafana_public_read_access=None, grafana_url=None, id=None, instance_id=None, is_updatable=None, jaeger_traces_url=None, jaeger_ui_url=None, logs_push_url=None, logs_url=None, metrics_push_url=None, metrics_retention_days=None, metrics_retention_days1h_downsampling=None, metrics_retention_days5m_downsampling=None, metrics_url=None, name=None, otlp_traces_url=None, parameters=None, plan_id=None, plan_name=None, project_id=None, targets_url=None, zipkin_spans_url=None): + def __init__(__self__, acls=None, alert_config=None, alerting_url=None, dashboard_url=None, grafana_initial_admin_password=None, grafana_initial_admin_user=None, grafana_public_read_access=None, grafana_url=None, id=None, instance_id=None, is_updatable=None, jaeger_traces_url=None, jaeger_ui_url=None, logs_push_url=None, logs_retention_days=None, logs_url=None, metrics_push_url=None, metrics_retention_days=None, metrics_retention_days1h_downsampling=None, metrics_retention_days5m_downsampling=None, metrics_url=None, name=None, otlp_traces_url=None, parameters=None, plan_id=None, plan_name=None, project_id=None, targets_url=None, traces_retention_days=None, zipkin_spans_url=None): if acls and not isinstance(acls, list): raise TypeError("Expected argument 'acls' to be a list") pulumi.set(__self__, "acls", acls) @@ -70,6 +70,9 @@ def __init__(__self__, acls=None, alert_config=None, alerting_url=None, dashboar if logs_push_url and not isinstance(logs_push_url, str): raise TypeError("Expected argument 'logs_push_url' to be a str") pulumi.set(__self__, "logs_push_url", logs_push_url) + if logs_retention_days and not isinstance(logs_retention_days, int): + raise TypeError("Expected argument 'logs_retention_days' to be a int") + pulumi.set(__self__, "logs_retention_days", logs_retention_days) if logs_url and not isinstance(logs_url, str): raise TypeError("Expected argument 'logs_url' to be a str") pulumi.set(__self__, "logs_url", logs_url) @@ -109,6 +112,9 @@ def __init__(__self__, acls=None, alert_config=None, alerting_url=None, dashboar if targets_url and not isinstance(targets_url, str): raise TypeError("Expected argument 'targets_url' to be a str") pulumi.set(__self__, "targets_url", targets_url) + if traces_retention_days and not isinstance(traces_retention_days, int): + raise TypeError("Expected argument 'traces_retention_days' to be a int") + pulumi.set(__self__, "traces_retention_days", traces_retention_days) if zipkin_spans_url and not isinstance(zipkin_spans_url, str): raise TypeError("Expected argument 'zipkin_spans_url' to be a str") pulumi.set(__self__, "zipkin_spans_url", zipkin_spans_url) @@ -216,6 +222,14 @@ def logs_push_url(self) -> _builtins.str: """ return pulumi.get(self, "logs_push_url") + @_builtins.property + @pulumi.getter(name="logsRetentionDays") + def logs_retention_days(self) -> _builtins.int: + """ + Specifies for how many days the logs are kept. Default is set to `7`. + """ + return pulumi.get(self, "logs_retention_days") + @_builtins.property @pulumi.getter(name="logsUrl") def logs_url(self) -> _builtins.str: @@ -317,6 +331,14 @@ def targets_url(self) -> _builtins.str: """ return pulumi.get(self, "targets_url") + @_builtins.property + @pulumi.getter(name="tracesRetentionDays") + def traces_retention_days(self) -> _builtins.int: + """ + Specifies for how many days the traces are kept. Default is set to `7`. + """ + return pulumi.get(self, "traces_retention_days") + @_builtins.property @pulumi.getter(name="zipkinSpansUrl") def zipkin_spans_url(self) -> _builtins.str: @@ -343,6 +365,7 @@ def __await__(self): jaeger_traces_url=self.jaeger_traces_url, jaeger_ui_url=self.jaeger_ui_url, logs_push_url=self.logs_push_url, + logs_retention_days=self.logs_retention_days, logs_url=self.logs_url, metrics_push_url=self.metrics_push_url, metrics_retention_days=self.metrics_retention_days, @@ -356,6 +379,7 @@ def __await__(self): plan_name=self.plan_name, project_id=self.project_id, targets_url=self.targets_url, + traces_retention_days=self.traces_retention_days, zipkin_spans_url=self.zipkin_spans_url) @@ -392,6 +416,7 @@ def get_observability_instance(instance_id: Optional[_builtins.str] = None, jaeger_traces_url=pulumi.get(__ret__, 'jaeger_traces_url'), jaeger_ui_url=pulumi.get(__ret__, 'jaeger_ui_url'), logs_push_url=pulumi.get(__ret__, 'logs_push_url'), + logs_retention_days=pulumi.get(__ret__, 'logs_retention_days'), logs_url=pulumi.get(__ret__, 'logs_url'), metrics_push_url=pulumi.get(__ret__, 'metrics_push_url'), metrics_retention_days=pulumi.get(__ret__, 'metrics_retention_days'), @@ -405,6 +430,7 @@ def get_observability_instance(instance_id: Optional[_builtins.str] = None, plan_name=pulumi.get(__ret__, 'plan_name'), project_id=pulumi.get(__ret__, 'project_id'), targets_url=pulumi.get(__ret__, 'targets_url'), + traces_retention_days=pulumi.get(__ret__, 'traces_retention_days'), zipkin_spans_url=pulumi.get(__ret__, 'zipkin_spans_url')) def get_observability_instance_output(instance_id: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, @@ -438,6 +464,7 @@ def get_observability_instance_output(instance_id: Optional[pulumi.Input[_builti jaeger_traces_url=pulumi.get(__response__, 'jaeger_traces_url'), jaeger_ui_url=pulumi.get(__response__, 'jaeger_ui_url'), logs_push_url=pulumi.get(__response__, 'logs_push_url'), + logs_retention_days=pulumi.get(__response__, 'logs_retention_days'), logs_url=pulumi.get(__response__, 'logs_url'), metrics_push_url=pulumi.get(__response__, 'metrics_push_url'), metrics_retention_days=pulumi.get(__response__, 'metrics_retention_days'), @@ -451,4 +478,5 @@ def get_observability_instance_output(instance_id: Optional[pulumi.Input[_builti plan_name=pulumi.get(__response__, 'plan_name'), project_id=pulumi.get(__response__, 'project_id'), targets_url=pulumi.get(__response__, 'targets_url'), + traces_retention_days=pulumi.get(__response__, 'traces_retention_days'), zipkin_spans_url=pulumi.get(__response__, 'zipkin_spans_url'))) diff --git a/sdk/python/pulumi_stackit/get_resourcemanager_folder.py b/sdk/python/pulumi_stackit/get_resourcemanager_folder.py index ecb30b8f..cbed9710 100644 --- a/sdk/python/pulumi_stackit/get_resourcemanager_folder.py +++ b/sdk/python/pulumi_stackit/get_resourcemanager_folder.py @@ -135,8 +135,6 @@ def get_resourcemanager_folder(container_id: Optional[_builtins.str] = None, """ Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. - > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - ## Example Usage @@ -161,8 +159,6 @@ def get_resourcemanager_folder_output(container_id: Optional[pulumi.Input[_built """ Resource Manager folder data source schema. To identify the folder, you need to provide the container_id. - > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - ## Example Usage diff --git a/sdk/python/pulumi_stackit/get_security_group_rule.py b/sdk/python/pulumi_stackit/get_security_group_rule.py index 861136d6..29f1a3a0 100644 --- a/sdk/python/pulumi_stackit/get_security_group_rule.py +++ b/sdk/python/pulumi_stackit/get_security_group_rule.py @@ -77,7 +77,7 @@ def description(self) -> _builtins.str: @pulumi.getter def direction(self) -> _builtins.str: """ - The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. """ return pulumi.get(self, "direction") diff --git a/sdk/python/pulumi_stackit/kms_key.py b/sdk/python/pulumi_stackit/kms_key.py new file mode 100644 index 00000000..071aecac --- /dev/null +++ b/sdk/python/pulumi_stackit/kms_key.py @@ -0,0 +1,608 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['KmsKeyArgs', 'KmsKey'] + +@pulumi.input_type +class KmsKeyArgs: + def __init__(__self__, *, + algorithm: pulumi.Input[_builtins.str], + display_name: pulumi.Input[_builtins.str], + keyring_id: pulumi.Input[_builtins.str], + project_id: pulumi.Input[_builtins.str], + protection: pulumi.Input[_builtins.str], + purpose: pulumi.Input[_builtins.str], + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + import_only: Optional[pulumi.Input[_builtins.bool]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a KmsKey resource. + :param pulumi.Input[_builtins.str] algorithm: The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keys + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the key is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keys + :param pulumi.Input[_builtins.bool] import_only: States whether versions can be created or only imported. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + pulumi.set(__self__, "algorithm", algorithm) + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "keyring_id", keyring_id) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "protection", protection) + pulumi.set(__self__, "purpose", purpose) + if access_scope is not None: + pulumi.set(__self__, "access_scope", access_scope) + if description is not None: + pulumi.set(__self__, "description", description) + if import_only is not None: + pulumi.set(__self__, "import_only", import_only) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter + def algorithm(self) -> pulumi.Input[_builtins.str]: + """ + The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + """ + return pulumi.get(self, "algorithm") + + @algorithm.setter + def algorithm(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "algorithm", value) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[_builtins.str]: + """ + The display name to distinguish multiple keys + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> pulumi.Input[_builtins.str]: + """ + The ID of the associated keyring + """ + return pulumi.get(self, "keyring_id") + + @keyring_id.setter + def keyring_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "keyring_id", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[_builtins.str]: + """ + STACKIT project ID to which the key is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def protection(self) -> pulumi.Input[_builtins.str]: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @protection.setter + def protection(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "protection", value) + + @_builtins.property + @pulumi.getter + def purpose(self) -> pulumi.Input[_builtins.str]: + """ + The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + """ + return pulumi.get(self, "purpose") + + @purpose.setter + def purpose(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "purpose", value) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @access_scope.setter + def access_scope(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "access_scope", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A user chosen description to distinguish multiple keys + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter(name="importOnly") + def import_only(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + States whether versions can be created or only imported. + """ + return pulumi.get(self, "import_only") + + @import_only.setter + def import_only(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "import_only", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _KmsKeyState: + def __init__(__self__, *, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + import_only: Optional[pulumi.Input[_builtins.bool]] = None, + key_id: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering KmsKey resources. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] algorithm: The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keys + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keys + :param pulumi.Input[_builtins.bool] import_only: States whether versions can be created or only imported. + :param pulumi.Input[_builtins.str] key_id: The ID of the key + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the key is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + if access_scope is not None: + pulumi.set(__self__, "access_scope", access_scope) + if algorithm is not None: + pulumi.set(__self__, "algorithm", algorithm) + if description is not None: + pulumi.set(__self__, "description", description) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if import_only is not None: + pulumi.set(__self__, "import_only", import_only) + if key_id is not None: + pulumi.set(__self__, "key_id", key_id) + if keyring_id is not None: + pulumi.set(__self__, "keyring_id", keyring_id) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if protection is not None: + pulumi.set(__self__, "protection", protection) + if purpose is not None: + pulumi.set(__self__, "purpose", purpose) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @access_scope.setter + def access_scope(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "access_scope", value) + + @_builtins.property + @pulumi.getter + def algorithm(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + """ + return pulumi.get(self, "algorithm") + + @algorithm.setter + def algorithm(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "algorithm", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A user chosen description to distinguish multiple keys + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The display name to distinguish multiple keys + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter(name="importOnly") + def import_only(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + States whether versions can be created or only imported. + """ + return pulumi.get(self, "import_only") + + @import_only.setter + def import_only(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "import_only", value) + + @_builtins.property + @pulumi.getter(name="keyId") + def key_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The ID of the key + """ + return pulumi.get(self, "key_id") + + @key_id.setter + def key_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "key_id", value) + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The ID of the associated keyring + """ + return pulumi.get(self, "keyring_id") + + @keyring_id.setter + def keyring_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "keyring_id", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT project ID to which the key is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def protection(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @protection.setter + def protection(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "protection", value) + + @_builtins.property + @pulumi.getter + def purpose(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + """ + return pulumi.get(self, "purpose") + + @purpose.setter + def purpose(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "purpose", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.type_token("stackit:index/kmsKey:KmsKey") +class KmsKey(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + import_only: Optional[pulumi.Input[_builtins.bool]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] algorithm: The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keys + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keys + :param pulumi.Input[_builtins.bool] import_only: States whether versions can be created or only imported. + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the key is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: KmsKeyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + :param str resource_name: The name of the resource. + :param KmsKeyArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(KmsKeyArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + import_only: Optional[pulumi.Input[_builtins.bool]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = KmsKeyArgs.__new__(KmsKeyArgs) + + __props__.__dict__["access_scope"] = access_scope + if algorithm is None and not opts.urn: + raise TypeError("Missing required property 'algorithm'") + __props__.__dict__["algorithm"] = algorithm + __props__.__dict__["description"] = description + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + __props__.__dict__["import_only"] = import_only + if keyring_id is None and not opts.urn: + raise TypeError("Missing required property 'keyring_id'") + __props__.__dict__["keyring_id"] = keyring_id + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + if protection is None and not opts.urn: + raise TypeError("Missing required property 'protection'") + __props__.__dict__["protection"] = protection + if purpose is None and not opts.urn: + raise TypeError("Missing required property 'purpose'") + __props__.__dict__["purpose"] = purpose + __props__.__dict__["region"] = region + __props__.__dict__["key_id"] = None + super(KmsKey, __self__).__init__( + 'stackit:index/kmsKey:KmsKey', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + import_only: Optional[pulumi.Input[_builtins.bool]] = None, + key_id: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None) -> 'KmsKey': + """ + Get an existing KmsKey resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] algorithm: The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keys + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keys + :param pulumi.Input[_builtins.bool] import_only: States whether versions can be created or only imported. + :param pulumi.Input[_builtins.str] key_id: The ID of the key + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the key is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _KmsKeyState.__new__(_KmsKeyState) + + __props__.__dict__["access_scope"] = access_scope + __props__.__dict__["algorithm"] = algorithm + __props__.__dict__["description"] = description + __props__.__dict__["display_name"] = display_name + __props__.__dict__["import_only"] = import_only + __props__.__dict__["key_id"] = key_id + __props__.__dict__["keyring_id"] = keyring_id + __props__.__dict__["project_id"] = project_id + __props__.__dict__["protection"] = protection + __props__.__dict__["purpose"] = purpose + __props__.__dict__["region"] = region + return KmsKey(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> pulumi.Output[_builtins.str]: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @_builtins.property + @pulumi.getter + def algorithm(self) -> pulumi.Output[_builtins.str]: + """ + The encryption algorithm that the key will use to encrypt data. Possible values are: `aes_256_gcm`, `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `hmac_sha256`, `hmac_sha384`, `hmac_sha512`, `ecdsa_p256_sha256`, `ecdsa_p384_sha384`, `ecdsa_p521_sha512`. + """ + return pulumi.get(self, "algorithm") + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[_builtins.str]]: + """ + A user chosen description to distinguish multiple keys + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[_builtins.str]: + """ + The display name to distinguish multiple keys + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter(name="importOnly") + def import_only(self) -> pulumi.Output[_builtins.bool]: + """ + States whether versions can be created or only imported. + """ + return pulumi.get(self, "import_only") + + @_builtins.property + @pulumi.getter(name="keyId") + def key_id(self) -> pulumi.Output[_builtins.str]: + """ + The ID of the key + """ + return pulumi.get(self, "key_id") + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> pulumi.Output[_builtins.str]: + """ + The ID of the associated keyring + """ + return pulumi.get(self, "keyring_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[_builtins.str]: + """ + STACKIT project ID to which the key is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def protection(self) -> pulumi.Output[_builtins.str]: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @_builtins.property + @pulumi.getter + def purpose(self) -> pulumi.Output[_builtins.str]: + """ + The purpose for which the key will be used. Possible values are: `symmetric_encrypt_decrypt`, `asymmetric_encrypt_decrypt`, `message_authentication_code`, `asymmetric_sign_verify`. + """ + return pulumi.get(self, "purpose") + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + diff --git a/sdk/python/pulumi_stackit/kms_keyring.py b/sdk/python/pulumi_stackit/kms_keyring.py new file mode 100644 index 00000000..c5ba2ed6 --- /dev/null +++ b/sdk/python/pulumi_stackit/kms_keyring.py @@ -0,0 +1,322 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['KmsKeyringArgs', 'KmsKeyring'] + +@pulumi.input_type +class KmsKeyringArgs: + def __init__(__self__, *, + display_name: pulumi.Input[_builtins.str], + project_id: pulumi.Input[_builtins.str], + description: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a KmsKeyring resource. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "project_id", project_id) + if description is not None: + pulumi.set(__self__, "description", description) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[_builtins.str]: + """ + The display name to distinguish multiple keyrings. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[_builtins.str]: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A user chosen description to distinguish multiple keyrings. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _KmsKeyringState: + def __init__(__self__, *, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering KmsKeyring resources. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] keyring_id: An auto generated unique id which identifies the keyring. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if keyring_id is not None: + pulumi.set(__self__, "keyring_id", keyring_id) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A user chosen description to distinguish multiple keyrings. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The display name to distinguish multiple keyrings. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + An auto generated unique id which identifies the keyring. + """ + return pulumi.get(self, "keyring_id") + + @keyring_id.setter + def keyring_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "keyring_id", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.type_token("stackit:index/kmsKeyring:KmsKeyring") +class KmsKeyring(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: KmsKeyringArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + :param str resource_name: The name of the resource. + :param KmsKeyringArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(KmsKeyringArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = KmsKeyringArgs.__new__(KmsKeyringArgs) + + __props__.__dict__["description"] = description + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + __props__.__dict__["keyring_id"] = None + super(KmsKeyring, __self__).__init__( + 'stackit:index/kmsKeyring:KmsKeyring', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None) -> 'KmsKeyring': + """ + Get an existing KmsKeyring resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple keyrings. + :param pulumi.Input[_builtins.str] keyring_id: An auto generated unique id which identifies the keyring. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _KmsKeyringState.__new__(_KmsKeyringState) + + __props__.__dict__["description"] = description + __props__.__dict__["display_name"] = display_name + __props__.__dict__["keyring_id"] = keyring_id + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + return KmsKeyring(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[_builtins.str]]: + """ + A user chosen description to distinguish multiple keyrings. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[_builtins.str]: + """ + The display name to distinguish multiple keyrings. + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> pulumi.Output[_builtins.str]: + """ + An auto generated unique id which identifies the keyring. + """ + return pulumi.get(self, "keyring_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[_builtins.str]: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + diff --git a/sdk/python/pulumi_stackit/kms_wrapping_key.py b/sdk/python/pulumi_stackit/kms_wrapping_key.py new file mode 100644 index 00000000..33f72429 --- /dev/null +++ b/sdk/python/pulumi_stackit/kms_wrapping_key.py @@ -0,0 +1,649 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['KmsWrappingKeyArgs', 'KmsWrappingKey'] + +@pulumi.input_type +class KmsWrappingKeyArgs: + def __init__(__self__, *, + algorithm: pulumi.Input[_builtins.str], + display_name: pulumi.Input[_builtins.str], + keyring_id: pulumi.Input[_builtins.str], + project_id: pulumi.Input[_builtins.str], + protection: pulumi.Input[_builtins.str], + purpose: pulumi.Input[_builtins.str], + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a KmsWrappingKey resource. + :param pulumi.Input[_builtins.str] algorithm: The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + pulumi.set(__self__, "algorithm", algorithm) + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "keyring_id", keyring_id) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "protection", protection) + pulumi.set(__self__, "purpose", purpose) + if access_scope is not None: + pulumi.set(__self__, "access_scope", access_scope) + if description is not None: + pulumi.set(__self__, "description", description) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter + def algorithm(self) -> pulumi.Input[_builtins.str]: + """ + The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + """ + return pulumi.get(self, "algorithm") + + @algorithm.setter + def algorithm(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "algorithm", value) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[_builtins.str]: + """ + The display name to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> pulumi.Input[_builtins.str]: + """ + The ID of the associated keyring + """ + return pulumi.get(self, "keyring_id") + + @keyring_id.setter + def keyring_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "keyring_id", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[_builtins.str]: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def protection(self) -> pulumi.Input[_builtins.str]: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @protection.setter + def protection(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "protection", value) + + @_builtins.property + @pulumi.getter + def purpose(self) -> pulumi.Input[_builtins.str]: + """ + The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + """ + return pulumi.get(self, "purpose") + + @purpose.setter + def purpose(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "purpose", value) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @access_scope.setter + def access_scope(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "access_scope", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A user chosen description to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _KmsWrappingKeyState: + def __init__(__self__, *, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + created_at: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + expires_at: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + public_key: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + wrapping_key_id: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering KmsWrappingKey resources. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] algorithm: The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + :param pulumi.Input[_builtins.str] created_at: The date and time the creation of the wrapping key was triggered. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] expires_at: The date and time the wrapping key will expire. + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] public_key: The public key of the wrapping key. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] wrapping_key_id: The ID of the wrapping key + """ + if access_scope is not None: + pulumi.set(__self__, "access_scope", access_scope) + if algorithm is not None: + pulumi.set(__self__, "algorithm", algorithm) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if description is not None: + pulumi.set(__self__, "description", description) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if expires_at is not None: + pulumi.set(__self__, "expires_at", expires_at) + if keyring_id is not None: + pulumi.set(__self__, "keyring_id", keyring_id) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if protection is not None: + pulumi.set(__self__, "protection", protection) + if public_key is not None: + pulumi.set(__self__, "public_key", public_key) + if purpose is not None: + pulumi.set(__self__, "purpose", purpose) + if region is not None: + pulumi.set(__self__, "region", region) + if wrapping_key_id is not None: + pulumi.set(__self__, "wrapping_key_id", wrapping_key_id) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @access_scope.setter + def access_scope(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "access_scope", value) + + @_builtins.property + @pulumi.getter + def algorithm(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + """ + return pulumi.get(self, "algorithm") + + @algorithm.setter + def algorithm(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "algorithm", value) + + @_builtins.property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The date and time the creation of the wrapping key was triggered. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "created_at", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + A user chosen description to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The display name to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The date and time the wrapping key will expire. + """ + return pulumi.get(self, "expires_at") + + @expires_at.setter + def expires_at(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "expires_at", value) + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The ID of the associated keyring + """ + return pulumi.get(self, "keyring_id") + + @keyring_id.setter + def keyring_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "keyring_id", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def protection(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @protection.setter + def protection(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "protection", value) + + @_builtins.property + @pulumi.getter(name="publicKey") + def public_key(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The public key of the wrapping key. + """ + return pulumi.get(self, "public_key") + + @public_key.setter + def public_key(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "public_key", value) + + @_builtins.property + @pulumi.getter + def purpose(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + """ + return pulumi.get(self, "purpose") + + @purpose.setter + def purpose(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "purpose", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + @_builtins.property + @pulumi.getter(name="wrappingKeyId") + def wrapping_key_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The ID of the wrapping key + """ + return pulumi.get(self, "wrapping_key_id") + + @wrapping_key_id.setter + def wrapping_key_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "wrapping_key_id", value) + + +@pulumi.type_token("stackit:index/kmsWrappingKey:KmsWrappingKey") +class KmsWrappingKey(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + KMS wrapping key resource schema. + + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] algorithm: The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: KmsWrappingKeyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + KMS wrapping key resource schema. + + ## Example Usage + + :param str resource_name: The name of the resource. + :param KmsWrappingKeyArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(KmsWrappingKeyArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = KmsWrappingKeyArgs.__new__(KmsWrappingKeyArgs) + + __props__.__dict__["access_scope"] = access_scope + if algorithm is None and not opts.urn: + raise TypeError("Missing required property 'algorithm'") + __props__.__dict__["algorithm"] = algorithm + __props__.__dict__["description"] = description + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + if keyring_id is None and not opts.urn: + raise TypeError("Missing required property 'keyring_id'") + __props__.__dict__["keyring_id"] = keyring_id + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + if protection is None and not opts.urn: + raise TypeError("Missing required property 'protection'") + __props__.__dict__["protection"] = protection + if purpose is None and not opts.urn: + raise TypeError("Missing required property 'purpose'") + __props__.__dict__["purpose"] = purpose + __props__.__dict__["region"] = region + __props__.__dict__["created_at"] = None + __props__.__dict__["expires_at"] = None + __props__.__dict__["public_key"] = None + __props__.__dict__["wrapping_key_id"] = None + super(KmsWrappingKey, __self__).__init__( + 'stackit:index/kmsWrappingKey:KmsWrappingKey', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + access_scope: Optional[pulumi.Input[_builtins.str]] = None, + algorithm: Optional[pulumi.Input[_builtins.str]] = None, + created_at: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + expires_at: Optional[pulumi.Input[_builtins.str]] = None, + keyring_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + protection: Optional[pulumi.Input[_builtins.str]] = None, + public_key: Optional[pulumi.Input[_builtins.str]] = None, + purpose: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + wrapping_key_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'KmsWrappingKey': + """ + Get an existing KmsWrappingKey resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] access_scope: The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + :param pulumi.Input[_builtins.str] algorithm: The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + :param pulumi.Input[_builtins.str] created_at: The date and time the creation of the wrapping key was triggered. + :param pulumi.Input[_builtins.str] description: A user chosen description to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] display_name: The display name to distinguish multiple wrapping keys. + :param pulumi.Input[_builtins.str] expires_at: The date and time the wrapping key will expire. + :param pulumi.Input[_builtins.str] keyring_id: The ID of the associated keyring + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the keyring is associated. + :param pulumi.Input[_builtins.str] protection: The underlying system that is responsible for protecting the key material. Possible values are: `software`. + :param pulumi.Input[_builtins.str] public_key: The public key of the wrapping key. + :param pulumi.Input[_builtins.str] purpose: The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] wrapping_key_id: The ID of the wrapping key + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _KmsWrappingKeyState.__new__(_KmsWrappingKeyState) + + __props__.__dict__["access_scope"] = access_scope + __props__.__dict__["algorithm"] = algorithm + __props__.__dict__["created_at"] = created_at + __props__.__dict__["description"] = description + __props__.__dict__["display_name"] = display_name + __props__.__dict__["expires_at"] = expires_at + __props__.__dict__["keyring_id"] = keyring_id + __props__.__dict__["project_id"] = project_id + __props__.__dict__["protection"] = protection + __props__.__dict__["public_key"] = public_key + __props__.__dict__["purpose"] = purpose + __props__.__dict__["region"] = region + __props__.__dict__["wrapping_key_id"] = wrapping_key_id + return KmsWrappingKey(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter(name="accessScope") + def access_scope(self) -> pulumi.Output[_builtins.str]: + """ + The access scope of the key. Default is `PUBLIC`. Possible values are: `PUBLIC`, `SNA`. + """ + return pulumi.get(self, "access_scope") + + @_builtins.property + @pulumi.getter + def algorithm(self) -> pulumi.Output[_builtins.str]: + """ + The wrapping algorithm used to wrap the key to import. Possible values are: `rsa_2048_oaep_sha256`, `rsa_3072_oaep_sha256`, `rsa_4096_oaep_sha256`, `rsa_4096_oaep_sha512`, `rsa_2048_oaep_sha256_aes_256_key_wrap`, `rsa_3072_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha256_aes_256_key_wrap`, `rsa_4096_oaep_sha512_aes_256_key_wrap`. + """ + return pulumi.get(self, "algorithm") + + @_builtins.property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[_builtins.str]: + """ + The date and time the creation of the wrapping key was triggered. + """ + return pulumi.get(self, "created_at") + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[_builtins.str]]: + """ + A user chosen description to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[_builtins.str]: + """ + The display name to distinguish multiple wrapping keys. + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> pulumi.Output[_builtins.str]: + """ + The date and time the wrapping key will expire. + """ + return pulumi.get(self, "expires_at") + + @_builtins.property + @pulumi.getter(name="keyringId") + def keyring_id(self) -> pulumi.Output[_builtins.str]: + """ + The ID of the associated keyring + """ + return pulumi.get(self, "keyring_id") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[_builtins.str]: + """ + STACKIT project ID to which the keyring is associated. + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def protection(self) -> pulumi.Output[_builtins.str]: + """ + The underlying system that is responsible for protecting the key material. Possible values are: `software`. + """ + return pulumi.get(self, "protection") + + @_builtins.property + @pulumi.getter(name="publicKey") + def public_key(self) -> pulumi.Output[_builtins.str]: + """ + The public key of the wrapping key. + """ + return pulumi.get(self, "public_key") + + @_builtins.property + @pulumi.getter + def purpose(self) -> pulumi.Output[_builtins.str]: + """ + The purpose for which the key will be used. Possible values are: `wrap_symmetric_key`, `wrap_asymmetric_key`. + """ + return pulumi.get(self, "purpose") + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + The resource region. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter(name="wrappingKeyId") + def wrapping_key_id(self) -> pulumi.Output[_builtins.str]: + """ + The ID of the wrapping key + """ + return pulumi.get(self, "wrapping_key_id") + diff --git a/sdk/python/pulumi_stackit/network.py b/sdk/python/pulumi_stackit/network.py index 1ebc5e43..a375910c 100644 --- a/sdk/python/pulumi_stackit/network.py +++ b/sdk/python/pulumi_stackit/network.py @@ -49,7 +49,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.int] ipv6_prefix_length: The IPv6 prefix length of the network. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container :param pulumi.Input[_builtins.str] name: The name of the network. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4_nameservers` to configure the nameservers for IPv4. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4_nameservers` to configure the nameservers for IPv4. :param pulumi.Input[_builtins.bool] no_ipv4_gateway: If set to `true`, the network doesn't have a gateway. :param pulumi.Input[_builtins.bool] no_ipv6_gateway: If set to `true`, the network doesn't have a gateway. :param pulumi.Input[_builtins.str] region: Can only be used when experimental "network" is set. @@ -232,7 +232,7 @@ def name(self, value: Optional[pulumi.Input[_builtins.str]]): @_utilities.deprecated("""Use `ipv4_nameservers` to configure the nameservers for IPv4.""") def nameservers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: """ - The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4_nameservers` to configure the nameservers for IPv4. + The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4_nameservers` to configure the nameservers for IPv4. """ return pulumi.get(self, "nameservers") @@ -342,11 +342,11 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ipv6_prefixes: The IPv6 prefixes of the network. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container :param pulumi.Input[_builtins.str] name: The name of the network. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4_nameservers` to configure the nameservers for IPv4. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4_nameservers` to configure the nameservers for IPv4. :param pulumi.Input[_builtins.str] network_id: The network ID. :param pulumi.Input[_builtins.bool] no_ipv4_gateway: If set to `true`, the network doesn't have a gateway. :param pulumi.Input[_builtins.bool] no_ipv6_gateway: If set to `true`, the network doesn't have a gateway. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] prefixes: The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] prefixes: The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the network is associated. :param pulumi.Input[_builtins.str] public_ip: The public IP of the network. :param pulumi.Input[_builtins.str] region: Can only be used when experimental "network" is set. @@ -555,7 +555,7 @@ def name(self, value: Optional[pulumi.Input[_builtins.str]]): @_utilities.deprecated("""Use `ipv4_nameservers` to configure the nameservers for IPv4.""") def nameservers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: """ - The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4_nameservers` to configure the nameservers for IPv4. + The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4_nameservers` to configure the nameservers for IPv4. """ return pulumi.get(self, "nameservers") @@ -604,7 +604,7 @@ def no_ipv6_gateway(self, value: Optional[pulumi.Input[_builtins.bool]]): @_utilities.deprecated("""Use `ipv4_prefixes` to read the prefixes of the IPv4 networks.""") def prefixes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: """ - The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. + The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. """ return pulumi.get(self, "prefixes") @@ -701,6 +701,9 @@ def __init__(__self__, __props__=None): """ Network resource schema. Must have a `region` specified in the provider configuration. + > Behavior of not configured `ipv4_nameservers` will change from January 2026. When `ipv4_nameservers` is not set, it will be set to the network area's `default_nameservers`. + To prevent any nameserver configuration, the `ipv4_nameservers` attribute should be explicitly set to an empty list `[]`. + In cases where `ipv4_nameservers` are defined within the resource, the existing behavior will remain unchanged. ## Example Usage @@ -716,7 +719,7 @@ def __init__(__self__, :param pulumi.Input[_builtins.int] ipv6_prefix_length: The IPv6 prefix length of the network. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container :param pulumi.Input[_builtins.str] name: The name of the network. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4_nameservers` to configure the nameservers for IPv4. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4_nameservers` to configure the nameservers for IPv4. :param pulumi.Input[_builtins.bool] no_ipv4_gateway: If set to `true`, the network doesn't have a gateway. :param pulumi.Input[_builtins.bool] no_ipv6_gateway: If set to `true`, the network doesn't have a gateway. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the network is associated. @@ -734,6 +737,9 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None): """ Network resource schema. Must have a `region` specified in the provider configuration. + > Behavior of not configured `ipv4_nameservers` will change from January 2026. When `ipv4_nameservers` is not set, it will be set to the network area's `default_nameservers`. + To prevent any nameserver configuration, the `ipv4_nameservers` attribute should be explicitly set to an empty list `[]`. + In cases where `ipv4_nameservers` are defined within the resource, the existing behavior will remain unchanged. ## Example Usage @@ -853,11 +859,11 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ipv6_prefixes: The IPv6 prefixes of the network. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container :param pulumi.Input[_builtins.str] name: The name of the network. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4_nameservers` to configure the nameservers for IPv4. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] nameservers: The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4_nameservers` to configure the nameservers for IPv4. :param pulumi.Input[_builtins.str] network_id: The network ID. :param pulumi.Input[_builtins.bool] no_ipv4_gateway: If set to `true`, the network doesn't have a gateway. :param pulumi.Input[_builtins.bool] no_ipv6_gateway: If set to `true`, the network doesn't have a gateway. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] prefixes: The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] prefixes: The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the network is associated. :param pulumi.Input[_builtins.str] public_ip: The public IP of the network. :param pulumi.Input[_builtins.str] region: Can only be used when experimental "network" is set. @@ -952,7 +958,7 @@ def ipv6_nameservers(self) -> pulumi.Output[Sequence[_builtins.str]]: @_builtins.property @pulumi.getter(name="ipv6Prefix") - def ipv6_prefix(self) -> pulumi.Output[Optional[_builtins.str]]: + def ipv6_prefix(self) -> pulumi.Output[_builtins.str]: """ The IPv6 prefix of the network (CIDR). """ @@ -960,7 +966,7 @@ def ipv6_prefix(self) -> pulumi.Output[Optional[_builtins.str]]: @_builtins.property @pulumi.getter(name="ipv6PrefixLength") - def ipv6_prefix_length(self) -> pulumi.Output[Optional[_builtins.int]]: + def ipv6_prefix_length(self) -> pulumi.Output[_builtins.int]: """ The IPv6 prefix length of the network. """ @@ -995,7 +1001,7 @@ def name(self) -> pulumi.Output[_builtins.str]: @_utilities.deprecated("""Use `ipv4_nameservers` to configure the nameservers for IPv4.""") def nameservers(self) -> pulumi.Output[Sequence[_builtins.str]]: """ - The nameservers of the network. This field is deprecated and will be removed soon, use `ipv4_nameservers` to configure the nameservers for IPv4. + The nameservers of the network. This field is deprecated and will be removed in January 2026, use `ipv4_nameservers` to configure the nameservers for IPv4. """ return pulumi.get(self, "nameservers") @@ -1028,7 +1034,7 @@ def no_ipv6_gateway(self) -> pulumi.Output[Optional[_builtins.bool]]: @_utilities.deprecated("""Use `ipv4_prefixes` to read the prefixes of the IPv4 networks.""") def prefixes(self) -> pulumi.Output[Sequence[_builtins.str]]: """ - The prefixes of the network. This field is deprecated and will be removed soon, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. + The prefixes of the network. This field is deprecated and will be removed in January 2026, use `ipv4_prefixes` to read the prefixes of the IPv4 networks. """ return pulumi.get(self, "prefixes") diff --git a/sdk/python/pulumi_stackit/network_interface.py b/sdk/python/pulumi_stackit/network_interface.py index a551e1e0..87cbae00 100644 --- a/sdk/python/pulumi_stackit/network_interface.py +++ b/sdk/python/pulumi_stackit/network_interface.py @@ -178,7 +178,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the network is associated. :param pulumi.Input[_builtins.bool] security: The Network Interface Security. If set to false, then no security groups will apply to this network interface. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] security_group_ids: The list of security group UUIDs. If security is set to false, setting this field will lead to an error. - :param pulumi.Input[_builtins.str] type: Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + :param pulumi.Input[_builtins.str] type: Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. """ if allowed_addresses is not None: pulumi.set(__self__, "allowed_addresses", allowed_addresses) @@ -341,7 +341,7 @@ def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @pulumi.getter def type(self) -> Optional[pulumi.Input[_builtins.str]]: """ - Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. """ return pulumi.get(self, "type") @@ -480,7 +480,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the network is associated. :param pulumi.Input[_builtins.bool] security: The Network Interface Security. If set to false, then no security groups will apply to this network interface. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] security_group_ids: The list of security group UUIDs. If security is set to false, setting this field will lead to an error. - :param pulumi.Input[_builtins.str] type: Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + :param pulumi.Input[_builtins.str] type: Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -592,7 +592,7 @@ def security_group_ids(self) -> pulumi.Output[Sequence[_builtins.str]]: @pulumi.getter def type(self) -> pulumi.Output[_builtins.str]: """ - Type of network interface. Some of the possible values are: Supported values are: `server`, `metadata`, `gateway`. + Type of network interface. Some of the possible values are: Possible values are: `server`, `metadata`, `gateway`. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_stackit/observability_instance.py b/sdk/python/pulumi_stackit/observability_instance.py index 744b0f16..1f3cf1e4 100644 --- a/sdk/python/pulumi_stackit/observability_instance.py +++ b/sdk/python/pulumi_stackit/observability_instance.py @@ -25,22 +25,26 @@ def __init__(__self__, *, project_id: pulumi.Input[_builtins.str], acls: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, alert_config: Optional[pulumi.Input['ObservabilityInstanceAlertConfigArgs']] = None, + logs_retention_days: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days1h_downsampling: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days5m_downsampling: Optional[pulumi.Input[_builtins.int]] = None, name: Optional[pulumi.Input[_builtins.str]] = None, - parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None): + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + traces_retention_days: Optional[pulumi.Input[_builtins.int]] = None): """ The set of arguments for constructing a ObservabilityInstance resource. :param pulumi.Input[_builtins.str] plan_name: Specifies the Observability plan. E.g. `Observability-Monitoring-Medium-EU01`. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acls: The access control list for this instance. Each entry is an IP address range that is permitted to access, in CIDR notation. :param pulumi.Input['ObservabilityInstanceAlertConfigArgs'] alert_config: Alert configuration for the instance. + :param pulumi.Input[_builtins.int] logs_retention_days: Specifies for how many days the logs are kept. Default is set to `7`. :param pulumi.Input[_builtins.int] metrics_retention_days: Specifies for how many days the raw metrics are kept. Default is set to `90`. :param pulumi.Input[_builtins.int] metrics_retention_days1h_downsampling: Specifies for how many days the 1h downsampled metrics are kept. must be less than the value of the 5m downsampling retention. Default is set to `90`. :param pulumi.Input[_builtins.int] metrics_retention_days5m_downsampling: Specifies for how many days the 5m downsampled metrics are kept. must be less than the value of the general retention. Default is set to `90`. :param pulumi.Input[_builtins.str] name: The name of the Observability instance. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] parameters: Additional parameters. + :param pulumi.Input[_builtins.int] traces_retention_days: Specifies for how many days the traces are kept. Default is set to `7`. """ pulumi.set(__self__, "plan_name", plan_name) pulumi.set(__self__, "project_id", project_id) @@ -48,6 +52,8 @@ def __init__(__self__, *, pulumi.set(__self__, "acls", acls) if alert_config is not None: pulumi.set(__self__, "alert_config", alert_config) + if logs_retention_days is not None: + pulumi.set(__self__, "logs_retention_days", logs_retention_days) if metrics_retention_days is not None: pulumi.set(__self__, "metrics_retention_days", metrics_retention_days) if metrics_retention_days1h_downsampling is not None: @@ -58,6 +64,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if parameters is not None: pulumi.set(__self__, "parameters", parameters) + if traces_retention_days is not None: + pulumi.set(__self__, "traces_retention_days", traces_retention_days) @_builtins.property @pulumi.getter(name="planName") @@ -107,6 +115,18 @@ def alert_config(self) -> Optional[pulumi.Input['ObservabilityInstanceAlertConfi def alert_config(self, value: Optional[pulumi.Input['ObservabilityInstanceAlertConfigArgs']]): pulumi.set(self, "alert_config", value) + @_builtins.property + @pulumi.getter(name="logsRetentionDays") + def logs_retention_days(self) -> Optional[pulumi.Input[_builtins.int]]: + """ + Specifies for how many days the logs are kept. Default is set to `7`. + """ + return pulumi.get(self, "logs_retention_days") + + @logs_retention_days.setter + def logs_retention_days(self, value: Optional[pulumi.Input[_builtins.int]]): + pulumi.set(self, "logs_retention_days", value) + @_builtins.property @pulumi.getter(name="metricsRetentionDays") def metrics_retention_days(self) -> Optional[pulumi.Input[_builtins.int]]: @@ -167,6 +187,18 @@ def parameters(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtin def parameters(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]): pulumi.set(self, "parameters", value) + @_builtins.property + @pulumi.getter(name="tracesRetentionDays") + def traces_retention_days(self) -> Optional[pulumi.Input[_builtins.int]]: + """ + Specifies for how many days the traces are kept. Default is set to `7`. + """ + return pulumi.get(self, "traces_retention_days") + + @traces_retention_days.setter + def traces_retention_days(self, value: Optional[pulumi.Input[_builtins.int]]): + pulumi.set(self, "traces_retention_days", value) + @pulumi.input_type class _ObservabilityInstanceState: @@ -184,6 +216,7 @@ def __init__(__self__, *, jaeger_traces_url: Optional[pulumi.Input[_builtins.str]] = None, jaeger_ui_url: Optional[pulumi.Input[_builtins.str]] = None, logs_push_url: Optional[pulumi.Input[_builtins.str]] = None, + logs_retention_days: Optional[pulumi.Input[_builtins.int]] = None, logs_url: Optional[pulumi.Input[_builtins.str]] = None, metrics_push_url: Optional[pulumi.Input[_builtins.str]] = None, metrics_retention_days: Optional[pulumi.Input[_builtins.int]] = None, @@ -197,6 +230,7 @@ def __init__(__self__, *, plan_name: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, targets_url: Optional[pulumi.Input[_builtins.str]] = None, + traces_retention_days: Optional[pulumi.Input[_builtins.int]] = None, zipkin_spans_url: Optional[pulumi.Input[_builtins.str]] = None): """ Input properties used for looking up and filtering ObservabilityInstance resources. @@ -211,6 +245,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] instance_id: The Observability instance ID. :param pulumi.Input[_builtins.bool] is_updatable: Specifies if the instance can be updated. :param pulumi.Input[_builtins.str] logs_push_url: Specifies URL for pushing logs. + :param pulumi.Input[_builtins.int] logs_retention_days: Specifies for how many days the logs are kept. Default is set to `7`. :param pulumi.Input[_builtins.str] logs_url: Specifies Logs URL. :param pulumi.Input[_builtins.str] metrics_push_url: Specifies URL for pushing metrics. :param pulumi.Input[_builtins.int] metrics_retention_days: Specifies for how many days the raw metrics are kept. Default is set to `90`. @@ -223,6 +258,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] plan_name: Specifies the Observability plan. E.g. `Observability-Monitoring-Medium-EU01`. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] targets_url: Specifies Targets URL. + :param pulumi.Input[_builtins.int] traces_retention_days: Specifies for how many days the traces are kept. Default is set to `7`. """ if acls is not None: pulumi.set(__self__, "acls", acls) @@ -250,6 +286,8 @@ def __init__(__self__, *, pulumi.set(__self__, "jaeger_ui_url", jaeger_ui_url) if logs_push_url is not None: pulumi.set(__self__, "logs_push_url", logs_push_url) + if logs_retention_days is not None: + pulumi.set(__self__, "logs_retention_days", logs_retention_days) if logs_url is not None: pulumi.set(__self__, "logs_url", logs_url) if metrics_push_url is not None: @@ -276,6 +314,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project_id", project_id) if targets_url is not None: pulumi.set(__self__, "targets_url", targets_url) + if traces_retention_days is not None: + pulumi.set(__self__, "traces_retention_days", traces_retention_days) if zipkin_spans_url is not None: pulumi.set(__self__, "zipkin_spans_url", zipkin_spans_url) @@ -429,6 +469,18 @@ def logs_push_url(self) -> Optional[pulumi.Input[_builtins.str]]: def logs_push_url(self, value: Optional[pulumi.Input[_builtins.str]]): pulumi.set(self, "logs_push_url", value) + @_builtins.property + @pulumi.getter(name="logsRetentionDays") + def logs_retention_days(self) -> Optional[pulumi.Input[_builtins.int]]: + """ + Specifies for how many days the logs are kept. Default is set to `7`. + """ + return pulumi.get(self, "logs_retention_days") + + @logs_retention_days.setter + def logs_retention_days(self, value: Optional[pulumi.Input[_builtins.int]]): + pulumi.set(self, "logs_retention_days", value) + @_builtins.property @pulumi.getter(name="logsUrl") def logs_url(self) -> Optional[pulumi.Input[_builtins.str]]: @@ -582,6 +634,18 @@ def targets_url(self) -> Optional[pulumi.Input[_builtins.str]]: def targets_url(self, value: Optional[pulumi.Input[_builtins.str]]): pulumi.set(self, "targets_url", value) + @_builtins.property + @pulumi.getter(name="tracesRetentionDays") + def traces_retention_days(self) -> Optional[pulumi.Input[_builtins.int]]: + """ + Specifies for how many days the traces are kept. Default is set to `7`. + """ + return pulumi.get(self, "traces_retention_days") + + @traces_retention_days.setter + def traces_retention_days(self, value: Optional[pulumi.Input[_builtins.int]]): + pulumi.set(self, "traces_retention_days", value) + @_builtins.property @pulumi.getter(name="zipkinSpansUrl") def zipkin_spans_url(self) -> Optional[pulumi.Input[_builtins.str]]: @@ -600,6 +664,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, acls: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, alert_config: Optional[pulumi.Input[Union['ObservabilityInstanceAlertConfigArgs', 'ObservabilityInstanceAlertConfigArgsDict']]] = None, + logs_retention_days: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days1h_downsampling: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days5m_downsampling: Optional[pulumi.Input[_builtins.int]] = None, @@ -607,6 +672,7 @@ def __init__(__self__, parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, plan_name: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, + traces_retention_days: Optional[pulumi.Input[_builtins.int]] = None, __props__=None): """ Observability instance resource schema. Must have a `region` specified in the provider configuration. @@ -617,6 +683,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acls: The access control list for this instance. Each entry is an IP address range that is permitted to access, in CIDR notation. :param pulumi.Input[Union['ObservabilityInstanceAlertConfigArgs', 'ObservabilityInstanceAlertConfigArgsDict']] alert_config: Alert configuration for the instance. + :param pulumi.Input[_builtins.int] logs_retention_days: Specifies for how many days the logs are kept. Default is set to `7`. :param pulumi.Input[_builtins.int] metrics_retention_days: Specifies for how many days the raw metrics are kept. Default is set to `90`. :param pulumi.Input[_builtins.int] metrics_retention_days1h_downsampling: Specifies for how many days the 1h downsampled metrics are kept. must be less than the value of the 5m downsampling retention. Default is set to `90`. :param pulumi.Input[_builtins.int] metrics_retention_days5m_downsampling: Specifies for how many days the 5m downsampled metrics are kept. must be less than the value of the general retention. Default is set to `90`. @@ -624,6 +691,7 @@ def __init__(__self__, :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] parameters: Additional parameters. :param pulumi.Input[_builtins.str] plan_name: Specifies the Observability plan. E.g. `Observability-Monitoring-Medium-EU01`. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. + :param pulumi.Input[_builtins.int] traces_retention_days: Specifies for how many days the traces are kept. Default is set to `7`. """ ... @overload @@ -653,6 +721,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, acls: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, alert_config: Optional[pulumi.Input[Union['ObservabilityInstanceAlertConfigArgs', 'ObservabilityInstanceAlertConfigArgsDict']]] = None, + logs_retention_days: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days1h_downsampling: Optional[pulumi.Input[_builtins.int]] = None, metrics_retention_days5m_downsampling: Optional[pulumi.Input[_builtins.int]] = None, @@ -660,6 +729,7 @@ def _internal_init(__self__, parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, plan_name: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, + traces_retention_days: Optional[pulumi.Input[_builtins.int]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -671,6 +741,7 @@ def _internal_init(__self__, __props__.__dict__["acls"] = acls __props__.__dict__["alert_config"] = alert_config + __props__.__dict__["logs_retention_days"] = logs_retention_days __props__.__dict__["metrics_retention_days"] = metrics_retention_days __props__.__dict__["metrics_retention_days1h_downsampling"] = metrics_retention_days1h_downsampling __props__.__dict__["metrics_retention_days5m_downsampling"] = metrics_retention_days5m_downsampling @@ -682,6 +753,7 @@ def _internal_init(__self__, if project_id is None and not opts.urn: raise TypeError("Missing required property 'project_id'") __props__.__dict__["project_id"] = project_id + __props__.__dict__["traces_retention_days"] = traces_retention_days __props__.__dict__["alerting_url"] = None __props__.__dict__["dashboard_url"] = None __props__.__dict__["grafana_initial_admin_password"] = None @@ -725,6 +797,7 @@ def get(resource_name: str, jaeger_traces_url: Optional[pulumi.Input[_builtins.str]] = None, jaeger_ui_url: Optional[pulumi.Input[_builtins.str]] = None, logs_push_url: Optional[pulumi.Input[_builtins.str]] = None, + logs_retention_days: Optional[pulumi.Input[_builtins.int]] = None, logs_url: Optional[pulumi.Input[_builtins.str]] = None, metrics_push_url: Optional[pulumi.Input[_builtins.str]] = None, metrics_retention_days: Optional[pulumi.Input[_builtins.int]] = None, @@ -738,6 +811,7 @@ def get(resource_name: str, plan_name: Optional[pulumi.Input[_builtins.str]] = None, project_id: Optional[pulumi.Input[_builtins.str]] = None, targets_url: Optional[pulumi.Input[_builtins.str]] = None, + traces_retention_days: Optional[pulumi.Input[_builtins.int]] = None, zipkin_spans_url: Optional[pulumi.Input[_builtins.str]] = None) -> 'ObservabilityInstance': """ Get an existing ObservabilityInstance resource's state with the given name, id, and optional extra @@ -757,6 +831,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] instance_id: The Observability instance ID. :param pulumi.Input[_builtins.bool] is_updatable: Specifies if the instance can be updated. :param pulumi.Input[_builtins.str] logs_push_url: Specifies URL for pushing logs. + :param pulumi.Input[_builtins.int] logs_retention_days: Specifies for how many days the logs are kept. Default is set to `7`. :param pulumi.Input[_builtins.str] logs_url: Specifies Logs URL. :param pulumi.Input[_builtins.str] metrics_push_url: Specifies URL for pushing metrics. :param pulumi.Input[_builtins.int] metrics_retention_days: Specifies for how many days the raw metrics are kept. Default is set to `90`. @@ -769,6 +844,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] plan_name: Specifies the Observability plan. E.g. `Observability-Monitoring-Medium-EU01`. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] targets_url: Specifies Targets URL. + :param pulumi.Input[_builtins.int] traces_retention_days: Specifies for how many days the traces are kept. Default is set to `7`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -787,6 +863,7 @@ def get(resource_name: str, __props__.__dict__["jaeger_traces_url"] = jaeger_traces_url __props__.__dict__["jaeger_ui_url"] = jaeger_ui_url __props__.__dict__["logs_push_url"] = logs_push_url + __props__.__dict__["logs_retention_days"] = logs_retention_days __props__.__dict__["logs_url"] = logs_url __props__.__dict__["metrics_push_url"] = metrics_push_url __props__.__dict__["metrics_retention_days"] = metrics_retention_days @@ -800,6 +877,7 @@ def get(resource_name: str, __props__.__dict__["plan_name"] = plan_name __props__.__dict__["project_id"] = project_id __props__.__dict__["targets_url"] = targets_url + __props__.__dict__["traces_retention_days"] = traces_retention_days __props__.__dict__["zipkin_spans_url"] = zipkin_spans_url return ObservabilityInstance(resource_name, opts=opts, __props__=__props__) @@ -901,6 +979,14 @@ def logs_push_url(self) -> pulumi.Output[_builtins.str]: """ return pulumi.get(self, "logs_push_url") + @_builtins.property + @pulumi.getter(name="logsRetentionDays") + def logs_retention_days(self) -> pulumi.Output[_builtins.int]: + """ + Specifies for how many days the logs are kept. Default is set to `7`. + """ + return pulumi.get(self, "logs_retention_days") + @_builtins.property @pulumi.getter(name="logsUrl") def logs_url(self) -> pulumi.Output[_builtins.str]: @@ -1002,6 +1088,14 @@ def targets_url(self) -> pulumi.Output[_builtins.str]: """ return pulumi.get(self, "targets_url") + @_builtins.property + @pulumi.getter(name="tracesRetentionDays") + def traces_retention_days(self) -> pulumi.Output[_builtins.int]: + """ + Specifies for how many days the traces are kept. Default is set to `7`. + """ + return pulumi.get(self, "traces_retention_days") + @_builtins.property @pulumi.getter(name="zipkinSpansUrl") def zipkin_spans_url(self) -> pulumi.Output[_builtins.str]: diff --git a/sdk/python/pulumi_stackit/outputs.py b/sdk/python/pulumi_stackit/outputs.py index d55f7c0e..1b542b6b 100644 --- a/sdk/python/pulumi_stackit/outputs.py +++ b/sdk/python/pulumi_stackit/outputs.py @@ -25,6 +25,8 @@ 'ImageConfig', 'LoadbalancerListener', 'LoadbalancerListenerServerNameIndicator', + 'LoadbalancerListenerTcp', + 'LoadbalancerListenerUdp', 'LoadbalancerNetwork', 'LoadbalancerOptions', 'LoadbalancerOptionsObservability', @@ -91,6 +93,8 @@ 'GetImageV2FilterResult', 'GetLoadbalancerListenerResult', 'GetLoadbalancerListenerServerNameIndicatorResult', + 'GetLoadbalancerListenerTcpResult', + 'GetLoadbalancerListenerUdpResult', 'GetLoadbalancerNetworkResult', 'GetLoadbalancerOptionsResult', 'GetLoadbalancerOptionsObservabilityResult', @@ -309,14 +313,18 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, origin_url: _builtins.str, type: _builtins.str, + geofencing: Optional[Mapping[str, Sequence[_builtins.str]]] = None, origin_request_headers: Optional[Mapping[str, _builtins.str]] = None): """ :param _builtins.str origin_url: The configured backend type for the distribution - :param _builtins.str type: The configured backend type. Supported values are: `http`. + :param _builtins.str type: The configured backend type. Possible values are: `http`. + :param Mapping[str, Sequence[_builtins.str]] geofencing: A map of URLs to a list of countries where content is allowed. :param Mapping[str, _builtins.str] origin_request_headers: The configured origin request headers for the backend """ pulumi.set(__self__, "origin_url", origin_url) pulumi.set(__self__, "type", type) + if geofencing is not None: + pulumi.set(__self__, "geofencing", geofencing) if origin_request_headers is not None: pulumi.set(__self__, "origin_request_headers", origin_request_headers) @@ -332,10 +340,18 @@ def origin_url(self) -> _builtins.str: @pulumi.getter def type(self) -> _builtins.str: """ - The configured backend type. Supported values are: `http`. + The configured backend type. Possible values are: `http`. """ return pulumi.get(self, "type") + @_builtins.property + @pulumi.getter + def geofencing(self) -> Optional[Mapping[str, Sequence[_builtins.str]]]: + """ + A map of URLs to a list of countries where content is allowed. + """ + return pulumi.get(self, "geofencing") + @_builtins.property @pulumi.getter(name="originRequestHeaders") def origin_request_headers(self) -> Optional[Mapping[str, _builtins.str]]: @@ -674,12 +690,16 @@ def __init__(__self__, *, protocol: _builtins.str, target_pool: _builtins.str, display_name: Optional[_builtins.str] = None, - server_name_indicators: Optional[Sequence['outputs.LoadbalancerListenerServerNameIndicator']] = None): + server_name_indicators: Optional[Sequence['outputs.LoadbalancerListenerServerNameIndicator']] = None, + tcp: Optional['outputs.LoadbalancerListenerTcp'] = None, + udp: Optional['outputs.LoadbalancerListenerUdp'] = None): """ :param _builtins.int port: Port number where we listen for traffic. - :param _builtins.str protocol: Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + :param _builtins.str protocol: Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. :param _builtins.str target_pool: Reference target pool by target pool name. :param Sequence['LoadbalancerListenerServerNameIndicatorArgs'] server_name_indicators: A list of domain names to match in order to pass TLS traffic to the target pool in the current listener + :param 'LoadbalancerListenerTcpArgs' tcp: Options that are specific to the TCP protocol. + :param 'LoadbalancerListenerUdpArgs' udp: Options that are specific to the UDP protocol. """ pulumi.set(__self__, "port", port) pulumi.set(__self__, "protocol", protocol) @@ -688,6 +708,10 @@ def __init__(__self__, *, pulumi.set(__self__, "display_name", display_name) if server_name_indicators is not None: pulumi.set(__self__, "server_name_indicators", server_name_indicators) + if tcp is not None: + pulumi.set(__self__, "tcp", tcp) + if udp is not None: + pulumi.set(__self__, "udp", udp) @_builtins.property @pulumi.getter @@ -701,7 +725,7 @@ def port(self) -> _builtins.int: @pulumi.getter def protocol(self) -> _builtins.str: """ - Protocol is the highest network protocol we understand to load balance. Supported values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. + Protocol is the highest network protocol we understand to load balance. Possible values are: `PROTOCOL_UNSPECIFIED`, `PROTOCOL_TCP`, `PROTOCOL_UDP`, `PROTOCOL_TCP_PROXY`, `PROTOCOL_TLS_PASSTHROUGH`. """ return pulumi.get(self, "protocol") @@ -726,6 +750,22 @@ def server_name_indicators(self) -> Optional[Sequence['outputs.LoadbalancerListe """ return pulumi.get(self, "server_name_indicators") + @_builtins.property + @pulumi.getter + def tcp(self) -> Optional['outputs.LoadbalancerListenerTcp']: + """ + Options that are specific to the TCP protocol. + """ + return pulumi.get(self, "tcp") + + @_builtins.property + @pulumi.getter + def udp(self) -> Optional['outputs.LoadbalancerListenerUdp']: + """ + Options that are specific to the UDP protocol. + """ + return pulumi.get(self, "udp") + @pulumi.output_type class LoadbalancerListenerServerNameIndicator(dict): @@ -746,6 +786,78 @@ def name(self) -> Optional[_builtins.str]: return pulumi.get(self, "name") +@pulumi.output_type +class LoadbalancerListenerTcp(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeout": + suggest = "idle_timeout" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListenerTcp. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerListenerTcp.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerListenerTcp.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout: Optional[_builtins.str] = None): + """ + :param _builtins.str idle_timeout: Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + """ + if idle_timeout is not None: + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> Optional[_builtins.str]: + """ + Time after which an idle connection is closed. The default value is set to 300 seconds, and the maximum value is 3600 seconds. The format is a duration and the unit must be seconds. Example: 30s + """ + return pulumi.get(self, "idle_timeout") + + +@pulumi.output_type +class LoadbalancerListenerUdp(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeout": + suggest = "idle_timeout" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadbalancerListenerUdp. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadbalancerListenerUdp.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadbalancerListenerUdp.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout: Optional[_builtins.str] = None): + """ + :param _builtins.str idle_timeout: Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + """ + if idle_timeout is not None: + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> Optional[_builtins.str]: + """ + Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. The format is a duration and the unit must be seconds. Example: 30s + """ + return pulumi.get(self, "idle_timeout") + + @pulumi.output_type class LoadbalancerNetwork(dict): @staticmethod @@ -770,7 +882,7 @@ def __init__(__self__, *, role: _builtins.str): """ :param _builtins.str network_id: Openstack network ID. - :param _builtins.str role: The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + :param _builtins.str role: The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. """ pulumi.set(__self__, "network_id", network_id) pulumi.set(__self__, "role", role) @@ -787,7 +899,7 @@ def network_id(self) -> _builtins.str: @pulumi.getter def role(self) -> _builtins.str: """ - The role defines how the load balancer is using the network. Supported values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. + The role defines how the load balancer is using the network. Possible values are: `ROLE_UNSPECIFIED`, `ROLE_LISTENERS_AND_TARGETS`, `ROLE_LISTENERS`, `ROLE_TARGETS`. """ return pulumi.get(self, "role") @@ -1721,7 +1833,7 @@ def __init__(__self__, *, weekly_snapshot_retention_weeks: Optional[_builtins.int] = None): """ :param _builtins.int point_in_time_window_hours: The number of hours back in time the point-in-time recovery feature will be able to recover. - :param _builtins.str type: Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + :param _builtins.str type: Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. :param _builtins.int daily_snapshot_retention_days: The number of days that daily backups will be retained. :param _builtins.int monthly_snapshot_retention_months: The number of months that monthly backups will be retained. :param _builtins.int snapshot_retention_days: The number of days that continuous backups (controlled via the `backup_schedule`) will be retained. @@ -1750,7 +1862,7 @@ def point_in_time_window_hours(self) -> _builtins.int: @pulumi.getter def type(self) -> _builtins.str: """ - Type of the MongoDB Flex instance. Supported values are: `Replica`, `Sharded`, `Single`. + Type of the MongoDB Flex instance. Possible values are: `Replica`, `Sharded`, `Single`. """ return pulumi.get(self, "type") @@ -3754,7 +3866,7 @@ def __init__(__self__, *, type: _builtins.str, value: Optional[_builtins.str] = None): """ - :param _builtins.str type: Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + :param _builtins.str type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. :param _builtins.str value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. """ pulumi.set(__self__, "type", type) @@ -3765,7 +3877,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> _builtins.str: """ - Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. """ return pulumi.get(self, "type") @@ -3947,7 +4059,7 @@ def __init__(__self__, *, size: Optional[_builtins.int] = None): """ :param _builtins.str source_id: The ID of the source, either image ID or volume ID - :param _builtins.str source_type: The type of the source. Supported values are: `volume`, `image`. + :param _builtins.str source_type: The type of the source. Possible values are: `volume`, `image`. :param _builtins.bool delete_on_termination: Delete the volume during the termination of the server. Only allowed when `source_type` is `image`. :param _builtins.str id: The ID of the boot volume :param _builtins.str performance_class: The performance class of the server. @@ -3976,7 +4088,7 @@ def source_id(self) -> _builtins.str: @pulumi.getter(name="sourceType") def source_type(self) -> _builtins.str: """ - The type of the source. Supported values are: `volume`, `image`. + The type of the source. Possible values are: `volume`, `image`. """ return pulumi.get(self, "source_type") @@ -4774,7 +4886,7 @@ def __init__(__self__, *, type: _builtins.str): """ :param _builtins.str id: The ID of the source, e.g. image ID - :param _builtins.str type: The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + :param _builtins.str type: The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ pulumi.set(__self__, "id", id) pulumi.set(__self__, "type", type) @@ -4791,7 +4903,7 @@ def id(self) -> _builtins.str: @pulumi.getter def type(self) -> _builtins.str: """ - The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ return pulumi.get(self, "type") @@ -4869,18 +4981,29 @@ def blocked_countries(self) -> Optional[Sequence[_builtins.str]]: @pulumi.output_type class GetCdnDistributionConfigBackendResult(dict): def __init__(__self__, *, + geofencing: Mapping[str, Sequence[_builtins.str]], origin_request_headers: Mapping[str, _builtins.str], origin_url: _builtins.str, type: _builtins.str): """ + :param Mapping[str, Sequence[_builtins.str]] geofencing: A map of URLs to a list of countries where content is allowed. :param Mapping[str, _builtins.str] origin_request_headers: The configured origin request headers for the backend :param _builtins.str origin_url: The configured backend type for the distribution - :param _builtins.str type: The configured backend type. Supported values are: `http`. + :param _builtins.str type: The configured backend type. Possible values are: `http`. """ + pulumi.set(__self__, "geofencing", geofencing) pulumi.set(__self__, "origin_request_headers", origin_request_headers) pulumi.set(__self__, "origin_url", origin_url) pulumi.set(__self__, "type", type) + @_builtins.property + @pulumi.getter + def geofencing(self) -> Mapping[str, Sequence[_builtins.str]]: + """ + A map of URLs to a list of countries where content is allowed. + """ + return pulumi.get(self, "geofencing") + @_builtins.property @pulumi.getter(name="originRequestHeaders") def origin_request_headers(self) -> Mapping[str, _builtins.str]: @@ -4901,7 +5024,7 @@ def origin_url(self) -> _builtins.str: @pulumi.getter def type(self) -> _builtins.str: """ - The configured backend type. Supported values are: `http`. + The configured backend type. Possible values are: `http`. """ return pulumi.get(self, "type") @@ -5401,17 +5524,23 @@ def __init__(__self__, *, port: _builtins.int, protocol: _builtins.str, target_pool: _builtins.str, + tcp: 'outputs.GetLoadbalancerListenerTcpResult', + udp: 'outputs.GetLoadbalancerListenerUdpResult', server_name_indicators: Optional[Sequence['outputs.GetLoadbalancerListenerServerNameIndicatorResult']] = None): """ :param _builtins.int port: Port number where we listen for traffic. :param _builtins.str protocol: Protocol is the highest network protocol we understand to load balance. :param _builtins.str target_pool: Reference target pool by target pool name. + :param 'GetLoadbalancerListenerTcpArgs' tcp: Options that are specific to the TCP protocol. + :param 'GetLoadbalancerListenerUdpArgs' udp: Options that are specific to the UDP protocol. :param Sequence['GetLoadbalancerListenerServerNameIndicatorArgs'] server_name_indicators: A list of domain names to match in order to pass TLS traffic to the target pool in the current listener """ pulumi.set(__self__, "display_name", display_name) pulumi.set(__self__, "port", port) pulumi.set(__self__, "protocol", protocol) pulumi.set(__self__, "target_pool", target_pool) + pulumi.set(__self__, "tcp", tcp) + pulumi.set(__self__, "udp", udp) if server_name_indicators is not None: pulumi.set(__self__, "server_name_indicators", server_name_indicators) @@ -5444,6 +5573,22 @@ def target_pool(self) -> _builtins.str: """ return pulumi.get(self, "target_pool") + @_builtins.property + @pulumi.getter + def tcp(self) -> 'outputs.GetLoadbalancerListenerTcpResult': + """ + Options that are specific to the TCP protocol. + """ + return pulumi.get(self, "tcp") + + @_builtins.property + @pulumi.getter + def udp(self) -> 'outputs.GetLoadbalancerListenerUdpResult': + """ + Options that are specific to the UDP protocol. + """ + return pulumi.get(self, "udp") + @_builtins.property @pulumi.getter(name="serverNameIndicators") def server_name_indicators(self) -> Optional[Sequence['outputs.GetLoadbalancerListenerServerNameIndicatorResult']]: @@ -5472,6 +5617,42 @@ def name(self) -> Optional[_builtins.str]: return pulumi.get(self, "name") +@pulumi.output_type +class GetLoadbalancerListenerTcpResult(dict): + def __init__(__self__, *, + idle_timeout: _builtins.str): + """ + :param _builtins.str idle_timeout: Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour. + """ + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> _builtins.str: + """ + Time after which an idle connection is closed. The default value is set to 5 minutes, and the maximum value is one hour. + """ + return pulumi.get(self, "idle_timeout") + + +@pulumi.output_type +class GetLoadbalancerListenerUdpResult(dict): + def __init__(__self__, *, + idle_timeout: _builtins.str): + """ + :param _builtins.str idle_timeout: Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. + """ + pulumi.set(__self__, "idle_timeout", idle_timeout) + + @_builtins.property + @pulumi.getter(name="idleTimeout") + def idle_timeout(self) -> _builtins.str: + """ + Time after which an idle session is closed. The default value is set to 1 minute, and the maximum value is 2 minutes. + """ + return pulumi.get(self, "idle_timeout") + + @pulumi.output_type class GetLoadbalancerNetworkResult(dict): def __init__(__self__, *, @@ -7670,7 +7851,7 @@ def __init__(__self__, *, type: _builtins.str, value: _builtins.str): """ - :param _builtins.str type: Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + :param _builtins.str type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. :param _builtins.str value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. """ pulumi.set(__self__, "type", type) @@ -7680,7 +7861,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> _builtins.str: """ - Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. """ return pulumi.get(self, "type") @@ -7801,7 +7982,7 @@ def __init__(__self__, *, type: _builtins.str, value: _builtins.str): """ - :param _builtins.str type: Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + :param _builtins.str type: Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. :param _builtins.str value: Either IPv4 or IPv6 (not set for blackhole and internet). Only IPv4 supported during experimental stage. """ pulumi.set(__self__, "type", type) @@ -7811,7 +7992,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> _builtins.str: """ - Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. Only `cidrv4` is supported during experimental stage.. + Type of the next hop. Possible values are: `blackhole`, `internet`, `ipv4`, `ipv6`. """ return pulumi.get(self, "type") @@ -8792,7 +8973,7 @@ def __init__(__self__, *, type: _builtins.str): """ :param _builtins.str id: The ID of the source, e.g. image ID - :param _builtins.str type: The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + :param _builtins.str type: The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ pulumi.set(__self__, "id", id) pulumi.set(__self__, "type", type) @@ -8809,7 +8990,7 @@ def id(self) -> _builtins.str: @pulumi.getter def type(self) -> _builtins.str: """ - The type of the source. Supported values are: `volume`, `image`, `snapshot`, `backup`. + The type of the source. Possible values are: `volume`, `image`, `snapshot`, `backup`. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_stackit/postgresflex_user.py b/sdk/python/pulumi_stackit/postgresflex_user.py index 18753156..41e242b0 100644 --- a/sdk/python/pulumi_stackit/postgresflex_user.py +++ b/sdk/python/pulumi_stackit/postgresflex_user.py @@ -28,7 +28,7 @@ def __init__(__self__, *, The set of arguments for constructing a PostgresflexUser resource. :param pulumi.Input[_builtins.str] instance_id: ID of the PostgresFlex instance. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Supported values are: `login`, `createdb`. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Possible values are: `login`, `createdb`. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. """ pulumi.set(__self__, "instance_id", instance_id) @@ -66,7 +66,7 @@ def project_id(self, value: pulumi.Input[_builtins.str]): @pulumi.getter def roles(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: """ - Database access levels for the user. Supported values are: `login`, `createdb`. + Database access levels for the user. Possible values are: `login`, `createdb`. """ return pulumi.get(self, "roles") @@ -114,7 +114,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] instance_id: ID of the PostgresFlex instance. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Supported values are: `login`, `createdb`. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Possible values are: `login`, `createdb`. :param pulumi.Input[_builtins.str] user_id: User ID. """ if host is not None: @@ -205,7 +205,7 @@ def region(self, value: Optional[pulumi.Input[_builtins.str]]): @pulumi.getter def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: """ - Database access levels for the user. Supported values are: `login`, `createdb`. + Database access levels for the user. Possible values are: `login`, `createdb`. """ return pulumi.get(self, "roles") @@ -266,7 +266,7 @@ def __init__(__self__, :param pulumi.Input[_builtins.str] instance_id: ID of the PostgresFlex instance. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Supported values are: `login`, `createdb`. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Possible values are: `login`, `createdb`. """ ... @overload @@ -358,7 +358,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] instance_id: ID of the PostgresFlex instance. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. - :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Supported values are: `login`, `createdb`. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] roles: Database access levels for the user. Possible values are: `login`, `createdb`. :param pulumi.Input[_builtins.str] user_id: User ID. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -420,7 +420,7 @@ def region(self) -> pulumi.Output[_builtins.str]: @pulumi.getter def roles(self) -> pulumi.Output[Sequence[_builtins.str]]: """ - Database access levels for the user. Supported values are: `login`, `createdb`. + Database access levels for the user. Possible values are: `login`, `createdb`. """ return pulumi.get(self, "roles") diff --git a/sdk/python/pulumi_stackit/provider.py b/sdk/python/pulumi_stackit/provider.py index 324a1d08..646cb35c 100644 --- a/sdk/python/pulumi_stackit/provider.py +++ b/sdk/python/pulumi_stackit/provider.py @@ -28,6 +28,7 @@ def __init__(__self__, *, experiments: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, git_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, iaas_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, + kms_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, loadbalancer_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, logme_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, mariadb_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, @@ -67,6 +68,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] experiments: Enables experiments. These are unstable features without official support. More information can be found in the README. Available Experiments: iam, routing-tables, network :param pulumi.Input[_builtins.str] git_custom_endpoint: Custom endpoint for the Git service :param pulumi.Input[_builtins.str] iaas_custom_endpoint: Custom endpoint for the IaaS service + :param pulumi.Input[_builtins.str] kms_custom_endpoint: Custom endpoint for the KMS service :param pulumi.Input[_builtins.str] loadbalancer_custom_endpoint: Custom endpoint for the Load Balancer service :param pulumi.Input[_builtins.str] logme_custom_endpoint: Custom endpoint for the LogMe service :param pulumi.Input[_builtins.str] mariadb_custom_endpoint: Custom endpoint for the MariaDB service @@ -114,6 +116,8 @@ def __init__(__self__, *, pulumi.set(__self__, "git_custom_endpoint", git_custom_endpoint) if iaas_custom_endpoint is not None: pulumi.set(__self__, "iaas_custom_endpoint", iaas_custom_endpoint) + if kms_custom_endpoint is not None: + pulumi.set(__self__, "kms_custom_endpoint", kms_custom_endpoint) if loadbalancer_custom_endpoint is not None: pulumi.set(__self__, "loadbalancer_custom_endpoint", loadbalancer_custom_endpoint) if logme_custom_endpoint is not None: @@ -288,6 +292,18 @@ def iaas_custom_endpoint(self) -> Optional[pulumi.Input[_builtins.str]]: def iaas_custom_endpoint(self, value: Optional[pulumi.Input[_builtins.str]]): pulumi.set(self, "iaas_custom_endpoint", value) + @_builtins.property + @pulumi.getter(name="kmsCustomEndpoint") + def kms_custom_endpoint(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Custom endpoint for the KMS service + """ + return pulumi.get(self, "kms_custom_endpoint") + + @kms_custom_endpoint.setter + def kms_custom_endpoint(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "kms_custom_endpoint", value) + @_builtins.property @pulumi.getter(name="loadbalancerCustomEndpoint") def loadbalancer_custom_endpoint(self) -> Optional[pulumi.Input[_builtins.str]]: @@ -643,6 +659,7 @@ def __init__(__self__, experiments: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, git_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, iaas_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, + kms_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, loadbalancer_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, logme_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, mariadb_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, @@ -689,6 +706,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] experiments: Enables experiments. These are unstable features without official support. More information can be found in the README. Available Experiments: iam, routing-tables, network :param pulumi.Input[_builtins.str] git_custom_endpoint: Custom endpoint for the Git service :param pulumi.Input[_builtins.str] iaas_custom_endpoint: Custom endpoint for the IaaS service + :param pulumi.Input[_builtins.str] kms_custom_endpoint: Custom endpoint for the KMS service :param pulumi.Input[_builtins.str] loadbalancer_custom_endpoint: Custom endpoint for the Load Balancer service :param pulumi.Input[_builtins.str] logme_custom_endpoint: Custom endpoint for the LogMe service :param pulumi.Input[_builtins.str] mariadb_custom_endpoint: Custom endpoint for the MariaDB service @@ -754,6 +772,7 @@ def _internal_init(__self__, experiments: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, git_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, iaas_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, + kms_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, loadbalancer_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, logme_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, mariadb_custom_endpoint: Optional[pulumi.Input[_builtins.str]] = None, @@ -800,6 +819,7 @@ def _internal_init(__self__, __props__.__dict__["experiments"] = pulumi.Output.from_input(experiments).apply(pulumi.runtime.to_json) if experiments is not None else None __props__.__dict__["git_custom_endpoint"] = git_custom_endpoint __props__.__dict__["iaas_custom_endpoint"] = iaas_custom_endpoint + __props__.__dict__["kms_custom_endpoint"] = kms_custom_endpoint __props__.__dict__["loadbalancer_custom_endpoint"] = loadbalancer_custom_endpoint __props__.__dict__["logme_custom_endpoint"] = logme_custom_endpoint __props__.__dict__["mariadb_custom_endpoint"] = mariadb_custom_endpoint @@ -890,6 +910,14 @@ def iaas_custom_endpoint(self) -> pulumi.Output[Optional[_builtins.str]]: """ return pulumi.get(self, "iaas_custom_endpoint") + @_builtins.property + @pulumi.getter(name="kmsCustomEndpoint") + def kms_custom_endpoint(self) -> pulumi.Output[Optional[_builtins.str]]: + """ + Custom endpoint for the KMS service + """ + return pulumi.get(self, "kms_custom_endpoint") + @_builtins.property @pulumi.getter(name="loadbalancerCustomEndpoint") def loadbalancer_custom_endpoint(self) -> pulumi.Output[Optional[_builtins.str]]: diff --git a/sdk/python/pulumi_stackit/resourcemanager_folder.py b/sdk/python/pulumi_stackit/resourcemanager_folder.py index 90d7725b..80c744c6 100644 --- a/sdk/python/pulumi_stackit/resourcemanager_folder.py +++ b/sdk/python/pulumi_stackit/resourcemanager_folder.py @@ -236,8 +236,6 @@ def __init__(__self__, """ Resource Manager folder resource schema. - > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - ## Example Usage :param str resource_name: The name of the resource. @@ -256,8 +254,6 @@ def __init__(__self__, """ Resource Manager folder resource schema. - > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. - ## Example Usage :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_stackit/security_group_rule.py b/sdk/python/pulumi_stackit/security_group_rule.py index 5775ff38..c0ca3b68 100644 --- a/sdk/python/pulumi_stackit/security_group_rule.py +++ b/sdk/python/pulumi_stackit/security_group_rule.py @@ -33,7 +33,7 @@ def __init__(__self__, *, remote_security_group_id: Optional[pulumi.Input[_builtins.str]] = None): """ The set of arguments for constructing a SecurityGroupRule resource. - :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the security group rule is associated. :param pulumi.Input[_builtins.str] security_group_id: The security group ID. :param pulumi.Input[_builtins.str] description: The rule description. @@ -66,7 +66,7 @@ def __init__(__self__, *, @pulumi.getter def direction(self) -> pulumi.Input[_builtins.str]: """ - The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. """ return pulumi.get(self, "direction") @@ -200,7 +200,7 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering SecurityGroupRule resources. :param pulumi.Input[_builtins.str] description: The rule description. - :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. :param pulumi.Input[_builtins.str] ether_type: The ethertype which the rule should match. :param pulumi.Input['SecurityGroupRuleIcmpParametersArgs'] icmp_parameters: ICMP Parameters. These parameters should only be provided if the protocol is ICMP. :param pulumi.Input[_builtins.str] ip_range: The remote IP range which the rule should match. @@ -250,7 +250,7 @@ def description(self, value: Optional[pulumi.Input[_builtins.str]]): @pulumi.getter def direction(self) -> Optional[pulumi.Input[_builtins.str]]: """ - The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. """ return pulumi.get(self, "direction") @@ -392,7 +392,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[_builtins.str] description: The rule description. - :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. :param pulumi.Input[_builtins.str] ether_type: The ethertype which the rule should match. :param pulumi.Input[Union['SecurityGroupRuleIcmpParametersArgs', 'SecurityGroupRuleIcmpParametersArgsDict']] icmp_parameters: ICMP Parameters. These parameters should only be provided if the protocol is ICMP. :param pulumi.Input[_builtins.str] ip_range: The remote IP range which the rule should match. @@ -493,7 +493,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[_builtins.str] description: The rule description. - :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + :param pulumi.Input[_builtins.str] direction: The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. :param pulumi.Input[_builtins.str] ether_type: The ethertype which the rule should match. :param pulumi.Input[Union['SecurityGroupRuleIcmpParametersArgs', 'SecurityGroupRuleIcmpParametersArgsDict']] icmp_parameters: ICMP Parameters. These parameters should only be provided if the protocol is ICMP. :param pulumi.Input[_builtins.str] ip_range: The remote IP range which the rule should match. @@ -533,7 +533,7 @@ def description(self) -> pulumi.Output[Optional[_builtins.str]]: @pulumi.getter def direction(self) -> pulumi.Output[_builtins.str]: """ - The direction of the traffic which the rule should match. Some of the possible values are: Supported values are: `ingress`, `egress`. + The direction of the traffic which the rule should match. Some of the possible values are: Possible values are: `ingress`, `egress`. """ return pulumi.get(self, "direction") diff --git a/sdk/python/pulumi_stackit/server.py b/sdk/python/pulumi_stackit/server.py index 50be626e..bfdfbdfe 100644 --- a/sdk/python/pulumi_stackit/server.py +++ b/sdk/python/pulumi_stackit/server.py @@ -40,7 +40,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] affinity_group: The affinity group the server is assigned to. :param pulumi.Input[_builtins.str] availability_zone: The availability zone of the server. :param pulumi.Input['ServerBootVolumeArgs'] boot_volume: The boot volume for the server - :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. :param pulumi.Input[_builtins.str] image_id: The image ID to be used for an ephemeral disk on the server. :param pulumi.Input[_builtins.str] keypair_name: The name of the keypair used during server creation. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container @@ -135,7 +135,7 @@ def boot_volume(self, value: Optional[pulumi.Input['ServerBootVolumeArgs']]): @pulumi.getter(name="desiredStatus") def desired_status(self) -> Optional[pulumi.Input[_builtins.str]]: """ - The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. """ return pulumi.get(self, "desired_status") @@ -241,7 +241,7 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] availability_zone: The availability zone of the server. :param pulumi.Input['ServerBootVolumeArgs'] boot_volume: The boot volume for the server :param pulumi.Input[_builtins.str] created_at: Date-time when the server was created - :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. :param pulumi.Input[_builtins.str] image_id: The image ID to be used for an ephemeral disk on the server. :param pulumi.Input[_builtins.str] keypair_name: The name of the keypair used during server creation. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container @@ -339,7 +339,7 @@ def created_at(self, value: Optional[pulumi.Input[_builtins.str]]): @pulumi.getter(name="desiredStatus") def desired_status(self) -> Optional[pulumi.Input[_builtins.str]]: """ - The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. """ return pulumi.get(self, "desired_status") @@ -523,7 +523,7 @@ def __init__(__self__, :param pulumi.Input[_builtins.str] affinity_group: The affinity group the server is assigned to. :param pulumi.Input[_builtins.str] availability_zone: The availability zone of the server. :param pulumi.Input[Union['ServerBootVolumeArgs', 'ServerBootVolumeArgsDict']] boot_volume: The boot volume for the server - :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. :param pulumi.Input[_builtins.str] image_id: The image ID to be used for an ephemeral disk on the server. :param pulumi.Input[_builtins.str] keypair_name: The name of the keypair used during server creation. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container @@ -651,7 +651,7 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] availability_zone: The availability zone of the server. :param pulumi.Input[Union['ServerBootVolumeArgs', 'ServerBootVolumeArgsDict']] boot_volume: The boot volume for the server :param pulumi.Input[_builtins.str] created_at: Date-time when the server was created - :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + :param pulumi.Input[_builtins.str] desired_status: The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. :param pulumi.Input[_builtins.str] image_id: The image ID to be used for an ephemeral disk on the server. :param pulumi.Input[_builtins.str] keypair_name: The name of the keypair used during server creation. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels are key-value string pairs which can be attached to a resource container @@ -722,7 +722,7 @@ def created_at(self) -> pulumi.Output[_builtins.str]: @pulumi.getter(name="desiredStatus") def desired_status(self) -> pulumi.Output[Optional[_builtins.str]]: """ - The desired status of the server resource. Supported values are: `active`, `inactive`, `deallocated`. + The desired status of the server resource. Possible values are: `active`, `inactive`, `deallocated`. """ return pulumi.get(self, "desired_status")