Bridge terraform-provider-dokploy into a Pulumi provider
18 resources and 5 data sources mapped into the dokploy:index module, with SDKs generated for TypeScript, Python, Go and .NET.
This commit is contained in:
79
.github/workflows/build.yml
vendored
Normal file
79
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
name: build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
|
env:
|
||||||
|
GO_VERSION: "1.25.x"
|
||||||
|
NODE_VERSION: "20.x"
|
||||||
|
PYTHON_VERSION: "3.11"
|
||||||
|
DOTNET_VERSION: "8.0.x"
|
||||||
|
# The provider's go.mod carries a local `replace` for the upstream Terraform
|
||||||
|
# provider, so it has to sit next to this checkout under this exact name.
|
||||||
|
UPSTREAM_REPO: maxvojtkov/terraform-provider-dokploy
|
||||||
|
UPSTREAM_DIR: dokploy-teraform
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout pulumi-dokploy
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: pulumi-dokploy
|
||||||
|
|
||||||
|
- name: Checkout upstream Terraform provider
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: ${{ env.UPSTREAM_REPO }}
|
||||||
|
path: ${{ env.UPSTREAM_DIR }}
|
||||||
|
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ${{ env.GO_VERSION }}
|
||||||
|
cache-dependency-path: |
|
||||||
|
pulumi-dokploy/provider/go.sum
|
||||||
|
pulumi-dokploy/sdk/go.sum
|
||||||
|
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: ${{ env.NODE_VERSION }}
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: ${{ env.PYTHON_VERSION }}
|
||||||
|
|
||||||
|
- uses: actions/setup-dotnet@v4
|
||||||
|
with:
|
||||||
|
dotnet-version: ${{ env.DOTNET_VERSION }}
|
||||||
|
|
||||||
|
- uses: pulumi/actions@v6
|
||||||
|
|
||||||
|
- name: Lint provider
|
||||||
|
working-directory: pulumi-dokploy
|
||||||
|
run: make lint
|
||||||
|
|
||||||
|
- name: Build provider plugin
|
||||||
|
working-directory: pulumi-dokploy
|
||||||
|
run: make provider
|
||||||
|
|
||||||
|
- name: Fail if the checked-in schema is stale
|
||||||
|
working-directory: pulumi-dokploy
|
||||||
|
run: git diff --exit-code -- provider/cmd/pulumi-resource-dokploy/schema.json
|
||||||
|
provider/cmd/pulumi-resource-dokploy/bridge-metadata.json
|
||||||
|
|
||||||
|
- name: Build SDKs
|
||||||
|
working-directory: pulumi-dokploy
|
||||||
|
run: make build_sdks
|
||||||
|
|
||||||
|
- name: Build Go SDK
|
||||||
|
working-directory: pulumi-dokploy/sdk
|
||||||
|
run: go build ./...
|
||||||
|
|
||||||
|
- name: Build .NET SDK
|
||||||
|
working-directory: pulumi-dokploy/sdk/dotnet
|
||||||
|
run: dotnet build --nologo
|
||||||
121
.github/workflows/release.yml
vendored
Normal file
121
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
name: release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*.*.*"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
GO_VERSION: "1.25.x"
|
||||||
|
NODE_VERSION: "20.x"
|
||||||
|
PYTHON_VERSION: "3.11"
|
||||||
|
DOTNET_VERSION: "8.0.x"
|
||||||
|
UPSTREAM_REPO: maxvojtkov/terraform-provider-dokploy
|
||||||
|
UPSTREAM_DIR: dokploy-teraform
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Publishes the plugin binaries. Pulumi resolves them from this release via
|
||||||
|
# the provider's `github://api.github.com/maxvojtkov/pulumi-dokploy` URL.
|
||||||
|
plugin:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: pulumi-dokploy
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: ${{ env.UPSTREAM_REPO }}
|
||||||
|
path: ${{ env.UPSTREAM_DIR }}
|
||||||
|
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ${{ env.GO_VERSION }}
|
||||||
|
|
||||||
|
- uses: goreleaser/goreleaser-action@v6
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
args: release --clean
|
||||||
|
workdir: pulumi-dokploy
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
sdks:
|
||||||
|
needs: plugin
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: pulumi-dokploy
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: ${{ env.UPSTREAM_REPO }}
|
||||||
|
path: ${{ env.UPSTREAM_DIR }}
|
||||||
|
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ${{ env.GO_VERSION }}
|
||||||
|
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: ${{ env.NODE_VERSION }}
|
||||||
|
registry-url: https://registry.npmjs.org
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: ${{ env.PYTHON_VERSION }}
|
||||||
|
|
||||||
|
- uses: actions/setup-dotnet@v4
|
||||||
|
with:
|
||||||
|
dotnet-version: ${{ env.DOTNET_VERSION }}
|
||||||
|
|
||||||
|
- name: Derive version from tag
|
||||||
|
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Build SDKs
|
||||||
|
working-directory: pulumi-dokploy
|
||||||
|
run: make build_sdks VERSION=${{ env.VERSION }}
|
||||||
|
|
||||||
|
- name: Publish to npm
|
||||||
|
working-directory: pulumi-dokploy/sdk/nodejs/bin
|
||||||
|
run: npm publish --access public
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
|
||||||
|
- name: Publish to PyPI
|
||||||
|
working-directory: pulumi-dokploy/sdk/python
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade build twine
|
||||||
|
python -m build
|
||||||
|
python -m twine upload dist/*
|
||||||
|
env:
|
||||||
|
TWINE_USERNAME: __token__
|
||||||
|
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
||||||
|
|
||||||
|
- name: Publish to NuGet
|
||||||
|
working-directory: pulumi-dokploy/sdk/dotnet
|
||||||
|
run: |
|
||||||
|
dotnet pack --configuration Release --output ./nupkg
|
||||||
|
dotnet nuget push ./nupkg/*.nupkg \
|
||||||
|
--source https://api.nuget.org/v3/index.json \
|
||||||
|
--api-key "$NUGET_PUBLISH_KEY" --skip-duplicate
|
||||||
|
env:
|
||||||
|
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
|
||||||
|
|
||||||
|
# Go modules are consumed straight from the repository, so the generated
|
||||||
|
# SDK has to be committed and tagged as `sdk/vX.Y.Z`.
|
||||||
|
- name: Commit and tag the Go SDK
|
||||||
|
working-directory: pulumi-dokploy
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git add sdk provider/cmd/pulumi-resource-dokploy/schema.json \
|
||||||
|
provider/cmd/pulumi-resource-dokploy/bridge-metadata.json
|
||||||
|
git diff --cached --quiet || git commit -m "chore: SDKs for v${{ env.VERSION }}"
|
||||||
|
git tag "sdk/v${{ env.VERSION }}"
|
||||||
|
git push origin HEAD:main --tags
|
||||||
29
.gitignore
vendored
Normal file
29
.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Provider and codegen binaries
|
||||||
|
/bin/
|
||||||
|
|
||||||
|
# The generated SDKs under sdk/ ARE committed — Go module consumers fetch them
|
||||||
|
# straight from this repo. Only their build output is ignored.
|
||||||
|
/sdk/nodejs/bin/
|
||||||
|
/sdk/nodejs/node_modules/
|
||||||
|
/sdk/dotnet/bin/
|
||||||
|
/sdk/dotnet/obj/
|
||||||
|
/sdk/python/build/
|
||||||
|
/sdk/python/dist/
|
||||||
|
/sdk/python/*.egg-info/
|
||||||
|
__pycache__/
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# Pulumi stack state from examples
|
||||||
|
Pulumi.*.yaml
|
||||||
|
!examples/**/Pulumi.yaml
|
||||||
|
.pulumi/
|
||||||
|
|
||||||
|
# Go
|
||||||
|
vendor/
|
||||||
|
*.test
|
||||||
|
coverage.out
|
||||||
|
|
||||||
|
# Example dependencies
|
||||||
|
/examples/**/node_modules/
|
||||||
|
/examples/**/package-lock.json
|
||||||
|
/examples/**/venv/
|
||||||
55
.goreleaser.yml
Normal file
55
.goreleaser.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# Builds the provider plugin for every platform Pulumi supports and publishes
|
||||||
|
# the archives to a GitHub release. The archive names must match what
|
||||||
|
# `PluginDownloadURL: github://api.github.com/maxvojtkov/pulumi-dokploy`
|
||||||
|
# expects, so do not rename them.
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
project_name: pulumi-dokploy
|
||||||
|
|
||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- go -C provider mod download
|
||||||
|
|
||||||
|
builds:
|
||||||
|
- id: pulumi-resource-dokploy
|
||||||
|
dir: provider
|
||||||
|
main: ./cmd/pulumi-resource-dokploy
|
||||||
|
binary: pulumi-resource-dokploy
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
flags:
|
||||||
|
- -trimpath
|
||||||
|
ldflags:
|
||||||
|
- -s -w
|
||||||
|
- -X github.com/maxvojtkov/pulumi-dokploy/provider/pkg/version.Version={{ .Version }}
|
||||||
|
goos:
|
||||||
|
- darwin
|
||||||
|
- linux
|
||||||
|
- windows
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
- arm64
|
||||||
|
|
||||||
|
archives:
|
||||||
|
- id: plugin
|
||||||
|
formats: [tar.gz]
|
||||||
|
name_template: "{{ .Binary }}-v{{ .Version }}-{{ .Os }}-{{ .Arch }}"
|
||||||
|
files:
|
||||||
|
- none*
|
||||||
|
|
||||||
|
checksum:
|
||||||
|
name_template: "{{ .ProjectName }}_{{ .Version }}_checksums.txt"
|
||||||
|
|
||||||
|
snapshot:
|
||||||
|
version_template: "{{ .Version }}-SNAPSHOT"
|
||||||
|
|
||||||
|
changelog:
|
||||||
|
use: github
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- "^docs:"
|
||||||
|
- "^chore:"
|
||||||
|
- "^test:"
|
||||||
|
|
||||||
|
release:
|
||||||
|
prerelease: auto
|
||||||
356
LICENSE
Normal file
356
LICENSE
Normal file
@@ -0,0 +1,356 @@
|
|||||||
|
Copyright (c) 2026 Max Vojtkov
|
||||||
|
|
||||||
|
Mozilla Public License, version 2.0
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
|
||||||
|
1.1. “Contributor”
|
||||||
|
|
||||||
|
means each individual or legal entity that creates, contributes to the
|
||||||
|
creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. “Contributor Version”
|
||||||
|
|
||||||
|
means the combination of the Contributions of others (if any) used by a
|
||||||
|
Contributor and that particular Contributor’s Contribution.
|
||||||
|
|
||||||
|
1.3. “Contribution”
|
||||||
|
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. “Covered Software”
|
||||||
|
|
||||||
|
means Source Code Form to which the initial Contributor has attached the
|
||||||
|
notice in Exhibit A, the Executable Form of such Source Code Form, and
|
||||||
|
Modifications of such Source Code Form, in each case including portions
|
||||||
|
thereof.
|
||||||
|
|
||||||
|
1.5. “Incompatible With Secondary Licenses”
|
||||||
|
means
|
||||||
|
|
||||||
|
a. that the initial Contributor has attached the notice described in
|
||||||
|
Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
b. that the Covered Software was made available under the terms of version
|
||||||
|
1.1 or earlier of the License, but not also under the terms of a
|
||||||
|
Secondary License.
|
||||||
|
|
||||||
|
1.6. “Executable Form”
|
||||||
|
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. “Larger Work”
|
||||||
|
|
||||||
|
means a work that combines Covered Software with other material, in a separate
|
||||||
|
file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. “License”
|
||||||
|
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. “Licensable”
|
||||||
|
|
||||||
|
means having the right to grant, to the maximum extent possible, whether at the
|
||||||
|
time of the initial grant or subsequently, any and all of the rights conveyed by
|
||||||
|
this License.
|
||||||
|
|
||||||
|
1.10. “Modifications”
|
||||||
|
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
a. any file in Source Code Form that results from an addition to, deletion
|
||||||
|
from, or modification of the contents of Covered Software; or
|
||||||
|
|
||||||
|
b. any new file in Source Code Form that contains any Covered Software.
|
||||||
|
|
||||||
|
1.11. “Patent Claims” of a Contributor
|
||||||
|
|
||||||
|
means any patent claim(s), including without limitation, method, process,
|
||||||
|
and apparatus claims, in any patent Licensable by such Contributor that
|
||||||
|
would be infringed, but for the grant of the License, by the making,
|
||||||
|
using, selling, offering for sale, having made, import, or transfer of
|
||||||
|
either its Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
1.12. “Secondary License”
|
||||||
|
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU Lesser
|
||||||
|
General Public License, Version 2.1, the GNU Affero General Public
|
||||||
|
License, Version 3.0, or any later versions of those licenses.
|
||||||
|
|
||||||
|
1.13. “Source Code Form”
|
||||||
|
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. “You” (or “Your”)
|
||||||
|
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, “You” includes any entity that controls, is
|
||||||
|
controlled by, or is under common control with You. For purposes of this
|
||||||
|
definition, “control” means (a) the power, direct or indirect, to cause
|
||||||
|
the direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (b) ownership of more than fifty percent (50%) of the
|
||||||
|
outstanding shares or beneficial ownership of such entity.
|
||||||
|
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
a. under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or as
|
||||||
|
part of a Larger Work; and
|
||||||
|
|
||||||
|
b. under Patent Claims of such Contributor to make, use, sell, offer for
|
||||||
|
sale, have made, import, and otherwise transfer either its Contributions
|
||||||
|
or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution become
|
||||||
|
effective for each Contribution on the date the Contributor first distributes
|
||||||
|
such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under this
|
||||||
|
License. No additional rights or licenses will be implied from the distribution
|
||||||
|
or licensing of Covered Software under this License. Notwithstanding Section
|
||||||
|
2.1(b) above, no patent license is granted by a Contributor:
|
||||||
|
|
||||||
|
a. for any code that a Contributor has removed from Covered Software; or
|
||||||
|
|
||||||
|
b. for infringements caused by: (i) Your and any other third party’s
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
c. under Patent Claims infringed by Covered Software in the absence of its
|
||||||
|
Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks, or
|
||||||
|
logos of any Contributor (except as may be necessary to comply with the
|
||||||
|
notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this License
|
||||||
|
(see Section 10.2) or under the terms of a Secondary License (if permitted
|
||||||
|
under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its Contributions
|
||||||
|
are its original creation(s) or it has sufficient rights to grant the
|
||||||
|
rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under applicable
|
||||||
|
copyright doctrines of fair use, fair dealing, or other equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
|
||||||
|
Section 2.1.
|
||||||
|
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under the
|
||||||
|
terms of this License. You must inform recipients that the Source Code Form
|
||||||
|
of the Covered Software is governed by the terms of this License, and how
|
||||||
|
they can obtain a copy of this License. You may not attempt to alter or
|
||||||
|
restrict the recipients’ rights in the Source Code Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
a. such Covered Software must also be made available in Source Code Form,
|
||||||
|
as described in Section 3.1, and You must inform recipients of the
|
||||||
|
Executable Form how they can obtain a copy of such Source Code Form by
|
||||||
|
reasonable means in a timely manner, at a charge no more than the cost
|
||||||
|
of distribution to the recipient; and
|
||||||
|
|
||||||
|
b. You may distribute such Executable Form under the terms of this License,
|
||||||
|
or sublicense it under different terms, provided that the license for
|
||||||
|
the Executable Form does not attempt to limit or alter the recipients’
|
||||||
|
rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for the
|
||||||
|
Covered Software. If the Larger Work is a combination of Covered Software
|
||||||
|
with a work governed by one or more Secondary Licenses, and the Covered
|
||||||
|
Software is not Incompatible With Secondary Licenses, this License permits
|
||||||
|
You to additionally distribute such Covered Software under the terms of
|
||||||
|
such Secondary License(s), so that the recipient of the Larger Work may, at
|
||||||
|
their option, further distribute the Covered Software under the terms of
|
||||||
|
either this License or such Secondary License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices (including
|
||||||
|
copyright notices, patent notices, disclaimers of warranty, or limitations
|
||||||
|
of liability) contained within the Source Code Form of the Covered
|
||||||
|
Software, except that You may alter any license notices to the extent
|
||||||
|
required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on behalf
|
||||||
|
of any Contributor. You must make it absolutely clear that any such
|
||||||
|
warranty, support, indemnity, or liability obligation is offered by You
|
||||||
|
alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this License
|
||||||
|
with respect to some or all of the Covered Software due to statute, judicial
|
||||||
|
order, or regulation then You must: (a) comply with the terms of this License
|
||||||
|
to the maximum extent possible; and (b) describe the limitations and the code
|
||||||
|
they affect. Such description must be placed in a text file included with all
|
||||||
|
distributions of the Covered Software under this License. Except to the
|
||||||
|
extent prohibited by statute or regulation, such description must be
|
||||||
|
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||||
|
understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically if You
|
||||||
|
fail to comply with any of its terms. However, if You become compliant,
|
||||||
|
then the rights granted under this License from a particular Contributor
|
||||||
|
are reinstated (a) provisionally, unless and until such Contributor
|
||||||
|
explicitly and finally terminates Your grants, and (b) on an ongoing basis,
|
||||||
|
if such Contributor fails to notify You of the non-compliance by some
|
||||||
|
reasonable means prior to 60 days after You have come back into compliance.
|
||||||
|
Moreover, Your grants from a particular Contributor are reinstated on an
|
||||||
|
ongoing basis if such Contributor notifies You of the non-compliance by
|
||||||
|
some reasonable means, this is the first time You have received notice of
|
||||||
|
non-compliance with this License from such Contributor, and You become
|
||||||
|
compliant prior to 30 days after Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions, counter-claims,
|
||||||
|
and cross-claims) alleging that a Contributor Version directly or
|
||||||
|
indirectly infringes any patent, then the rights granted to You by any and
|
||||||
|
all Contributors for the Covered Software under Section 2.1 of this License
|
||||||
|
shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
|
||||||
|
license agreements (excluding distributors and resellers) which have been
|
||||||
|
validly granted by You or Your distributors under this License prior to
|
||||||
|
termination shall survive termination.
|
||||||
|
|
||||||
|
6. Disclaimer of Warranty
|
||||||
|
|
||||||
|
Covered Software is provided under this License on an “as is” basis, without
|
||||||
|
warranty of any kind, either expressed, implied, or statutory, including,
|
||||||
|
without limitation, warranties that the Covered Software is free of defects,
|
||||||
|
merchantable, fit for a particular purpose or non-infringing. The entire
|
||||||
|
risk as to the quality and performance of the Covered Software is with You.
|
||||||
|
Should any Covered Software prove defective in any respect, You (not any
|
||||||
|
Contributor) assume the cost of any necessary servicing, repair, or
|
||||||
|
correction. This disclaimer of warranty constitutes an essential part of this
|
||||||
|
License. No use of any Covered Software is authorized under this License
|
||||||
|
except under this disclaimer.
|
||||||
|
|
||||||
|
7. Limitation of Liability
|
||||||
|
|
||||||
|
Under no circumstances and under no legal theory, whether tort (including
|
||||||
|
negligence), contract, or otherwise, shall any Contributor, or anyone who
|
||||||
|
distributes Covered Software as permitted above, be liable to You for any
|
||||||
|
direct, indirect, special, incidental, or consequential damages of any
|
||||||
|
character including, without limitation, damages for lost profits, loss of
|
||||||
|
goodwill, work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses, even if such party shall have been
|
||||||
|
informed of the possibility of such damages. This limitation of liability
|
||||||
|
shall not apply to liability for death or personal injury resulting from such
|
||||||
|
party’s negligence to the extent applicable law prohibits such limitation.
|
||||||
|
Some jurisdictions do not allow the exclusion or limitation of incidental or
|
||||||
|
consequential damages, so this exclusion and limitation may not apply to You.
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the courts of
|
||||||
|
a jurisdiction where the defendant maintains its principal place of business
|
||||||
|
and such litigation shall be governed by laws of that jurisdiction, without
|
||||||
|
reference to its conflict-of-law provisions. Nothing in this Section shall
|
||||||
|
prevent a party’s ability to bring cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject matter
|
||||||
|
hereof. If any provision of this License is held to be unenforceable, such
|
||||||
|
provision shall be reformed only to the extent necessary to make it
|
||||||
|
enforceable. Any law or regulation which provides that the language of a
|
||||||
|
contract shall be construed against the drafter shall not be used to construe
|
||||||
|
this License against a Contributor.
|
||||||
|
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version of
|
||||||
|
the License under which You originally received the Covered Software, or
|
||||||
|
under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a modified
|
||||||
|
version of this License if you rename the license and remove any
|
||||||
|
references to the name of the license steward (except to note that such
|
||||||
|
modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
|
||||||
|
This Source Code Form is subject to the
|
||||||
|
terms of the Mozilla Public License, v.
|
||||||
|
2.0. If a copy of the MPL was not
|
||||||
|
distributed with this file, You can
|
||||||
|
obtain one at
|
||||||
|
http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular file, then
|
||||||
|
You may include the notice in a location (such as a LICENSE file in a relevant
|
||||||
|
directory) where a recipient would be likely to look for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - “Incompatible With Secondary Licenses” Notice
|
||||||
|
|
||||||
|
This Source Code Form is “Incompatible
|
||||||
|
With Secondary Licenses”, as defined by
|
||||||
|
the Mozilla Public License, v. 2.0.
|
||||||
|
|
||||||
89
Makefile
Normal file
89
Makefile
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
PACK := dokploy
|
||||||
|
ORG := maxvojtkov
|
||||||
|
PROJECT := github.com/$(ORG)/pulumi-$(PACK)
|
||||||
|
PROVIDER_PATH := provider
|
||||||
|
VERSION_PATH := $(PROVIDER_PATH)/pkg/version.Version
|
||||||
|
|
||||||
|
TFGEN := pulumi-tfgen-$(PACK)
|
||||||
|
PROVIDER := pulumi-resource-$(PACK)
|
||||||
|
|
||||||
|
WORKING_DIR := $(shell pwd)
|
||||||
|
SCHEMA_DIR := $(WORKING_DIR)/provider/cmd/$(PROVIDER)
|
||||||
|
|
||||||
|
# Override on the command line for a release build, e.g. `make build VERSION=0.2.0`.
|
||||||
|
VERSION ?= 0.1.0
|
||||||
|
LDFLAGS := -X $(PROJECT)/$(VERSION_PATH)=$(VERSION)
|
||||||
|
|
||||||
|
JAVASCRIPT_PKG := @$(ORG)/pulumi-$(PACK)
|
||||||
|
PYTHON_PKG := pulumi_$(PACK)
|
||||||
|
|
||||||
|
.PHONY: default
|
||||||
|
default: provider build_sdks ## Build the provider plugin and all SDKs
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- code gen ---
|
||||||
|
|
||||||
|
.PHONY: tfgen
|
||||||
|
tfgen: ## Regenerate schema.json and bridge-metadata.json
|
||||||
|
(cd provider && go build -o $(WORKING_DIR)/bin/$(TFGEN) -ldflags "$(LDFLAGS)" $(PROJECT)/$(PROVIDER_PATH)/cmd/$(TFGEN))
|
||||||
|
$(WORKING_DIR)/bin/$(TFGEN) schema --out $(SCHEMA_DIR)
|
||||||
|
|
||||||
|
.PHONY: provider
|
||||||
|
provider: tfgen ## Build the provider plugin binary into bin/
|
||||||
|
(cd provider && go build -o $(WORKING_DIR)/bin/$(PROVIDER) -ldflags "$(LDFLAGS)" $(PROJECT)/$(PROVIDER_PATH)/cmd/$(PROVIDER))
|
||||||
|
|
||||||
|
.PHONY: build_sdks
|
||||||
|
build_sdks: build_nodejs build_python build_go build_dotnet ## Generate every language SDK
|
||||||
|
|
||||||
|
# sdk/nodejs/bin is what gets published to npm, so package.json and the docs
|
||||||
|
# have to be copied in next to the compiled JavaScript.
|
||||||
|
.PHONY: build_nodejs
|
||||||
|
build_nodejs: tfgen
|
||||||
|
rm -rf sdk/nodejs
|
||||||
|
$(WORKING_DIR)/bin/$(TFGEN) nodejs --out sdk/nodejs/
|
||||||
|
cd sdk/nodejs && npm install && npm run build
|
||||||
|
cp README.md LICENSE sdk/nodejs/package.json sdk/nodejs/bin/
|
||||||
|
|
||||||
|
.PHONY: build_python
|
||||||
|
build_python: tfgen
|
||||||
|
rm -rf sdk/python
|
||||||
|
$(WORKING_DIR)/bin/$(TFGEN) python --out sdk/python/
|
||||||
|
cp README.md LICENSE sdk/python/
|
||||||
|
|
||||||
|
.PHONY: build_go
|
||||||
|
build_go: tfgen
|
||||||
|
rm -rf sdk/go
|
||||||
|
$(WORKING_DIR)/bin/$(TFGEN) go --out sdk/go/
|
||||||
|
|
||||||
|
.PHONY: build_dotnet
|
||||||
|
build_dotnet: tfgen
|
||||||
|
rm -rf sdk/dotnet
|
||||||
|
$(WORKING_DIR)/bin/$(TFGEN) dotnet --out sdk/dotnet/
|
||||||
|
cp README.md LICENSE sdk/dotnet/
|
||||||
|
printf "$(VERSION)" > sdk/dotnet/version.txt
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------ local ----
|
||||||
|
|
||||||
|
.PHONY: install
|
||||||
|
install: provider install_nodejs_sdk ## Install the plugin locally so `pulumi up` can find it
|
||||||
|
pulumi plugin install resource $(PACK) $(VERSION) --file $(WORKING_DIR)/bin/$(PROVIDER) --reinstall
|
||||||
|
|
||||||
|
.PHONY: install_nodejs_sdk
|
||||||
|
install_nodejs_sdk:
|
||||||
|
@if [ -d sdk/nodejs/bin ]; then yarn link --cwd sdk/nodejs/bin; fi
|
||||||
|
|
||||||
|
.PHONY: lint
|
||||||
|
lint: ## Vet and format-check the provider sources
|
||||||
|
cd provider && go vet ./... && test -z "$$(gofmt -l .)"
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: ## Run provider unit tests
|
||||||
|
cd provider && go test ./... -count=1
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean: ## Remove build artifacts and generated SDKs
|
||||||
|
rm -rf bin sdk/nodejs sdk/python sdk/go sdk/dotnet
|
||||||
|
|
||||||
|
.PHONY: help
|
||||||
|
help:
|
||||||
|
@grep -hE '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) \
|
||||||
|
| awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-16s\033[0m %s\n", $$1, $$2}'
|
||||||
206
README.md
Normal file
206
README.md
Normal file
@@ -0,0 +1,206 @@
|
|||||||
|
# pulumi-dokploy
|
||||||
|
|
||||||
|
A Pulumi provider for [Dokploy](https://dokploy.com): projects, environments,
|
||||||
|
applications, Compose stacks, managed databases, domains, mounts, ports,
|
||||||
|
redirects, basic auth, registries, SSH keys, certificates and backup
|
||||||
|
destinations.
|
||||||
|
|
||||||
|
This is a *bridged* provider. All of the behaviour lives in
|
||||||
|
[`terraform-provider-dokploy`](https://github.com/maxvojtkov/terraform-provider-dokploy);
|
||||||
|
[`pulumi-terraform-bridge`](https://github.com/pulumi/pulumi-terraform-bridge)
|
||||||
|
turns it into a Pulumi package with typed SDKs for TypeScript, Python, Go and
|
||||||
|
.NET. The two providers stay in lockstep — a resource added upstream shows up
|
||||||
|
here after a `make tfgen`.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import * as dokploy from "@maxvojtkov/pulumi-dokploy";
|
||||||
|
|
||||||
|
const shop = new dokploy.Project("shop", { name: "shop" });
|
||||||
|
|
||||||
|
const db = new dokploy.Postgres("db", {
|
||||||
|
name: "shop-db",
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
dockerImage: "postgres:16-alpine",
|
||||||
|
databaseName: "shop",
|
||||||
|
databaseUser: "shop",
|
||||||
|
databasePassword: dbPassword,
|
||||||
|
});
|
||||||
|
|
||||||
|
const api = new dokploy.Application("api", {
|
||||||
|
name: "api",
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
sourceType: "docker",
|
||||||
|
dockerImage: "ghcr.io/acme/api:1.4.0",
|
||||||
|
env: pulumi.interpolate`DATABASE_URL=postgresql://shop:${dbPassword}@${db.appName}:5432/shop`,
|
||||||
|
});
|
||||||
|
|
||||||
|
new dokploy.Domain("api", {
|
||||||
|
applicationId: api.id,
|
||||||
|
domainType: "application",
|
||||||
|
host: "api.example.com",
|
||||||
|
port: 3000,
|
||||||
|
https: true,
|
||||||
|
certificateType: "letsencrypt",
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
- [Installing](#installing)
|
||||||
|
- [Configuration](#configuration)
|
||||||
|
- [Resources and data sources](#resources-and-data-sources)
|
||||||
|
- [Differences from the Terraform provider](#differences-from-the-terraform-provider)
|
||||||
|
- [Examples](#examples)
|
||||||
|
- [Development](#development)
|
||||||
|
- [Releasing](#releasing)
|
||||||
|
|
||||||
|
## Installing
|
||||||
|
|
||||||
|
The SDKs are published per language; the plugin binary is resolved
|
||||||
|
automatically from this repository's GitHub releases.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# TypeScript / JavaScript
|
||||||
|
npm install @maxvojtkov/pulumi-dokploy
|
||||||
|
|
||||||
|
# Python
|
||||||
|
pip install pulumi_dokploy
|
||||||
|
|
||||||
|
# Go
|
||||||
|
go get github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy
|
||||||
|
|
||||||
|
# .NET
|
||||||
|
dotnet add package Maxvojtkov.Dokploy
|
||||||
|
```
|
||||||
|
|
||||||
|
Before the first release, build and install it locally instead:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install VERSION=0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
That drops `pulumi-resource-dokploy` into the local plugin cache, so
|
||||||
|
`pulumi up` finds it without a network fetch.
|
||||||
|
|
||||||
|
### Do I need the static SDK?
|
||||||
|
|
||||||
|
Not necessarily. Pulumi can consume the Terraform provider directly, with no
|
||||||
|
build step and no published SDK:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pulumi package add terraform-provider maxvojtkov/dokploy
|
||||||
|
```
|
||||||
|
|
||||||
|
That generates a local SDK on the spot and is the fastest way to try things.
|
||||||
|
Use this repository when you want a *versioned, published* package — stable
|
||||||
|
tokens across releases, real package-manager installs, and SDKs your teammates
|
||||||
|
can depend on without a codegen step.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
| Setting | Environment variable | Required | Description |
|
||||||
|
| ---------------------- | ------------------------- | -------- | --------------------------------------------------------------------------- |
|
||||||
|
| `dokploy:host` | `DOKPLOY_HOST` | yes | Base URL of the instance, e.g. `https://dokploy.example.com`. Trailing `/api` optional. |
|
||||||
|
| `dokploy:apiKey` | `DOKPLOY_API_KEY` | yes | Token from *Settings → Profile → API/CLI*. Always treated as a secret. |
|
||||||
|
| `dokploy:timeoutSeconds` | `DOKPLOY_TIMEOUT_SECONDS` | no | Per-request timeout. Defaults to `60`. |
|
||||||
|
| `dokploy:insecureSkipVerify` | — | no | Skip TLS verification. Only for self-signed certificates. |
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pulumi config set dokploy:host https://dokploy.example.com
|
||||||
|
pulumi config set --secret dokploy:apiKey "$DOKPLOY_API_KEY"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resources and data sources
|
||||||
|
|
||||||
|
| Group | Resources |
|
||||||
|
| ------------ | ------------------------------------------------------------------------- |
|
||||||
|
| Structure | `Project`, `Environment` |
|
||||||
|
| Services | `Application`, `Compose` |
|
||||||
|
| Databases | `Postgres`, `MySql`, `MariaDb`, `Mongo`, `Redis` |
|
||||||
|
| Networking | `Domain`, `Mount`, `Port`, `Redirect`, `Security` |
|
||||||
|
| Account | `Registry`, `SshKey`, `Certificate`, `Destination` |
|
||||||
|
|
||||||
|
Data sources: `getProject`, `getProjects`, `getEnvironment`, `getApplication`,
|
||||||
|
`getServers`.
|
||||||
|
|
||||||
|
## Differences from the Terraform provider
|
||||||
|
|
||||||
|
Everything is a mechanical translation of the Terraform provider, with three
|
||||||
|
Pulumi conventions applied on top:
|
||||||
|
|
||||||
|
- **Attribute names are camelCase.** `environment_id` → `environmentId`,
|
||||||
|
`default_environment_id` → `defaultEnvironmentId`, and so on.
|
||||||
|
- **`name` is auto-generated when you omit it.** Pulumi appends a random
|
||||||
|
suffix to the logical resource name, the same way the AWS provider does. Pass
|
||||||
|
`name` explicitly whenever the Dokploy-side name matters to you.
|
||||||
|
- **The `web-service` Terraform module has no direct equivalent.** Write it as
|
||||||
|
a [ComponentResource](https://www.pulumi.com/docs/concepts/resources/components/)
|
||||||
|
instead — see [`examples/typescript/webService.ts`](examples/typescript/webService.ts),
|
||||||
|
which is a port of that module.
|
||||||
|
|
||||||
|
The [known API quirks](https://github.com/maxvojtkov/terraform-provider-dokploy#known-api-quirks)
|
||||||
|
documented upstream apply here unchanged, because it is the same code doing the
|
||||||
|
work.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
- [`examples/typescript`](examples/typescript) — a full environment: project,
|
||||||
|
staging environment, Postgres, Redis, a GitHub-built web service behind a
|
||||||
|
domain, a basic-auth-protected internal tool, and a Compose stack.
|
||||||
|
- [`examples/python`](examples/python) — a small project, database and app.
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Requirements: Go 1.25+, Node 20+, Python 3.9+, .NET 8+, and `pulumi`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make tfgen # regenerate schema.json and bridge-metadata.json
|
||||||
|
make provider # build the plugin binary into bin/
|
||||||
|
make build_sdks # regenerate all four SDKs
|
||||||
|
make install # install the plugin into the local Pulumi plugin cache
|
||||||
|
make lint test
|
||||||
|
```
|
||||||
|
|
||||||
|
`provider/resources.go` is the whole mapping layer: Terraform type names to
|
||||||
|
Pulumi tokens, and Terraform provider configuration to Pulumi configuration.
|
||||||
|
Adding an upstream resource means adding one line there and re-running
|
||||||
|
`make tfgen build_sdks`.
|
||||||
|
|
||||||
|
### The upstream dependency
|
||||||
|
|
||||||
|
`provider/go.mod` currently carries:
|
||||||
|
|
||||||
|
```
|
||||||
|
replace github.com/maxvojtkov/terraform-provider-dokploy => ../../dokploy-teraform
|
||||||
|
```
|
||||||
|
|
||||||
|
so the two repositories can be developed side by side. CI reproduces that
|
||||||
|
layout by checking the upstream provider out as a sibling directory. Once
|
||||||
|
`terraform-provider-dokploy` is tagged on GitHub, drop the `replace` and pin a
|
||||||
|
real version instead:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd provider && go mod edit -dropreplace github.com/maxvojtkov/terraform-provider-dokploy \
|
||||||
|
&& go get github.com/maxvojtkov/terraform-provider-dokploy@v0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
The upstream provider exposes itself through its `shim` package
|
||||||
|
(`shim.NewProvider(version)`), because `internal/provider` is not importable
|
||||||
|
from outside that module.
|
||||||
|
|
||||||
|
## Releasing
|
||||||
|
|
||||||
|
Tag the repository and the `release` workflow does the rest:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git tag v0.1.0 && git push origin v0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
It publishes plugin binaries to a GitHub release via GoReleaser, pushes the
|
||||||
|
npm / PyPI / NuGet packages, and commits and tags the Go SDK as `sdk/v0.1.0`.
|
||||||
|
The workflow needs three repository secrets: `NPM_TOKEN`, `PYPI_API_TOKEN` and
|
||||||
|
`NUGET_PUBLISH_KEY`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MPL-2.0](LICENSE).
|
||||||
7
examples/python/Pulumi.yaml
Normal file
7
examples/python/Pulumi.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
name: dokploy-python
|
||||||
|
runtime:
|
||||||
|
name: python
|
||||||
|
options:
|
||||||
|
toolchain: pip
|
||||||
|
virtualenv: venv
|
||||||
|
description: A small Dokploy stack built with Pulumi and Python
|
||||||
59
examples/python/__main__.py
Normal file
59
examples/python/__main__.py
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
"""A small Dokploy stack: a project, a Postgres instance and a public app.
|
||||||
|
|
||||||
|
export DOKPLOY_HOST=https://dokploy.example.com
|
||||||
|
export DOKPLOY_API_KEY=...
|
||||||
|
pulumi up
|
||||||
|
"""
|
||||||
|
|
||||||
|
import pulumi
|
||||||
|
import pulumi_dokploy as dokploy
|
||||||
|
import pulumi_random as random
|
||||||
|
|
||||||
|
shop = dokploy.Project(
|
||||||
|
"shop",
|
||||||
|
name="shop",
|
||||||
|
description="Storefront and its backing services",
|
||||||
|
)
|
||||||
|
|
||||||
|
db_password = random.RandomPassword("postgres", length=32, special=False)
|
||||||
|
|
||||||
|
db = dokploy.Postgres(
|
||||||
|
"db",
|
||||||
|
name="shop-db",
|
||||||
|
environment_id=shop.default_environment_id,
|
||||||
|
docker_image="postgres:16-alpine",
|
||||||
|
database_name="shop",
|
||||||
|
database_user="shop",
|
||||||
|
database_password=db_password.result,
|
||||||
|
memory_limit="1g",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Dokploy resolves service names on the shared Docker network, so the database
|
||||||
|
# is reachable by its generated app_name.
|
||||||
|
database_url = pulumi.Output.all(db.app_name, db_password.result).apply(
|
||||||
|
lambda args: f"DATABASE_URL=postgresql://shop:{args[1]}@{args[0]}:5432/shop"
|
||||||
|
)
|
||||||
|
|
||||||
|
api = dokploy.Application(
|
||||||
|
"api",
|
||||||
|
name="api",
|
||||||
|
environment_id=shop.default_environment_id,
|
||||||
|
source_type="docker",
|
||||||
|
docker_image="ghcr.io/acme/api:1.4.0",
|
||||||
|
env=database_url,
|
||||||
|
replicas=2,
|
||||||
|
memory_limit="512m",
|
||||||
|
)
|
||||||
|
|
||||||
|
dokploy.Domain(
|
||||||
|
"api",
|
||||||
|
application_id=api.id,
|
||||||
|
domain_type="application",
|
||||||
|
host="api.example.com",
|
||||||
|
port=3000,
|
||||||
|
https=True,
|
||||||
|
certificate_type="letsencrypt",
|
||||||
|
)
|
||||||
|
|
||||||
|
pulumi.export("project_id", shop.id)
|
||||||
|
pulumi.export("api_id", api.id)
|
||||||
3
examples/python/requirements.txt
Normal file
3
examples/python/requirements.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
pulumi>=3.0.0,<4.0.0
|
||||||
|
pulumi-random>=4.0.0,<5.0.0
|
||||||
|
pulumi_dokploy>=0.1.0,<1.0.0
|
||||||
9
examples/typescript/Pulumi.yaml
Normal file
9
examples/typescript/Pulumi.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
name: dokploy-complete
|
||||||
|
runtime: nodejs
|
||||||
|
description: A complete Dokploy environment built with Pulumi
|
||||||
|
config:
|
||||||
|
dokploy-complete:githubProviderId:
|
||||||
|
description: ID of the GitHub provider configured in Dokploy
|
||||||
|
dokploy-complete:adminPassword:
|
||||||
|
description: Basic-auth password for the staging admin tool
|
||||||
|
secret: true
|
||||||
148
examples/typescript/index.ts
Normal file
148
examples/typescript/index.ts
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
// A complete Dokploy environment: a project, a staging environment, a public
|
||||||
|
// web service with a database and a cache behind it, and a Compose stack.
|
||||||
|
//
|
||||||
|
// export DOKPLOY_HOST=https://dokploy.example.com
|
||||||
|
// export DOKPLOY_API_KEY=...
|
||||||
|
// pulumi up
|
||||||
|
|
||||||
|
import * as pulumi from "@pulumi/pulumi";
|
||||||
|
import * as random from "@pulumi/random";
|
||||||
|
import * as dokploy from "@maxvojtkov/pulumi-dokploy";
|
||||||
|
|
||||||
|
import { WebService } from "./webService";
|
||||||
|
|
||||||
|
const config = new pulumi.Config();
|
||||||
|
const githubProviderId = config.require("githubProviderId");
|
||||||
|
const adminPassword = config.requireSecret("adminPassword");
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------- structure
|
||||||
|
|
||||||
|
const shop = new dokploy.Project("shop", {
|
||||||
|
name: "shop",
|
||||||
|
description: "Storefront and its backing services",
|
||||||
|
// Shared by every service in the project.
|
||||||
|
env: "TZ=Europe/Bucharest",
|
||||||
|
});
|
||||||
|
|
||||||
|
// Dokploy creates a default "production" environment with the project; add a
|
||||||
|
// second one for staging.
|
||||||
|
const staging = new dokploy.Environment("staging", {
|
||||||
|
name: "staging",
|
||||||
|
description: "Pre-production",
|
||||||
|
projectId: shop.id,
|
||||||
|
env: "LOG_LEVEL=debug",
|
||||||
|
});
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------ secrets
|
||||||
|
|
||||||
|
const postgresPassword = new random.RandomPassword("postgres", { length: 32, special: false });
|
||||||
|
const redisPassword = new random.RandomPassword("redis", { length: 32, special: false });
|
||||||
|
|
||||||
|
// --------------------------------------------------------------- datastores
|
||||||
|
|
||||||
|
const db = new dokploy.Postgres("db", {
|
||||||
|
name: "shop-db",
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
dockerImage: "postgres:16-alpine",
|
||||||
|
databaseName: "shop",
|
||||||
|
databaseUser: "shop",
|
||||||
|
databasePassword: postgresPassword.result,
|
||||||
|
memoryLimit: "1g",
|
||||||
|
cpuLimit: "1",
|
||||||
|
memoryReservation: "256m",
|
||||||
|
});
|
||||||
|
|
||||||
|
const cache = new dokploy.Redis("cache", {
|
||||||
|
name: "shop-cache",
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
dockerImage: "redis:7-alpine",
|
||||||
|
databasePassword: redisPassword.result,
|
||||||
|
memoryLimit: "256m",
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------------- the web service
|
||||||
|
|
||||||
|
// Dokploy resolves service names on the shared Docker network, so the database
|
||||||
|
// is reachable by its generated appName.
|
||||||
|
const storefrontEnv = pulumi
|
||||||
|
.all([db.appName, postgresPassword.result, cache.appName, redisPassword.result])
|
||||||
|
.apply(([dbHost, dbPass, cacheHost, cachePass]) => [
|
||||||
|
`DATABASE_URL=postgresql://shop:${dbPass}@${dbHost}:5432/shop`,
|
||||||
|
`REDIS_URL=redis://:${cachePass}@${cacheHost}:6379`,
|
||||||
|
"NODE_ENV=production",
|
||||||
|
].join("\n"));
|
||||||
|
|
||||||
|
const storefront = new WebService("storefront", {
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
description: "Public storefront",
|
||||||
|
github: {
|
||||||
|
githubId: githubProviderId,
|
||||||
|
owner: "acme",
|
||||||
|
repository: "storefront",
|
||||||
|
branch: "main",
|
||||||
|
},
|
||||||
|
env: storefrontEnv,
|
||||||
|
replicas: 2,
|
||||||
|
memoryLimit: "1g",
|
||||||
|
cpuLimit: "1",
|
||||||
|
domains: [{ host: "shop.example.com", port: 3000 }],
|
||||||
|
});
|
||||||
|
|
||||||
|
new dokploy.Redirect("storefront-www", {
|
||||||
|
applicationId: storefront.application.id,
|
||||||
|
regex: String.raw`^https://www\.shop\.example\.com/(.*)`,
|
||||||
|
replacement: "https://shop.example.com/${1}",
|
||||||
|
permanent: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
new dokploy.Mount("storefront-uploads", {
|
||||||
|
serviceId: storefront.application.id,
|
||||||
|
serviceType: "application",
|
||||||
|
type: "volume",
|
||||||
|
mountPath: "/app/uploads",
|
||||||
|
volumeName: "storefront-uploads",
|
||||||
|
});
|
||||||
|
|
||||||
|
// ------------------------------- an internal tool behind basic auth (staging)
|
||||||
|
|
||||||
|
new WebService("admin", {
|
||||||
|
environmentId: staging.id,
|
||||||
|
dockerImage: "traefik/whoami:latest",
|
||||||
|
domains: [{ host: "admin.staging.example.com", port: 80 }],
|
||||||
|
basicAuth: { username: "ops", password: adminPassword },
|
||||||
|
});
|
||||||
|
|
||||||
|
// -------------------------------------------------------------- compose stack
|
||||||
|
|
||||||
|
const observability = new dokploy.Compose("observability", {
|
||||||
|
name: "observability",
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
composeType: "docker-compose",
|
||||||
|
sourceType: "raw",
|
||||||
|
// Preserve volumes if this stack is ever destroyed.
|
||||||
|
deleteVolumes: false,
|
||||||
|
composeFile: `services:
|
||||||
|
uptime:
|
||||||
|
image: louislam/uptime-kuma:1
|
||||||
|
volumes:
|
||||||
|
- uptime-data:/app/data
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
uptime-data:
|
||||||
|
`,
|
||||||
|
});
|
||||||
|
|
||||||
|
new dokploy.Domain("observability", {
|
||||||
|
composeId: observability.id,
|
||||||
|
domainType: "compose",
|
||||||
|
serviceName: "uptime",
|
||||||
|
host: "status.example.com",
|
||||||
|
port: 3001,
|
||||||
|
https: true,
|
||||||
|
certificateType: "letsencrypt",
|
||||||
|
});
|
||||||
|
|
||||||
|
export const projectId = shop.id;
|
||||||
|
export const stagingEnvironmentId = staging.id;
|
||||||
|
export const storefrontUrl = "https://shop.example.com";
|
||||||
12
examples/typescript/package.json
Normal file
12
examples/typescript/package.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "dokploy-complete",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^18.19.130",
|
||||||
|
"typescript": "^5.9.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@maxvojtkov/pulumi-dokploy": "file:../../sdk/nodejs",
|
||||||
|
"@pulumi/pulumi": "^3.256.0",
|
||||||
|
"@pulumi/random": "^4.21.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
16
examples/typescript/tsconfig.json
Normal file
16
examples/typescript/tsconfig.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"strict": true,
|
||||||
|
"outDir": "bin",
|
||||||
|
"target": "es2020",
|
||||||
|
"module": "commonjs",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"sourceMap": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"pretty": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"noImplicitReturns": true,
|
||||||
|
"forceConsistentCasingInFileNames": true
|
||||||
|
},
|
||||||
|
"files": ["index.ts", "webService.ts"]
|
||||||
|
}
|
||||||
93
examples/typescript/webService.ts
Normal file
93
examples/typescript/webService.ts
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
import * as pulumi from "@pulumi/pulumi";
|
||||||
|
import * as dokploy from "@maxvojtkov/pulumi-dokploy";
|
||||||
|
|
||||||
|
export interface DomainSpec {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
https?: boolean;
|
||||||
|
path?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface WebServiceArgs {
|
||||||
|
environmentId: pulumi.Input<string>;
|
||||||
|
description?: pulumi.Input<string>;
|
||||||
|
|
||||||
|
/** Either a prebuilt image or a GitHub repository, not both. */
|
||||||
|
dockerImage?: pulumi.Input<string>;
|
||||||
|
github?: {
|
||||||
|
githubId: pulumi.Input<string>;
|
||||||
|
owner: pulumi.Input<string>;
|
||||||
|
repository: pulumi.Input<string>;
|
||||||
|
branch: pulumi.Input<string>;
|
||||||
|
};
|
||||||
|
|
||||||
|
env?: pulumi.Input<string>;
|
||||||
|
replicas?: pulumi.Input<number>;
|
||||||
|
memoryLimit?: pulumi.Input<string>;
|
||||||
|
cpuLimit?: pulumi.Input<string>;
|
||||||
|
|
||||||
|
domains?: DomainSpec[];
|
||||||
|
/** username/password pair to put the whole service behind basic auth. */
|
||||||
|
basicAuth?: { username: pulumi.Input<string>; password: pulumi.Input<string> };
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WebService bundles an application with its domains and access control — the
|
||||||
|
* Pulumi equivalent of the `web-service` Terraform module.
|
||||||
|
*/
|
||||||
|
export class WebService extends pulumi.ComponentResource {
|
||||||
|
public readonly application: dokploy.Application;
|
||||||
|
public readonly domains: dokploy.Domain[];
|
||||||
|
|
||||||
|
constructor(name: string, args: WebServiceArgs, opts?: pulumi.ComponentResourceOptions) {
|
||||||
|
super("dokploy:index:WebService", name, {}, opts);
|
||||||
|
const child = { parent: this };
|
||||||
|
|
||||||
|
this.application = new dokploy.Application(name, {
|
||||||
|
name,
|
||||||
|
environmentId: args.environmentId,
|
||||||
|
description: args.description,
|
||||||
|
env: args.env,
|
||||||
|
replicas: args.replicas,
|
||||||
|
memoryLimit: args.memoryLimit,
|
||||||
|
cpuLimit: args.cpuLimit,
|
||||||
|
...(args.github
|
||||||
|
? {
|
||||||
|
sourceType: "github",
|
||||||
|
buildType: "nixpacks",
|
||||||
|
autoDeploy: true,
|
||||||
|
githubId: args.github.githubId,
|
||||||
|
owner: args.github.owner,
|
||||||
|
repository: args.github.repository,
|
||||||
|
branch: args.github.branch,
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
sourceType: "docker",
|
||||||
|
dockerImage: args.dockerImage,
|
||||||
|
}),
|
||||||
|
}, child);
|
||||||
|
|
||||||
|
this.domains = (args.domains ?? []).map((d, i) => new dokploy.Domain(`${name}-domain-${i}`, {
|
||||||
|
applicationId: this.application.id,
|
||||||
|
domainType: "application",
|
||||||
|
host: d.host,
|
||||||
|
port: d.port,
|
||||||
|
path: d.path,
|
||||||
|
https: d.https ?? true,
|
||||||
|
certificateType: (d.https ?? true) ? "letsencrypt" : "none",
|
||||||
|
}, child));
|
||||||
|
|
||||||
|
if (args.basicAuth) {
|
||||||
|
new dokploy.Security(`${name}-auth`, {
|
||||||
|
applicationId: this.application.id,
|
||||||
|
username: args.basicAuth.username,
|
||||||
|
password: args.basicAuth.password,
|
||||||
|
}, child);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.registerOutputs({
|
||||||
|
application: this.application,
|
||||||
|
domains: this.domains,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
3
provider/cmd/pulumi-resource-dokploy/Pulumi.yaml
Normal file
3
provider/cmd/pulumi-resource-dokploy/Pulumi.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
name: dokploy
|
||||||
|
description: A Pulumi resource provider for dokploy.
|
||||||
|
language: schema
|
||||||
162
provider/cmd/pulumi-resource-dokploy/bridge-metadata.json
Normal file
162
provider/cmd/pulumi-resource-dokploy/bridge-metadata.json
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
{
|
||||||
|
"auto-aliasing": {
|
||||||
|
"resources": {
|
||||||
|
"dokploy_application": {
|
||||||
|
"current": "dokploy:index/application:Application",
|
||||||
|
"fields": {
|
||||||
|
"args": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"network_ids": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"preview_labels": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"watch_paths": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_certificate": {
|
||||||
|
"current": "dokploy:index/certificate:Certificate"
|
||||||
|
},
|
||||||
|
"dokploy_compose": {
|
||||||
|
"current": "dokploy:index/compose:Compose",
|
||||||
|
"fields": {
|
||||||
|
"watch_paths": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_destination": {
|
||||||
|
"current": "dokploy:index/destination:Destination",
|
||||||
|
"fields": {
|
||||||
|
"additional_flags": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_domain": {
|
||||||
|
"current": "dokploy:index/domain:Domain",
|
||||||
|
"fields": {
|
||||||
|
"middlewares": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_environment": {
|
||||||
|
"current": "dokploy:index/environment:Environment"
|
||||||
|
},
|
||||||
|
"dokploy_mariadb": {
|
||||||
|
"current": "dokploy:index/mariaDb:MariaDb",
|
||||||
|
"fields": {
|
||||||
|
"args": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"network_ids": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_mongo": {
|
||||||
|
"current": "dokploy:index/mongo:Mongo",
|
||||||
|
"fields": {
|
||||||
|
"args": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"network_ids": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_mount": {
|
||||||
|
"current": "dokploy:index/mount:Mount"
|
||||||
|
},
|
||||||
|
"dokploy_mysql": {
|
||||||
|
"current": "dokploy:index/mySql:MySql",
|
||||||
|
"fields": {
|
||||||
|
"args": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"network_ids": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_port": {
|
||||||
|
"current": "dokploy:index/port:Port"
|
||||||
|
},
|
||||||
|
"dokploy_postgres": {
|
||||||
|
"current": "dokploy:index/postgres:Postgres",
|
||||||
|
"fields": {
|
||||||
|
"args": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"network_ids": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_project": {
|
||||||
|
"current": "dokploy:index/project:Project"
|
||||||
|
},
|
||||||
|
"dokploy_redirect": {
|
||||||
|
"current": "dokploy:index/redirect:Redirect"
|
||||||
|
},
|
||||||
|
"dokploy_redis": {
|
||||||
|
"current": "dokploy:index/redis:Redis",
|
||||||
|
"fields": {
|
||||||
|
"args": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
},
|
||||||
|
"network_ids": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_registry": {
|
||||||
|
"current": "dokploy:index/registry:Registry"
|
||||||
|
},
|
||||||
|
"dokploy_security": {
|
||||||
|
"current": "dokploy:index/security:Security"
|
||||||
|
},
|
||||||
|
"dokploy_ssh_key": {
|
||||||
|
"current": "dokploy:index/sshKey:SshKey"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"datasources": {
|
||||||
|
"dokploy_application": {
|
||||||
|
"current": "dokploy:index/getApplication:getApplication"
|
||||||
|
},
|
||||||
|
"dokploy_environment": {
|
||||||
|
"current": "dokploy:index/getEnvironment:getEnvironment"
|
||||||
|
},
|
||||||
|
"dokploy_project": {
|
||||||
|
"current": "dokploy:index/getProject:getProject",
|
||||||
|
"fields": {
|
||||||
|
"environments": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_projects": {
|
||||||
|
"current": "dokploy:index/getProjects:getProjects",
|
||||||
|
"fields": {
|
||||||
|
"projects": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dokploy_servers": {
|
||||||
|
"current": "dokploy:index/getServers:getServers",
|
||||||
|
"fields": {
|
||||||
|
"servers": {
|
||||||
|
"maxItemsOne": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"auto-settings": {}
|
||||||
|
}
|
||||||
23
provider/cmd/pulumi-resource-dokploy/main.go
Normal file
23
provider/cmd/pulumi-resource-dokploy/main.go
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// pulumi-resource-dokploy is the Pulumi provider plugin for Dokploy. It serves
|
||||||
|
// the bridged Terraform provider together with the schema baked in at build
|
||||||
|
// time by `make tfgen`.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
_ "embed"
|
||||||
|
|
||||||
|
"github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf/tfbridge"
|
||||||
|
|
||||||
|
dokploy "github.com/maxvojtkov/pulumi-dokploy/provider"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/provider/pkg/version"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:embed schema.json
|
||||||
|
var pulumiSchema []byte
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
tfbridge.Main(context.Background(), "dokploy",
|
||||||
|
dokploy.Provider(version.Version),
|
||||||
|
tfbridge.ProviderMetadata{PackageSchema: pulumiSchema})
|
||||||
|
}
|
||||||
5720
provider/cmd/pulumi-resource-dokploy/schema.json
Normal file
5720
provider/cmd/pulumi-resource-dokploy/schema.json
Normal file
File diff suppressed because it is too large
Load Diff
14
provider/cmd/pulumi-tfgen-dokploy/main.go
Normal file
14
provider/cmd/pulumi-tfgen-dokploy/main.go
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// pulumi-tfgen-dokploy generates the Pulumi package schema and language SDKs
|
||||||
|
// from the bridged Dokploy Terraform provider.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf/tfgen"
|
||||||
|
|
||||||
|
dokploy "github.com/maxvojtkov/pulumi-dokploy/provider"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/provider/pkg/version"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
tfgen.Main("dokploy", dokploy.Provider(version.Version))
|
||||||
|
}
|
||||||
241
provider/go.mod
Normal file
241
provider/go.mod
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
module github.com/maxvojtkov/pulumi-dokploy/provider
|
||||||
|
|
||||||
|
go 1.25.11
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/maxvojtkov/terraform-provider-dokploy v0.0.0
|
||||||
|
github.com/pulumi/pulumi-terraform-bridge/v3 v3.136.0
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
cel.dev/expr v0.25.2 // indirect
|
||||||
|
cloud.google.com/go v0.123.0 // indirect
|
||||||
|
cloud.google.com/go/auth v0.20.0 // indirect
|
||||||
|
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
|
||||||
|
cloud.google.com/go/compute/metadata v0.9.0 // indirect
|
||||||
|
cloud.google.com/go/iam v1.11.0 // indirect
|
||||||
|
cloud.google.com/go/monitoring v1.29.0 // indirect
|
||||||
|
cloud.google.com/go/storage v1.62.2 // indirect
|
||||||
|
github.com/BurntSushi/toml v1.6.0 // indirect
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.33.0 // indirect
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.56.0 // indirect
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.56.0 // indirect
|
||||||
|
github.com/Masterminds/goutils v1.1.1 // indirect
|
||||||
|
github.com/Masterminds/semver v1.5.0 // indirect
|
||||||
|
github.com/Masterminds/semver/v3 v3.2.0 // indirect
|
||||||
|
github.com/Masterminds/sprig/v3 v3.2.3 // indirect
|
||||||
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||||
|
github.com/ProtonMail/go-crypto v1.4.1 // indirect
|
||||||
|
github.com/agext/levenshtein v1.2.3 // indirect
|
||||||
|
github.com/apparentlymart/go-cidr v1.1.0 // indirect
|
||||||
|
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
||||||
|
github.com/armon/go-radix v1.0.0 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2 v1.41.11 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.12 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/config v1.32.21 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.20 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.26 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.27 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.27 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.27 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.10 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.19 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.26 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.26 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.103.0 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/signin v1.1.2 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sso v1.31.0 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.3 // indirect
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sts v1.43.0 // indirect
|
||||||
|
github.com/aws/smithy-go v1.27.0 // indirect
|
||||||
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||||
|
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
|
||||||
|
github.com/bgentry/speakeasy v0.1.0 // indirect
|
||||||
|
github.com/blang/semver v3.5.1+incompatible // indirect
|
||||||
|
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
||||||
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
github.com/charmbracelet/bubbles v1.0.0 // indirect
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10 // indirect
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.3 // indirect
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0 // indirect
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.7 // indirect
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
|
||||||
|
github.com/charmbracelet/x/term v0.2.2 // indirect
|
||||||
|
github.com/cheggaaa/pb v1.0.29 // indirect
|
||||||
|
github.com/clipperhouse/displaywidth v0.11.0 // indirect
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
|
||||||
|
github.com/cloudflare/circl v1.6.3 // indirect
|
||||||
|
github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect
|
||||||
|
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
|
||||||
|
github.com/djherbis/times v1.6.0 // indirect
|
||||||
|
github.com/edsrzf/mmap-go v1.1.0 // indirect
|
||||||
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
|
github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect
|
||||||
|
github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect
|
||||||
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
||||||
|
github.com/fatih/color v1.18.0 // indirect
|
||||||
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
|
github.com/go-git/gcfg/v2 v2.0.2 // indirect
|
||||||
|
github.com/go-git/go-billy/v6 v6.0.0-alpha.1 // indirect
|
||||||
|
github.com/go-git/go-git/v6 v6.0.0-alpha.4 // indirect
|
||||||
|
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
|
||||||
|
github.com/go-logr/logr v1.4.4 // indirect
|
||||||
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
|
github.com/golang/glog v1.2.5 // indirect
|
||||||
|
github.com/golang/protobuf v1.5.4 // indirect
|
||||||
|
github.com/google/go-cmp v0.7.0 // indirect
|
||||||
|
github.com/google/s2a-go v0.1.9 // indirect
|
||||||
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||||
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
|
github.com/googleapis/enterprise-certificate-proxy v0.3.16 // indirect
|
||||||
|
github.com/googleapis/gax-go/v2 v2.22.0 // indirect
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
|
||||||
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
||||||
|
github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.72 // indirect
|
||||||
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||||
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
|
github.com/hashicorp/go-cty v1.5.0 // indirect
|
||||||
|
github.com/hashicorp/go-getter v1.8.6 // indirect
|
||||||
|
github.com/hashicorp/go-hclog v1.6.3 // indirect
|
||||||
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||||
|
github.com/hashicorp/go-plugin v1.8.0 // indirect
|
||||||
|
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
||||||
|
github.com/hashicorp/go-version v1.9.0 // indirect
|
||||||
|
github.com/hashicorp/hcl v1.0.1-vault-7 // indirect
|
||||||
|
github.com/hashicorp/hcl/v2 v2.24.0 // indirect
|
||||||
|
github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect
|
||||||
|
github.com/hashicorp/logutils v1.0.0 // indirect
|
||||||
|
github.com/hashicorp/terraform-plugin-framework v1.19.0 // indirect
|
||||||
|
github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 // indirect
|
||||||
|
github.com/hashicorp/terraform-plugin-framework-validators v0.18.0 // indirect
|
||||||
|
github.com/hashicorp/terraform-plugin-go v0.31.0 // indirect
|
||||||
|
github.com/hashicorp/terraform-plugin-log v0.10.0 // indirect
|
||||||
|
github.com/hashicorp/terraform-plugin-sdk/v2 v2.40.1 // indirect
|
||||||
|
github.com/hashicorp/terraform-registry-address v0.4.0 // indirect
|
||||||
|
github.com/hashicorp/terraform-svchost v0.2.1 // indirect
|
||||||
|
github.com/hashicorp/yamux v0.1.2 // indirect
|
||||||
|
github.com/huandu/xstrings v1.3.3 // indirect
|
||||||
|
github.com/iancoleman/strcase v0.3.0 // indirect
|
||||||
|
github.com/imdario/mergo v0.3.15 // indirect
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
|
github.com/kevinburke/ssh_config v1.6.0 // indirect
|
||||||
|
github.com/klauspost/compress v1.18.7 // indirect
|
||||||
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.4.1 // indirect
|
||||||
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.24 // indirect
|
||||||
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
||||||
|
github.com/mattn/go-runewidth v0.0.27 // indirect
|
||||||
|
github.com/mitchellh/cli v1.1.5 // indirect
|
||||||
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||||
|
github.com/mitchellh/go-ps v1.0.0 // indirect
|
||||||
|
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
|
||||||
|
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
||||||
|
github.com/mitchellh/hashstructure v1.0.0 // indirect
|
||||||
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||||
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
||||||
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
||||||
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
||||||
|
github.com/muesli/termenv v0.16.0 // indirect
|
||||||
|
github.com/natefinch/atomic v1.0.1 // indirect
|
||||||
|
github.com/oklog/run v1.2.0 // indirect
|
||||||
|
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
|
||||||
|
github.com/olekukonko/errors v1.1.0 // indirect
|
||||||
|
github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 // indirect
|
||||||
|
github.com/olekukonko/tablewriter v1.1.3 // indirect
|
||||||
|
github.com/opentofu/registry-address/v2 v2.0.0-20250611143131-d0a99bd8acdd // indirect
|
||||||
|
github.com/opentofu/svchost v0.0.0-20250610175836-86c9e5e3d8c8 // indirect
|
||||||
|
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||||
|
github.com/pgavlin/fx v0.1.6 // indirect
|
||||||
|
github.com/pgavlin/fx/v2 v2.0.12 // indirect
|
||||||
|
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
|
||||||
|
github.com/pjbgf/sha1cd v0.6.0 // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
|
github.com/pkg/term v1.1.0 // indirect
|
||||||
|
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
|
||||||
|
github.com/posener/complete v1.2.3 // indirect
|
||||||
|
github.com/pulumi-labs/pulumi-hcl v0.3.1 // indirect
|
||||||
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
||||||
|
github.com/pulumi/inflector v0.2.1 // indirect
|
||||||
|
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 v3.110.0 // indirect
|
||||||
|
github.com/pulumi/pulumi-java v1.34.0 // indirect
|
||||||
|
github.com/pulumi/pulumi-yaml v1.38.1 // indirect
|
||||||
|
github.com/pulumi/pulumi/pkg/v3 v3.256.0 // indirect
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.256.0 // indirect
|
||||||
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
|
github.com/rogpeppe/go-internal v1.14.1 // indirect
|
||||||
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||||
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
||||||
|
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
|
||||||
|
github.com/segmentio/asm v1.1.3 // indirect
|
||||||
|
github.com/segmentio/encoding v0.3.6 // indirect
|
||||||
|
github.com/sergi/go-diff v1.4.0 // indirect
|
||||||
|
github.com/shopspring/decimal v1.3.1 // indirect
|
||||||
|
github.com/spf13/afero v1.15.0 // indirect
|
||||||
|
github.com/spf13/cast v1.5.0 // indirect
|
||||||
|
github.com/spf13/cobra v1.10.2 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.10 // indirect
|
||||||
|
github.com/spiffe/go-spiffe/v2 v2.7.0 // indirect
|
||||||
|
github.com/teekennedy/goldmark-markdown v0.3.0 // indirect
|
||||||
|
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
||||||
|
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
|
||||||
|
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
||||||
|
github.com/ulikunitz/xz v0.5.15 // indirect
|
||||||
|
github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect
|
||||||
|
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
|
||||||
|
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
|
||||||
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||||
|
github.com/yuin/goldmark v1.7.17 // indirect
|
||||||
|
github.com/zclconf/go-cty v1.18.1 // indirect
|
||||||
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||||
|
go.opentelemetry.io/collector/featuregate v1.64.0 // indirect
|
||||||
|
go.opentelemetry.io/collector/pdata v1.64.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/bridges/otelslog v0.20.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/detectors/gcp v1.44.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.69.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect
|
||||||
|
go.opentelemetry.io/otel v1.45.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/bridge/opentracing v1.33.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.21.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/log v0.21.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/metric v1.45.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk v1.45.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk/log v0.21.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk/metric v1.45.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/trace v1.45.0 // indirect
|
||||||
|
go.opentelemetry.io/proto/otlp v1.11.0 // indirect
|
||||||
|
go.uber.org/atomic v1.11.0 // indirect
|
||||||
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
golang.org/x/crypto v0.54.0 // indirect
|
||||||
|
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect
|
||||||
|
golang.org/x/mod v0.37.0 // indirect
|
||||||
|
golang.org/x/net v0.57.0 // indirect
|
||||||
|
golang.org/x/oauth2 v0.36.0 // indirect
|
||||||
|
golang.org/x/sync v0.22.0 // indirect
|
||||||
|
golang.org/x/sys v0.47.0 // indirect
|
||||||
|
golang.org/x/term v0.45.0 // indirect
|
||||||
|
golang.org/x/text v0.40.0 // indirect
|
||||||
|
golang.org/x/time v0.15.0 // indirect
|
||||||
|
golang.org/x/tools v0.47.0 // indirect
|
||||||
|
google.golang.org/api v0.283.0 // indirect
|
||||||
|
google.golang.org/appengine v1.6.8 // indirect
|
||||||
|
google.golang.org/genproto v0.0.0-20260526163538-3dc84a4a5aaa // indirect
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d // indirect
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d // indirect
|
||||||
|
google.golang.org/grpc v1.83.0 // indirect
|
||||||
|
google.golang.org/protobuf v1.36.11 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
|
lukechampine.com/frand v1.5.1 // indirect
|
||||||
|
)
|
||||||
|
|
||||||
|
// The Terraform provider is developed alongside this repo. Replace with a
|
||||||
|
// tagged version once terraform-provider-dokploy is published.
|
||||||
|
replace github.com/maxvojtkov/terraform-provider-dokploy => ../../dokploy-teraform
|
||||||
765
provider/go.sum
Normal file
765
provider/go.sum
Normal file
@@ -0,0 +1,765 @@
|
|||||||
|
cel.dev/expr v0.25.2 h1:K6j46C81hXtZQfuX60cVWQFBJahKSE2gfRbNuvr5bFs=
|
||||||
|
cel.dev/expr v0.25.2/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4=
|
||||||
|
cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE=
|
||||||
|
cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU=
|
||||||
|
cloud.google.com/go/auth v0.20.0 h1:kXTssoVb4azsVDoUiF8KvxAqrsQcQtB53DcSgta74CA=
|
||||||
|
cloud.google.com/go/auth v0.20.0/go.mod h1:942/yi/itH1SsmpyrbnTMDgGfdy2BUqIKyd0cyYLc5Q=
|
||||||
|
cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
|
||||||
|
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
|
||||||
|
cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
|
||||||
|
cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
|
||||||
|
cloud.google.com/go/iam v1.11.0 h1:KieQ9Pb+LLPak1O3Rv3GgCxhnmkYf7Xyh0P5HfF1jFM=
|
||||||
|
cloud.google.com/go/iam v1.11.0/go.mod h1:KP+nKGugNJW4LcLx1uEZcq1ok5sQHFaQehQNl4QDgV4=
|
||||||
|
cloud.google.com/go/kms v1.31.0 h1:LS8N92OxFDgOLg5NCo3OmbvjtQAIVT5gUHVLKIDHaFE=
|
||||||
|
cloud.google.com/go/kms v1.31.0/go.mod h1:YIyXZym11R5uovJJt4oN5eUL3oPmirF3yKeIh6QAf4U=
|
||||||
|
cloud.google.com/go/logging v1.18.0 h1:KhzZq+1cSkPH9YUaKLLhLtQxIHitVayBmk0sGfoM9+k=
|
||||||
|
cloud.google.com/go/logging v1.18.0/go.mod h1:ZGKnpBaURITh+g/uom2VhbiFoFWvejcrHPDhxFtU/gI=
|
||||||
|
cloud.google.com/go/longrunning v1.0.0 h1:lwzWEYD8+NkYV7dhexOz6kmlvajZA70+bW/xMhRVVdY=
|
||||||
|
cloud.google.com/go/longrunning v1.0.0/go.mod h1:8nqFBPOO1U/XkhWl0I19AMZEphrHi73VNABIpKYaTwM=
|
||||||
|
cloud.google.com/go/monitoring v1.29.0 h1:AHhDsFaSax1/4k+qlIDX/SDGe6hggnfXJ9dkgD9qBPY=
|
||||||
|
cloud.google.com/go/monitoring v1.29.0/go.mod h1:72NOVjJXHY/HBfoLT0+qlCZBT059+9VXLeAnL2PeeVM=
|
||||||
|
cloud.google.com/go/storage v1.62.2 h1:WgR4U9n7bIzXkkVnwPKKE8bkaKUNsHG+0MAAlh9DGU4=
|
||||||
|
cloud.google.com/go/storage v1.62.2/go.mod h1:cpYz/kRVZ+UQAF1uHeea10/9ewcRbxGoGNKsS9daSXA=
|
||||||
|
cloud.google.com/go/trace v1.16.0 h1:GmQovzFc5F0CNfl0VLgL64aoTtu7xsM0YajW2GlG9+E=
|
||||||
|
cloud.google.com/go/trace v1.16.0/go.mod h1:r+bdAn16dKLSV1G2D5v3e58IlQlizfxWrUfjx7kM7X0=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.1 h1:jHb/wfvRikGdxMXYV3QG/SzUOPYN9KEUUuC0Yd0/vC0=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.1/go.mod h1:pzBXCYn05zvYIrwLgtK8Ap8QcjRg+0i76tMQdWN6wOk=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpzme37xbCDdNTxU7O9eb5+LB4=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 h1:fhqpLE3UEXi9lPaBRpQ6XuRW0nU7hgg4zlmZZa+a9q4=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0/go.mod h1:7dCRMLwisfRH3dBupKeNCioWYUZ4SS09Z14H+7i8ZoY=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.5.0 h1:MaKvxE6D0KkjOg6Wd9M00iqP5PR0kUxCfiezes4JweM=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.5.0/go.mod h1:i2h9fsTFKZorh8RdV2IcSUf/Qj98GlTkrTvUbX/s8as=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 h1:nCYfgcSyHZXJI8J0IWE5MsCGlb2xp9fJiXyxWgmOFg4=
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0/go.mod h1:ucUjca2JtSZboY8IoUqyQyuuXvwbMBVwFOm0vdQPNhA=
|
||||||
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2 h1:RHK7bS+HQMslb1sZpAokUt+zTVmue0hKSs2C791hhzU=
|
||||||
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk=
|
||||||
|
github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk=
|
||||||
|
github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.33.0 h1:l7+6kwRMJNwdCvYdDl7Eax+wzEYHSnNY7zrrfbhDdTA=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.33.0/go.mod h1:pJTkW8hEUIIi3Pf65lPZOnn4Y81yCllX6IWk2jNXdkM=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.56.0 h1:O2sXMyJh8b7devAGdE+163xtRurt0RVpB6DIzX5vGfg=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.56.0/go.mod h1:hEpiGU18xf70qb3jbTcIggWAiEfX/cOIVc2OTe4OegA=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.56.0 h1:ZIT85vKP7LBS84XJ0WdJ3dPOX3iz4j3c0+lpajGQMyo=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.56.0/go.mod h1:rqP9UEhOXv9WhQ7Gjz+G5y/pf8+BJZW5/Ts0AhE0PwE=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.56.0 h1:0YP0+/ixwu+Uqeu/FGiBZNQ19huiUxxiPXIc9WsLKuQ=
|
||||||
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.56.0/go.mod h1:6ZZMQhZKDvUvkJw2rc+oDP90tMMzuU/J+5HG1ZmPOmE=
|
||||||
|
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
|
||||||
|
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
|
||||||
|
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
|
||||||
|
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
|
||||||
|
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
|
||||||
|
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
|
||||||
|
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
|
||||||
|
github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g=
|
||||||
|
github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
|
||||||
|
github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk=
|
||||||
|
github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
|
||||||
|
github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
|
||||||
|
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||||
|
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||||
|
github.com/ProtonMail/go-crypto v1.4.1 h1:9RfcZHqEQUvP8RzecWEUafnZVtEvrBVL9BiF67IQOfM=
|
||||||
|
github.com/ProtonMail/go-crypto v1.4.1/go.mod h1:e1OaTyu5SYVrO9gKOEhTc+5UcXtTUa+P3uLudwcgPqo=
|
||||||
|
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
|
||||||
|
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||||
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
||||||
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
||||||
|
github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU=
|
||||||
|
github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
|
||||||
|
github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec=
|
||||||
|
github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
|
||||||
|
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
|
||||||
|
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||||
|
github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI=
|
||||||
|
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||||
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||||
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
|
github.com/aws/aws-sdk-go-v2 v1.41.11 h1:9PRf7jyTMEUM6fuNRAJa2mO/skJfrF50rENJwf2LXqw=
|
||||||
|
github.com/aws/aws-sdk-go-v2 v1.41.11/go.mod h1:iiUX27gOXRuYaoeUVXhUpPwjJHzISfPAjjcuhUbLSVs=
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.12 h1:oRtsqWgxbpeXrOlxOoQStx2M9WNbIkPq4C4Xn1or6bc=
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.12/go.mod h1:Zg0Oe9qT+9wcezlm1a64wGJp2qZdRElVxo/seJf7jYU=
|
||||||
|
github.com/aws/aws-sdk-go-v2/config v1.32.21 h1:1i1v5jWn6iNPl7zkH4VwIXQOb+OMqMRFNjdHQeZbFVo=
|
||||||
|
github.com/aws/aws-sdk-go-v2/config v1.32.21/go.mod h1:7NXDJjk0e4QOMv3Y3ppwALx3ifdSQHzCACFtRX5J1hI=
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.20 h1:nIGz0+cQKwijxSsWNpggvPxjxFMtrAHNj16RYzGbu2Q=
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.20/go.mod h1:/UQHYia3DSeilGdchXJDEVzJws15XuZSdnTlwbTBg0Q=
|
||||||
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.26 h1:a1VPHz7eG7mVNHWHXUcCyC8rQDBEr4k+o4HJYbSoYZ0=
|
||||||
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.26/go.mod h1:9G8LPblMwaodeQdS+IfDBgPqABDctJLpyZ/M6jflE6s=
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.27 h1:8sPbKi1/KRHwl5oR3qN9mUXestCeHuaRutxylnr/eVY=
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.27/go.mod h1:QV9IVIopJ1dpQUno0f9VYDUwOEjj8u0iEJ4JiZVre3Y=
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.27 h1:9d8AoASQY9UwrOSmiJ7uSM0MGUPFhnenwSvpaFfat2c=
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.27/go.mod h1:x0rldpsnUQaQIs4Rh+Vwm9Z/0vI6BxadGtsgJfZFb8s=
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.27 h1:i49S7g2smFWmlconi97Nn8dxb7jSQ0TeOFD20NX3M+o=
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.27/go.mod h1:qiLes3uVQAK+cpb837HUEhypYKGBz2ZCDcDl5BYQtpM=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.74.4 h1:4GBRq2ZWJkOy6S4HRNuJJpaZ5KXPNIDe/QJysoyXglI=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.74.4/go.mod h1:Op4lD9kBH1InUC+DxIALi0ALAASdpY71vRdtevYFVrs=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.10 h1:d5/908OJ4bXg8lyjeMPvXetEKqoDoLi5Owy1zNue3yg=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.10/go.mod h1:a57l7Hwh+FWI+we50g5NPJHYUKeJKfXbc4w8SyXu8Ig=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.19 h1:q/Kqqr7Jz4IKSHbFhsCwm5Q4WU7NUTY9tc4nHuBg7pg=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.19/go.mod h1:kTMPExiQ8IW43fOffpm0npgLopHXzTxZ/1CnB2c8c0E=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.26 h1:oIRaBVJ2CxT7T61l3JkBCW/rnyh2TFZIRL71MvJTKRI=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.26/go.mod h1:1gCTZPMlqAUSFoFbkl35hKtTpE96WFl7ORvDXmSLpRc=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.26 h1:eiwOPA7MW2LZzSfULHOFWdekrv59pEpDckN37IiK1EM=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.26/go.mod h1:qM4B4ioTSHmkcKKhyoQMc3fcgl+d4mgqdJGzBJApYy0=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/kms v1.53.1 h1:ZG4esUs5NrDr6lwKDZLE+746tq7nxS8PacNfHA9mOjk=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/kms v1.53.1/go.mod h1:f8U49SXXH38WX8B1oFXG8igfV+MZ5mgM9b/trTlBf2E=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.103.0 h1:BmOawMUDBUiFAMgk8zTp3w5iei2Vh5j4mwIHTXOuGTc=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.103.0/go.mod h1:pivHPRqURZdlzSlGmULol6xBEoy7hHmWW/pIfAkc8Tw=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/signin v1.1.2 h1:qwU4CNor4G2gRW3Na24FWOCZSEvr967IAV3D+MXxdE0=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/signin v1.1.2/go.mod h1:vwIj2P3URYf7ZtOQkO2iVbAaR8qFhqMv05w3aPPA5XA=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sso v1.31.0 h1:cMDUWhi7vlmGFj6rldHofjnAQhLLBWwRvNRbtEoyZo4=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sso v1.31.0/go.mod h1:VfGCm6HLUGwcouY6zjQJd81PoFsb8sfSmKd5QCg9XXc=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.3 h1:/pKy3mNES+ppFHf3g/XmI95+f3vdeXnkWYObByoYGAg=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.3/go.mod h1:0z2rhlVAjsYeBzV8fdT4jR23Nq+fYhoJNSJN+4SBlqM=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sts v1.43.0 h1:HN43uYvF8D2NtaPTeE4L3HMvXgd+RtqEqrea4uUztkM=
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sts v1.43.0/go.mod h1:qzhDlfw1BRYyoNofevemNzrlRpUXa0BJamWx7klrR8w=
|
||||||
|
github.com/aws/smithy-go v1.27.0 h1:ZoFioDKJxkSIW2otF9T0aPtNlUwhdVCcuZh/rzH9Hus=
|
||||||
|
github.com/aws/smithy-go v1.27.0/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc=
|
||||||
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
|
||||||
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
|
||||||
|
github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82 h1:PmoVmwzAnGb0iCjulb7Mgsaqw2Wj36LQJ8VyYaFe/ak=
|
||||||
|
github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82/go.mod h1:PLNUetjLa77TCCziPsz0EI8a6CUxgC+1jgmWv0H25tg=
|
||||||
|
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas=
|
||||||
|
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4=
|
||||||
|
github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=
|
||||||
|
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
||||||
|
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
||||||
|
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
||||||
|
github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw=
|
||||||
|
github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c=
|
||||||
|
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||||
|
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||||
|
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
|
||||||
|
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
|
||||||
|
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/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
|
||||||
|
github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q=
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q=
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI=
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ=
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
|
||||||
|
github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
|
||||||
|
github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
|
||||||
|
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
|
||||||
|
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
|
||||||
|
github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8=
|
||||||
|
github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
|
||||||
|
github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
|
||||||
|
github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 h1:aBangftG7EVZoUb69Os8IaYg++6uMOdKK83QtkkvJik=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2/go.mod h1:qwXFYgsP6T7XnJtbKlf1HP8AjxZZyzxMmc+Lq5GjlU4=
|
||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||||
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||||
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/deckarep/golang-set/v2 v2.5.0 h1:hn6cEZtQ0h3J8kFrHR/NrzyOoTnjgW1+FmNJzQ7y/sA=
|
||||||
|
github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
|
||||||
|
github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c=
|
||||||
|
github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0=
|
||||||
|
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
|
||||||
|
github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q=
|
||||||
|
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
|
||||||
|
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.14.0 h1:hbG2kr4RuFj222B6+7T83thSPqLjwBIfQawTkC++2HA=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.14.0/go.mod h1:NcS5X47pLl/hfqxU70yPwL9ZMkUlwlKxtAohpi2wBEU=
|
||||||
|
github.com/envoyproxy/go-control-plane/envoy v1.37.0 h1:u3riX6BoYRfF4Dr7dwSOroNfdSbEPe9Yyl09/B6wBrQ=
|
||||||
|
github.com/envoyproxy/go-control-plane/envoy v1.37.0/go.mod h1:DReE9MMrmecPy+YvQOAOHNYMALuowAnbjjEMkkWOi6A=
|
||||||
|
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.3.3 h1:MVQghNeW+LZcmXe7SY1V36Z+WFMDjpqGAGacLe2T0ds=
|
||||||
|
github.com/envoyproxy/protoc-gen-validate v1.3.3/go.mod h1:TsndJ/ngyIdQRhMcVVGDDHINPLWB7C82oDArY51KfB0=
|
||||||
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
|
||||||
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
|
||||||
|
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||||
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
|
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
|
||||||
|
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
|
||||||
|
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
|
||||||
|
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||||
|
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
|
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
|
||||||
|
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
|
||||||
|
github.com/git-pkgs/manifests v0.4.1 h1:CWml+TrRXVzrfNJ2pTNKLqyi+9y/BFiQP/BX3pL4pPQ=
|
||||||
|
github.com/git-pkgs/manifests v0.4.1/go.mod h1:7SPFwU9diUG1Az682/p4ZupHJkfpbWKwRvNPwCcOeVs=
|
||||||
|
github.com/git-pkgs/packageurl-go v0.3.1 h1:WM3RBABQZLaRBxgKyYughc3cVBE8KyQxbSC6Jt5ak7M=
|
||||||
|
github.com/git-pkgs/packageurl-go v0.3.1/go.mod h1:rcIxiG37BlQLB6FZfgdj9Fm7yjhRQd3l+5o7J0QPAk4=
|
||||||
|
github.com/git-pkgs/purl v0.1.10 h1:NMjeF10nzFn3tdQlz6rbmHB+i+YkyrFQxho3e33ePTQ=
|
||||||
|
github.com/git-pkgs/purl v0.1.10/go.mod h1:C5Vp/kyZ/wGckCLexx4wPVfUxEiToRkdsOPh5Z7ig/I=
|
||||||
|
github.com/git-pkgs/vers v0.2.4 h1:Zr3jR/Xf1i/6cvBaJKPxhCwjzqz7uvYHE0Fhid/GPBk=
|
||||||
|
github.com/git-pkgs/vers v0.2.4/go.mod h1:biTbSQK1qdbrsxDEKnqe3Jzclxz8vW6uDcwKjfUGcOo=
|
||||||
|
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
||||||
|
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
|
||||||
|
github.com/go-git/gcfg/v2 v2.0.2 h1:MY5SIIfTGGEMhdA7d7JePuVVxtKL7Hp+ApGDJAJ7dpo=
|
||||||
|
github.com/go-git/gcfg/v2 v2.0.2/go.mod h1:/lv2NsxvhepuMrldsFilrgct6pxzpGdSRC13ydTLSLs=
|
||||||
|
github.com/go-git/go-billy/v6 v6.0.0-alpha.1 h1:xVjAR4oUvrKy7/Xuw/lLlV3gkxR3KO2H8W+MamuVVsQ=
|
||||||
|
github.com/go-git/go-billy/v6 v6.0.0-alpha.1/go.mod h1:eaCUpHbedW7//EwcYmUDfJe2N6sJC9O12AT0OTqJR1E=
|
||||||
|
github.com/go-git/go-git-fixtures/v6 v6.0.0-alpha.1 h1:gmqi2jvsreu0s8JMLylYDFq4sbjHwwlhktMw0DUg3mA=
|
||||||
|
github.com/go-git/go-git-fixtures/v6 v6.0.0-alpha.1/go.mod h1:ECf1MqJlBdYpKggBrOXjo/0EnvRZx6D++I86UYjPgAQ=
|
||||||
|
github.com/go-git/go-git/v6 v6.0.0-alpha.4 h1:aDTc2UGanmaE7FkGLSlBEB9nohMnQ+RKXcfq/D+esDQ=
|
||||||
|
github.com/go-git/go-git/v6 v6.0.0-alpha.4/go.mod h1:4ODa/G7hPWrh4Y+7lmt59Ij3zW38IEfvRoAZxLYYBhc=
|
||||||
|
github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA=
|
||||||
|
github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
|
||||||
|
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
|
github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8=
|
||||||
|
github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
|
github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
|
||||||
|
github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
|
||||||
|
github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0=
|
||||||
|
github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||||
|
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||||
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
|
github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY=
|
||||||
|
github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
|
||||||
|
github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=
|
||||||
|
github.com/golang/glog v1.2.5/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
|
||||||
|
github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
|
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
|
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.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||||
|
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||||
|
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
|
||||||
|
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
|
||||||
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
|
github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc=
|
||||||
|
github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0=
|
||||||
|
github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
|
||||||
|
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
|
||||||
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||||
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||||
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/google/wire v0.7.0 h1:JxUKI6+CVBgCO2WToKy/nQk0sS+amI9z9EjVmdaocj4=
|
||||||
|
github.com/google/wire v0.7.0/go.mod h1:n6YbUQD9cPKTnHXEBN2DXlOp/mVADhVErcMFb0v3J18=
|
||||||
|
github.com/googleapis/enterprise-certificate-proxy v0.3.16 h1:F/VPrx0YPBdksZJQdCAp0WUsqnNmZpUZszzfYt0M5Dw=
|
||||||
|
github.com/googleapis/enterprise-certificate-proxy v0.3.16/go.mod h1:9Yb0eAkH/Xqhvv3zbeKf/+wMJqCeocWc6KIhDvEAuYE=
|
||||||
|
github.com/googleapis/gax-go/v2 v2.22.0 h1:PjIWBpgGIVKGoCXuiCoP64altEJCj3/Ei+kSU5vlZD4=
|
||||||
|
github.com/googleapis/gax-go/v2 v2.22.0/go.mod h1:irWBbALSr0Sk3qlqb9SyJ1h68WjgeFuiOzI4Rqw5+aY=
|
||||||
|
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
|
||||||
|
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs=
|
||||||
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
|
||||||
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
|
||||||
|
github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.72 h1:vTCWu1wbdYo7PEZFem/rlr01+Un+wwVmI7wiegFdRLk=
|
||||||
|
github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.72/go.mod h1:Vn+BBgKQHVQYdVQ4NZDICE1Brb+JfaONyDHr3q07oQc=
|
||||||
|
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
|
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||||
|
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
|
github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU=
|
||||||
|
github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg=
|
||||||
|
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
||||||
|
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
|
||||||
|
github.com/hashicorp/go-cty v1.5.0 h1:EkQ/v+dDNUqnuVpmS5fPqyY71NXVgT5gf32+57xY8g0=
|
||||||
|
github.com/hashicorp/go-cty v1.5.0/go.mod h1:lFUCG5kd8exDobgSfyj4ONE/dc822kiYMguVKdHGMLM=
|
||||||
|
github.com/hashicorp/go-getter v1.8.6 h1:9sQboWULaydVphxc4S64oAI4YqpuCk7nPmvbk131ebY=
|
||||||
|
github.com/hashicorp/go-getter v1.8.6/go.mod h1:nVH12eOV2P58dIiL3rsU6Fh3wLeJEKBOJzhMmzlSWoo=
|
||||||
|
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
|
||||||
|
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
|
||||||
|
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
|
||||||
|
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||||
|
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
|
||||||
|
github.com/hashicorp/go-plugin v1.8.0 h1:ie8S6RRY8RvB2usYZv+AAZ/wBvx2AU5p5QeP5j/FORs=
|
||||||
|
github.com/hashicorp/go-plugin v1.8.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8=
|
||||||
|
github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48=
|
||||||
|
github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw=
|
||||||
|
github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
|
||||||
|
github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
|
||||||
|
github.com/hashicorp/go-secure-stdlib/parseutil v0.2.0 h1:U+kC2dOhMFQctRfhK0gRctKAPTloZdMU5ZJxaesJ/VM=
|
||||||
|
github.com/hashicorp/go-secure-stdlib/parseutil v0.2.0/go.mod h1:Ll013mhdmsVDuoIXVfBtvgGJsXDYkTw1kooNcoCXuE0=
|
||||||
|
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts=
|
||||||
|
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4=
|
||||||
|
github.com/hashicorp/go-sockaddr v1.0.7 h1:G+pTkSO01HpR5qCxg7lxfsFEZaG+C0VssTy/9dbT+Fw=
|
||||||
|
github.com/hashicorp/go-sockaddr v1.0.7/go.mod h1:FZQbEYa1pxkQ7WLpyXJ6cbjpT8q0YgQaK/JakXqGyWw=
|
||||||
|
github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8=
|
||||||
|
github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
|
||||||
|
github.com/hashicorp/go-version v1.9.0 h1:CeOIz6k+LoN3qX9Z0tyQrPtiB1DFYRPfCIBtaXPSCnA=
|
||||||
|
github.com/hashicorp/go-version v1.9.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
|
||||||
|
github.com/hashicorp/hc-install v0.9.4 h1:KKWOpUG0EqIV63Qk2GGFrZ0s275NVs5lKf9N5vjBNoc=
|
||||||
|
github.com/hashicorp/hc-install v0.9.4/go.mod h1:4LRYeEN2bMIFfIv57ldMWt9awfuZhvpbRt0vWmv51WU=
|
||||||
|
github.com/hashicorp/hcl v1.0.1-vault-7 h1:ag5OxFVy3QYTFTJODRzTKVZ6xvdfLLCA1cy/Y6xGI0I=
|
||||||
|
github.com/hashicorp/hcl v1.0.1-vault-7/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM=
|
||||||
|
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/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ=
|
||||||
|
github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=
|
||||||
|
github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=
|
||||||
|
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
|
||||||
|
github.com/hashicorp/terraform-exec v0.25.1 h1:PRutYRGM8pixV3B8812NYoBK5O+yuf3qcB/70KFKGiU=
|
||||||
|
github.com/hashicorp/terraform-exec v0.25.1/go.mod h1:+izOYrs9sKMQK4OYvGDnrSSJHY/pm4e4eXFqSL2Q5mA=
|
||||||
|
github.com/hashicorp/terraform-json v0.27.2 h1:BwGuzM6iUPqf9JYM/Z4AF1OJ5VVJEEzoKST/tRDBJKU=
|
||||||
|
github.com/hashicorp/terraform-json v0.27.2/go.mod h1:GzPLJ1PLdUG5xL6xn1OXWIjteQRT2CNT9o/6A9mi9hE=
|
||||||
|
github.com/hashicorp/terraform-plugin-framework v1.19.0 h1:q0bwyhxAOR3vfdgbk9iplv3MlTv/dhBHTXjQOtQDoBA=
|
||||||
|
github.com/hashicorp/terraform-plugin-framework v1.19.0/go.mod h1:YRXOBu0jvs7xp4AThBbX4mAzYaMJ1JgtFH//oGKxwLc=
|
||||||
|
github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 h1:SJXL5FfJJm17554Kpt9jFXngdM6fXbnUnZ6iT2IeiYA=
|
||||||
|
github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0/go.mod h1:p0phD0IYhsu9bR4+6OetVvvH59I6LwjXGnTVEr8ox6E=
|
||||||
|
github.com/hashicorp/terraform-plugin-framework-validators v0.18.0 h1:OQnlOt98ua//rCw+QhBbSqfW3QbwtVrcdWeQN5gI3Hw=
|
||||||
|
github.com/hashicorp/terraform-plugin-framework-validators v0.18.0/go.mod h1:lZvZvagw5hsJwuY7mAY6KUz45/U6fiDR0CzQAwWD0CA=
|
||||||
|
github.com/hashicorp/terraform-plugin-go v0.31.0 h1:0Fz2r9DQ+kNNl6bx8HRxFd1TfMKUvnrOtvJPmp3Z0q8=
|
||||||
|
github.com/hashicorp/terraform-plugin-go v0.31.0/go.mod h1:A88bDhd/cW7FnwqxQRz3slT+QY6yzbHKc6AOTtmdeS8=
|
||||||
|
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.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0=
|
||||||
|
github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY=
|
||||||
|
github.com/hashicorp/terraform-plugin-sdk/v2 v2.40.1 h1:2yPUd7esMOpuTaG3y1iEla1iw+tla+3ZEkkBnmOAre4=
|
||||||
|
github.com/hashicorp/terraform-plugin-sdk/v2 v2.40.1/go.mod h1:sq8qsxh+PwdvTQFcd17kfCoBgQo46ADNMvCpKE7t/gY=
|
||||||
|
github.com/hashicorp/terraform-plugin-testing v1.16.0 h1:GB97nGnJ1hESpDrCjqZig38RodSF0gdRzxlDupLXP38=
|
||||||
|
github.com/hashicorp/terraform-plugin-testing v1.16.0/go.mod h1:eQPYAy9xFMV7xtIFX8Y+wJGtUB++HBl329zCF6PBMZk=
|
||||||
|
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.2.1 h1:ubvrTFw3Q7CsoEaX7V06PtCTKG3wu7GyyobAoN4eF3Q=
|
||||||
|
github.com/hashicorp/terraform-svchost v0.2.1/go.mod h1:zDMheBLvNzu7Q6o9TBvPqiZToJcSuCLXjAXxBslSky4=
|
||||||
|
github.com/hashicorp/vault/api v1.22.0 h1:+HYFquE35/B74fHoIeXlZIP2YADVboaPjaSicHEZiH0=
|
||||||
|
github.com/hashicorp/vault/api v1.22.0/go.mod h1:IUZA2cDvr4Ok3+NtK2Oq/r+lJeXkeCrHRmqdyWfpmGM=
|
||||||
|
github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8=
|
||||||
|
github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns=
|
||||||
|
github.com/hexops/autogold v1.3.0 h1:IEtGNPxBeBu8RMn8eKWh/Ll9dVNgSnJ7bp/qHgMQ14o=
|
||||||
|
github.com/hexops/autogold v1.3.0/go.mod h1:d4hwi2rid66Sag+BVuHgwakW/EmaFr8vdTSbWDbrDRI=
|
||||||
|
github.com/hexops/autogold/v2 v2.3.1 h1:GcDwp9TkPkDG/wVodudePKPG8HbvEA8o8Z9hySIuAC4=
|
||||||
|
github.com/hexops/autogold/v2 v2.3.1/go.mod h1:1vQ1sj0yXQNn8VOlQeefQPXTLr9Qy9cf8pMDanZ4Gmo=
|
||||||
|
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
|
||||||
|
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
|
||||||
|
github.com/hexops/valast v1.5.0 h1:FBTuvVi0wjTngtXJRZXMbkN/Dn6DgsUsBwch2DUJU8Y=
|
||||||
|
github.com/hexops/valast v1.5.0/go.mod h1:Jcy1pNH7LNraVaAZDLyv21hHg2WBv9Nf9FL6fGxU7o4=
|
||||||
|
github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||||
|
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||||
|
github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4=
|
||||||
|
github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||||
|
github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI=
|
||||||
|
github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
|
||||||
|
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||||
|
github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM=
|
||||||
|
github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||||
|
github.com/jhump/protoreflect v1.17.0 h1:qOEr613fac2lOuTgWN4tPAtLL7fUSbuJL5X5XumQh94=
|
||||||
|
github.com/jhump/protoreflect v1.17.0/go.mod h1:h9+vUUL38jiBzck8ck+6G/aeMX8Z4QUY/NiJPwPNi+8=
|
||||||
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
|
github.com/kevinburke/ssh_config v1.6.0 h1:J1FBfmuVosPHf5GRdltRLhPJtJpTlMdKTBjRgTaQBFY=
|
||||||
|
github.com/kevinburke/ssh_config v1.6.0/go.mod h1:q2RIzfka+BXARoNexmF9gkxEX7DmvbW9P4hIVx2Kg4M=
|
||||||
|
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||||
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
|
github.com/klauspost/compress v1.18.7 h1:aUyZsS4kH3QTKurYhAOwAHxllVPnOthb3vPfnF1Ehjw=
|
||||||
|
github.com/klauspost/compress v1.18.7/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
|
||||||
|
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
|
||||||
|
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
|
||||||
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
|
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||||
|
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.4.1 h1:1EO+WB73+EH8EVbzlrG3KLAfEypQWVHIBqlTf+2hNss=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.4.1/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||||
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
|
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||||
|
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||||
|
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
|
||||||
|
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
|
||||||
|
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
|
||||||
|
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
|
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
|
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
|
||||||
|
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||||
|
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||||
|
github.com/mattn/go-isatty v0.0.24 h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI=
|
||||||
|
github.com/mattn/go-isatty v0.0.24/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A=
|
||||||
|
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
|
||||||
|
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
|
||||||
|
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||||
|
github.com/mattn/go-runewidth v0.0.27 h1:Feg/Oou5zI/wnpgDF6omIU0OokC9GxLC/WRknhVlIR0=
|
||||||
|
github.com/mattn/go-runewidth v0.0.27/go.mod h1:3qAiGCV4Koz/yuveO58qUefmUTRm8r0IGEXZ9jeHp/8=
|
||||||
|
github.com/mitchellh/cli v1.1.5 h1:OxRIeJXpAMztws/XHlN2vu6imG5Dpq+j61AzAX5fLng=
|
||||||
|
github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4=
|
||||||
|
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
|
||||||
|
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
|
||||||
|
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
|
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
|
||||||
|
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
|
||||||
|
github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU=
|
||||||
|
github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8=
|
||||||
|
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
|
||||||
|
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
|
||||||
|
github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y=
|
||||||
|
github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=
|
||||||
|
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||||
|
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||||
|
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
|
||||||
|
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
|
||||||
|
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
|
||||||
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
|
||||||
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
|
||||||
|
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
|
||||||
|
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
|
||||||
|
github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
|
||||||
|
github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
|
||||||
|
github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A=
|
||||||
|
github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM=
|
||||||
|
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.2.0 h1:O8x3yXwah4A73hJdlrwo/2X6J62gE5qTMusH0dvz60E=
|
||||||
|
github.com/oklog/run v1.2.0/go.mod h1:mgDbKRSwPhJfesJ4PntqFUbKQRZ50NgmZTSPlFA0YFk=
|
||||||
|
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
|
||||||
|
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
|
||||||
|
github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM=
|
||||||
|
github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
|
||||||
|
github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 h1:jrYnow5+hy3WRDCBypUFvVKNSPPCdqgSXIE9eJDD8LM=
|
||||||
|
github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew=
|
||||||
|
github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA=
|
||||||
|
github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM=
|
||||||
|
github.com/opentofu/registry-address/v2 v2.0.0-20250611143131-d0a99bd8acdd h1:YAAnzmyOoMvm5SuGXL4hhlfBgqz92XDfORGPV3kmQFc=
|
||||||
|
github.com/opentofu/registry-address/v2 v2.0.0-20250611143131-d0a99bd8acdd/go.mod h1:7M92SvuJm1WBriIpa4j0XmruU9pxkgPXmRdc6FfAvAk=
|
||||||
|
github.com/opentofu/svchost v0.0.0-20250610175836-86c9e5e3d8c8 h1:J3pmsVB+nGdfNp5HWdEAC96asYgc7S6J724ICrYDCTk=
|
||||||
|
github.com/opentofu/svchost v0.0.0-20250610175836-86c9e5e3d8c8/go.mod h1:0kKTcD9hUrbAz41GWp8USa/+OuI8QKirU3qdCWNa3jI=
|
||||||
|
github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0=
|
||||||
|
github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc=
|
||||||
|
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
||||||
|
github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
|
||||||
|
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
|
||||||
|
github.com/pgavlin/fx/v2 v2.0.12 h1:SjjaJ68Dt8Z4zHwOpY/RPijd7lShs6xYupJbF9ra00M=
|
||||||
|
github.com/pgavlin/fx/v2 v2.0.12/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
|
||||||
|
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 h1:LoCV5cscNVWyK5ChN/uCoIFJz8jZD63VQiGJIRgr6uo=
|
||||||
|
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386/go.mod h1:MRxHTJrf9FhdfNQ8Hdeh9gmHevC9RJE/fu8M3JIGjoE=
|
||||||
|
github.com/pjbgf/sha1cd v0.6.0 h1:3WJ8Wz8gvDz29quX1OcEmkAlUg9diU4GxJHqs0/XiwU=
|
||||||
|
github.com/pjbgf/sha1cd v0.6.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
|
||||||
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
||||||
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
|
||||||
|
github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw=
|
||||||
|
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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||||
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
||||||
|
github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo=
|
||||||
|
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
|
||||||
|
github.com/pulumi-labs/pulumi-hcl v0.3.1 h1:Fp8Nc/owglgUqVPodZ4ZFxUuyydiYUXqtLMhmuIOX8U=
|
||||||
|
github.com/pulumi-labs/pulumi-hcl v0.3.1/go.mod h1:DQS4ZHIFxV4mzVd0By5WohxbonVRKWhlAhXIkMAeQK0=
|
||||||
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
|
||||||
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
|
||||||
|
github.com/pulumi/inflector v0.2.1 h1:bqyiish3tq//vLeLiEstSFE5K7RNjy/ce47ed4QATu8=
|
||||||
|
github.com/pulumi/inflector v0.2.1/go.mod h1:HUFCjcPTz96YtTuUlwG3i3EZG4WlniBvR9bd+iJxCUY=
|
||||||
|
github.com/pulumi/providertest v0.7.0 h1:nXydemrnkJfil6sd8AtvO81gJOTzYc1wFfgtco4zWDc=
|
||||||
|
github.com/pulumi/providertest v0.7.0/go.mod h1:R7nigJF1sE3yUtNQSozNSfsUl/gK4xIDW0Mxmacl6IY=
|
||||||
|
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 v3.110.0 h1:3ZVrcJAP3ho1YSYT2n/UqlKBEjGY4ePfmjknjHXAXi0=
|
||||||
|
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3 v3.110.0/go.mod h1:sZ26/AWTq2jYFcc26sTFK+1mKiGsOETeFltYqpBN7E4=
|
||||||
|
github.com/pulumi/pulumi-java v1.34.0 h1:UiwcJfvb8dFu90Ey50Q+gCRQGiczfaX4n9e63VkEwBU=
|
||||||
|
github.com/pulumi/pulumi-java v1.34.0/go.mod h1:/tqIv+dbepDGuaGtlEOFb83Fgko4uE783VeGN7BVeg8=
|
||||||
|
github.com/pulumi/pulumi-terraform-bridge/v3 v3.136.0 h1:MB+m/Rg1NKCAcxICoDR0nAE7SzjE7W7NnBBSOZouwc4=
|
||||||
|
github.com/pulumi/pulumi-terraform-bridge/v3 v3.136.0/go.mod h1:XOQPUACb9ZTlly/7t7w4r2VnanhjnhlgZJOvMxfeTU0=
|
||||||
|
github.com/pulumi/pulumi-yaml v1.38.1 h1:FquTa8vjvKXreiBHDmuUD9jaZc5y0WXYvRYey+Wrzd4=
|
||||||
|
github.com/pulumi/pulumi-yaml v1.38.1/go.mod h1:Vh0fhfZGckj1Bqwdcr3buXjAP+VsseEuPjRl+SsOMdo=
|
||||||
|
github.com/pulumi/pulumi/pkg/v3 v3.256.0 h1:uXTo11w2S5scowuuv6Z5yMzxz9NmpYnogNBCeCUziWc=
|
||||||
|
github.com/pulumi/pulumi/pkg/v3 v3.256.0/go.mod h1:FdxtC8Mia2ZjO80xPOTNKusgF8Ae16GQe2LqhXv8pNw=
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.256.0 h1:OrkIu7Iw3HUcMtoEy2uzpD21C32B5EYBLBgBoh/uQPM=
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.256.0/go.mod h1:pyX/FL1Ta3mn4UPfYh2LKG+q/90i2+Jnl0OX4cS+b9U=
|
||||||
|
github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI=
|
||||||
|
github.com/pulumi/terraform-diff-reader v0.0.2/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ=
|
||||||
|
github.com/rhysd/go-fakeio v1.0.0 h1:+TjiKCOs32dONY7DaoVz/VPOdvRkPfBkEyUDIpM8FQY=
|
||||||
|
github.com/rhysd/go-fakeio v1.0.0/go.mod h1:joYxF906trVwp2JLrE4jlN7A0z6wrz8O6o1UjarbFzE=
|
||||||
|
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||||
|
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||||
|
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
|
||||||
|
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
|
||||||
|
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
||||||
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
|
github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk=
|
||||||
|
github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
|
||||||
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
|
||||||
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
|
||||||
|
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
|
||||||
|
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
|
||||||
|
github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc=
|
||||||
|
github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg=
|
||||||
|
github.com/segmentio/encoding v0.3.6 h1:E6lVLyDPseWEulBmCmAKPanDd3jiyGDo5gMcugCRwZQ=
|
||||||
|
github.com/segmentio/encoding v0.3.6/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM=
|
||||||
|
github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
|
||||||
|
github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
|
||||||
|
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
|
||||||
|
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
|
||||||
|
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
|
||||||
|
github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I=
|
||||||
|
github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg=
|
||||||
|
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||||
|
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
|
||||||
|
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
|
||||||
|
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
|
||||||
|
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
|
||||||
|
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
|
||||||
|
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
github.com/spiffe/go-spiffe/v2 v2.7.0 h1:uXe1MflJoHw58wAUvxVlcM7WpKtijWG7I1UidcGh6g4=
|
||||||
|
github.com/spiffe/go-spiffe/v2 v2.7.0/go.mod h1:47Q0Q9/AqGha8QLHp+kxpH4Wca7X7EnOtlIJy3mxZ3U=
|
||||||
|
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
|
||||||
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
|
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
|
||||||
|
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||||
|
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||||
|
github.com/teekennedy/goldmark-markdown v0.3.0 h1:ik9/biVGCwGWFg8dQ3KVm2pQ/wiiG0whYiUcz9xH0W8=
|
||||||
|
github.com/teekennedy/goldmark-markdown v0.3.0/go.mod h1:kMhDz8La77A9UHvJGsxejd0QUflN9sS+QXCqnhmxmNo=
|
||||||
|
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
|
||||||
|
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
|
||||||
|
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
|
||||||
|
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
|
||||||
|
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
|
||||||
|
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
|
||||||
|
github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY=
|
||||||
|
github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||||
|
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
|
||||||
|
github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI=
|
||||||
|
github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
|
||||||
|
github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8=
|
||||||
|
github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok=
|
||||||
|
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
|
||||||
|
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
|
||||||
|
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c=
|
||||||
|
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
|
||||||
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
|
||||||
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
|
||||||
|
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
|
||||||
|
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||||
|
github.com/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 v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
|
github.com/yuin/goldmark v1.7.17 h1:p36OVWwRb246iHxA/U4p8OPEpOTESm4n+g+8t0EE5uA=
|
||||||
|
github.com/yuin/goldmark v1.7.17/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
|
||||||
|
github.com/zclconf/go-cty v1.18.1 h1:yEGE8M4iIZlyKQURZNb2SnEyZlZHUcBCnx6KF81KuwM=
|
||||||
|
github.com/zclconf/go-cty v1.18.1/go.mod h1:qpnV6EDNgC1sns/AleL1fvatHw72j+S+nS+MJ+T2CSg=
|
||||||
|
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo=
|
||||||
|
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM=
|
||||||
|
github.com/zclconf/go-cty-yaml v1.2.0 h1:GDyL4+e/Qe/S0B7YaecMLbVvAR/Mp21CXMOSiCTOi1M=
|
||||||
|
github.com/zclconf/go-cty-yaml v1.2.0/go.mod h1:9YLUH4g7lOhVWqUbctnVlZ5KLpg7JAprQNgxSZ1Gyxs=
|
||||||
|
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
|
||||||
|
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
|
||||||
|
go.opentelemetry.io/collector/featuregate v1.64.0 h1:lWEUtzSSPxR4n9PdQ/BQrDUaL5d49gCk2vpITBjMYVk=
|
||||||
|
go.opentelemetry.io/collector/featuregate v1.64.0/go.mod h1:4ga1QBMPEejXXmpyJS8lmaRpknJ3Lb9Bvk6e420bUFU=
|
||||||
|
go.opentelemetry.io/collector/internal/testutil v0.158.0 h1:ypt51JFMdHKoB6nODafWcUq9MiexCelDJ2zxXNu1xWo=
|
||||||
|
go.opentelemetry.io/collector/internal/testutil v0.158.0/go.mod h1:Jkjs6rkqs973LqgZ0Fe3zrokQRKULYXPIf4HuqStiEE=
|
||||||
|
go.opentelemetry.io/collector/pdata v1.64.0 h1:P3HDQLm/ksHWBbaWqtlXhAvC/4lTL5pqIG8TRScNDXI=
|
||||||
|
go.opentelemetry.io/collector/pdata v1.64.0/go.mod h1:aftmWhlLcl6WCUmquMr34Y2ufd+HtpQWu/zLQra2fGs=
|
||||||
|
go.opentelemetry.io/contrib/bridges/otelslog v0.20.0 h1:oEl2Pw/i4OQwhAuda2pAHFAcOMivA+Xa+iTccBfab/g=
|
||||||
|
go.opentelemetry.io/contrib/bridges/otelslog v0.20.0/go.mod h1:yMSQaiiq5dpfrSJCYLBcqFeJkFFI67seT4ngvx6jfVo=
|
||||||
|
go.opentelemetry.io/contrib/detectors/gcp v1.44.0 h1:NmLfL734pJhM0JKaYd2Y28+nY9dPRWYAAbxhRCrKXPw=
|
||||||
|
go.opentelemetry.io/contrib/detectors/gcp v1.44.0/go.mod h1:tNAsgd8avTGke1+MndXlU5Cru4PQ9Ai/cCNWQv/ZJ/s=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.69.0 h1:2yEATaop1/a1I4psnSLgWVPLWwCzkqWakgJy7xTDVy0=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.69.0/go.mod h1:D7J12YRapIekYyPWgGPlA/23pRmpSEZC5xJC/TTLI9U=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI=
|
||||||
|
go.opentelemetry.io/otel v1.45.0 h1:pdrWmLHofpubmArBv1LgFSv1Z0Ie/ppdZzu+kUN5EeU=
|
||||||
|
go.opentelemetry.io/otel v1.45.0/go.mod h1:XZxIqPapzEYnhNSScF5DIqXhm/rYi0FzCe2XddAwZfQ=
|
||||||
|
go.opentelemetry.io/otel/bridge/opentracing v1.33.0 h1:eH88qvKdY7ns7Xu6WlJBQNOzZ3MVvBR6tEl2euaYS9w=
|
||||||
|
go.opentelemetry.io/otel/bridge/opentracing v1.33.0/go.mod h1:FNai/nhRSn/kHyv+V1zaf/30BU8hO/DXo0MvV0PaUS8=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.21.0 h1:WseeVYf5dJZTsyPiyW5L14k5qsSibqXAMTSiFEDiWr0=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.21.0/go.mod h1:SiLZnQS6Qk2eCpvr2CH/XMAOa64TWGXxEZJZCpD2Lmc=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 h1:QRefszxJmfPdjXUUm3j6iDzY03mTPXMjqErFqQ67vUg=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0/go.mod h1:Tiz03lTBVBrm7eWZBOidzEaYaJa8tjwGUGv6d8mlTyk=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 h1:fG5MCxGz8+2VtrN/WgqSpJFctVz24gpxj8CxkKmc8Ww=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0/go.mod h1:BmAYTn+3ysbRe+IU2msxmf5Rx3g6DHvex+tWI3LdhYI=
|
||||||
|
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.43.0 h1:TC+BewnDpeiAmcscXbGMfxkO+mwYUwE/VySwvw88PfA=
|
||||||
|
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.43.0/go.mod h1:J/ZyF4vfPwsSr9xJSPyQ4LqtcTPULFR64KwTikGLe+A=
|
||||||
|
go.opentelemetry.io/otel/log v0.21.0 h1:SLsVDGmtyBrdw8/a2Z0bOIxou/+bN4z56GebH7T0LvA=
|
||||||
|
go.opentelemetry.io/otel/log v0.21.0/go.mod h1:iReetQrZL9Wyg84cCkOoCmqDHS5RCFfyxC7J+r8fn8g=
|
||||||
|
go.opentelemetry.io/otel/metric v1.45.0 h1:7Eg1uH7CJ5cXv9is6tnBe1FI6rj1nwUdbFypRm3br/M=
|
||||||
|
go.opentelemetry.io/otel/metric v1.45.0/go.mod h1:HAPbm1nd3p1PmFH7v2dR+6BjXxw+Lq4a2+pndMAm08s=
|
||||||
|
go.opentelemetry.io/otel/metric/x v0.67.0 h1:PcicCNZFkZ4bXfSooXdo3WN7RBOVOtjVdo1wD358Uns=
|
||||||
|
go.opentelemetry.io/otel/metric/x v0.67.0/go.mod h1:FBjCWZe6wgcqxcMtjdGiClDKXb2YxxXii0CXftE4QtI=
|
||||||
|
go.opentelemetry.io/otel/sdk v1.45.0 h1:4VVSMgQ83dUgW2aoX5f6JgLvHwIvzcuLnF9lUdCSpCw=
|
||||||
|
go.opentelemetry.io/otel/sdk v1.45.0/go.mod h1:Sr40LgXV7DsKMMJMKOhUWOgMWTfAaqvm2kF0g7ilwuA=
|
||||||
|
go.opentelemetry.io/otel/sdk/log v0.21.0 h1:QsE7XSR0ktQdKmRKGnR+f1ObGF32WG+7MER/P9KgmYc=
|
||||||
|
go.opentelemetry.io/otel/sdk/log v0.21.0/go.mod h1:m9mApjCoD2/1QuKCAptjv+BrG9WKOvQLVdNx+iBldTo=
|
||||||
|
go.opentelemetry.io/otel/sdk/log/logtest v0.21.0 h1:X+JBBgKlswCGYsmgL0CnoUUtlE//VB345c84jYAYkdQ=
|
||||||
|
go.opentelemetry.io/otel/sdk/log/logtest v0.21.0/go.mod h1:HD1575K8e6sIFBBDd5tZB3t9DlMytWXq9FuR+Y4rfjE=
|
||||||
|
go.opentelemetry.io/otel/sdk/metric v1.45.0 h1:oVFszMfyj1Am6s24Vtc7wBb8BKLcwepJjNEYILuiE3o=
|
||||||
|
go.opentelemetry.io/otel/sdk/metric v1.45.0/go.mod h1:vUWUxDZvu1WVRj8JA8S0AdhsPrZoDpA2DdZauIh4mDA=
|
||||||
|
go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag=
|
||||||
|
go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc=
|
||||||
|
go.opentelemetry.io/proto/otlp v1.11.0 h1:5rrYs0Ykyj50sdU/JU0x8etU+LubXWb+gED6TbEdMIk=
|
||||||
|
go.opentelemetry.io/proto/otlp v1.11.0/go.mod h1:SmVizdCOAm3XBtG1g1NnOdhW6jtddT72hLMhv8VwA8E=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp v1.11.0 h1:zB37f+f99+y6UIZR4h7UpwbXd5kFNyip35U7GaJ/Jik=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp v1.11.0/go.mod h1:mI3DeND+VXZuA4keqFPKDJ3BklwveYm1JqBcEWKDEOM=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.4.0 h1:mt+DWtks0biKnz0jXMpDbxWN0CHJi6OJDKe4GcREkcs=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.4.0/go.mod h1:7UXaX/7uT+kumUHd3LIWyjMlklEp0mPlrE9xmtbG6/8=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.4.0 h1:rLHkdB6eHDiRSIoz0cvNuTJsVJBxaL6IyS1e9BSaXLY=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.4.0/go.mod h1:BrX0dmOGsMuWNXXbFafTD7Gb6F3yK+2czVQ6+c24Cnk=
|
||||||
|
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||||
|
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||||
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
|
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||||
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
|
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
|
||||||
|
gocloud.dev v0.46.1-0.20260629181806-a12ddce30739 h1:F571njcRLc2TIur9Ym3fHnOVaD7A7vsOliysXoq7+fQ=
|
||||||
|
gocloud.dev v0.46.1-0.20260629181806-a12ddce30739/go.mod h1:8d4USd9IwYeHSoVmpdo/zOIhKK5Wf0v3/5lnCOee/8w=
|
||||||
|
gocloud.dev/secrets/hashivault v0.46.0 h1:gQlpb/1wEwVoOavi/RGeQs5WlnzYddcDW81b0kywI0w=
|
||||||
|
gocloud.dev/secrets/hashivault v0.46.0/go.mod h1:I9RZ3S1+v/o++SRTJzSJ904LUGaBx7cpKVrzobm2SIA=
|
||||||
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
|
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
||||||
|
golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw=
|
||||||
|
golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk=
|
||||||
|
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM=
|
||||||
|
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80=
|
||||||
|
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||||
|
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||||
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
|
golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
|
||||||
|
golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
|
||||||
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
|
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
||||||
|
golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
|
||||||
|
golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
|
||||||
|
golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs=
|
||||||
|
golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q=
|
||||||
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
|
||||||
|
golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
|
||||||
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/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-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
|
||||||
|
golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||||
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
|
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
||||||
|
golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0=
|
||||||
|
golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
|
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||||
|
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
|
golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
|
||||||
|
golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
|
||||||
|
golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
|
||||||
|
golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
|
||||||
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
|
golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
|
||||||
|
golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
|
||||||
|
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=
|
||||||
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY=
|
||||||
|
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
|
||||||
|
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
|
||||||
|
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
|
||||||
|
google.golang.org/api v0.283.0 h1:0lkp8u0MPwJVHqRL+nJlMAoZVVzbmiXmFHXMOTmSPik=
|
||||||
|
google.golang.org/api v0.283.0/go.mod h1:6Wssta4c5n9qHq5CBhmlai5h/PUa1djdDAIhYEHyvcM=
|
||||||
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
|
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 v0.0.0-20260526163538-3dc84a4a5aaa h1:mfj8IS4EA4VAR9a6QDVxTQkLY64iBybb5QI1B4pXrpE=
|
||||||
|
google.golang.org/genproto v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:fuT7yonGw1Iq2oa+YC0fyqPPQJkgo/54gPNC6VitOkI=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d h1:FarXi840EJWSHYTN3ERkADbPWjl307+FGrA22KAVjjc=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
|
||||||
|
google.golang.org/grpc v1.83.0 h1:JeNZEKJFbQxArAMl+hiytHauacDNqJUllNfmIMmpqnQ=
|
||||||
|
google.golang.org/grpc v1.83.0/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ=
|
||||||
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
|
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
|
||||||
|
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
||||||
|
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
|
||||||
|
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
|
||||||
|
lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w=
|
||||||
|
lukechampine.com/frand v1.5.1/go.mod h1:4VstaWc2plN4Mjr10chUD46RAVGWhpkZ5Nja8+Azp0Q=
|
||||||
|
mvdan.cc/gofumpt v0.9.2 h1:zsEMWL8SVKGHNztrx6uZrXdp7AX8r421Vvp23sz7ik4=
|
||||||
|
mvdan.cc/gofumpt v0.9.2/go.mod h1:iB7Hn+ai8lPvofHd9ZFGVg2GOr8sBUw1QUWjNbmIL/s=
|
||||||
|
pgregory.net/rapid v1.3.0 h1:vBvO0VSqti75J1jjYqpgPNBLKMd1+gxa9fYo7vk/Exc=
|
||||||
|
pgregory.net/rapid v1.3.0/go.mod h1:dPlE4OBBxgXPqkP79flB6sJL1dx5azpI7HQ9MY9Z7uk=
|
||||||
4
provider/pkg/version/version.go
Normal file
4
provider/pkg/version/version.go
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package version
|
||||||
|
|
||||||
|
// Version is initialized by the Go linker to contain the semver of this build.
|
||||||
|
var Version string
|
||||||
165
provider/resources.go
Normal file
165
provider/resources.go
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
// Package dokploy bridges the Dokploy Terraform provider into a Pulumi
|
||||||
|
// provider. The Terraform provider itself lives in
|
||||||
|
// github.com/maxvojtkov/terraform-provider-dokploy; everything in this file is
|
||||||
|
// mapping — Terraform type names to Pulumi tokens, and Terraform provider
|
||||||
|
// configuration to Pulumi configuration.
|
||||||
|
package dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "embed"
|
||||||
|
|
||||||
|
pfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf/tfbridge"
|
||||||
|
"github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge"
|
||||||
|
|
||||||
|
tfshim "github.com/maxvojtkov/terraform-provider-dokploy/shim"
|
||||||
|
)
|
||||||
|
|
||||||
|
// bridgeMetadata carries auto-aliasing state between tfgen runs so that token
|
||||||
|
// renames stay backwards compatible. tfgen rewrites it; the checked-in `{}`
|
||||||
|
// placeholder keeps the package compiling before the first generation.
|
||||||
|
//
|
||||||
|
//go:embed cmd/pulumi-resource-dokploy/bridge-metadata.json
|
||||||
|
var bridgeMetadata []byte
|
||||||
|
|
||||||
|
// mainPkg is the single module every resource and data source lands in, giving
|
||||||
|
// tokens of the form `dokploy:index:Project`.
|
||||||
|
const mainPkg = "index"
|
||||||
|
|
||||||
|
func res(name string) *tfbridge.ResourceInfo {
|
||||||
|
return &tfbridge.ResourceInfo{Tok: tfbridge.MakeResource("dokploy", mainPkg, name)}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ds(name string) *tfbridge.DataSourceInfo {
|
||||||
|
return &tfbridge.DataSourceInfo{Tok: tfbridge.MakeDataSource("dokploy", mainPkg, name)}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Provider returns the bridged Pulumi provider definition for Dokploy.
|
||||||
|
func Provider(version string) tfbridge.ProviderInfo {
|
||||||
|
if version == "" {
|
||||||
|
version = "0.0.0-dev"
|
||||||
|
}
|
||||||
|
|
||||||
|
prov := tfbridge.ProviderInfo{
|
||||||
|
P: pfbridge.ShimProvider(tfshim.NewProvider(version)),
|
||||||
|
Name: "dokploy",
|
||||||
|
|
||||||
|
DisplayName: "Dokploy",
|
||||||
|
Publisher: "maxvojtkov",
|
||||||
|
Description: "A Pulumi package for creating and managing Dokploy resources",
|
||||||
|
Keywords: []string{
|
||||||
|
"pulumi", "dokploy", "paas", "docker", "deployment",
|
||||||
|
"category/cloud", "category/infrastructure",
|
||||||
|
},
|
||||||
|
License: "MPL-2.0",
|
||||||
|
Homepage: "https://github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
Repository: "https://github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
GitHubOrg: "maxvojtkov",
|
||||||
|
Version: version,
|
||||||
|
|
||||||
|
// This is not a Pulumi-published provider, so the plugin binary is
|
||||||
|
// resolved from GitHub releases rather than the Pulumi CDN.
|
||||||
|
PluginDownloadURL: "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
|
||||||
|
TFProviderVersion: version,
|
||||||
|
MetadataInfo: tfbridge.NewProviderMetadata(bridgeMetadata),
|
||||||
|
|
||||||
|
// The upstream provider is plugin-framework based, so opt in to the
|
||||||
|
// bridge's accurate preview and raw state handling.
|
||||||
|
EnableAccurateBridgePreview: true,
|
||||||
|
EnableAccuratePFBridgePreview: true,
|
||||||
|
EnableRawStateDelta: true,
|
||||||
|
|
||||||
|
Config: map[string]*tfbridge.SchemaInfo{
|
||||||
|
"host": {
|
||||||
|
Default: &tfbridge.DefaultInfo{EnvVars: []string{"DOKPLOY_HOST"}},
|
||||||
|
},
|
||||||
|
"api_key": {
|
||||||
|
Secret: tfbridge.True(),
|
||||||
|
Default: &tfbridge.DefaultInfo{EnvVars: []string{"DOKPLOY_API_KEY"}},
|
||||||
|
},
|
||||||
|
"timeout_seconds": {
|
||||||
|
Default: &tfbridge.DefaultInfo{EnvVars: []string{"DOKPLOY_TIMEOUT_SECONDS"}},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Resources: map[string]*tfbridge.ResourceInfo{
|
||||||
|
// Core hierarchy.
|
||||||
|
"dokploy_project": res("Project"),
|
||||||
|
"dokploy_environment": res("Environment"),
|
||||||
|
"dokploy_application": res("Application"),
|
||||||
|
"dokploy_compose": res("Compose"),
|
||||||
|
|
||||||
|
// Databases.
|
||||||
|
"dokploy_postgres": res("Postgres"),
|
||||||
|
"dokploy_mysql": res("MySql"),
|
||||||
|
"dokploy_mariadb": res("MariaDb"),
|
||||||
|
"dokploy_mongo": res("Mongo"),
|
||||||
|
"dokploy_redis": res("Redis"),
|
||||||
|
|
||||||
|
// Networking and service attachments.
|
||||||
|
"dokploy_domain": res("Domain"),
|
||||||
|
"dokploy_mount": res("Mount"),
|
||||||
|
"dokploy_port": res("Port"),
|
||||||
|
"dokploy_redirect": res("Redirect"),
|
||||||
|
"dokploy_security": res("Security"),
|
||||||
|
|
||||||
|
// Account-level settings.
|
||||||
|
"dokploy_registry": res("Registry"),
|
||||||
|
"dokploy_ssh_key": res("SshKey"),
|
||||||
|
"dokploy_certificate": res("Certificate"),
|
||||||
|
"dokploy_destination": res("Destination"),
|
||||||
|
},
|
||||||
|
|
||||||
|
DataSources: map[string]*tfbridge.DataSourceInfo{
|
||||||
|
"dokploy_project": ds("getProject"),
|
||||||
|
"dokploy_projects": ds("getProjects"),
|
||||||
|
"dokploy_environment": ds("getEnvironment"),
|
||||||
|
"dokploy_application": ds("getApplication"),
|
||||||
|
"dokploy_servers": ds("getServers"),
|
||||||
|
},
|
||||||
|
|
||||||
|
JavaScript: &tfbridge.JavaScriptInfo{
|
||||||
|
PackageName: "@maxvojtkov/pulumi-dokploy",
|
||||||
|
Dependencies: map[string]string{"@pulumi/pulumi": "^3.0.0"},
|
||||||
|
DevDependencies: map[string]string{"@types/node": "^18", "typescript": "^4.6.0"},
|
||||||
|
RespectSchemaVersion: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
Python: pythonInfo(),
|
||||||
|
|
||||||
|
Golang: &tfbridge.GolangInfo{
|
||||||
|
ImportBasePath: "github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy",
|
||||||
|
GenerateResourceContainerTypes: true,
|
||||||
|
RespectSchemaVersion: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
CSharp: &tfbridge.CSharpInfo{
|
||||||
|
RootNamespace: "Maxvojtkov",
|
||||||
|
PackageReferences: map[string]string{"Pulumi": "3.*"},
|
||||||
|
RespectSchemaVersion: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// Every Dokploy resource carries a user-visible `name`; let Pulumi
|
||||||
|
// auto-generate one when the program does not supply it.
|
||||||
|
prov.SetAutonaming(255, "-")
|
||||||
|
|
||||||
|
// Keeps tokens stable if a future release renames or re-modules anything.
|
||||||
|
if err := prov.ApplyAutoAliases(); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return prov
|
||||||
|
}
|
||||||
|
|
||||||
|
// pythonInfo exists because PyProject is an anonymous struct field and cannot
|
||||||
|
// be set inside a composite literal.
|
||||||
|
func pythonInfo() *tfbridge.PythonInfo {
|
||||||
|
info := &tfbridge.PythonInfo{
|
||||||
|
PackageName: "pulumi_dokploy",
|
||||||
|
Requires: map[string]string{"pulumi": ">=3.0.0,<4.0.0"},
|
||||||
|
RespectSchemaVersion: true,
|
||||||
|
}
|
||||||
|
info.PyProject.Enabled = true
|
||||||
|
return info
|
||||||
|
}
|
||||||
1
sdk/dotnet/.gitattributes
generated
vendored
Normal file
1
sdk/dotnet/.gitattributes
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
* linguist-generated
|
||||||
2
sdk/dotnet/.gitignore
generated
vendored
Normal file
2
sdk/dotnet/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
bin
|
||||||
|
obj
|
||||||
1906
sdk/dotnet/Application.cs
generated
Normal file
1906
sdk/dotnet/Application.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
202
sdk/dotnet/Certificate.cs
generated
Normal file
202
sdk/dotnet/Certificate.cs
generated
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/certificate:Certificate")]
|
||||||
|
public partial class Certificate : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Whether Dokploy should renew this certificate automatically.
|
||||||
|
/// </summary>
|
||||||
|
[Output("autoRenew")]
|
||||||
|
public Output<bool> AutoRenew { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded certificate chain.
|
||||||
|
/// </summary>
|
||||||
|
[Output("certificateData")]
|
||||||
|
public Output<string> CertificateData { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path where Dokploy writes the certificate on disk.
|
||||||
|
/// </summary>
|
||||||
|
[Output("certificatePath")]
|
||||||
|
public Output<string> CertificatePath { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the certificate.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded private key.
|
||||||
|
/// </summary>
|
||||||
|
[Output("privateKey")]
|
||||||
|
public Output<string> PrivateKey { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this certificate is installed on.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Certificate resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Certificate(string name, CertificateArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/certificate:Certificate", name, args ?? new CertificateArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Certificate(string name, Input<string> id, CertificateState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/certificate:Certificate", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"privateKey",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Certificate resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Certificate Get(string name, Input<string> id, CertificateState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Certificate(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class CertificateArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Whether Dokploy should renew this certificate automatically.
|
||||||
|
/// </summary>
|
||||||
|
[Input("autoRenew")]
|
||||||
|
public Input<bool>? AutoRenew { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded certificate chain.
|
||||||
|
/// </summary>
|
||||||
|
[Input("certificateData", required: true)]
|
||||||
|
public Input<string> CertificateData { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the certificate.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("privateKey", required: true)]
|
||||||
|
private Input<string>? _privateKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded private key.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? PrivateKey
|
||||||
|
{
|
||||||
|
get => _privateKey;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this certificate is installed on.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
public CertificateArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new CertificateArgs Empty => new CertificateArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class CertificateState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Whether Dokploy should renew this certificate automatically.
|
||||||
|
/// </summary>
|
||||||
|
[Input("autoRenew")]
|
||||||
|
public Input<bool>? AutoRenew { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded certificate chain.
|
||||||
|
/// </summary>
|
||||||
|
[Input("certificateData")]
|
||||||
|
public Input<string>? CertificateData { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path where Dokploy writes the certificate on disk.
|
||||||
|
/// </summary>
|
||||||
|
[Input("certificatePath")]
|
||||||
|
public Input<string>? CertificatePath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the certificate.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("privateKey")]
|
||||||
|
private Input<string>? _privateKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded private key.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? PrivateKey
|
||||||
|
{
|
||||||
|
get => _privateKey;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this certificate is installed on.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
public CertificateState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new CertificateState Empty => new CertificateState();
|
||||||
|
}
|
||||||
|
}
|
||||||
868
sdk/dotnet/Compose.cs
generated
Normal file
868
sdk/dotnet/Compose.cs
generated
Normal file
@@ -0,0 +1,868 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/compose:Compose")]
|
||||||
|
public partial class Compose : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
/// </summary>
|
||||||
|
[Output("appName")]
|
||||||
|
public Output<string> AppName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Deploy automatically when the configured trigger fires.
|
||||||
|
/// </summary>
|
||||||
|
[Output("autoDeploy")]
|
||||||
|
public Output<bool> AutoDeploy { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Output("bitbucketBranch")]
|
||||||
|
public Output<string?> BitbucketBranch { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured Bitbucket provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Output("bitbucketId")]
|
||||||
|
public Output<string?> BitbucketId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Output("bitbucketOwner")]
|
||||||
|
public Output<string?> BitbucketOwner { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Output("bitbucketRepository")]
|
||||||
|
public Output<string?> BitbucketRepository { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository slug.
|
||||||
|
/// </summary>
|
||||||
|
[Output("bitbucketRepositorySlug")]
|
||||||
|
public Output<string?> BitbucketRepositorySlug { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Output("branch")]
|
||||||
|
public Output<string?> Branch { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Custom `docker compose` command to run.
|
||||||
|
/// </summary>
|
||||||
|
[Output("command")]
|
||||||
|
public Output<string> Command { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Inline Compose file contents. Used when `SourceType` is `Raw`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("composeFile")]
|
||||||
|
public Output<string> ComposeFile { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path to the Compose file within the repository.
|
||||||
|
/// </summary>
|
||||||
|
[Output("composePath")]
|
||||||
|
public Output<string> ComposePath { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("composeStatus")]
|
||||||
|
public Output<string> ComposeStatus { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("composeType")]
|
||||||
|
public Output<string> ComposeType { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the stack was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Branch to deploy for a custom Git remote.
|
||||||
|
/// </summary>
|
||||||
|
[Output("customGitBranch")]
|
||||||
|
public Output<string?> CustomGitBranch { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SSH key used to clone a private custom Git remote.
|
||||||
|
/// </summary>
|
||||||
|
[Output("customGitSshKeyId")]
|
||||||
|
public Output<string?> CustomGitSshKeyId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Git remote URL, when `SourceType` is `Git`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("customGitUrl")]
|
||||||
|
public Output<string?> CustomGitUrl { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data.
|
||||||
|
/// </summary>
|
||||||
|
[Output("deleteVolumes")]
|
||||||
|
public Output<bool?> DeleteVolumes { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clone Git submodules when checking out the repository.
|
||||||
|
/// </summary>
|
||||||
|
[Output("enableSubmodules")]
|
||||||
|
public Output<bool> EnableSubmodules { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string?> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this stack belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("environmentId")]
|
||||||
|
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Output("giteaBranch")]
|
||||||
|
public Output<string?> GiteaBranch { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured Gitea provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Output("giteaId")]
|
||||||
|
public Output<string?> GiteaId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Output("giteaOwner")]
|
||||||
|
public Output<string?> GiteaOwner { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Output("giteaRepository")]
|
||||||
|
public Output<string?> GiteaRepository { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured GitHub provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Output("githubId")]
|
||||||
|
public Output<string?> GithubId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Output("gitlabBranch")]
|
||||||
|
public Output<string?> GitlabBranch { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured GitLab provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Output("gitlabId")]
|
||||||
|
public Output<string?> GitlabId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Output("gitlabOwner")]
|
||||||
|
public Output<string?> GitlabOwner { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Full GitLab namespace path.
|
||||||
|
/// </summary>
|
||||||
|
[Output("gitlabPathNamespace")]
|
||||||
|
public Output<string?> GitlabPathNamespace { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numeric GitLab project ID.
|
||||||
|
/// </summary>
|
||||||
|
[Output("gitlabProjectId")]
|
||||||
|
public Output<int?> GitlabProjectId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Output("gitlabRepository")]
|
||||||
|
public Output<string?> GitlabRepository { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Run the stack on its own isolated Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Output("isolatedDeployment")]
|
||||||
|
public Output<bool> IsolatedDeployment { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
/// </summary>
|
||||||
|
[Output("isolatedDeploymentsVolume")]
|
||||||
|
public Output<bool> IsolatedDeploymentsVolume { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the stack.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Output("owner")]
|
||||||
|
public Output<string?> Owner { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Append a random suffix to service and volume names.
|
||||||
|
/// </summary>
|
||||||
|
[Output("randomize")]
|
||||||
|
public Output<bool> Randomize { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Output("repository")]
|
||||||
|
public Output<string?> Repository { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("sourceType")]
|
||||||
|
public Output<string> SourceType { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Suffix appended to generated resource names.
|
||||||
|
/// </summary>
|
||||||
|
[Output("suffix")]
|
||||||
|
public Output<string> Suffix { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// What triggers an automatic deployment. Valid values: `Push`, `Tag`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("triggerType")]
|
||||||
|
public Output<string> TriggerType { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
/// </summary>
|
||||||
|
[Output("watchPaths")]
|
||||||
|
public Output<ImmutableArray<string>> WatchPaths { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Compose resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Compose(string name, ComposeArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/compose:Compose", name, args ?? new ComposeArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Compose(string name, Input<string> id, ComposeState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/compose:Compose", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Compose resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Compose Get(string name, Input<string> id, ComposeState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Compose(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class ComposeArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Deploy automatically when the configured trigger fires.
|
||||||
|
/// </summary>
|
||||||
|
[Input("autoDeploy")]
|
||||||
|
public Input<bool>? AutoDeploy { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketBranch")]
|
||||||
|
public Input<string>? BitbucketBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured Bitbucket provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketId")]
|
||||||
|
public Input<string>? BitbucketId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketOwner")]
|
||||||
|
public Input<string>? BitbucketOwner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketRepository")]
|
||||||
|
public Input<string>? BitbucketRepository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository slug.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketRepositorySlug")]
|
||||||
|
public Input<string>? BitbucketRepositorySlug { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("branch")]
|
||||||
|
public Input<string>? Branch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Custom `docker compose` command to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Inline Compose file contents. Used when `SourceType` is `Raw`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composeFile")]
|
||||||
|
public Input<string>? ComposeFile { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path to the Compose file within the repository.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composePath")]
|
||||||
|
public Input<string>? ComposePath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composeType")]
|
||||||
|
public Input<string>? ComposeType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Branch to deploy for a custom Git remote.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customGitBranch")]
|
||||||
|
public Input<string>? CustomGitBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SSH key used to clone a private custom Git remote.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customGitSshKeyId")]
|
||||||
|
public Input<string>? CustomGitSshKeyId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Git remote URL, when `SourceType` is `Git`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customGitUrl")]
|
||||||
|
public Input<string>? CustomGitUrl { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data.
|
||||||
|
/// </summary>
|
||||||
|
[Input("deleteVolumes")]
|
||||||
|
public Input<bool>? DeleteVolumes { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clone Git submodules when checking out the repository.
|
||||||
|
/// </summary>
|
||||||
|
[Input("enableSubmodules")]
|
||||||
|
public Input<bool>? EnableSubmodules { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this stack belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId", required: true)]
|
||||||
|
public Input<string> EnvironmentId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaBranch")]
|
||||||
|
public Input<string>? GiteaBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured Gitea provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaId")]
|
||||||
|
public Input<string>? GiteaId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaOwner")]
|
||||||
|
public Input<string>? GiteaOwner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaRepository")]
|
||||||
|
public Input<string>? GiteaRepository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured GitHub provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("githubId")]
|
||||||
|
public Input<string>? GithubId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabBranch")]
|
||||||
|
public Input<string>? GitlabBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured GitLab provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabId")]
|
||||||
|
public Input<string>? GitlabId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabOwner")]
|
||||||
|
public Input<string>? GitlabOwner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Full GitLab namespace path.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabPathNamespace")]
|
||||||
|
public Input<string>? GitlabPathNamespace { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numeric GitLab project ID.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabProjectId")]
|
||||||
|
public Input<int>? GitlabProjectId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabRepository")]
|
||||||
|
public Input<string>? GitlabRepository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Run the stack on its own isolated Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("isolatedDeployment")]
|
||||||
|
public Input<bool>? IsolatedDeployment { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
/// </summary>
|
||||||
|
[Input("isolatedDeploymentsVolume")]
|
||||||
|
public Input<bool>? IsolatedDeploymentsVolume { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the stack.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("owner")]
|
||||||
|
public Input<string>? Owner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Append a random suffix to service and volume names.
|
||||||
|
/// </summary>
|
||||||
|
[Input("randomize")]
|
||||||
|
public Input<bool>? Randomize { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("repository")]
|
||||||
|
public Input<string>? Repository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("sourceType")]
|
||||||
|
public Input<string>? SourceType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Suffix appended to generated resource names.
|
||||||
|
/// </summary>
|
||||||
|
[Input("suffix")]
|
||||||
|
public Input<string>? Suffix { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// What triggers an automatic deployment. Valid values: `Push`, `Tag`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("triggerType")]
|
||||||
|
public Input<string>? TriggerType { get; set; }
|
||||||
|
|
||||||
|
[Input("watchPaths")]
|
||||||
|
private InputList<string>? _watchPaths;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> WatchPaths
|
||||||
|
{
|
||||||
|
get => _watchPaths ?? (_watchPaths = new InputList<string>());
|
||||||
|
set => _watchPaths = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComposeArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new ComposeArgs Empty => new ComposeArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class ComposeState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Deploy automatically when the configured trigger fires.
|
||||||
|
/// </summary>
|
||||||
|
[Input("autoDeploy")]
|
||||||
|
public Input<bool>? AutoDeploy { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketBranch")]
|
||||||
|
public Input<string>? BitbucketBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured Bitbucket provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketId")]
|
||||||
|
public Input<string>? BitbucketId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketOwner")]
|
||||||
|
public Input<string>? BitbucketOwner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketRepository")]
|
||||||
|
public Input<string>? BitbucketRepository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bitbucket repository slug.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bitbucketRepositorySlug")]
|
||||||
|
public Input<string>? BitbucketRepositorySlug { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("branch")]
|
||||||
|
public Input<string>? Branch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Custom `docker compose` command to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Inline Compose file contents. Used when `SourceType` is `Raw`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composeFile")]
|
||||||
|
public Input<string>? ComposeFile { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path to the Compose file within the repository.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composePath")]
|
||||||
|
public Input<string>? ComposePath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composeStatus")]
|
||||||
|
public Input<string>? ComposeStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `Stack`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composeType")]
|
||||||
|
public Input<string>? ComposeType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the stack was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Branch to deploy for a custom Git remote.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customGitBranch")]
|
||||||
|
public Input<string>? CustomGitBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SSH key used to clone a private custom Git remote.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customGitSshKeyId")]
|
||||||
|
public Input<string>? CustomGitSshKeyId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Git remote URL, when `SourceType` is `Git`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customGitUrl")]
|
||||||
|
public Input<string>? CustomGitUrl { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `False`, which preserves the data.
|
||||||
|
/// </summary>
|
||||||
|
[Input("deleteVolumes")]
|
||||||
|
public Input<bool>? DeleteVolumes { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clone Git submodules when checking out the repository.
|
||||||
|
/// </summary>
|
||||||
|
[Input("enableSubmodules")]
|
||||||
|
public Input<bool>? EnableSubmodules { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this stack belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId")]
|
||||||
|
public Input<string>? EnvironmentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaBranch")]
|
||||||
|
public Input<string>? GiteaBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured Gitea provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaId")]
|
||||||
|
public Input<string>? GiteaId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaOwner")]
|
||||||
|
public Input<string>? GiteaOwner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gitea repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("giteaRepository")]
|
||||||
|
public Input<string>? GiteaRepository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured GitHub provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("githubId")]
|
||||||
|
public Input<string>? GithubId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab branch to deploy.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabBranch")]
|
||||||
|
public Input<string>? GitlabBranch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the configured GitLab provider connection.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabId")]
|
||||||
|
public Input<string>? GitlabId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabOwner")]
|
||||||
|
public Input<string>? GitlabOwner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Full GitLab namespace path.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabPathNamespace")]
|
||||||
|
public Input<string>? GitlabPathNamespace { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numeric GitLab project ID.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabProjectId")]
|
||||||
|
public Input<int>? GitlabProjectId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitLab repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("gitlabRepository")]
|
||||||
|
public Input<string>? GitlabRepository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Run the stack on its own isolated Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("isolatedDeployment")]
|
||||||
|
public Input<bool>? IsolatedDeployment { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
/// </summary>
|
||||||
|
[Input("isolatedDeploymentsVolume")]
|
||||||
|
public Input<bool>? IsolatedDeploymentsVolume { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the stack.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub repository owner.
|
||||||
|
/// </summary>
|
||||||
|
[Input("owner")]
|
||||||
|
public Input<string>? Owner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Append a random suffix to service and volume names.
|
||||||
|
/// </summary>
|
||||||
|
[Input("randomize")]
|
||||||
|
public Input<bool>? Randomize { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GitHub repository name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("repository")]
|
||||||
|
public Input<string>? Repository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Where the Compose file comes from. Valid values: `Git`, `Github`, `Gitlab`, `Bitbucket`, `Gitea`, `Raw`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("sourceType")]
|
||||||
|
public Input<string>? SourceType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Suffix appended to generated resource names.
|
||||||
|
/// </summary>
|
||||||
|
[Input("suffix")]
|
||||||
|
public Input<string>? Suffix { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// What triggers an automatic deployment. Valid values: `Push`, `Tag`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("triggerType")]
|
||||||
|
public Input<string>? TriggerType { get; set; }
|
||||||
|
|
||||||
|
[Input("watchPaths")]
|
||||||
|
private InputList<string>? _watchPaths;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> WatchPaths
|
||||||
|
{
|
||||||
|
get => _watchPaths ?? (_watchPaths = new InputList<string>());
|
||||||
|
set => _watchPaths = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComposeState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new ComposeState Empty => new ComposeState();
|
||||||
|
}
|
||||||
|
}
|
||||||
76
sdk/dotnet/Config/Config.cs
generated
Normal file
76
sdk/dotnet/Config/Config.cs
generated
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
// *** 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.Immutable;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
public static class Config
|
||||||
|
{
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification =
|
||||||
|
"Double underscore prefix used to avoid conflicts with variable names.")]
|
||||||
|
private sealed class __Value<T>
|
||||||
|
{
|
||||||
|
private readonly Func<T> _getter;
|
||||||
|
private T _value = default!;
|
||||||
|
private bool _set;
|
||||||
|
|
||||||
|
public __Value(Func<T> getter)
|
||||||
|
{
|
||||||
|
_getter = getter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T Get() => _set ? _value : _getter();
|
||||||
|
|
||||||
|
public void Set(T value)
|
||||||
|
{
|
||||||
|
_value = value;
|
||||||
|
_set = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly global::Pulumi.Config __config = new global::Pulumi.Config("dokploy");
|
||||||
|
|
||||||
|
private static readonly __Value<string?> _apiKey = new __Value<string?>(() => __config.Get("apiKey") ?? Utilities.GetEnv("DOKPLOY_API_KEY"));
|
||||||
|
/// <summary>
|
||||||
|
/// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
public static string? ApiKey
|
||||||
|
{
|
||||||
|
get => _apiKey.Get();
|
||||||
|
set => _apiKey.Set(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly __Value<string?> _host = new __Value<string?>(() => __config.Get("host") ?? Utilities.GetEnv("DOKPLOY_HOST"));
|
||||||
|
/// <summary>
|
||||||
|
/// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
public static string? Host
|
||||||
|
{
|
||||||
|
get => _host.Get();
|
||||||
|
set => _host.Set(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly __Value<bool?> _insecureSkipVerify = new __Value<bool?>(() => __config.GetBoolean("insecureSkipVerify"));
|
||||||
|
/// <summary>
|
||||||
|
/// Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `False`.
|
||||||
|
/// </summary>
|
||||||
|
public static bool? InsecureSkipVerify
|
||||||
|
{
|
||||||
|
get => _insecureSkipVerify.Get();
|
||||||
|
set => _insecureSkipVerify.Set(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly __Value<int?> _timeoutSeconds = new __Value<int?>(() => __config.GetInt32("timeoutSeconds") ?? Utilities.GetEnvInt32("DOKPLOY_TIMEOUT_SECONDS"));
|
||||||
|
/// <summary>
|
||||||
|
/// Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
public static int? TimeoutSeconds
|
||||||
|
{
|
||||||
|
get => _timeoutSeconds.Get();
|
||||||
|
set => _timeoutSeconds.Set(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
1
sdk/dotnet/Config/README.md
generated
Normal file
1
sdk/dotnet/Config/README.md
generated
Normal file
@@ -0,0 +1 @@
|
|||||||
|
A Pulumi package for creating and managing Dokploy resources
|
||||||
286
sdk/dotnet/Destination.cs
generated
Normal file
286
sdk/dotnet/Destination.cs
generated
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/destination:Destination")]
|
||||||
|
public partial class Destination : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// S3 access key ID.
|
||||||
|
/// </summary>
|
||||||
|
[Output("accessKey")]
|
||||||
|
public Output<string> AccessKey { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Extra flags passed to the underlying `Rclone` invocation.
|
||||||
|
/// </summary>
|
||||||
|
[Output("additionalFlags")]
|
||||||
|
public Output<ImmutableArray<string>> AdditionalFlags { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bucket name.
|
||||||
|
/// </summary>
|
||||||
|
[Output("bucket")]
|
||||||
|
public Output<string> Bucket { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Timestamp of when the destination was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S3 endpoint URL.
|
||||||
|
/// </summary>
|
||||||
|
[Output("endpoint")]
|
||||||
|
public Output<string> Endpoint { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the destination.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
|
||||||
|
/// </summary>
|
||||||
|
[Output("providerName")]
|
||||||
|
public Output<string?> ProviderName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bucket region, for example `us-east-1`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("region")]
|
||||||
|
public Output<string> Region { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S3 secret access key.
|
||||||
|
/// </summary>
|
||||||
|
[Output("secretAccessKey")]
|
||||||
|
public Output<string> SecretAccessKey { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this destination is scoped to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Destination resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Destination(string name, DestinationArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/destination:Destination", name, args ?? new DestinationArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Destination(string name, Input<string> id, DestinationState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/destination:Destination", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"secretAccessKey",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Destination resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Destination Get(string name, Input<string> id, DestinationState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Destination(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class DestinationArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// S3 access key ID.
|
||||||
|
/// </summary>
|
||||||
|
[Input("accessKey", required: true)]
|
||||||
|
public Input<string> AccessKey { get; set; } = null!;
|
||||||
|
|
||||||
|
[Input("additionalFlags")]
|
||||||
|
private InputList<string>? _additionalFlags;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Extra flags passed to the underlying `Rclone` invocation.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> AdditionalFlags
|
||||||
|
{
|
||||||
|
get => _additionalFlags ?? (_additionalFlags = new InputList<string>());
|
||||||
|
set => _additionalFlags = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bucket name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bucket", required: true)]
|
||||||
|
public Input<string> Bucket { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S3 endpoint URL.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpoint", required: true)]
|
||||||
|
public Input<string> Endpoint { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the destination.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
|
||||||
|
/// </summary>
|
||||||
|
[Input("providerName")]
|
||||||
|
public Input<string>? ProviderName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bucket region, for example `us-east-1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("region", required: true)]
|
||||||
|
public Input<string> Region { get; set; } = null!;
|
||||||
|
|
||||||
|
[Input("secretAccessKey", required: true)]
|
||||||
|
private Input<string>? _secretAccessKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S3 secret access key.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? SecretAccessKey
|
||||||
|
{
|
||||||
|
get => _secretAccessKey;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this destination is scoped to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
public DestinationArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new DestinationArgs Empty => new DestinationArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class DestinationState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// S3 access key ID.
|
||||||
|
/// </summary>
|
||||||
|
[Input("accessKey")]
|
||||||
|
public Input<string>? AccessKey { get; set; }
|
||||||
|
|
||||||
|
[Input("additionalFlags")]
|
||||||
|
private InputList<string>? _additionalFlags;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Extra flags passed to the underlying `Rclone` invocation.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> AdditionalFlags
|
||||||
|
{
|
||||||
|
get => _additionalFlags ?? (_additionalFlags = new InputList<string>());
|
||||||
|
set => _additionalFlags = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bucket name.
|
||||||
|
/// </summary>
|
||||||
|
[Input("bucket")]
|
||||||
|
public Input<string>? Bucket { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Timestamp of when the destination was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S3 endpoint URL.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpoint")]
|
||||||
|
public Input<string>? Endpoint { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the destination.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
|
||||||
|
/// </summary>
|
||||||
|
[Input("providerName")]
|
||||||
|
public Input<string>? ProviderName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bucket region, for example `us-east-1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("region")]
|
||||||
|
public Input<string>? Region { get; set; }
|
||||||
|
|
||||||
|
[Input("secretAccessKey")]
|
||||||
|
private Input<string>? _secretAccessKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S3 secret access key.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? SecretAccessKey
|
||||||
|
{
|
||||||
|
get => _secretAccessKey;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this destination is scoped to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
public DestinationState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new DestinationState Empty => new DestinationState();
|
||||||
|
}
|
||||||
|
}
|
||||||
388
sdk/dotnet/Domain.cs
generated
Normal file
388
sdk/dotnet/Domain.cs
generated
Normal file
@@ -0,0 +1,388 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/domain:Domain")]
|
||||||
|
public partial class Domain : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationId")]
|
||||||
|
public Output<string?> ApplicationId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("certificateType")]
|
||||||
|
public Output<string> CertificateType { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Compose stack this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("composeId")]
|
||||||
|
public Output<string?> ComposeId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the domain was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("customCertResolver")]
|
||||||
|
public Output<string?> CustomCertResolver { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
/// </summary>
|
||||||
|
[Output("customEntrypoint")]
|
||||||
|
public Output<string?> CustomEntrypoint { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("domainType")]
|
||||||
|
public Output<string> DomainType { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Protect this domain with Dokploy's forward auth.
|
||||||
|
/// </summary>
|
||||||
|
[Output("forwardAuthEnabled")]
|
||||||
|
public Output<bool> ForwardAuthEnabled { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("host")]
|
||||||
|
public Output<string> Host { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
/// </summary>
|
||||||
|
[Output("https")]
|
||||||
|
public Output<bool> Https { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("internalPath")]
|
||||||
|
public Output<string> InternalPath { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Names of Traefik middlewares to apply.
|
||||||
|
/// </summary>
|
||||||
|
[Output("middlewares")]
|
||||||
|
public Output<ImmutableArray<string>> Middlewares { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path prefix this domain routes, defaults to `/`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("path")]
|
||||||
|
public Output<string> Path { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("port")]
|
||||||
|
public Output<int> Port { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Preview deployment this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("previewDeploymentId")]
|
||||||
|
public Output<string?> PreviewDeploymentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serviceName")]
|
||||||
|
public Output<string?> ServiceName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Strip `Path` from the request before forwarding it.
|
||||||
|
/// </summary>
|
||||||
|
[Output("stripPath")]
|
||||||
|
public Output<bool> StripPath { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Domain resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Domain(string name, DomainArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/domain:Domain", name, args ?? new DomainArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Domain(string name, Input<string> id, DomainState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/domain:Domain", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Domain resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Domain Get(string name, Input<string> id, DomainState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Domain(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class DomainArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId")]
|
||||||
|
public Input<string>? ApplicationId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("certificateType")]
|
||||||
|
public Input<string>? CertificateType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Compose stack this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composeId")]
|
||||||
|
public Input<string>? ComposeId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customCertResolver")]
|
||||||
|
public Input<string>? CustomCertResolver { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customEntrypoint")]
|
||||||
|
public Input<string>? CustomEntrypoint { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("domainType")]
|
||||||
|
public Input<string>? DomainType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Protect this domain with Dokploy's forward auth.
|
||||||
|
/// </summary>
|
||||||
|
[Input("forwardAuthEnabled")]
|
||||||
|
public Input<bool>? ForwardAuthEnabled { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("host", required: true)]
|
||||||
|
public Input<string> Host { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
/// </summary>
|
||||||
|
[Input("https")]
|
||||||
|
public Input<bool>? Https { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("internalPath")]
|
||||||
|
public Input<string>? InternalPath { get; set; }
|
||||||
|
|
||||||
|
[Input("middlewares")]
|
||||||
|
private InputList<string>? _middlewares;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Names of Traefik middlewares to apply.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Middlewares
|
||||||
|
{
|
||||||
|
get => _middlewares ?? (_middlewares = new InputList<string>());
|
||||||
|
set => _middlewares = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path prefix this domain routes, defaults to `/`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("path")]
|
||||||
|
public Input<string>? Path { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("port")]
|
||||||
|
public Input<int>? Port { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Preview deployment this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("previewDeploymentId")]
|
||||||
|
public Input<string>? PreviewDeploymentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serviceName")]
|
||||||
|
public Input<string>? ServiceName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Strip `Path` from the request before forwarding it.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stripPath")]
|
||||||
|
public Input<bool>? StripPath { get; set; }
|
||||||
|
|
||||||
|
public DomainArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new DomainArgs Empty => new DomainArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class DomainState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId")]
|
||||||
|
public Input<string>? ApplicationId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How TLS certificates are obtained. Use `Letsencrypt` for automatic certificates. Valid values: `Letsencrypt`, `None`, `Custom`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("certificateType")]
|
||||||
|
public Input<string>? CertificateType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Compose stack this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("composeId")]
|
||||||
|
public Input<string>? ComposeId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the domain was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Traefik certificate resolver name, when `CertificateType` is `Custom`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customCertResolver")]
|
||||||
|
public Input<string>? CustomCertResolver { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
/// </summary>
|
||||||
|
[Input("customEntrypoint")]
|
||||||
|
public Input<string>? CustomEntrypoint { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// What kind of target this domain points at. Valid values: `Compose`, `Application`, `Preview`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("domainType")]
|
||||||
|
public Input<string>? DomainType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Protect this domain with Dokploy's forward auth.
|
||||||
|
/// </summary>
|
||||||
|
[Input("forwardAuthEnabled")]
|
||||||
|
public Input<bool>? ForwardAuthEnabled { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("host")]
|
||||||
|
public Input<string>? Host { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
/// </summary>
|
||||||
|
[Input("https")]
|
||||||
|
public Input<bool>? Https { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("internalPath")]
|
||||||
|
public Input<string>? InternalPath { get; set; }
|
||||||
|
|
||||||
|
[Input("middlewares")]
|
||||||
|
private InputList<string>? _middlewares;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Names of Traefik middlewares to apply.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Middlewares
|
||||||
|
{
|
||||||
|
get => _middlewares ?? (_middlewares = new InputList<string>());
|
||||||
|
set => _middlewares = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path prefix this domain routes, defaults to `/`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("path")]
|
||||||
|
public Input<string>? Path { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("port")]
|
||||||
|
public Input<int>? Port { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Preview deployment this domain routes to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("previewDeploymentId")]
|
||||||
|
public Input<string>? PreviewDeploymentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the service inside a Compose stack that receives the traffic. Required when `ComposeId` is set.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serviceName")]
|
||||||
|
public Input<string>? ServiceName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Strip `Path` from the request before forwarding it.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stripPath")]
|
||||||
|
public Input<bool>? StripPath { get; set; }
|
||||||
|
|
||||||
|
public DomainState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new DomainState Empty => new DomainState();
|
||||||
|
}
|
||||||
|
}
|
||||||
172
sdk/dotnet/Environment.cs
generated
Normal file
172
sdk/dotnet/Environment.cs
generated
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/environment:Environment")]
|
||||||
|
public partial class Environment : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the environment was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether this is the project's default environment.
|
||||||
|
/// </summary>
|
||||||
|
[Output("isDefault")]
|
||||||
|
public Output<bool> IsDefault { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment name, for example `Staging`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Project this environment belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("projectId")]
|
||||||
|
public Output<string> ProjectId { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Environment resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Environment(string name, EnvironmentArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/environment:Environment", name, args ?? new EnvironmentArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Environment(string name, Input<string> id, EnvironmentState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/environment:Environment", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Environment resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Environment Get(string name, Input<string> id, EnvironmentState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Environment(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class EnvironmentArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment name, for example `Staging`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Project this environment belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("projectId", required: true)]
|
||||||
|
public Input<string> ProjectId { get; set; } = null!;
|
||||||
|
|
||||||
|
public EnvironmentArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new EnvironmentArgs Empty => new EnvironmentArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class EnvironmentState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the environment was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether this is the project's default environment.
|
||||||
|
/// </summary>
|
||||||
|
[Input("isDefault")]
|
||||||
|
public Input<bool>? IsDefault { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment name, for example `Staging`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Project this environment belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("projectId")]
|
||||||
|
public Input<string>? ProjectId { get; set; }
|
||||||
|
|
||||||
|
public EnvironmentState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new EnvironmentState Empty => new EnvironmentState();
|
||||||
|
}
|
||||||
|
}
|
||||||
93
sdk/dotnet/GetApplication.cs
generated
Normal file
93
sdk/dotnet/GetApplication.cs
generated
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
public static class GetApplication
|
||||||
|
{
|
||||||
|
public static Task<GetApplicationResult> InvokeAsync(GetApplicationArgs args, InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetApplicationResult>("dokploy:index/getApplication:getApplication", args ?? new GetApplicationArgs(), options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetApplicationResult> Invoke(GetApplicationInvokeArgs args, InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetApplicationResult>("dokploy:index/getApplication:getApplication", args ?? new GetApplicationInvokeArgs(), options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetApplicationResult> Invoke(GetApplicationInvokeArgs args, InvokeOutputOptions options)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetApplicationResult>("dokploy:index/getApplication:getApplication", args ?? new GetApplicationInvokeArgs(), options.WithDefaults());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public sealed class GetApplicationArgs : global::Pulumi.InvokeArgs
|
||||||
|
{
|
||||||
|
[Input("id", required: true)]
|
||||||
|
public string Id { get; set; } = null!;
|
||||||
|
|
||||||
|
public GetApplicationArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new GetApplicationArgs Empty => new GetApplicationArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class GetApplicationInvokeArgs : global::Pulumi.InvokeArgs
|
||||||
|
{
|
||||||
|
[Input("id", required: true)]
|
||||||
|
public Input<string> Id { get; set; } = null!;
|
||||||
|
|
||||||
|
public GetApplicationInvokeArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new GetApplicationInvokeArgs Empty => new GetApplicationInvokeArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetApplicationResult
|
||||||
|
{
|
||||||
|
public readonly string AppName;
|
||||||
|
public readonly string ApplicationStatus;
|
||||||
|
public readonly string BuildType;
|
||||||
|
public readonly string CreatedAt;
|
||||||
|
public readonly string Description;
|
||||||
|
public readonly string EnvironmentId;
|
||||||
|
public readonly string Id;
|
||||||
|
public readonly string Name;
|
||||||
|
public readonly string SourceType;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetApplicationResult(
|
||||||
|
string appName,
|
||||||
|
|
||||||
|
string applicationStatus,
|
||||||
|
|
||||||
|
string buildType,
|
||||||
|
|
||||||
|
string createdAt,
|
||||||
|
|
||||||
|
string description,
|
||||||
|
|
||||||
|
string environmentId,
|
||||||
|
|
||||||
|
string id,
|
||||||
|
|
||||||
|
string name,
|
||||||
|
|
||||||
|
string sourceType)
|
||||||
|
{
|
||||||
|
AppName = appName;
|
||||||
|
ApplicationStatus = applicationStatus;
|
||||||
|
BuildType = buildType;
|
||||||
|
CreatedAt = createdAt;
|
||||||
|
Description = description;
|
||||||
|
EnvironmentId = environmentId;
|
||||||
|
Id = id;
|
||||||
|
Name = name;
|
||||||
|
SourceType = sourceType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
85
sdk/dotnet/GetEnvironment.cs
generated
Normal file
85
sdk/dotnet/GetEnvironment.cs
generated
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
public static class GetEnvironment
|
||||||
|
{
|
||||||
|
public static Task<GetEnvironmentResult> InvokeAsync(GetEnvironmentArgs args, InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetEnvironmentResult>("dokploy:index/getEnvironment:getEnvironment", args ?? new GetEnvironmentArgs(), options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetEnvironmentResult> Invoke(GetEnvironmentInvokeArgs args, InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetEnvironmentResult>("dokploy:index/getEnvironment:getEnvironment", args ?? new GetEnvironmentInvokeArgs(), options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetEnvironmentResult> Invoke(GetEnvironmentInvokeArgs args, InvokeOutputOptions options)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetEnvironmentResult>("dokploy:index/getEnvironment:getEnvironment", args ?? new GetEnvironmentInvokeArgs(), options.WithDefaults());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public sealed class GetEnvironmentArgs : global::Pulumi.InvokeArgs
|
||||||
|
{
|
||||||
|
[Input("id", required: true)]
|
||||||
|
public string Id { get; set; } = null!;
|
||||||
|
|
||||||
|
public GetEnvironmentArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new GetEnvironmentArgs Empty => new GetEnvironmentArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class GetEnvironmentInvokeArgs : global::Pulumi.InvokeArgs
|
||||||
|
{
|
||||||
|
[Input("id", required: true)]
|
||||||
|
public Input<string> Id { get; set; } = null!;
|
||||||
|
|
||||||
|
public GetEnvironmentInvokeArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new GetEnvironmentInvokeArgs Empty => new GetEnvironmentInvokeArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetEnvironmentResult
|
||||||
|
{
|
||||||
|
public readonly string CreatedAt;
|
||||||
|
public readonly string Description;
|
||||||
|
public readonly string Env;
|
||||||
|
public readonly string Id;
|
||||||
|
public readonly bool IsDefault;
|
||||||
|
public readonly string Name;
|
||||||
|
public readonly string ProjectId;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetEnvironmentResult(
|
||||||
|
string createdAt,
|
||||||
|
|
||||||
|
string description,
|
||||||
|
|
||||||
|
string env,
|
||||||
|
|
||||||
|
string id,
|
||||||
|
|
||||||
|
bool isDefault,
|
||||||
|
|
||||||
|
string name,
|
||||||
|
|
||||||
|
string projectId)
|
||||||
|
{
|
||||||
|
CreatedAt = createdAt;
|
||||||
|
Description = description;
|
||||||
|
Env = env;
|
||||||
|
Id = id;
|
||||||
|
IsDefault = isDefault;
|
||||||
|
Name = name;
|
||||||
|
ProjectId = projectId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
89
sdk/dotnet/GetProject.cs
generated
Normal file
89
sdk/dotnet/GetProject.cs
generated
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
public static class GetProject
|
||||||
|
{
|
||||||
|
public static Task<GetProjectResult> InvokeAsync(GetProjectArgs args, InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetProjectResult>("dokploy:index/getProject:getProject", args ?? new GetProjectArgs(), options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetProjectResult> Invoke(GetProjectInvokeArgs args, InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectResult>("dokploy:index/getProject:getProject", args ?? new GetProjectInvokeArgs(), options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetProjectResult> Invoke(GetProjectInvokeArgs args, InvokeOutputOptions options)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectResult>("dokploy:index/getProject:getProject", args ?? new GetProjectInvokeArgs(), options.WithDefaults());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public sealed class GetProjectArgs : global::Pulumi.InvokeArgs
|
||||||
|
{
|
||||||
|
[Input("id", required: true)]
|
||||||
|
public string Id { get; set; } = null!;
|
||||||
|
|
||||||
|
public GetProjectArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new GetProjectArgs Empty => new GetProjectArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class GetProjectInvokeArgs : global::Pulumi.InvokeArgs
|
||||||
|
{
|
||||||
|
[Input("id", required: true)]
|
||||||
|
public Input<string> Id { get; set; } = null!;
|
||||||
|
|
||||||
|
public GetProjectInvokeArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new GetProjectInvokeArgs Empty => new GetProjectInvokeArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetProjectResult
|
||||||
|
{
|
||||||
|
public readonly string CreatedAt;
|
||||||
|
public readonly string DefaultEnvironmentId;
|
||||||
|
public readonly string Description;
|
||||||
|
public readonly string Env;
|
||||||
|
public readonly ImmutableArray<Outputs.GetProjectEnvironmentResult> Environments;
|
||||||
|
public readonly string Id;
|
||||||
|
public readonly string Name;
|
||||||
|
public readonly string OrganizationId;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetProjectResult(
|
||||||
|
string createdAt,
|
||||||
|
|
||||||
|
string defaultEnvironmentId,
|
||||||
|
|
||||||
|
string description,
|
||||||
|
|
||||||
|
string env,
|
||||||
|
|
||||||
|
ImmutableArray<Outputs.GetProjectEnvironmentResult> environments,
|
||||||
|
|
||||||
|
string id,
|
||||||
|
|
||||||
|
string name,
|
||||||
|
|
||||||
|
string organizationId)
|
||||||
|
{
|
||||||
|
CreatedAt = createdAt;
|
||||||
|
DefaultEnvironmentId = defaultEnvironmentId;
|
||||||
|
Description = description;
|
||||||
|
Env = env;
|
||||||
|
Environments = environments;
|
||||||
|
Id = id;
|
||||||
|
Name = name;
|
||||||
|
OrganizationId = organizationId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
37
sdk/dotnet/GetProjects.cs
generated
Normal file
37
sdk/dotnet/GetProjects.cs
generated
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
public static class GetProjects
|
||||||
|
{
|
||||||
|
public static Task<GetProjectsResult> InvokeAsync(InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetProjectsResult>("dokploy:index/getProjects:getProjects", InvokeArgs.Empty, options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetProjectsResult> Invoke(InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectsResult>("dokploy:index/getProjects:getProjects", InvokeArgs.Empty, options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetProjectsResult> Invoke(InvokeOutputOptions options)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetProjectsResult>("dokploy:index/getProjects:getProjects", InvokeArgs.Empty, options.WithDefaults());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetProjectsResult
|
||||||
|
{
|
||||||
|
public readonly ImmutableArray<Outputs.GetProjectsProjectResult> Projects;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetProjectsResult(ImmutableArray<Outputs.GetProjectsProjectResult> projects)
|
||||||
|
{
|
||||||
|
Projects = projects;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
37
sdk/dotnet/GetServers.cs
generated
Normal file
37
sdk/dotnet/GetServers.cs
generated
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
public static class GetServers
|
||||||
|
{
|
||||||
|
public static Task<GetServersResult> InvokeAsync(InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.InvokeAsync<GetServersResult>("dokploy:index/getServers:getServers", InvokeArgs.Empty, options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetServersResult> Invoke(InvokeOptions? options = null)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetServersResult>("dokploy:index/getServers:getServers", InvokeArgs.Empty, options.WithDefaults());
|
||||||
|
|
||||||
|
public static Output<GetServersResult> Invoke(InvokeOutputOptions options)
|
||||||
|
=> global::Pulumi.Deployment.Instance.Invoke<GetServersResult>("dokploy:index/getServers:getServers", InvokeArgs.Empty, options.WithDefaults());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetServersResult
|
||||||
|
{
|
||||||
|
public readonly ImmutableArray<Outputs.GetServersServerResult> Servers;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetServersResult(ImmutableArray<Outputs.GetServersServerResult> servers)
|
||||||
|
{
|
||||||
|
Servers = servers;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
356
sdk/dotnet/LICENSE
generated
Normal file
356
sdk/dotnet/LICENSE
generated
Normal file
@@ -0,0 +1,356 @@
|
|||||||
|
Copyright (c) 2026 Max Vojtkov
|
||||||
|
|
||||||
|
Mozilla Public License, version 2.0
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
|
||||||
|
1.1. “Contributor”
|
||||||
|
|
||||||
|
means each individual or legal entity that creates, contributes to the
|
||||||
|
creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. “Contributor Version”
|
||||||
|
|
||||||
|
means the combination of the Contributions of others (if any) used by a
|
||||||
|
Contributor and that particular Contributor’s Contribution.
|
||||||
|
|
||||||
|
1.3. “Contribution”
|
||||||
|
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. “Covered Software”
|
||||||
|
|
||||||
|
means Source Code Form to which the initial Contributor has attached the
|
||||||
|
notice in Exhibit A, the Executable Form of such Source Code Form, and
|
||||||
|
Modifications of such Source Code Form, in each case including portions
|
||||||
|
thereof.
|
||||||
|
|
||||||
|
1.5. “Incompatible With Secondary Licenses”
|
||||||
|
means
|
||||||
|
|
||||||
|
a. that the initial Contributor has attached the notice described in
|
||||||
|
Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
b. that the Covered Software was made available under the terms of version
|
||||||
|
1.1 or earlier of the License, but not also under the terms of a
|
||||||
|
Secondary License.
|
||||||
|
|
||||||
|
1.6. “Executable Form”
|
||||||
|
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. “Larger Work”
|
||||||
|
|
||||||
|
means a work that combines Covered Software with other material, in a separate
|
||||||
|
file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. “License”
|
||||||
|
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. “Licensable”
|
||||||
|
|
||||||
|
means having the right to grant, to the maximum extent possible, whether at the
|
||||||
|
time of the initial grant or subsequently, any and all of the rights conveyed by
|
||||||
|
this License.
|
||||||
|
|
||||||
|
1.10. “Modifications”
|
||||||
|
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
a. any file in Source Code Form that results from an addition to, deletion
|
||||||
|
from, or modification of the contents of Covered Software; or
|
||||||
|
|
||||||
|
b. any new file in Source Code Form that contains any Covered Software.
|
||||||
|
|
||||||
|
1.11. “Patent Claims” of a Contributor
|
||||||
|
|
||||||
|
means any patent claim(s), including without limitation, method, process,
|
||||||
|
and apparatus claims, in any patent Licensable by such Contributor that
|
||||||
|
would be infringed, but for the grant of the License, by the making,
|
||||||
|
using, selling, offering for sale, having made, import, or transfer of
|
||||||
|
either its Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
1.12. “Secondary License”
|
||||||
|
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU Lesser
|
||||||
|
General Public License, Version 2.1, the GNU Affero General Public
|
||||||
|
License, Version 3.0, or any later versions of those licenses.
|
||||||
|
|
||||||
|
1.13. “Source Code Form”
|
||||||
|
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. “You” (or “Your”)
|
||||||
|
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, “You” includes any entity that controls, is
|
||||||
|
controlled by, or is under common control with You. For purposes of this
|
||||||
|
definition, “control” means (a) the power, direct or indirect, to cause
|
||||||
|
the direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (b) ownership of more than fifty percent (50%) of the
|
||||||
|
outstanding shares or beneficial ownership of such entity.
|
||||||
|
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
a. under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or as
|
||||||
|
part of a Larger Work; and
|
||||||
|
|
||||||
|
b. under Patent Claims of such Contributor to make, use, sell, offer for
|
||||||
|
sale, have made, import, and otherwise transfer either its Contributions
|
||||||
|
or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution become
|
||||||
|
effective for each Contribution on the date the Contributor first distributes
|
||||||
|
such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under this
|
||||||
|
License. No additional rights or licenses will be implied from the distribution
|
||||||
|
or licensing of Covered Software under this License. Notwithstanding Section
|
||||||
|
2.1(b) above, no patent license is granted by a Contributor:
|
||||||
|
|
||||||
|
a. for any code that a Contributor has removed from Covered Software; or
|
||||||
|
|
||||||
|
b. for infringements caused by: (i) Your and any other third party’s
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
c. under Patent Claims infringed by Covered Software in the absence of its
|
||||||
|
Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks, or
|
||||||
|
logos of any Contributor (except as may be necessary to comply with the
|
||||||
|
notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this License
|
||||||
|
(see Section 10.2) or under the terms of a Secondary License (if permitted
|
||||||
|
under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its Contributions
|
||||||
|
are its original creation(s) or it has sufficient rights to grant the
|
||||||
|
rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under applicable
|
||||||
|
copyright doctrines of fair use, fair dealing, or other equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
|
||||||
|
Section 2.1.
|
||||||
|
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under the
|
||||||
|
terms of this License. You must inform recipients that the Source Code Form
|
||||||
|
of the Covered Software is governed by the terms of this License, and how
|
||||||
|
they can obtain a copy of this License. You may not attempt to alter or
|
||||||
|
restrict the recipients’ rights in the Source Code Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
a. such Covered Software must also be made available in Source Code Form,
|
||||||
|
as described in Section 3.1, and You must inform recipients of the
|
||||||
|
Executable Form how they can obtain a copy of such Source Code Form by
|
||||||
|
reasonable means in a timely manner, at a charge no more than the cost
|
||||||
|
of distribution to the recipient; and
|
||||||
|
|
||||||
|
b. You may distribute such Executable Form under the terms of this License,
|
||||||
|
or sublicense it under different terms, provided that the license for
|
||||||
|
the Executable Form does not attempt to limit or alter the recipients’
|
||||||
|
rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for the
|
||||||
|
Covered Software. If the Larger Work is a combination of Covered Software
|
||||||
|
with a work governed by one or more Secondary Licenses, and the Covered
|
||||||
|
Software is not Incompatible With Secondary Licenses, this License permits
|
||||||
|
You to additionally distribute such Covered Software under the terms of
|
||||||
|
such Secondary License(s), so that the recipient of the Larger Work may, at
|
||||||
|
their option, further distribute the Covered Software under the terms of
|
||||||
|
either this License or such Secondary License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices (including
|
||||||
|
copyright notices, patent notices, disclaimers of warranty, or limitations
|
||||||
|
of liability) contained within the Source Code Form of the Covered
|
||||||
|
Software, except that You may alter any license notices to the extent
|
||||||
|
required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on behalf
|
||||||
|
of any Contributor. You must make it absolutely clear that any such
|
||||||
|
warranty, support, indemnity, or liability obligation is offered by You
|
||||||
|
alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this License
|
||||||
|
with respect to some or all of the Covered Software due to statute, judicial
|
||||||
|
order, or regulation then You must: (a) comply with the terms of this License
|
||||||
|
to the maximum extent possible; and (b) describe the limitations and the code
|
||||||
|
they affect. Such description must be placed in a text file included with all
|
||||||
|
distributions of the Covered Software under this License. Except to the
|
||||||
|
extent prohibited by statute or regulation, such description must be
|
||||||
|
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||||
|
understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically if You
|
||||||
|
fail to comply with any of its terms. However, if You become compliant,
|
||||||
|
then the rights granted under this License from a particular Contributor
|
||||||
|
are reinstated (a) provisionally, unless and until such Contributor
|
||||||
|
explicitly and finally terminates Your grants, and (b) on an ongoing basis,
|
||||||
|
if such Contributor fails to notify You of the non-compliance by some
|
||||||
|
reasonable means prior to 60 days after You have come back into compliance.
|
||||||
|
Moreover, Your grants from a particular Contributor are reinstated on an
|
||||||
|
ongoing basis if such Contributor notifies You of the non-compliance by
|
||||||
|
some reasonable means, this is the first time You have received notice of
|
||||||
|
non-compliance with this License from such Contributor, and You become
|
||||||
|
compliant prior to 30 days after Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions, counter-claims,
|
||||||
|
and cross-claims) alleging that a Contributor Version directly or
|
||||||
|
indirectly infringes any patent, then the rights granted to You by any and
|
||||||
|
all Contributors for the Covered Software under Section 2.1 of this License
|
||||||
|
shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
|
||||||
|
license agreements (excluding distributors and resellers) which have been
|
||||||
|
validly granted by You or Your distributors under this License prior to
|
||||||
|
termination shall survive termination.
|
||||||
|
|
||||||
|
6. Disclaimer of Warranty
|
||||||
|
|
||||||
|
Covered Software is provided under this License on an “as is” basis, without
|
||||||
|
warranty of any kind, either expressed, implied, or statutory, including,
|
||||||
|
without limitation, warranties that the Covered Software is free of defects,
|
||||||
|
merchantable, fit for a particular purpose or non-infringing. The entire
|
||||||
|
risk as to the quality and performance of the Covered Software is with You.
|
||||||
|
Should any Covered Software prove defective in any respect, You (not any
|
||||||
|
Contributor) assume the cost of any necessary servicing, repair, or
|
||||||
|
correction. This disclaimer of warranty constitutes an essential part of this
|
||||||
|
License. No use of any Covered Software is authorized under this License
|
||||||
|
except under this disclaimer.
|
||||||
|
|
||||||
|
7. Limitation of Liability
|
||||||
|
|
||||||
|
Under no circumstances and under no legal theory, whether tort (including
|
||||||
|
negligence), contract, or otherwise, shall any Contributor, or anyone who
|
||||||
|
distributes Covered Software as permitted above, be liable to You for any
|
||||||
|
direct, indirect, special, incidental, or consequential damages of any
|
||||||
|
character including, without limitation, damages for lost profits, loss of
|
||||||
|
goodwill, work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses, even if such party shall have been
|
||||||
|
informed of the possibility of such damages. This limitation of liability
|
||||||
|
shall not apply to liability for death or personal injury resulting from such
|
||||||
|
party’s negligence to the extent applicable law prohibits such limitation.
|
||||||
|
Some jurisdictions do not allow the exclusion or limitation of incidental or
|
||||||
|
consequential damages, so this exclusion and limitation may not apply to You.
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the courts of
|
||||||
|
a jurisdiction where the defendant maintains its principal place of business
|
||||||
|
and such litigation shall be governed by laws of that jurisdiction, without
|
||||||
|
reference to its conflict-of-law provisions. Nothing in this Section shall
|
||||||
|
prevent a party’s ability to bring cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject matter
|
||||||
|
hereof. If any provision of this License is held to be unenforceable, such
|
||||||
|
provision shall be reformed only to the extent necessary to make it
|
||||||
|
enforceable. Any law or regulation which provides that the language of a
|
||||||
|
contract shall be construed against the drafter shall not be used to construe
|
||||||
|
this License against a Contributor.
|
||||||
|
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version of
|
||||||
|
the License under which You originally received the Covered Software, or
|
||||||
|
under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a modified
|
||||||
|
version of this License if you rename the license and remove any
|
||||||
|
references to the name of the license steward (except to note that such
|
||||||
|
modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
|
||||||
|
This Source Code Form is subject to the
|
||||||
|
terms of the Mozilla Public License, v.
|
||||||
|
2.0. If a copy of the MPL was not
|
||||||
|
distributed with this file, You can
|
||||||
|
obtain one at
|
||||||
|
http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular file, then
|
||||||
|
You may include the notice in a location (such as a LICENSE file in a relevant
|
||||||
|
directory) where a recipient would be likely to look for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - “Incompatible With Secondary Licenses” Notice
|
||||||
|
|
||||||
|
This Source Code Form is “Incompatible
|
||||||
|
With Secondary Licenses”, as defined by
|
||||||
|
the Mozilla Public License, v. 2.0.
|
||||||
|
|
||||||
745
sdk/dotnet/MariaDb.cs
generated
Normal file
745
sdk/dotnet/MariaDb.cs
generated
Normal file
@@ -0,0 +1,745 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/mariaDb:MariaDb")]
|
||||||
|
public partial class MariaDb : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("appName")]
|
||||||
|
public Output<string> AppName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationStatus")]
|
||||||
|
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("args")]
|
||||||
|
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("command")]
|
||||||
|
public Output<string?> Command { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuLimit")]
|
||||||
|
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuReservation")]
|
||||||
|
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseName")]
|
||||||
|
public Output<string> DatabaseName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databasePassword")]
|
||||||
|
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the MariaDB `Root` user.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseRootPassword")]
|
||||||
|
public Output<string> DatabaseRootPassword { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseUser")]
|
||||||
|
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("detachDokployNetwork")]
|
||||||
|
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("dockerImage")]
|
||||||
|
public Output<string> DockerImage { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("endpointSpecSwarm")]
|
||||||
|
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string?> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("environmentId")]
|
||||||
|
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Output("externalPort")]
|
||||||
|
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("healthCheckSwarm")]
|
||||||
|
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("labelsSwarm")]
|
||||||
|
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryLimit")]
|
||||||
|
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryReservation")]
|
||||||
|
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("modeSwarm")]
|
||||||
|
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkIds")]
|
||||||
|
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkSwarm")]
|
||||||
|
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("placementSwarm")]
|
||||||
|
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Output("replicas")]
|
||||||
|
public Output<int> Replicas { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("restartPolicySwarm")]
|
||||||
|
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("rollbackConfigSwarm")]
|
||||||
|
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Output("stopGracePeriodSwarm")]
|
||||||
|
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("ulimitsSwarm")]
|
||||||
|
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("updateConfigSwarm")]
|
||||||
|
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a MariaDb resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public MariaDb(string name, MariaDbArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mariaDb:MariaDb", name, args ?? new MariaDbArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private MariaDb(string name, Input<string> id, MariaDbState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mariaDb:MariaDb", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"databasePassword",
|
||||||
|
"databaseRootPassword",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing MariaDb resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static MariaDb Get(string name, Input<string> id, MariaDbState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new MariaDb(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MariaDbArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseName", required: true)]
|
||||||
|
public Input<string> DatabaseName { get; set; } = null!;
|
||||||
|
|
||||||
|
[Input("databasePassword", required: true)]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Input("databaseRootPassword", required: true)]
|
||||||
|
private Input<string>? _databaseRootPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the MariaDB `Root` user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabaseRootPassword
|
||||||
|
{
|
||||||
|
get => _databaseRootPassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser", required: true)]
|
||||||
|
public Input<string> DatabaseUser { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage", required: true)]
|
||||||
|
public Input<string> DockerImage { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId", required: true)]
|
||||||
|
public Input<string> EnvironmentId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public MariaDbArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MariaDbArgs Empty => new MariaDbArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MariaDbState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationStatus")]
|
||||||
|
public Input<string>? ApplicationStatus { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseName")]
|
||||||
|
public Input<string>? DatabaseName { get; set; }
|
||||||
|
|
||||||
|
[Input("databasePassword")]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Input("databaseRootPassword")]
|
||||||
|
private Input<string>? _databaseRootPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the MariaDB `Root` user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabaseRootPassword
|
||||||
|
{
|
||||||
|
get => _databaseRootPassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser")]
|
||||||
|
public Input<string>? DatabaseUser { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage")]
|
||||||
|
public Input<string>? DockerImage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId")]
|
||||||
|
public Input<string>? EnvironmentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public MariaDbState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MariaDbState Empty => new MariaDbState();
|
||||||
|
}
|
||||||
|
}
|
||||||
61
sdk/dotnet/Maxvojtkov.Dokploy.csproj
generated
Normal file
61
sdk/dotnet/Maxvojtkov.Dokploy.csproj
generated
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
|
<Authors>maxvojtkov</Authors>
|
||||||
|
<Company>maxvojtkov</Company>
|
||||||
|
<Description>A Pulumi package for creating and managing Dokploy resources</Description>
|
||||||
|
<PackageLicenseExpression>MPL-2.0</PackageLicenseExpression>
|
||||||
|
<PackageProjectUrl>https://github.com/maxvojtkov/pulumi-dokploy</PackageProjectUrl>
|
||||||
|
<RepositoryUrl>https://github.com/maxvojtkov/pulumi-dokploy</RepositoryUrl>
|
||||||
|
<PackageIcon>logo.png</PackageIcon>
|
||||||
|
<Version>0.1.0</Version>
|
||||||
|
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
<NoWarn>1701;1702;1591</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||||
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||||
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
|
||||||
|
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="version.txt" />
|
||||||
|
<None Include="version.txt" Pack="True" PackagePath="content" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="pulumi-plugin.json" />
|
||||||
|
<None Include="pulumi-plugin.json" Pack="True" PackagePath="content" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Pulumi" Version="3.*" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="logo.png">
|
||||||
|
<Pack>True</Pack>
|
||||||
|
<PackagePath></PackagePath>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
706
sdk/dotnet/Mongo.cs
generated
Normal file
706
sdk/dotnet/Mongo.cs
generated
Normal file
@@ -0,0 +1,706 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/mongo:Mongo")]
|
||||||
|
public partial class Mongo : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("appName")]
|
||||||
|
public Output<string> AppName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationStatus")]
|
||||||
|
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("args")]
|
||||||
|
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("command")]
|
||||||
|
public Output<string?> Command { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuLimit")]
|
||||||
|
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuReservation")]
|
||||||
|
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the root user.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databasePassword")]
|
||||||
|
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Root username to create.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseUser")]
|
||||||
|
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("detachDokployNetwork")]
|
||||||
|
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("dockerImage")]
|
||||||
|
public Output<string> DockerImage { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("endpointSpecSwarm")]
|
||||||
|
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string?> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("environmentId")]
|
||||||
|
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Output("externalPort")]
|
||||||
|
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("healthCheckSwarm")]
|
||||||
|
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("labelsSwarm")]
|
||||||
|
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryLimit")]
|
||||||
|
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryReservation")]
|
||||||
|
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("modeSwarm")]
|
||||||
|
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkIds")]
|
||||||
|
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkSwarm")]
|
||||||
|
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("placementSwarm")]
|
||||||
|
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start the instance as a single-node replica set.
|
||||||
|
/// </summary>
|
||||||
|
[Output("replicaSets")]
|
||||||
|
public Output<bool> ReplicaSets { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Output("replicas")]
|
||||||
|
public Output<int> Replicas { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("restartPolicySwarm")]
|
||||||
|
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("rollbackConfigSwarm")]
|
||||||
|
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Output("stopGracePeriodSwarm")]
|
||||||
|
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("ulimitsSwarm")]
|
||||||
|
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("updateConfigSwarm")]
|
||||||
|
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Mongo resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Mongo(string name, MongoArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mongo:Mongo", name, args ?? new MongoArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Mongo(string name, Input<string> id, MongoState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mongo:Mongo", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"databasePassword",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Mongo resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Mongo Get(string name, Input<string> id, MongoState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Mongo(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MongoArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
[Input("databasePassword", required: true)]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the root user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Root username to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser", required: true)]
|
||||||
|
public Input<string> DatabaseUser { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage")]
|
||||||
|
public Input<string>? DockerImage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId", required: true)]
|
||||||
|
public Input<string> EnvironmentId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start the instance as a single-node replica set.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicaSets")]
|
||||||
|
public Input<bool>? ReplicaSets { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public MongoArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MongoArgs Empty => new MongoArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MongoState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationStatus")]
|
||||||
|
public Input<string>? ApplicationStatus { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
[Input("databasePassword")]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the root user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Root username to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser")]
|
||||||
|
public Input<string>? DatabaseUser { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage")]
|
||||||
|
public Input<string>? DockerImage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId")]
|
||||||
|
public Input<string>? EnvironmentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start the instance as a single-node replica set.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicaSets")]
|
||||||
|
public Input<bool>? ReplicaSets { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public MongoState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MongoState Empty => new MongoState();
|
||||||
|
}
|
||||||
|
}
|
||||||
220
sdk/dotnet/Mount.cs
generated
Normal file
220
sdk/dotnet/Mount.cs
generated
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/mount:Mount")]
|
||||||
|
public partial class Mount : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Contents of the generated file, when `Type` is `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("content")]
|
||||||
|
public Output<string?> Content { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path of the generated file, when `Type` is `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("filePath")]
|
||||||
|
public Output<string?> FilePath { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path on the host, when `Type` is `Bind`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("hostPath")]
|
||||||
|
public Output<string?> HostPath { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path inside the container where the mount appears.
|
||||||
|
/// </summary>
|
||||||
|
[Output("mountPath")]
|
||||||
|
public Output<string> MountPath { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the service this mount attaches to. Must match `ServiceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serviceId")]
|
||||||
|
public Output<string> ServiceId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The kind of service this mount attaches to. Valid values: `Application`, `Postgres`, `Mysql`, `Mariadb`, `Mongo`, `Redis`, `Compose`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serviceType")]
|
||||||
|
public Output<string> ServiceType { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The kind of mount to create. Valid values: `Bind`, `Volume`, `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("type")]
|
||||||
|
public Output<string> Type { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the Docker volume, when `Type` is `Volume`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("volumeName")]
|
||||||
|
public Output<string?> VolumeName { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Mount resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Mount(string name, MountArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mount:Mount", name, args ?? new MountArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Mount(string name, Input<string> id, MountState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mount:Mount", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Mount resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Mount Get(string name, Input<string> id, MountState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Mount(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MountArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Contents of the generated file, when `Type` is `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("content")]
|
||||||
|
public Input<string>? Content { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path of the generated file, when `Type` is `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("filePath")]
|
||||||
|
public Input<string>? FilePath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path on the host, when `Type` is `Bind`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("hostPath")]
|
||||||
|
public Input<string>? HostPath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path inside the container where the mount appears.
|
||||||
|
/// </summary>
|
||||||
|
[Input("mountPath", required: true)]
|
||||||
|
public Input<string> MountPath { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the service this mount attaches to. Must match `ServiceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serviceId", required: true)]
|
||||||
|
public Input<string> ServiceId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The kind of service this mount attaches to. Valid values: `Application`, `Postgres`, `Mysql`, `Mariadb`, `Mongo`, `Redis`, `Compose`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serviceType", required: true)]
|
||||||
|
public Input<string> ServiceType { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The kind of mount to create. Valid values: `Bind`, `Volume`, `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("type", required: true)]
|
||||||
|
public Input<string> Type { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the Docker volume, when `Type` is `Volume`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("volumeName")]
|
||||||
|
public Input<string>? VolumeName { get; set; }
|
||||||
|
|
||||||
|
public MountArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MountArgs Empty => new MountArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MountState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Contents of the generated file, when `Type` is `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("content")]
|
||||||
|
public Input<string>? Content { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path of the generated file, when `Type` is `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("filePath")]
|
||||||
|
public Input<string>? FilePath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path on the host, when `Type` is `Bind`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("hostPath")]
|
||||||
|
public Input<string>? HostPath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Path inside the container where the mount appears.
|
||||||
|
/// </summary>
|
||||||
|
[Input("mountPath")]
|
||||||
|
public Input<string>? MountPath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the service this mount attaches to. Must match `ServiceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serviceId")]
|
||||||
|
public Input<string>? ServiceId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The kind of service this mount attaches to. Valid values: `Application`, `Postgres`, `Mysql`, `Mariadb`, `Mongo`, `Redis`, `Compose`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serviceType")]
|
||||||
|
public Input<string>? ServiceType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The kind of mount to create. Valid values: `Bind`, `Volume`, `File`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("type")]
|
||||||
|
public Input<string>? Type { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the Docker volume, when `Type` is `Volume`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("volumeName")]
|
||||||
|
public Input<string>? VolumeName { get; set; }
|
||||||
|
|
||||||
|
public MountState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MountState Empty => new MountState();
|
||||||
|
}
|
||||||
|
}
|
||||||
745
sdk/dotnet/MySql.cs
generated
Normal file
745
sdk/dotnet/MySql.cs
generated
Normal file
@@ -0,0 +1,745 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/mySql:MySql")]
|
||||||
|
public partial class MySql : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("appName")]
|
||||||
|
public Output<string> AppName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationStatus")]
|
||||||
|
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("args")]
|
||||||
|
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("command")]
|
||||||
|
public Output<string?> Command { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuLimit")]
|
||||||
|
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuReservation")]
|
||||||
|
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseName")]
|
||||||
|
public Output<string> DatabaseName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databasePassword")]
|
||||||
|
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the MySQL `Root` user.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseRootPassword")]
|
||||||
|
public Output<string> DatabaseRootPassword { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseUser")]
|
||||||
|
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("detachDokployNetwork")]
|
||||||
|
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MySQL image to run, for example `mysql:8`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("dockerImage")]
|
||||||
|
public Output<string> DockerImage { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("endpointSpecSwarm")]
|
||||||
|
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string?> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("environmentId")]
|
||||||
|
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Output("externalPort")]
|
||||||
|
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("healthCheckSwarm")]
|
||||||
|
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("labelsSwarm")]
|
||||||
|
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryLimit")]
|
||||||
|
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryReservation")]
|
||||||
|
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("modeSwarm")]
|
||||||
|
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkIds")]
|
||||||
|
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkSwarm")]
|
||||||
|
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("placementSwarm")]
|
||||||
|
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Output("replicas")]
|
||||||
|
public Output<int> Replicas { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("restartPolicySwarm")]
|
||||||
|
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("rollbackConfigSwarm")]
|
||||||
|
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Output("stopGracePeriodSwarm")]
|
||||||
|
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("ulimitsSwarm")]
|
||||||
|
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("updateConfigSwarm")]
|
||||||
|
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a MySql resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public MySql(string name, MySqlArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mySql:MySql", name, args ?? new MySqlArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private MySql(string name, Input<string> id, MySqlState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/mySql:MySql", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"databasePassword",
|
||||||
|
"databaseRootPassword",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing MySql resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static MySql Get(string name, Input<string> id, MySqlState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new MySql(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MySqlArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseName", required: true)]
|
||||||
|
public Input<string> DatabaseName { get; set; } = null!;
|
||||||
|
|
||||||
|
[Input("databasePassword", required: true)]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Input("databaseRootPassword", required: true)]
|
||||||
|
private Input<string>? _databaseRootPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the MySQL `Root` user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabaseRootPassword
|
||||||
|
{
|
||||||
|
get => _databaseRootPassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser", required: true)]
|
||||||
|
public Input<string> DatabaseUser { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MySQL image to run, for example `mysql:8`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage", required: true)]
|
||||||
|
public Input<string> DockerImage { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId", required: true)]
|
||||||
|
public Input<string> EnvironmentId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public MySqlArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MySqlArgs Empty => new MySqlArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class MySqlState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationStatus")]
|
||||||
|
public Input<string>? ApplicationStatus { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseName")]
|
||||||
|
public Input<string>? DatabaseName { get; set; }
|
||||||
|
|
||||||
|
[Input("databasePassword")]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Input("databaseRootPassword")]
|
||||||
|
private Input<string>? _databaseRootPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the MySQL `Root` user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabaseRootPassword
|
||||||
|
{
|
||||||
|
get => _databaseRootPassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databaseRootPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser")]
|
||||||
|
public Input<string>? DatabaseUser { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MySQL image to run, for example `mysql:8`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage")]
|
||||||
|
public Input<string>? DockerImage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId")]
|
||||||
|
public Input<string>? EnvironmentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public MySqlState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new MySqlState Empty => new MySqlState();
|
||||||
|
}
|
||||||
|
}
|
||||||
34
sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs
generated
Normal file
34
sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs
generated
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy.Outputs
|
||||||
|
{
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetProjectEnvironmentResult
|
||||||
|
{
|
||||||
|
public readonly string Id;
|
||||||
|
public readonly bool IsDefault;
|
||||||
|
public readonly string Name;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetProjectEnvironmentResult(
|
||||||
|
string id,
|
||||||
|
|
||||||
|
bool isDefault,
|
||||||
|
|
||||||
|
string name)
|
||||||
|
{
|
||||||
|
Id = id;
|
||||||
|
IsDefault = isDefault;
|
||||||
|
Name = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
38
sdk/dotnet/Outputs/GetProjectsProjectResult.cs
generated
Normal file
38
sdk/dotnet/Outputs/GetProjectsProjectResult.cs
generated
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy.Outputs
|
||||||
|
{
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetProjectsProjectResult
|
||||||
|
{
|
||||||
|
public readonly string DefaultEnvironmentId;
|
||||||
|
public readonly string Description;
|
||||||
|
public readonly string Id;
|
||||||
|
public readonly string Name;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetProjectsProjectResult(
|
||||||
|
string defaultEnvironmentId,
|
||||||
|
|
||||||
|
string description,
|
||||||
|
|
||||||
|
string id,
|
||||||
|
|
||||||
|
string name)
|
||||||
|
{
|
||||||
|
DefaultEnvironmentId = defaultEnvironmentId;
|
||||||
|
Description = description;
|
||||||
|
Id = id;
|
||||||
|
Name = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
38
sdk/dotnet/Outputs/GetServersServerResult.cs
generated
Normal file
38
sdk/dotnet/Outputs/GetServersServerResult.cs
generated
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy.Outputs
|
||||||
|
{
|
||||||
|
|
||||||
|
[OutputType]
|
||||||
|
public sealed class GetServersServerResult
|
||||||
|
{
|
||||||
|
public readonly string Id;
|
||||||
|
public readonly string IpAddress;
|
||||||
|
public readonly string Name;
|
||||||
|
public readonly string ServerStatus;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private GetServersServerResult(
|
||||||
|
string id,
|
||||||
|
|
||||||
|
string ipAddress,
|
||||||
|
|
||||||
|
string name,
|
||||||
|
|
||||||
|
string serverStatus)
|
||||||
|
{
|
||||||
|
Id = id;
|
||||||
|
IpAddress = ipAddress;
|
||||||
|
Name = name;
|
||||||
|
ServerStatus = serverStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
166
sdk/dotnet/Port.cs
generated
Normal file
166
sdk/dotnet/Port.cs
generated
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/port:Port")]
|
||||||
|
public partial class Port : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this port belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationId")]
|
||||||
|
public Output<string> ApplicationId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Transport protocol. Valid values: `Tcp`, `Udp`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("protocol")]
|
||||||
|
public Output<string> Protocol { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm publish mode. `Host` binds directly to the node; `Ingress` uses the swarm routing mesh. Valid values: `Ingress`, `Host`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("publishMode")]
|
||||||
|
public Output<string> PublishMode { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Port exposed on the host.
|
||||||
|
/// </summary>
|
||||||
|
[Output("publishedPort")]
|
||||||
|
public Output<int> PublishedPort { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Port the container listens on.
|
||||||
|
/// </summary>
|
||||||
|
[Output("targetPort")]
|
||||||
|
public Output<int> TargetPort { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Port resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Port(string name, PortArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/port:Port", name, args ?? new PortArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Port(string name, Input<string> id, PortState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/port:Port", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Port resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Port Get(string name, Input<string> id, PortState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Port(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class PortArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this port belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId", required: true)]
|
||||||
|
public Input<string> ApplicationId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Transport protocol. Valid values: `Tcp`, `Udp`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("protocol", required: true)]
|
||||||
|
public Input<string> Protocol { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm publish mode. `Host` binds directly to the node; `Ingress` uses the swarm routing mesh. Valid values: `Ingress`, `Host`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("publishMode")]
|
||||||
|
public Input<string>? PublishMode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Port exposed on the host.
|
||||||
|
/// </summary>
|
||||||
|
[Input("publishedPort", required: true)]
|
||||||
|
public Input<int> PublishedPort { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Port the container listens on.
|
||||||
|
/// </summary>
|
||||||
|
[Input("targetPort", required: true)]
|
||||||
|
public Input<int> TargetPort { get; set; } = null!;
|
||||||
|
|
||||||
|
public PortArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new PortArgs Empty => new PortArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class PortState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this port belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId")]
|
||||||
|
public Input<string>? ApplicationId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Transport protocol. Valid values: `Tcp`, `Udp`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("protocol")]
|
||||||
|
public Input<string>? Protocol { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm publish mode. `Host` binds directly to the node; `Ingress` uses the swarm routing mesh. Valid values: `Ingress`, `Host`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("publishMode")]
|
||||||
|
public Input<string>? PublishMode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Port exposed on the host.
|
||||||
|
/// </summary>
|
||||||
|
[Input("publishedPort")]
|
||||||
|
public Input<int>? PublishedPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Port the container listens on.
|
||||||
|
/// </summary>
|
||||||
|
[Input("targetPort")]
|
||||||
|
public Input<int>? TargetPort { get; set; }
|
||||||
|
|
||||||
|
public PortState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new PortState Empty => new PortState();
|
||||||
|
}
|
||||||
|
}
|
||||||
706
sdk/dotnet/Postgres.cs
generated
Normal file
706
sdk/dotnet/Postgres.cs
generated
Normal file
@@ -0,0 +1,706 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/postgres:Postgres")]
|
||||||
|
public partial class Postgres : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("appName")]
|
||||||
|
public Output<string> AppName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationStatus")]
|
||||||
|
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("args")]
|
||||||
|
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("command")]
|
||||||
|
public Output<string?> Command { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuLimit")]
|
||||||
|
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuReservation")]
|
||||||
|
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseName")]
|
||||||
|
public Output<string> DatabaseName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databasePassword")]
|
||||||
|
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databaseUser")]
|
||||||
|
public Output<string> DatabaseUser { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("detachDokployNetwork")]
|
||||||
|
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("dockerImage")]
|
||||||
|
public Output<string> DockerImage { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("endpointSpecSwarm")]
|
||||||
|
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string?> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("environmentId")]
|
||||||
|
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Output("externalPort")]
|
||||||
|
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("healthCheckSwarm")]
|
||||||
|
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("labelsSwarm")]
|
||||||
|
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryLimit")]
|
||||||
|
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryReservation")]
|
||||||
|
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("modeSwarm")]
|
||||||
|
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkIds")]
|
||||||
|
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkSwarm")]
|
||||||
|
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("placementSwarm")]
|
||||||
|
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Output("replicas")]
|
||||||
|
public Output<int> Replicas { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("restartPolicySwarm")]
|
||||||
|
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("rollbackConfigSwarm")]
|
||||||
|
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Output("stopGracePeriodSwarm")]
|
||||||
|
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("ulimitsSwarm")]
|
||||||
|
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("updateConfigSwarm")]
|
||||||
|
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Postgres resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Postgres(string name, PostgresArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/postgres:Postgres", name, args ?? new PostgresArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Postgres(string name, Input<string> id, PostgresState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/postgres:Postgres", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"databasePassword",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Postgres resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Postgres Get(string name, Input<string> id, PostgresState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Postgres(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class PostgresArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseName", required: true)]
|
||||||
|
public Input<string> DatabaseName { get; set; } = null!;
|
||||||
|
|
||||||
|
[Input("databasePassword", required: true)]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser", required: true)]
|
||||||
|
public Input<string> DatabaseUser { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage", required: true)]
|
||||||
|
public Input<string> DockerImage { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId", required: true)]
|
||||||
|
public Input<string> EnvironmentId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public PostgresArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new PostgresArgs Empty => new PostgresArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class PostgresState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationStatus")]
|
||||||
|
public Input<string>? ApplicationStatus { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the database to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseName")]
|
||||||
|
public Input<string>? DatabaseName { get; set; }
|
||||||
|
|
||||||
|
[Input("databasePassword")]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password for the database user.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Database user to create.
|
||||||
|
/// </summary>
|
||||||
|
[Input("databaseUser")]
|
||||||
|
public Input<string>? DatabaseUser { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage")]
|
||||||
|
public Input<string>? DockerImage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId")]
|
||||||
|
public Input<string>? EnvironmentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public PostgresState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new PostgresState Empty => new PostgresState();
|
||||||
|
}
|
||||||
|
}
|
||||||
166
sdk/dotnet/Project.cs
generated
Normal file
166
sdk/dotnet/Project.cs
generated
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/project:Project")]
|
||||||
|
public partial class Project : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the project was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the `Production` environment that Dokploy creates automatically with the project.
|
||||||
|
/// </summary>
|
||||||
|
[Output("defaultEnvironmentId")]
|
||||||
|
public Output<string> DefaultEnvironmentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the project.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Organization that owns the project.
|
||||||
|
/// </summary>
|
||||||
|
[Output("organizationId")]
|
||||||
|
public Output<string> OrganizationId { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Project resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Project(string name, ProjectArgs? args = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/project:Project", name, args ?? new ProjectArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Project(string name, Input<string> id, ProjectState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/project:Project", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Project resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Project Get(string name, Input<string> id, ProjectState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Project(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class ProjectArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the project.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
public ProjectArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new ProjectArgs Empty => new ProjectArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class ProjectState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the project was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the `Production` environment that Dokploy creates automatically with the project.
|
||||||
|
/// </summary>
|
||||||
|
[Input("defaultEnvironmentId")]
|
||||||
|
public Input<string>? DefaultEnvironmentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the project.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Organization that owns the project.
|
||||||
|
/// </summary>
|
||||||
|
[Input("organizationId")]
|
||||||
|
public Input<string>? OrganizationId { get; set; }
|
||||||
|
|
||||||
|
public ProjectState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new ProjectState Empty => new ProjectState();
|
||||||
|
}
|
||||||
|
}
|
||||||
130
sdk/dotnet/Provider.cs
generated
Normal file
130
sdk/dotnet/Provider.cs
generated
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The provider type for the dokploy package. By default, resources use package-wide configuration
|
||||||
|
/// settings, however an explicit `Provider` instance may be created and passed during resource
|
||||||
|
/// construction to achieve fine-grained programmatic control over provider settings. See the
|
||||||
|
/// [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
|
||||||
|
/// </summary>
|
||||||
|
[DokployResourceType("pulumi:providers:dokploy")]
|
||||||
|
public partial class Provider : global::Pulumi.ProviderResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
[Output("apiKey")]
|
||||||
|
public Output<string?> ApiKey { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
[Output("host")]
|
||||||
|
public Output<string?> Host { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Provider resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Provider(string name, ProviderArgs? args = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy", name, args ?? new ProviderArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"apiKey",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.
|
||||||
|
/// </summary>
|
||||||
|
public global::Pulumi.Output<ProviderTerraformConfigResult> TerraformConfig()
|
||||||
|
=> global::Pulumi.Deployment.Instance.Call<ProviderTerraformConfigResult>("pulumi:providers:dokploy/terraformConfig", CallArgs.Empty, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class ProviderArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
[Input("apiKey")]
|
||||||
|
private Input<string>? _apiKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? ApiKey
|
||||||
|
{
|
||||||
|
get => _apiKey;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_apiKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
[Input("host")]
|
||||||
|
public Input<string>? Host { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `False`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("insecureSkipVerify", json: true)]
|
||||||
|
public Input<bool>? InsecureSkipVerify { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
|
||||||
|
/// </summary>
|
||||||
|
[Input("timeoutSeconds", json: true)]
|
||||||
|
public Input<int>? TimeoutSeconds { get; set; }
|
||||||
|
|
||||||
|
public ProviderArgs()
|
||||||
|
{
|
||||||
|
ApiKey = Utilities.GetEnv("DOKPLOY_API_KEY");
|
||||||
|
Host = Utilities.GetEnv("DOKPLOY_HOST");
|
||||||
|
TimeoutSeconds = Utilities.GetEnvInt32("DOKPLOY_TIMEOUT_SECONDS");
|
||||||
|
}
|
||||||
|
public static new ProviderArgs Empty => new ProviderArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The results of the <see cref="Provider.TerraformConfig"/> method.
|
||||||
|
/// </summary>
|
||||||
|
[OutputType]
|
||||||
|
public sealed class ProviderTerraformConfigResult
|
||||||
|
{
|
||||||
|
public readonly ImmutableDictionary<string, object> Result;
|
||||||
|
|
||||||
|
[OutputConstructor]
|
||||||
|
private ProviderTerraformConfigResult(ImmutableDictionary<string, object> result)
|
||||||
|
{
|
||||||
|
Result = result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
sdk/dotnet/Pulumi.yaml
generated
Normal file
3
sdk/dotnet/Pulumi.yaml
generated
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
name: dokploy
|
||||||
|
description: A Pulumi resource provider for dokploy.
|
||||||
|
language: dotnet
|
||||||
206
sdk/dotnet/README.md
generated
Normal file
206
sdk/dotnet/README.md
generated
Normal file
@@ -0,0 +1,206 @@
|
|||||||
|
# pulumi-dokploy
|
||||||
|
|
||||||
|
A Pulumi provider for [Dokploy](https://dokploy.com): projects, environments,
|
||||||
|
applications, Compose stacks, managed databases, domains, mounts, ports,
|
||||||
|
redirects, basic auth, registries, SSH keys, certificates and backup
|
||||||
|
destinations.
|
||||||
|
|
||||||
|
This is a *bridged* provider. All of the behaviour lives in
|
||||||
|
[`terraform-provider-dokploy`](https://github.com/maxvojtkov/terraform-provider-dokploy);
|
||||||
|
[`pulumi-terraform-bridge`](https://github.com/pulumi/pulumi-terraform-bridge)
|
||||||
|
turns it into a Pulumi package with typed SDKs for TypeScript, Python, Go and
|
||||||
|
.NET. The two providers stay in lockstep — a resource added upstream shows up
|
||||||
|
here after a `make tfgen`.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import * as dokploy from "@maxvojtkov/pulumi-dokploy";
|
||||||
|
|
||||||
|
const shop = new dokploy.Project("shop", { name: "shop" });
|
||||||
|
|
||||||
|
const db = new dokploy.Postgres("db", {
|
||||||
|
name: "shop-db",
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
dockerImage: "postgres:16-alpine",
|
||||||
|
databaseName: "shop",
|
||||||
|
databaseUser: "shop",
|
||||||
|
databasePassword: dbPassword,
|
||||||
|
});
|
||||||
|
|
||||||
|
const api = new dokploy.Application("api", {
|
||||||
|
name: "api",
|
||||||
|
environmentId: shop.defaultEnvironmentId,
|
||||||
|
sourceType: "docker",
|
||||||
|
dockerImage: "ghcr.io/acme/api:1.4.0",
|
||||||
|
env: pulumi.interpolate`DATABASE_URL=postgresql://shop:${dbPassword}@${db.appName}:5432/shop`,
|
||||||
|
});
|
||||||
|
|
||||||
|
new dokploy.Domain("api", {
|
||||||
|
applicationId: api.id,
|
||||||
|
domainType: "application",
|
||||||
|
host: "api.example.com",
|
||||||
|
port: 3000,
|
||||||
|
https: true,
|
||||||
|
certificateType: "letsencrypt",
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
- [Installing](#installing)
|
||||||
|
- [Configuration](#configuration)
|
||||||
|
- [Resources and data sources](#resources-and-data-sources)
|
||||||
|
- [Differences from the Terraform provider](#differences-from-the-terraform-provider)
|
||||||
|
- [Examples](#examples)
|
||||||
|
- [Development](#development)
|
||||||
|
- [Releasing](#releasing)
|
||||||
|
|
||||||
|
## Installing
|
||||||
|
|
||||||
|
The SDKs are published per language; the plugin binary is resolved
|
||||||
|
automatically from this repository's GitHub releases.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# TypeScript / JavaScript
|
||||||
|
npm install @maxvojtkov/pulumi-dokploy
|
||||||
|
|
||||||
|
# Python
|
||||||
|
pip install pulumi_dokploy
|
||||||
|
|
||||||
|
# Go
|
||||||
|
go get github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy
|
||||||
|
|
||||||
|
# .NET
|
||||||
|
dotnet add package Maxvojtkov.Dokploy
|
||||||
|
```
|
||||||
|
|
||||||
|
Before the first release, build and install it locally instead:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install VERSION=0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
That drops `pulumi-resource-dokploy` into the local plugin cache, so
|
||||||
|
`pulumi up` finds it without a network fetch.
|
||||||
|
|
||||||
|
### Do I need the static SDK?
|
||||||
|
|
||||||
|
Not necessarily. Pulumi can consume the Terraform provider directly, with no
|
||||||
|
build step and no published SDK:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pulumi package add terraform-provider maxvojtkov/dokploy
|
||||||
|
```
|
||||||
|
|
||||||
|
That generates a local SDK on the spot and is the fastest way to try things.
|
||||||
|
Use this repository when you want a *versioned, published* package — stable
|
||||||
|
tokens across releases, real package-manager installs, and SDKs your teammates
|
||||||
|
can depend on without a codegen step.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
| Setting | Environment variable | Required | Description |
|
||||||
|
| ---------------------- | ------------------------- | -------- | --------------------------------------------------------------------------- |
|
||||||
|
| `dokploy:host` | `DOKPLOY_HOST` | yes | Base URL of the instance, e.g. `https://dokploy.example.com`. Trailing `/api` optional. |
|
||||||
|
| `dokploy:apiKey` | `DOKPLOY_API_KEY` | yes | Token from *Settings → Profile → API/CLI*. Always treated as a secret. |
|
||||||
|
| `dokploy:timeoutSeconds` | `DOKPLOY_TIMEOUT_SECONDS` | no | Per-request timeout. Defaults to `60`. |
|
||||||
|
| `dokploy:insecureSkipVerify` | — | no | Skip TLS verification. Only for self-signed certificates. |
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pulumi config set dokploy:host https://dokploy.example.com
|
||||||
|
pulumi config set --secret dokploy:apiKey "$DOKPLOY_API_KEY"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resources and data sources
|
||||||
|
|
||||||
|
| Group | Resources |
|
||||||
|
| ------------ | ------------------------------------------------------------------------- |
|
||||||
|
| Structure | `Project`, `Environment` |
|
||||||
|
| Services | `Application`, `Compose` |
|
||||||
|
| Databases | `Postgres`, `MySql`, `MariaDb`, `Mongo`, `Redis` |
|
||||||
|
| Networking | `Domain`, `Mount`, `Port`, `Redirect`, `Security` |
|
||||||
|
| Account | `Registry`, `SshKey`, `Certificate`, `Destination` |
|
||||||
|
|
||||||
|
Data sources: `getProject`, `getProjects`, `getEnvironment`, `getApplication`,
|
||||||
|
`getServers`.
|
||||||
|
|
||||||
|
## Differences from the Terraform provider
|
||||||
|
|
||||||
|
Everything is a mechanical translation of the Terraform provider, with three
|
||||||
|
Pulumi conventions applied on top:
|
||||||
|
|
||||||
|
- **Attribute names are camelCase.** `environment_id` → `environmentId`,
|
||||||
|
`default_environment_id` → `defaultEnvironmentId`, and so on.
|
||||||
|
- **`name` is auto-generated when you omit it.** Pulumi appends a random
|
||||||
|
suffix to the logical resource name, the same way the AWS provider does. Pass
|
||||||
|
`name` explicitly whenever the Dokploy-side name matters to you.
|
||||||
|
- **The `web-service` Terraform module has no direct equivalent.** Write it as
|
||||||
|
a [ComponentResource](https://www.pulumi.com/docs/concepts/resources/components/)
|
||||||
|
instead — see [`examples/typescript/webService.ts`](examples/typescript/webService.ts),
|
||||||
|
which is a port of that module.
|
||||||
|
|
||||||
|
The [known API quirks](https://github.com/maxvojtkov/terraform-provider-dokploy#known-api-quirks)
|
||||||
|
documented upstream apply here unchanged, because it is the same code doing the
|
||||||
|
work.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
- [`examples/typescript`](examples/typescript) — a full environment: project,
|
||||||
|
staging environment, Postgres, Redis, a GitHub-built web service behind a
|
||||||
|
domain, a basic-auth-protected internal tool, and a Compose stack.
|
||||||
|
- [`examples/python`](examples/python) — a small project, database and app.
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Requirements: Go 1.25+, Node 20+, Python 3.9+, .NET 8+, and `pulumi`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make tfgen # regenerate schema.json and bridge-metadata.json
|
||||||
|
make provider # build the plugin binary into bin/
|
||||||
|
make build_sdks # regenerate all four SDKs
|
||||||
|
make install # install the plugin into the local Pulumi plugin cache
|
||||||
|
make lint test
|
||||||
|
```
|
||||||
|
|
||||||
|
`provider/resources.go` is the whole mapping layer: Terraform type names to
|
||||||
|
Pulumi tokens, and Terraform provider configuration to Pulumi configuration.
|
||||||
|
Adding an upstream resource means adding one line there and re-running
|
||||||
|
`make tfgen build_sdks`.
|
||||||
|
|
||||||
|
### The upstream dependency
|
||||||
|
|
||||||
|
`provider/go.mod` currently carries:
|
||||||
|
|
||||||
|
```
|
||||||
|
replace github.com/maxvojtkov/terraform-provider-dokploy => ../../dokploy-teraform
|
||||||
|
```
|
||||||
|
|
||||||
|
so the two repositories can be developed side by side. CI reproduces that
|
||||||
|
layout by checking the upstream provider out as a sibling directory. Once
|
||||||
|
`terraform-provider-dokploy` is tagged on GitHub, drop the `replace` and pin a
|
||||||
|
real version instead:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd provider && go mod edit -dropreplace github.com/maxvojtkov/terraform-provider-dokploy \
|
||||||
|
&& go get github.com/maxvojtkov/terraform-provider-dokploy@v0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
The upstream provider exposes itself through its `shim` package
|
||||||
|
(`shim.NewProvider(version)`), because `internal/provider` is not importable
|
||||||
|
from outside that module.
|
||||||
|
|
||||||
|
## Releasing
|
||||||
|
|
||||||
|
Tag the repository and the `release` workflow does the rest:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git tag v0.1.0 && git push origin v0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
It publishes plugin binaries to a GitHub release via GoReleaser, pushes the
|
||||||
|
npm / PyPI / NuGet packages, and commits and tags the Go SDK as `sdk/v0.1.0`.
|
||||||
|
The workflow needs three repository secrets: `NPM_TOKEN`, `PYPI_API_TOKEN` and
|
||||||
|
`NUGET_PUBLISH_KEY`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MPL-2.0](LICENSE).
|
||||||
160
sdk/dotnet/Redirect.cs
generated
Normal file
160
sdk/dotnet/Redirect.cs
generated
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/redirect:Redirect")]
|
||||||
|
public partial class Redirect : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this redirect belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationId")]
|
||||||
|
public Output<string> ApplicationId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the redirect was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
/// </summary>
|
||||||
|
[Output("permanent")]
|
||||||
|
public Output<bool> Permanent { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Regular expression matched against the incoming URL.
|
||||||
|
/// </summary>
|
||||||
|
[Output("regex")]
|
||||||
|
public Output<string> Regex { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("replacement")]
|
||||||
|
public Output<string> Replacement { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Redirect resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Redirect(string name, RedirectArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/redirect:Redirect", name, args ?? new RedirectArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Redirect(string name, Input<string> id, RedirectState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/redirect:Redirect", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Redirect resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Redirect Get(string name, Input<string> id, RedirectState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Redirect(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class RedirectArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this redirect belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId", required: true)]
|
||||||
|
public Input<string> ApplicationId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
/// </summary>
|
||||||
|
[Input("permanent")]
|
||||||
|
public Input<bool>? Permanent { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Regular expression matched against the incoming URL.
|
||||||
|
/// </summary>
|
||||||
|
[Input("regex", required: true)]
|
||||||
|
public Input<string> Regex { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replacement", required: true)]
|
||||||
|
public Input<string> Replacement { get; set; } = null!;
|
||||||
|
|
||||||
|
public RedirectArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new RedirectArgs Empty => new RedirectArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class RedirectState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application this redirect belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId")]
|
||||||
|
public Input<string>? ApplicationId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the redirect was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
/// </summary>
|
||||||
|
[Input("permanent")]
|
||||||
|
public Input<bool>? Permanent { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Regular expression matched against the incoming URL.
|
||||||
|
/// </summary>
|
||||||
|
[Input("regex")]
|
||||||
|
public Input<string>? Regex { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replacement")]
|
||||||
|
public Input<string>? Replacement { get; set; }
|
||||||
|
|
||||||
|
public RedirectState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new RedirectState Empty => new RedirectState();
|
||||||
|
}
|
||||||
|
}
|
||||||
670
sdk/dotnet/Redis.cs
generated
Normal file
670
sdk/dotnet/Redis.cs
generated
Normal file
@@ -0,0 +1,670 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/redis:Redis")]
|
||||||
|
public partial class Redis : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("appName")]
|
||||||
|
public Output<string> AppName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationStatus")]
|
||||||
|
public Output<string> ApplicationStatus { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("args")]
|
||||||
|
public Output<ImmutableArray<string>> Args { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Output("command")]
|
||||||
|
public Output<string?> Command { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuLimit")]
|
||||||
|
public Output<string?> CpuLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("cpuReservation")]
|
||||||
|
public Output<string?> CpuReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password used to authenticate to Redis.
|
||||||
|
/// </summary>
|
||||||
|
[Output("databasePassword")]
|
||||||
|
public Output<string> DatabasePassword { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("detachDokployNetwork")]
|
||||||
|
public Output<bool> DetachDokployNetwork { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Redis image to run, for example `redis:7`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("dockerImage")]
|
||||||
|
public Output<string> DockerImage { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("endpointSpecSwarm")]
|
||||||
|
public Output<string?> EndpointSpecSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Output("env")]
|
||||||
|
public Output<string?> Env { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("environmentId")]
|
||||||
|
public Output<string> EnvironmentId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Output("externalPort")]
|
||||||
|
public Output<int?> ExternalPort { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("healthCheckSwarm")]
|
||||||
|
public Output<string?> HealthCheckSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("labelsSwarm")]
|
||||||
|
public Output<string?> LabelsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryLimit")]
|
||||||
|
public Output<string?> MemoryLimit { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("memoryReservation")]
|
||||||
|
public Output<string?> MemoryReservation { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("modeSwarm")]
|
||||||
|
public Output<string?> ModeSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkIds")]
|
||||||
|
public Output<ImmutableArray<string>> NetworkIds { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Output("networkSwarm")]
|
||||||
|
public Output<string?> NetworkSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("placementSwarm")]
|
||||||
|
public Output<string?> PlacementSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Output("replicas")]
|
||||||
|
public Output<int> Replicas { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("restartPolicySwarm")]
|
||||||
|
public Output<string?> RestartPolicySwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("rollbackConfigSwarm")]
|
||||||
|
public Output<string?> RollbackConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Output("stopGracePeriodSwarm")]
|
||||||
|
public Output<int?> StopGracePeriodSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("ulimitsSwarm")]
|
||||||
|
public Output<string?> UlimitsSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Output("updateConfigSwarm")]
|
||||||
|
public Output<string?> UpdateConfigSwarm { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Redis resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Redis(string name, RedisArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/redis:Redis", name, args ?? new RedisArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Redis(string name, Input<string> id, RedisState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/redis:Redis", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"databasePassword",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Redis resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Redis Get(string name, Input<string> id, RedisState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Redis(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class RedisArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
[Input("databasePassword", required: true)]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password used to authenticate to Redis.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Redis image to run, for example `redis:7`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage", required: true)]
|
||||||
|
public Input<string> DockerImage { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId", required: true)]
|
||||||
|
public Input<string> EnvironmentId { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public RedisArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new RedisArgs Empty => new RedisArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class RedisState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("appName")]
|
||||||
|
public Input<string>? AppName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Current status reported by Dokploy: `Idle`, `Running`, `Done` or `Error`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationStatus")]
|
||||||
|
public Input<string>? ApplicationStatus { get; set; }
|
||||||
|
|
||||||
|
[Input("args")]
|
||||||
|
private InputList<string>? _args;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments appended to the container command.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> Args
|
||||||
|
{
|
||||||
|
get => _args ?? (_args = new InputList<string>());
|
||||||
|
set => _args = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Override the container entrypoint command.
|
||||||
|
/// </summary>
|
||||||
|
[Input("command")]
|
||||||
|
public Input<string>? Command { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard CPU limit, for example `1`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuLimit")]
|
||||||
|
public Input<string>? CpuLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft CPU reservation, for example `0.5`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("cpuReservation")]
|
||||||
|
public Input<string>? CpuReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the database was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
[Input("databasePassword")]
|
||||||
|
private Input<string>? _databasePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password used to authenticate to Redis.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? DatabasePassword
|
||||||
|
{
|
||||||
|
get => _databasePassword;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_databasePassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detach the service from the shared `dokploy-network`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("detachDokployNetwork")]
|
||||||
|
public Input<bool>? DetachDokployNetwork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Redis image to run, for example `redis:7`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("dockerImage")]
|
||||||
|
public Input<string>? DockerImage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("endpointSpecSwarm")]
|
||||||
|
public Input<string>? EndpointSpecSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment variables in `KEY=value` format, one per line.
|
||||||
|
/// </summary>
|
||||||
|
[Input("env")]
|
||||||
|
public Input<string>? Env { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Environment this database belongs to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("environmentId")]
|
||||||
|
public Input<string>? EnvironmentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
/// </summary>
|
||||||
|
[Input("externalPort")]
|
||||||
|
public Input<int>? ExternalPort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("healthCheckSwarm")]
|
||||||
|
public Input<string>? HealthCheckSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service labels, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("labelsSwarm")]
|
||||||
|
public Input<string>? LabelsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hard memory limit, for example `512m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryLimit")]
|
||||||
|
public Input<string>? MemoryLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Soft memory reservation, for example `256m`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("memoryReservation")]
|
||||||
|
public Input<string>? MemoryReservation { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm service mode, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("modeSwarm")]
|
||||||
|
public Input<string>? ModeSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the database.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("networkIds")]
|
||||||
|
private InputList<string>? _networkIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDs of additional Docker networks to attach.
|
||||||
|
/// </summary>
|
||||||
|
public InputList<string> NetworkIds
|
||||||
|
{
|
||||||
|
get => _networkIds ?? (_networkIds = new InputList<string>());
|
||||||
|
set => _networkIds = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm network attachments, as a JSON array.
|
||||||
|
/// </summary>
|
||||||
|
[Input("networkSwarm")]
|
||||||
|
public Input<string>? NetworkSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("placementSwarm")]
|
||||||
|
public Input<string>? PlacementSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of replicas to run.
|
||||||
|
/// </summary>
|
||||||
|
[Input("replicas")]
|
||||||
|
public Input<int>? Replicas { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm restart policy, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("restartPolicySwarm")]
|
||||||
|
public Input<string>? RestartPolicySwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("rollbackConfigSwarm")]
|
||||||
|
public Input<string>? RollbackConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Grace period in nanoseconds before a container is killed.
|
||||||
|
/// </summary>
|
||||||
|
[Input("stopGracePeriodSwarm")]
|
||||||
|
public Input<int>? StopGracePeriodSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm ulimits, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("ulimitsSwarm")]
|
||||||
|
public Input<string>? UlimitsSwarm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
/// </summary>
|
||||||
|
[Input("updateConfigSwarm")]
|
||||||
|
public Input<string>? UpdateConfigSwarm { get; set; }
|
||||||
|
|
||||||
|
public RedisState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new RedisState Empty => new RedisState();
|
||||||
|
}
|
||||||
|
}
|
||||||
238
sdk/dotnet/Registry.cs
generated
Normal file
238
sdk/dotnet/Registry.cs
generated
Normal file
@@ -0,0 +1,238 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/registry:Registry")]
|
||||||
|
public partial class Registry : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the registry was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
/// </summary>
|
||||||
|
[Output("imagePrefix")]
|
||||||
|
public Output<string?> ImagePrefix { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password or access token used to authenticate.
|
||||||
|
/// </summary>
|
||||||
|
[Output("password")]
|
||||||
|
public Output<string> Password { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the registry.
|
||||||
|
/// </summary>
|
||||||
|
[Output("registryName")]
|
||||||
|
public Output<string> RegistryName { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registry kind. Dokploy currently accepts only `Cloud`. Valid values: `Cloud`. Defaults to `Cloud`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("registryType")]
|
||||||
|
public Output<string> RegistryType { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registry hostname, for example `ghcr.io`.
|
||||||
|
/// </summary>
|
||||||
|
[Output("registryUrl")]
|
||||||
|
public Output<string> RegistryUrl { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this registry is scoped to.
|
||||||
|
/// </summary>
|
||||||
|
[Output("serverId")]
|
||||||
|
public Output<string?> ServerId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Username used to authenticate to the registry.
|
||||||
|
/// </summary>
|
||||||
|
[Output("username")]
|
||||||
|
public Output<string> Username { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Registry resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Registry(string name, RegistryArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/registry:Registry", name, args ?? new RegistryArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Registry(string name, Input<string> id, RegistryState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/registry:Registry", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"password",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Registry resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Registry Get(string name, Input<string> id, RegistryState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Registry(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class RegistryArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
/// </summary>
|
||||||
|
[Input("imagePrefix")]
|
||||||
|
public Input<string>? ImagePrefix { get; set; }
|
||||||
|
|
||||||
|
[Input("password", required: true)]
|
||||||
|
private Input<string>? _password;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password or access token used to authenticate.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? Password
|
||||||
|
{
|
||||||
|
get => _password;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the registry.
|
||||||
|
/// </summary>
|
||||||
|
[Input("registryName", required: true)]
|
||||||
|
public Input<string> RegistryName { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registry kind. Dokploy currently accepts only `Cloud`. Valid values: `Cloud`. Defaults to `Cloud`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("registryType")]
|
||||||
|
public Input<string>? RegistryType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registry hostname, for example `ghcr.io`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("registryUrl", required: true)]
|
||||||
|
public Input<string> RegistryUrl { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this registry is scoped to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Username used to authenticate to the registry.
|
||||||
|
/// </summary>
|
||||||
|
[Input("username", required: true)]
|
||||||
|
public Input<string> Username { get; set; } = null!;
|
||||||
|
|
||||||
|
public RegistryArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new RegistryArgs Empty => new RegistryArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class RegistryState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the registry was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
/// </summary>
|
||||||
|
[Input("imagePrefix")]
|
||||||
|
public Input<string>? ImagePrefix { get; set; }
|
||||||
|
|
||||||
|
[Input("password")]
|
||||||
|
private Input<string>? _password;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Password or access token used to authenticate.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? Password
|
||||||
|
{
|
||||||
|
get => _password;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the registry.
|
||||||
|
/// </summary>
|
||||||
|
[Input("registryName")]
|
||||||
|
public Input<string>? RegistryName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registry kind. Dokploy currently accepts only `Cloud`. Valid values: `Cloud`. Defaults to `Cloud`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("registryType")]
|
||||||
|
public Input<string>? RegistryType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registry hostname, for example `ghcr.io`.
|
||||||
|
/// </summary>
|
||||||
|
[Input("registryUrl")]
|
||||||
|
public Input<string>? RegistryUrl { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Server this registry is scoped to.
|
||||||
|
/// </summary>
|
||||||
|
[Input("serverId")]
|
||||||
|
public Input<string>? ServerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Username used to authenticate to the registry.
|
||||||
|
/// </summary>
|
||||||
|
[Input("username")]
|
||||||
|
public Input<string>? Username { get; set; }
|
||||||
|
|
||||||
|
public RegistryState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new RegistryState Empty => new RegistryState();
|
||||||
|
}
|
||||||
|
}
|
||||||
166
sdk/dotnet/Security.cs
generated
Normal file
166
sdk/dotnet/Security.cs
generated
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/security:Security")]
|
||||||
|
public partial class Security : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application these credentials protect.
|
||||||
|
/// </summary>
|
||||||
|
[Output("applicationId")]
|
||||||
|
public Output<string> ApplicationId { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the credentials were created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Basic auth password.
|
||||||
|
/// </summary>
|
||||||
|
[Output("password")]
|
||||||
|
public Output<string> Password { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Basic auth username.
|
||||||
|
/// </summary>
|
||||||
|
[Output("username")]
|
||||||
|
public Output<string> Username { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a Security resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public Security(string name, SecurityArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/security:Security", name, args ?? new SecurityArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Security(string name, Input<string> id, SecurityState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/security:Security", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"password",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing Security resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static Security Get(string name, Input<string> id, SecurityState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new Security(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class SecurityArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application these credentials protect.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId", required: true)]
|
||||||
|
public Input<string> ApplicationId { get; set; } = null!;
|
||||||
|
|
||||||
|
[Input("password", required: true)]
|
||||||
|
private Input<string>? _password;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Basic auth password.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? Password
|
||||||
|
{
|
||||||
|
get => _password;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Basic auth username.
|
||||||
|
/// </summary>
|
||||||
|
[Input("username", required: true)]
|
||||||
|
public Input<string> Username { get; set; } = null!;
|
||||||
|
|
||||||
|
public SecurityArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new SecurityArgs Empty => new SecurityArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class SecurityState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Application these credentials protect.
|
||||||
|
/// </summary>
|
||||||
|
[Input("applicationId")]
|
||||||
|
public Input<string>? ApplicationId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the credentials were created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
[Input("password")]
|
||||||
|
private Input<string>? _password;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Basic auth password.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? Password
|
||||||
|
{
|
||||||
|
get => _password;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Basic auth username.
|
||||||
|
/// </summary>
|
||||||
|
[Input("username")]
|
||||||
|
public Input<string>? Username { get; set; }
|
||||||
|
|
||||||
|
public SecurityState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new SecurityState Empty => new SecurityState();
|
||||||
|
}
|
||||||
|
}
|
||||||
196
sdk/dotnet/SshKey.cs
generated
Normal file
196
sdk/dotnet/SshKey.cs
generated
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
// *** 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;
|
||||||
|
using Pulumi;
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
[DokployResourceType("dokploy:index/sshKey:SshKey")]
|
||||||
|
public partial class SshKey : global::Pulumi.CustomResource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the key was created.
|
||||||
|
/// </summary>
|
||||||
|
[Output("createdAt")]
|
||||||
|
public Output<string> CreatedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Output("description")]
|
||||||
|
public Output<string?> Description { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the key was last used, if ever.
|
||||||
|
/// </summary>
|
||||||
|
[Output("lastUsedAt")]
|
||||||
|
public Output<string> LastUsedAt { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the key pair.
|
||||||
|
/// </summary>
|
||||||
|
[Output("name")]
|
||||||
|
public Output<string> Name { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded private key.
|
||||||
|
/// </summary>
|
||||||
|
[Output("privateKey")]
|
||||||
|
public Output<string> PrivateKey { get; private set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// OpenSSH-formatted public key.
|
||||||
|
/// </summary>
|
||||||
|
[Output("publicKey")]
|
||||||
|
public Output<string> PublicKey { get; private set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a SshKey resource with the given unique name, arguments, and options.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resource</param>
|
||||||
|
/// <param name="args">The arguments used to populate this resource's properties</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public SshKey(string name, SshKeyArgs args, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/sshKey:SshKey", name, args ?? new SshKeyArgs(), MakeResourceOptions(options, ""))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private SshKey(string name, Input<string> id, SshKeyState? state = null, CustomResourceOptions? options = null)
|
||||||
|
: base("dokploy:index/sshKey:SshKey", name, state, MakeResourceOptions(options, id))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
|
||||||
|
{
|
||||||
|
var defaultOptions = new CustomResourceOptions
|
||||||
|
{
|
||||||
|
Version = Utilities.Version,
|
||||||
|
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
|
||||||
|
AdditionalSecretOutputs =
|
||||||
|
{
|
||||||
|
"privateKey",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get an existing SshKey resource's state with the given name, ID, and optional extra
|
||||||
|
/// properties used to qualify the lookup.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">The unique name of the resulting resource.</param>
|
||||||
|
/// <param name="id">The unique provider ID of the resource to lookup.</param>
|
||||||
|
/// <param name="state">Any extra arguments used during the lookup.</param>
|
||||||
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
|
public static SshKey Get(string name, Input<string> id, SshKeyState? state = null, CustomResourceOptions? options = null)
|
||||||
|
{
|
||||||
|
return new SshKey(name, id, state, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class SshKeyArgs : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the key pair.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("privateKey", required: true)]
|
||||||
|
private Input<string>? _privateKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded private key.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? PrivateKey
|
||||||
|
{
|
||||||
|
get => _privateKey;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// OpenSSH-formatted public key.
|
||||||
|
/// </summary>
|
||||||
|
[Input("publicKey", required: true)]
|
||||||
|
public Input<string> PublicKey { get; set; } = null!;
|
||||||
|
|
||||||
|
public SshKeyArgs()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new SshKeyArgs Empty => new SshKeyArgs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class SshKeyState : global::Pulumi.ResourceArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the key was created.
|
||||||
|
/// </summary>
|
||||||
|
[Input("createdAt")]
|
||||||
|
public Input<string>? CreatedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Free-form description.
|
||||||
|
/// </summary>
|
||||||
|
[Input("description")]
|
||||||
|
public Input<string>? Description { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RFC 3339 timestamp of when the key was last used, if ever.
|
||||||
|
/// </summary>
|
||||||
|
[Input("lastUsedAt")]
|
||||||
|
public Input<string>? LastUsedAt { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Display name of the key pair.
|
||||||
|
/// </summary>
|
||||||
|
[Input("name")]
|
||||||
|
public Input<string>? Name { get; set; }
|
||||||
|
|
||||||
|
[Input("privateKey")]
|
||||||
|
private Input<string>? _privateKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PEM-encoded private key.
|
||||||
|
/// </summary>
|
||||||
|
public Input<string>? PrivateKey
|
||||||
|
{
|
||||||
|
get => _privateKey;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var emptySecret = Output.CreateSecret(0);
|
||||||
|
_privateKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// OpenSSH-formatted public key.
|
||||||
|
/// </summary>
|
||||||
|
[Input("publicKey")]
|
||||||
|
public Input<string>? PublicKey { get; set; }
|
||||||
|
|
||||||
|
public SshKeyState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public static new SshKeyState Empty => new SshKeyState();
|
||||||
|
}
|
||||||
|
}
|
||||||
92
sdk/dotnet/Utilities.cs
generated
Normal file
92
sdk/dotnet/Utilities.cs
generated
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
// *** WARNING: this file was generated by pulumi-language-dotnet. ***
|
||||||
|
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||||
|
|
||||||
|
namespace Maxvojtkov.Dokploy
|
||||||
|
{
|
||||||
|
static class Utilities
|
||||||
|
{
|
||||||
|
public static string? GetEnv(params string[] names)
|
||||||
|
{
|
||||||
|
foreach (var n in names)
|
||||||
|
{
|
||||||
|
var value = global::System.Environment.GetEnvironmentVariable(n);
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static string[] trueValues = { "1", "t", "T", "true", "TRUE", "True" };
|
||||||
|
static string[] falseValues = { "0", "f", "F", "false", "FALSE", "False" };
|
||||||
|
public static bool? GetEnvBoolean(params string[] names)
|
||||||
|
{
|
||||||
|
var s = GetEnv(names);
|
||||||
|
if (s != null)
|
||||||
|
{
|
||||||
|
if (global::System.Array.IndexOf(trueValues, s) != -1)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (global::System.Array.IndexOf(falseValues, s) != -1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int? GetEnvInt32(params string[] names) => int.TryParse(GetEnv(names), out int v) ? (int?)v : null;
|
||||||
|
|
||||||
|
public static double? GetEnvDouble(params string[] names) => double.TryParse(GetEnv(names), out double v) ? (double?)v : null;
|
||||||
|
|
||||||
|
[global::System.Obsolete("Please use WithDefaults instead")]
|
||||||
|
public static global::Pulumi.InvokeOptions WithVersion(this global::Pulumi.InvokeOptions? options)
|
||||||
|
{
|
||||||
|
var dst = options ?? new global::Pulumi.InvokeOptions{};
|
||||||
|
dst.Version = options?.Version ?? Version;
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static global::Pulumi.InvokeOptions WithDefaults(this global::Pulumi.InvokeOptions? src)
|
||||||
|
{
|
||||||
|
var dst = src ?? new global::Pulumi.InvokeOptions{};
|
||||||
|
dst.Version = src?.Version ?? Version;
|
||||||
|
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github://api.github.com/maxvojtkov/pulumi-dokploy";
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static global::Pulumi.InvokeOutputOptions WithDefaults(this global::Pulumi.InvokeOutputOptions? src)
|
||||||
|
{
|
||||||
|
var dst = src ?? new global::Pulumi.InvokeOutputOptions{};
|
||||||
|
dst.Version = src?.Version ?? Version;
|
||||||
|
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github://api.github.com/maxvojtkov/pulumi-dokploy";
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly static string version;
|
||||||
|
public static string Version => version;
|
||||||
|
|
||||||
|
static Utilities()
|
||||||
|
{
|
||||||
|
var assembly = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(Utilities)).Assembly;
|
||||||
|
using var stream = assembly.GetManifestResourceStream("Maxvojtkov.Dokploy.version.txt");
|
||||||
|
using var reader = new global::System.IO.StreamReader(stream ?? throw new global::System.NotSupportedException("Missing embedded version.txt file"));
|
||||||
|
version = reader.ReadToEnd().Trim();
|
||||||
|
var parts = version.Split("\n");
|
||||||
|
if (parts.Length == 2)
|
||||||
|
{
|
||||||
|
// The first part is the provider name.
|
||||||
|
version = parts[1].Trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal sealed class DokployResourceTypeAttribute : global::Pulumi.ResourceTypeAttribute
|
||||||
|
{
|
||||||
|
public DokployResourceTypeAttribute(string type) : base(type, Utilities.Version)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
sdk/dotnet/logo.png
generated
Normal file
BIN
sdk/dotnet/logo.png
generated
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.7 KiB |
6
sdk/dotnet/pulumi-plugin.json
generated
Normal file
6
sdk/dotnet/pulumi-plugin.json
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"resource": true,
|
||||||
|
"name": "dokploy",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"server": "github://api.github.com/maxvojtkov/pulumi-dokploy"
|
||||||
|
}
|
||||||
1
sdk/dotnet/version.txt
generated
Normal file
1
sdk/dotnet/version.txt
generated
Normal file
@@ -0,0 +1 @@
|
|||||||
|
0.1.0
|
||||||
115
sdk/go.mod
Normal file
115
sdk/go.mod
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
module github.com/maxvojtkov/pulumi-dokploy/sdk
|
||||||
|
|
||||||
|
go 1.25.11
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/blang/semver v3.5.1+incompatible
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.256.0
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/BurntSushi/toml v1.6.0 // indirect
|
||||||
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||||
|
github.com/ProtonMail/go-crypto v1.4.1 // indirect
|
||||||
|
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
||||||
|
github.com/agext/levenshtein v1.2.3 // indirect
|
||||||
|
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
|
||||||
|
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
||||||
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||||
|
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
||||||
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
github.com/charmbracelet/bubbles v1.0.0 // indirect
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10 // indirect
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.2 // indirect
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0 // indirect
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.6 // indirect
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
|
||||||
|
github.com/charmbracelet/x/term v0.2.2 // indirect
|
||||||
|
github.com/cheggaaa/pb v1.0.29 // indirect
|
||||||
|
github.com/clipperhouse/displaywidth v0.11.0 // indirect
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
|
||||||
|
github.com/cloudflare/circl v1.6.3 // indirect
|
||||||
|
github.com/djherbis/times v1.5.0 // indirect
|
||||||
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
||||||
|
github.com/go-git/gcfg/v2 v2.0.2 // indirect
|
||||||
|
github.com/go-git/go-billy/v6 v6.0.0-alpha.1 // indirect
|
||||||
|
github.com/go-git/go-git/v6 v6.0.0-alpha.4 // indirect
|
||||||
|
github.com/go-logr/logr v1.4.3 // indirect
|
||||||
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
|
github.com/golang/glog v1.2.5 // indirect
|
||||||
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
|
||||||
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
||||||
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||||
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||||
|
github.com/hashicorp/go-version v1.8.0 // indirect
|
||||||
|
github.com/hashicorp/hcl/v2 v2.22.0 // indirect
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
|
github.com/kevinburke/ssh_config v1.6.0 // indirect
|
||||||
|
github.com/klauspost/compress v1.18.7 // indirect
|
||||||
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
||||||
|
github.com/mattn/go-runewidth v0.0.20 // indirect
|
||||||
|
github.com/mitchellh/go-ps v1.0.0 // indirect
|
||||||
|
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
||||||
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
||||||
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
||||||
|
github.com/muesli/termenv v0.16.0 // indirect
|
||||||
|
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||||
|
github.com/pgavlin/fx v0.1.6 // indirect
|
||||||
|
github.com/pgavlin/fx/v2 v2.0.12 // indirect
|
||||||
|
github.com/pjbgf/sha1cd v0.6.0 // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
|
github.com/pkg/term v1.1.0 // indirect
|
||||||
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
||||||
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
|
github.com/rogpeppe/go-internal v1.14.1 // indirect
|
||||||
|
github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect
|
||||||
|
github.com/sergi/go-diff v1.4.0 // indirect
|
||||||
|
github.com/spf13/cast v1.4.1 // indirect
|
||||||
|
github.com/spf13/cobra v1.10.2 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.10 // indirect
|
||||||
|
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
||||||
|
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
|
||||||
|
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
||||||
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||||
|
github.com/zclconf/go-cty v1.13.2 // indirect
|
||||||
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||||
|
go.opentelemetry.io/collector/featuregate v1.53.0 // indirect
|
||||||
|
go.opentelemetry.io/collector/pdata v1.53.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/bridges/otelslog v0.18.0 // indirect
|
||||||
|
go.opentelemetry.io/otel v1.44.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/log v0.19.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/metric v1.44.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk/log v0.19.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/trace v1.44.0 // indirect
|
||||||
|
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
|
||||||
|
go.uber.org/atomic v1.11.0 // indirect
|
||||||
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
golang.org/x/crypto v0.53.0 // indirect
|
||||||
|
golang.org/x/mod v0.37.0 // indirect
|
||||||
|
golang.org/x/net v0.56.0 // indirect
|
||||||
|
golang.org/x/sync v0.21.0 // indirect
|
||||||
|
golang.org/x/sys v0.46.0 // indirect
|
||||||
|
golang.org/x/term v0.44.0 // indirect
|
||||||
|
golang.org/x/text v0.39.0 // indirect
|
||||||
|
golang.org/x/tools v0.47.0 // indirect
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect
|
||||||
|
google.golang.org/grpc v1.82.1 // indirect
|
||||||
|
google.golang.org/protobuf v1.36.11 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
|
lukechampine.com/frand v1.4.2 // indirect
|
||||||
|
)
|
||||||
335
sdk/go.sum
Normal file
335
sdk/go.sum
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk=
|
||||||
|
github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||||
|
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
|
||||||
|
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
|
||||||
|
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||||
|
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||||
|
github.com/ProtonMail/go-crypto v1.4.1 h1:9RfcZHqEQUvP8RzecWEUafnZVtEvrBVL9BiF67IQOfM=
|
||||||
|
github.com/ProtonMail/go-crypto v1.4.1/go.mod h1:e1OaTyu5SYVrO9gKOEhTc+5UcXtTUa+P3uLudwcgPqo=
|
||||||
|
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY=
|
||||||
|
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
|
||||||
|
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
|
||||||
|
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||||
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
||||||
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
||||||
|
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-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
|
||||||
|
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
|
||||||
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||||
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
|
||||||
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
|
||||||
|
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
||||||
|
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
||||||
|
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
|
||||||
|
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
|
||||||
|
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/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
|
||||||
|
github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
|
||||||
|
github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY=
|
||||||
|
github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8=
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
|
||||||
|
github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8=
|
||||||
|
github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ=
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
|
||||||
|
github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
|
||||||
|
github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
|
||||||
|
github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
|
||||||
|
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
|
||||||
|
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
|
||||||
|
github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8=
|
||||||
|
github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
|
||||||
|
github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
|
||||||
|
github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
|
||||||
|
github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
|
||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||||
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU=
|
||||||
|
github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0=
|
||||||
|
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
|
||||||
|
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
||||||
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
|
||||||
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
|
||||||
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
|
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
||||||
|
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
||||||
|
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
||||||
|
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
|
||||||
|
github.com/go-git/gcfg/v2 v2.0.2 h1:MY5SIIfTGGEMhdA7d7JePuVVxtKL7Hp+ApGDJAJ7dpo=
|
||||||
|
github.com/go-git/gcfg/v2 v2.0.2/go.mod h1:/lv2NsxvhepuMrldsFilrgct6pxzpGdSRC13ydTLSLs=
|
||||||
|
github.com/go-git/go-billy/v6 v6.0.0-alpha.1 h1:xVjAR4oUvrKy7/Xuw/lLlV3gkxR3KO2H8W+MamuVVsQ=
|
||||||
|
github.com/go-git/go-billy/v6 v6.0.0-alpha.1/go.mod h1:eaCUpHbedW7//EwcYmUDfJe2N6sJC9O12AT0OTqJR1E=
|
||||||
|
github.com/go-git/go-git-fixtures/v6 v6.0.0-alpha.1 h1:gmqi2jvsreu0s8JMLylYDFq4sbjHwwlhktMw0DUg3mA=
|
||||||
|
github.com/go-git/go-git-fixtures/v6 v6.0.0-alpha.1/go.mod h1:ECf1MqJlBdYpKggBrOXjo/0EnvRZx6D++I86UYjPgAQ=
|
||||||
|
github.com/go-git/go-git/v6 v6.0.0-alpha.4 h1:aDTc2UGanmaE7FkGLSlBEB9nohMnQ+RKXcfq/D+esDQ=
|
||||||
|
github.com/go-git/go-git/v6 v6.0.0-alpha.4/go.mod h1:4ODa/G7hPWrh4Y+7lmt59Ij3zW38IEfvRoAZxLYYBhc=
|
||||||
|
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
|
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
|
||||||
|
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
|
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||||
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
|
github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I=
|
||||||
|
github.com/golang/glog v1.2.5/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
|
||||||
|
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=
|
||||||
|
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||||
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
|
||||||
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
|
||||||
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
|
||||||
|
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
|
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||||
|
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
|
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||||
|
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
|
||||||
|
github.com/hashicorp/go-version v1.8.0 h1:KAkNb1HAiZd1ukkxDFGmokVZe1Xy9HG6NUp+bPle2i4=
|
||||||
|
github.com/hashicorp/go-version v1.8.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
|
||||||
|
github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M=
|
||||||
|
github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||||
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
|
github.com/kevinburke/ssh_config v1.6.0 h1:J1FBfmuVosPHf5GRdltRLhPJtJpTlMdKTBjRgTaQBFY=
|
||||||
|
github.com/kevinburke/ssh_config v1.6.0/go.mod h1:q2RIzfka+BXARoNexmF9gkxEX7DmvbW9P4hIVx2Kg4M=
|
||||||
|
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||||
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
|
github.com/klauspost/compress v1.18.7 h1:aUyZsS4kH3QTKurYhAOwAHxllVPnOthb3vPfnF1Ehjw=
|
||||||
|
github.com/klauspost/compress v1.18.7/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
|
||||||
|
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
|
||||||
|
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
|
||||||
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||||
|
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||||
|
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||||
|
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||||
|
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
|
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
|
||||||
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
|
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
|
||||||
|
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
|
||||||
|
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||||
|
github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ=
|
||||||
|
github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
|
||||||
|
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
|
||||||
|
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
|
||||||
|
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
|
||||||
|
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
|
||||||
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
|
||||||
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
|
||||||
|
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
|
||||||
|
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
|
||||||
|
github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
|
||||||
|
github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
|
||||||
|
github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0=
|
||||||
|
github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc=
|
||||||
|
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
||||||
|
github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
|
||||||
|
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
|
||||||
|
github.com/pgavlin/fx/v2 v2.0.12 h1:SjjaJ68Dt8Z4zHwOpY/RPijd7lShs6xYupJbF9ra00M=
|
||||||
|
github.com/pgavlin/fx/v2 v2.0.12/go.mod h1:M/nF/ooAOy+NUBooYYXl2REARzJ/giPJxfMs8fINfKc=
|
||||||
|
github.com/pjbgf/sha1cd v0.6.0 h1:3WJ8Wz8gvDz29quX1OcEmkAlUg9diU4GxJHqs0/XiwU=
|
||||||
|
github.com/pjbgf/sha1cd v0.6.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
|
||||||
|
github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
|
||||||
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.256.0 h1:OrkIu7Iw3HUcMtoEy2uzpD21C32B5EYBLBgBoh/uQPM=
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.256.0/go.mod h1:pyX/FL1Ta3mn4UPfYh2LKG+q/90i2+Jnl0OX4cS+b9U=
|
||||||
|
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||||
|
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||||
|
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
|
||||||
|
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
|
||||||
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
|
github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE=
|
||||||
|
github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0=
|
||||||
|
github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
|
||||||
|
github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
|
||||||
|
github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
|
||||||
|
github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||||
|
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
|
||||||
|
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
|
||||||
|
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
|
||||||
|
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
|
||||||
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
|
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||||
|
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||||
|
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
|
||||||
|
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
|
||||||
|
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
|
||||||
|
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
|
||||||
|
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
|
||||||
|
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
|
||||||
|
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 v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/zclconf/go-cty v1.13.2 h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0=
|
||||||
|
github.com/zclconf/go-cty v1.13.2/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0=
|
||||||
|
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
|
||||||
|
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
|
||||||
|
go.opentelemetry.io/collector/featuregate v1.53.0 h1:cgjXdtl7jezWxq6V0eohe/JqjY4PBotZGb5+bTR2OJw=
|
||||||
|
go.opentelemetry.io/collector/featuregate v1.53.0/go.mod h1:PS7zY/zaCb28EqciePVwRHVhc3oKortTFXsi3I6ee4g=
|
||||||
|
go.opentelemetry.io/collector/internal/testutil v0.147.0 h1:DFlRxBRp23/sZnpTITK25yqe0d56yNvK+63IaWc6OsU=
|
||||||
|
go.opentelemetry.io/collector/internal/testutil v0.147.0/go.mod h1:Jkjs6rkqs973LqgZ0Fe3zrokQRKULYXPIf4HuqStiEE=
|
||||||
|
go.opentelemetry.io/collector/pdata v1.53.0 h1:DlYDbRwammEZaxDZHINx5v0n8SEOVNniPbi6FRTlVkA=
|
||||||
|
go.opentelemetry.io/collector/pdata v1.53.0/go.mod h1:LRSYGNjKXaUrZEwZv3Yl+8/zV2HmRGKXW62zB2bysms=
|
||||||
|
go.opentelemetry.io/contrib/bridges/otelslog v0.18.0 h1:hhPGP3zvvy1xWT9RTy970wlniSxFttBIsAK1gvMguJM=
|
||||||
|
go.opentelemetry.io/contrib/bridges/otelslog v0.18.0/go.mod h1:twJF7inoMza6kxMcF8JOdL3mPmtOZu7GEr34CUNE6Dg=
|
||||||
|
go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU=
|
||||||
|
go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 h1:Dn8rkudDzY6KV9dr/D/bTUuWgqDf9xe0rr4G2elrn0Y=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0/go.mod h1:gMk9F0xDgyN9M/3Ed5Y1wKcx/9mlU91NXY2SNq7RQuU=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0=
|
||||||
|
go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIEbo4=
|
||||||
|
go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk=
|
||||||
|
go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc=
|
||||||
|
go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo=
|
||||||
|
go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
|
||||||
|
go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
|
||||||
|
go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5dBDiXyko=
|
||||||
|
go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg=
|
||||||
|
go.opentelemetry.io/otel/sdk/log/logtest v0.19.0 h1:BEbF7ZBB6qQloV/Ub1+3NQoOUnVtcGkU3XX4Ws3GQfk=
|
||||||
|
go.opentelemetry.io/otel/sdk/log/logtest v0.19.0/go.mod h1:Lua81/3yM0wOmoHTokLj9y9ADeA02v1naRrVrkAZuKk=
|
||||||
|
go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
|
||||||
|
go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
|
||||||
|
go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk=
|
||||||
|
go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE=
|
||||||
|
go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g=
|
||||||
|
go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp v1.9.0/go.mod h1:xXdeJJ90Gqyll+orzUkY4bOd2HECo5JofeoLpymVqdI=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0 h1:o13nadWDNkH/quoDomDUClnQBpdQQ2Qqv0lQBjIXjE8=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0/go.mod h1:Gyb6Xe7FTi/6xBHwMmngGoHqL0w29Y4eW8TGFzpefGA=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0 h1:EiUYvtwu6PMrMHVjcPfnsG3v+ajPkbUeH+IL93+QYyk=
|
||||||
|
go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0/go.mod h1:mUUHKFiN2SST3AhJ8XhJxEoeVW12oqfXog0Bo8W3Ec4=
|
||||||
|
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||||
|
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||||
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
|
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||||
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
|
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
|
||||||
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
|
||||||
|
golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
|
||||||
|
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM=
|
||||||
|
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80=
|
||||||
|
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||||
|
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||||
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
|
||||||
|
golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
|
||||||
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
|
golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
|
||||||
|
golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
|
||||||
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
|
||||||
|
golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
|
||||||
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
|
||||||
|
golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||||
|
golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc=
|
||||||
|
golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.39.0 h1:UbZz4pLOvn600D6Oh6GGEI6VAmndrEBLv8/6BEXzyus=
|
||||||
|
golang.org/x/text v0.39.0/go.mod h1:3UwRclnC2g0TU9x8PZiyfOajCd1zaUNHF9cvqcQZ+ZM=
|
||||||
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
|
golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
|
||||||
|
golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
|
||||||
|
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=
|
||||||
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
|
||||||
|
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 h1:yQugLulqltosq0B/f8l4w9VryjV+N/5gcW0jQ3N8Qec=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478/go.mod h1:C6ADNqOxbgdUUeRTU+LCHDPB9ttAMCTff6auwCVa4uc=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 h1:RmoJA1ujG+/lRGNfUnOMfhCy5EipVMyvUE+KNbPbTlw=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
|
||||||
|
google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE=
|
||||||
|
google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA=
|
||||||
|
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
|
||||||
|
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw=
|
||||||
|
lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s=
|
||||||
|
pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk=
|
||||||
|
pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
|
||||||
1
sdk/go/.gitattributes
generated
vendored
Normal file
1
sdk/go/.gitattributes
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
* linguist-generated
|
||||||
3
sdk/go/Pulumi.yaml
generated
Normal file
3
sdk/go/Pulumi.yaml
generated
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
name: dokploy
|
||||||
|
description: A Pulumi resource provider for dokploy.
|
||||||
|
language: go
|
||||||
1650
sdk/go/dokploy/application.go
generated
Normal file
1650
sdk/go/dokploy/application.go
generated
Normal file
File diff suppressed because it is too large
Load Diff
299
sdk/go/dokploy/certificate.go
generated
Normal file
299
sdk/go/dokploy/certificate.go
generated
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Certificate struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Whether Dokploy should renew this certificate automatically.
|
||||||
|
AutoRenew pulumi.BoolOutput `pulumi:"autoRenew"`
|
||||||
|
// PEM-encoded certificate chain.
|
||||||
|
CertificateData pulumi.StringOutput `pulumi:"certificateData"`
|
||||||
|
// Path where Dokploy writes the certificate on disk.
|
||||||
|
CertificatePath pulumi.StringOutput `pulumi:"certificatePath"`
|
||||||
|
// Display name of the certificate.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey pulumi.StringOutput `pulumi:"privateKey"`
|
||||||
|
// Server this certificate is installed on.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewCertificate registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewCertificate(ctx *pulumi.Context,
|
||||||
|
name string, args *CertificateArgs, opts ...pulumi.ResourceOption) (*Certificate, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.CertificateData == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'CertificateData'")
|
||||||
|
}
|
||||||
|
if args.PrivateKey == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'PrivateKey'")
|
||||||
|
}
|
||||||
|
if args.PrivateKey != nil {
|
||||||
|
args.PrivateKey = pulumi.ToSecret(args.PrivateKey).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"privateKey",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Certificate
|
||||||
|
err := ctx.RegisterResource("dokploy:index/certificate:Certificate", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetCertificate gets an existing Certificate resource's state with the given name, ID, and optional
|
||||||
|
// state properties that are used to uniquely qualify the lookup (nil if not required).
|
||||||
|
func GetCertificate(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *CertificateState, opts ...pulumi.ResourceOption) (*Certificate, error) {
|
||||||
|
var resource Certificate
|
||||||
|
err := ctx.ReadResource("dokploy:index/certificate:Certificate", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Certificate resources.
|
||||||
|
type certificateState struct {
|
||||||
|
// Whether Dokploy should renew this certificate automatically.
|
||||||
|
AutoRenew *bool `pulumi:"autoRenew"`
|
||||||
|
// PEM-encoded certificate chain.
|
||||||
|
CertificateData *string `pulumi:"certificateData"`
|
||||||
|
// Path where Dokploy writes the certificate on disk.
|
||||||
|
CertificatePath *string `pulumi:"certificatePath"`
|
||||||
|
// Display name of the certificate.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey *string `pulumi:"privateKey"`
|
||||||
|
// Server this certificate is installed on.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CertificateState struct {
|
||||||
|
// Whether Dokploy should renew this certificate automatically.
|
||||||
|
AutoRenew pulumi.BoolPtrInput
|
||||||
|
// PEM-encoded certificate chain.
|
||||||
|
CertificateData pulumi.StringPtrInput
|
||||||
|
// Path where Dokploy writes the certificate on disk.
|
||||||
|
CertificatePath pulumi.StringPtrInput
|
||||||
|
// Display name of the certificate.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey pulumi.StringPtrInput
|
||||||
|
// Server this certificate is installed on.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (CertificateState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*certificateState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type certificateArgs struct {
|
||||||
|
// Whether Dokploy should renew this certificate automatically.
|
||||||
|
AutoRenew *bool `pulumi:"autoRenew"`
|
||||||
|
// PEM-encoded certificate chain.
|
||||||
|
CertificateData string `pulumi:"certificateData"`
|
||||||
|
// Display name of the certificate.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey string `pulumi:"privateKey"`
|
||||||
|
// Server this certificate is installed on.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Certificate resource.
|
||||||
|
type CertificateArgs struct {
|
||||||
|
// Whether Dokploy should renew this certificate automatically.
|
||||||
|
AutoRenew pulumi.BoolPtrInput
|
||||||
|
// PEM-encoded certificate chain.
|
||||||
|
CertificateData pulumi.StringInput
|
||||||
|
// Display name of the certificate.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey pulumi.StringInput
|
||||||
|
// Server this certificate is installed on.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (CertificateArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*certificateArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type CertificateInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToCertificateOutput() CertificateOutput
|
||||||
|
ToCertificateOutputWithContext(ctx context.Context) CertificateOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Certificate) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Certificate)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Certificate) ToCertificateOutput() CertificateOutput {
|
||||||
|
return i.ToCertificateOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Certificate) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(CertificateOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CertificateArrayInput is an input type that accepts CertificateArray and CertificateArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `CertificateArrayInput` via:
|
||||||
|
//
|
||||||
|
// CertificateArray{ CertificateArgs{...} }
|
||||||
|
type CertificateArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToCertificateArrayOutput() CertificateArrayOutput
|
||||||
|
ToCertificateArrayOutputWithContext(context.Context) CertificateArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type CertificateArray []CertificateInput
|
||||||
|
|
||||||
|
func (CertificateArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Certificate)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i CertificateArray) ToCertificateArrayOutput() CertificateArrayOutput {
|
||||||
|
return i.ToCertificateArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i CertificateArray) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(CertificateArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CertificateMapInput is an input type that accepts CertificateMap and CertificateMapOutput values.
|
||||||
|
// You can construct a concrete instance of `CertificateMapInput` via:
|
||||||
|
//
|
||||||
|
// CertificateMap{ "key": CertificateArgs{...} }
|
||||||
|
type CertificateMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToCertificateMapOutput() CertificateMapOutput
|
||||||
|
ToCertificateMapOutputWithContext(context.Context) CertificateMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type CertificateMap map[string]CertificateInput
|
||||||
|
|
||||||
|
func (CertificateMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i CertificateMap) ToCertificateMapOutput() CertificateMapOutput {
|
||||||
|
return i.ToCertificateMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i CertificateMap) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(CertificateMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type CertificateOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (CertificateOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Certificate)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateOutput) ToCertificateOutput() CertificateOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateOutput) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Whether Dokploy should renew this certificate automatically.
|
||||||
|
func (o CertificateOutput) AutoRenew() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Certificate) pulumi.BoolOutput { return v.AutoRenew }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PEM-encoded certificate chain.
|
||||||
|
func (o CertificateOutput) CertificateData() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.CertificateData }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path where Dokploy writes the certificate on disk.
|
||||||
|
func (o CertificateOutput) CertificatePath() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.CertificatePath }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the certificate.
|
||||||
|
func (o CertificateOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PEM-encoded private key.
|
||||||
|
func (o CertificateOutput) PrivateKey() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.PrivateKey }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Server this certificate is installed on.
|
||||||
|
func (o CertificateOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Certificate) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type CertificateArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (CertificateArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Certificate)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateArrayOutput) ToCertificateArrayOutput() CertificateArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateArrayOutput) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateArrayOutput) Index(i pulumi.IntInput) CertificateOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Certificate {
|
||||||
|
return vs[0].([]*Certificate)[vs[1].(int)]
|
||||||
|
}).(CertificateOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type CertificateMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (CertificateMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateMapOutput) ToCertificateMapOutput() CertificateMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateMapOutput) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o CertificateMapOutput) MapIndex(k pulumi.StringInput) CertificateOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Certificate {
|
||||||
|
return vs[0].(map[string]*Certificate)[vs[1].(string)]
|
||||||
|
}).(CertificateOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*CertificateInput)(nil)).Elem(), &Certificate{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*CertificateArrayInput)(nil)).Elem(), CertificateArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*CertificateMapInput)(nil)).Elem(), CertificateMap{})
|
||||||
|
pulumi.RegisterOutputType(CertificateOutput{})
|
||||||
|
pulumi.RegisterOutputType(CertificateArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(CertificateMapOutput{})
|
||||||
|
}
|
||||||
855
sdk/go/dokploy/compose.go
generated
Normal file
855
sdk/go/dokploy/compose.go
generated
Normal file
@@ -0,0 +1,855 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Compose struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
AppName pulumi.StringOutput `pulumi:"appName"`
|
||||||
|
// Deploy automatically when the configured trigger fires.
|
||||||
|
AutoDeploy pulumi.BoolOutput `pulumi:"autoDeploy"`
|
||||||
|
// Bitbucket branch to deploy.
|
||||||
|
BitbucketBranch pulumi.StringPtrOutput `pulumi:"bitbucketBranch"`
|
||||||
|
// ID of the configured Bitbucket provider connection.
|
||||||
|
BitbucketId pulumi.StringPtrOutput `pulumi:"bitbucketId"`
|
||||||
|
// Bitbucket repository owner.
|
||||||
|
BitbucketOwner pulumi.StringPtrOutput `pulumi:"bitbucketOwner"`
|
||||||
|
// Bitbucket repository name.
|
||||||
|
BitbucketRepository pulumi.StringPtrOutput `pulumi:"bitbucketRepository"`
|
||||||
|
// Bitbucket repository slug.
|
||||||
|
BitbucketRepositorySlug pulumi.StringPtrOutput `pulumi:"bitbucketRepositorySlug"`
|
||||||
|
// GitHub branch to deploy.
|
||||||
|
Branch pulumi.StringPtrOutput `pulumi:"branch"`
|
||||||
|
// Custom `docker compose` command to run.
|
||||||
|
Command pulumi.StringOutput `pulumi:"command"`
|
||||||
|
// Inline Compose file contents. Used when `sourceType` is `raw`.
|
||||||
|
ComposeFile pulumi.StringOutput `pulumi:"composeFile"`
|
||||||
|
// Path to the Compose file within the repository.
|
||||||
|
ComposePath pulumi.StringOutput `pulumi:"composePath"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ComposeStatus pulumi.StringOutput `pulumi:"composeStatus"`
|
||||||
|
// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
|
||||||
|
ComposeType pulumi.StringOutput `pulumi:"composeType"`
|
||||||
|
// RFC 3339 timestamp of when the stack was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Branch to deploy for a custom Git remote.
|
||||||
|
CustomGitBranch pulumi.StringPtrOutput `pulumi:"customGitBranch"`
|
||||||
|
// SSH key used to clone a private custom Git remote.
|
||||||
|
CustomGitSshKeyId pulumi.StringPtrOutput `pulumi:"customGitSshKeyId"`
|
||||||
|
// Git remote URL, when `sourceType` is `git`.
|
||||||
|
CustomGitUrl pulumi.StringPtrOutput `pulumi:"customGitUrl"`
|
||||||
|
// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
|
||||||
|
DeleteVolumes pulumi.BoolPtrOutput `pulumi:"deleteVolumes"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Clone Git submodules when checking out the repository.
|
||||||
|
EnableSubmodules pulumi.BoolOutput `pulumi:"enableSubmodules"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrOutput `pulumi:"env"`
|
||||||
|
// Environment this stack belongs to.
|
||||||
|
EnvironmentId pulumi.StringOutput `pulumi:"environmentId"`
|
||||||
|
// Gitea branch to deploy.
|
||||||
|
GiteaBranch pulumi.StringPtrOutput `pulumi:"giteaBranch"`
|
||||||
|
// ID of the configured Gitea provider connection.
|
||||||
|
GiteaId pulumi.StringPtrOutput `pulumi:"giteaId"`
|
||||||
|
// Gitea repository owner.
|
||||||
|
GiteaOwner pulumi.StringPtrOutput `pulumi:"giteaOwner"`
|
||||||
|
// Gitea repository name.
|
||||||
|
GiteaRepository pulumi.StringPtrOutput `pulumi:"giteaRepository"`
|
||||||
|
// ID of the configured GitHub provider connection.
|
||||||
|
GithubId pulumi.StringPtrOutput `pulumi:"githubId"`
|
||||||
|
// GitLab branch to deploy.
|
||||||
|
GitlabBranch pulumi.StringPtrOutput `pulumi:"gitlabBranch"`
|
||||||
|
// ID of the configured GitLab provider connection.
|
||||||
|
GitlabId pulumi.StringPtrOutput `pulumi:"gitlabId"`
|
||||||
|
// GitLab repository owner.
|
||||||
|
GitlabOwner pulumi.StringPtrOutput `pulumi:"gitlabOwner"`
|
||||||
|
// Full GitLab namespace path.
|
||||||
|
GitlabPathNamespace pulumi.StringPtrOutput `pulumi:"gitlabPathNamespace"`
|
||||||
|
// Numeric GitLab project ID.
|
||||||
|
GitlabProjectId pulumi.IntPtrOutput `pulumi:"gitlabProjectId"`
|
||||||
|
// GitLab repository name.
|
||||||
|
GitlabRepository pulumi.StringPtrOutput `pulumi:"gitlabRepository"`
|
||||||
|
// Run the stack on its own isolated Docker network.
|
||||||
|
IsolatedDeployment pulumi.BoolOutput `pulumi:"isolatedDeployment"`
|
||||||
|
// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
IsolatedDeploymentsVolume pulumi.BoolOutput `pulumi:"isolatedDeploymentsVolume"`
|
||||||
|
// Display name of the stack.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// GitHub repository owner.
|
||||||
|
Owner pulumi.StringPtrOutput `pulumi:"owner"`
|
||||||
|
// Append a random suffix to service and volume names.
|
||||||
|
Randomize pulumi.BoolOutput `pulumi:"randomize"`
|
||||||
|
// GitHub repository name.
|
||||||
|
Repository pulumi.StringPtrOutput `pulumi:"repository"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
// Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
|
||||||
|
SourceType pulumi.StringOutput `pulumi:"sourceType"`
|
||||||
|
// Suffix appended to generated resource names.
|
||||||
|
Suffix pulumi.StringOutput `pulumi:"suffix"`
|
||||||
|
// What triggers an automatic deployment. Valid values: `push`, `tag`.
|
||||||
|
TriggerType pulumi.StringOutput `pulumi:"triggerType"`
|
||||||
|
// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
WatchPaths pulumi.StringArrayOutput `pulumi:"watchPaths"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewCompose registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewCompose(ctx *pulumi.Context,
|
||||||
|
name string, args *ComposeArgs, opts ...pulumi.ResourceOption) (*Compose, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.EnvironmentId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'EnvironmentId'")
|
||||||
|
}
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Compose
|
||||||
|
err := ctx.RegisterResource("dokploy:index/compose:Compose", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetCompose gets an existing Compose 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 GetCompose(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *ComposeState, opts ...pulumi.ResourceOption) (*Compose, error) {
|
||||||
|
var resource Compose
|
||||||
|
err := ctx.ReadResource("dokploy:index/compose:Compose", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Compose resources.
|
||||||
|
type composeState struct {
|
||||||
|
// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Deploy automatically when the configured trigger fires.
|
||||||
|
AutoDeploy *bool `pulumi:"autoDeploy"`
|
||||||
|
// Bitbucket branch to deploy.
|
||||||
|
BitbucketBranch *string `pulumi:"bitbucketBranch"`
|
||||||
|
// ID of the configured Bitbucket provider connection.
|
||||||
|
BitbucketId *string `pulumi:"bitbucketId"`
|
||||||
|
// Bitbucket repository owner.
|
||||||
|
BitbucketOwner *string `pulumi:"bitbucketOwner"`
|
||||||
|
// Bitbucket repository name.
|
||||||
|
BitbucketRepository *string `pulumi:"bitbucketRepository"`
|
||||||
|
// Bitbucket repository slug.
|
||||||
|
BitbucketRepositorySlug *string `pulumi:"bitbucketRepositorySlug"`
|
||||||
|
// GitHub branch to deploy.
|
||||||
|
Branch *string `pulumi:"branch"`
|
||||||
|
// Custom `docker compose` command to run.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Inline Compose file contents. Used when `sourceType` is `raw`.
|
||||||
|
ComposeFile *string `pulumi:"composeFile"`
|
||||||
|
// Path to the Compose file within the repository.
|
||||||
|
ComposePath *string `pulumi:"composePath"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ComposeStatus *string `pulumi:"composeStatus"`
|
||||||
|
// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
|
||||||
|
ComposeType *string `pulumi:"composeType"`
|
||||||
|
// RFC 3339 timestamp of when the stack was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Branch to deploy for a custom Git remote.
|
||||||
|
CustomGitBranch *string `pulumi:"customGitBranch"`
|
||||||
|
// SSH key used to clone a private custom Git remote.
|
||||||
|
CustomGitSshKeyId *string `pulumi:"customGitSshKeyId"`
|
||||||
|
// Git remote URL, when `sourceType` is `git`.
|
||||||
|
CustomGitUrl *string `pulumi:"customGitUrl"`
|
||||||
|
// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
|
||||||
|
DeleteVolumes *bool `pulumi:"deleteVolumes"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Clone Git submodules when checking out the repository.
|
||||||
|
EnableSubmodules *bool `pulumi:"enableSubmodules"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this stack belongs to.
|
||||||
|
EnvironmentId *string `pulumi:"environmentId"`
|
||||||
|
// Gitea branch to deploy.
|
||||||
|
GiteaBranch *string `pulumi:"giteaBranch"`
|
||||||
|
// ID of the configured Gitea provider connection.
|
||||||
|
GiteaId *string `pulumi:"giteaId"`
|
||||||
|
// Gitea repository owner.
|
||||||
|
GiteaOwner *string `pulumi:"giteaOwner"`
|
||||||
|
// Gitea repository name.
|
||||||
|
GiteaRepository *string `pulumi:"giteaRepository"`
|
||||||
|
// ID of the configured GitHub provider connection.
|
||||||
|
GithubId *string `pulumi:"githubId"`
|
||||||
|
// GitLab branch to deploy.
|
||||||
|
GitlabBranch *string `pulumi:"gitlabBranch"`
|
||||||
|
// ID of the configured GitLab provider connection.
|
||||||
|
GitlabId *string `pulumi:"gitlabId"`
|
||||||
|
// GitLab repository owner.
|
||||||
|
GitlabOwner *string `pulumi:"gitlabOwner"`
|
||||||
|
// Full GitLab namespace path.
|
||||||
|
GitlabPathNamespace *string `pulumi:"gitlabPathNamespace"`
|
||||||
|
// Numeric GitLab project ID.
|
||||||
|
GitlabProjectId *int `pulumi:"gitlabProjectId"`
|
||||||
|
// GitLab repository name.
|
||||||
|
GitlabRepository *string `pulumi:"gitlabRepository"`
|
||||||
|
// Run the stack on its own isolated Docker network.
|
||||||
|
IsolatedDeployment *bool `pulumi:"isolatedDeployment"`
|
||||||
|
// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
IsolatedDeploymentsVolume *bool `pulumi:"isolatedDeploymentsVolume"`
|
||||||
|
// Display name of the stack.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// GitHub repository owner.
|
||||||
|
Owner *string `pulumi:"owner"`
|
||||||
|
// Append a random suffix to service and volume names.
|
||||||
|
Randomize *bool `pulumi:"randomize"`
|
||||||
|
// GitHub repository name.
|
||||||
|
Repository *string `pulumi:"repository"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
|
||||||
|
SourceType *string `pulumi:"sourceType"`
|
||||||
|
// Suffix appended to generated resource names.
|
||||||
|
Suffix *string `pulumi:"suffix"`
|
||||||
|
// What triggers an automatic deployment. Valid values: `push`, `tag`.
|
||||||
|
TriggerType *string `pulumi:"triggerType"`
|
||||||
|
// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
WatchPaths []string `pulumi:"watchPaths"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComposeState struct {
|
||||||
|
// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Deploy automatically when the configured trigger fires.
|
||||||
|
AutoDeploy pulumi.BoolPtrInput
|
||||||
|
// Bitbucket branch to deploy.
|
||||||
|
BitbucketBranch pulumi.StringPtrInput
|
||||||
|
// ID of the configured Bitbucket provider connection.
|
||||||
|
BitbucketId pulumi.StringPtrInput
|
||||||
|
// Bitbucket repository owner.
|
||||||
|
BitbucketOwner pulumi.StringPtrInput
|
||||||
|
// Bitbucket repository name.
|
||||||
|
BitbucketRepository pulumi.StringPtrInput
|
||||||
|
// Bitbucket repository slug.
|
||||||
|
BitbucketRepositorySlug pulumi.StringPtrInput
|
||||||
|
// GitHub branch to deploy.
|
||||||
|
Branch pulumi.StringPtrInput
|
||||||
|
// Custom `docker compose` command to run.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Inline Compose file contents. Used when `sourceType` is `raw`.
|
||||||
|
ComposeFile pulumi.StringPtrInput
|
||||||
|
// Path to the Compose file within the repository.
|
||||||
|
ComposePath pulumi.StringPtrInput
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ComposeStatus pulumi.StringPtrInput
|
||||||
|
// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
|
||||||
|
ComposeType pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the stack was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Branch to deploy for a custom Git remote.
|
||||||
|
CustomGitBranch pulumi.StringPtrInput
|
||||||
|
// SSH key used to clone a private custom Git remote.
|
||||||
|
CustomGitSshKeyId pulumi.StringPtrInput
|
||||||
|
// Git remote URL, when `sourceType` is `git`.
|
||||||
|
CustomGitUrl pulumi.StringPtrInput
|
||||||
|
// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
|
||||||
|
DeleteVolumes pulumi.BoolPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Clone Git submodules when checking out the repository.
|
||||||
|
EnableSubmodules pulumi.BoolPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this stack belongs to.
|
||||||
|
EnvironmentId pulumi.StringPtrInput
|
||||||
|
// Gitea branch to deploy.
|
||||||
|
GiteaBranch pulumi.StringPtrInput
|
||||||
|
// ID of the configured Gitea provider connection.
|
||||||
|
GiteaId pulumi.StringPtrInput
|
||||||
|
// Gitea repository owner.
|
||||||
|
GiteaOwner pulumi.StringPtrInput
|
||||||
|
// Gitea repository name.
|
||||||
|
GiteaRepository pulumi.StringPtrInput
|
||||||
|
// ID of the configured GitHub provider connection.
|
||||||
|
GithubId pulumi.StringPtrInput
|
||||||
|
// GitLab branch to deploy.
|
||||||
|
GitlabBranch pulumi.StringPtrInput
|
||||||
|
// ID of the configured GitLab provider connection.
|
||||||
|
GitlabId pulumi.StringPtrInput
|
||||||
|
// GitLab repository owner.
|
||||||
|
GitlabOwner pulumi.StringPtrInput
|
||||||
|
// Full GitLab namespace path.
|
||||||
|
GitlabPathNamespace pulumi.StringPtrInput
|
||||||
|
// Numeric GitLab project ID.
|
||||||
|
GitlabProjectId pulumi.IntPtrInput
|
||||||
|
// GitLab repository name.
|
||||||
|
GitlabRepository pulumi.StringPtrInput
|
||||||
|
// Run the stack on its own isolated Docker network.
|
||||||
|
IsolatedDeployment pulumi.BoolPtrInput
|
||||||
|
// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
IsolatedDeploymentsVolume pulumi.BoolPtrInput
|
||||||
|
// Display name of the stack.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// GitHub repository owner.
|
||||||
|
Owner pulumi.StringPtrInput
|
||||||
|
// Append a random suffix to service and volume names.
|
||||||
|
Randomize pulumi.BoolPtrInput
|
||||||
|
// GitHub repository name.
|
||||||
|
Repository pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
|
||||||
|
SourceType pulumi.StringPtrInput
|
||||||
|
// Suffix appended to generated resource names.
|
||||||
|
Suffix pulumi.StringPtrInput
|
||||||
|
// What triggers an automatic deployment. Valid values: `push`, `tag`.
|
||||||
|
TriggerType pulumi.StringPtrInput
|
||||||
|
// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
WatchPaths pulumi.StringArrayInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ComposeState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*composeState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type composeArgs struct {
|
||||||
|
// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Deploy automatically when the configured trigger fires.
|
||||||
|
AutoDeploy *bool `pulumi:"autoDeploy"`
|
||||||
|
// Bitbucket branch to deploy.
|
||||||
|
BitbucketBranch *string `pulumi:"bitbucketBranch"`
|
||||||
|
// ID of the configured Bitbucket provider connection.
|
||||||
|
BitbucketId *string `pulumi:"bitbucketId"`
|
||||||
|
// Bitbucket repository owner.
|
||||||
|
BitbucketOwner *string `pulumi:"bitbucketOwner"`
|
||||||
|
// Bitbucket repository name.
|
||||||
|
BitbucketRepository *string `pulumi:"bitbucketRepository"`
|
||||||
|
// Bitbucket repository slug.
|
||||||
|
BitbucketRepositorySlug *string `pulumi:"bitbucketRepositorySlug"`
|
||||||
|
// GitHub branch to deploy.
|
||||||
|
Branch *string `pulumi:"branch"`
|
||||||
|
// Custom `docker compose` command to run.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Inline Compose file contents. Used when `sourceType` is `raw`.
|
||||||
|
ComposeFile *string `pulumi:"composeFile"`
|
||||||
|
// Path to the Compose file within the repository.
|
||||||
|
ComposePath *string `pulumi:"composePath"`
|
||||||
|
// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
|
||||||
|
ComposeType *string `pulumi:"composeType"`
|
||||||
|
// Branch to deploy for a custom Git remote.
|
||||||
|
CustomGitBranch *string `pulumi:"customGitBranch"`
|
||||||
|
// SSH key used to clone a private custom Git remote.
|
||||||
|
CustomGitSshKeyId *string `pulumi:"customGitSshKeyId"`
|
||||||
|
// Git remote URL, when `sourceType` is `git`.
|
||||||
|
CustomGitUrl *string `pulumi:"customGitUrl"`
|
||||||
|
// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
|
||||||
|
DeleteVolumes *bool `pulumi:"deleteVolumes"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Clone Git submodules when checking out the repository.
|
||||||
|
EnableSubmodules *bool `pulumi:"enableSubmodules"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this stack belongs to.
|
||||||
|
EnvironmentId string `pulumi:"environmentId"`
|
||||||
|
// Gitea branch to deploy.
|
||||||
|
GiteaBranch *string `pulumi:"giteaBranch"`
|
||||||
|
// ID of the configured Gitea provider connection.
|
||||||
|
GiteaId *string `pulumi:"giteaId"`
|
||||||
|
// Gitea repository owner.
|
||||||
|
GiteaOwner *string `pulumi:"giteaOwner"`
|
||||||
|
// Gitea repository name.
|
||||||
|
GiteaRepository *string `pulumi:"giteaRepository"`
|
||||||
|
// ID of the configured GitHub provider connection.
|
||||||
|
GithubId *string `pulumi:"githubId"`
|
||||||
|
// GitLab branch to deploy.
|
||||||
|
GitlabBranch *string `pulumi:"gitlabBranch"`
|
||||||
|
// ID of the configured GitLab provider connection.
|
||||||
|
GitlabId *string `pulumi:"gitlabId"`
|
||||||
|
// GitLab repository owner.
|
||||||
|
GitlabOwner *string `pulumi:"gitlabOwner"`
|
||||||
|
// Full GitLab namespace path.
|
||||||
|
GitlabPathNamespace *string `pulumi:"gitlabPathNamespace"`
|
||||||
|
// Numeric GitLab project ID.
|
||||||
|
GitlabProjectId *int `pulumi:"gitlabProjectId"`
|
||||||
|
// GitLab repository name.
|
||||||
|
GitlabRepository *string `pulumi:"gitlabRepository"`
|
||||||
|
// Run the stack on its own isolated Docker network.
|
||||||
|
IsolatedDeployment *bool `pulumi:"isolatedDeployment"`
|
||||||
|
// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
IsolatedDeploymentsVolume *bool `pulumi:"isolatedDeploymentsVolume"`
|
||||||
|
// Display name of the stack.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// GitHub repository owner.
|
||||||
|
Owner *string `pulumi:"owner"`
|
||||||
|
// Append a random suffix to service and volume names.
|
||||||
|
Randomize *bool `pulumi:"randomize"`
|
||||||
|
// GitHub repository name.
|
||||||
|
Repository *string `pulumi:"repository"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
|
||||||
|
SourceType *string `pulumi:"sourceType"`
|
||||||
|
// Suffix appended to generated resource names.
|
||||||
|
Suffix *string `pulumi:"suffix"`
|
||||||
|
// What triggers an automatic deployment. Valid values: `push`, `tag`.
|
||||||
|
TriggerType *string `pulumi:"triggerType"`
|
||||||
|
// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
WatchPaths []string `pulumi:"watchPaths"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Compose resource.
|
||||||
|
type ComposeArgs struct {
|
||||||
|
// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Deploy automatically when the configured trigger fires.
|
||||||
|
AutoDeploy pulumi.BoolPtrInput
|
||||||
|
// Bitbucket branch to deploy.
|
||||||
|
BitbucketBranch pulumi.StringPtrInput
|
||||||
|
// ID of the configured Bitbucket provider connection.
|
||||||
|
BitbucketId pulumi.StringPtrInput
|
||||||
|
// Bitbucket repository owner.
|
||||||
|
BitbucketOwner pulumi.StringPtrInput
|
||||||
|
// Bitbucket repository name.
|
||||||
|
BitbucketRepository pulumi.StringPtrInput
|
||||||
|
// Bitbucket repository slug.
|
||||||
|
BitbucketRepositorySlug pulumi.StringPtrInput
|
||||||
|
// GitHub branch to deploy.
|
||||||
|
Branch pulumi.StringPtrInput
|
||||||
|
// Custom `docker compose` command to run.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Inline Compose file contents. Used when `sourceType` is `raw`.
|
||||||
|
ComposeFile pulumi.StringPtrInput
|
||||||
|
// Path to the Compose file within the repository.
|
||||||
|
ComposePath pulumi.StringPtrInput
|
||||||
|
// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
|
||||||
|
ComposeType pulumi.StringPtrInput
|
||||||
|
// Branch to deploy for a custom Git remote.
|
||||||
|
CustomGitBranch pulumi.StringPtrInput
|
||||||
|
// SSH key used to clone a private custom Git remote.
|
||||||
|
CustomGitSshKeyId pulumi.StringPtrInput
|
||||||
|
// Git remote URL, when `sourceType` is `git`.
|
||||||
|
CustomGitUrl pulumi.StringPtrInput
|
||||||
|
// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
|
||||||
|
DeleteVolumes pulumi.BoolPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Clone Git submodules when checking out the repository.
|
||||||
|
EnableSubmodules pulumi.BoolPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this stack belongs to.
|
||||||
|
EnvironmentId pulumi.StringInput
|
||||||
|
// Gitea branch to deploy.
|
||||||
|
GiteaBranch pulumi.StringPtrInput
|
||||||
|
// ID of the configured Gitea provider connection.
|
||||||
|
GiteaId pulumi.StringPtrInput
|
||||||
|
// Gitea repository owner.
|
||||||
|
GiteaOwner pulumi.StringPtrInput
|
||||||
|
// Gitea repository name.
|
||||||
|
GiteaRepository pulumi.StringPtrInput
|
||||||
|
// ID of the configured GitHub provider connection.
|
||||||
|
GithubId pulumi.StringPtrInput
|
||||||
|
// GitLab branch to deploy.
|
||||||
|
GitlabBranch pulumi.StringPtrInput
|
||||||
|
// ID of the configured GitLab provider connection.
|
||||||
|
GitlabId pulumi.StringPtrInput
|
||||||
|
// GitLab repository owner.
|
||||||
|
GitlabOwner pulumi.StringPtrInput
|
||||||
|
// Full GitLab namespace path.
|
||||||
|
GitlabPathNamespace pulumi.StringPtrInput
|
||||||
|
// Numeric GitLab project ID.
|
||||||
|
GitlabProjectId pulumi.IntPtrInput
|
||||||
|
// GitLab repository name.
|
||||||
|
GitlabRepository pulumi.StringPtrInput
|
||||||
|
// Run the stack on its own isolated Docker network.
|
||||||
|
IsolatedDeployment pulumi.BoolPtrInput
|
||||||
|
// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
IsolatedDeploymentsVolume pulumi.BoolPtrInput
|
||||||
|
// Display name of the stack.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// GitHub repository owner.
|
||||||
|
Owner pulumi.StringPtrInput
|
||||||
|
// Append a random suffix to service and volume names.
|
||||||
|
Randomize pulumi.BoolPtrInput
|
||||||
|
// GitHub repository name.
|
||||||
|
Repository pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
|
||||||
|
SourceType pulumi.StringPtrInput
|
||||||
|
// Suffix appended to generated resource names.
|
||||||
|
Suffix pulumi.StringPtrInput
|
||||||
|
// What triggers an automatic deployment. Valid values: `push`, `tag`.
|
||||||
|
TriggerType pulumi.StringPtrInput
|
||||||
|
// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
WatchPaths pulumi.StringArrayInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ComposeArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*composeArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComposeInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToComposeOutput() ComposeOutput
|
||||||
|
ToComposeOutputWithContext(ctx context.Context) ComposeOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Compose) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Compose)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Compose) ToComposeOutput() ComposeOutput {
|
||||||
|
return i.ToComposeOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Compose) ToComposeOutputWithContext(ctx context.Context) ComposeOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(ComposeOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ComposeArrayInput is an input type that accepts ComposeArray and ComposeArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `ComposeArrayInput` via:
|
||||||
|
//
|
||||||
|
// ComposeArray{ ComposeArgs{...} }
|
||||||
|
type ComposeArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToComposeArrayOutput() ComposeArrayOutput
|
||||||
|
ToComposeArrayOutputWithContext(context.Context) ComposeArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComposeArray []ComposeInput
|
||||||
|
|
||||||
|
func (ComposeArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Compose)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ComposeArray) ToComposeArrayOutput() ComposeArrayOutput {
|
||||||
|
return i.ToComposeArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ComposeArray) ToComposeArrayOutputWithContext(ctx context.Context) ComposeArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(ComposeArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ComposeMapInput is an input type that accepts ComposeMap and ComposeMapOutput values.
|
||||||
|
// You can construct a concrete instance of `ComposeMapInput` via:
|
||||||
|
//
|
||||||
|
// ComposeMap{ "key": ComposeArgs{...} }
|
||||||
|
type ComposeMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToComposeMapOutput() ComposeMapOutput
|
||||||
|
ToComposeMapOutputWithContext(context.Context) ComposeMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComposeMap map[string]ComposeInput
|
||||||
|
|
||||||
|
func (ComposeMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Compose)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ComposeMap) ToComposeMapOutput() ComposeMapOutput {
|
||||||
|
return i.ToComposeMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ComposeMap) ToComposeMapOutputWithContext(ctx context.Context) ComposeMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(ComposeMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComposeOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ComposeOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Compose)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeOutput) ToComposeOutput() ComposeOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeOutput) ToComposeOutputWithContext(ctx context.Context) ComposeOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unique Docker stack name. Generated by Dokploy when omitted. Changing it forces a new stack.
|
||||||
|
func (o ComposeOutput) AppName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deploy automatically when the configured trigger fires.
|
||||||
|
func (o ComposeOutput) AutoDeploy() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.BoolOutput { return v.AutoDeploy }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bitbucket branch to deploy.
|
||||||
|
func (o ComposeOutput) BitbucketBranch() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.BitbucketBranch }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID of the configured Bitbucket provider connection.
|
||||||
|
func (o ComposeOutput) BitbucketId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.BitbucketId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bitbucket repository owner.
|
||||||
|
func (o ComposeOutput) BitbucketOwner() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.BitbucketOwner }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bitbucket repository name.
|
||||||
|
func (o ComposeOutput) BitbucketRepository() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.BitbucketRepository }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bitbucket repository slug.
|
||||||
|
func (o ComposeOutput) BitbucketRepositorySlug() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.BitbucketRepositorySlug }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitHub branch to deploy.
|
||||||
|
func (o ComposeOutput) Branch() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.Branch }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Custom `docker compose` command to run.
|
||||||
|
func (o ComposeOutput) Command() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.Command }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inline Compose file contents. Used when `sourceType` is `raw`.
|
||||||
|
func (o ComposeOutput) ComposeFile() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.ComposeFile }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path to the Compose file within the repository.
|
||||||
|
func (o ComposeOutput) ComposePath() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.ComposePath }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
func (o ComposeOutput) ComposeStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.ComposeStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Whether to run the stack with Docker Compose or Docker Swarm. Valid values: `docker-compose`, `stack`.
|
||||||
|
func (o ComposeOutput) ComposeType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.ComposeType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the stack was created.
|
||||||
|
func (o ComposeOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Branch to deploy for a custom Git remote.
|
||||||
|
func (o ComposeOutput) CustomGitBranch() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.CustomGitBranch }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SSH key used to clone a private custom Git remote.
|
||||||
|
func (o ComposeOutput) CustomGitSshKeyId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.CustomGitSshKeyId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Git remote URL, when `sourceType` is `git`.
|
||||||
|
func (o ComposeOutput) CustomGitUrl() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.CustomGitUrl }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Whether to delete the stack's Docker volumes when this resource is destroyed. Defaults to `false`, which preserves the data.
|
||||||
|
func (o ComposeOutput) DeleteVolumes() pulumi.BoolPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.BoolPtrOutput { return v.DeleteVolumes }).(pulumi.BoolPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o ComposeOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clone Git submodules when checking out the repository.
|
||||||
|
func (o ComposeOutput) EnableSubmodules() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.BoolOutput { return v.EnableSubmodules }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
func (o ComposeOutput) Env() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.Env }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment this stack belongs to.
|
||||||
|
func (o ComposeOutput) EnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gitea branch to deploy.
|
||||||
|
func (o ComposeOutput) GiteaBranch() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GiteaBranch }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID of the configured Gitea provider connection.
|
||||||
|
func (o ComposeOutput) GiteaId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GiteaId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gitea repository owner.
|
||||||
|
func (o ComposeOutput) GiteaOwner() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GiteaOwner }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gitea repository name.
|
||||||
|
func (o ComposeOutput) GiteaRepository() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GiteaRepository }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID of the configured GitHub provider connection.
|
||||||
|
func (o ComposeOutput) GithubId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GithubId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitLab branch to deploy.
|
||||||
|
func (o ComposeOutput) GitlabBranch() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GitlabBranch }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID of the configured GitLab provider connection.
|
||||||
|
func (o ComposeOutput) GitlabId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GitlabId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitLab repository owner.
|
||||||
|
func (o ComposeOutput) GitlabOwner() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GitlabOwner }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Full GitLab namespace path.
|
||||||
|
func (o ComposeOutput) GitlabPathNamespace() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GitlabPathNamespace }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Numeric GitLab project ID.
|
||||||
|
func (o ComposeOutput) GitlabProjectId() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.IntPtrOutput { return v.GitlabProjectId }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitLab repository name.
|
||||||
|
func (o ComposeOutput) GitlabRepository() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.GitlabRepository }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run the stack on its own isolated Docker network.
|
||||||
|
func (o ComposeOutput) IsolatedDeployment() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.BoolOutput { return v.IsolatedDeployment }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prefix volume names for isolated deployments. Retained for backwards compatibility.
|
||||||
|
func (o ComposeOutput) IsolatedDeploymentsVolume() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.BoolOutput { return v.IsolatedDeploymentsVolume }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the stack.
|
||||||
|
func (o ComposeOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitHub repository owner.
|
||||||
|
func (o ComposeOutput) Owner() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.Owner }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Append a random suffix to service and volume names.
|
||||||
|
func (o ComposeOutput) Randomize() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.BoolOutput { return v.Randomize }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitHub repository name.
|
||||||
|
func (o ComposeOutput) Repository() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.Repository }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
func (o ComposeOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Where the Compose file comes from. Valid values: `git`, `github`, `gitlab`, `bitbucket`, `gitea`, `raw`.
|
||||||
|
func (o ComposeOutput) SourceType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.SourceType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Suffix appended to generated resource names.
|
||||||
|
func (o ComposeOutput) Suffix() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.Suffix }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// What triggers an automatic deployment. Valid values: `push`, `tag`.
|
||||||
|
func (o ComposeOutput) TriggerType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringOutput { return v.TriggerType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Glob patterns that limit which changed paths trigger an automatic deployment.
|
||||||
|
func (o ComposeOutput) WatchPaths() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Compose) pulumi.StringArrayOutput { return v.WatchPaths }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComposeArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ComposeArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Compose)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeArrayOutput) ToComposeArrayOutput() ComposeArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeArrayOutput) ToComposeArrayOutputWithContext(ctx context.Context) ComposeArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeArrayOutput) Index(i pulumi.IntInput) ComposeOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Compose {
|
||||||
|
return vs[0].([]*Compose)[vs[1].(int)]
|
||||||
|
}).(ComposeOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ComposeMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ComposeMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Compose)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeMapOutput) ToComposeMapOutput() ComposeMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeMapOutput) ToComposeMapOutputWithContext(ctx context.Context) ComposeMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ComposeMapOutput) MapIndex(k pulumi.StringInput) ComposeOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Compose {
|
||||||
|
return vs[0].(map[string]*Compose)[vs[1].(string)]
|
||||||
|
}).(ComposeOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*ComposeInput)(nil)).Elem(), &Compose{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*ComposeArrayInput)(nil)).Elem(), ComposeArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*ComposeMapInput)(nil)).Elem(), ComposeMap{})
|
||||||
|
pulumi.RegisterOutputType(ComposeOutput{})
|
||||||
|
pulumi.RegisterOutputType(ComposeArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(ComposeMapOutput{})
|
||||||
|
}
|
||||||
56
sdk/go/dokploy/config/config.go
generated
Normal file
56
sdk/go/dokploy/config/config.go
generated
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
// 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 config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = internal.GetEnvOrDefault
|
||||||
|
|
||||||
|
// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
func GetApiKey(ctx *pulumi.Context) string {
|
||||||
|
v, err := config.Try(ctx, "dokploy:apiKey")
|
||||||
|
if err == nil {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
var value string
|
||||||
|
if d := internal.GetEnvOrDefault(nil, nil, "DOKPLOY_API_KEY"); d != nil {
|
||||||
|
value = d.(string)
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
func GetHost(ctx *pulumi.Context) string {
|
||||||
|
v, err := config.Try(ctx, "dokploy:host")
|
||||||
|
if err == nil {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
var value string
|
||||||
|
if d := internal.GetEnvOrDefault(nil, nil, "DOKPLOY_HOST"); d != nil {
|
||||||
|
value = d.(string)
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
|
||||||
|
func GetInsecureSkipVerify(ctx *pulumi.Context) bool {
|
||||||
|
return config.GetBool(ctx, "dokploy:insecureSkipVerify")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
|
||||||
|
func GetTimeoutSeconds(ctx *pulumi.Context) int {
|
||||||
|
v, err := config.TryInt(ctx, "dokploy:timeoutSeconds")
|
||||||
|
if err == nil {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
var value int
|
||||||
|
if d := internal.GetEnvOrDefault(nil, internal.ParseEnvInt, "DOKPLOY_TIMEOUT_SECONDS"); d != nil {
|
||||||
|
value = d.(int)
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
368
sdk/go/dokploy/destination.go
generated
Normal file
368
sdk/go/dokploy/destination.go
generated
Normal file
@@ -0,0 +1,368 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Destination struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// S3 access key ID.
|
||||||
|
AccessKey pulumi.StringOutput `pulumi:"accessKey"`
|
||||||
|
// Extra flags passed to the underlying `rclone` invocation.
|
||||||
|
AdditionalFlags pulumi.StringArrayOutput `pulumi:"additionalFlags"`
|
||||||
|
// Bucket name.
|
||||||
|
Bucket pulumi.StringOutput `pulumi:"bucket"`
|
||||||
|
// Timestamp of when the destination was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// S3 endpoint URL.
|
||||||
|
Endpoint pulumi.StringOutput `pulumi:"endpoint"`
|
||||||
|
// Display name of the destination.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// Provider label, for example `s3` or `cloudflare`. Named `providerName` because `provider` is reserved by Terraform.
|
||||||
|
ProviderName pulumi.StringPtrOutput `pulumi:"providerName"`
|
||||||
|
// Bucket region, for example `us-east-1`.
|
||||||
|
Region pulumi.StringOutput `pulumi:"region"`
|
||||||
|
// S3 secret access key.
|
||||||
|
SecretAccessKey pulumi.StringOutput `pulumi:"secretAccessKey"`
|
||||||
|
// Server this destination is scoped to.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewDestination registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewDestination(ctx *pulumi.Context,
|
||||||
|
name string, args *DestinationArgs, opts ...pulumi.ResourceOption) (*Destination, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.AccessKey == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'AccessKey'")
|
||||||
|
}
|
||||||
|
if args.Bucket == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Bucket'")
|
||||||
|
}
|
||||||
|
if args.Endpoint == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Endpoint'")
|
||||||
|
}
|
||||||
|
if args.Region == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Region'")
|
||||||
|
}
|
||||||
|
if args.SecretAccessKey == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'SecretAccessKey'")
|
||||||
|
}
|
||||||
|
if args.SecretAccessKey != nil {
|
||||||
|
args.SecretAccessKey = pulumi.ToSecret(args.SecretAccessKey).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"secretAccessKey",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Destination
|
||||||
|
err := ctx.RegisterResource("dokploy:index/destination:Destination", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDestination gets an existing Destination 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 GetDestination(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *DestinationState, opts ...pulumi.ResourceOption) (*Destination, error) {
|
||||||
|
var resource Destination
|
||||||
|
err := ctx.ReadResource("dokploy:index/destination:Destination", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Destination resources.
|
||||||
|
type destinationState struct {
|
||||||
|
// S3 access key ID.
|
||||||
|
AccessKey *string `pulumi:"accessKey"`
|
||||||
|
// Extra flags passed to the underlying `rclone` invocation.
|
||||||
|
AdditionalFlags []string `pulumi:"additionalFlags"`
|
||||||
|
// Bucket name.
|
||||||
|
Bucket *string `pulumi:"bucket"`
|
||||||
|
// Timestamp of when the destination was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// S3 endpoint URL.
|
||||||
|
Endpoint *string `pulumi:"endpoint"`
|
||||||
|
// Display name of the destination.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// Provider label, for example `s3` or `cloudflare`. Named `providerName` because `provider` is reserved by Terraform.
|
||||||
|
ProviderName *string `pulumi:"providerName"`
|
||||||
|
// Bucket region, for example `us-east-1`.
|
||||||
|
Region *string `pulumi:"region"`
|
||||||
|
// S3 secret access key.
|
||||||
|
SecretAccessKey *string `pulumi:"secretAccessKey"`
|
||||||
|
// Server this destination is scoped to.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type DestinationState struct {
|
||||||
|
// S3 access key ID.
|
||||||
|
AccessKey pulumi.StringPtrInput
|
||||||
|
// Extra flags passed to the underlying `rclone` invocation.
|
||||||
|
AdditionalFlags pulumi.StringArrayInput
|
||||||
|
// Bucket name.
|
||||||
|
Bucket pulumi.StringPtrInput
|
||||||
|
// Timestamp of when the destination was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// S3 endpoint URL.
|
||||||
|
Endpoint pulumi.StringPtrInput
|
||||||
|
// Display name of the destination.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// Provider label, for example `s3` or `cloudflare`. Named `providerName` because `provider` is reserved by Terraform.
|
||||||
|
ProviderName pulumi.StringPtrInput
|
||||||
|
// Bucket region, for example `us-east-1`.
|
||||||
|
Region pulumi.StringPtrInput
|
||||||
|
// S3 secret access key.
|
||||||
|
SecretAccessKey pulumi.StringPtrInput
|
||||||
|
// Server this destination is scoped to.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (DestinationState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*destinationState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type destinationArgs struct {
|
||||||
|
// S3 access key ID.
|
||||||
|
AccessKey string `pulumi:"accessKey"`
|
||||||
|
// Extra flags passed to the underlying `rclone` invocation.
|
||||||
|
AdditionalFlags []string `pulumi:"additionalFlags"`
|
||||||
|
// Bucket name.
|
||||||
|
Bucket string `pulumi:"bucket"`
|
||||||
|
// S3 endpoint URL.
|
||||||
|
Endpoint string `pulumi:"endpoint"`
|
||||||
|
// Display name of the destination.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// Provider label, for example `s3` or `cloudflare`. Named `providerName` because `provider` is reserved by Terraform.
|
||||||
|
ProviderName *string `pulumi:"providerName"`
|
||||||
|
// Bucket region, for example `us-east-1`.
|
||||||
|
Region string `pulumi:"region"`
|
||||||
|
// S3 secret access key.
|
||||||
|
SecretAccessKey string `pulumi:"secretAccessKey"`
|
||||||
|
// Server this destination is scoped to.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Destination resource.
|
||||||
|
type DestinationArgs struct {
|
||||||
|
// S3 access key ID.
|
||||||
|
AccessKey pulumi.StringInput
|
||||||
|
// Extra flags passed to the underlying `rclone` invocation.
|
||||||
|
AdditionalFlags pulumi.StringArrayInput
|
||||||
|
// Bucket name.
|
||||||
|
Bucket pulumi.StringInput
|
||||||
|
// S3 endpoint URL.
|
||||||
|
Endpoint pulumi.StringInput
|
||||||
|
// Display name of the destination.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// Provider label, for example `s3` or `cloudflare`. Named `providerName` because `provider` is reserved by Terraform.
|
||||||
|
ProviderName pulumi.StringPtrInput
|
||||||
|
// Bucket region, for example `us-east-1`.
|
||||||
|
Region pulumi.StringInput
|
||||||
|
// S3 secret access key.
|
||||||
|
SecretAccessKey pulumi.StringInput
|
||||||
|
// Server this destination is scoped to.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (DestinationArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*destinationArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type DestinationInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToDestinationOutput() DestinationOutput
|
||||||
|
ToDestinationOutputWithContext(ctx context.Context) DestinationOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Destination) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Destination)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Destination) ToDestinationOutput() DestinationOutput {
|
||||||
|
return i.ToDestinationOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Destination) ToDestinationOutputWithContext(ctx context.Context) DestinationOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(DestinationOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DestinationArrayInput is an input type that accepts DestinationArray and DestinationArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `DestinationArrayInput` via:
|
||||||
|
//
|
||||||
|
// DestinationArray{ DestinationArgs{...} }
|
||||||
|
type DestinationArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToDestinationArrayOutput() DestinationArrayOutput
|
||||||
|
ToDestinationArrayOutputWithContext(context.Context) DestinationArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type DestinationArray []DestinationInput
|
||||||
|
|
||||||
|
func (DestinationArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Destination)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DestinationArray) ToDestinationArrayOutput() DestinationArrayOutput {
|
||||||
|
return i.ToDestinationArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DestinationArray) ToDestinationArrayOutputWithContext(ctx context.Context) DestinationArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(DestinationArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DestinationMapInput is an input type that accepts DestinationMap and DestinationMapOutput values.
|
||||||
|
// You can construct a concrete instance of `DestinationMapInput` via:
|
||||||
|
//
|
||||||
|
// DestinationMap{ "key": DestinationArgs{...} }
|
||||||
|
type DestinationMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToDestinationMapOutput() DestinationMapOutput
|
||||||
|
ToDestinationMapOutputWithContext(context.Context) DestinationMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type DestinationMap map[string]DestinationInput
|
||||||
|
|
||||||
|
func (DestinationMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Destination)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DestinationMap) ToDestinationMapOutput() DestinationMapOutput {
|
||||||
|
return i.ToDestinationMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DestinationMap) ToDestinationMapOutputWithContext(ctx context.Context) DestinationMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(DestinationMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type DestinationOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (DestinationOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Destination)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationOutput) ToDestinationOutput() DestinationOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationOutput) ToDestinationOutputWithContext(ctx context.Context) DestinationOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// S3 access key ID.
|
||||||
|
func (o DestinationOutput) AccessKey() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringOutput { return v.AccessKey }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extra flags passed to the underlying `rclone` invocation.
|
||||||
|
func (o DestinationOutput) AdditionalFlags() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringArrayOutput { return v.AdditionalFlags }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bucket name.
|
||||||
|
func (o DestinationOutput) Bucket() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Timestamp of when the destination was created.
|
||||||
|
func (o DestinationOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// S3 endpoint URL.
|
||||||
|
func (o DestinationOutput) Endpoint() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the destination.
|
||||||
|
func (o DestinationOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Provider label, for example `s3` or `cloudflare`. Named `providerName` because `provider` is reserved by Terraform.
|
||||||
|
func (o DestinationOutput) ProviderName() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringPtrOutput { return v.ProviderName }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bucket region, for example `us-east-1`.
|
||||||
|
func (o DestinationOutput) Region() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// S3 secret access key.
|
||||||
|
func (o DestinationOutput) SecretAccessKey() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringOutput { return v.SecretAccessKey }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Server this destination is scoped to.
|
||||||
|
func (o DestinationOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Destination) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type DestinationArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (DestinationArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Destination)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationArrayOutput) ToDestinationArrayOutput() DestinationArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationArrayOutput) ToDestinationArrayOutputWithContext(ctx context.Context) DestinationArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationArrayOutput) Index(i pulumi.IntInput) DestinationOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Destination {
|
||||||
|
return vs[0].([]*Destination)[vs[1].(int)]
|
||||||
|
}).(DestinationOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type DestinationMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (DestinationMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Destination)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationMapOutput) ToDestinationMapOutput() DestinationMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationMapOutput) ToDestinationMapOutputWithContext(ctx context.Context) DestinationMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DestinationMapOutput) MapIndex(k pulumi.StringInput) DestinationOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Destination {
|
||||||
|
return vs[0].(map[string]*Destination)[vs[1].(string)]
|
||||||
|
}).(DestinationOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*DestinationInput)(nil)).Elem(), &Destination{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*DestinationArrayInput)(nil)).Elem(), DestinationArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*DestinationMapInput)(nil)).Elem(), DestinationMap{})
|
||||||
|
pulumi.RegisterOutputType(DestinationOutput{})
|
||||||
|
pulumi.RegisterOutputType(DestinationArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(DestinationMapOutput{})
|
||||||
|
}
|
||||||
2
sdk/go/dokploy/doc.go
generated
Normal file
2
sdk/go/dokploy/doc.go
generated
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
// A Pulumi package for creating and managing Dokploy resources
|
||||||
|
package dokploy
|
||||||
454
sdk/go/dokploy/domain.go
generated
Normal file
454
sdk/go/dokploy/domain.go
generated
Normal file
@@ -0,0 +1,454 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Domain struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Application this domain routes to.
|
||||||
|
ApplicationId pulumi.StringPtrOutput `pulumi:"applicationId"`
|
||||||
|
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
|
||||||
|
CertificateType pulumi.StringOutput `pulumi:"certificateType"`
|
||||||
|
// Compose stack this domain routes to.
|
||||||
|
ComposeId pulumi.StringPtrOutput `pulumi:"composeId"`
|
||||||
|
// RFC 3339 timestamp of when the domain was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Traefik certificate resolver name, when `certificateType` is `custom`.
|
||||||
|
CustomCertResolver pulumi.StringPtrOutput `pulumi:"customCertResolver"`
|
||||||
|
// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
CustomEntrypoint pulumi.StringPtrOutput `pulumi:"customEntrypoint"`
|
||||||
|
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
|
||||||
|
DomainType pulumi.StringOutput `pulumi:"domainType"`
|
||||||
|
// Protect this domain with Dokploy's forward auth.
|
||||||
|
ForwardAuthEnabled pulumi.BoolOutput `pulumi:"forwardAuthEnabled"`
|
||||||
|
// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
Host pulumi.StringOutput `pulumi:"host"`
|
||||||
|
// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
Https pulumi.BoolOutput `pulumi:"https"`
|
||||||
|
// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
InternalPath pulumi.StringOutput `pulumi:"internalPath"`
|
||||||
|
// Names of Traefik middlewares to apply.
|
||||||
|
Middlewares pulumi.StringArrayOutput `pulumi:"middlewares"`
|
||||||
|
// Path prefix this domain routes, defaults to `/`.
|
||||||
|
Path pulumi.StringOutput `pulumi:"path"`
|
||||||
|
// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
Port pulumi.IntOutput `pulumi:"port"`
|
||||||
|
// Preview deployment this domain routes to.
|
||||||
|
PreviewDeploymentId pulumi.StringPtrOutput `pulumi:"previewDeploymentId"`
|
||||||
|
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
|
||||||
|
ServiceName pulumi.StringPtrOutput `pulumi:"serviceName"`
|
||||||
|
// Strip `path` from the request before forwarding it.
|
||||||
|
StripPath pulumi.BoolOutput `pulumi:"stripPath"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewDomain registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewDomain(ctx *pulumi.Context,
|
||||||
|
name string, args *DomainArgs, opts ...pulumi.ResourceOption) (*Domain, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.Host == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Host'")
|
||||||
|
}
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Domain
|
||||||
|
err := ctx.RegisterResource("dokploy:index/domain:Domain", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDomain gets an existing Domain 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 GetDomain(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *DomainState, opts ...pulumi.ResourceOption) (*Domain, error) {
|
||||||
|
var resource Domain
|
||||||
|
err := ctx.ReadResource("dokploy:index/domain:Domain", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Domain resources.
|
||||||
|
type domainState struct {
|
||||||
|
// Application this domain routes to.
|
||||||
|
ApplicationId *string `pulumi:"applicationId"`
|
||||||
|
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
|
||||||
|
CertificateType *string `pulumi:"certificateType"`
|
||||||
|
// Compose stack this domain routes to.
|
||||||
|
ComposeId *string `pulumi:"composeId"`
|
||||||
|
// RFC 3339 timestamp of when the domain was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Traefik certificate resolver name, when `certificateType` is `custom`.
|
||||||
|
CustomCertResolver *string `pulumi:"customCertResolver"`
|
||||||
|
// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
CustomEntrypoint *string `pulumi:"customEntrypoint"`
|
||||||
|
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
|
||||||
|
DomainType *string `pulumi:"domainType"`
|
||||||
|
// Protect this domain with Dokploy's forward auth.
|
||||||
|
ForwardAuthEnabled *bool `pulumi:"forwardAuthEnabled"`
|
||||||
|
// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
Host *string `pulumi:"host"`
|
||||||
|
// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
Https *bool `pulumi:"https"`
|
||||||
|
// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
InternalPath *string `pulumi:"internalPath"`
|
||||||
|
// Names of Traefik middlewares to apply.
|
||||||
|
Middlewares []string `pulumi:"middlewares"`
|
||||||
|
// Path prefix this domain routes, defaults to `/`.
|
||||||
|
Path *string `pulumi:"path"`
|
||||||
|
// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
Port *int `pulumi:"port"`
|
||||||
|
// Preview deployment this domain routes to.
|
||||||
|
PreviewDeploymentId *string `pulumi:"previewDeploymentId"`
|
||||||
|
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
|
||||||
|
ServiceName *string `pulumi:"serviceName"`
|
||||||
|
// Strip `path` from the request before forwarding it.
|
||||||
|
StripPath *bool `pulumi:"stripPath"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type DomainState struct {
|
||||||
|
// Application this domain routes to.
|
||||||
|
ApplicationId pulumi.StringPtrInput
|
||||||
|
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
|
||||||
|
CertificateType pulumi.StringPtrInput
|
||||||
|
// Compose stack this domain routes to.
|
||||||
|
ComposeId pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the domain was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Traefik certificate resolver name, when `certificateType` is `custom`.
|
||||||
|
CustomCertResolver pulumi.StringPtrInput
|
||||||
|
// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
CustomEntrypoint pulumi.StringPtrInput
|
||||||
|
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
|
||||||
|
DomainType pulumi.StringPtrInput
|
||||||
|
// Protect this domain with Dokploy's forward auth.
|
||||||
|
ForwardAuthEnabled pulumi.BoolPtrInput
|
||||||
|
// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
Host pulumi.StringPtrInput
|
||||||
|
// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
Https pulumi.BoolPtrInput
|
||||||
|
// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
InternalPath pulumi.StringPtrInput
|
||||||
|
// Names of Traefik middlewares to apply.
|
||||||
|
Middlewares pulumi.StringArrayInput
|
||||||
|
// Path prefix this domain routes, defaults to `/`.
|
||||||
|
Path pulumi.StringPtrInput
|
||||||
|
// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
Port pulumi.IntPtrInput
|
||||||
|
// Preview deployment this domain routes to.
|
||||||
|
PreviewDeploymentId pulumi.StringPtrInput
|
||||||
|
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
|
||||||
|
ServiceName pulumi.StringPtrInput
|
||||||
|
// Strip `path` from the request before forwarding it.
|
||||||
|
StripPath pulumi.BoolPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (DomainState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*domainState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type domainArgs struct {
|
||||||
|
// Application this domain routes to.
|
||||||
|
ApplicationId *string `pulumi:"applicationId"`
|
||||||
|
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
|
||||||
|
CertificateType *string `pulumi:"certificateType"`
|
||||||
|
// Compose stack this domain routes to.
|
||||||
|
ComposeId *string `pulumi:"composeId"`
|
||||||
|
// Traefik certificate resolver name, when `certificateType` is `custom`.
|
||||||
|
CustomCertResolver *string `pulumi:"customCertResolver"`
|
||||||
|
// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
CustomEntrypoint *string `pulumi:"customEntrypoint"`
|
||||||
|
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
|
||||||
|
DomainType *string `pulumi:"domainType"`
|
||||||
|
// Protect this domain with Dokploy's forward auth.
|
||||||
|
ForwardAuthEnabled *bool `pulumi:"forwardAuthEnabled"`
|
||||||
|
// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
Host string `pulumi:"host"`
|
||||||
|
// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
Https *bool `pulumi:"https"`
|
||||||
|
// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
InternalPath *string `pulumi:"internalPath"`
|
||||||
|
// Names of Traefik middlewares to apply.
|
||||||
|
Middlewares []string `pulumi:"middlewares"`
|
||||||
|
// Path prefix this domain routes, defaults to `/`.
|
||||||
|
Path *string `pulumi:"path"`
|
||||||
|
// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
Port *int `pulumi:"port"`
|
||||||
|
// Preview deployment this domain routes to.
|
||||||
|
PreviewDeploymentId *string `pulumi:"previewDeploymentId"`
|
||||||
|
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
|
||||||
|
ServiceName *string `pulumi:"serviceName"`
|
||||||
|
// Strip `path` from the request before forwarding it.
|
||||||
|
StripPath *bool `pulumi:"stripPath"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Domain resource.
|
||||||
|
type DomainArgs struct {
|
||||||
|
// Application this domain routes to.
|
||||||
|
ApplicationId pulumi.StringPtrInput
|
||||||
|
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
|
||||||
|
CertificateType pulumi.StringPtrInput
|
||||||
|
// Compose stack this domain routes to.
|
||||||
|
ComposeId pulumi.StringPtrInput
|
||||||
|
// Traefik certificate resolver name, when `certificateType` is `custom`.
|
||||||
|
CustomCertResolver pulumi.StringPtrInput
|
||||||
|
// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
CustomEntrypoint pulumi.StringPtrInput
|
||||||
|
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
|
||||||
|
DomainType pulumi.StringPtrInput
|
||||||
|
// Protect this domain with Dokploy's forward auth.
|
||||||
|
ForwardAuthEnabled pulumi.BoolPtrInput
|
||||||
|
// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
Host pulumi.StringInput
|
||||||
|
// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
Https pulumi.BoolPtrInput
|
||||||
|
// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
InternalPath pulumi.StringPtrInput
|
||||||
|
// Names of Traefik middlewares to apply.
|
||||||
|
Middlewares pulumi.StringArrayInput
|
||||||
|
// Path prefix this domain routes, defaults to `/`.
|
||||||
|
Path pulumi.StringPtrInput
|
||||||
|
// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
Port pulumi.IntPtrInput
|
||||||
|
// Preview deployment this domain routes to.
|
||||||
|
PreviewDeploymentId pulumi.StringPtrInput
|
||||||
|
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
|
||||||
|
ServiceName pulumi.StringPtrInput
|
||||||
|
// Strip `path` from the request before forwarding it.
|
||||||
|
StripPath pulumi.BoolPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (DomainArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*domainArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type DomainInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToDomainOutput() DomainOutput
|
||||||
|
ToDomainOutputWithContext(ctx context.Context) DomainOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Domain) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Domain)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Domain) ToDomainOutput() DomainOutput {
|
||||||
|
return i.ToDomainOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Domain) ToDomainOutputWithContext(ctx context.Context) DomainOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(DomainOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DomainArrayInput is an input type that accepts DomainArray and DomainArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `DomainArrayInput` via:
|
||||||
|
//
|
||||||
|
// DomainArray{ DomainArgs{...} }
|
||||||
|
type DomainArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToDomainArrayOutput() DomainArrayOutput
|
||||||
|
ToDomainArrayOutputWithContext(context.Context) DomainArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type DomainArray []DomainInput
|
||||||
|
|
||||||
|
func (DomainArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Domain)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DomainArray) ToDomainArrayOutput() DomainArrayOutput {
|
||||||
|
return i.ToDomainArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DomainArray) ToDomainArrayOutputWithContext(ctx context.Context) DomainArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(DomainArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DomainMapInput is an input type that accepts DomainMap and DomainMapOutput values.
|
||||||
|
// You can construct a concrete instance of `DomainMapInput` via:
|
||||||
|
//
|
||||||
|
// DomainMap{ "key": DomainArgs{...} }
|
||||||
|
type DomainMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToDomainMapOutput() DomainMapOutput
|
||||||
|
ToDomainMapOutputWithContext(context.Context) DomainMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type DomainMap map[string]DomainInput
|
||||||
|
|
||||||
|
func (DomainMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Domain)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DomainMap) ToDomainMapOutput() DomainMapOutput {
|
||||||
|
return i.ToDomainMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i DomainMap) ToDomainMapOutputWithContext(ctx context.Context) DomainMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(DomainMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type DomainOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (DomainOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Domain)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainOutput) ToDomainOutput() DomainOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainOutput) ToDomainOutputWithContext(ctx context.Context) DomainOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Application this domain routes to.
|
||||||
|
func (o DomainOutput) ApplicationId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.ApplicationId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// How TLS certificates are obtained. Use `letsencrypt` for automatic certificates. Valid values: `letsencrypt`, `none`, `custom`.
|
||||||
|
func (o DomainOutput) CertificateType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.CertificateType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compose stack this domain routes to.
|
||||||
|
func (o DomainOutput) ComposeId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.ComposeId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the domain was created.
|
||||||
|
func (o DomainOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Traefik certificate resolver name, when `certificateType` is `custom`.
|
||||||
|
func (o DomainOutput) CustomCertResolver() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.CustomCertResolver }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Traefik entrypoint to bind, when not using the defaults.
|
||||||
|
func (o DomainOutput) CustomEntrypoint() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.CustomEntrypoint }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// What kind of target this domain points at. Valid values: `compose`, `application`, `preview`.
|
||||||
|
func (o DomainOutput) DomainType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.DomainType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Protect this domain with Dokploy's forward auth.
|
||||||
|
func (o DomainOutput) ForwardAuthEnabled() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.BoolOutput { return v.ForwardAuthEnabled }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fully-qualified hostname, for example `api.example.com`.
|
||||||
|
func (o DomainOutput) Host() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.Host }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Serve the domain over HTTPS and redirect HTTP traffic to it.
|
||||||
|
func (o DomainOutput) Https() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.BoolOutput { return v.Https }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path the request is rewritten to before it reaches the container, defaults to `/`.
|
||||||
|
func (o DomainOutput) InternalPath() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.InternalPath }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Names of Traefik middlewares to apply.
|
||||||
|
func (o DomainOutput) Middlewares() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringArrayOutput { return v.Middlewares }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path prefix this domain routes, defaults to `/`.
|
||||||
|
func (o DomainOutput) Path() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.Path }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Container port that receives the traffic, defaults to `3000`.
|
||||||
|
func (o DomainOutput) Port() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Preview deployment this domain routes to.
|
||||||
|
func (o DomainOutput) PreviewDeploymentId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.PreviewDeploymentId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name of the service inside a Compose stack that receives the traffic. Required when `composeId` is set.
|
||||||
|
func (o DomainOutput) ServiceName() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.ServiceName }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Strip `path` from the request before forwarding it.
|
||||||
|
func (o DomainOutput) StripPath() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Domain) pulumi.BoolOutput { return v.StripPath }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type DomainArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (DomainArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Domain)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainArrayOutput) ToDomainArrayOutput() DomainArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainArrayOutput) ToDomainArrayOutputWithContext(ctx context.Context) DomainArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainArrayOutput) Index(i pulumi.IntInput) DomainOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Domain {
|
||||||
|
return vs[0].([]*Domain)[vs[1].(int)]
|
||||||
|
}).(DomainOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type DomainMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (DomainMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Domain)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainMapOutput) ToDomainMapOutput() DomainMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainMapOutput) ToDomainMapOutputWithContext(ctx context.Context) DomainMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o DomainMapOutput) MapIndex(k pulumi.StringInput) DomainOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Domain {
|
||||||
|
return vs[0].(map[string]*Domain)[vs[1].(string)]
|
||||||
|
}).(DomainOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*DomainInput)(nil)).Elem(), &Domain{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*DomainArrayInput)(nil)).Elem(), DomainArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*DomainMapInput)(nil)).Elem(), DomainMap{})
|
||||||
|
pulumi.RegisterOutputType(DomainOutput{})
|
||||||
|
pulumi.RegisterOutputType(DomainArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(DomainMapOutput{})
|
||||||
|
}
|
||||||
285
sdk/go/dokploy/environment.go
generated
Normal file
285
sdk/go/dokploy/environment.go
generated
Normal file
@@ -0,0 +1,285 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Environment struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the environment was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
Env pulumi.StringOutput `pulumi:"env"`
|
||||||
|
// Whether this is the project's default environment.
|
||||||
|
IsDefault pulumi.BoolOutput `pulumi:"isDefault"`
|
||||||
|
// Environment name, for example `staging`.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// Project this environment belongs to.
|
||||||
|
ProjectId pulumi.StringOutput `pulumi:"projectId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEnvironment registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewEnvironment(ctx *pulumi.Context,
|
||||||
|
name string, args *EnvironmentArgs, opts ...pulumi.ResourceOption) (*Environment, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.ProjectId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'ProjectId'")
|
||||||
|
}
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Environment
|
||||||
|
err := ctx.RegisterResource("dokploy:index/environment:Environment", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetEnvironment gets an existing Environment 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 GetEnvironment(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *EnvironmentState, opts ...pulumi.ResourceOption) (*Environment, error) {
|
||||||
|
var resource Environment
|
||||||
|
err := ctx.ReadResource("dokploy:index/environment:Environment", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Environment resources.
|
||||||
|
type environmentState struct {
|
||||||
|
// RFC 3339 timestamp of when the environment was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Whether this is the project's default environment.
|
||||||
|
IsDefault *bool `pulumi:"isDefault"`
|
||||||
|
// Environment name, for example `staging`.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// Project this environment belongs to.
|
||||||
|
ProjectId *string `pulumi:"projectId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnvironmentState struct {
|
||||||
|
// RFC 3339 timestamp of when the environment was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Whether this is the project's default environment.
|
||||||
|
IsDefault pulumi.BoolPtrInput
|
||||||
|
// Environment name, for example `staging`.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// Project this environment belongs to.
|
||||||
|
ProjectId pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (EnvironmentState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*environmentState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type environmentArgs struct {
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment name, for example `staging`.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// Project this environment belongs to.
|
||||||
|
ProjectId string `pulumi:"projectId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Environment resource.
|
||||||
|
type EnvironmentArgs struct {
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment name, for example `staging`.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// Project this environment belongs to.
|
||||||
|
ProjectId pulumi.StringInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (EnvironmentArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*environmentArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnvironmentInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToEnvironmentOutput() EnvironmentOutput
|
||||||
|
ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Environment) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Environment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Environment) ToEnvironmentOutput() EnvironmentOutput {
|
||||||
|
return i.ToEnvironmentOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Environment) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(EnvironmentOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnvironmentArrayInput is an input type that accepts EnvironmentArray and EnvironmentArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `EnvironmentArrayInput` via:
|
||||||
|
//
|
||||||
|
// EnvironmentArray{ EnvironmentArgs{...} }
|
||||||
|
type EnvironmentArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToEnvironmentArrayOutput() EnvironmentArrayOutput
|
||||||
|
ToEnvironmentArrayOutputWithContext(context.Context) EnvironmentArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnvironmentArray []EnvironmentInput
|
||||||
|
|
||||||
|
func (EnvironmentArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Environment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i EnvironmentArray) ToEnvironmentArrayOutput() EnvironmentArrayOutput {
|
||||||
|
return i.ToEnvironmentArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i EnvironmentArray) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(EnvironmentArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnvironmentMapInput is an input type that accepts EnvironmentMap and EnvironmentMapOutput values.
|
||||||
|
// You can construct a concrete instance of `EnvironmentMapInput` via:
|
||||||
|
//
|
||||||
|
// EnvironmentMap{ "key": EnvironmentArgs{...} }
|
||||||
|
type EnvironmentMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToEnvironmentMapOutput() EnvironmentMapOutput
|
||||||
|
ToEnvironmentMapOutputWithContext(context.Context) EnvironmentMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnvironmentMap map[string]EnvironmentInput
|
||||||
|
|
||||||
|
func (EnvironmentMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Environment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i EnvironmentMap) ToEnvironmentMapOutput() EnvironmentMapOutput {
|
||||||
|
return i.ToEnvironmentMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i EnvironmentMap) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(EnvironmentMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnvironmentOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (EnvironmentOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Environment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentOutput) ToEnvironmentOutput() EnvironmentOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentOutput) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the environment was created.
|
||||||
|
func (o EnvironmentOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o EnvironmentOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment-wide variables in `KEY=value` format, one per line. These are merged into every service in this environment.
|
||||||
|
func (o EnvironmentOutput) Env() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Env }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Whether this is the project's default environment.
|
||||||
|
func (o EnvironmentOutput) IsDefault() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Environment) pulumi.BoolOutput { return v.IsDefault }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment name, for example `staging`.
|
||||||
|
func (o EnvironmentOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Project this environment belongs to.
|
||||||
|
func (o EnvironmentOutput) ProjectId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnvironmentArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (EnvironmentArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Environment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentArrayOutput) ToEnvironmentArrayOutput() EnvironmentArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentArrayOutput) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentArrayOutput) Index(i pulumi.IntInput) EnvironmentOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Environment {
|
||||||
|
return vs[0].([]*Environment)[vs[1].(int)]
|
||||||
|
}).(EnvironmentOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type EnvironmentMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (EnvironmentMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Environment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentMapOutput) ToEnvironmentMapOutput() EnvironmentMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentMapOutput) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o EnvironmentMapOutput) MapIndex(k pulumi.StringInput) EnvironmentOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Environment {
|
||||||
|
return vs[0].(map[string]*Environment)[vs[1].(string)]
|
||||||
|
}).(EnvironmentOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentInput)(nil)).Elem(), &Environment{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentArrayInput)(nil)).Elem(), EnvironmentArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentMapInput)(nil)).Elem(), EnvironmentMap{})
|
||||||
|
pulumi.RegisterOutputType(EnvironmentOutput{})
|
||||||
|
pulumi.RegisterOutputType(EnvironmentArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(EnvironmentMapOutput{})
|
||||||
|
}
|
||||||
113
sdk/go/dokploy/getApplication.go
generated
Normal file
113
sdk/go/dokploy/getApplication.go
generated
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
func LookupApplication(ctx *pulumi.Context, args *LookupApplicationArgs, opts ...pulumi.InvokeOption) (*LookupApplicationResult, error) {
|
||||||
|
opts = internal.PkgInvokeDefaultOpts(opts)
|
||||||
|
var rv LookupApplicationResult
|
||||||
|
err := ctx.Invoke("dokploy:index/getApplication:getApplication", args, &rv, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &rv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of arguments for invoking getApplication.
|
||||||
|
type LookupApplicationArgs struct {
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getApplication.
|
||||||
|
type LookupApplicationResult struct {
|
||||||
|
AppName string `pulumi:"appName"`
|
||||||
|
ApplicationStatus string `pulumi:"applicationStatus"`
|
||||||
|
BuildType string `pulumi:"buildType"`
|
||||||
|
CreatedAt string `pulumi:"createdAt"`
|
||||||
|
Description string `pulumi:"description"`
|
||||||
|
EnvironmentId string `pulumi:"environmentId"`
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
Name string `pulumi:"name"`
|
||||||
|
SourceType string `pulumi:"sourceType"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func LookupApplicationOutput(ctx *pulumi.Context, args LookupApplicationOutputArgs, opts ...pulumi.InvokeOption) LookupApplicationResultOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx.Context(), args).
|
||||||
|
ApplyT(func(v interface{}) (LookupApplicationResultOutput, error) {
|
||||||
|
args := v.(LookupApplicationArgs)
|
||||||
|
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
|
||||||
|
return ctx.InvokeOutput("dokploy:index/getApplication:getApplication", args, LookupApplicationResultOutput{}, options).(LookupApplicationResultOutput), nil
|
||||||
|
}).(LookupApplicationResultOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of arguments for invoking getApplication.
|
||||||
|
type LookupApplicationOutputArgs struct {
|
||||||
|
Id pulumi.StringInput `pulumi:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (LookupApplicationOutputArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*LookupApplicationArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getApplication.
|
||||||
|
type LookupApplicationResultOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (LookupApplicationResultOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*LookupApplicationResult)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) ToLookupApplicationResultOutput() LookupApplicationResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) ToLookupApplicationResultOutputWithContext(ctx context.Context) LookupApplicationResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) AppName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.AppName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) ApplicationStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.ApplicationStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) BuildType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.BuildType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) Description() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.Description }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) EnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.EnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) Id() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.Id }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupApplicationResultOutput) SourceType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupApplicationResult) string { return v.SourceType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterOutputType(LookupApplicationResultOutput{})
|
||||||
|
}
|
||||||
103
sdk/go/dokploy/getEnvironment.go
generated
Normal file
103
sdk/go/dokploy/getEnvironment.go
generated
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
func LookupEnvironment(ctx *pulumi.Context, args *LookupEnvironmentArgs, opts ...pulumi.InvokeOption) (*LookupEnvironmentResult, error) {
|
||||||
|
opts = internal.PkgInvokeDefaultOpts(opts)
|
||||||
|
var rv LookupEnvironmentResult
|
||||||
|
err := ctx.Invoke("dokploy:index/getEnvironment:getEnvironment", args, &rv, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &rv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of arguments for invoking getEnvironment.
|
||||||
|
type LookupEnvironmentArgs struct {
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getEnvironment.
|
||||||
|
type LookupEnvironmentResult struct {
|
||||||
|
CreatedAt string `pulumi:"createdAt"`
|
||||||
|
Description string `pulumi:"description"`
|
||||||
|
Env string `pulumi:"env"`
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
IsDefault bool `pulumi:"isDefault"`
|
||||||
|
Name string `pulumi:"name"`
|
||||||
|
ProjectId string `pulumi:"projectId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func LookupEnvironmentOutput(ctx *pulumi.Context, args LookupEnvironmentOutputArgs, opts ...pulumi.InvokeOption) LookupEnvironmentResultOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx.Context(), args).
|
||||||
|
ApplyT(func(v interface{}) (LookupEnvironmentResultOutput, error) {
|
||||||
|
args := v.(LookupEnvironmentArgs)
|
||||||
|
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
|
||||||
|
return ctx.InvokeOutput("dokploy:index/getEnvironment:getEnvironment", args, LookupEnvironmentResultOutput{}, options).(LookupEnvironmentResultOutput), nil
|
||||||
|
}).(LookupEnvironmentResultOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of arguments for invoking getEnvironment.
|
||||||
|
type LookupEnvironmentOutputArgs struct {
|
||||||
|
Id pulumi.StringInput `pulumi:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (LookupEnvironmentOutputArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*LookupEnvironmentArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getEnvironment.
|
||||||
|
type LookupEnvironmentResultOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (LookupEnvironmentResultOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*LookupEnvironmentResult)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) ToLookupEnvironmentResultOutput() LookupEnvironmentResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) ToLookupEnvironmentResultOutputWithContext(ctx context.Context) LookupEnvironmentResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupEnvironmentResult) string { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) Description() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupEnvironmentResult) string { return v.Description }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) Env() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupEnvironmentResult) string { return v.Env }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) Id() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupEnvironmentResult) string { return v.Id }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) IsDefault() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v LookupEnvironmentResult) bool { return v.IsDefault }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupEnvironmentResult) string { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupEnvironmentResultOutput) ProjectId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupEnvironmentResult) string { return v.ProjectId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterOutputType(LookupEnvironmentResultOutput{})
|
||||||
|
}
|
||||||
108
sdk/go/dokploy/getProject.go
generated
Normal file
108
sdk/go/dokploy/getProject.go
generated
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
func LookupProject(ctx *pulumi.Context, args *LookupProjectArgs, opts ...pulumi.InvokeOption) (*LookupProjectResult, error) {
|
||||||
|
opts = internal.PkgInvokeDefaultOpts(opts)
|
||||||
|
var rv LookupProjectResult
|
||||||
|
err := ctx.Invoke("dokploy:index/getProject:getProject", args, &rv, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &rv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of arguments for invoking getProject.
|
||||||
|
type LookupProjectArgs struct {
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getProject.
|
||||||
|
type LookupProjectResult struct {
|
||||||
|
CreatedAt string `pulumi:"createdAt"`
|
||||||
|
DefaultEnvironmentId string `pulumi:"defaultEnvironmentId"`
|
||||||
|
Description string `pulumi:"description"`
|
||||||
|
Env string `pulumi:"env"`
|
||||||
|
Environments []GetProjectEnvironment `pulumi:"environments"`
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
Name string `pulumi:"name"`
|
||||||
|
OrganizationId string `pulumi:"organizationId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func LookupProjectOutput(ctx *pulumi.Context, args LookupProjectOutputArgs, opts ...pulumi.InvokeOption) LookupProjectResultOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx.Context(), args).
|
||||||
|
ApplyT(func(v interface{}) (LookupProjectResultOutput, error) {
|
||||||
|
args := v.(LookupProjectArgs)
|
||||||
|
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
|
||||||
|
return ctx.InvokeOutput("dokploy:index/getProject:getProject", args, LookupProjectResultOutput{}, options).(LookupProjectResultOutput), nil
|
||||||
|
}).(LookupProjectResultOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of arguments for invoking getProject.
|
||||||
|
type LookupProjectOutputArgs struct {
|
||||||
|
Id pulumi.StringInput `pulumi:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (LookupProjectOutputArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*LookupProjectArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getProject.
|
||||||
|
type LookupProjectResultOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (LookupProjectResultOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*LookupProjectResult)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) ToLookupProjectResultOutput() LookupProjectResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) ToLookupProjectResultOutputWithContext(ctx context.Context) LookupProjectResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) string { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) DefaultEnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) string { return v.DefaultEnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) Description() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) string { return v.Description }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) Env() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) string { return v.Env }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) Environments() GetProjectEnvironmentArrayOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) []GetProjectEnvironment { return v.Environments }).(GetProjectEnvironmentArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) Id() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) string { return v.Id }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) string { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o LookupProjectResultOutput) OrganizationId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v LookupProjectResult) string { return v.OrganizationId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterOutputType(LookupProjectResultOutput{})
|
||||||
|
}
|
||||||
57
sdk/go/dokploy/getProjects.go
generated
Normal file
57
sdk/go/dokploy/getProjects.go
generated
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetProjects(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetProjectsResult, error) {
|
||||||
|
opts = internal.PkgInvokeDefaultOpts(opts)
|
||||||
|
var rv GetProjectsResult
|
||||||
|
err := ctx.Invoke("dokploy:index/getProjects:getProjects", nil, &rv, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &rv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getProjects.
|
||||||
|
type GetProjectsResult struct {
|
||||||
|
Projects []GetProjectsProject `pulumi:"projects"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetProjectsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetProjectsResultOutput {
|
||||||
|
return pulumi.ToOutput(0).ApplyT(func(int) (GetProjectsResultOutput, error) {
|
||||||
|
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
|
||||||
|
return ctx.InvokeOutput("dokploy:index/getProjects:getProjects", nil, GetProjectsResultOutput{}, options).(GetProjectsResultOutput), nil
|
||||||
|
}).(GetProjectsResultOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getProjects.
|
||||||
|
type GetProjectsResultOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetProjectsResultOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetProjectsResult)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsResultOutput) ToGetProjectsResultOutput() GetProjectsResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsResultOutput) ToGetProjectsResultOutputWithContext(ctx context.Context) GetProjectsResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsResultOutput) Projects() GetProjectsProjectArrayOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectsResult) []GetProjectsProject { return v.Projects }).(GetProjectsProjectArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterOutputType(GetProjectsResultOutput{})
|
||||||
|
}
|
||||||
57
sdk/go/dokploy/getServers.go
generated
Normal file
57
sdk/go/dokploy/getServers.go
generated
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetServers(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetServersResult, error) {
|
||||||
|
opts = internal.PkgInvokeDefaultOpts(opts)
|
||||||
|
var rv GetServersResult
|
||||||
|
err := ctx.Invoke("dokploy:index/getServers:getServers", nil, &rv, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &rv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getServers.
|
||||||
|
type GetServersResult struct {
|
||||||
|
Servers []GetServersServer `pulumi:"servers"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetServersOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetServersResultOutput {
|
||||||
|
return pulumi.ToOutput(0).ApplyT(func(int) (GetServersResultOutput, error) {
|
||||||
|
options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)}
|
||||||
|
return ctx.InvokeOutput("dokploy:index/getServers:getServers", nil, GetServersResultOutput{}, options).(GetServersResultOutput), nil
|
||||||
|
}).(GetServersResultOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// A collection of values returned by getServers.
|
||||||
|
type GetServersResultOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetServersResultOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetServersResult)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersResultOutput) ToGetServersResultOutput() GetServersResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersResultOutput) ToGetServersResultOutputWithContext(ctx context.Context) GetServersResultOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersResultOutput) Servers() GetServersServerArrayOutput {
|
||||||
|
return o.ApplyT(func(v GetServersResult) []GetServersServer { return v.Servers }).(GetServersServerArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterOutputType(GetServersResultOutput{})
|
||||||
|
}
|
||||||
185
sdk/go/dokploy/init.go
generated
Normal file
185
sdk/go/dokploy/init.go
generated
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/blang/semver"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type module struct {
|
||||||
|
version semver.Version
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *module) Version() semver.Version {
|
||||||
|
return m.version
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
|
||||||
|
switch typ {
|
||||||
|
case "dokploy:index/application:Application":
|
||||||
|
r = &Application{}
|
||||||
|
case "dokploy:index/certificate:Certificate":
|
||||||
|
r = &Certificate{}
|
||||||
|
case "dokploy:index/compose:Compose":
|
||||||
|
r = &Compose{}
|
||||||
|
case "dokploy:index/destination:Destination":
|
||||||
|
r = &Destination{}
|
||||||
|
case "dokploy:index/domain:Domain":
|
||||||
|
r = &Domain{}
|
||||||
|
case "dokploy:index/environment:Environment":
|
||||||
|
r = &Environment{}
|
||||||
|
case "dokploy:index/mariaDb:MariaDb":
|
||||||
|
r = &MariaDb{}
|
||||||
|
case "dokploy:index/mongo:Mongo":
|
||||||
|
r = &Mongo{}
|
||||||
|
case "dokploy:index/mount:Mount":
|
||||||
|
r = &Mount{}
|
||||||
|
case "dokploy:index/mySql:MySql":
|
||||||
|
r = &MySql{}
|
||||||
|
case "dokploy:index/port:Port":
|
||||||
|
r = &Port{}
|
||||||
|
case "dokploy:index/postgres:Postgres":
|
||||||
|
r = &Postgres{}
|
||||||
|
case "dokploy:index/project:Project":
|
||||||
|
r = &Project{}
|
||||||
|
case "dokploy:index/redirect:Redirect":
|
||||||
|
r = &Redirect{}
|
||||||
|
case "dokploy:index/redis:Redis":
|
||||||
|
r = &Redis{}
|
||||||
|
case "dokploy:index/registry:Registry":
|
||||||
|
r = &Registry{}
|
||||||
|
case "dokploy:index/security:Security":
|
||||||
|
r = &Security{}
|
||||||
|
case "dokploy:index/sshKey:SshKey":
|
||||||
|
r = &SshKey{}
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("unknown resource type: %s", typ)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
type pkg struct {
|
||||||
|
version semver.Version
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *pkg) Version() semver.Version {
|
||||||
|
return p.version
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) {
|
||||||
|
if typ != "pulumi:providers:dokploy" {
|
||||||
|
return nil, fmt.Errorf("unknown provider type: %s", typ)
|
||||||
|
}
|
||||||
|
|
||||||
|
r := &Provider{}
|
||||||
|
err := ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
|
||||||
|
return r, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
version, err := internal.PkgVersion()
|
||||||
|
if err != nil {
|
||||||
|
version = semver.Version{Major: 1}
|
||||||
|
}
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/application",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/certificate",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/compose",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/destination",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/domain",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/environment",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/mariaDb",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/mongo",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/mount",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/mySql",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/port",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/postgres",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/project",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/redirect",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/redis",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/registry",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/security",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourceModule(
|
||||||
|
"dokploy",
|
||||||
|
"index/sshKey",
|
||||||
|
&module{version},
|
||||||
|
)
|
||||||
|
pulumi.RegisterResourcePackage(
|
||||||
|
"dokploy",
|
||||||
|
&pkg{version},
|
||||||
|
)
|
||||||
|
}
|
||||||
184
sdk/go/dokploy/internal/pulumiUtilities.go
generated
Normal file
184
sdk/go/dokploy/internal/pulumiUtilities.go
generated
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
// 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 internal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"reflect"
|
||||||
|
"regexp"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/blang/semver"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/internals"
|
||||||
|
)
|
||||||
|
|
||||||
|
type envParser func(v string) interface{}
|
||||||
|
|
||||||
|
func ParseEnvBool(v string) interface{} {
|
||||||
|
b, err := strconv.ParseBool(v)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseEnvInt(v string) interface{} {
|
||||||
|
i, err := strconv.ParseInt(v, 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return int(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseEnvFloat(v string) interface{} {
|
||||||
|
f, err := strconv.ParseFloat(v, 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseEnvStringArray(v string) interface{} {
|
||||||
|
var result pulumi.StringArray
|
||||||
|
for _, item := range strings.Split(v, ";") {
|
||||||
|
result = append(result, pulumi.String(item))
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} {
|
||||||
|
for _, v := range vars {
|
||||||
|
if value, ok := os.LookupEnv(v); ok {
|
||||||
|
if parser != nil {
|
||||||
|
return parser(value)
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return def
|
||||||
|
}
|
||||||
|
|
||||||
|
// PkgVersion uses reflection to determine the version of the current package.
|
||||||
|
// If a version cannot be determined, v1 will be assumed. The second return
|
||||||
|
// value is always nil.
|
||||||
|
func PkgVersion() (semver.Version, error) {
|
||||||
|
// emptyVersion defaults to v0.0.0
|
||||||
|
if !SdkVersion.Equals(semver.Version{}) {
|
||||||
|
return SdkVersion, nil
|
||||||
|
}
|
||||||
|
type sentinal struct{}
|
||||||
|
pkgPath := reflect.TypeOf(sentinal{}).PkgPath()
|
||||||
|
re := regexp.MustCompile("^.*/pulumi-dokploy/sdk(/v\\d+)?")
|
||||||
|
if match := re.FindStringSubmatch(pkgPath); match != nil {
|
||||||
|
vStr := match[1]
|
||||||
|
if len(vStr) == 0 { // If the version capture group was empty, default to v1.
|
||||||
|
return semver.Version{Major: 1}, nil
|
||||||
|
}
|
||||||
|
return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil
|
||||||
|
}
|
||||||
|
return semver.Version{Major: 1}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// isZero is a null safe check for if a value is it's types zero value.
|
||||||
|
func IsZero(v interface{}) bool {
|
||||||
|
if v == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return reflect.ValueOf(v).IsZero()
|
||||||
|
}
|
||||||
|
|
||||||
|
func CallPlain(
|
||||||
|
ctx *pulumi.Context,
|
||||||
|
tok string,
|
||||||
|
args pulumi.Input,
|
||||||
|
output pulumi.Output,
|
||||||
|
self pulumi.Resource,
|
||||||
|
property string,
|
||||||
|
resultPtr reflect.Value,
|
||||||
|
errorPtr *error,
|
||||||
|
opts ...pulumi.InvokeOption,
|
||||||
|
) {
|
||||||
|
res, err := callPlainInner(ctx, tok, args, output, self, opts...)
|
||||||
|
if err != nil {
|
||||||
|
*errorPtr = err
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
v := reflect.ValueOf(res)
|
||||||
|
|
||||||
|
// extract res.property field if asked to do so
|
||||||
|
if property != "" {
|
||||||
|
v = v.FieldByName("Res")
|
||||||
|
}
|
||||||
|
|
||||||
|
// return by setting the result pointer; this style of returns shortens the generated code without generics
|
||||||
|
resultPtr.Elem().Set(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
func callPlainInner(
|
||||||
|
ctx *pulumi.Context,
|
||||||
|
tok string,
|
||||||
|
args pulumi.Input,
|
||||||
|
output pulumi.Output,
|
||||||
|
self pulumi.Resource,
|
||||||
|
opts ...pulumi.InvokeOption,
|
||||||
|
) (any, error) {
|
||||||
|
o, err := ctx.Call(tok, args, output, self, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
outputData, err := internals.UnsafeAwaitOutput(ctx.Context(), o)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency.
|
||||||
|
known := outputData.Known
|
||||||
|
value := outputData.Value
|
||||||
|
secret := outputData.Secret
|
||||||
|
|
||||||
|
problem := ""
|
||||||
|
if !known {
|
||||||
|
problem = "an unknown value"
|
||||||
|
} else if secret {
|
||||||
|
problem = "a secret value"
|
||||||
|
}
|
||||||
|
|
||||||
|
if problem != "" {
|
||||||
|
return nil, fmt.Errorf("Plain resource method %q incorrectly returned %s. "+
|
||||||
|
"This is an error in the provider, please report this to the provider developer.",
|
||||||
|
tok, problem)
|
||||||
|
}
|
||||||
|
|
||||||
|
return value, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource.
|
||||||
|
func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption {
|
||||||
|
defaults := []pulumi.ResourceOption{}
|
||||||
|
defaults = append(defaults, pulumi.PluginDownloadURL("github://api.github.com/maxvojtkov/pulumi-dokploy"))
|
||||||
|
version := semver.MustParse("0.1.0")
|
||||||
|
if !version.Equals(semver.Version{}) {
|
||||||
|
defaults = append(defaults, pulumi.Version(version.String()))
|
||||||
|
}
|
||||||
|
return append(defaults, opts...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke.
|
||||||
|
func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption {
|
||||||
|
defaults := []pulumi.InvokeOption{}
|
||||||
|
defaults = append(defaults, pulumi.PluginDownloadURL("github://api.github.com/maxvojtkov/pulumi-dokploy"))
|
||||||
|
version := semver.MustParse("0.1.0")
|
||||||
|
if !version.Equals(semver.Version{}) {
|
||||||
|
defaults = append(defaults, pulumi.Version(version.String()))
|
||||||
|
}
|
||||||
|
return append(defaults, opts...)
|
||||||
|
}
|
||||||
11
sdk/go/dokploy/internal/pulumiVersion.go
generated
Normal file
11
sdk/go/dokploy/internal/pulumiVersion.go
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// 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 internal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/blang/semver"
|
||||||
|
)
|
||||||
|
|
||||||
|
var SdkVersion semver.Version = semver.Version{}
|
||||||
|
var pluginDownloadURL string = ""
|
||||||
731
sdk/go/dokploy/mariaDb.go
generated
Normal file
731
sdk/go/dokploy/mariaDb.go
generated
Normal file
@@ -0,0 +1,731 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type MariaDb struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringOutput `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringOutput `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayOutput `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrOutput `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrOutput `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrOutput `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringOutput `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringOutput `pulumi:"databasePassword"`
|
||||||
|
// Password for the MariaDB `root` user.
|
||||||
|
DatabaseRootPassword pulumi.StringOutput `pulumi:"databaseRootPassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringOutput `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolOutput `pulumi:"detachDokployNetwork"`
|
||||||
|
// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
DockerImage pulumi.StringOutput `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrOutput `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrOutput `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringOutput `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrOutput `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrOutput `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrOutput `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrOutput `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrOutput `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrOutput `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayOutput `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrOutput `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrOutput `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntOutput `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrOutput `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrOutput `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrOutput `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrOutput `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrOutput `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMariaDb registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewMariaDb(ctx *pulumi.Context,
|
||||||
|
name string, args *MariaDbArgs, opts ...pulumi.ResourceOption) (*MariaDb, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.DatabaseName == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseName'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabasePassword'")
|
||||||
|
}
|
||||||
|
if args.DatabaseRootPassword == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseRootPassword'")
|
||||||
|
}
|
||||||
|
if args.DatabaseUser == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseUser'")
|
||||||
|
}
|
||||||
|
if args.DockerImage == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DockerImage'")
|
||||||
|
}
|
||||||
|
if args.EnvironmentId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'EnvironmentId'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword != nil {
|
||||||
|
args.DatabasePassword = pulumi.ToSecret(args.DatabasePassword).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
if args.DatabaseRootPassword != nil {
|
||||||
|
args.DatabaseRootPassword = pulumi.ToSecret(args.DatabaseRootPassword).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"databasePassword",
|
||||||
|
"databaseRootPassword",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource MariaDb
|
||||||
|
err := ctx.RegisterResource("dokploy:index/mariaDb:MariaDb", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMariaDb gets an existing MariaDb 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 GetMariaDb(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *MariaDbState, opts ...pulumi.ResourceOption) (*MariaDb, error) {
|
||||||
|
var resource MariaDb
|
||||||
|
err := ctx.ReadResource("dokploy:index/mariaDb:MariaDb", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering MariaDb resources.
|
||||||
|
type mariaDbState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus *string `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName *string `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword *string `pulumi:"databasePassword"`
|
||||||
|
// Password for the MariaDB `root` user.
|
||||||
|
DatabaseRootPassword *string `pulumi:"databaseRootPassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser *string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
DockerImage *string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId *string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MariaDbState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringPtrInput
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringPtrInput
|
||||||
|
// Password for the MariaDB `root` user.
|
||||||
|
DatabaseRootPassword pulumi.StringPtrInput
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
DockerImage pulumi.StringPtrInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringPtrInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MariaDbState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mariaDbState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type mariaDbArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName string `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword string `pulumi:"databasePassword"`
|
||||||
|
// Password for the MariaDB `root` user.
|
||||||
|
DatabaseRootPassword string `pulumi:"databaseRootPassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
DockerImage string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a MariaDb resource.
|
||||||
|
type MariaDbArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringInput
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringInput
|
||||||
|
// Password for the MariaDB `root` user.
|
||||||
|
DatabaseRootPassword pulumi.StringInput
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
DockerImage pulumi.StringInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MariaDbArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mariaDbArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type MariaDbInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMariaDbOutput() MariaDbOutput
|
||||||
|
ToMariaDbOutputWithContext(ctx context.Context) MariaDbOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*MariaDb) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**MariaDb)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *MariaDb) ToMariaDbOutput() MariaDbOutput {
|
||||||
|
return i.ToMariaDbOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *MariaDb) ToMariaDbOutputWithContext(ctx context.Context) MariaDbOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MariaDbOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MariaDbArrayInput is an input type that accepts MariaDbArray and MariaDbArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `MariaDbArrayInput` via:
|
||||||
|
//
|
||||||
|
// MariaDbArray{ MariaDbArgs{...} }
|
||||||
|
type MariaDbArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMariaDbArrayOutput() MariaDbArrayOutput
|
||||||
|
ToMariaDbArrayOutputWithContext(context.Context) MariaDbArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MariaDbArray []MariaDbInput
|
||||||
|
|
||||||
|
func (MariaDbArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*MariaDb)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MariaDbArray) ToMariaDbArrayOutput() MariaDbArrayOutput {
|
||||||
|
return i.ToMariaDbArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MariaDbArray) ToMariaDbArrayOutputWithContext(ctx context.Context) MariaDbArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MariaDbArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MariaDbMapInput is an input type that accepts MariaDbMap and MariaDbMapOutput values.
|
||||||
|
// You can construct a concrete instance of `MariaDbMapInput` via:
|
||||||
|
//
|
||||||
|
// MariaDbMap{ "key": MariaDbArgs{...} }
|
||||||
|
type MariaDbMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMariaDbMapOutput() MariaDbMapOutput
|
||||||
|
ToMariaDbMapOutputWithContext(context.Context) MariaDbMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MariaDbMap map[string]MariaDbInput
|
||||||
|
|
||||||
|
func (MariaDbMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*MariaDb)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MariaDbMap) ToMariaDbMapOutput() MariaDbMapOutput {
|
||||||
|
return i.ToMariaDbMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MariaDbMap) ToMariaDbMapOutputWithContext(ctx context.Context) MariaDbMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MariaDbMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MariaDbOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MariaDbOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**MariaDb)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbOutput) ToMariaDbOutput() MariaDbOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbOutput) ToMariaDbOutputWithContext(ctx context.Context) MariaDbOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
func (o MariaDbOutput) AppName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
func (o MariaDbOutput) ApplicationStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.ApplicationStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
func (o MariaDbOutput) Args() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringArrayOutput { return v.Args }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
func (o MariaDbOutput) Command() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.Command }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
func (o MariaDbOutput) CpuLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.CpuLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
func (o MariaDbOutput) CpuReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.CpuReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
func (o MariaDbOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name of the database to create.
|
||||||
|
func (o MariaDbOutput) DatabaseName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.DatabaseName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password for the database user.
|
||||||
|
func (o MariaDbOutput) DatabasePassword() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.DatabasePassword }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password for the MariaDB `root` user.
|
||||||
|
func (o MariaDbOutput) DatabaseRootPassword() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.DatabaseRootPassword }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Database user to create.
|
||||||
|
func (o MariaDbOutput) DatabaseUser() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.DatabaseUser }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o MariaDbOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
func (o MariaDbOutput) DetachDokployNetwork() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.BoolOutput { return v.DetachDokployNetwork }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MariaDB image to run, for example `mariadb:11`.
|
||||||
|
func (o MariaDbOutput) DockerImage() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.DockerImage }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
func (o MariaDbOutput) EndpointSpecSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.EndpointSpecSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
func (o MariaDbOutput) Env() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.Env }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment this database belongs to.
|
||||||
|
func (o MariaDbOutput) EnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
func (o MariaDbOutput) ExternalPort() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.IntPtrOutput { return v.ExternalPort }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
func (o MariaDbOutput) HealthCheckSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.HealthCheckSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
func (o MariaDbOutput) LabelsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.LabelsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
func (o MariaDbOutput) MemoryLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.MemoryLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
func (o MariaDbOutput) MemoryReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.MemoryReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
func (o MariaDbOutput) ModeSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.ModeSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the database.
|
||||||
|
func (o MariaDbOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
func (o MariaDbOutput) NetworkIds() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringArrayOutput { return v.NetworkIds }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
func (o MariaDbOutput) NetworkSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.NetworkSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
func (o MariaDbOutput) PlacementSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.PlacementSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Number of replicas to run.
|
||||||
|
func (o MariaDbOutput) Replicas() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.IntOutput { return v.Replicas }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
func (o MariaDbOutput) RestartPolicySwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.RestartPolicySwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
func (o MariaDbOutput) RollbackConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.RollbackConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
func (o MariaDbOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
func (o MariaDbOutput) StopGracePeriodSwarm() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.IntPtrOutput { return v.StopGracePeriodSwarm }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
func (o MariaDbOutput) UlimitsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.UlimitsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
func (o MariaDbOutput) UpdateConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MariaDb) pulumi.StringPtrOutput { return v.UpdateConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MariaDbArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MariaDbArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*MariaDb)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbArrayOutput) ToMariaDbArrayOutput() MariaDbArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbArrayOutput) ToMariaDbArrayOutputWithContext(ctx context.Context) MariaDbArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbArrayOutput) Index(i pulumi.IntInput) MariaDbOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MariaDb {
|
||||||
|
return vs[0].([]*MariaDb)[vs[1].(int)]
|
||||||
|
}).(MariaDbOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MariaDbMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MariaDbMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*MariaDb)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbMapOutput) ToMariaDbMapOutput() MariaDbMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbMapOutput) ToMariaDbMapOutputWithContext(ctx context.Context) MariaDbMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MariaDbMapOutput) MapIndex(k pulumi.StringInput) MariaDbOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MariaDb {
|
||||||
|
return vs[0].(map[string]*MariaDb)[vs[1].(string)]
|
||||||
|
}).(MariaDbOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MariaDbInput)(nil)).Elem(), &MariaDb{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MariaDbArrayInput)(nil)).Elem(), MariaDbArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MariaDbMapInput)(nil)).Elem(), MariaDbMap{})
|
||||||
|
pulumi.RegisterOutputType(MariaDbOutput{})
|
||||||
|
pulumi.RegisterOutputType(MariaDbArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(MariaDbMapOutput{})
|
||||||
|
}
|
||||||
703
sdk/go/dokploy/mongo.go
generated
Normal file
703
sdk/go/dokploy/mongo.go
generated
Normal file
@@ -0,0 +1,703 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Mongo struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringOutput `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringOutput `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayOutput `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrOutput `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrOutput `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrOutput `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Password for the root user.
|
||||||
|
DatabasePassword pulumi.StringOutput `pulumi:"databasePassword"`
|
||||||
|
// Root username to create.
|
||||||
|
DatabaseUser pulumi.StringOutput `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolOutput `pulumi:"detachDokployNetwork"`
|
||||||
|
// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
DockerImage pulumi.StringOutput `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrOutput `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrOutput `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringOutput `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrOutput `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrOutput `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrOutput `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrOutput `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrOutput `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrOutput `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayOutput `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrOutput `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrOutput `pulumi:"placementSwarm"`
|
||||||
|
// Start the instance as a single-node replica set.
|
||||||
|
ReplicaSets pulumi.BoolOutput `pulumi:"replicaSets"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntOutput `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrOutput `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrOutput `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrOutput `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrOutput `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrOutput `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMongo registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewMongo(ctx *pulumi.Context,
|
||||||
|
name string, args *MongoArgs, opts ...pulumi.ResourceOption) (*Mongo, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.DatabasePassword == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabasePassword'")
|
||||||
|
}
|
||||||
|
if args.DatabaseUser == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseUser'")
|
||||||
|
}
|
||||||
|
if args.EnvironmentId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'EnvironmentId'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword != nil {
|
||||||
|
args.DatabasePassword = pulumi.ToSecret(args.DatabasePassword).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"databasePassword",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Mongo
|
||||||
|
err := ctx.RegisterResource("dokploy:index/mongo:Mongo", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMongo gets an existing Mongo 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 GetMongo(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *MongoState, opts ...pulumi.ResourceOption) (*Mongo, error) {
|
||||||
|
var resource Mongo
|
||||||
|
err := ctx.ReadResource("dokploy:index/mongo:Mongo", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Mongo resources.
|
||||||
|
type mongoState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus *string `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Password for the root user.
|
||||||
|
DatabasePassword *string `pulumi:"databasePassword"`
|
||||||
|
// Root username to create.
|
||||||
|
DatabaseUser *string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
DockerImage *string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId *string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Start the instance as a single-node replica set.
|
||||||
|
ReplicaSets *bool `pulumi:"replicaSets"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MongoState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Password for the root user.
|
||||||
|
DatabasePassword pulumi.StringPtrInput
|
||||||
|
// Root username to create.
|
||||||
|
DatabaseUser pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
DockerImage pulumi.StringPtrInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringPtrInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Start the instance as a single-node replica set.
|
||||||
|
ReplicaSets pulumi.BoolPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MongoState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mongoState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type mongoArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// Password for the root user.
|
||||||
|
DatabasePassword string `pulumi:"databasePassword"`
|
||||||
|
// Root username to create.
|
||||||
|
DatabaseUser string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
DockerImage *string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Start the instance as a single-node replica set.
|
||||||
|
ReplicaSets *bool `pulumi:"replicaSets"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Mongo resource.
|
||||||
|
type MongoArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// Password for the root user.
|
||||||
|
DatabasePassword pulumi.StringInput
|
||||||
|
// Root username to create.
|
||||||
|
DatabaseUser pulumi.StringInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
DockerImage pulumi.StringPtrInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Start the instance as a single-node replica set.
|
||||||
|
ReplicaSets pulumi.BoolPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MongoArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mongoArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type MongoInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMongoOutput() MongoOutput
|
||||||
|
ToMongoOutputWithContext(ctx context.Context) MongoOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Mongo) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Mongo)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Mongo) ToMongoOutput() MongoOutput {
|
||||||
|
return i.ToMongoOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Mongo) ToMongoOutputWithContext(ctx context.Context) MongoOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MongoOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MongoArrayInput is an input type that accepts MongoArray and MongoArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `MongoArrayInput` via:
|
||||||
|
//
|
||||||
|
// MongoArray{ MongoArgs{...} }
|
||||||
|
type MongoArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMongoArrayOutput() MongoArrayOutput
|
||||||
|
ToMongoArrayOutputWithContext(context.Context) MongoArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MongoArray []MongoInput
|
||||||
|
|
||||||
|
func (MongoArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Mongo)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MongoArray) ToMongoArrayOutput() MongoArrayOutput {
|
||||||
|
return i.ToMongoArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MongoArray) ToMongoArrayOutputWithContext(ctx context.Context) MongoArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MongoArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MongoMapInput is an input type that accepts MongoMap and MongoMapOutput values.
|
||||||
|
// You can construct a concrete instance of `MongoMapInput` via:
|
||||||
|
//
|
||||||
|
// MongoMap{ "key": MongoArgs{...} }
|
||||||
|
type MongoMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMongoMapOutput() MongoMapOutput
|
||||||
|
ToMongoMapOutputWithContext(context.Context) MongoMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MongoMap map[string]MongoInput
|
||||||
|
|
||||||
|
func (MongoMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Mongo)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MongoMap) ToMongoMapOutput() MongoMapOutput {
|
||||||
|
return i.ToMongoMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MongoMap) ToMongoMapOutputWithContext(ctx context.Context) MongoMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MongoMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MongoOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MongoOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Mongo)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoOutput) ToMongoOutput() MongoOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoOutput) ToMongoOutputWithContext(ctx context.Context) MongoOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
func (o MongoOutput) AppName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
func (o MongoOutput) ApplicationStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.ApplicationStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
func (o MongoOutput) Args() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringArrayOutput { return v.Args }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
func (o MongoOutput) Command() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.Command }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
func (o MongoOutput) CpuLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.CpuLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
func (o MongoOutput) CpuReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.CpuReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
func (o MongoOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password for the root user.
|
||||||
|
func (o MongoOutput) DatabasePassword() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.DatabasePassword }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Root username to create.
|
||||||
|
func (o MongoOutput) DatabaseUser() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.DatabaseUser }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o MongoOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
func (o MongoOutput) DetachDokployNetwork() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.BoolOutput { return v.DetachDokployNetwork }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MongoDB image to run. Defaults to `mongo:8`.
|
||||||
|
func (o MongoOutput) DockerImage() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.DockerImage }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
func (o MongoOutput) EndpointSpecSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.EndpointSpecSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
func (o MongoOutput) Env() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.Env }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment this database belongs to.
|
||||||
|
func (o MongoOutput) EnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
func (o MongoOutput) ExternalPort() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.IntPtrOutput { return v.ExternalPort }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
func (o MongoOutput) HealthCheckSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.HealthCheckSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
func (o MongoOutput) LabelsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.LabelsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
func (o MongoOutput) MemoryLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.MemoryLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
func (o MongoOutput) MemoryReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.MemoryReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
func (o MongoOutput) ModeSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.ModeSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the database.
|
||||||
|
func (o MongoOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
func (o MongoOutput) NetworkIds() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringArrayOutput { return v.NetworkIds }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
func (o MongoOutput) NetworkSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.NetworkSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
func (o MongoOutput) PlacementSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.PlacementSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start the instance as a single-node replica set.
|
||||||
|
func (o MongoOutput) ReplicaSets() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.BoolOutput { return v.ReplicaSets }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Number of replicas to run.
|
||||||
|
func (o MongoOutput) Replicas() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.IntOutput { return v.Replicas }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
func (o MongoOutput) RestartPolicySwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.RestartPolicySwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
func (o MongoOutput) RollbackConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.RollbackConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
func (o MongoOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
func (o MongoOutput) StopGracePeriodSwarm() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.IntPtrOutput { return v.StopGracePeriodSwarm }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
func (o MongoOutput) UlimitsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.UlimitsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
func (o MongoOutput) UpdateConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mongo) pulumi.StringPtrOutput { return v.UpdateConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MongoArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MongoArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Mongo)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoArrayOutput) ToMongoArrayOutput() MongoArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoArrayOutput) ToMongoArrayOutputWithContext(ctx context.Context) MongoArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoArrayOutput) Index(i pulumi.IntInput) MongoOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Mongo {
|
||||||
|
return vs[0].([]*Mongo)[vs[1].(int)]
|
||||||
|
}).(MongoOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MongoMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MongoMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Mongo)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoMapOutput) ToMongoMapOutput() MongoMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoMapOutput) ToMongoMapOutputWithContext(ctx context.Context) MongoMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MongoMapOutput) MapIndex(k pulumi.StringInput) MongoOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Mongo {
|
||||||
|
return vs[0].(map[string]*Mongo)[vs[1].(string)]
|
||||||
|
}).(MongoOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MongoInput)(nil)).Elem(), &Mongo{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MongoArrayInput)(nil)).Elem(), MongoArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MongoMapInput)(nil)).Elem(), MongoMap{})
|
||||||
|
pulumi.RegisterOutputType(MongoOutput{})
|
||||||
|
pulumi.RegisterOutputType(MongoArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(MongoMapOutput{})
|
||||||
|
}
|
||||||
332
sdk/go/dokploy/mount.go
generated
Normal file
332
sdk/go/dokploy/mount.go
generated
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Mount struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Contents of the generated file, when `type` is `file`.
|
||||||
|
Content pulumi.StringPtrOutput `pulumi:"content"`
|
||||||
|
// Path of the generated file, when `type` is `file`.
|
||||||
|
FilePath pulumi.StringPtrOutput `pulumi:"filePath"`
|
||||||
|
// Path on the host, when `type` is `bind`.
|
||||||
|
HostPath pulumi.StringPtrOutput `pulumi:"hostPath"`
|
||||||
|
// Path inside the container where the mount appears.
|
||||||
|
MountPath pulumi.StringOutput `pulumi:"mountPath"`
|
||||||
|
// ID of the service this mount attaches to. Must match `serviceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
ServiceId pulumi.StringOutput `pulumi:"serviceId"`
|
||||||
|
// The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||||
|
ServiceType pulumi.StringOutput `pulumi:"serviceType"`
|
||||||
|
// The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||||
|
Type pulumi.StringOutput `pulumi:"type"`
|
||||||
|
// Name of the Docker volume, when `type` is `volume`.
|
||||||
|
VolumeName pulumi.StringPtrOutput `pulumi:"volumeName"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMount registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewMount(ctx *pulumi.Context,
|
||||||
|
name string, args *MountArgs, opts ...pulumi.ResourceOption) (*Mount, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.MountPath == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'MountPath'")
|
||||||
|
}
|
||||||
|
if args.ServiceId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'ServiceId'")
|
||||||
|
}
|
||||||
|
if args.ServiceType == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'ServiceType'")
|
||||||
|
}
|
||||||
|
if args.Type == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Type'")
|
||||||
|
}
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Mount
|
||||||
|
err := ctx.RegisterResource("dokploy:index/mount:Mount", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMount gets an existing Mount 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 GetMount(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *MountState, opts ...pulumi.ResourceOption) (*Mount, error) {
|
||||||
|
var resource Mount
|
||||||
|
err := ctx.ReadResource("dokploy:index/mount:Mount", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Mount resources.
|
||||||
|
type mountState struct {
|
||||||
|
// Contents of the generated file, when `type` is `file`.
|
||||||
|
Content *string `pulumi:"content"`
|
||||||
|
// Path of the generated file, when `type` is `file`.
|
||||||
|
FilePath *string `pulumi:"filePath"`
|
||||||
|
// Path on the host, when `type` is `bind`.
|
||||||
|
HostPath *string `pulumi:"hostPath"`
|
||||||
|
// Path inside the container where the mount appears.
|
||||||
|
MountPath *string `pulumi:"mountPath"`
|
||||||
|
// ID of the service this mount attaches to. Must match `serviceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
ServiceId *string `pulumi:"serviceId"`
|
||||||
|
// The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||||
|
ServiceType *string `pulumi:"serviceType"`
|
||||||
|
// The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||||
|
Type *string `pulumi:"type"`
|
||||||
|
// Name of the Docker volume, when `type` is `volume`.
|
||||||
|
VolumeName *string `pulumi:"volumeName"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MountState struct {
|
||||||
|
// Contents of the generated file, when `type` is `file`.
|
||||||
|
Content pulumi.StringPtrInput
|
||||||
|
// Path of the generated file, when `type` is `file`.
|
||||||
|
FilePath pulumi.StringPtrInput
|
||||||
|
// Path on the host, when `type` is `bind`.
|
||||||
|
HostPath pulumi.StringPtrInput
|
||||||
|
// Path inside the container where the mount appears.
|
||||||
|
MountPath pulumi.StringPtrInput
|
||||||
|
// ID of the service this mount attaches to. Must match `serviceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
ServiceId pulumi.StringPtrInput
|
||||||
|
// The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||||
|
ServiceType pulumi.StringPtrInput
|
||||||
|
// The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||||
|
Type pulumi.StringPtrInput
|
||||||
|
// Name of the Docker volume, when `type` is `volume`.
|
||||||
|
VolumeName pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MountState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mountState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type mountArgs struct {
|
||||||
|
// Contents of the generated file, when `type` is `file`.
|
||||||
|
Content *string `pulumi:"content"`
|
||||||
|
// Path of the generated file, when `type` is `file`.
|
||||||
|
FilePath *string `pulumi:"filePath"`
|
||||||
|
// Path on the host, when `type` is `bind`.
|
||||||
|
HostPath *string `pulumi:"hostPath"`
|
||||||
|
// Path inside the container where the mount appears.
|
||||||
|
MountPath string `pulumi:"mountPath"`
|
||||||
|
// ID of the service this mount attaches to. Must match `serviceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
ServiceId string `pulumi:"serviceId"`
|
||||||
|
// The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||||
|
ServiceType string `pulumi:"serviceType"`
|
||||||
|
// The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||||
|
Type string `pulumi:"type"`
|
||||||
|
// Name of the Docker volume, when `type` is `volume`.
|
||||||
|
VolumeName *string `pulumi:"volumeName"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Mount resource.
|
||||||
|
type MountArgs struct {
|
||||||
|
// Contents of the generated file, when `type` is `file`.
|
||||||
|
Content pulumi.StringPtrInput
|
||||||
|
// Path of the generated file, when `type` is `file`.
|
||||||
|
FilePath pulumi.StringPtrInput
|
||||||
|
// Path on the host, when `type` is `bind`.
|
||||||
|
HostPath pulumi.StringPtrInput
|
||||||
|
// Path inside the container where the mount appears.
|
||||||
|
MountPath pulumi.StringInput
|
||||||
|
// ID of the service this mount attaches to. Must match `serviceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
ServiceId pulumi.StringInput
|
||||||
|
// The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||||
|
ServiceType pulumi.StringInput
|
||||||
|
// The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||||
|
Type pulumi.StringInput
|
||||||
|
// Name of the Docker volume, when `type` is `volume`.
|
||||||
|
VolumeName pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MountArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mountArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type MountInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMountOutput() MountOutput
|
||||||
|
ToMountOutputWithContext(ctx context.Context) MountOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Mount) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Mount)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Mount) ToMountOutput() MountOutput {
|
||||||
|
return i.ToMountOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Mount) ToMountOutputWithContext(ctx context.Context) MountOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MountOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MountArrayInput is an input type that accepts MountArray and MountArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `MountArrayInput` via:
|
||||||
|
//
|
||||||
|
// MountArray{ MountArgs{...} }
|
||||||
|
type MountArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMountArrayOutput() MountArrayOutput
|
||||||
|
ToMountArrayOutputWithContext(context.Context) MountArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MountArray []MountInput
|
||||||
|
|
||||||
|
func (MountArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Mount)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MountArray) ToMountArrayOutput() MountArrayOutput {
|
||||||
|
return i.ToMountArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MountArray) ToMountArrayOutputWithContext(ctx context.Context) MountArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MountArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MountMapInput is an input type that accepts MountMap and MountMapOutput values.
|
||||||
|
// You can construct a concrete instance of `MountMapInput` via:
|
||||||
|
//
|
||||||
|
// MountMap{ "key": MountArgs{...} }
|
||||||
|
type MountMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMountMapOutput() MountMapOutput
|
||||||
|
ToMountMapOutputWithContext(context.Context) MountMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MountMap map[string]MountInput
|
||||||
|
|
||||||
|
func (MountMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Mount)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MountMap) ToMountMapOutput() MountMapOutput {
|
||||||
|
return i.ToMountMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MountMap) ToMountMapOutputWithContext(ctx context.Context) MountMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MountMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MountOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MountOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Mount)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountOutput) ToMountOutput() MountOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountOutput) ToMountOutputWithContext(ctx context.Context) MountOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contents of the generated file, when `type` is `file`.
|
||||||
|
func (o MountOutput) Content() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringPtrOutput { return v.Content }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path of the generated file, when `type` is `file`.
|
||||||
|
func (o MountOutput) FilePath() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringPtrOutput { return v.FilePath }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path on the host, when `type` is `bind`.
|
||||||
|
func (o MountOutput) HostPath() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringPtrOutput { return v.HostPath }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path inside the container where the mount appears.
|
||||||
|
func (o MountOutput) MountPath() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringOutput { return v.MountPath }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID of the service this mount attaches to. Must match `serviceType` — an application ID, a compose ID, a postgres ID, and so on.
|
||||||
|
func (o MountOutput) ServiceId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringOutput { return v.ServiceId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// The kind of service this mount attaches to. Valid values: `application`, `postgres`, `mysql`, `mariadb`, `mongo`, `redis`, `compose`.
|
||||||
|
func (o MountOutput) ServiceType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringOutput { return v.ServiceType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// The kind of mount to create. Valid values: `bind`, `volume`, `file`.
|
||||||
|
func (o MountOutput) Type() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name of the Docker volume, when `type` is `volume`.
|
||||||
|
func (o MountOutput) VolumeName() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Mount) pulumi.StringPtrOutput { return v.VolumeName }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MountArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MountArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Mount)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountArrayOutput) ToMountArrayOutput() MountArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountArrayOutput) ToMountArrayOutputWithContext(ctx context.Context) MountArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountArrayOutput) Index(i pulumi.IntInput) MountOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Mount {
|
||||||
|
return vs[0].([]*Mount)[vs[1].(int)]
|
||||||
|
}).(MountOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MountMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MountMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Mount)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountMapOutput) ToMountMapOutput() MountMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountMapOutput) ToMountMapOutputWithContext(ctx context.Context) MountMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MountMapOutput) MapIndex(k pulumi.StringInput) MountOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Mount {
|
||||||
|
return vs[0].(map[string]*Mount)[vs[1].(string)]
|
||||||
|
}).(MountOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MountInput)(nil)).Elem(), &Mount{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MountArrayInput)(nil)).Elem(), MountArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MountMapInput)(nil)).Elem(), MountMap{})
|
||||||
|
pulumi.RegisterOutputType(MountOutput{})
|
||||||
|
pulumi.RegisterOutputType(MountArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(MountMapOutput{})
|
||||||
|
}
|
||||||
731
sdk/go/dokploy/mySql.go
generated
Normal file
731
sdk/go/dokploy/mySql.go
generated
Normal file
@@ -0,0 +1,731 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type MySql struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringOutput `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringOutput `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayOutput `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrOutput `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrOutput `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrOutput `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringOutput `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringOutput `pulumi:"databasePassword"`
|
||||||
|
// Password for the MySQL `root` user.
|
||||||
|
DatabaseRootPassword pulumi.StringOutput `pulumi:"databaseRootPassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringOutput `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolOutput `pulumi:"detachDokployNetwork"`
|
||||||
|
// MySQL image to run, for example `mysql:8`.
|
||||||
|
DockerImage pulumi.StringOutput `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrOutput `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrOutput `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringOutput `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrOutput `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrOutput `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrOutput `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrOutput `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrOutput `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrOutput `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayOutput `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrOutput `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrOutput `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntOutput `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrOutput `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrOutput `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrOutput `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrOutput `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrOutput `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMySql registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewMySql(ctx *pulumi.Context,
|
||||||
|
name string, args *MySqlArgs, opts ...pulumi.ResourceOption) (*MySql, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.DatabaseName == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseName'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabasePassword'")
|
||||||
|
}
|
||||||
|
if args.DatabaseRootPassword == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseRootPassword'")
|
||||||
|
}
|
||||||
|
if args.DatabaseUser == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseUser'")
|
||||||
|
}
|
||||||
|
if args.DockerImage == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DockerImage'")
|
||||||
|
}
|
||||||
|
if args.EnvironmentId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'EnvironmentId'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword != nil {
|
||||||
|
args.DatabasePassword = pulumi.ToSecret(args.DatabasePassword).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
if args.DatabaseRootPassword != nil {
|
||||||
|
args.DatabaseRootPassword = pulumi.ToSecret(args.DatabaseRootPassword).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"databasePassword",
|
||||||
|
"databaseRootPassword",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource MySql
|
||||||
|
err := ctx.RegisterResource("dokploy:index/mySql:MySql", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMySql gets an existing MySql 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 GetMySql(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *MySqlState, opts ...pulumi.ResourceOption) (*MySql, error) {
|
||||||
|
var resource MySql
|
||||||
|
err := ctx.ReadResource("dokploy:index/mySql:MySql", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering MySql resources.
|
||||||
|
type mySqlState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus *string `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName *string `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword *string `pulumi:"databasePassword"`
|
||||||
|
// Password for the MySQL `root` user.
|
||||||
|
DatabaseRootPassword *string `pulumi:"databaseRootPassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser *string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// MySQL image to run, for example `mysql:8`.
|
||||||
|
DockerImage *string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId *string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MySqlState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringPtrInput
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringPtrInput
|
||||||
|
// Password for the MySQL `root` user.
|
||||||
|
DatabaseRootPassword pulumi.StringPtrInput
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// MySQL image to run, for example `mysql:8`.
|
||||||
|
DockerImage pulumi.StringPtrInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringPtrInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MySqlState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mySqlState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type mySqlArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName string `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword string `pulumi:"databasePassword"`
|
||||||
|
// Password for the MySQL `root` user.
|
||||||
|
DatabaseRootPassword string `pulumi:"databaseRootPassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// MySQL image to run, for example `mysql:8`.
|
||||||
|
DockerImage string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a MySql resource.
|
||||||
|
type MySqlArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringInput
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringInput
|
||||||
|
// Password for the MySQL `root` user.
|
||||||
|
DatabaseRootPassword pulumi.StringInput
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// MySQL image to run, for example `mysql:8`.
|
||||||
|
DockerImage pulumi.StringInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (MySqlArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*mySqlArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type MySqlInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMySqlOutput() MySqlOutput
|
||||||
|
ToMySqlOutputWithContext(ctx context.Context) MySqlOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*MySql) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**MySql)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *MySql) ToMySqlOutput() MySqlOutput {
|
||||||
|
return i.ToMySqlOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *MySql) ToMySqlOutputWithContext(ctx context.Context) MySqlOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MySqlOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MySqlArrayInput is an input type that accepts MySqlArray and MySqlArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `MySqlArrayInput` via:
|
||||||
|
//
|
||||||
|
// MySqlArray{ MySqlArgs{...} }
|
||||||
|
type MySqlArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMySqlArrayOutput() MySqlArrayOutput
|
||||||
|
ToMySqlArrayOutputWithContext(context.Context) MySqlArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MySqlArray []MySqlInput
|
||||||
|
|
||||||
|
func (MySqlArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*MySql)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MySqlArray) ToMySqlArrayOutput() MySqlArrayOutput {
|
||||||
|
return i.ToMySqlArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MySqlArray) ToMySqlArrayOutputWithContext(ctx context.Context) MySqlArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MySqlArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MySqlMapInput is an input type that accepts MySqlMap and MySqlMapOutput values.
|
||||||
|
// You can construct a concrete instance of `MySqlMapInput` via:
|
||||||
|
//
|
||||||
|
// MySqlMap{ "key": MySqlArgs{...} }
|
||||||
|
type MySqlMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToMySqlMapOutput() MySqlMapOutput
|
||||||
|
ToMySqlMapOutputWithContext(context.Context) MySqlMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type MySqlMap map[string]MySqlInput
|
||||||
|
|
||||||
|
func (MySqlMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*MySql)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MySqlMap) ToMySqlMapOutput() MySqlMapOutput {
|
||||||
|
return i.ToMySqlMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i MySqlMap) ToMySqlMapOutputWithContext(ctx context.Context) MySqlMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(MySqlMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MySqlOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MySqlOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**MySql)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlOutput) ToMySqlOutput() MySqlOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlOutput) ToMySqlOutputWithContext(ctx context.Context) MySqlOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
func (o MySqlOutput) AppName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
func (o MySqlOutput) ApplicationStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.ApplicationStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
func (o MySqlOutput) Args() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringArrayOutput { return v.Args }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
func (o MySqlOutput) Command() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.Command }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
func (o MySqlOutput) CpuLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.CpuLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
func (o MySqlOutput) CpuReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.CpuReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
func (o MySqlOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name of the database to create.
|
||||||
|
func (o MySqlOutput) DatabaseName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.DatabaseName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password for the database user.
|
||||||
|
func (o MySqlOutput) DatabasePassword() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.DatabasePassword }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password for the MySQL `root` user.
|
||||||
|
func (o MySqlOutput) DatabaseRootPassword() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.DatabaseRootPassword }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Database user to create.
|
||||||
|
func (o MySqlOutput) DatabaseUser() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.DatabaseUser }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o MySqlOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
func (o MySqlOutput) DetachDokployNetwork() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.BoolOutput { return v.DetachDokployNetwork }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MySQL image to run, for example `mysql:8`.
|
||||||
|
func (o MySqlOutput) DockerImage() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.DockerImage }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
func (o MySqlOutput) EndpointSpecSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.EndpointSpecSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
func (o MySqlOutput) Env() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.Env }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment this database belongs to.
|
||||||
|
func (o MySqlOutput) EnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
func (o MySqlOutput) ExternalPort() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.IntPtrOutput { return v.ExternalPort }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
func (o MySqlOutput) HealthCheckSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.HealthCheckSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
func (o MySqlOutput) LabelsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.LabelsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
func (o MySqlOutput) MemoryLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.MemoryLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
func (o MySqlOutput) MemoryReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.MemoryReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
func (o MySqlOutput) ModeSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.ModeSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the database.
|
||||||
|
func (o MySqlOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
func (o MySqlOutput) NetworkIds() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringArrayOutput { return v.NetworkIds }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
func (o MySqlOutput) NetworkSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.NetworkSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
func (o MySqlOutput) PlacementSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.PlacementSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Number of replicas to run.
|
||||||
|
func (o MySqlOutput) Replicas() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.IntOutput { return v.Replicas }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
func (o MySqlOutput) RestartPolicySwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.RestartPolicySwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
func (o MySqlOutput) RollbackConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.RollbackConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
func (o MySqlOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
func (o MySqlOutput) StopGracePeriodSwarm() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.IntPtrOutput { return v.StopGracePeriodSwarm }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
func (o MySqlOutput) UlimitsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.UlimitsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
func (o MySqlOutput) UpdateConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *MySql) pulumi.StringPtrOutput { return v.UpdateConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MySqlArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MySqlArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*MySql)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlArrayOutput) ToMySqlArrayOutput() MySqlArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlArrayOutput) ToMySqlArrayOutputWithContext(ctx context.Context) MySqlArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlArrayOutput) Index(i pulumi.IntInput) MySqlOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MySql {
|
||||||
|
return vs[0].([]*MySql)[vs[1].(int)]
|
||||||
|
}).(MySqlOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MySqlMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (MySqlMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*MySql)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlMapOutput) ToMySqlMapOutput() MySqlMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlMapOutput) ToMySqlMapOutputWithContext(ctx context.Context) MySqlMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o MySqlMapOutput) MapIndex(k pulumi.StringInput) MySqlOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MySql {
|
||||||
|
return vs[0].(map[string]*MySql)[vs[1].(string)]
|
||||||
|
}).(MySqlOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MySqlInput)(nil)).Elem(), &MySql{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MySqlArrayInput)(nil)).Elem(), MySqlArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*MySqlMapInput)(nil)).Elem(), MySqlMap{})
|
||||||
|
pulumi.RegisterOutputType(MySqlOutput{})
|
||||||
|
pulumi.RegisterOutputType(MySqlArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(MySqlMapOutput{})
|
||||||
|
}
|
||||||
287
sdk/go/dokploy/port.go
generated
Normal file
287
sdk/go/dokploy/port.go
generated
Normal file
@@ -0,0 +1,287 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Port struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Application this port belongs to.
|
||||||
|
ApplicationId pulumi.StringOutput `pulumi:"applicationId"`
|
||||||
|
// Transport protocol. Valid values: `tcp`, `udp`.
|
||||||
|
Protocol pulumi.StringOutput `pulumi:"protocol"`
|
||||||
|
// Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
|
||||||
|
PublishMode pulumi.StringOutput `pulumi:"publishMode"`
|
||||||
|
// Port exposed on the host.
|
||||||
|
PublishedPort pulumi.IntOutput `pulumi:"publishedPort"`
|
||||||
|
// Port the container listens on.
|
||||||
|
TargetPort pulumi.IntOutput `pulumi:"targetPort"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPort registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewPort(ctx *pulumi.Context,
|
||||||
|
name string, args *PortArgs, opts ...pulumi.ResourceOption) (*Port, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.ApplicationId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'ApplicationId'")
|
||||||
|
}
|
||||||
|
if args.Protocol == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Protocol'")
|
||||||
|
}
|
||||||
|
if args.PublishedPort == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'PublishedPort'")
|
||||||
|
}
|
||||||
|
if args.TargetPort == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'TargetPort'")
|
||||||
|
}
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Port
|
||||||
|
err := ctx.RegisterResource("dokploy:index/port:Port", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPort gets an existing Port 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 GetPort(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *PortState, opts ...pulumi.ResourceOption) (*Port, error) {
|
||||||
|
var resource Port
|
||||||
|
err := ctx.ReadResource("dokploy:index/port:Port", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Port resources.
|
||||||
|
type portState struct {
|
||||||
|
// Application this port belongs to.
|
||||||
|
ApplicationId *string `pulumi:"applicationId"`
|
||||||
|
// Transport protocol. Valid values: `tcp`, `udp`.
|
||||||
|
Protocol *string `pulumi:"protocol"`
|
||||||
|
// Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
|
||||||
|
PublishMode *string `pulumi:"publishMode"`
|
||||||
|
// Port exposed on the host.
|
||||||
|
PublishedPort *int `pulumi:"publishedPort"`
|
||||||
|
// Port the container listens on.
|
||||||
|
TargetPort *int `pulumi:"targetPort"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PortState struct {
|
||||||
|
// Application this port belongs to.
|
||||||
|
ApplicationId pulumi.StringPtrInput
|
||||||
|
// Transport protocol. Valid values: `tcp`, `udp`.
|
||||||
|
Protocol pulumi.StringPtrInput
|
||||||
|
// Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
|
||||||
|
PublishMode pulumi.StringPtrInput
|
||||||
|
// Port exposed on the host.
|
||||||
|
PublishedPort pulumi.IntPtrInput
|
||||||
|
// Port the container listens on.
|
||||||
|
TargetPort pulumi.IntPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PortState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*portState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type portArgs struct {
|
||||||
|
// Application this port belongs to.
|
||||||
|
ApplicationId string `pulumi:"applicationId"`
|
||||||
|
// Transport protocol. Valid values: `tcp`, `udp`.
|
||||||
|
Protocol string `pulumi:"protocol"`
|
||||||
|
// Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
|
||||||
|
PublishMode *string `pulumi:"publishMode"`
|
||||||
|
// Port exposed on the host.
|
||||||
|
PublishedPort int `pulumi:"publishedPort"`
|
||||||
|
// Port the container listens on.
|
||||||
|
TargetPort int `pulumi:"targetPort"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Port resource.
|
||||||
|
type PortArgs struct {
|
||||||
|
// Application this port belongs to.
|
||||||
|
ApplicationId pulumi.StringInput
|
||||||
|
// Transport protocol. Valid values: `tcp`, `udp`.
|
||||||
|
Protocol pulumi.StringInput
|
||||||
|
// Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
|
||||||
|
PublishMode pulumi.StringPtrInput
|
||||||
|
// Port exposed on the host.
|
||||||
|
PublishedPort pulumi.IntInput
|
||||||
|
// Port the container listens on.
|
||||||
|
TargetPort pulumi.IntInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PortArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*portArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type PortInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToPortOutput() PortOutput
|
||||||
|
ToPortOutputWithContext(ctx context.Context) PortOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Port) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Port)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Port) ToPortOutput() PortOutput {
|
||||||
|
return i.ToPortOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Port) ToPortOutputWithContext(ctx context.Context) PortOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(PortOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PortArrayInput is an input type that accepts PortArray and PortArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `PortArrayInput` via:
|
||||||
|
//
|
||||||
|
// PortArray{ PortArgs{...} }
|
||||||
|
type PortArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToPortArrayOutput() PortArrayOutput
|
||||||
|
ToPortArrayOutputWithContext(context.Context) PortArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type PortArray []PortInput
|
||||||
|
|
||||||
|
func (PortArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Port)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PortArray) ToPortArrayOutput() PortArrayOutput {
|
||||||
|
return i.ToPortArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PortArray) ToPortArrayOutputWithContext(ctx context.Context) PortArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(PortArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PortMapInput is an input type that accepts PortMap and PortMapOutput values.
|
||||||
|
// You can construct a concrete instance of `PortMapInput` via:
|
||||||
|
//
|
||||||
|
// PortMap{ "key": PortArgs{...} }
|
||||||
|
type PortMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToPortMapOutput() PortMapOutput
|
||||||
|
ToPortMapOutputWithContext(context.Context) PortMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type PortMap map[string]PortInput
|
||||||
|
|
||||||
|
func (PortMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Port)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PortMap) ToPortMapOutput() PortMapOutput {
|
||||||
|
return i.ToPortMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PortMap) ToPortMapOutputWithContext(ctx context.Context) PortMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(PortMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type PortOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (PortOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Port)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortOutput) ToPortOutput() PortOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortOutput) ToPortOutputWithContext(ctx context.Context) PortOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Application this port belongs to.
|
||||||
|
func (o PortOutput) ApplicationId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Port) pulumi.StringOutput { return v.ApplicationId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Transport protocol. Valid values: `tcp`, `udp`.
|
||||||
|
func (o PortOutput) Protocol() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Port) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm publish mode. `host` binds directly to the node; `ingress` uses the swarm routing mesh. Valid values: `ingress`, `host`.
|
||||||
|
func (o PortOutput) PublishMode() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Port) pulumi.StringOutput { return v.PublishMode }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Port exposed on the host.
|
||||||
|
func (o PortOutput) PublishedPort() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *Port) pulumi.IntOutput { return v.PublishedPort }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Port the container listens on.
|
||||||
|
func (o PortOutput) TargetPort() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *Port) pulumi.IntOutput { return v.TargetPort }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type PortArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (PortArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Port)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortArrayOutput) ToPortArrayOutput() PortArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortArrayOutput) ToPortArrayOutputWithContext(ctx context.Context) PortArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortArrayOutput) Index(i pulumi.IntInput) PortOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Port {
|
||||||
|
return vs[0].([]*Port)[vs[1].(int)]
|
||||||
|
}).(PortOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type PortMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (PortMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Port)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortMapOutput) ToPortMapOutput() PortMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortMapOutput) ToPortMapOutputWithContext(ctx context.Context) PortMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PortMapOutput) MapIndex(k pulumi.StringInput) PortOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Port {
|
||||||
|
return vs[0].(map[string]*Port)[vs[1].(string)]
|
||||||
|
}).(PortOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*PortInput)(nil)).Elem(), &Port{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*PortArrayInput)(nil)).Elem(), PortArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*PortMapInput)(nil)).Elem(), PortMap{})
|
||||||
|
pulumi.RegisterOutputType(PortOutput{})
|
||||||
|
pulumi.RegisterOutputType(PortArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(PortMapOutput{})
|
||||||
|
}
|
||||||
709
sdk/go/dokploy/postgres.go
generated
Normal file
709
sdk/go/dokploy/postgres.go
generated
Normal file
@@ -0,0 +1,709 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Postgres struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringOutput `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringOutput `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayOutput `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrOutput `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrOutput `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrOutput `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringOutput `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringOutput `pulumi:"databasePassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringOutput `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolOutput `pulumi:"detachDokployNetwork"`
|
||||||
|
// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
DockerImage pulumi.StringOutput `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrOutput `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrOutput `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringOutput `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrOutput `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrOutput `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrOutput `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrOutput `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrOutput `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrOutput `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayOutput `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrOutput `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrOutput `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntOutput `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrOutput `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrOutput `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrOutput `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrOutput `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrOutput `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostgres registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewPostgres(ctx *pulumi.Context,
|
||||||
|
name string, args *PostgresArgs, opts ...pulumi.ResourceOption) (*Postgres, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.DatabaseName == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseName'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabasePassword'")
|
||||||
|
}
|
||||||
|
if args.DatabaseUser == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabaseUser'")
|
||||||
|
}
|
||||||
|
if args.DockerImage == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DockerImage'")
|
||||||
|
}
|
||||||
|
if args.EnvironmentId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'EnvironmentId'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword != nil {
|
||||||
|
args.DatabasePassword = pulumi.ToSecret(args.DatabasePassword).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"databasePassword",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Postgres
|
||||||
|
err := ctx.RegisterResource("dokploy:index/postgres:Postgres", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPostgres gets an existing Postgres 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 GetPostgres(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *PostgresState, opts ...pulumi.ResourceOption) (*Postgres, error) {
|
||||||
|
var resource Postgres
|
||||||
|
err := ctx.ReadResource("dokploy:index/postgres:Postgres", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Postgres resources.
|
||||||
|
type postgresState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus *string `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName *string `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword *string `pulumi:"databasePassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser *string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
DockerImage *string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId *string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostgresState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringPtrInput
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringPtrInput
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
DockerImage pulumi.StringPtrInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringPtrInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PostgresState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*postgresState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type postgresArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName string `pulumi:"databaseName"`
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword string `pulumi:"databasePassword"`
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser string `pulumi:"databaseUser"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
DockerImage string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Postgres resource.
|
||||||
|
type PostgresArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// Name of the database to create.
|
||||||
|
DatabaseName pulumi.StringInput
|
||||||
|
// Password for the database user.
|
||||||
|
DatabasePassword pulumi.StringInput
|
||||||
|
// Database user to create.
|
||||||
|
DatabaseUser pulumi.StringInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
DockerImage pulumi.StringInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PostgresArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*postgresArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostgresInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToPostgresOutput() PostgresOutput
|
||||||
|
ToPostgresOutputWithContext(ctx context.Context) PostgresOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Postgres) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Postgres)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Postgres) ToPostgresOutput() PostgresOutput {
|
||||||
|
return i.ToPostgresOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Postgres) ToPostgresOutputWithContext(ctx context.Context) PostgresOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(PostgresOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PostgresArrayInput is an input type that accepts PostgresArray and PostgresArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `PostgresArrayInput` via:
|
||||||
|
//
|
||||||
|
// PostgresArray{ PostgresArgs{...} }
|
||||||
|
type PostgresArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToPostgresArrayOutput() PostgresArrayOutput
|
||||||
|
ToPostgresArrayOutputWithContext(context.Context) PostgresArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostgresArray []PostgresInput
|
||||||
|
|
||||||
|
func (PostgresArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Postgres)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PostgresArray) ToPostgresArrayOutput() PostgresArrayOutput {
|
||||||
|
return i.ToPostgresArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PostgresArray) ToPostgresArrayOutputWithContext(ctx context.Context) PostgresArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(PostgresArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PostgresMapInput is an input type that accepts PostgresMap and PostgresMapOutput values.
|
||||||
|
// You can construct a concrete instance of `PostgresMapInput` via:
|
||||||
|
//
|
||||||
|
// PostgresMap{ "key": PostgresArgs{...} }
|
||||||
|
type PostgresMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToPostgresMapOutput() PostgresMapOutput
|
||||||
|
ToPostgresMapOutputWithContext(context.Context) PostgresMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostgresMap map[string]PostgresInput
|
||||||
|
|
||||||
|
func (PostgresMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Postgres)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PostgresMap) ToPostgresMapOutput() PostgresMapOutput {
|
||||||
|
return i.ToPostgresMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i PostgresMap) ToPostgresMapOutputWithContext(ctx context.Context) PostgresMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(PostgresMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostgresOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (PostgresOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Postgres)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresOutput) ToPostgresOutput() PostgresOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresOutput) ToPostgresOutputWithContext(ctx context.Context) PostgresOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
func (o PostgresOutput) AppName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
func (o PostgresOutput) ApplicationStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.ApplicationStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
func (o PostgresOutput) Args() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringArrayOutput { return v.Args }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
func (o PostgresOutput) Command() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.Command }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
func (o PostgresOutput) CpuLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.CpuLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
func (o PostgresOutput) CpuReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.CpuReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
func (o PostgresOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name of the database to create.
|
||||||
|
func (o PostgresOutput) DatabaseName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.DatabaseName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password for the database user.
|
||||||
|
func (o PostgresOutput) DatabasePassword() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.DatabasePassword }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Database user to create.
|
||||||
|
func (o PostgresOutput) DatabaseUser() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.DatabaseUser }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o PostgresOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
func (o PostgresOutput) DetachDokployNetwork() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.BoolOutput { return v.DetachDokployNetwork }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PostgreSQL image to run, for example `postgres:16`.
|
||||||
|
func (o PostgresOutput) DockerImage() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.DockerImage }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
func (o PostgresOutput) EndpointSpecSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.EndpointSpecSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
func (o PostgresOutput) Env() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.Env }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment this database belongs to.
|
||||||
|
func (o PostgresOutput) EnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
func (o PostgresOutput) ExternalPort() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.IntPtrOutput { return v.ExternalPort }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
func (o PostgresOutput) HealthCheckSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.HealthCheckSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
func (o PostgresOutput) LabelsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.LabelsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
func (o PostgresOutput) MemoryLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.MemoryLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
func (o PostgresOutput) MemoryReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.MemoryReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
func (o PostgresOutput) ModeSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.ModeSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the database.
|
||||||
|
func (o PostgresOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
func (o PostgresOutput) NetworkIds() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringArrayOutput { return v.NetworkIds }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
func (o PostgresOutput) NetworkSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.NetworkSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
func (o PostgresOutput) PlacementSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.PlacementSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Number of replicas to run.
|
||||||
|
func (o PostgresOutput) Replicas() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.IntOutput { return v.Replicas }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
func (o PostgresOutput) RestartPolicySwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.RestartPolicySwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
func (o PostgresOutput) RollbackConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.RollbackConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
func (o PostgresOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
func (o PostgresOutput) StopGracePeriodSwarm() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.IntPtrOutput { return v.StopGracePeriodSwarm }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
func (o PostgresOutput) UlimitsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.UlimitsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
func (o PostgresOutput) UpdateConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Postgres) pulumi.StringPtrOutput { return v.UpdateConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostgresArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (PostgresArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Postgres)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresArrayOutput) ToPostgresArrayOutput() PostgresArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresArrayOutput) ToPostgresArrayOutputWithContext(ctx context.Context) PostgresArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresArrayOutput) Index(i pulumi.IntInput) PostgresOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Postgres {
|
||||||
|
return vs[0].([]*Postgres)[vs[1].(int)]
|
||||||
|
}).(PostgresOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostgresMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (PostgresMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Postgres)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresMapOutput) ToPostgresMapOutput() PostgresMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresMapOutput) ToPostgresMapOutputWithContext(ctx context.Context) PostgresMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o PostgresMapOutput) MapIndex(k pulumi.StringInput) PostgresOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Postgres {
|
||||||
|
return vs[0].(map[string]*Postgres)[vs[1].(string)]
|
||||||
|
}).(PostgresOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*PostgresInput)(nil)).Elem(), &Postgres{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*PostgresArrayInput)(nil)).Elem(), PostgresArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*PostgresMapInput)(nil)).Elem(), PostgresMap{})
|
||||||
|
pulumi.RegisterOutputType(PostgresOutput{})
|
||||||
|
pulumi.RegisterOutputType(PostgresArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(PostgresMapOutput{})
|
||||||
|
}
|
||||||
277
sdk/go/dokploy/project.go
generated
Normal file
277
sdk/go/dokploy/project.go
generated
Normal file
@@ -0,0 +1,277 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Project struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the project was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// ID of the `production` environment that Dokploy creates automatically with the project.
|
||||||
|
DefaultEnvironmentId pulumi.StringOutput `pulumi:"defaultEnvironmentId"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
Env pulumi.StringOutput `pulumi:"env"`
|
||||||
|
// Display name of the project.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// Organization that owns the project.
|
||||||
|
OrganizationId pulumi.StringOutput `pulumi:"organizationId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewProject registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewProject(ctx *pulumi.Context,
|
||||||
|
name string, args *ProjectArgs, opts ...pulumi.ResourceOption) (*Project, error) {
|
||||||
|
if args == nil {
|
||||||
|
args = &ProjectArgs{}
|
||||||
|
}
|
||||||
|
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Project
|
||||||
|
err := ctx.RegisterResource("dokploy:index/project:Project", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetProject gets an existing Project resource's state with the given name, ID, and optional
|
||||||
|
// state properties that are used to uniquely qualify the lookup (nil if not required).
|
||||||
|
func GetProject(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *ProjectState, opts ...pulumi.ResourceOption) (*Project, error) {
|
||||||
|
var resource Project
|
||||||
|
err := ctx.ReadResource("dokploy:index/project:Project", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Project resources.
|
||||||
|
type projectState struct {
|
||||||
|
// RFC 3339 timestamp of when the project was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// ID of the `production` environment that Dokploy creates automatically with the project.
|
||||||
|
DefaultEnvironmentId *string `pulumi:"defaultEnvironmentId"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Display name of the project.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// Organization that owns the project.
|
||||||
|
OrganizationId *string `pulumi:"organizationId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectState struct {
|
||||||
|
// RFC 3339 timestamp of when the project was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// ID of the `production` environment that Dokploy creates automatically with the project.
|
||||||
|
DefaultEnvironmentId pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Display name of the project.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// Organization that owns the project.
|
||||||
|
OrganizationId pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ProjectState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*projectState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type projectArgs struct {
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Display name of the project.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Project resource.
|
||||||
|
type ProjectArgs struct {
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Display name of the project.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ProjectArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*projectArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToProjectOutput() ProjectOutput
|
||||||
|
ToProjectOutputWithContext(ctx context.Context) ProjectOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Project) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Project)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Project) ToProjectOutput() ProjectOutput {
|
||||||
|
return i.ToProjectOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Project) ToProjectOutputWithContext(ctx context.Context) ProjectOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(ProjectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProjectArrayInput is an input type that accepts ProjectArray and ProjectArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `ProjectArrayInput` via:
|
||||||
|
//
|
||||||
|
// ProjectArray{ ProjectArgs{...} }
|
||||||
|
type ProjectArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToProjectArrayOutput() ProjectArrayOutput
|
||||||
|
ToProjectArrayOutputWithContext(context.Context) ProjectArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectArray []ProjectInput
|
||||||
|
|
||||||
|
func (ProjectArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Project)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ProjectArray) ToProjectArrayOutput() ProjectArrayOutput {
|
||||||
|
return i.ToProjectArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ProjectArray) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(ProjectArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProjectMapInput is an input type that accepts ProjectMap and ProjectMapOutput values.
|
||||||
|
// You can construct a concrete instance of `ProjectMapInput` via:
|
||||||
|
//
|
||||||
|
// ProjectMap{ "key": ProjectArgs{...} }
|
||||||
|
type ProjectMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToProjectMapOutput() ProjectMapOutput
|
||||||
|
ToProjectMapOutputWithContext(context.Context) ProjectMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectMap map[string]ProjectInput
|
||||||
|
|
||||||
|
func (ProjectMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Project)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ProjectMap) ToProjectMapOutput() ProjectMapOutput {
|
||||||
|
return i.ToProjectMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ProjectMap) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(ProjectMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ProjectOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Project)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectOutput) ToProjectOutput() ProjectOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectOutput) ToProjectOutputWithContext(ctx context.Context) ProjectOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the project was created.
|
||||||
|
func (o ProjectOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID of the `production` environment that Dokploy creates automatically with the project.
|
||||||
|
func (o ProjectOutput) DefaultEnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.DefaultEnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o ProjectOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Project) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Project-wide environment variables in `KEY=value` format, one per line. These are shared with every service in the project.
|
||||||
|
func (o ProjectOutput) Env() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.Env }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the project.
|
||||||
|
func (o ProjectOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Organization that owns the project.
|
||||||
|
func (o ProjectOutput) OrganizationId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.OrganizationId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ProjectArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Project)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectArrayOutput) ToProjectArrayOutput() ProjectArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectArrayOutput) ToProjectArrayOutputWithContext(ctx context.Context) ProjectArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectArrayOutput) Index(i pulumi.IntInput) ProjectOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Project {
|
||||||
|
return vs[0].([]*Project)[vs[1].(int)]
|
||||||
|
}).(ProjectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ProjectMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Project)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectMapOutput) ToProjectMapOutput() ProjectMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectMapOutput) ToProjectMapOutputWithContext(ctx context.Context) ProjectMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProjectMapOutput) MapIndex(k pulumi.StringInput) ProjectOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Project {
|
||||||
|
return vs[0].(map[string]*Project)[vs[1].(string)]
|
||||||
|
}).(ProjectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*ProjectInput)(nil)).Elem(), &Project{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*ProjectArrayInput)(nil)).Elem(), ProjectArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*ProjectMapInput)(nil)).Elem(), ProjectMap{})
|
||||||
|
pulumi.RegisterOutputType(ProjectOutput{})
|
||||||
|
pulumi.RegisterOutputType(ProjectArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(ProjectMapOutput{})
|
||||||
|
}
|
||||||
162
sdk/go/dokploy/provider.go
generated
Normal file
162
sdk/go/dokploy/provider.go
generated
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
// The provider type for the dokploy package. By default, resources use package-wide configuration
|
||||||
|
// settings, however an explicit `Provider` instance may be created and passed during resource
|
||||||
|
// construction to achieve fine-grained programmatic control over provider settings. See the
|
||||||
|
// [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
|
||||||
|
type Provider struct {
|
||||||
|
pulumi.ProviderResourceState
|
||||||
|
|
||||||
|
// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
ApiKey pulumi.StringPtrOutput `pulumi:"apiKey"`
|
||||||
|
// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
Host pulumi.StringPtrOutput `pulumi:"host"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewProvider registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewProvider(ctx *pulumi.Context,
|
||||||
|
name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error) {
|
||||||
|
if args == nil {
|
||||||
|
args = &ProviderArgs{}
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.ApiKey == nil {
|
||||||
|
if d := internal.GetEnvOrDefault(nil, nil, "DOKPLOY_API_KEY"); d != nil {
|
||||||
|
args.ApiKey = pulumi.StringPtr(d.(string))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if args.Host == nil {
|
||||||
|
if d := internal.GetEnvOrDefault(nil, nil, "DOKPLOY_HOST"); d != nil {
|
||||||
|
args.Host = pulumi.StringPtr(d.(string))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if args.TimeoutSeconds == nil {
|
||||||
|
if d := internal.GetEnvOrDefault(nil, internal.ParseEnvInt, "DOKPLOY_TIMEOUT_SECONDS"); d != nil {
|
||||||
|
args.TimeoutSeconds = pulumi.IntPtr(d.(int))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if args.ApiKey != nil {
|
||||||
|
args.ApiKey = pulumi.ToSecret(args.ApiKey).(pulumi.StringPtrInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"apiKey",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Provider
|
||||||
|
err := ctx.RegisterResource("pulumi:providers:dokploy", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type providerArgs struct {
|
||||||
|
// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
ApiKey *string `pulumi:"apiKey"`
|
||||||
|
// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
Host *string `pulumi:"host"`
|
||||||
|
// Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
|
||||||
|
InsecureSkipVerify *bool `pulumi:"insecureSkipVerify"`
|
||||||
|
// Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
|
||||||
|
TimeoutSeconds *int `pulumi:"timeoutSeconds"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Provider resource.
|
||||||
|
type ProviderArgs struct {
|
||||||
|
// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
ApiKey pulumi.StringPtrInput
|
||||||
|
// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
Host pulumi.StringPtrInput
|
||||||
|
// Skip TLS certificate verification. Only use this for instances behind a self-signed certificate. Defaults to `false`.
|
||||||
|
InsecureSkipVerify pulumi.BoolPtrInput
|
||||||
|
// Per-request timeout in seconds. Defaults to `60`. May also be set with the `DOKPLOY_TIMEOUT_SECONDS` environment variable.
|
||||||
|
TimeoutSeconds pulumi.IntPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ProviderArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*providerArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
// This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.
|
||||||
|
func (r *Provider) TerraformConfig(ctx *pulumi.Context) (ProviderTerraformConfigResultOutput, error) {
|
||||||
|
out, err := ctx.Call("pulumi:providers:dokploy/terraformConfig", nil, ProviderTerraformConfigResultOutput{}, r)
|
||||||
|
if err != nil {
|
||||||
|
return ProviderTerraformConfigResultOutput{}, err
|
||||||
|
}
|
||||||
|
return out.(ProviderTerraformConfigResultOutput), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProviderTerraformConfigResult struct {
|
||||||
|
Result map[string]interface{} `pulumi:"result"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProviderTerraformConfigResultOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ProviderTerraformConfigResultOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*ProviderTerraformConfigResult)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProviderTerraformConfigResultOutput) Result() pulumi.MapOutput {
|
||||||
|
return o.ApplyT(func(v ProviderTerraformConfigResult) map[string]interface{} { return v.Result }).(pulumi.MapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProviderInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToProviderOutput() ProviderOutput
|
||||||
|
ToProviderOutputWithContext(ctx context.Context) ProviderOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Provider) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Provider)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Provider) ToProviderOutput() ProviderOutput {
|
||||||
|
return i.ToProviderOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProviderOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (ProviderOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Provider)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProviderOutput) ToProviderOutput() ProviderOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// API token generated in Dokploy under *Settings > Profile > API/CLI*. May also be set with the `DOKPLOY_API_KEY` environment variable.
|
||||||
|
func (o ProviderOutput) ApiKey() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ApiKey }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Base URL of the Dokploy instance, for example `https://dokploy.example.com`. A trailing `/api` is optional. May also be set with the `DOKPLOY_HOST` environment variable.
|
||||||
|
func (o ProviderOutput) Host() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Host }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{})
|
||||||
|
pulumi.RegisterOutputType(ProviderOutput{})
|
||||||
|
pulumi.RegisterOutputType(ProviderTerraformConfigResultOutput{})
|
||||||
|
}
|
||||||
6
sdk/go/dokploy/pulumi-plugin.json
generated
Normal file
6
sdk/go/dokploy/pulumi-plugin.json
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"resource": true,
|
||||||
|
"name": "dokploy",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"server": "github://api.github.com/maxvojtkov/pulumi-dokploy"
|
||||||
|
}
|
||||||
359
sdk/go/dokploy/pulumiTypes.go
generated
Normal file
359
sdk/go/dokploy/pulumiTypes.go
generated
Normal file
@@ -0,0 +1,359 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = internal.GetEnvOrDefault
|
||||||
|
|
||||||
|
type GetProjectEnvironment struct {
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
IsDefault bool `pulumi:"isDefault"`
|
||||||
|
Name string `pulumi:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetProjectEnvironmentInput is an input type that accepts GetProjectEnvironmentArgs and GetProjectEnvironmentOutput values.
|
||||||
|
// You can construct a concrete instance of `GetProjectEnvironmentInput` via:
|
||||||
|
//
|
||||||
|
// GetProjectEnvironmentArgs{...}
|
||||||
|
type GetProjectEnvironmentInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToGetProjectEnvironmentOutput() GetProjectEnvironmentOutput
|
||||||
|
ToGetProjectEnvironmentOutputWithContext(context.Context) GetProjectEnvironmentOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectEnvironmentArgs struct {
|
||||||
|
Id pulumi.StringInput `pulumi:"id"`
|
||||||
|
IsDefault pulumi.BoolInput `pulumi:"isDefault"`
|
||||||
|
Name pulumi.StringInput `pulumi:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (GetProjectEnvironmentArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetProjectEnvironment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectEnvironmentArgs) ToGetProjectEnvironmentOutput() GetProjectEnvironmentOutput {
|
||||||
|
return i.ToGetProjectEnvironmentOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectEnvironmentArgs) ToGetProjectEnvironmentOutputWithContext(ctx context.Context) GetProjectEnvironmentOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(GetProjectEnvironmentOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetProjectEnvironmentArrayInput is an input type that accepts GetProjectEnvironmentArray and GetProjectEnvironmentArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `GetProjectEnvironmentArrayInput` via:
|
||||||
|
//
|
||||||
|
// GetProjectEnvironmentArray{ GetProjectEnvironmentArgs{...} }
|
||||||
|
type GetProjectEnvironmentArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToGetProjectEnvironmentArrayOutput() GetProjectEnvironmentArrayOutput
|
||||||
|
ToGetProjectEnvironmentArrayOutputWithContext(context.Context) GetProjectEnvironmentArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectEnvironmentArray []GetProjectEnvironmentInput
|
||||||
|
|
||||||
|
func (GetProjectEnvironmentArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]GetProjectEnvironment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectEnvironmentArray) ToGetProjectEnvironmentArrayOutput() GetProjectEnvironmentArrayOutput {
|
||||||
|
return i.ToGetProjectEnvironmentArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectEnvironmentArray) ToGetProjectEnvironmentArrayOutputWithContext(ctx context.Context) GetProjectEnvironmentArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(GetProjectEnvironmentArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectEnvironmentOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetProjectEnvironmentOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetProjectEnvironment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentOutput) ToGetProjectEnvironmentOutput() GetProjectEnvironmentOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentOutput) ToGetProjectEnvironmentOutputWithContext(ctx context.Context) GetProjectEnvironmentOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentOutput) Id() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectEnvironment) string { return v.Id }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentOutput) IsDefault() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectEnvironment) bool { return v.IsDefault }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectEnvironment) string { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectEnvironmentArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetProjectEnvironmentArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]GetProjectEnvironment)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentArrayOutput) ToGetProjectEnvironmentArrayOutput() GetProjectEnvironmentArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentArrayOutput) ToGetProjectEnvironmentArrayOutputWithContext(ctx context.Context) GetProjectEnvironmentArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectEnvironmentArrayOutput) Index(i pulumi.IntInput) GetProjectEnvironmentOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetProjectEnvironment {
|
||||||
|
return vs[0].([]GetProjectEnvironment)[vs[1].(int)]
|
||||||
|
}).(GetProjectEnvironmentOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectsProject struct {
|
||||||
|
DefaultEnvironmentId string `pulumi:"defaultEnvironmentId"`
|
||||||
|
Description string `pulumi:"description"`
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
Name string `pulumi:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetProjectsProjectInput is an input type that accepts GetProjectsProjectArgs and GetProjectsProjectOutput values.
|
||||||
|
// You can construct a concrete instance of `GetProjectsProjectInput` via:
|
||||||
|
//
|
||||||
|
// GetProjectsProjectArgs{...}
|
||||||
|
type GetProjectsProjectInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToGetProjectsProjectOutput() GetProjectsProjectOutput
|
||||||
|
ToGetProjectsProjectOutputWithContext(context.Context) GetProjectsProjectOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectsProjectArgs struct {
|
||||||
|
DefaultEnvironmentId pulumi.StringInput `pulumi:"defaultEnvironmentId"`
|
||||||
|
Description pulumi.StringInput `pulumi:"description"`
|
||||||
|
Id pulumi.StringInput `pulumi:"id"`
|
||||||
|
Name pulumi.StringInput `pulumi:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (GetProjectsProjectArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetProjectsProject)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectsProjectArgs) ToGetProjectsProjectOutput() GetProjectsProjectOutput {
|
||||||
|
return i.ToGetProjectsProjectOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectsProjectArgs) ToGetProjectsProjectOutputWithContext(ctx context.Context) GetProjectsProjectOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(GetProjectsProjectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetProjectsProjectArrayInput is an input type that accepts GetProjectsProjectArray and GetProjectsProjectArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `GetProjectsProjectArrayInput` via:
|
||||||
|
//
|
||||||
|
// GetProjectsProjectArray{ GetProjectsProjectArgs{...} }
|
||||||
|
type GetProjectsProjectArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToGetProjectsProjectArrayOutput() GetProjectsProjectArrayOutput
|
||||||
|
ToGetProjectsProjectArrayOutputWithContext(context.Context) GetProjectsProjectArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectsProjectArray []GetProjectsProjectInput
|
||||||
|
|
||||||
|
func (GetProjectsProjectArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]GetProjectsProject)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectsProjectArray) ToGetProjectsProjectArrayOutput() GetProjectsProjectArrayOutput {
|
||||||
|
return i.ToGetProjectsProjectArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetProjectsProjectArray) ToGetProjectsProjectArrayOutputWithContext(ctx context.Context) GetProjectsProjectArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(GetProjectsProjectArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectsProjectOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetProjectsProjectOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetProjectsProject)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectOutput) ToGetProjectsProjectOutput() GetProjectsProjectOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectOutput) ToGetProjectsProjectOutputWithContext(ctx context.Context) GetProjectsProjectOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectOutput) DefaultEnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectsProject) string { return v.DefaultEnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectOutput) Description() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectsProject) string { return v.Description }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectOutput) Id() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectsProject) string { return v.Id }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetProjectsProject) string { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProjectsProjectArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetProjectsProjectArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]GetProjectsProject)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectArrayOutput) ToGetProjectsProjectArrayOutput() GetProjectsProjectArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectArrayOutput) ToGetProjectsProjectArrayOutputWithContext(ctx context.Context) GetProjectsProjectArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetProjectsProjectArrayOutput) Index(i pulumi.IntInput) GetProjectsProjectOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetProjectsProject {
|
||||||
|
return vs[0].([]GetProjectsProject)[vs[1].(int)]
|
||||||
|
}).(GetProjectsProjectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetServersServer struct {
|
||||||
|
Id string `pulumi:"id"`
|
||||||
|
IpAddress string `pulumi:"ipAddress"`
|
||||||
|
Name string `pulumi:"name"`
|
||||||
|
ServerStatus string `pulumi:"serverStatus"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetServersServerInput is an input type that accepts GetServersServerArgs and GetServersServerOutput values.
|
||||||
|
// You can construct a concrete instance of `GetServersServerInput` via:
|
||||||
|
//
|
||||||
|
// GetServersServerArgs{...}
|
||||||
|
type GetServersServerInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToGetServersServerOutput() GetServersServerOutput
|
||||||
|
ToGetServersServerOutputWithContext(context.Context) GetServersServerOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetServersServerArgs struct {
|
||||||
|
Id pulumi.StringInput `pulumi:"id"`
|
||||||
|
IpAddress pulumi.StringInput `pulumi:"ipAddress"`
|
||||||
|
Name pulumi.StringInput `pulumi:"name"`
|
||||||
|
ServerStatus pulumi.StringInput `pulumi:"serverStatus"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (GetServersServerArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetServersServer)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetServersServerArgs) ToGetServersServerOutput() GetServersServerOutput {
|
||||||
|
return i.ToGetServersServerOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetServersServerArgs) ToGetServersServerOutputWithContext(ctx context.Context) GetServersServerOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(GetServersServerOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetServersServerArrayInput is an input type that accepts GetServersServerArray and GetServersServerArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `GetServersServerArrayInput` via:
|
||||||
|
//
|
||||||
|
// GetServersServerArray{ GetServersServerArgs{...} }
|
||||||
|
type GetServersServerArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToGetServersServerArrayOutput() GetServersServerArrayOutput
|
||||||
|
ToGetServersServerArrayOutputWithContext(context.Context) GetServersServerArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetServersServerArray []GetServersServerInput
|
||||||
|
|
||||||
|
func (GetServersServerArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]GetServersServer)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetServersServerArray) ToGetServersServerArrayOutput() GetServersServerArrayOutput {
|
||||||
|
return i.ToGetServersServerArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i GetServersServerArray) ToGetServersServerArrayOutputWithContext(ctx context.Context) GetServersServerArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(GetServersServerArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetServersServerOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetServersServerOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*GetServersServer)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerOutput) ToGetServersServerOutput() GetServersServerOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerOutput) ToGetServersServerOutputWithContext(ctx context.Context) GetServersServerOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerOutput) Id() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetServersServer) string { return v.Id }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerOutput) IpAddress() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetServersServer) string { return v.IpAddress }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetServersServer) string { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerOutput) ServerStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v GetServersServer) string { return v.ServerStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetServersServerArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (GetServersServerArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]GetServersServer)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerArrayOutput) ToGetServersServerArrayOutput() GetServersServerArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerArrayOutput) ToGetServersServerArrayOutputWithContext(ctx context.Context) GetServersServerArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o GetServersServerArrayOutput) Index(i pulumi.IntInput) GetServersServerOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetServersServer {
|
||||||
|
return vs[0].([]GetServersServer)[vs[1].(int)]
|
||||||
|
}).(GetServersServerOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectEnvironmentInput)(nil)).Elem(), GetProjectEnvironmentArgs{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectEnvironmentArrayInput)(nil)).Elem(), GetProjectEnvironmentArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectsProjectInput)(nil)).Elem(), GetProjectsProjectArgs{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectsProjectArrayInput)(nil)).Elem(), GetProjectsProjectArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*GetServersServerInput)(nil)).Elem(), GetServersServerArgs{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*GetServersServerArrayInput)(nil)).Elem(), GetServersServerArray{})
|
||||||
|
pulumi.RegisterOutputType(GetProjectEnvironmentOutput{})
|
||||||
|
pulumi.RegisterOutputType(GetProjectEnvironmentArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(GetProjectsProjectOutput{})
|
||||||
|
pulumi.RegisterOutputType(GetProjectsProjectArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(GetServersServerOutput{})
|
||||||
|
pulumi.RegisterOutputType(GetServersServerArrayOutput{})
|
||||||
|
}
|
||||||
280
sdk/go/dokploy/redirect.go
generated
Normal file
280
sdk/go/dokploy/redirect.go
generated
Normal file
@@ -0,0 +1,280 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Redirect struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Application this redirect belongs to.
|
||||||
|
ApplicationId pulumi.StringOutput `pulumi:"applicationId"`
|
||||||
|
// RFC 3339 timestamp of when the redirect was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
Permanent pulumi.BoolOutput `pulumi:"permanent"`
|
||||||
|
// Regular expression matched against the incoming URL.
|
||||||
|
Regex pulumi.StringOutput `pulumi:"regex"`
|
||||||
|
// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
Replacement pulumi.StringOutput `pulumi:"replacement"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRedirect registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewRedirect(ctx *pulumi.Context,
|
||||||
|
name string, args *RedirectArgs, opts ...pulumi.ResourceOption) (*Redirect, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.ApplicationId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'ApplicationId'")
|
||||||
|
}
|
||||||
|
if args.Regex == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Regex'")
|
||||||
|
}
|
||||||
|
if args.Replacement == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Replacement'")
|
||||||
|
}
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Redirect
|
||||||
|
err := ctx.RegisterResource("dokploy:index/redirect:Redirect", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetRedirect gets an existing Redirect 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 GetRedirect(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *RedirectState, opts ...pulumi.ResourceOption) (*Redirect, error) {
|
||||||
|
var resource Redirect
|
||||||
|
err := ctx.ReadResource("dokploy:index/redirect:Redirect", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Redirect resources.
|
||||||
|
type redirectState struct {
|
||||||
|
// Application this redirect belongs to.
|
||||||
|
ApplicationId *string `pulumi:"applicationId"`
|
||||||
|
// RFC 3339 timestamp of when the redirect was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
Permanent *bool `pulumi:"permanent"`
|
||||||
|
// Regular expression matched against the incoming URL.
|
||||||
|
Regex *string `pulumi:"regex"`
|
||||||
|
// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
Replacement *string `pulumi:"replacement"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedirectState struct {
|
||||||
|
// Application this redirect belongs to.
|
||||||
|
ApplicationId pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the redirect was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
Permanent pulumi.BoolPtrInput
|
||||||
|
// Regular expression matched against the incoming URL.
|
||||||
|
Regex pulumi.StringPtrInput
|
||||||
|
// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
Replacement pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (RedirectState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*redirectState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type redirectArgs struct {
|
||||||
|
// Application this redirect belongs to.
|
||||||
|
ApplicationId string `pulumi:"applicationId"`
|
||||||
|
// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
Permanent *bool `pulumi:"permanent"`
|
||||||
|
// Regular expression matched against the incoming URL.
|
||||||
|
Regex string `pulumi:"regex"`
|
||||||
|
// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
Replacement string `pulumi:"replacement"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Redirect resource.
|
||||||
|
type RedirectArgs struct {
|
||||||
|
// Application this redirect belongs to.
|
||||||
|
ApplicationId pulumi.StringInput
|
||||||
|
// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
Permanent pulumi.BoolPtrInput
|
||||||
|
// Regular expression matched against the incoming URL.
|
||||||
|
Regex pulumi.StringInput
|
||||||
|
// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
Replacement pulumi.StringInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (RedirectArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*redirectArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedirectInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRedirectOutput() RedirectOutput
|
||||||
|
ToRedirectOutputWithContext(ctx context.Context) RedirectOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Redirect) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Redirect)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Redirect) ToRedirectOutput() RedirectOutput {
|
||||||
|
return i.ToRedirectOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Redirect) ToRedirectOutputWithContext(ctx context.Context) RedirectOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RedirectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedirectArrayInput is an input type that accepts RedirectArray and RedirectArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `RedirectArrayInput` via:
|
||||||
|
//
|
||||||
|
// RedirectArray{ RedirectArgs{...} }
|
||||||
|
type RedirectArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRedirectArrayOutput() RedirectArrayOutput
|
||||||
|
ToRedirectArrayOutputWithContext(context.Context) RedirectArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedirectArray []RedirectInput
|
||||||
|
|
||||||
|
func (RedirectArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Redirect)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedirectArray) ToRedirectArrayOutput() RedirectArrayOutput {
|
||||||
|
return i.ToRedirectArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedirectArray) ToRedirectArrayOutputWithContext(ctx context.Context) RedirectArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RedirectArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedirectMapInput is an input type that accepts RedirectMap and RedirectMapOutput values.
|
||||||
|
// You can construct a concrete instance of `RedirectMapInput` via:
|
||||||
|
//
|
||||||
|
// RedirectMap{ "key": RedirectArgs{...} }
|
||||||
|
type RedirectMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRedirectMapOutput() RedirectMapOutput
|
||||||
|
ToRedirectMapOutputWithContext(context.Context) RedirectMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedirectMap map[string]RedirectInput
|
||||||
|
|
||||||
|
func (RedirectMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Redirect)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedirectMap) ToRedirectMapOutput() RedirectMapOutput {
|
||||||
|
return i.ToRedirectMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedirectMap) ToRedirectMapOutputWithContext(ctx context.Context) RedirectMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RedirectMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedirectOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RedirectOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Redirect)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectOutput) ToRedirectOutput() RedirectOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectOutput) ToRedirectOutputWithContext(ctx context.Context) RedirectOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Application this redirect belongs to.
|
||||||
|
func (o RedirectOutput) ApplicationId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redirect) pulumi.StringOutput { return v.ApplicationId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the redirect was created.
|
||||||
|
func (o RedirectOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redirect) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Issue a permanent (301) redirect instead of a temporary (302) one.
|
||||||
|
func (o RedirectOutput) Permanent() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Redirect) pulumi.BoolOutput { return v.Permanent }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Regular expression matched against the incoming URL.
|
||||||
|
func (o RedirectOutput) Regex() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redirect) pulumi.StringOutput { return v.Regex }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replacement URL, which may reference capture groups such as `${1}`.
|
||||||
|
func (o RedirectOutput) Replacement() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redirect) pulumi.StringOutput { return v.Replacement }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedirectArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RedirectArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Redirect)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectArrayOutput) ToRedirectArrayOutput() RedirectArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectArrayOutput) ToRedirectArrayOutputWithContext(ctx context.Context) RedirectArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectArrayOutput) Index(i pulumi.IntInput) RedirectOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Redirect {
|
||||||
|
return vs[0].([]*Redirect)[vs[1].(int)]
|
||||||
|
}).(RedirectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedirectMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RedirectMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Redirect)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectMapOutput) ToRedirectMapOutput() RedirectMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectMapOutput) ToRedirectMapOutputWithContext(ctx context.Context) RedirectMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedirectMapOutput) MapIndex(k pulumi.StringInput) RedirectOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Redirect {
|
||||||
|
return vs[0].(map[string]*Redirect)[vs[1].(string)]
|
||||||
|
}).(RedirectOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RedirectInput)(nil)).Elem(), &Redirect{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RedirectArrayInput)(nil)).Elem(), RedirectArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RedirectMapInput)(nil)).Elem(), RedirectMap{})
|
||||||
|
pulumi.RegisterOutputType(RedirectOutput{})
|
||||||
|
pulumi.RegisterOutputType(RedirectArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(RedirectMapOutput{})
|
||||||
|
}
|
||||||
673
sdk/go/dokploy/redis.go
generated
Normal file
673
sdk/go/dokploy/redis.go
generated
Normal file
@@ -0,0 +1,673 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Redis struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringOutput `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringOutput `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayOutput `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrOutput `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrOutput `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrOutput `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Password used to authenticate to Redis.
|
||||||
|
DatabasePassword pulumi.StringOutput `pulumi:"databasePassword"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolOutput `pulumi:"detachDokployNetwork"`
|
||||||
|
// Redis image to run, for example `redis:7`.
|
||||||
|
DockerImage pulumi.StringOutput `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrOutput `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrOutput `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringOutput `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrOutput `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrOutput `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrOutput `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrOutput `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrOutput `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrOutput `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayOutput `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrOutput `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrOutput `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntOutput `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrOutput `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrOutput `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrOutput `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrOutput `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrOutput `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRedis registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewRedis(ctx *pulumi.Context,
|
||||||
|
name string, args *RedisArgs, opts ...pulumi.ResourceOption) (*Redis, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.DatabasePassword == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DatabasePassword'")
|
||||||
|
}
|
||||||
|
if args.DockerImage == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'DockerImage'")
|
||||||
|
}
|
||||||
|
if args.EnvironmentId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'EnvironmentId'")
|
||||||
|
}
|
||||||
|
if args.DatabasePassword != nil {
|
||||||
|
args.DatabasePassword = pulumi.ToSecret(args.DatabasePassword).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"databasePassword",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Redis
|
||||||
|
err := ctx.RegisterResource("dokploy:index/redis:Redis", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetRedis gets an existing Redis 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 GetRedis(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *RedisState, opts ...pulumi.ResourceOption) (*Redis, error) {
|
||||||
|
var resource Redis
|
||||||
|
err := ctx.ReadResource("dokploy:index/redis:Redis", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Redis resources.
|
||||||
|
type redisState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus *string `pulumi:"applicationStatus"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Password used to authenticate to Redis.
|
||||||
|
DatabasePassword *string `pulumi:"databasePassword"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// Redis image to run, for example `redis:7`.
|
||||||
|
DockerImage *string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId *string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedisState struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
ApplicationStatus pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Password used to authenticate to Redis.
|
||||||
|
DatabasePassword pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// Redis image to run, for example `redis:7`.
|
||||||
|
DockerImage pulumi.StringPtrInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringPtrInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (RedisState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*redisState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type redisArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName *string `pulumi:"appName"`
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args []string `pulumi:"args"`
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command *string `pulumi:"command"`
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit *string `pulumi:"cpuLimit"`
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation *string `pulumi:"cpuReservation"`
|
||||||
|
// Password used to authenticate to Redis.
|
||||||
|
DatabasePassword string `pulumi:"databasePassword"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork *bool `pulumi:"detachDokployNetwork"`
|
||||||
|
// Redis image to run, for example `redis:7`.
|
||||||
|
DockerImage string `pulumi:"dockerImage"`
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm *string `pulumi:"endpointSpecSwarm"`
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env *string `pulumi:"env"`
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId string `pulumi:"environmentId"`
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort *int `pulumi:"externalPort"`
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm *string `pulumi:"healthCheckSwarm"`
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm *string `pulumi:"labelsSwarm"`
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit *string `pulumi:"memoryLimit"`
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation *string `pulumi:"memoryReservation"`
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm *string `pulumi:"modeSwarm"`
|
||||||
|
// Display name of the database.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds []string `pulumi:"networkIds"`
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm *string `pulumi:"networkSwarm"`
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm *string `pulumi:"placementSwarm"`
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas *int `pulumi:"replicas"`
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm *string `pulumi:"restartPolicySwarm"`
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm *string `pulumi:"rollbackConfigSwarm"`
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm *int `pulumi:"stopGracePeriodSwarm"`
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm *string `pulumi:"ulimitsSwarm"`
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm *string `pulumi:"updateConfigSwarm"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Redis resource.
|
||||||
|
type RedisArgs struct {
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
AppName pulumi.StringPtrInput
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
Args pulumi.StringArrayInput
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
Command pulumi.StringPtrInput
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
CpuLimit pulumi.StringPtrInput
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
CpuReservation pulumi.StringPtrInput
|
||||||
|
// Password used to authenticate to Redis.
|
||||||
|
DatabasePassword pulumi.StringInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
DetachDokployNetwork pulumi.BoolPtrInput
|
||||||
|
// Redis image to run, for example `redis:7`.
|
||||||
|
DockerImage pulumi.StringInput
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
EndpointSpecSwarm pulumi.StringPtrInput
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
Env pulumi.StringPtrInput
|
||||||
|
// Environment this database belongs to.
|
||||||
|
EnvironmentId pulumi.StringInput
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
ExternalPort pulumi.IntPtrInput
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
HealthCheckSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
LabelsSwarm pulumi.StringPtrInput
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
MemoryLimit pulumi.StringPtrInput
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
MemoryReservation pulumi.StringPtrInput
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
ModeSwarm pulumi.StringPtrInput
|
||||||
|
// Display name of the database.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
NetworkIds pulumi.StringArrayInput
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
NetworkSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
PlacementSwarm pulumi.StringPtrInput
|
||||||
|
// Number of replicas to run.
|
||||||
|
Replicas pulumi.IntPtrInput
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
RestartPolicySwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
RollbackConfigSwarm pulumi.StringPtrInput
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
StopGracePeriodSwarm pulumi.IntPtrInput
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
UlimitsSwarm pulumi.StringPtrInput
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
UpdateConfigSwarm pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (RedisArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*redisArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedisInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRedisOutput() RedisOutput
|
||||||
|
ToRedisOutputWithContext(ctx context.Context) RedisOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Redis) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Redis)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Redis) ToRedisOutput() RedisOutput {
|
||||||
|
return i.ToRedisOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Redis) ToRedisOutputWithContext(ctx context.Context) RedisOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RedisOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedisArrayInput is an input type that accepts RedisArray and RedisArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `RedisArrayInput` via:
|
||||||
|
//
|
||||||
|
// RedisArray{ RedisArgs{...} }
|
||||||
|
type RedisArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRedisArrayOutput() RedisArrayOutput
|
||||||
|
ToRedisArrayOutputWithContext(context.Context) RedisArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedisArray []RedisInput
|
||||||
|
|
||||||
|
func (RedisArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Redis)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedisArray) ToRedisArrayOutput() RedisArrayOutput {
|
||||||
|
return i.ToRedisArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedisArray) ToRedisArrayOutputWithContext(ctx context.Context) RedisArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RedisArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedisMapInput is an input type that accepts RedisMap and RedisMapOutput values.
|
||||||
|
// You can construct a concrete instance of `RedisMapInput` via:
|
||||||
|
//
|
||||||
|
// RedisMap{ "key": RedisArgs{...} }
|
||||||
|
type RedisMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRedisMapOutput() RedisMapOutput
|
||||||
|
ToRedisMapOutputWithContext(context.Context) RedisMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedisMap map[string]RedisInput
|
||||||
|
|
||||||
|
func (RedisMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Redis)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedisMap) ToRedisMapOutput() RedisMapOutput {
|
||||||
|
return i.ToRedisMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RedisMap) ToRedisMapOutputWithContext(ctx context.Context) RedisMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RedisMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedisOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RedisOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Redis)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisOutput) ToRedisOutput() RedisOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisOutput) ToRedisOutputWithContext(ctx context.Context) RedisOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unique Docker service name. Generated by Dokploy when omitted. Changing it forces a new database.
|
||||||
|
func (o RedisOutput) AppName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Current status reported by Dokploy: `idle`, `running`, `done` or `error`.
|
||||||
|
func (o RedisOutput) ApplicationStatus() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringOutput { return v.ApplicationStatus }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments appended to the container command.
|
||||||
|
func (o RedisOutput) Args() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringArrayOutput { return v.Args }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the container entrypoint command.
|
||||||
|
func (o RedisOutput) Command() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.Command }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard CPU limit, for example `1`.
|
||||||
|
func (o RedisOutput) CpuLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.CpuLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft CPU reservation, for example `0.5`.
|
||||||
|
func (o RedisOutput) CpuReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.CpuReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the database was created.
|
||||||
|
func (o RedisOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password used to authenticate to Redis.
|
||||||
|
func (o RedisOutput) DatabasePassword() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringOutput { return v.DatabasePassword }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o RedisOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach the service from the shared `dokploy-network`.
|
||||||
|
func (o RedisOutput) DetachDokployNetwork() pulumi.BoolOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.BoolOutput { return v.DetachDokployNetwork }).(pulumi.BoolOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Redis image to run, for example `redis:7`.
|
||||||
|
func (o RedisOutput) DockerImage() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringOutput { return v.DockerImage }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm endpoint specification, as a JSON object.
|
||||||
|
func (o RedisOutput) EndpointSpecSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.EndpointSpecSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment variables in `KEY=value` format, one per line.
|
||||||
|
func (o RedisOutput) Env() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.Env }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Environment this database belongs to.
|
||||||
|
func (o RedisOutput) EnvironmentId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Host port to expose the database on. Leave unset to keep the database reachable only from inside the Docker network.
|
||||||
|
func (o RedisOutput) ExternalPort() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.IntPtrOutput { return v.ExternalPort }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm health check configuration, as a JSON object.
|
||||||
|
func (o RedisOutput) HealthCheckSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.HealthCheckSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service labels, as a JSON object.
|
||||||
|
func (o RedisOutput) LabelsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.LabelsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hard memory limit, for example `512m`.
|
||||||
|
func (o RedisOutput) MemoryLimit() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.MemoryLimit }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soft memory reservation, for example `256m`.
|
||||||
|
func (o RedisOutput) MemoryReservation() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.MemoryReservation }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm service mode, as a JSON object.
|
||||||
|
func (o RedisOutput) ModeSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.ModeSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the database.
|
||||||
|
func (o RedisOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IDs of additional Docker networks to attach.
|
||||||
|
func (o RedisOutput) NetworkIds() pulumi.StringArrayOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringArrayOutput { return v.NetworkIds }).(pulumi.StringArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm network attachments, as a JSON array.
|
||||||
|
func (o RedisOutput) NetworkSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.NetworkSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm placement constraints, as a JSON object.
|
||||||
|
func (o RedisOutput) PlacementSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.PlacementSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Number of replicas to run.
|
||||||
|
func (o RedisOutput) Replicas() pulumi.IntOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.IntOutput { return v.Replicas }).(pulumi.IntOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm restart policy, as a JSON object.
|
||||||
|
func (o RedisOutput) RestartPolicySwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.RestartPolicySwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rollback configuration, as a JSON object.
|
||||||
|
func (o RedisOutput) RollbackConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.RollbackConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remote server to deploy on. Omit to use the Dokploy host itself.
|
||||||
|
func (o RedisOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grace period in nanoseconds before a container is killed.
|
||||||
|
func (o RedisOutput) StopGracePeriodSwarm() pulumi.IntPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.IntPtrOutput { return v.StopGracePeriodSwarm }).(pulumi.IntPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm ulimits, as a JSON object.
|
||||||
|
func (o RedisOutput) UlimitsSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.UlimitsSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Docker Swarm rolling update configuration, as a JSON object.
|
||||||
|
func (o RedisOutput) UpdateConfigSwarm() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Redis) pulumi.StringPtrOutput { return v.UpdateConfigSwarm }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedisArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RedisArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Redis)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisArrayOutput) ToRedisArrayOutput() RedisArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisArrayOutput) ToRedisArrayOutputWithContext(ctx context.Context) RedisArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisArrayOutput) Index(i pulumi.IntInput) RedisOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Redis {
|
||||||
|
return vs[0].([]*Redis)[vs[1].(int)]
|
||||||
|
}).(RedisOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RedisMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RedisMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Redis)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisMapOutput) ToRedisMapOutput() RedisMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisMapOutput) ToRedisMapOutputWithContext(ctx context.Context) RedisMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RedisMapOutput) MapIndex(k pulumi.StringInput) RedisOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Redis {
|
||||||
|
return vs[0].(map[string]*Redis)[vs[1].(string)]
|
||||||
|
}).(RedisOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RedisInput)(nil)).Elem(), &Redis{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RedisArrayInput)(nil)).Elem(), RedisArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RedisMapInput)(nil)).Elem(), RedisMap{})
|
||||||
|
pulumi.RegisterOutputType(RedisOutput{})
|
||||||
|
pulumi.RegisterOutputType(RedisArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(RedisMapOutput{})
|
||||||
|
}
|
||||||
335
sdk/go/dokploy/registry.go
generated
Normal file
335
sdk/go/dokploy/registry.go
generated
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Registry struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the registry was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
ImagePrefix pulumi.StringPtrOutput `pulumi:"imagePrefix"`
|
||||||
|
// Password or access token used to authenticate.
|
||||||
|
Password pulumi.StringOutput `pulumi:"password"`
|
||||||
|
// Display name of the registry.
|
||||||
|
RegistryName pulumi.StringOutput `pulumi:"registryName"`
|
||||||
|
// Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
|
||||||
|
RegistryType pulumi.StringOutput `pulumi:"registryType"`
|
||||||
|
// Registry hostname, for example `ghcr.io`.
|
||||||
|
RegistryUrl pulumi.StringOutput `pulumi:"registryUrl"`
|
||||||
|
// Server this registry is scoped to.
|
||||||
|
ServerId pulumi.StringPtrOutput `pulumi:"serverId"`
|
||||||
|
// Username used to authenticate to the registry.
|
||||||
|
Username pulumi.StringOutput `pulumi:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRegistry registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewRegistry(ctx *pulumi.Context,
|
||||||
|
name string, args *RegistryArgs, opts ...pulumi.ResourceOption) (*Registry, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.Password == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Password'")
|
||||||
|
}
|
||||||
|
if args.RegistryName == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'RegistryName'")
|
||||||
|
}
|
||||||
|
if args.RegistryUrl == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'RegistryUrl'")
|
||||||
|
}
|
||||||
|
if args.Username == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Username'")
|
||||||
|
}
|
||||||
|
if args.Password != nil {
|
||||||
|
args.Password = pulumi.ToSecret(args.Password).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"password",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Registry
|
||||||
|
err := ctx.RegisterResource("dokploy:index/registry:Registry", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetRegistry gets an existing Registry 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 GetRegistry(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *RegistryState, opts ...pulumi.ResourceOption) (*Registry, error) {
|
||||||
|
var resource Registry
|
||||||
|
err := ctx.ReadResource("dokploy:index/registry:Registry", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Registry resources.
|
||||||
|
type registryState struct {
|
||||||
|
// RFC 3339 timestamp of when the registry was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
ImagePrefix *string `pulumi:"imagePrefix"`
|
||||||
|
// Password or access token used to authenticate.
|
||||||
|
Password *string `pulumi:"password"`
|
||||||
|
// Display name of the registry.
|
||||||
|
RegistryName *string `pulumi:"registryName"`
|
||||||
|
// Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
|
||||||
|
RegistryType *string `pulumi:"registryType"`
|
||||||
|
// Registry hostname, for example `ghcr.io`.
|
||||||
|
RegistryUrl *string `pulumi:"registryUrl"`
|
||||||
|
// Server this registry is scoped to.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Username used to authenticate to the registry.
|
||||||
|
Username *string `pulumi:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegistryState struct {
|
||||||
|
// RFC 3339 timestamp of when the registry was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
ImagePrefix pulumi.StringPtrInput
|
||||||
|
// Password or access token used to authenticate.
|
||||||
|
Password pulumi.StringPtrInput
|
||||||
|
// Display name of the registry.
|
||||||
|
RegistryName pulumi.StringPtrInput
|
||||||
|
// Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
|
||||||
|
RegistryType pulumi.StringPtrInput
|
||||||
|
// Registry hostname, for example `ghcr.io`.
|
||||||
|
RegistryUrl pulumi.StringPtrInput
|
||||||
|
// Server this registry is scoped to.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Username used to authenticate to the registry.
|
||||||
|
Username pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (RegistryState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*registryState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type registryArgs struct {
|
||||||
|
// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
ImagePrefix *string `pulumi:"imagePrefix"`
|
||||||
|
// Password or access token used to authenticate.
|
||||||
|
Password string `pulumi:"password"`
|
||||||
|
// Display name of the registry.
|
||||||
|
RegistryName string `pulumi:"registryName"`
|
||||||
|
// Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
|
||||||
|
RegistryType *string `pulumi:"registryType"`
|
||||||
|
// Registry hostname, for example `ghcr.io`.
|
||||||
|
RegistryUrl string `pulumi:"registryUrl"`
|
||||||
|
// Server this registry is scoped to.
|
||||||
|
ServerId *string `pulumi:"serverId"`
|
||||||
|
// Username used to authenticate to the registry.
|
||||||
|
Username string `pulumi:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Registry resource.
|
||||||
|
type RegistryArgs struct {
|
||||||
|
// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
ImagePrefix pulumi.StringPtrInput
|
||||||
|
// Password or access token used to authenticate.
|
||||||
|
Password pulumi.StringInput
|
||||||
|
// Display name of the registry.
|
||||||
|
RegistryName pulumi.StringInput
|
||||||
|
// Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
|
||||||
|
RegistryType pulumi.StringPtrInput
|
||||||
|
// Registry hostname, for example `ghcr.io`.
|
||||||
|
RegistryUrl pulumi.StringInput
|
||||||
|
// Server this registry is scoped to.
|
||||||
|
ServerId pulumi.StringPtrInput
|
||||||
|
// Username used to authenticate to the registry.
|
||||||
|
Username pulumi.StringInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (RegistryArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*registryArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegistryInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRegistryOutput() RegistryOutput
|
||||||
|
ToRegistryOutputWithContext(ctx context.Context) RegistryOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Registry) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Registry)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Registry) ToRegistryOutput() RegistryOutput {
|
||||||
|
return i.ToRegistryOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Registry) ToRegistryOutputWithContext(ctx context.Context) RegistryOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RegistryOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RegistryArrayInput is an input type that accepts RegistryArray and RegistryArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `RegistryArrayInput` via:
|
||||||
|
//
|
||||||
|
// RegistryArray{ RegistryArgs{...} }
|
||||||
|
type RegistryArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRegistryArrayOutput() RegistryArrayOutput
|
||||||
|
ToRegistryArrayOutputWithContext(context.Context) RegistryArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegistryArray []RegistryInput
|
||||||
|
|
||||||
|
func (RegistryArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Registry)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RegistryArray) ToRegistryArrayOutput() RegistryArrayOutput {
|
||||||
|
return i.ToRegistryArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RegistryArray) ToRegistryArrayOutputWithContext(ctx context.Context) RegistryArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RegistryArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RegistryMapInput is an input type that accepts RegistryMap and RegistryMapOutput values.
|
||||||
|
// You can construct a concrete instance of `RegistryMapInput` via:
|
||||||
|
//
|
||||||
|
// RegistryMap{ "key": RegistryArgs{...} }
|
||||||
|
type RegistryMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToRegistryMapOutput() RegistryMapOutput
|
||||||
|
ToRegistryMapOutputWithContext(context.Context) RegistryMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegistryMap map[string]RegistryInput
|
||||||
|
|
||||||
|
func (RegistryMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Registry)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RegistryMap) ToRegistryMapOutput() RegistryMapOutput {
|
||||||
|
return i.ToRegistryMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i RegistryMap) ToRegistryMapOutputWithContext(ctx context.Context) RegistryMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(RegistryMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegistryOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RegistryOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Registry)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryOutput) ToRegistryOutput() RegistryOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryOutput) ToRegistryOutputWithContext(ctx context.Context) RegistryOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the registry was created.
|
||||||
|
func (o RegistryOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prefix prepended to pushed image names, for example an organization or namespace.
|
||||||
|
func (o RegistryOutput) ImagePrefix() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringPtrOutput { return v.ImagePrefix }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Password or access token used to authenticate.
|
||||||
|
func (o RegistryOutput) Password() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringOutput { return v.Password }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the registry.
|
||||||
|
func (o RegistryOutput) RegistryName() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringOutput { return v.RegistryName }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Registry kind. Dokploy currently accepts only `cloud`. Valid values: `cloud`. Defaults to `cloud`.
|
||||||
|
func (o RegistryOutput) RegistryType() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringOutput { return v.RegistryType }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Registry hostname, for example `ghcr.io`.
|
||||||
|
func (o RegistryOutput) RegistryUrl() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringOutput { return v.RegistryUrl }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Server this registry is scoped to.
|
||||||
|
func (o RegistryOutput) ServerId() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringPtrOutput { return v.ServerId }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Username used to authenticate to the registry.
|
||||||
|
func (o RegistryOutput) Username() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Registry) pulumi.StringOutput { return v.Username }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegistryArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RegistryArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Registry)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryArrayOutput) ToRegistryArrayOutput() RegistryArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryArrayOutput) ToRegistryArrayOutputWithContext(ctx context.Context) RegistryArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryArrayOutput) Index(i pulumi.IntInput) RegistryOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Registry {
|
||||||
|
return vs[0].([]*Registry)[vs[1].(int)]
|
||||||
|
}).(RegistryOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegistryMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (RegistryMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Registry)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryMapOutput) ToRegistryMapOutput() RegistryMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryMapOutput) ToRegistryMapOutputWithContext(ctx context.Context) RegistryMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o RegistryMapOutput) MapIndex(k pulumi.StringInput) RegistryOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Registry {
|
||||||
|
return vs[0].(map[string]*Registry)[vs[1].(string)]
|
||||||
|
}).(RegistryOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RegistryInput)(nil)).Elem(), &Registry{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RegistryArrayInput)(nil)).Elem(), RegistryArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*RegistryMapInput)(nil)).Elem(), RegistryMap{})
|
||||||
|
pulumi.RegisterOutputType(RegistryOutput{})
|
||||||
|
pulumi.RegisterOutputType(RegistryArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(RegistryMapOutput{})
|
||||||
|
}
|
||||||
272
sdk/go/dokploy/security.go
generated
Normal file
272
sdk/go/dokploy/security.go
generated
Normal file
@@ -0,0 +1,272 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Security struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// Application these credentials protect.
|
||||||
|
ApplicationId pulumi.StringOutput `pulumi:"applicationId"`
|
||||||
|
// RFC 3339 timestamp of when the credentials were created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Basic auth password.
|
||||||
|
Password pulumi.StringOutput `pulumi:"password"`
|
||||||
|
// Basic auth username.
|
||||||
|
Username pulumi.StringOutput `pulumi:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewSecurity registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewSecurity(ctx *pulumi.Context,
|
||||||
|
name string, args *SecurityArgs, opts ...pulumi.ResourceOption) (*Security, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.ApplicationId == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'ApplicationId'")
|
||||||
|
}
|
||||||
|
if args.Password == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Password'")
|
||||||
|
}
|
||||||
|
if args.Username == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'Username'")
|
||||||
|
}
|
||||||
|
if args.Password != nil {
|
||||||
|
args.Password = pulumi.ToSecret(args.Password).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"password",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource Security
|
||||||
|
err := ctx.RegisterResource("dokploy:index/security:Security", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetSecurity gets an existing Security 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 GetSecurity(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *SecurityState, opts ...pulumi.ResourceOption) (*Security, error) {
|
||||||
|
var resource Security
|
||||||
|
err := ctx.ReadResource("dokploy:index/security:Security", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering Security resources.
|
||||||
|
type securityState struct {
|
||||||
|
// Application these credentials protect.
|
||||||
|
ApplicationId *string `pulumi:"applicationId"`
|
||||||
|
// RFC 3339 timestamp of when the credentials were created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Basic auth password.
|
||||||
|
Password *string `pulumi:"password"`
|
||||||
|
// Basic auth username.
|
||||||
|
Username *string `pulumi:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityState struct {
|
||||||
|
// Application these credentials protect.
|
||||||
|
ApplicationId pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the credentials were created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Basic auth password.
|
||||||
|
Password pulumi.StringPtrInput
|
||||||
|
// Basic auth username.
|
||||||
|
Username pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (SecurityState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*securityState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type securityArgs struct {
|
||||||
|
// Application these credentials protect.
|
||||||
|
ApplicationId string `pulumi:"applicationId"`
|
||||||
|
// Basic auth password.
|
||||||
|
Password string `pulumi:"password"`
|
||||||
|
// Basic auth username.
|
||||||
|
Username string `pulumi:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a Security resource.
|
||||||
|
type SecurityArgs struct {
|
||||||
|
// Application these credentials protect.
|
||||||
|
ApplicationId pulumi.StringInput
|
||||||
|
// Basic auth password.
|
||||||
|
Password pulumi.StringInput
|
||||||
|
// Basic auth username.
|
||||||
|
Username pulumi.StringInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (SecurityArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*securityArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToSecurityOutput() SecurityOutput
|
||||||
|
ToSecurityOutputWithContext(ctx context.Context) SecurityOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Security) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Security)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Security) ToSecurityOutput() SecurityOutput {
|
||||||
|
return i.ToSecurityOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *Security) ToSecurityOutputWithContext(ctx context.Context) SecurityOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(SecurityOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SecurityArrayInput is an input type that accepts SecurityArray and SecurityArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `SecurityArrayInput` via:
|
||||||
|
//
|
||||||
|
// SecurityArray{ SecurityArgs{...} }
|
||||||
|
type SecurityArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToSecurityArrayOutput() SecurityArrayOutput
|
||||||
|
ToSecurityArrayOutputWithContext(context.Context) SecurityArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityArray []SecurityInput
|
||||||
|
|
||||||
|
func (SecurityArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Security)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SecurityArray) ToSecurityArrayOutput() SecurityArrayOutput {
|
||||||
|
return i.ToSecurityArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SecurityArray) ToSecurityArrayOutputWithContext(ctx context.Context) SecurityArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(SecurityArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SecurityMapInput is an input type that accepts SecurityMap and SecurityMapOutput values.
|
||||||
|
// You can construct a concrete instance of `SecurityMapInput` via:
|
||||||
|
//
|
||||||
|
// SecurityMap{ "key": SecurityArgs{...} }
|
||||||
|
type SecurityMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToSecurityMapOutput() SecurityMapOutput
|
||||||
|
ToSecurityMapOutputWithContext(context.Context) SecurityMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityMap map[string]SecurityInput
|
||||||
|
|
||||||
|
func (SecurityMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Security)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SecurityMap) ToSecurityMapOutput() SecurityMapOutput {
|
||||||
|
return i.ToSecurityMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SecurityMap) ToSecurityMapOutputWithContext(ctx context.Context) SecurityMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(SecurityMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (SecurityOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**Security)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityOutput) ToSecurityOutput() SecurityOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityOutput) ToSecurityOutputWithContext(ctx context.Context) SecurityOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// Application these credentials protect.
|
||||||
|
func (o SecurityOutput) ApplicationId() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Security) pulumi.StringOutput { return v.ApplicationId }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the credentials were created.
|
||||||
|
func (o SecurityOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Security) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Basic auth password.
|
||||||
|
func (o SecurityOutput) Password() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Security) pulumi.StringOutput { return v.Password }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Basic auth username.
|
||||||
|
func (o SecurityOutput) Username() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *Security) pulumi.StringOutput { return v.Username }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (SecurityArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*Security)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityArrayOutput) ToSecurityArrayOutput() SecurityArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityArrayOutput) ToSecurityArrayOutputWithContext(ctx context.Context) SecurityArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityArrayOutput) Index(i pulumi.IntInput) SecurityOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Security {
|
||||||
|
return vs[0].([]*Security)[vs[1].(int)]
|
||||||
|
}).(SecurityOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (SecurityMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*Security)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityMapOutput) ToSecurityMapOutput() SecurityMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityMapOutput) ToSecurityMapOutputWithContext(ctx context.Context) SecurityMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SecurityMapOutput) MapIndex(k pulumi.StringInput) SecurityOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Security {
|
||||||
|
return vs[0].(map[string]*Security)[vs[1].(string)]
|
||||||
|
}).(SecurityOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*SecurityInput)(nil)).Elem(), &Security{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*SecurityArrayInput)(nil)).Elem(), SecurityArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*SecurityMapInput)(nil)).Elem(), SecurityMap{})
|
||||||
|
pulumi.RegisterOutputType(SecurityOutput{})
|
||||||
|
pulumi.RegisterOutputType(SecurityArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(SecurityMapOutput{})
|
||||||
|
}
|
||||||
295
sdk/go/dokploy/sshKey.go
generated
Normal file
295
sdk/go/dokploy/sshKey.go
generated
Normal file
@@ -0,0 +1,295 @@
|
|||||||
|
// 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 dokploy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"github.com/maxvojtkov/pulumi-dokploy/sdk/go/dokploy/internal"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SshKey struct {
|
||||||
|
pulumi.CustomResourceState
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the key was created.
|
||||||
|
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrOutput `pulumi:"description"`
|
||||||
|
// RFC 3339 timestamp of when the key was last used, if ever.
|
||||||
|
LastUsedAt pulumi.StringOutput `pulumi:"lastUsedAt"`
|
||||||
|
// Display name of the key pair.
|
||||||
|
Name pulumi.StringOutput `pulumi:"name"`
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey pulumi.StringOutput `pulumi:"privateKey"`
|
||||||
|
// OpenSSH-formatted public key.
|
||||||
|
PublicKey pulumi.StringOutput `pulumi:"publicKey"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewSshKey registers a new resource with the given unique name, arguments, and options.
|
||||||
|
func NewSshKey(ctx *pulumi.Context,
|
||||||
|
name string, args *SshKeyArgs, opts ...pulumi.ResourceOption) (*SshKey, error) {
|
||||||
|
if args == nil {
|
||||||
|
return nil, errors.New("missing one or more required arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
if args.PrivateKey == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'PrivateKey'")
|
||||||
|
}
|
||||||
|
if args.PublicKey == nil {
|
||||||
|
return nil, errors.New("invalid value for required argument 'PublicKey'")
|
||||||
|
}
|
||||||
|
if args.PrivateKey != nil {
|
||||||
|
args.PrivateKey = pulumi.ToSecret(args.PrivateKey).(pulumi.StringInput)
|
||||||
|
}
|
||||||
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
||||||
|
"privateKey",
|
||||||
|
})
|
||||||
|
opts = append(opts, secrets)
|
||||||
|
opts = internal.PkgResourceDefaultOpts(opts)
|
||||||
|
var resource SshKey
|
||||||
|
err := ctx.RegisterResource("dokploy:index/sshKey:SshKey", name, args, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetSshKey gets an existing SshKey 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 GetSshKey(ctx *pulumi.Context,
|
||||||
|
name string, id pulumi.IDInput, state *SshKeyState, opts ...pulumi.ResourceOption) (*SshKey, error) {
|
||||||
|
var resource SshKey
|
||||||
|
err := ctx.ReadResource("dokploy:index/sshKey:SshKey", name, id, state, &resource, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Input properties used for looking up and filtering SshKey resources.
|
||||||
|
type sshKeyState struct {
|
||||||
|
// RFC 3339 timestamp of when the key was created.
|
||||||
|
CreatedAt *string `pulumi:"createdAt"`
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// RFC 3339 timestamp of when the key was last used, if ever.
|
||||||
|
LastUsedAt *string `pulumi:"lastUsedAt"`
|
||||||
|
// Display name of the key pair.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey *string `pulumi:"privateKey"`
|
||||||
|
// OpenSSH-formatted public key.
|
||||||
|
PublicKey *string `pulumi:"publicKey"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SshKeyState struct {
|
||||||
|
// RFC 3339 timestamp of when the key was created.
|
||||||
|
CreatedAt pulumi.StringPtrInput
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// RFC 3339 timestamp of when the key was last used, if ever.
|
||||||
|
LastUsedAt pulumi.StringPtrInput
|
||||||
|
// Display name of the key pair.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey pulumi.StringPtrInput
|
||||||
|
// OpenSSH-formatted public key.
|
||||||
|
PublicKey pulumi.StringPtrInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (SshKeyState) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*sshKeyState)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type sshKeyArgs struct {
|
||||||
|
// Free-form description.
|
||||||
|
Description *string `pulumi:"description"`
|
||||||
|
// Display name of the key pair.
|
||||||
|
Name *string `pulumi:"name"`
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey string `pulumi:"privateKey"`
|
||||||
|
// OpenSSH-formatted public key.
|
||||||
|
PublicKey string `pulumi:"publicKey"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The set of arguments for constructing a SshKey resource.
|
||||||
|
type SshKeyArgs struct {
|
||||||
|
// Free-form description.
|
||||||
|
Description pulumi.StringPtrInput
|
||||||
|
// Display name of the key pair.
|
||||||
|
Name pulumi.StringPtrInput
|
||||||
|
// PEM-encoded private key.
|
||||||
|
PrivateKey pulumi.StringInput
|
||||||
|
// OpenSSH-formatted public key.
|
||||||
|
PublicKey pulumi.StringInput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (SshKeyArgs) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*sshKeyArgs)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
type SshKeyInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToSshKeyOutput() SshKeyOutput
|
||||||
|
ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*SshKey) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**SshKey)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *SshKey) ToSshKeyOutput() SshKeyOutput {
|
||||||
|
return i.ToSshKeyOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *SshKey) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(SshKeyOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SshKeyArrayInput is an input type that accepts SshKeyArray and SshKeyArrayOutput values.
|
||||||
|
// You can construct a concrete instance of `SshKeyArrayInput` via:
|
||||||
|
//
|
||||||
|
// SshKeyArray{ SshKeyArgs{...} }
|
||||||
|
type SshKeyArrayInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToSshKeyArrayOutput() SshKeyArrayOutput
|
||||||
|
ToSshKeyArrayOutputWithContext(context.Context) SshKeyArrayOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type SshKeyArray []SshKeyInput
|
||||||
|
|
||||||
|
func (SshKeyArray) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*SshKey)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SshKeyArray) ToSshKeyArrayOutput() SshKeyArrayOutput {
|
||||||
|
return i.ToSshKeyArrayOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SshKeyArray) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(SshKeyArrayOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SshKeyMapInput is an input type that accepts SshKeyMap and SshKeyMapOutput values.
|
||||||
|
// You can construct a concrete instance of `SshKeyMapInput` via:
|
||||||
|
//
|
||||||
|
// SshKeyMap{ "key": SshKeyArgs{...} }
|
||||||
|
type SshKeyMapInput interface {
|
||||||
|
pulumi.Input
|
||||||
|
|
||||||
|
ToSshKeyMapOutput() SshKeyMapOutput
|
||||||
|
ToSshKeyMapOutputWithContext(context.Context) SshKeyMapOutput
|
||||||
|
}
|
||||||
|
|
||||||
|
type SshKeyMap map[string]SshKeyInput
|
||||||
|
|
||||||
|
func (SshKeyMap) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*SshKey)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SshKeyMap) ToSshKeyMapOutput() SshKeyMapOutput {
|
||||||
|
return i.ToSshKeyMapOutputWithContext(context.Background())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i SshKeyMap) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput {
|
||||||
|
return pulumi.ToOutputWithContext(ctx, i).(SshKeyMapOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SshKeyOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (SshKeyOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((**SshKey)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyOutput) ToSshKeyOutput() SshKeyOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyOutput) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the key was created.
|
||||||
|
func (o SshKeyOutput) CreatedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free-form description.
|
||||||
|
func (o SshKeyOutput) Description() pulumi.StringPtrOutput {
|
||||||
|
return o.ApplyT(func(v *SshKey) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC 3339 timestamp of when the key was last used, if ever.
|
||||||
|
func (o SshKeyOutput) LastUsedAt() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.LastUsedAt }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display name of the key pair.
|
||||||
|
func (o SshKeyOutput) Name() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PEM-encoded private key.
|
||||||
|
func (o SshKeyOutput) PrivateKey() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.PrivateKey }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
// OpenSSH-formatted public key.
|
||||||
|
func (o SshKeyOutput) PublicKey() pulumi.StringOutput {
|
||||||
|
return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.PublicKey }).(pulumi.StringOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SshKeyArrayOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (SshKeyArrayOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*[]*SshKey)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyArrayOutput) ToSshKeyArrayOutput() SshKeyArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyArrayOutput) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyArrayOutput) Index(i pulumi.IntInput) SshKeyOutput {
|
||||||
|
return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SshKey {
|
||||||
|
return vs[0].([]*SshKey)[vs[1].(int)]
|
||||||
|
}).(SshKeyOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SshKeyMapOutput struct{ *pulumi.OutputState }
|
||||||
|
|
||||||
|
func (SshKeyMapOutput) ElementType() reflect.Type {
|
||||||
|
return reflect.TypeOf((*map[string]*SshKey)(nil)).Elem()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyMapOutput) ToSshKeyMapOutput() SshKeyMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyMapOutput) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput {
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o SshKeyMapOutput) MapIndex(k pulumi.StringInput) SshKeyOutput {
|
||||||
|
return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SshKey {
|
||||||
|
return vs[0].(map[string]*SshKey)[vs[1].(string)]
|
||||||
|
}).(SshKeyOutput)
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*SshKeyInput)(nil)).Elem(), &SshKey{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*SshKeyArrayInput)(nil)).Elem(), SshKeyArray{})
|
||||||
|
pulumi.RegisterInputType(reflect.TypeOf((*SshKeyMapInput)(nil)).Elem(), SshKeyMap{})
|
||||||
|
pulumi.RegisterOutputType(SshKeyOutput{})
|
||||||
|
pulumi.RegisterOutputType(SshKeyArrayOutput{})
|
||||||
|
pulumi.RegisterOutputType(SshKeyMapOutput{})
|
||||||
|
}
|
||||||
1
sdk/nodejs/.gitattributes
generated
vendored
Normal file
1
sdk/nodejs/.gitattributes
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
* linguist-generated
|
||||||
2
sdk/nodejs/.gitignore
generated
vendored
Normal file
2
sdk/nodejs/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
node_modules/
|
||||||
|
bin/
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user