diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index dc5ac87..9cebb6e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -25,16 +25,9 @@ jobs: uses: actions/setup-go@v4 with: # The versions of golangci-lint and setup-go here cross-depend and need to update together. - go-version: 1.21 + go-version: 1.22.2 # Either this action or golangci-lint needs to disable the cache cache: false - - name: disarm go:embed directives to enable lint - continue-on-error: true # this fails if there are no go:embed directives - run: | - git grep -l 'go:embed' -- provider | xargs sed -i 's/go:embed/ goembed/g' - - name: prepare upstream - continue-on-error: true - run: make upstream - run: cd provider && go mod tidy - name: golangci-lint uses: golangci/golangci-lint-action@v3 diff --git a/.golangci.yml b/.golangci.yml index 6064a78..f71e57a 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -15,7 +15,7 @@ linters: - unused enable-all: false run: - skip-files: + exclude-files: - schema.go - pulumiManifest.go - timeout: 20m + timeout: 120m diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..651e8ea --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,130 @@ +# Contributing to pulumi-pgedge + +We appreciate your interest in contributing to the pulumi-pgedge project! This document provides guidelines and instructions for contributing to this repository. + +## Prerequisites + +Before you begin, ensure you have the following tools installed: + +- [Pulumi CLI](https://www.pulumi.com/docs/get-started/install/) +- [Go](https://golang.org/doc/install) (version 1.18 or later) +- [pulumictl](https://github.com/pulumi/pulumictl) +- [golangci-lint](https://golangci-lint.run/usage/install/) +- [Node.js](https://nodejs.org/) (Active LTS or maintenance version, we recommend using [nvm](https://github.com/nvm-sh/nvm) to manage Node.js installations) +- [Yarn](https://yarnpkg.com/getting-started/install) +- [TypeScript](https://www.typescriptlang.org/download) +- [Python](https://www.python.org/downloads/) (Python 3) +- [.NET SDK](https://dotnet.microsoft.com/download) + +## Setting Up Your Development Environment + +1. Fork the repository and clone your fork: + ``` + git clone https://github.com/pgEdge/pulumi-pgedge.git + cd pulumi-pgedge + ``` + +2. Add the upstream repository as a remote: + ``` + git remote add upstream https://github.com/pgEdge/pulumi-pgedge.git + ``` + +3. Create a new branch for your changes: + ``` + git checkout -b feature/your-feature-name + ``` + +## Updating the Terraform Provider + +To migrate to a newer Terraform version: + +1. Update the pgedge Terraform provider in the `provider/shim` directory: + ``` + cd provider/shim + go get -u github.com/pgEdge/terraform-provider-pgedge + go mod tidy + go build + ``` + +2. Change to the `provider` directory and update dependencies: + ``` + cd ../ + go mod tidy + go build + ``` + +3. Generate schemas, binaries, and SDKs: + ``` + make tfgen + make build + ``` + +## Testing Your Changes + +1. Set your `PATH` to include the `/bin` directory of the codebase for the current terminal session: + ``` + export PATH=$PATH:/path/to/pulumi-pgedge/bin + ``` + +2. Test the examples: + + For TypeScript: + ``` + cd examples/typescript + yarn install + yarn link "@pgEdge/pulumi-pgedge" + # Make changes to index.ts + pulumi up + ``` + + For Go: + ``` + cd examples/go + # Add this line to go.mod: + # replace github.com/pgEdge/pulumi-pgedge/sdk => ../../sdk + pulumi up + ``` + + Note: If you encounter errors, try copying the binary to your GOPATH: + ``` + cp bin/pulumi-resource-pgedge $GOPATH/bin + ``` + +## Submitting Your Changes + +1. Commit your changes with a clear and descriptive commit message: + ``` + git commit -am "Add feature: your feature description" + ``` + +2. Push your changes to your fork: + ``` + git push origin feature/your-feature-name + ``` + +3. Create a pull request from your fork to the main repository. + +4. Wait for the maintainers to review your pull request. They may ask for changes or clarifications. + +## Code Style and Guidelines + +- Follow the existing code style in the project. +- Write clear, concise, and well-documented code. +- Include unit tests for new features or bug fixes. +- Update documentation as necessary. + +## Reporting Issues + +If you find a bug or have a suggestion for improvement: + +1. Check if the issue already exists in the [GitHub Issues](https://github.com/pgEdge/pulumi-pgedge/issues). +2. If not, create a new issue, providing as much detail as possible. + +## Getting Help + +If you need help or have questions, feel free to: + +- Open an issue for discussion +- Reach out to the maintainers + +Thank you for contributing to pulumi-pgedge! \ No newline at end of file diff --git a/README.md b/README.md index dc45f00..a24fa45 100644 --- a/README.md +++ b/README.md @@ -1,152 +1,306 @@ # pgEdge Pulumi Provider -Welcome to the pgEdge pulumi provider repository. This repository contains the Pulumi resource provider for pgEdge. +pgEdge -## Getting Started +The official Pulumi provider for [pgEdge](https://www.pgedge.com/), designed to simplify the management of pgEdge resources using infrastructure as code. + +- **Documentation:** [pgEdge Pulumi Docs](https://www.pulumi.com/registry/packages/pgedge/) +- **Website:** [pgEdge](https://www.pgedge.com/) +- **Discuss:** [GitHub Issues](https://github.com/pgEdge/pulumi-pgedge/issues) + +## Prerequisites + +Before you begin, ensure you have the following tools installed: -To get started with the pgEdge Pulumi provider, you'll need to install the Pulumi CLI and the pgEdge provider SDK for your language of choice. Below are the installation instructions and example usage in Go and TypeScript. +- [Pulumi CLI](https://www.pulumi.com/docs/get-started/install/) +- [Go](https://golang.org/doc/install) (version 1.18 or later) +- [pulumictl](https://github.com/pulumi/pulumictl) +- [golangci-lint](https://golangci-lint.run/usage/install/) +- [Node.js](https://nodejs.org/) (Active LTS or maintenance version, we recommend using [nvm](https://github.com/nvm-sh/nvm) to manage Node.js installations) +- [Yarn](https://yarnpkg.com/getting-started/install) +- [TypeScript](https://www.typescriptlang.org/download) +- [Python](https://www.python.org/downloads/) (Python 3) +- [.NET SDK](https://dotnet.microsoft.com/download) -### Installation +## Installation -#### Pulumi CLI +To use this provider, you need to have Pulumi installed. If you haven't already, you can [install Pulumi here](https://www.pulumi.com/docs/get-started/install/). + +### Go -Ensure you have the Pulumi CLI installed. You can install it using the following command: ```bash -curl -fsSL https://get.pulumi.com | sh -s -- --version dev +go get github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge ``` -#### Go SDK +### Node.js -To install the pgEdge SDK for Go, use the following command in your application: ```bash -go get -u github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge +npm install @pgEdge/pulumi-pgedge ``` -#### TypeScript SDK +## Configuration + +Before using the provider, you need to configure your pgEdge credentials. Set the following environment variables: + +```sh +export PGEDGE_CLIENT_ID="your-client-id" +export PGEDGE_CLIENT_SECRET="your-client-secret" +``` + +These credentials authenticate the Pulumi provider with your pgEdge Cloud account. + +## Getting Started + +### Creating a New Pulumi Project + +1. Create a new directory for your project: -To install the pgEdge SDK for TypeScript, use the following command in your application: ```bash -npm install @pgEdge/pulumi-pgedge +mkdir pgedge-pulumi-project && cd pgedge-pulumi-project +``` + +2. Initialize a new Pulumi project: + +```bash +pulumi new typescript ``` -## Usage - -### Go Example - -Below is an example of how to use the pgEdge Pulumi provider in a Go program: - -```go -package main - -import ( - "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -func main() { - pulumi.Run(func(ctx *pulumi.Context) error { - - cluster, err := pgedge.NewCluster(ctx, "cluster", &pgedge.ClusterArgs{ - Name: pulumi.String("n1"), - CloudAccountId: pulumi.String(""), // cloud account id - Regions: pulumi.StringArray{ - pulumi.String("us-east-2"), - }, - FirewallRules: pgedge.ClusterFirewallRuleArray{ - &pgedge.ClusterFirewallRuleArgs{ - Port: pulumi.Int(5432), - Sources: pulumi.ToStringArray([]string{ - "0.0.0.0/0", - }), - }, - }, - Nodes: pgedge.ClusterNodeArray{ - &pgedge.ClusterNodeArgs{ - InstanceType: pulumi.String("t4g.small"), - Name: pulumi.String("n1"), - VolumeSize: pulumi.Int(30), - Region: pulumi.String("us-east-2"), - AvailabilityZone: pulumi.String("us-east-2a"), - VolumeType: pulumi.String("gp2"), - }, - }, - Networks: pgedge.ClusterNetworkArray{ - &pgedge.ClusterNetworkArgs{ - Region: pulumi.String("us-east-2"), - Cidr: pulumi.String("10.2.0.0/16"), - PublicSubnets: pulumi.ToStringArray([]string{ - "10.2.1.0/24", - }), - }, - }, - }) - - if err != nil { - return err - } - - _, err = pgedge.NewDatabase(ctx, "database", &pgedge.DatabaseArgs{ - ClusterId: cluster.ID(), - Name: pulumi.String("defaultdb"), - }) - - if err != nil { - return err - } - - return nil - }) -} +Follow the prompts to set up your project. + +3. Install the pgEdge provider: + +```bash +npm install @pgedge/pulumi-pgedge +``` + +4. Update your `Pulumi.yaml` file to include the pgEdge provider: + +```yaml +name: pgedge-pulumi-project +runtime: nodejs +description: A new Pulumi project using pgEdge +plugins: + providers: + - name: pgedge + path: ./node_modules/@pgEdge/pulumi-pgedge ``` -### TypeScript Example +### Writing Your Pulumi Program -Below is an example of how to use the pgEdge Pulumi provider in a TypeScript program: +Replace the contents of `index.ts` with the following: -```ts +```typescript +import * as pulumi from "@pulumi/pulumi"; import * as pgedge from "@pgEdge/pulumi-pgedge"; -var cluster = new pgedge.Cluster("cluster", { - name: "n1", - cloudAccountId: "", // cloud account id - regions: ["us-east-2"], - firewallRules: [ - { - port: 5432, - sources: ["0.0.0.0/0"], - } - ], - nodes: [ - { - name: "n1", - instanceType: "t4g.medium", - volumeSize: 30, - region: "us-east-2", - availabilityZone: "us-east-2a", - volumeType: "gp2", - } - ], - networks: [ - { - region: "us-east-2", - cidr: "10.2.0.0/16", - publicSubnets: ["10.2.1.0/24"], - } - ], +// Create an SSH Key +const sshKey = new pgedge.SSHKey("exampleSSHKey", { + name: "example", + publicKey: "ssh-ed25519 AAAAC3df23442ccAANTE5AAAAICXfT63i04t5fvvlGeoUoVG7DkyxvyXbYQNhKP/rSeLY user@example.com", }); -new pgedge.Database("databaseCreate", { - name: "defaultdb", - clusterId: cluster.id, - options: [""], +// Create a Cloud Account +const cloudAccount = new pgedge.CloudAccount("exampleCloudAccount", { + name: "my-aws-account", + type: "aws", + description: "My AWS Cloud Account", + credentials: { + role_arn: "arn:aws:iam::124568901:role/pgedge-13e32c", + }, +}, { dependsOn: sshKey }); + +// Create a Backup Store +const backupStore = new pgedge.BackupStore("exampleBackupStore", { + name: "example", + cloudAccountId: cloudAccount.id, + region: "us-west-2", +}, { dependsOn: cloudAccount }); + +// Create a Cluster +const cluster = new pgedge.Cluster("exampleCluster", { + name: "example", + cloudAccountId: cloudAccount.id, + regions: ["us-west-2", "us-east-1", "eu-central-1"], + nodeLocation: "public", + sshKeyId: sshKey.id, + nodes: [ + { + name: "n1", + region: "us-west-2", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n2", + region: "us-east-1", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n3", + region: "eu-central-1", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + ], + networks: [ + { + region: "us-west-2", + cidr: "10.1.0.0/16", + publicSubnets: ["10.1.0.0/24"], + // privateSubnets: ["10.1.0.0/24"], + }, + { + region: "us-east-1", + cidr: "10.2.0.0/16", + publicSubnets: ["10.2.0.0/24"], + // privateSubnets: ["10.2.0.0/24"], + }, + { + region: "eu-central-1", + cidr: "10.3.0.0/16", + publicSubnets: ["10.3.0.0/24"], + // privateSubnets: ["10.3.0.0/24"], + }, + ], + firewallRules: [ + { + name: "postgres", + port: 5432, + sources: ["107.18.0.0/16", "89.0.142.86/16"], + }, + ], +}, { dependsOn: backupStore }); + +// Create a Database +const database = new pgedge.Database("exampleDatabase", { + name: "example", + clusterId: cluster.id, + options: [ + "install:northwind", + "rest:enabled", + "autoddl:enabled", + ], + extensions: { + autoManage: true, + requesteds: [ + "postgis" + ], + }, + nodes: [ + { name: "n1" }, + { name: "n2" }, + { name: "n3" }, + ], + backups: { + provider: "pgdump", + }, +}, { dependsOn: cluster }); + +// Export the resource IDs +export const sshKeyId = sshKey.id; +export const cloudAccountId = cloudAccount.id; +export const backupStoreId = backupStore.id; +export const clusterId = cluster.id; +export const databaseId = database.id; +``` + +### Deploying Your Infrastructure + +To deploy your infrastructure: + +1. Set up your pgEdge credentials as environment variables. +2. Run the following command: + +```bash +pulumi up +``` + +Review the changes and confirm the deployment. + +## Updating Resources + +### Updating a Database + +To update a database, you can modify properties such as `options`, `extensions`, or `nodes`. Here's an example of adding a new extension and removing a node. (Make sure to update one property at a time): + +```typescript +const database = new pgedge.Database("exampleDatabase", { + // ... other properties ... + options: [ + "install:northwind", + "rest:enabled", + "autoddl:enabled", + "cloudwatch_metrics:enabled", // New option + ], + extensions: { + autoManage: true, + requesteds: [ + "postgis", + "vector", // New extension + ], + }, + nodes: [ + { name: "n1" }, + { name: "n3" }, + ], + // ... other properties ... +}); +``` + +### Updating a Cluster + +To update an existing cluster, such as adding or removing nodes, you can modify the `nodes`, `regions`, and `networks` arrays in your Pulumi program. Here's an example of removing a node: + +```typescript +const cluster = new pgedge.Cluster("exampleCluster", { + // ... other properties ... + nodes: [ + { + name: "n1", + region: "us-west-2", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n3", + region: "eu-central-1", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + ], + regions: ["us-west-2", "eu-central-1"], + networks: [ + { + region: "us-west-2", + cidr: "10.1.0.0/16", + publicSubnets: ["10.1.0.0/24"], + // privateSubnets: ["10.1.0.0/24"], + }, + { + region: "eu-central-1", + cidr: "10.3.0.0/16", + publicSubnets: ["10.3.0.0/24"], + // privateSubnets: ["10.3.0.0/24"], + }, + ], + // ... other properties ... }); ``` -### Additional Examples -For more detailed examples, please refer to the examples directory in this repository: -- [examples](examples) +After making these changes, run `pulumi up` to apply the updates to your infrastructure. + +You can find more examples in the [examples](examples/) directory. + +## Contributing + +We welcome contributions from the community. Please review our [contribution guidelines](CONTRIBUTING.md) for more information on how to get started. ## License -This project is licensed under the terms of the Apache License. See the [LICENSE](LICENSE) file for details. -Thank you for using the pgEdge Pulumi provider! \ No newline at end of file +This project is licensed under the Apache License. See the [LICENSE](LICENSE) file for details. \ No newline at end of file diff --git a/deployment-templates/.goreleaser.yml b/deployment-templates/.goreleaser.yml deleted file mode 100644 index 010b0e2..0000000 --- a/deployment-templates/.goreleaser.yml +++ /dev/null @@ -1,29 +0,0 @@ -archives: - - id: archive - name_template: '{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}' -before: - hooks: - - make tfgen -builds: - - binary: pulumi-resource-pgedge - dir: provider - env: - - CGO_ENABLED=0 - goarch: - - amd64 - - arm64 - goos: - - darwin - - windows - - linux - ldflags: - # The line below MUST align with the module in current provider/go.mod - - -X github.com/your-org-name/pulumi-pgedge/provider/pkg/version.Version={{.Tag }} - main: ./cmd/pulumi-resource-pgedge/ -changelog: - skip: true -release: - disable: false - prerelease: auto -snapshot: - name_template: '{{ .Tag }}-SNAPSHOT' diff --git a/deployment-templates/README-DEPLOYMENT.md b/deployment-templates/README-DEPLOYMENT.md deleted file mode 100644 index 9d6e68b..0000000 --- a/deployment-templates/README-DEPLOYMENT.md +++ /dev/null @@ -1,27 +0,0 @@ -# Configure - -1. Create a directory at the root of your repo called .github/workflows - -1. Place the release.yml from this directory there - -1. Place the .goreleaser.yml from this directory at the root of your repo - -1. The example shown uses Pulumi's [Publishing Action](https://github.com/pulumi/pulumi-package-publisher) to publish the language SDKS. - Refer to the README for any environment secrets you need to set up. - -1. Customize .goreleaser.yml for your provider, paying special attention that the ldlflags are set to match your provider/go.mod exactly: - - `-X github.com/pulumi/pulumi-aws/provider/v5/pkg/version.Version={{.Tag}}` - -1. Delete this directory if desired - - -# Deploy - -1. Push a tag to your repo in the format "v0.0.0" to initiate a release - -1. IMPORTANT: also add a tag in the format "sdk/v0.0.0" for the Go SDK - -# Upgrade - -Pulumi provides a [GitHub action](https://github.com/pulumi/pulumi-upgrade-provider-action) to automate upgrading your provider upon a new upstream version release. An example workflow that runs the upgrade action on a cron job, as well as whenever an issue is created with a title prefix of 'Upgrade terraform-provider', is [provided here](./upgrade-provider.yml). diff --git a/deployment-templates/release.yml b/deployment-templates/release.yml deleted file mode 100644 index 2919255..0000000 --- a/deployment-templates/release.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: release -on: - push: - tags: - - v*.*.* -env: - # THIS GITHUB_TOKEN IS A REQUIREMENT TO BE ABLE TO WRITE TO GH RELEASES - GITHUB_TOKEN: ${{ YOUR GITHUB TOKEN HERE }} - # IF YOU NEED TO PUBLISH A NPM PACKAGE THEN ENSURE A NPM_TOKEN SECRET IS SET - # AND PUBLISH_NPM: TRUE. IF YOU WANT TO PUBLISH TO A PRIVATE NPM REGISTRY - # THEN ENSURE THE NPM_REGISTRY_URL IS CHANGED - NODE_AUTH_TOKEN: ${{ YOUR NPM TOKEN HERE }} - NPM_TOKEN: ${{ YOUR NPM TOKEN HERE }} - PUBLISH_NPM: true - NPM_REGISTRY_URL: https://registry.npmjs.org - # IF YOU NEED TO PUBLISH A NUGET PACKAGE THEN ENSURE AN NUGET_PUBLISH_KEY - # SECRET IS SET AND PUBLISH_NUGET: TRUE. IF YOU WANT TO PUBLISH TO AN ALTERNATIVE - # NPM REGISTRY THEN ENSURE THE NPM_REGISTRY_URL IS CHANGED - NUGET_PUBLISH_KEY: ${{ YOUR NUGET PUBLISH KEY HERE }} - NUGET_FEED_URL: https://api.nuget.org/v3/index.json - PUBLISH_NUGET: true - # IF YOU NEED TO PUBLISH A PYPI PACKAGE SET PUBLISH_PYPI: TRUE AND CHANGE PYPI_PASSWORD, PYPI_USERNAME TO YOUR CREDENTIALS. - # IF YOU WANT TO PUBLISH TO AN ALTERNATIVE PYPI REGISTRY THEN ENSURE THE PYPI_REPOSITORY_URL IS SET. - PYPI_PASSWORD: ${{ YOUR PYPI PASSWORD HERE }} - PYPI_USERNAME: "YOUR PYPI USERNAME HERE" - PYPI_REPOSITORY_URL: "" - PUBLISH_PYPI: true -jobs: - publish_binary: - name: publish - runs-on: ubuntu-latest - steps: - - name: Checkout Repo - uses: actions/checkout@v2 - - name: Unshallow clone for tags - run: git fetch --prune --unshallow --tags - - name: Install Go - uses: actions/setup-go@v2 - with: - go-version: ${{matrix.goversion}} - - name: Install pulumictl - uses: jaxxstorm/action-install-gh-release@v1.5.0 - with: - repo: pulumi/pulumictl - - name: Set PreRelease Version - run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)" >> $GITHUB_ENV - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 - with: - args: -p 3 release --rm-dist - version: latest - strategy: - fail-fast: true - matrix: - goversion: - - 1.17.x - publish_sdk: - name: Publish SDKs - runs-on: ubuntu-latest - needs: publish_binary - steps: - - name: Publish SDKs - uses: pulumi/pulumi-package-publisher@v0.0.6 - strategy: - fail-fast: true - matrix: - dotnetversion: - - 3.1.301 - goversion: - - 1.17.x - language: - - nodejs - - python - - dotnet - - go - nodeversion: - - 14.x - pythonversion: - - "3.9" diff --git a/deployment-templates/upgrade-provider.yml b/deployment-templates/upgrade-provider.yml deleted file mode 100644 index acb24d5..0000000 --- a/deployment-templates/upgrade-provider.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Upgrade provider -on: - issues: - types: - - opened - schedule: - - cron: '0 5 * * *' -env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -jobs: - upgrade_provider: - name: upgrade-provider - runs-on: ubuntu-latest - steps: - - name: Call upgrade provider action - uses: pulumi/pulumi-upgrade-provider-action@main diff --git a/examples/examples_nodejs_test.go b/examples/examples_nodejs_test.go deleted file mode 100644 index 6983bd8..0000000 --- a/examples/examples_nodejs_test.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build nodejs || all -// +build nodejs all - -package examples - -import ( - "testing" - - "github.com/pulumi/pulumi/pkg/v3/testing/integration" -) - -func getJSBaseOptions(t *testing.T) integration.ProgramTestOptions { - base := getBaseOptions() - baseJS := base.With(integration.ProgramTestOptions{ - Dependencies: []string{ - "@pulumi/foo", - }, - }) - - return baseJS -} diff --git a/examples/examples_py_test.go b/examples/examples_py_test.go deleted file mode 100644 index 7d832f4..0000000 --- a/examples/examples_py_test.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build python || all -// +build python all - -package examples - -import ( - "path/filepath" - "testing" - - "github.com/pulumi/pulumi/pkg/v3/testing/integration" -) - -func getPythonBaseOptions(t *testing.T) integration.ProgramTestOptions { - base := getBaseOptions() - basePython := base.With(integration.ProgramTestOptions{ - Dependencies: []string{ - filepath.Join("..", "sdk", "python", "bin"), - }, - }) - - return basePython -} diff --git a/examples/examples_test.go b/examples/examples_test.go deleted file mode 100644 index 9810e75..0000000 --- a/examples/examples_test.go +++ /dev/null @@ -1,24 +0,0 @@ -package examples - -import ( - "os" - "testing" - - "github.com/pulumi/pulumi/pkg/v3/testing/integration" -) - -func getCwd(t *testing.T) string { - cwd, err := os.Getwd() - if err != nil { - t.FailNow() - } - - return cwd -} - -func getBaseOptions() integration.ProgramTestOptions { - return integration.ProgramTestOptions{ - RunUpdateTest: false, - ExpectRefreshChanges: true, - } -} diff --git a/examples/go.mod b/examples/go.mod deleted file mode 100644 index b28b93b..0000000 --- a/examples/go.mod +++ /dev/null @@ -1,177 +0,0 @@ -module github.com/pgEdge/pulumi-pgedge/examples - -go 1.21 - -require ( - cloud.google.com/go v0.112.1 // indirect - cloud.google.com/go/compute v1.25.0 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/kms v1.15.7 // indirect - cloud.google.com/go/logging v1.9.0 // indirect - cloud.google.com/go/longrunning v0.5.5 // indirect - cloud.google.com/go/storage v1.39.1 // indirect - dario.cat/mergo v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.0.0 // 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/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.50.36 // indirect - github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect - github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect - github.com/aws/smithy-go v1.20.2 // indirect - github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect - github.com/blang/semver v3.5.1+incompatible // indirect - github.com/cenkalti/backoff/v3 v3.2.2 // indirect - github.com/charmbracelet/bubbles v0.16.1 // indirect - github.com/charmbracelet/bubbletea v0.25.0 // indirect - github.com/charmbracelet/lipgloss v0.7.1 // indirect - github.com/cheggaaa/pb v1.0.29 // indirect - github.com/cloudflare/circl v1.3.7 // indirect - github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect - github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.5.0 // indirect - github.com/djherbis/times v1.5.0 // indirect - github.com/edsrzf/mmap-go v1.1.0 // indirect - github.com/emirpasic/gods v1.18.1 // indirect - github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-git/go-git/v5 v5.12.0 // indirect - github.com/go-jose/go-jose/v3 v3.0.3 // indirect - github.com/go-logr/logr v1.4.1 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/gofrs/uuid v4.2.0+incompatible // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.1 // indirect - github.com/golang/glog v1.2.0 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/go-querystring v1.1.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/google/wire v0.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.2 // indirect - github.com/gorilla/mux v1.8.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-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-retryablehttp v0.7.5 // indirect - github.com/hashicorp/go-rootcerts v1.0.2 // indirect - github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect - github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect - github.com/hashicorp/go-sockaddr v1.0.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.17.0 // indirect - github.com/hashicorp/vault/api v1.12.0 // indirect - github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.15 // 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-wordwrap v1.0.1 // 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.2 // indirect - github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect - github.com/muesli/cancelreader v0.2.2 // indirect - github.com/muesli/reflow v0.3.0 // indirect - github.com/muesli/termenv v0.15.2 // indirect - github.com/natefinch/atomic v1.0.1 // indirect - github.com/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/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect - github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/pkg/term v1.1.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect - github.com/pulumi/esc v0.9.1 // indirect - github.com/pulumi/pulumi/pkg/v3 v3.119.0 // indirect - github.com/pulumi/pulumi/sdk/v3 v3.119.0 // indirect - github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect - github.com/ryanuber/go-glob v1.0.0 // indirect - github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect - github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect - github.com/segmentio/asm v1.1.3 // indirect - github.com/segmentio/encoding v0.3.5 // indirect - github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect - github.com/skeema/knownhosts v1.2.2 // indirect - github.com/spf13/cobra v1.8.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.9.0 // indirect - github.com/texttheater/golang-levenshtein v1.0.1 // indirect - github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect - github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect - github.com/uber/jaeger-lib v2.4.1+incompatible // indirect - github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect - github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/zclconf/go-cty v1.13.2 // indirect - go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/otel v1.24.0 // indirect - go.opentelemetry.io/otel/metric v1.24.0 // indirect - go.opentelemetry.io/otel/trace v1.24.0 // indirect - go.uber.org/atomic v1.9.0 // indirect - gocloud.dev v0.37.0 // indirect - gocloud.dev/secrets/hashivault v0.37.0 // indirect - golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.22.0 // indirect - golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - google.golang.org/api v0.169.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - lukechampine.com/frand v1.4.2 // indirect -) diff --git a/examples/go.sum b/examples/go.sum deleted file mode 100644 index a5365c0..0000000 --- a/examples/go.sum +++ /dev/null @@ -1,565 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= -cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= -cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU= -cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= -cloud.google.com/go/logging v1.9.0 h1:iEIOXFO9EmSiTjDmfpbRjOxECO7R8C7b8IXUGOj7xZw= -cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= -cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= -cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= -cloud.google.com/go/storage v1.39.1 h1:MvraqHKhogCOTXTlct/9C3K3+Uy2jBmFYb3/Sp6dVtY= -cloud.google.com/go/storage v1.39.1/go.mod h1:xK6xZmxZmo+fyP7+DEF6FhNc24/JAe95OLyOHCXFH1o= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 h1:n1DH8TPV4qqPTje2RcUBYwtrTWlabVp4n46+74X2pn4= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0/go.mod h1:HDcZnuGbiyppErN6lB+idp4CKhjbc8gwjto6OPpyggM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 h1:LqbJ/WzJUwBf8UiaSzgX7aMclParm9/5Vgp+TY51uBQ= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2/go.mod h1:yInRyqWXAuaPrgI7p70+lDDgh3mlBohis29jGMISnmc= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 h1:m/sWOGCREuSBqg2htVQTBY8nOZpyajYztF0vUvSZTuM= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0/go.mod h1:Pu5Zksi2KrU7LPbZbNINx6fuVrUp/ffvpxdDj+i8LeE= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 h1:FbH3BbSb4bvGluTesZZ+ttN/MDsnMmQP36OSnDuSXqw= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1/go.mod h1:9V2j0jn9jDEkCkv8w/bKTNppX/d0FVA1ud77xCIP4KA= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= -github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -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/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/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= -github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZqk= -github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= -github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= -github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= -github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= -github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= -github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 h1:SBn4I0fJXF9FYOVRSVMWuhvEKoAHDikjGpS3wlmw5DE= -github.com/aws/aws-sdk-go-v2/service/kms v1.30.1/go.mod h1:2snWQJQUKsbN66vAawJuOGX7dr37pfOq9hb0tZDGIqQ= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= -github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= -github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= -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/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M= -github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/charmbracelet/bubbles v0.16.1 h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY= -github.com/charmbracelet/bubbles v0.16.1/go.mod h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc= -github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM= -github.com/charmbracelet/bubbletea v0.25.0/go.mod h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg= -github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E= -github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c= -github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= -github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= -github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= -github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -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/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.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= -github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= -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.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= -github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= -github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= -github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= -github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= -github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/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/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.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= -github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -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.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -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/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= -github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -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.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI= -github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= -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-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-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-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -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-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M= -github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= -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.1.8 h1:iBt4Ew4XEGLfh6/bPk4rSYmuZJGizr6/x/AEizP0CQc= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8/go.mod h1:aiJI+PIApBRQG7FZTEBx5GiiX+HbOHilUdNxUZi4eV0= -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.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= -github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/hcl/v2 v2.17.0 h1:z1XvSUyXd1HP10U4lrLg5e0JMVz6CPaJvAgxM0KNZVY= -github.com/hashicorp/hcl/v2 v2.17.0/go.mod h1:gJyW2PTShkJqQBKpAmPO3yxMxIuoXkOF2TpqXzrQyx4= -github.com/hashicorp/vault/api v1.12.0 h1:meCpJSesvzQyao8FCOgk2fGdoADAnbDu2WPJN1lDLJ4= -github.com/hashicorp/vault/api v1.12.0/go.mod h1:si+lJCYO7oGkIoNPAN8j3azBLTn9SjMGS+jFaHd1Cck= -github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= -github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/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.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= -github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -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/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.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -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.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/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.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= -github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -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-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= -github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -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.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 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/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/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= -github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= -github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= -github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= -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/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/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.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= -github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= -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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -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/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= -github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c= -github.com/pulumi/pulumi/pkg/v3 v3.119.0 h1:I7716j1xugGCUgcEIhRn1MzzfSpZnsDZpi+pc5qf4hg= -github.com/pulumi/pulumi/pkg/v3 v3.119.0/go.mod h1:sKovnH/g9x8nKUNS38PlGQf2M8IwKu9uxBELuiSx4F4= -github.com/pulumi/pulumi/sdk/v3 v3.119.0 h1:CPP0ZxAM1WT0O5/IJF0x13ZyvFMoWJi21gqNxBrLusk= -github.com/pulumi/pulumi/sdk/v3 v3.119.0/go.mod h1:/mQJPO+HehhoSJ9O3C6eUKAGeAr+4KSrbDhLsXHKldc= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= -github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= -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.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= -github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= -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.5 h1:UZEiaZ55nlXGDL92scoVuw00RmiRCazIEmvPSbSvt8Y= -github.com/segmentio/encoding v0.3.5/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM= -github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= -github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= -github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/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.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -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/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= -github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE= -github.com/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/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -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/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/zclconf/go-cty v1.13.2 h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0= -github.com/zclconf/go-cty v1.13.2/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= -go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= -go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= -go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= -go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= -go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -gocloud.dev v0.37.0 h1:XF1rN6R0qZI/9DYjN16Uy0durAmSlf58DHOcb28GPro= -gocloud.dev v0.37.0/go.mod h1:7/O4kqdInCNsc6LqgmuFnS0GRew4XNNYWpA44yQnwco= -gocloud.dev/secrets/hashivault v0.37.0 h1:5ehGtUBP29DFAgAs6bPw7fVSgqQ3TxaoK2xVcLp1x+c= -gocloud.dev/secrets/hashivault v0.37.0/go.mod h1:4ClUWjBfP8wLdGts56acjHz3mWLuATMoH9vi74FjIv8= -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.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -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.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -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-20201110031124-69a78807bb2b/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-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -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.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= -golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-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.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-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-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -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.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= -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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -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.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= -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-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s= -google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7/go.mod h1:/3XmxOjePkvmKrHuBy4zNFw7IzxJXtAgdpXi8Ll990U= -google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 h1:oqta3O3AnlWbmIE3bFnWbu4bRxZjfbWCp0cKSuZh01E= -google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7/go.mod h1:VQW3tUculP/D4B+xVCo+VgSq8As6wA9ZjHl//pmk+6s= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -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/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -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= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= -lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= diff --git a/examples/go/go.mod b/examples/go/go.mod index a6afef1..ff282be 100644 --- a/examples/go/go.mod +++ b/examples/go/go.mod @@ -4,6 +4,8 @@ go 1.21.5 toolchain go1.22.2 +replace github.com/pgEdge/pulumi-pgedge/sdk => ../../sdk + require ( github.com/pgEdge/pulumi-pgedge/sdk v0.0.0-20240610233232-b228dc9881cf github.com/pulumi/pulumi/sdk/v3 v3.119.0 @@ -68,6 +70,7 @@ require ( github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/skeema/knownhosts v1.2.2 // indirect + github.com/spf13/cast v1.4.1 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect diff --git a/examples/go/go.sum b/examples/go/go.sum index b72720a..0e31eda 100644 --- a/examples/go/go.sum +++ b/examples/go/go.sum @@ -168,6 +168,8 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +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.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= diff --git a/examples/go/main.go b/examples/go/main.go index fb1c1c2..d415b5f 100644 --- a/examples/go/main.go +++ b/examples/go/main.go @@ -1,98 +1,194 @@ package main import ( - "os" + "fmt" "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { + // Configuration + cfg := config.New(ctx, "") + baseUrl := cfg.Get("baseUrl") + if baseUrl == "" { + baseUrl = "https://api.pgedge.com" + } - cluster, err := pgedge.NewCluster(ctx, "cluster", &pgedge.ClusterArgs{ - Name: pulumi.String("testcluster"), - CloudAccountId: pulumi.String(os.Getenv("PGEDGE_CLOUD_ACCOUNT_ID")), - Regions: pulumi.StringArray{ - pulumi.String("us-east-1"), - pulumi.String("us-east-2"), - pulumi.String("eu-central-1"), - }, - FirewallRules: pgedge.ClusterFirewallRuleArray{ - &pgedge.ClusterFirewallRuleArgs{ - Port: pulumi.Int(5432), - Sources: pulumi.ToStringArray([]string{ - "0.0.0.0/0", - }), + // SSH Key + sshKey, err := pgedge.NewSSHKey(ctx, "exampleSSHKey", &pgedge.SSHKeyArgs{ + Name: pulumi.String("example"), + PublicKey: pulumi.String("ssh-ed25519 AAAAC3NzaC1lZsdw877237ICXfT63i04t5fvvlGesddwed21VG7DkyxvyXbYQNhKP/rSeLY user@example.com"), + }) + if err != nil { + return err + } + + // Cloud Account + cloudAccount, err := pgedge.NewCloudAccount(ctx, "exampleCloudAccount", &pgedge.CloudAccountArgs{ + Name: pulumi.String("my-aws-account"), + Type: pulumi.String("aws"), + Description: pulumi.String("My AWS Cloud Account"), + Credentials: pulumi.StringMap{ + "role_arn": pulumi.String("arn:aws:iam::1234567890:role/pgedge-13we22c"), }, - }, - Nodes: pgedge.ClusterNodeArray{ - &pgedge.ClusterNodeArgs{ - InstanceType: pulumi.String("t4g.small"), - Name: pulumi.String("n1"), - VolumeSize: pulumi.Int(30), - Region: pulumi.String("us-east-1"), - AvailabilityZone: pulumi.String("us-east-1a"), - VolumeType: pulumi.String("gp2"), + }, pulumi.DependsOn([]pulumi.Resource{sshKey})) + if err != nil { + return err + } + + // Backup Store + backupStore, err := pgedge.NewBackupStore(ctx, "exampleBackupStore", &pgedge.BackupStoreArgs{ + Name: pulumi.String("example"), + CloudAccountId: cloudAccount.ID(), + Region: pulumi.String("us-west-2"), + }, pulumi.DependsOn([]pulumi.Resource{cloudAccount})) + if err != nil { + return err + } + + // Cluster + cluster, err := pgedge.NewCluster(ctx, "exampleCluster", &pgedge.ClusterArgs{ + Name: pulumi.String("example"), + CloudAccountId: cloudAccount.ID(), + Regions: pulumi.ToStringArray([]string{"us-west-2", "us-east-1", "eu-central-1"}), + NodeLocation: pulumi.String("public"), + SshKeyId: sshKey.ID(), + Nodes: pgedge.ClusterNodeArray{ + &pgedge.ClusterNodeArgs{ + Name: pulumi.String("n1"), + Region: pulumi.String("us-west-2"), + InstanceType: pulumi.String("r6g.medium"), + VolumeSize: pulumi.Int(100), + VolumeType: pulumi.String("gp2"), + }, + &pgedge.ClusterNodeArgs{ + Name: pulumi.String("n2"), + Region: pulumi.String("us-east-1"), + InstanceType: pulumi.String("r6g.medium"), + VolumeSize: pulumi.Int(100), + VolumeType: pulumi.String("gp2"), + }, + &pgedge.ClusterNodeArgs{ + Name: pulumi.String("n3"), + Region: pulumi.String("eu-central-1"), + InstanceType: pulumi.String("r6g.medium"), + VolumeSize: pulumi.Int(100), + VolumeType: pulumi.String("gp2"), + }, }, - &pgedge.ClusterNodeArgs{ - InstanceType: pulumi.String("t4g.small"), - Name: pulumi.String("n2"), - VolumeSize: pulumi.Int(30), - Region: pulumi.String("us-east-2"), - AvailabilityZone: pulumi.String("us-east-2a"), - VolumeType: pulumi.String("gp2"), + Networks: pgedge.ClusterNetworkArray{ + &pgedge.ClusterNetworkArgs{ + Region: pulumi.String("us-west-2"), + Cidr: pulumi.String("10.1.0.0/16"), + PublicSubnets: pulumi.ToStringArray([]string{"10.1.0.0/24"}), + // PrivateSubnets: pulumi.ToStringArray([]string{"10.1.1.0/24"}), + }, + &pgedge.ClusterNetworkArgs{ + Region: pulumi.String("us-east-1"), + Cidr: pulumi.String("10.2.0.0/16"), + PublicSubnets: pulumi.ToStringArray([]string{"10.2.0.0/24"}), + // PrivateSubnets: pulumi.ToStringArray([]string{"10.2.1.0/24"}), + }, + &pgedge.ClusterNetworkArgs{ + Region: pulumi.String("eu-central-1"), + Cidr: pulumi.String("10.3.0.0/16"), + PublicSubnets: pulumi.ToStringArray([]string{"10.3.0.0/24"}), + // PrivateSubnets: pulumi.ToStringArray([]string{"10.3.1.0/24"}), + }, }, - &pgedge.ClusterNodeArgs{ - InstanceType: pulumi.String("t4g.small"), - Name: pulumi.String("n2"), - VolumeSize: pulumi.Int(30), - Region: pulumi.String("eu-central-1"), - AvailabilityZone: pulumi.String("eu-central-1a"), - VolumeType: pulumi.String("gp2"), + FirewallRules: pgedge.ClusterFirewallRuleArray{ + &pgedge.ClusterFirewallRuleArgs{ + Name: pulumi.String("postgres"), + Port: pulumi.Int(5432), + Sources: pulumi.ToStringArray([]string{"151.302.23.96/32"}), + }, }, - }, + // backupStoreIds: pulumi.ToStringArray([]string{backupStore.ID()}), + }, pulumi.DependsOn([]pulumi.Resource{backupStore})) + if err != nil { + return err + } - Networks: pgedge.ClusterNetworkArray{ - &pgedge.ClusterNetworkArgs{ - Region: pulumi.String("us-east-1"), - Cidr: pulumi.String("10.1.0.0/16"), - PublicSubnets: pulumi.ToStringArray([]string{ - "10.1.1.0/24", - }), + // Database + database, err := pgedge.NewDatabase(ctx, "exampleDatabase", &pgedge.DatabaseArgs{ + Name: pulumi.String("example"), + ClusterId: cluster.ID(), + // ConfigVersion: pulumi.String("12.8.3"), + Options: pulumi.ToStringArray([]string{"install:northwind", "rest:enabled", "autoddl:enabled"}), + Extensions: &pgedge.DatabaseExtensionsArgs{ + AutoManage: pulumi.Bool(true), + Requesteds: pulumi.ToStringArray([]string{"postgis"}), }, - &pgedge.ClusterNetworkArgs{ - Region: pulumi.String("us-east-2"), - Cidr: pulumi.String("10.2.0.0/16"), - PublicSubnets: pulumi.ToStringArray([]string{ - "10.2.1.0/24", - }), + Nodes: pgedge.DatabaseNodesMap{ + "n1": &pgedge.DatabaseNodesArgs{ + Name: pulumi.String("n1"), + }, + "n2": &pgedge.DatabaseNodesArgs{ + Name: pulumi.String("n1"), + }, + "n3": &pgedge.DatabaseNodesArgs{ + Name: pulumi.String("n3"), + }, }, - &pgedge.ClusterNetworkArgs{ - Region: pulumi.String("eu-central-1"), - Cidr: pulumi.String("10.3.0.0/16"), - PublicSubnets: pulumi.ToStringArray([]string{ - "10.3.1.0/24", - }), + Backups: &pgedge.DatabaseBackupsArgs{ + Provider: pulumi.String("pgbackrest"), + Configs: pgedge.DatabaseBackupsConfigArray{&pgedge.DatabaseBackupsConfigArgs{ + Id: pulumi.String("default"), + NodeName: pulumi.String("n1"), + Schedules: pgedge.DatabaseBackupsConfigScheduleArray{&pgedge.DatabaseBackupsConfigScheduleArgs{ + Id: pulumi.String("daily-full-backup"), + CronExpression: pulumi.String("15 * * * *"), + Type: pulumi.String("full"), + }}, + }}, }, - }, - }) + }, pulumi.DependsOn([]pulumi.Resource{cluster})) + if err != nil { + return err + } - if err != nil { - return err - } + // Outputs + ctx.Export("sshKeyId", sshKey.ID()) + ctx.Export("backupStoreId", backupStore.ID()) + ctx.Export("cloudAccountId", cloudAccount.ID()) + ctx.Export("clusterId", cluster.ID()) + ctx.Export("clusterStatus", cluster.Status) + ctx.Export("clusterCreatedAt", cluster.CreatedAt) + ctx.Export("databaseStatus", database.Status) - _, err = pgedge.NewDatabase(ctx, "database", &pgedge.DatabaseArgs{ - ClusterId: cluster.ID(), - Name: pulumi.String("testdb"), - Options: pulumi.StringArray{pulumi.String("install:northwind"), pulumi.String("autoddl:enabled")}, - }) - - if err != nil { - return err - } + // Log outputs + sshKey.ID().ApplyT(func(id string) error { + fmt.Printf("SSH Key ID: %s\n", id) + return nil + }) + backupStore.ID().ApplyT(func(id string) error { + fmt.Printf("Backup Store ID: %s\n", id) + return nil + }) + cloudAccount.ID().ApplyT(func(id string) error { + fmt.Printf("Cloud Account ID: %s\n", id) + return nil + }) + cluster.ID().ApplyT(func(id string) error { + fmt.Printf("Cluster ID: %s\n", id) + return nil + }) + cluster.Status.ApplyT(func(status string) error { + fmt.Printf("Cluster Status: %s\n", status) + return nil + }) + cluster.CreatedAt.ApplyT(func(createdAt string) error { + fmt.Printf("Cluster Created At: %s\n", createdAt) + return nil + }) + database.Status.ApplyT(func(status string) error { + fmt.Printf("Database Status: %s\n", status) + return nil + }) - return nil -}) - -} + return nil + }) +} \ No newline at end of file diff --git a/examples/typescript/index.ts b/examples/typescript/index.ts index 9ba2030..2b05330 100644 --- a/examples/typescript/index.ts +++ b/examples/typescript/index.ts @@ -1,36 +1,147 @@ +import * as pulumi from "@pulumi/pulumi"; import * as pgedge from "@pgEdge/pulumi-pgedge"; -var cluster = new pgedge.Cluster("clusterCreate",{ - name: "n1", - cloudAccountId: "", // cloud account id - regions:["us-east-2"], - firewallRules: [ - { - port: 5432, - sources: ["0.0.0.0/0"], - } - ], +const config = new pulumi.Config(); +const baseUrl = config.get("baseUrl") || "https://api.pgedge.com"; + +const sshKey = new pgedge.SSHKey("exampleSSHKey", { + name: "example", + publicKey: "ssh-ed25519 AAAAC3NzaC1lZsdw877237ICXfT63i04t5fvvlGesddwed21VG7DkyxvyXbYQNhKP/rSeLY user@example.com", +}); + +const cloudAccount = new pgedge.CloudAccount("exampleCloudAccount", { + name: "my-aws-account", + type: "aws", + description: "My AWS Cloud Account", + credentials: { + role_arn: "arn:aws:iam::21112529deae39:role/pgedge-135232c", + }, +}, { dependsOn: sshKey }); + +const backupStore = new pgedge.BackupStore("exampleBackupStore", { + name: "example", + cloudAccountId: cloudAccount.id, + region: "us-west-2", +}, { dependsOn: cloudAccount }); + +const cluster = new pgedge.Cluster("exampleCluster", { + name: "example", + cloudAccountId: cloudAccount.id, + regions: ["us-west-2", "us-east-1", "eu-central-1"], + nodeLocation: "public", + sshKeyId: sshKey.id, nodes: [ { name: "n1", - instanceType: "t4g.medium", - volumeSize: 30, - region: "us-east-2", - availabilityZone: "us-east-2a", + region: "us-west-2", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n2", + region: "us-east-1", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n3", + region: "eu-central-1", + instanceType: "r6g.medium", + volumeSize: 100, volumeType: "gp2", - } + }, ], networks: [ { - region: "us-east-2", + region: "us-west-2", + cidr: "10.1.0.0/16", + publicSubnets: ["10.1.0.0/24"], + // privateSubnets: ["10.1.0.0/24"], + }, + { + region: "us-east-1", cidr: "10.2.0.0/16", - publicSubnets: ["10.2.1.0/24"], - } + publicSubnets: ["10.2.0.0/24"], + // privateSubnets: ["10.2.0.0/24"], + }, + { + region: "eu-central-1", + cidr: "10.3.0.0/16", + publicSubnets: ["10.3.0.0/24"], + // privateSubnets: ["10.3.0.0/24"], + }, ], -}); + // backupStoreIds: [backupStore.id], + firewallRules: [ + { + name: "postgres", + port: 5432, + sources: ["123.456.789.0/32"], + }, + ], +}, { dependsOn: backupStore }); -new pgedge.Database("databaseCreate", { - name: "defaultdb", +const database = new pgedge.Database("exampleDatabase", { + name: "example", clusterId: cluster.id, - options: [""], -}); \ No newline at end of file + // configVersion: "12.8.3", + options: [ + "install:northwind", + "rest:enabled", + "autoddl:enabled", + ], + extensions: { + autoManage: true, + requesteds: [ + "postgis", + "vector" + ], + }, + nodes:{ + n1: { + name: "n1", + }, + n2: { + name: "n2", + }, + n3: { + name: "n3", + }, + }, + backups: { + provider: "pgbackrest", + configs: [ + { + id: "default", + nodeName: "n1", + schedules: [ + { + id: "daily-full-backup", + cronExpression: "15 * * * ", + type: "full", + }, + ] + } + ] + }, +}, { dependsOn: cluster }); + +// Outputs +export const sshKeyId = sshKey.id; +export const backupStoreId = backupStore.id; +export const cloudAccountId = cloudAccount.id; +export const clusterId = cluster.id; +export const clusterStatus = cluster.status; +export const clusterCreatedAt = cluster.createdAt; +export const databaseId = database.id; + +// Log outputs +sshKeyId.apply(id => console.log(`SSH Key ID: ${id}`)); +backupStoreId.apply(id => console.log(`Backup Store ID: ${id}`)); +cloudAccountId.apply(id => console.log(`Cloud Account ID: ${id}`)); +clusterId.apply(id => console.log(`Cluster ID: ${id}`)); +clusterStatus.apply(status => console.log(`Cluster Status: ${status}`)); +clusterCreatedAt.apply(createdAt => console.log(`Cluster Created At: ${createdAt}`)); +databaseId.apply(id => console.log(`Database id: ${id}`)); \ No newline at end of file diff --git a/examples/typescript/package-lock.json b/examples/typescript/package-lock.json deleted file mode 100644 index 867797a..0000000 --- a/examples/typescript/package-lock.json +++ /dev/null @@ -1,2481 +0,0 @@ -{ - "name": "typescript", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "typescript", - "dependencies": { - "@pulumi/pulumi": "^3.0.0" - }, - "devDependencies": { - "@types/node": "^18" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.9.14", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz", - "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==", - "dependencies": { - "@grpc/proto-loader": "^0.7.8", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz", - "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==", - "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.4", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@logdna/tail-file": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@logdna/tail-file/-/tail-file-2.2.0.tgz", - "integrity": "sha512-XGSsWDweP80Fks16lwkAUIr54ICyBs6PsI4mpfTLQaWgEJRtY9xEV+PeyDpJ+sJEGZxqINlpmAwe/6tS1pP8Ng==", - "engines": { - "node": ">=10.3.0" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz", - "integrity": "sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.32.0.tgz", - "integrity": "sha512-g1WLhpG8B6iuDyZJFRGsR+JKyZ94m5LEmY2f+duEJ9Xb4XRlLHrZvh6G34OH6GJ8iDHxfHb/sWjJ1ZpkI9yGMQ==", - "deprecated": "Please use @opentelemetry/api >= 1.3.0", - "dependencies": { - "@opentelemetry/api": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.21.0.tgz", - "integrity": "sha512-t0iulGPiMjG/NrSjinPQoIf8ST/o9V0dGOJthfrFporJlNdlKIQPfC7lkrV+5s2dyBThfmSbJlp/4hO1eOcDXA==", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.8.0" - } - }, - "node_modules/@opentelemetry/core": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.21.0.tgz", - "integrity": "sha512-KP+OIweb3wYoP7qTYL/j5IpOlu52uxBv5M4+QhSmmUfLyTgu1OIS71msK3chFo1D6Y61BIH3wMiMYRCxJCQctA==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.21.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.8.0" - } - }, - "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.21.0.tgz", - "integrity": "sha512-J0ejrOx52s1PqvjNalIHvY/4v9ZxR2r7XS7WZbwK3qpVYZlGVq5V1+iCNweqsKnb/miUt/4TFvJBc9f5Q/kGcA==", - "dependencies": { - "@opentelemetry/core": "1.21.0", - "@opentelemetry/resources": "1.21.0", - "@opentelemetry/sdk-trace-base": "1.21.0", - "@opentelemetry/semantic-conventions": "1.21.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.32.0.tgz", - "integrity": "sha512-y6ADjHpkUz/v1nkyyYjsQa/zorhX+0qVGpFvXMcbjU4sHnBnC02c6wcc93sIgZfiQClIWo45TGku1KQxJ5UUbQ==", - "dependencies": { - "@opentelemetry/api-metrics": "0.32.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.32.0.tgz", - "integrity": "sha512-Az6wdkPx/Mi26lT9LKFV6GhCA9prwQFPz5eCNSExTnSP49YhQ7XCjzPd2POPeLKt84ICitrBMdE1mj0zbPdLAQ==", - "dependencies": { - "@opentelemetry/api-metrics": "0.32.0", - "@opentelemetry/instrumentation": "0.32.0", - "@opentelemetry/semantic-conventions": "1.6.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.6.0.tgz", - "integrity": "sha512-aPfcBeLErM/PPiAuAbNFLN5sNbZLc3KZlar27uohllN8Zs6jJbHyJU1y7cMA6W/zuq+thkaG8mujiS+3iD/FWQ==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/propagator-b3": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.21.0.tgz", - "integrity": "sha512-3ZTobj2VDIOzLsIvvYCdpw6tunxUVElPxDvog9lS49YX4hohHeD84A8u9Ns/6UYUcaN5GSoEf891lzhcBFiOLA==", - "dependencies": { - "@opentelemetry/core": "1.21.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.8.0" - } - }, - "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.21.0.tgz", - "integrity": "sha512-8TQSwXjBmaDx7JkxRD7hdmBmRK2RGRgzHX1ArJfJhIc5trzlVweyorzqQrXOvqVEdEg+zxUMHkL5qbGH/HDTPA==", - "dependencies": { - "@opentelemetry/core": "1.21.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.8.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.21.0.tgz", - "integrity": "sha512-1Z86FUxPKL6zWVy2LdhueEGl9AHDJcx+bvHStxomruz6Whd02mE3lNUMjVJ+FGRoktx/xYQcxccYb03DiUP6Yw==", - "dependencies": { - "@opentelemetry/core": "1.21.0", - "@opentelemetry/semantic-conventions": "1.21.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.8.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.21.0.tgz", - "integrity": "sha512-yrElGX5Fv0umzp8Nxpta/XqU71+jCAyaLk34GmBzNcrW43nqbrqvdPs4gj4MVy/HcTjr6hifCDCYA3rMkajxxA==", - "dependencies": { - "@opentelemetry/core": "1.21.0", - "@opentelemetry/resources": "1.21.0", - "@opentelemetry/semantic-conventions": "1.21.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.8.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.21.0.tgz", - "integrity": "sha512-1pdm8jnqs+LuJ0Bvx6sNL28EhC8Rv7NYV8rnoXq3GIQo7uOHBDAFSj7makAfbakrla7ecO1FRfI8emnR4WvhYA==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.21.0", - "@opentelemetry/core": "1.21.0", - "@opentelemetry/propagator-b3": "1.21.0", - "@opentelemetry/propagator-jaeger": "1.21.0", - "@opentelemetry/sdk-trace-base": "1.21.0", - "semver": "^7.5.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.8.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz", - "integrity": "sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@pulumi/pulumi": { - "version": "3.104.2", - "resolved": "https://registry.npmjs.org/@pulumi/pulumi/-/pulumi-3.104.2.tgz", - "integrity": "sha512-Ljl1JaMFjcfse4M4bFQDadU5FTM4R404DZwM7fegcE0KvWJY2RPZj0TzBazv1vbwSlhDvzmuxQhHN1+U9y+EvQ==", - "dependencies": { - "@grpc/grpc-js": "^1.9.14", - "@logdna/tail-file": "^2.0.6", - "@opentelemetry/api": "^1.2.0", - "@opentelemetry/exporter-zipkin": "^1.6.0", - "@opentelemetry/instrumentation": "^0.32.0", - "@opentelemetry/instrumentation-grpc": "^0.32.0", - "@opentelemetry/resources": "^1.6.0", - "@opentelemetry/sdk-trace-base": "^1.6.0", - "@opentelemetry/sdk-trace-node": "^1.6.0", - "@opentelemetry/semantic-conventions": "^1.6.0", - "@pulumi/query": "^0.3.0", - "@types/google-protobuf": "^3.15.5", - "@types/semver": "^7.5.6", - "@types/tmp": "^0.2.6", - "execa": "^5.1.0", - "google-protobuf": "^3.5.0", - "got": "^11.8.6", - "ini": "^2.0.0", - "js-yaml": "^3.14.0", - "minimist": "^1.2.6", - "normalize-package-data": "^3.0.0", - "pkg-dir": "^7.0.0", - "read-package-tree": "^5.3.1", - "require-from-string": "^2.0.1", - "semver": "^7.5.2", - "source-map-support": "^0.5.6", - "tmp": "^0.2.1", - "ts-node": "^7.0.1", - "typescript": "~3.8.3", - "upath": "^1.1.0" - }, - "engines": { - "node": ">=8.13.0 || >=10.10.0" - } - }, - "node_modules/@pulumi/query": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@pulumi/query/-/query-0.3.0.tgz", - "integrity": "sha512-xfo+yLRM2zVjVEA4p23IjQWzyWl1ZhWOGobsBqRpIarzLvwNH/RAGaoehdxlhx4X92302DrpdIFgTICMN4P38w==" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/google-protobuf": { - "version": "3.15.12", - "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.12.tgz", - "integrity": "sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==" - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "18.19.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==" - }, - "node_modules/@types/tmp": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.6.tgz", - "integrity": "sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==" - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", - "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "engines": { - "node": "*" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", - "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", - "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "safe-array-concat": "^1.0.0" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protobufjs": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-package-json/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "deprecated": "The functionality that this package provided is now in @npmcli/arborist", - "dependencies": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", - "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", - "dependencies": { - "define-data-property": "^1.1.1", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", - "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", - "dependencies": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", - "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA==", - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", - "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/provider/cmd/pulumi-resource-pgedge/bridge-metadata.json b/provider/cmd/pulumi-resource-pgedge/bridge-metadata.json index f591a7b..32ea63d 100644 --- a/provider/cmd/pulumi-resource-pgedge/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-pgedge/bridge-metadata.json @@ -1,9 +1,23 @@ { "auto-aliasing": { "resources": { + "pgedge_backup_store": { + "current": "pgedge:index/backupStore:BackupStore", + "fields": { + "cluster_ids": { + "maxItemsOne": false + } + } + }, + "pgedge_cloud_account": { + "current": "pgedge:index/cloudAccount:CloudAccount" + }, "pgedge_cluster": { "current": "pgedge:index/cluster:Cluster", "fields": { + "backup_store_ids": { + "maxItemsOne": false + }, "firewall_rules": { "maxItemsOne": false, "elem": { @@ -28,14 +42,7 @@ } }, "nodes": { - "maxItemsOne": false, - "elem": { - "fields": { - "options": { - "maxItemsOne": false - } - } - } + "maxItemsOne": false }, "regions": { "maxItemsOne": false @@ -45,13 +52,92 @@ "pgedge_database": { "current": "pgedge:index/database:Database", "fields": { + "backups": { + "fields": { + "config": { + "maxItemsOne": false, + "elem": { + "fields": { + "repositories": { + "maxItemsOne": false + }, + "schedules": { + "maxItemsOne": false + } + } + } + } + } + }, + "components": { + "maxItemsOne": false + }, + "extensions": { + "fields": { + "available": { + "maxItemsOne": false + }, + "requested": { + "maxItemsOne": false + } + } + }, + "nodes": { + "elem": { + "fields": { + "extensions": { + "fields": { + "installed": { + "maxItemsOne": false + } + } + }, + "region": { + "fields": { + "availability_zones": { + "maxItemsOne": false + } + } + } + } + } + }, "options": { "maxItemsOne": false + }, + "roles": { + "maxItemsOne": false } } + }, + "pgedge_ssh_key": { + "current": "pgedge:index/sSHKey:SSHKey" } }, "datasources": { + "pgedge_backup_stores": { + "current": "pgedge:index/getBackupStores:getBackupStores", + "fields": { + "backup_stores": { + "maxItemsOne": false, + "elem": { + "fields": { + "cluster_ids": { + "maxItemsOne": false + } + } + } + } + } + }, + "pgedge_cloud_accounts": { + "current": "pgedge:index/getCloudAccounts:getCloudAccounts", + "fields": { + "cloud_accounts": { + "maxItemsOne": false + } + } + }, "pgedge_clusters": { "current": "pgedge:index/getClusters:getClusters", "fields": { @@ -59,6 +145,9 @@ "maxItemsOne": false, "elem": { "fields": { + "backup_store_ids": { + "maxItemsOne": false + }, "firewall_rules": { "maxItemsOne": false, "elem": { @@ -107,6 +196,23 @@ "maxItemsOne": false, "elem": { "fields": { + "backups": { + "fields": { + "config": { + "maxItemsOne": false, + "elem": { + "fields": { + "repositories": { + "maxItemsOne": false + }, + "schedules": { + "maxItemsOne": false + } + } + } + } + } + }, "components": { "maxItemsOne": false }, @@ -121,7 +227,6 @@ } }, "nodes": { - "maxItemsOne": false, "elem": { "fields": { "extensions": { @@ -146,42 +251,37 @@ }, "roles": { "maxItemsOne": false - }, - "tables": { - "maxItemsOne": false, - "elem": { - "fields": { - "columns": { - "maxItemsOne": false - }, - "primary_key": { - "maxItemsOne": false - }, - "replication_sets": { - "maxItemsOne": false - }, - "status": { - "maxItemsOne": false - } - } - } } } } } } + }, + "pgedge_ssh_keys": { + "current": "pgedge:index/getSSHKeys:getSSHKeys", + "fields": { + "ssh_keys": { + "maxItemsOne": false + } + } } } }, "auto-settings": {}, "renames": { "resources": { + "pgedge:index/backupStore:BackupStore": "pgedge_backup_store", + "pgedge:index/cloudAccount:CloudAccount": "pgedge_cloud_account", "pgedge:index/cluster:Cluster": "pgedge_cluster", - "pgedge:index/database:Database": "pgedge_database" + "pgedge:index/database:Database": "pgedge_database", + "pgedge:index/sSHKey:SSHKey": "pgedge_ssh_key" }, "functions": { + "pgedge:index/getBackupStores:getBackupStores": "pgedge_backup_stores", + "pgedge:index/getCloudAccounts:getCloudAccounts": "pgedge_cloud_accounts", "pgedge:index/getClusters:getClusters": "pgedge_clusters", - "pgedge:index/getDatabases:getDatabases": "pgedge_databases" + "pgedge:index/getDatabases:getDatabases": "pgedge_databases", + "pgedge:index/getSSHKeys:getSSHKeys": "pgedge_ssh_keys" }, "renamedProperties": { "pgedge:index/ClusterNetwork:ClusterNetwork": { @@ -196,27 +296,109 @@ "volumeSize": "volume_size", "volumeType": "volume_type" }, + "pgedge:index/DatabaseBackups:DatabaseBackups": { + "configs": "config" + }, + "pgedge:index/DatabaseBackupsConfig:DatabaseBackupsConfig": { + "nodeName": "node_name" + }, + "pgedge:index/DatabaseBackupsConfigRepository:DatabaseBackupsConfigRepository": { + "azureAccount": "azure_account", + "azureContainer": "azure_container", + "azureEndpoint": "azure_endpoint", + "backupStoreId": "backup_store_id", + "basePath": "base_path", + "gcsBucket": "gcs_bucket", + "gcsEndpoint": "gcs_endpoint", + "retentionFull": "retention_full", + "retentionFullType": "retention_full_type", + "s3Bucket": "s3_bucket", + "s3Endpoint": "s3_endpoint", + "s3Region": "s3_region" + }, + "pgedge:index/DatabaseBackupsConfigSchedule:DatabaseBackupsConfigSchedule": { + "cronExpression": "cron_expression" + }, + "pgedge:index/DatabaseComponent:DatabaseComponent": { + "releaseDate": "release_date" + }, + "pgedge:index/DatabaseExtensions:DatabaseExtensions": { + "autoManage": "auto_manage", + "availables": "available", + "requesteds": "requested" + }, + "pgedge:index/DatabaseNodesConnection:DatabaseNodesConnection": { + "externalIpAddress": "external_ip_address", + "internalHost": "internal_host", + "internalIpAddress": "internal_ip_address" + }, + "pgedge:index/DatabaseNodesExtensions:DatabaseNodesExtensions": { + "installeds": "installed" + }, + "pgedge:index/DatabaseNodesLocation:DatabaseNodesLocation": { + "metroCode": "metro_code", + "postalCode": "postal_code", + "regionCode": "region_code" + }, + "pgedge:index/DatabaseNodesRegion:DatabaseNodesRegion": { + "availabilityZones": "availability_zones" + }, + "pgedge:index/DatabaseRole:DatabaseRole": { + "bypassRls": "bypass_rls", + "connectionLimit": "connection_limit", + "createDb": "create_db", + "createRole": "create_role" + }, + "pgedge:index/backupStore:BackupStore": { + "cloudAccountId": "cloud_account_id", + "cloudAccountType": "cloud_account_type", + "clusterIds": "cluster_ids", + "createdAt": "created_at", + "updatedAt": "updated_at" + }, + "pgedge:index/cloudAccount:CloudAccount": { + "createdAt": "created_at", + "updatedAt": "updated_at" + }, "pgedge:index/cluster:Cluster": { + "backupStoreIds": "backup_store_ids", "cloudAccountId": "cloud_account_id", "createdAt": "created_at", "firewallRules": "firewall_rules", "nodeLocation": "node_location", + "resourceTags": "resource_tags", "sshKeyId": "ssh_key_id" }, "pgedge:index/database:Database": { "clusterId": "cluster_id", "configVersion": "config_version", "createdAt": "created_at", - "pgVersion": "pg_version", - "storageUsed": "storage_used", + "pgVersion": "pg_version" + }, + "pgedge:index/getBackupStores:getBackupStores": { + "backupStores": "backup_stores" + }, + "pgedge:index/getBackupStoresBackupStore:getBackupStoresBackupStore": { + "cloudAccountId": "cloud_account_id", + "cloudAccountType": "cloud_account_type", + "clusterIds": "cluster_ids", + "createdAt": "created_at", + "updatedAt": "updated_at" + }, + "pgedge:index/getCloudAccounts:getCloudAccounts": { + "cloudAccounts": "cloud_accounts" + }, + "pgedge:index/getCloudAccountsCloudAccount:getCloudAccountsCloudAccount": { + "createdAt": "created_at", "updatedAt": "updated_at" }, "pgedge:index/getClustersCluster:getClustersCluster": { - "cloudAccount": "cloud_account", + "backupStoreIds": "backup_store_ids", "cloudAccountId": "cloud_account_id", "createdAt": "created_at", "firewallRules": "firewall_rules", "nodeLocation": "node_location", + "resourceTags": "resource_tags", "sshKeyId": "ssh_key_id" }, "pgedge:index/getClustersClusterNetwork:getClustersClusterNetwork": { @@ -236,9 +418,31 @@ "configVersion": "config_version", "createdAt": "created_at", "pgVersion": "pg_version", - "storageUsed": "storage_used", "updatedAt": "updated_at" }, + "pgedge:index/getDatabasesDatabaseBackups:getDatabasesDatabaseBackups": { + "configs": "config" + }, + "pgedge:index/getDatabasesDatabaseBackupsConfig:getDatabasesDatabaseBackupsConfig": { + "nodeName": "node_name" + }, + "pgedge:index/getDatabasesDatabaseBackupsConfigRepository:getDatabasesDatabaseBackupsConfigRepository": { + "azureAccount": "azure_account", + "azureContainer": "azure_container", + "azureEndpoint": "azure_endpoint", + "backupStoreId": "backup_store_id", + "basePath": "base_path", + "gcsBucket": "gcs_bucket", + "gcsEndpoint": "gcs_endpoint", + "retentionFull": "retention_full", + "retentionFullType": "retention_full_type", + "s3Bucket": "s3_bucket", + "s3Endpoint": "s3_endpoint", + "s3Region": "s3_region" + }, + "pgedge:index/getDatabasesDatabaseBackupsConfigSchedule:getDatabasesDatabaseBackupsConfigSchedule": { + "cronExpression": "cron_expression" + }, "pgedge:index/getDatabasesDatabaseComponent:getDatabasesDatabaseComponent": { "releaseDate": "release_date" }, @@ -247,27 +451,20 @@ "availables": "available", "requesteds": "requested" }, - "pgedge:index/getDatabasesDatabaseNode:getDatabasesDatabaseNode": { - "distanceMeasurement": "distance_measurement" - }, - "pgedge:index/getDatabasesDatabaseNodeConnection:getDatabasesDatabaseNodeConnection": { + "pgedge:index/getDatabasesDatabaseNodesConnection:getDatabasesDatabaseNodesConnection": { "externalIpAddress": "external_ip_address", "internalHost": "internal_host", "internalIpAddress": "internal_ip_address" }, - "pgedge:index/getDatabasesDatabaseNodeDistanceMeasurement:getDatabasesDatabaseNodeDistanceMeasurement": { - "fromLatitude": "from_latitude", - "fromLongitude": "from_longitude" - }, - "pgedge:index/getDatabasesDatabaseNodeExtensions:getDatabasesDatabaseNodeExtensions": { + "pgedge:index/getDatabasesDatabaseNodesExtensions:getDatabasesDatabaseNodesExtensions": { "installeds": "installed" }, - "pgedge:index/getDatabasesDatabaseNodeLocation:getDatabasesDatabaseNodeLocation": { + "pgedge:index/getDatabasesDatabaseNodesLocation:getDatabasesDatabaseNodesLocation": { "metroCode": "metro_code", "postalCode": "postal_code", "regionCode": "region_code" }, - "pgedge:index/getDatabasesDatabaseNodeRegion:getDatabasesDatabaseNodeRegion": { + "pgedge:index/getDatabasesDatabaseNodesRegion:getDatabasesDatabaseNodesRegion": { "availabilityZones": "availability_zones" }, "pgedge:index/getDatabasesDatabaseRole:getDatabasesDatabaseRole": { @@ -276,19 +473,16 @@ "createDb": "create_db", "createRole": "create_role" }, - "pgedge:index/getDatabasesDatabaseTable:getDatabasesDatabaseTable": { - "primaryKeys": "primary_key", - "replicationSets": "replication_sets", - "statuses": "status" + "pgedge:index/getSSHKeys:getSSHKeys": { + "sshKeys": "ssh_keys" }, - "pgedge:index/getDatabasesDatabaseTableColumn:getDatabasesDatabaseTableColumn": { - "dataType": "data_type", - "isNullable": "is_nullable", - "isPrimaryKey": "is_primary_key", - "ordinalPosition": "ordinal_position" + "pgedge:index/getSSHKeysSshKey:getSSHKeysSshKey": { + "createdAt": "created_at", + "publicKey": "public_key" }, - "pgedge:index/getDatabasesDatabaseTableStatus:getDatabasesDatabaseTableStatus": { - "nodeName": "node_name" + "pgedge:index/sSHKey:SSHKey": { + "createdAt": "created_at", + "publicKey": "public_key" }, "pgedge:index:Provider": { "baseUrl": "base_url" diff --git a/provider/cmd/pulumi-resource-pgedge/main.go b/provider/cmd/pulumi-resource-pgedge/main.go index 510368b..b272954 100644 --- a/provider/cmd/pulumi-resource-pgedge/main.go +++ b/provider/cmd/pulumi-resource-pgedge/main.go @@ -22,4 +22,4 @@ func main() { BridgeMetadata: bridgeMetadata, } tfbridge.Main(context.Background(), "pgedge", pgedge.Provider(), meta) -} \ No newline at end of file +} diff --git a/provider/cmd/pulumi-resource-pgedge/schema.json b/provider/cmd/pulumi-resource-pgedge/schema.json index c3d8036..fb8853c 100644 --- a/provider/cmd/pulumi-resource-pgedge/schema.json +++ b/provider/cmd/pulumi-resource-pgedge/schema.json @@ -5,12 +5,15 @@ "keywords": [ "pulumi", "pgedge", - "category/cloud" + "category/cloud", + "category/database" ], "homepage": "https://www.pgedge.com", "license": "Apache-2.0", "attribution": "This Pulumi package is based on the [`pgedge` Terraform Provider](https://github.com/pgEdge/terraform-provider-pgedge).", "repository": "https://github.com/pgEdge/pulumi-pgedge", + "logoUrl": "https://pgedge-public-assets.s3.amazonaws.com/product/images/pgedge_mark.svg", + "pluginDownloadURL": "github://api.github.com/pgEdge/pulumi-pgedge", "publisher": "pgEdge", "meta": { "moduleFormat": "(.*)(?:/[^/]*)" @@ -56,144 +59,725 @@ "variables": { "baseUrl": { "type": "string", - "description": "Base Url to use when connecting to the PgEdge service.\n" + "description": "Base Url to use when connecting to the PgEdge service.\n", + "defaultInfo": { + "environment": [ + "PGEDGE_BASE_URL" + ] + } } } }, "types": { "pgedge:index/ClusterFirewallRule:ClusterFirewallRule": { "properties": { + "name": { + "type": "string" + }, "port": { + "type": "integer" + }, + "sources": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object", + "required": [ + "name", + "port", + "sources" + ] + }, + "pgedge:index/ClusterNetwork:ClusterNetwork": { + "properties": { + "cidr": { + "type": "string", + "description": "CIDR of the network\n" + }, + "external": { + "type": "boolean", + "description": "Whether the network is external\n" + }, + "externalId": { + "type": "string", + "description": "External ID of the network\n" + }, + "name": { + "type": "string", + "description": "Name of the network\n" + }, + "privateSubnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of private subnets\n" + }, + "publicSubnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of public subnets\n" + }, + "region": { + "type": "string", + "description": "Region of the network\n" + } + }, + "type": "object", + "required": [ + "cidr", + "publicSubnets", + "region" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "cidr", + "external", + "externalId", + "name", + "privateSubnets", + "publicSubnets", + "region" + ] + } + } + }, + "pgedge:index/ClusterNode:ClusterNode": { + "properties": { + "availabilityZone": { + "type": "string" + }, + "instanceType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "volumeIops": { + "type": "integer" + }, + "volumeSize": { + "type": "integer" + }, + "volumeType": { + "type": "string" + } + }, + "type": "object", + "required": [ + "instanceType", + "name", + "region" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "availabilityZone", + "instanceType", + "name", + "region", + "volumeIops", + "volumeSize", + "volumeType" + ] + } + } + }, + "pgedge:index/DatabaseBackups:DatabaseBackups": { + "properties": { + "configs": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseBackupsConfig:DatabaseBackupsConfig" + }, + "description": "List of backup configurations.\n" + }, + "provider": { + "type": "string", + "description": "The backup provider.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "configs", + "provider" + ] + } + } + }, + "pgedge:index/DatabaseBackupsConfig:DatabaseBackupsConfig": { + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the backup config.\n" + }, + "nodeName": { + "type": "string", + "description": "Name of the node.\n" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseBackupsConfigRepository:DatabaseBackupsConfigRepository" + }, + "description": "List of backup repositories.\n" + }, + "schedules": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseBackupsConfigSchedule:DatabaseBackupsConfigSchedule" + }, + "description": "List of backup schedules.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "id", + "nodeName", + "repositories", + "schedules" + ] + } + } + }, + "pgedge:index/DatabaseBackupsConfigRepository:DatabaseBackupsConfigRepository": { + "properties": { + "azureAccount": { + "type": "string", + "description": "Azure account.\n" + }, + "azureContainer": { + "type": "string", + "description": "Azure container.\n" + }, + "azureEndpoint": { + "type": "string", + "description": "Azure endpoint.\n" + }, + "backupStoreId": { + "type": "string", + "description": "ID of the backup store.\n" + }, + "basePath": { + "type": "string", + "description": "Base path for the repository.\n" + }, + "gcsBucket": { + "type": "string", + "description": "GCS bucket name.\n" + }, + "gcsEndpoint": { + "type": "string", + "description": "GCS endpoint.\n" + }, + "id": { + "type": "string", + "description": "Unique identifier for the backup config.\n" + }, + "retentionFull": { "type": "integer", - "description": "Port whose traffic is allowed\n" + "description": "Retention period for full backups.\n" + }, + "retentionFullType": { + "type": "string", + "description": "Type of retention for full backups.\n" + }, + "s3Bucket": { + "type": "string", + "description": "S3 bucket name.\n" + }, + "s3Endpoint": { + "type": "string", + "description": "S3 endpoint.\n" + }, + "s3Region": { + "type": "string", + "description": "S3 region.\n" + }, + "type": { + "type": "string", + "description": "Type of the repository.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "azureAccount", + "azureContainer", + "azureEndpoint", + "backupStoreId", + "basePath", + "gcsBucket", + "gcsEndpoint", + "id", + "retentionFull", + "retentionFullType", + "s3Bucket", + "s3Endpoint", + "s3Region", + "type" + ] + } + } + }, + "pgedge:index/DatabaseBackupsConfigSchedule:DatabaseBackupsConfigSchedule": { + "properties": { + "cronExpression": { + "type": "string", + "description": "Cron expression for the schedule.\n" + }, + "id": { + "type": "string", + "description": "Unique identifier for the backup config.\n" + }, + "type": { + "type": "string", + "description": "Type of the repository.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "cronExpression", + "id", + "type" + ] + } + } + }, + "pgedge:index/DatabaseComponent:DatabaseComponent": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "releaseDate": { + "type": "string" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "id", + "name", + "releaseDate", + "status", + "version" + ] + } + } + }, + "pgedge:index/DatabaseExtensions:DatabaseExtensions": { + "properties": { + "autoManage": { + "type": "boolean" + }, + "availables": { + "type": "array", + "items": { + "type": "string" + } + }, + "requesteds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "autoManage", + "availables", + "requesteds" + ] + } + } + }, + "pgedge:index/DatabaseNodes:DatabaseNodes": { + "properties": { + "connection": { + "$ref": "#/types/pgedge:index/DatabaseNodesConnection:DatabaseNodesConnection" + }, + "extensions": { + "$ref": "#/types/pgedge:index/DatabaseNodesExtensions:DatabaseNodesExtensions" + }, + "location": { + "$ref": "#/types/pgedge:index/DatabaseNodesLocation:DatabaseNodesLocation" + }, + "name": { + "type": "string" + }, + "region": { + "$ref": "#/types/pgedge:index/DatabaseNodesRegion:DatabaseNodesRegion" + } + }, + "type": "object", + "required": [ + "name" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "connection", + "extensions", + "location", + "name", + "region" + ] + } + } + }, + "pgedge:index/DatabaseNodesConnection:DatabaseNodesConnection": { + "properties": { + "database": { + "type": "string" + }, + "externalIpAddress": { + "type": "string" + }, + "host": { + "type": "string" + }, + "internalHost": { + "type": "string" + }, + "internalIpAddress": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "username": { + "type": "string" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "database", + "externalIpAddress", + "host", + "internalHost", + "internalIpAddress", + "password", + "port", + "username" + ] + } + } + }, + "pgedge:index/DatabaseNodesExtensions:DatabaseNodesExtensions": { + "properties": { + "errors": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "installeds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "errors", + "installeds" + ] + } + } + }, + "pgedge:index/DatabaseNodesLocation:DatabaseNodesLocation": { + "properties": { + "city": { + "type": "string" + }, + "code": { + "type": "string" + }, + "country": { + "type": "string" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + }, + "metroCode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "timezone": { + "type": "string" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "city", + "code", + "country", + "latitude", + "longitude", + "metroCode", + "name", + "postalCode", + "region", + "regionCode", + "timezone" + ] + } + } + }, + "pgedge:index/DatabaseNodesRegion:DatabaseNodesRegion": { + "properties": { + "active": { + "type": "boolean" + }, + "availabilityZones": { + "type": "array", + "items": { + "type": "string" + } + }, + "cloud": { + "type": "string" + }, + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "active", + "availabilityZones", + "cloud", + "code", + "name", + "parent" + ] + } + } + }, + "pgedge:index/DatabaseRole:DatabaseRole": { + "properties": { + "bypassRls": { + "type": "boolean" + }, + "connectionLimit": { + "type": "integer" + }, + "createDb": { + "type": "boolean" + }, + "createRole": { + "type": "boolean" + }, + "inherit": { + "type": "boolean" }, - "sources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CIDRs and/or IP addresses allowed\n" + "login": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "replication": { + "type": "boolean" + }, + "superuser": { + "type": "boolean" } }, "type": "object", - "required": [ - "port", - "sources" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "bypassRls", + "connectionLimit", + "createDb", + "createRole", + "inherit", + "login", + "name", + "replication", + "superuser" + ] + } + } }, - "pgedge:index/ClusterNetwork:ClusterNetwork": { + "pgedge:index/getBackupStoresBackupStore:getBackupStoresBackupStore": { "properties": { - "cidr": { - "type": "string", - "description": "CIDR range for the network\n" - }, - "external": { - "type": "boolean", - "description": "Is the network externally defined\n" - }, - "externalId": { - "type": "string", - "description": "ID of the network, if externally defined\n" + "cloudAccountId": { + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the network\n" + "cloudAccountType": { + "type": "string" }, - "privateSubnets": { + "clusterIds": { "type": "array", "items": { "type": "string" } }, - "publicSubnets": { - "type": "array", - "items": { + "createdAt": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { "type": "string" } }, - "region": { - "type": "string", - "description": "Region of the network\n" + "status": { + "type": "string" + }, + "updatedAt": { + "type": "string" } }, "type": "object", "required": [ - "region" + "cloudAccountId", + "cloudAccountType", + "clusterIds", + "createdAt", + "id", + "name", + "properties", + "status", + "updatedAt" ], "language": { "nodejs": { - "requiredOutputs": [ - "cidr", - "external", - "externalId", - "name", - "privateSubnets", - "publicSubnets", - "region" - ] + "requiredInputs": [] } } }, - "pgedge:index/ClusterNode:ClusterNode": { + "pgedge:index/getCloudAccountsCloudAccount:getCloudAccountsCloudAccount": { "properties": { - "availabilityZone": { + "createdAt": { "type": "string", - "description": "Cloud provider availability zone name\n" + "description": "Creation time of the cloud account\n" }, - "instanceType": { + "description": { "type": "string", - "description": "Instance type used for the node\n" + "description": "Description of the cloud account\n" + }, + "id": { + "type": "string", + "description": "ID of the cloud account\n" }, "name": { "type": "string", - "description": "Node name\n" + "description": "Name of the cloud account\n" }, - "options": { - "type": "array", - "items": { + "properties": { + "type": "object", + "additionalProperties": { "type": "string" - } + }, + "description": "Additional properties of the cloud account\n" }, - "region": { + "type": { "type": "string", - "description": "Cloud provider region\n" - }, - "volumeIops": { - "type": "integer", - "description": "Volume IOPS of the node data volume\n" - }, - "volumeSize": { - "type": "integer", - "description": "Volume size of the node data volume\n" + "description": "Type of the cloud account (e.g., AWS, Azure, GCP)\n" }, - "volumeType": { + "updatedAt": { "type": "string", - "description": "Volume type of the node data volume\n" + "description": "Last update time of the cloud account\n" } }, "type": "object", "required": [ - "region" + "createdAt", + "description", + "id", + "name", + "properties", + "type", + "updatedAt" ], "language": { "nodejs": { - "requiredOutputs": [ - "availabilityZone", - "instanceType", - "name", - "options", - "region", - "volumeIops", - "volumeSize", - "volumeType" - ] + "requiredInputs": [] } } }, "pgedge:index/getClustersCluster:getClustersCluster": { "properties": { - "cloudAccount": { - "$ref": "#/types/pgedge:index/getClustersClusterCloudAccount:getClustersClusterCloudAccount" + "backupStoreIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Backup store IDs of the cluster\n" + }, + "capacity": { + "type": "integer", + "description": "Capacity of the cluster\n" }, "cloudAccountId": { "type": "string", @@ -225,7 +809,7 @@ }, "nodeLocation": { "type": "string", - "description": "Node location of the cluster\n" + "description": "Node location of the cluster. Must be either 'public' or 'private'.\n" }, "nodes": { "type": "array", @@ -239,6 +823,13 @@ "type": "string" } }, + "resourceTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Resource tags of the cluster\n" + }, "sshKeyId": { "type": "string", "description": "SSH key ID of the cluster\n" @@ -250,7 +841,8 @@ }, "type": "object", "required": [ - "cloudAccount", + "backupStoreIds", + "capacity", "cloudAccountId", "createdAt", "firewallRules", @@ -260,6 +852,7 @@ "nodeLocation", "nodes", "regions", + "resourceTags", "sshKeyId", "status" ], @@ -269,38 +862,11 @@ } } }, - "pgedge:index/getClustersClusterCloudAccount:getClustersClusterCloudAccount": { - "properties": { - "id": { - "type": "string", - "description": "Display name of the node\n" - }, - "name": { - "type": "string", - "description": "IP address of the node\n" - }, - "type": { - "type": "string", - "description": "Type of the node\n" - } - }, - "type": "object", - "required": [ - "id", - "name", - "type" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, "pgedge:index/getClustersClusterFirewallRule:getClustersClusterFirewallRule": { "properties": { "name": { "type": "string", - "description": "IP address of the node\n" + "description": "Name of the firewall rule\n" }, "port": { "type": "integer", @@ -330,7 +896,7 @@ "properties": { "cidr": { "type": "string", - "description": "CIDR of the AWS node group\n" + "description": "CIDR of the network\n" }, "external": { "type": "boolean", @@ -342,7 +908,7 @@ }, "name": { "type": "string", - "description": "IP address of the node\n" + "description": "Name of the firewall rule\n" }, "privateSubnets": { "type": "array", @@ -389,7 +955,7 @@ }, "name": { "type": "string", - "description": "IP address of the node\n" + "description": "Name of the firewall rule\n" }, "options": { "type": "array", @@ -433,97 +999,253 @@ }, "pgedge:index/getDatabasesDatabase:getDatabasesDatabase": { "properties": { + "backups": { + "$ref": "#/types/pgedge:index/getDatabasesDatabaseBackups:getDatabasesDatabaseBackups", + "description": "Backup configuration for the database\n" + }, "clusterId": { "type": "string", - "description": "Updated at of the database\n" + "description": "ID of the cluster this database belongs to\n" }, "components": { "type": "array", "items": { "$ref": "#/types/pgedge:index/getDatabasesDatabaseComponent:getDatabasesDatabaseComponent" - } + }, + "description": "Components of the database\n" }, "configVersion": { "type": "string", - "description": "Config version of the database\n" + "description": "Configuration version of the database\n" }, "createdAt": { "type": "string", - "description": "Created at of the database\n" + "description": "Creation timestamp of the database\n" }, "domain": { "type": "string", "description": "Domain of the database\n" }, "extensions": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseExtensions:getDatabasesDatabaseExtensions" + "$ref": "#/types/pgedge:index/getDatabasesDatabaseExtensions:getDatabasesDatabaseExtensions", + "description": "Extensions configuration for the database\n" + }, + "id": { + "type": "string", + "description": "ID of the database\n" + }, + "name": { + "type": "string", + "description": "Name of the database\n" + }, + "nodes": { + "type": "object", + "additionalProperties": { + "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodes:getDatabasesDatabaseNodes" + }, + "description": "Map of nodes in the database\n" + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Options for the database\n" + }, + "pgVersion": { + "type": "string", + "description": "PostgreSQL version of the database\n" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/getDatabasesDatabaseRole:getDatabasesDatabaseRole" + }, + "description": "Roles in the database\n" + }, + "status": { + "type": "string", + "description": "Status of the database\n" + }, + "updatedAt": { + "type": "string", + "description": "Last update timestamp of the database\n" + } + }, + "type": "object", + "required": [ + "backups", + "clusterId", + "components", + "configVersion", + "createdAt", + "domain", + "extensions", + "id", + "name", + "nodes", + "options", + "pgVersion", + "roles", + "status", + "updatedAt" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "pgedge:index/getDatabasesDatabaseBackups:getDatabasesDatabaseBackups": { + "properties": { + "configs": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/getDatabasesDatabaseBackupsConfig:getDatabasesDatabaseBackupsConfig" + }, + "description": "Backup configurations\n" + }, + "provider": { + "type": "string", + "description": "Backup provider\n" + } + }, + "type": "object", + "required": [ + "configs", + "provider" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "pgedge:index/getDatabasesDatabaseBackupsConfig:getDatabasesDatabaseBackupsConfig": { + "properties": { + "id": { + "type": "string", + "description": "Backup configuration ID\n" + }, + "nodeName": { + "type": "string", + "description": "Node name\n" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/getDatabasesDatabaseBackupsConfigRepository:getDatabasesDatabaseBackupsConfigRepository" + }, + "description": "Backup repositories\n" + }, + "schedules": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/getDatabasesDatabaseBackupsConfigSchedule:getDatabasesDatabaseBackupsConfigSchedule" + }, + "description": "Backup schedules\n" + } + }, + "type": "object", + "required": [ + "id", + "nodeName", + "repositories", + "schedules" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "pgedge:index/getDatabasesDatabaseBackupsConfigRepository:getDatabasesDatabaseBackupsConfigRepository": { + "properties": { + "azureAccount": { + "type": "string" + }, + "azureContainer": { + "type": "string" + }, + "azureEndpoint": { + "type": "string" }, - "id": { - "type": "string", - "description": "ID of the database\n" + "backupStoreId": { + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the database\n" + "basePath": { + "type": "string" }, - "nodes": { - "type": "array", - "items": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseNode:getDatabasesDatabaseNode" - } + "gcsBucket": { + "type": "string" }, - "options": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Options for creating the database\n" + "gcsEndpoint": { + "type": "string" }, - "pgVersion": { + "id": { "type": "string", - "description": "Postgres version of the database\n" + "description": "Backup configuration ID\n" }, - "roles": { - "type": "array", - "items": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseRole:getDatabasesDatabaseRole" - } + "retentionFull": { + "type": "integer" }, - "status": { - "type": "string", - "description": "Status of the database\n" + "retentionFullType": { + "type": "string" }, - "storageUsed": { - "type": "integer", - "description": "Storage used of the database\n" + "s3Bucket": { + "type": "string" }, - "tables": { - "type": "array", - "items": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseTable:getDatabasesDatabaseTable" - } + "s3Endpoint": { + "type": "string" }, - "updatedAt": { + "s3Region": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "required": [ + "azureAccount", + "azureContainer", + "azureEndpoint", + "backupStoreId", + "basePath", + "gcsBucket", + "gcsEndpoint", + "id", + "retentionFull", + "retentionFullType", + "s3Bucket", + "s3Endpoint", + "s3Region", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "pgedge:index/getDatabasesDatabaseBackupsConfigSchedule:getDatabasesDatabaseBackupsConfigSchedule": { + "properties": { + "cronExpression": { + "type": "string" + }, + "id": { "type": "string", - "description": "Updated at of the database\n" + "description": "Backup configuration ID\n" + }, + "type": { + "type": "string" } }, "type": "object", "required": [ - "clusterId", - "components", - "createdAt", - "domain", - "extensions", + "cronExpression", "id", - "name", - "options", - "pgVersion", - "roles", - "status", - "storageUsed", - "tables", - "updatedAt" + "type" ], "language": { "nodejs": { @@ -535,23 +1257,23 @@ "properties": { "id": { "type": "string", - "description": "Id of the component\n" + "description": "Backup configuration ID\n" }, "name": { "type": "string", - "description": "Name of the component\n" + "description": "Component name\n" }, "releaseDate": { "type": "string", - "description": "Release date of the component\n" + "description": "Component release date\n" }, "status": { "type": "string", - "description": "Status of the component\n" + "description": "Component status\n" }, "version": { "type": "string", - "description": "Version of the component\n" + "description": "Component version\n" } }, "type": "object", @@ -572,21 +1294,21 @@ "properties": { "autoManage": { "type": "boolean", - "description": "Auto manage of the extension\n" + "description": "Auto-manage extensions\n" }, "availables": { "type": "array", "items": { "type": "string" }, - "description": "Available of the extension\n" + "description": "Available extensions\n" }, "requesteds": { "type": "array", "items": { "type": "string" }, - "description": "Requested of the extension\n" + "description": "Requested extensions\n" } }, "type": "object", @@ -601,33 +1323,32 @@ } } }, - "pgedge:index/getDatabasesDatabaseNode:getDatabasesDatabaseNode": { + "pgedge:index/getDatabasesDatabaseNodes:getDatabasesDatabaseNodes": { "properties": { "connection": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodeConnection:getDatabasesDatabaseNodeConnection" - }, - "distanceMeasurement": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodeDistanceMeasurement:getDatabasesDatabaseNodeDistanceMeasurement" + "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodesConnection:getDatabasesDatabaseNodesConnection", + "description": "Node connection details\n" }, "extensions": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodeExtensions:getDatabasesDatabaseNodeExtensions" + "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodesExtensions:getDatabasesDatabaseNodesExtensions", + "description": "Extensions configuration for the database\n" }, "location": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodeLocation:getDatabasesDatabaseNodeLocation" + "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodesLocation:getDatabasesDatabaseNodesLocation", + "description": "Node location\n" }, "name": { "type": "string", - "description": "Name of the component\n" + "description": "Component name\n" }, "region": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodeRegion:getDatabasesDatabaseNodeRegion", - "description": "Region of the location\n" + "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodesRegion:getDatabasesDatabaseNodesRegion", + "description": "Node region\n" } }, "type": "object", "required": [ "connection", - "distanceMeasurement", "extensions", "location", "name", @@ -639,40 +1360,31 @@ } } }, - "pgedge:index/getDatabasesDatabaseNodeConnection:getDatabasesDatabaseNodeConnection": { + "pgedge:index/getDatabasesDatabaseNodesConnection:getDatabasesDatabaseNodesConnection": { "properties": { "database": { - "type": "string", - "description": "Database of the node\n" + "type": "string" }, "externalIpAddress": { - "type": "string", - "description": "External IP of the node\n" + "type": "string" }, "host": { - "type": "string", - "description": "Host of the node\n" + "type": "string" }, "internalHost": { - "type": "string", - "description": "Internal Host of the node\n" + "type": "string" }, "internalIpAddress": { - "type": "string", - "description": "Internal IP of the node\n" + "type": "string" }, "password": { - "type": "string", - "description": "Password of the node\n", - "secret": true + "type": "string" }, "port": { - "type": "integer", - "description": "Port of the node\n" + "type": "integer" }, "username": { - "type": "string", - "description": "Username of the node\n" + "type": "string" } }, "type": "object", @@ -692,49 +1404,19 @@ } } }, - "pgedge:index/getDatabasesDatabaseNodeDistanceMeasurement:getDatabasesDatabaseNodeDistanceMeasurement": { - "properties": { - "distance": { - "type": "number", - "description": "Distance from a reference point\n" - }, - "fromLatitude": { - "type": "number", - "description": "Latitude of the reference point\n" - }, - "fromLongitude": { - "type": "number", - "description": "Longitude of the reference point\n" - }, - "unit": { - "type": "string", - "description": "Unit of distance measurement\n" - } - }, - "type": "object", - "required": [ - "distance", - "fromLatitude", - "fromLongitude", - "unit" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "pgedge:index/getDatabasesDatabaseNodeExtensions:getDatabasesDatabaseNodeExtensions": { + "pgedge:index/getDatabasesDatabaseNodesExtensions:getDatabasesDatabaseNodesExtensions": { "properties": { "errors": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseNodeExtensionsErrors:getDatabasesDatabaseNodeExtensionsErrors" + "type": "object", + "additionalProperties": { + "type": "string" + } }, "installeds": { "type": "array", "items": { "type": "string" - }, - "description": "List of installed extensions\n" + } } }, "type": "object", @@ -748,83 +1430,41 @@ } } }, - "pgedge:index/getDatabasesDatabaseNodeExtensionsErrors:getDatabasesDatabaseNodeExtensionsErrors": { - "properties": { - "anim9ef": { - "type": "string", - "description": "Error code anim9ef\n" - }, - "enim3b": { - "type": "string", - "description": "Error code enim3b\n" - }, - "laborumd": { - "type": "string", - "description": "Error code laborumd\n" - }, - "mollit267": { - "type": "string", - "description": "Error code mollit267\n" - } - }, - "type": "object", - "required": [ - "anim9ef", - "enim3b", - "laborumd", - "mollit267" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "pgedge:index/getDatabasesDatabaseNodeLocation:getDatabasesDatabaseNodeLocation": { + "pgedge:index/getDatabasesDatabaseNodesLocation:getDatabasesDatabaseNodesLocation": { "properties": { "city": { - "type": "string", - "description": "City of the location\n" + "type": "string" }, "code": { - "type": "string", - "description": "Code of the location\n" + "type": "string" }, "country": { - "type": "string", - "description": "Country of the location\n" + "type": "string" }, "latitude": { - "type": "number", - "description": "Latitude of the location\n" + "type": "number" }, "longitude": { - "type": "number", - "description": "Longitude of the location\n" + "type": "number" }, "metroCode": { - "type": "string", - "description": "Metro code of the location\n" + "type": "string" }, "name": { "type": "string", - "description": "Name of the component\n" + "description": "Component name\n" }, "postalCode": { - "type": "string", - "description": "Postal code of the location\n" + "type": "string" }, "region": { - "type": "string", - "description": "Region of the location\n" + "type": "string" }, "regionCode": { - "type": "string", - "description": "Region code of the location\n" + "type": "string" }, "timezone": { - "type": "string", - "description": "Timezone of the location\n" + "type": "string" } }, "type": "object", @@ -847,34 +1487,29 @@ } } }, - "pgedge:index/getDatabasesDatabaseNodeRegion:getDatabasesDatabaseNodeRegion": { + "pgedge:index/getDatabasesDatabaseNodesRegion:getDatabasesDatabaseNodesRegion": { "properties": { "active": { - "type": "boolean", - "description": "Active status of the region\n" + "type": "boolean" }, "availabilityZones": { "type": "array", "items": { "type": "string" - }, - "description": "Availability zones of the region\n" + } }, "cloud": { - "type": "string", - "description": "Cloud provider of the region\n" + "type": "string" }, "code": { - "type": "string", - "description": "Code of the location\n" + "type": "string" }, "name": { "type": "string", - "description": "Name of the component\n" + "description": "Component name\n" }, "parent": { - "type": "string", - "description": "Parent region\n" + "type": "string" } }, "type": "object", @@ -895,40 +1530,32 @@ "pgedge:index/getDatabasesDatabaseRole:getDatabasesDatabaseRole": { "properties": { "bypassRls": { - "type": "boolean", - "description": "Bypass RLS\n" + "type": "boolean" }, "connectionLimit": { - "type": "integer", - "description": "Connection limit\n" + "type": "integer" }, "createDb": { - "type": "boolean", - "description": "Create database\n" + "type": "boolean" }, "createRole": { - "type": "boolean", - "description": "Create role\n" + "type": "boolean" }, "inherit": { - "type": "boolean", - "description": "Inherit\n" + "type": "boolean" }, "login": { - "type": "boolean", - "description": "Login\n" + "type": "boolean" }, "name": { "type": "string", - "description": "Name of the component\n" + "description": "Component name\n" }, "replication": { - "type": "boolean", - "description": "Replication\n" + "type": "boolean" }, "superuser": { - "type": "boolean", - "description": "Superuser\n" + "type": "boolean" } }, "type": "object", @@ -949,160 +1576,259 @@ } } }, - "pgedge:index/getDatabasesDatabaseTable:getDatabasesDatabaseTable": { + "pgedge:index/getSSHKeysSshKey:getSSHKeysSshKey": { "properties": { - "columns": { - "type": "array", - "items": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseTableColumn:getDatabasesDatabaseTableColumn" - } - }, - "name": { + "createdAt": { "type": "string", - "description": "Name of the component\n" - }, - "primaryKeys": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Primary key of the table\n" + "description": "Creation time of the SSH key\n" }, - "replicationSets": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Replication sets of the table\n" + "id": { + "type": "string", + "description": "ID of the SSH key\n" }, - "schema": { + "name": { "type": "string", - "description": "Schema of the table\n" + "description": "Name of the SSH key\n" }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/types/pgedge:index/getDatabasesDatabaseTableStatus:getDatabasesDatabaseTableStatus" - }, - "description": "Status of the component\n" + "publicKey": { + "type": "string", + "description": "Public key\n" } }, "type": "object", "required": [ - "columns", + "createdAt", + "id", "name", - "primaryKeys", - "replicationSets", - "schema", - "statuses" + "publicKey" ], "language": { "nodejs": { "requiredInputs": [] } } + } + }, + "provider": { + "description": "The provider type for the pgedge package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n", + "properties": { + "baseUrl": { + "type": "string", + "description": "Base Url to use when connecting to the PgEdge service.\n" + } }, - "pgedge:index/getDatabasesDatabaseTableColumn:getDatabasesDatabaseTableColumn": { + "inputProperties": { + "baseUrl": { + "type": "string", + "description": "Base Url to use when connecting to the PgEdge service.\n", + "defaultInfo": { + "environment": [ + "PGEDGE_BASE_URL" + ] + } + } + } + }, + "resources": { + "pgedge:index/backupStore:BackupStore": { "properties": { - "dataType": { - "type": "string", - "description": "Data type of the column\n" + "cloudAccountId": { + "type": "string" }, - "default": { - "type": "string", - "description": "Default of the column\n" + "cloudAccountType": { + "type": "string" }, - "isNullable": { - "type": "boolean", - "description": "Is nullable of the column\n" + "clusterIds": { + "type": "array", + "items": { + "type": "string" + } }, - "isPrimaryKey": { - "type": "boolean", - "description": "Is primary key of the column\n" + "createdAt": { + "type": "string" }, "name": { - "type": "string", - "description": "Name of the component\n" + "type": "string" }, - "ordinalPosition": { - "type": "integer", - "description": "Ordinal position of the column\n" + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "status": { + "type": "string" + }, + "updatedAt": { + "type": "string" } }, - "type": "object", "required": [ - "dataType", - "default", - "isNullable", - "isPrimaryKey", + "cloudAccountId", + "cloudAccountType", + "clusterIds", + "createdAt", "name", - "ordinalPosition" + "properties", + "region", + "status", + "updatedAt" ], - "language": { - "nodejs": { - "requiredInputs": [] + "inputProperties": { + "cloudAccountId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" } + }, + "requiredInputs": [ + "cloudAccountId", + "region" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering BackupStore resources.\n", + "properties": { + "cloudAccountId": { + "type": "string" + }, + "cloudAccountType": { + "type": "string" + }, + "clusterIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "status": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" } }, - "pgedge:index/getDatabasesDatabaseTableStatus:getDatabasesDatabaseTableStatus": { + "pgedge:index/cloudAccount:CloudAccount": { "properties": { - "aligned": { - "type": "boolean", - "description": "Aligned of the table\n" + "createdAt": { + "type": "string" }, - "nodeName": { - "type": "string", - "description": "Node name of the table\n" + "credentials": { + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "present": { - "type": "boolean", - "description": "Present of the table\n" + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" }, - "replicating": { - "type": "boolean", - "description": "Replicating of the table\n" + "updatedAt": { + "type": "string" } }, - "type": "object", "required": [ - "aligned", - "nodeName", - "present", - "replicating" + "createdAt", + "credentials", + "name", + "type", + "updatedAt" ], - "language": { - "nodejs": { - "requiredInputs": [] + "inputProperties": { + "credentials": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" } - } - } - }, - "provider": { - "description": "The provider type for the pgedge package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n", - "properties": { - "baseUrl": { - "type": "string", - "description": "Base Url to use when connecting to the PgEdge service.\n" + }, + "requiredInputs": [ + "credentials", + "type" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CloudAccount resources.\n", + "properties": { + "createdAt": { + "type": "string" + }, + "credentials": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "type": "object" } }, - "inputProperties": { - "baseUrl": { - "type": "string", - "description": "Base Url to use when connecting to the PgEdge service.\n" - } - } - }, - "resources": { "pgedge:index/cluster:Cluster": { - "description": "Interface with the pgEdge service API for clusters.\n", "properties": { + "backupStoreIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of backup store IDs to associate with the cluster\n" + }, + "capacity": { + "type": "integer" + }, "cloudAccountId": { - "type": "string", - "description": "ID of the target cloud account\n" + "type": "string" }, "createdAt": { - "type": "string", - "description": "Creation time of the cluster\n" + "type": "string" }, "firewallRules": { "type": "array", @@ -1111,8 +1837,7 @@ } }, "name": { - "type": "string", - "description": "Name of the network\n" + "type": "string" }, "networks": { "type": "array", @@ -1122,7 +1847,7 @@ }, "nodeLocation": { "type": "string", - "description": "Network location for nodes (public or private)\n" + "description": "Node location of the cluster. Must be either 'public' or 'private'.\n" }, "nodes": { "type": "array", @@ -1136,16 +1861,23 @@ "type": "string" } }, + "resourceTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the cluster\n" + }, "sshKeyId": { - "type": "string", - "description": "ID of the SSH key to add to the cluster nodes\n" + "type": "string" }, "status": { - "type": "string", - "description": "Status of the cluster\n" + "type": "string" } }, "required": [ + "backupStoreIds", + "capacity", "cloudAccountId", "createdAt", "name", @@ -1153,13 +1885,22 @@ "nodeLocation", "nodes", "regions", - "sshKeyId", + "resourceTags", "status" ], "inputProperties": { + "backupStoreIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of backup store IDs to associate with the cluster\n" + }, + "capacity": { + "type": "integer" + }, "cloudAccountId": { - "type": "string", - "description": "ID of the target cloud account\n" + "type": "string" }, "firewallRules": { "type": "array", @@ -1168,8 +1909,7 @@ } }, "name": { - "type": "string", - "description": "Name of the network\n" + "type": "string" }, "networks": { "type": "array", @@ -1179,7 +1919,7 @@ }, "nodeLocation": { "type": "string", - "description": "Network location for nodes (public or private)\n" + "description": "Node location of the cluster. Must be either 'public' or 'private'.\n" }, "nodes": { "type": "array", @@ -1193,25 +1933,42 @@ "type": "string" } }, + "resourceTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the cluster\n" + }, "sshKeyId": { - "type": "string", - "description": "ID of the SSH key to add to the cluster nodes\n" + "type": "string" } }, "requiredInputs": [ "cloudAccountId", + "networks", + "nodeLocation", + "nodes", "regions" ], "stateInputs": { "description": "Input properties used for looking up and filtering Cluster resources.\n", "properties": { + "backupStoreIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of backup store IDs to associate with the cluster\n" + }, + "capacity": { + "type": "integer" + }, "cloudAccountId": { - "type": "string", - "description": "ID of the target cloud account\n" + "type": "string" }, "createdAt": { - "type": "string", - "description": "Creation time of the cluster\n" + "type": "string" }, "firewallRules": { "type": "array", @@ -1220,8 +1977,7 @@ } }, "name": { - "type": "string", - "description": "Name of the network\n" + "type": "string" }, "networks": { "type": "array", @@ -1231,7 +1987,7 @@ }, "nodeLocation": { "type": "string", - "description": "Network location for nodes (public or private)\n" + "description": "Node location of the cluster. Must be either 'public' or 'private'.\n" }, "nodes": { "type": "array", @@ -1245,146 +2001,271 @@ "type": "string" } }, + "resourceTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the cluster\n" + }, "sshKeyId": { - "type": "string", - "description": "ID of the SSH key to add to the cluster nodes\n" + "type": "string" }, "status": { - "type": "string", - "description": "Status of the cluster\n" + "type": "string" } }, "type": "object" } }, "pgedge:index/database:Database": { - "description": "Interface with the pgEdge service API.\n", + "description": "Manages a pgEdge database.\n", "properties": { + "backups": { + "$ref": "#/types/pgedge:index/DatabaseBackups:DatabaseBackups", + "description": "Backup configuration for the database.\n" + }, "clusterId": { "type": "string", - "description": "ID of the cluster to place the database on\n" + "description": "The ID of the cluster this database belongs to.\n" + }, + "components": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseComponent:DatabaseComponent" + }, + "description": "List of components in the database.\n" }, "configVersion": { "type": "string", - "description": "Config version of the database\n" + "description": "The configuration version of the database.\n" }, "createdAt": { "type": "string", - "description": "Created at of the database\n" + "description": "The timestamp when the database was created.\n" }, "domain": { "type": "string", - "description": "Domain of the database\n" + "description": "The domain associated with the database.\n" + }, + "extensions": { + "$ref": "#/types/pgedge:index/DatabaseExtensions:DatabaseExtensions", + "description": "Extensions configuration for the database.\n" }, "name": { "type": "string", - "description": "Name of the database\n" + "description": "The name of the database.\n" + }, + "nodes": { + "type": "object", + "additionalProperties": { + "$ref": "#/types/pgedge:index/DatabaseNodes:DatabaseNodes" + }, + "description": "Map of nodes in the database.\n" }, "options": { "type": "array", "items": { "type": "string" }, - "description": "Options for creating the database\n" + "description": "A list of options for the database.\n" }, "pgVersion": { "type": "string", - "description": "Postgres version of the database\n" - }, - "status": { - "type": "string", - "description": "Status of the database\n" + "description": "The PostgreSQL version of the database.\n" }, - "storageUsed": { - "type": "integer", - "description": "Storage used of the database\n" + "roles": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseRole:DatabaseRole" + }, + "description": "List of roles in the database.\n" }, - "updatedAt": { + "status": { "type": "string", - "description": "Updated at of the database\n" + "description": "The current status of the database.\n" } }, "required": [ + "backups", "clusterId", + "components", "configVersion", "createdAt", "domain", + "extensions", "name", - "options", + "nodes", "pgVersion", - "status", - "storageUsed", - "updatedAt" + "roles", + "status" ], "inputProperties": { + "backups": { + "$ref": "#/types/pgedge:index/DatabaseBackups:DatabaseBackups", + "description": "Backup configuration for the database.\n" + }, "clusterId": { "type": "string", - "description": "ID of the cluster to place the database on\n" + "description": "The ID of the cluster this database belongs to.\n" }, "configVersion": { "type": "string", - "description": "Config version of the database\n" + "description": "The configuration version of the database.\n" + }, + "extensions": { + "$ref": "#/types/pgedge:index/DatabaseExtensions:DatabaseExtensions", + "description": "Extensions configuration for the database.\n" }, "name": { "type": "string", - "description": "Name of the database\n" + "description": "The name of the database.\n" + }, + "nodes": { + "type": "object", + "additionalProperties": { + "$ref": "#/types/pgedge:index/DatabaseNodes:DatabaseNodes" + }, + "description": "Map of nodes in the database.\n" }, "options": { "type": "array", "items": { "type": "string" }, - "description": "Options for creating the database\n" + "description": "A list of options for the database.\n" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseRole:DatabaseRole" + }, + "description": "List of roles in the database.\n" } }, "requiredInputs": [ - "clusterId" + "clusterId", + "nodes" ], "stateInputs": { "description": "Input properties used for looking up and filtering Database resources.\n", "properties": { + "backups": { + "$ref": "#/types/pgedge:index/DatabaseBackups:DatabaseBackups", + "description": "Backup configuration for the database.\n" + }, "clusterId": { "type": "string", - "description": "ID of the cluster to place the database on\n" + "description": "The ID of the cluster this database belongs to.\n" + }, + "components": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseComponent:DatabaseComponent" + }, + "description": "List of components in the database.\n" }, "configVersion": { "type": "string", - "description": "Config version of the database\n" + "description": "The configuration version of the database.\n" }, "createdAt": { "type": "string", - "description": "Created at of the database\n" + "description": "The timestamp when the database was created.\n" }, "domain": { "type": "string", - "description": "Domain of the database\n" + "description": "The domain associated with the database.\n" + }, + "extensions": { + "$ref": "#/types/pgedge:index/DatabaseExtensions:DatabaseExtensions", + "description": "Extensions configuration for the database.\n" }, "name": { "type": "string", - "description": "Name of the database\n" + "description": "The name of the database.\n" + }, + "nodes": { + "type": "object", + "additionalProperties": { + "$ref": "#/types/pgedge:index/DatabaseNodes:DatabaseNodes" + }, + "description": "Map of nodes in the database.\n" }, "options": { "type": "array", "items": { "type": "string" }, - "description": "Options for creating the database\n" + "description": "A list of options for the database.\n" }, "pgVersion": { "type": "string", - "description": "Postgres version of the database\n" + "description": "The PostgreSQL version of the database.\n" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/DatabaseRole:DatabaseRole" + }, + "description": "List of roles in the database.\n" }, "status": { "type": "string", - "description": "Status of the database\n" + "description": "The current status of the database.\n" + } + }, + "type": "object" + } + }, + "pgedge:index/sSHKey:SSHKey": { + "description": "Manages a pgEdge SSH key.\n", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the SSH key was created.\n" + }, + "name": { + "type": "string", + "description": "The name of the SSH key.\n" + }, + "publicKey": { + "type": "string", + "description": "The public key.\n" + } + }, + "required": [ + "createdAt", + "name", + "publicKey" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "The name of the SSH key.\n" + }, + "publicKey": { + "type": "string", + "description": "The public key.\n" + } + }, + "requiredInputs": [ + "publicKey" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering SSHKey resources.\n", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the SSH key was created.\n" }, - "storageUsed": { - "type": "integer", - "description": "Storage used of the database\n" + "name": { + "type": "string", + "description": "The name of the SSH key.\n" }, - "updatedAt": { + "publicKey": { "type": "string", - "description": "Updated at of the database\n" + "description": "The public key.\n" } }, "type": "object" @@ -1392,8 +2273,53 @@ } }, "functions": { + "pgedge:index/getBackupStores:getBackupStores": { + "outputs": { + "description": "A collection of values returned by getBackupStores.\n", + "properties": { + "backupStores": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/getBackupStoresBackupStore:getBackupStoresBackupStore" + } + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + } + }, + "type": "object", + "required": [ + "backupStores", + "id" + ] + } + }, + "pgedge:index/getCloudAccounts:getCloudAccounts": { + "description": "Data source for pgEdge cloud accounts.\n", + "outputs": { + "description": "A collection of values returned by getCloudAccounts.\n", + "properties": { + "cloudAccounts": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/getCloudAccountsCloudAccount:getCloudAccountsCloudAccount" + } + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + } + }, + "type": "object", + "required": [ + "cloudAccounts", + "id" + ] + } + }, "pgedge:index/getClusters:getClusters": { - "description": "Interface with the pgEdge service API for clusters.\n", + "description": "Data source for pgEdge clusters.\n", "outputs": { "description": "A collection of values returned by getClusters.\n", "properties": { @@ -1416,7 +2342,7 @@ } }, "pgedge:index/getDatabases:getDatabases": { - "description": "Interface with the pgEdge service API.\n", + "description": "Data source for pgEdge databases\n", "outputs": { "description": "A collection of values returned by getDatabases.\n", "properties": { @@ -1437,6 +2363,29 @@ "id" ] } + }, + "pgedge:index/getSSHKeys:getSSHKeys": { + "description": "Data source for pgEdge SSH keys.\n", + "outputs": { + "description": "A collection of values returned by getSSHKeys.\n", + "properties": { + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "sshKeys": { + "type": "array", + "items": { + "$ref": "#/types/pgedge:index/getSSHKeysSshKey:getSSHKeysSshKey" + } + } + }, + "type": "object", + "required": [ + "sshKeys", + "id" + ] + } } } } \ No newline at end of file diff --git a/provider/go.mod b/provider/go.mod index 82400b0..8c76079 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,6 +1,8 @@ module github.com/pgEdge/pulumi-pgedge/provider -go 1.21.5 +go 1.22.0 + +toolchain go1.22.2 replace ( github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20230912190043-e6d96b3b8f7e @@ -11,12 +13,12 @@ require ( github.com/pgEdge/pulumi-pgedge/provider/shim v0.0.0-20240213120741-1091e78d0150 github.com/pulumi/pulumi-terraform-bridge/pf v0.26.0 github.com/pulumi/pulumi-terraform-bridge/v3 v3.73.0 + github.com/pulumi/pulumi/sdk/v3 v3.104.2 ) require ( cloud.google.com/go v0.110.10 // indirect - cloud.google.com/go/compute v1.23.3 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/compute/metadata v0.5.0 // indirect cloud.google.com/go/iam v1.1.5 // indirect cloud.google.com/go/kms v1.15.5 // indirect cloud.google.com/go/logging v1.8.1 // indirect @@ -77,34 +79,34 @@ require ( github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ettle/strcase v0.1.1 // indirect - github.com/fatih/color v1.16.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.11.0 // indirect - github.com/go-logr/logr v1.3.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/analysis v0.22.0 // indirect - github.com/go-openapi/errors v0.21.0 // indirect - github.com/go-openapi/jsonpointer v0.20.2 // indirect - github.com/go-openapi/jsonreference v0.20.4 // indirect - github.com/go-openapi/loads v0.21.5 // indirect - github.com/go-openapi/runtime v0.26.2 // indirect - github.com/go-openapi/spec v0.20.13 // indirect - github.com/go-openapi/strfmt v0.22.0 // indirect - github.com/go-openapi/swag v0.22.7 // indirect - github.com/go-openapi/validate v0.22.6 // indirect + github.com/go-openapi/analysis v0.23.0 // indirect + github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/loads v0.22.0 // indirect + github.com/go-openapi/runtime v0.28.0 // indirect + github.com/go-openapi/spec v0.21.0 // indirect + github.com/go-openapi/strfmt v0.23.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/validate v0.24.0 // indirect github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.1.0 // indirect - github.com/golang/glog v1.1.2 // indirect + github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/s2a-go v0.1.7 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.5.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/google/wire v0.5.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.0 // indirect @@ -114,10 +116,10 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect github.com/hashicorp/go-getter v1.7.1 // indirect - github.com/hashicorp/go-hclog v1.5.0 // indirect + github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/go-plugin v1.6.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.1 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect @@ -131,15 +133,15 @@ require ( github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/hcl/v2 v2.19.1 // indirect github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect - github.com/hashicorp/terraform-plugin-framework v1.5.0 // indirect - github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.20.0 // indirect + github.com/hashicorp/terraform-plugin-framework v1.12.0 // indirect + github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/vault/api v1.8.2 // indirect github.com/hashicorp/vault/sdk v0.6.1 // indirect - github.com/hashicorp/yamux v0.1.1 // indirect + github.com/hashicorp/yamux v0.1.2 // indirect github.com/huandu/xstrings v1.3.3 // indirect github.com/iancoleman/strcase v0.2.0 // indirect github.com/imdario/mergo v0.3.15 // indirect @@ -177,7 +179,7 @@ require ( github.com/oklog/ulid v1.3.1 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/pgEdge/terraform-provider-pgedge v0.0.6 // indirect + github.com/pgEdge/terraform-provider-pgedge v0.0.24 // indirect github.com/pgavlin/fx v0.1.6 // indirect github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect @@ -193,14 +195,12 @@ require ( github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7 // indirect github.com/pulumi/pulumi-yaml v1.5.0 // indirect github.com/pulumi/pulumi/pkg/v3 v3.104.2 // indirect - github.com/pulumi/pulumi/sdk/v3 v3.104.2 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect - github.com/sanity-io/litter v1.5.5 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect github.com/segmentio/asm v1.1.3 // indirect github.com/segmentio/encoding v0.3.5 // indirect @@ -211,7 +211,7 @@ require ( github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.8.4 // indirect + github.com/stretchr/testify v1.9.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect @@ -224,33 +224,32 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zclconf/go-cty v1.14.4 // indirect - go.mongodb.org/mongo-driver v1.13.1 // indirect + go.mongodb.org/mongo-driver v1.17.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.17.0 // indirect - go.opentelemetry.io/otel/metric v1.17.0 // indirect - go.opentelemetry.io/otel/trace v1.17.0 // indirect + go.opentelemetry.io/otel v1.30.0 // indirect + go.opentelemetry.io/otel/metric v1.30.0 // indirect + go.opentelemetry.io/otel/trace v1.30.0 // indirect go.uber.org/atomic v1.9.0 // indirect gocloud.dev v0.36.0 // indirect gocloud.dev/secrets/hashivault v0.27.0 // indirect - golang.org/x/crypto v0.21.0 // indirect + golang.org/x/crypto v0.27.0 // indirect golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/oauth2 v0.14.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/term v0.18.0 // indirect - golang.org/x/text v0.15.0 // indirect + golang.org/x/net v0.29.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/term v0.24.0 // indirect + golang.org/x/text v0.18.0 // indirect golang.org/x/time v0.4.0 // indirect - golang.org/x/tools v0.15.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.151.0 // indirect - google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/grpc v1.60.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 // indirect + google.golang.org/grpc v1.67.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/provider/go.sum b/provider/go.sum index 744b627..2b7dce3 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -75,10 +75,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= +cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= @@ -671,7 +669,6 @@ github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1S github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= -github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -751,8 +748,8 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -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/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -816,59 +813,59 @@ github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= 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-openapi/analysis v0.21.2/go.mod h1:HZwRk4RRisyG8vx2Oe6aqeSQcoxRp47Xkp3+K6q+LdY= -github.com/go-openapi/analysis v0.22.0 h1:wQ/d07nf78HNj4u+KiSY0sT234IAyePPbMgpUjUJQR0= -github.com/go-openapi/analysis v0.22.0/go.mod h1:acDnkkCI2QxIo8sSIPgmp1wUlRohV7vfGtAIVae73b0= +github.com/go-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= +github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/errors v0.21.0 h1:FhChC/duCnfoLj1gZ0BgaBmzhJC2SL/sJr8a2vAobSY= -github.com/go-openapi/errors v0.21.0/go.mod h1:jxNTMUxRCKj65yb/okJGEtahVd7uvWnuWfj53bse4ho= +github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= +github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= -github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= -github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= -github.com/go-openapi/loads v0.21.5 h1:jDzF4dSoHw6ZFADCGltDb2lE4F6De7aWSpe+IcsRzT0= -github.com/go-openapi/loads v0.21.5/go.mod h1:PxTsnFBoBe+z89riT+wYt3prmSBP6GDAQh2l9H1Flz8= +github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco= +github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= github.com/go-openapi/runtime v0.23.1/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= -github.com/go-openapi/runtime v0.26.2 h1:elWyB9MacRzvIVgAZCBJmqTi7hBzU0hlKD4IvfX0Zl0= -github.com/go-openapi/runtime v0.26.2/go.mod h1:O034jyRZ557uJKzngbMDJXkcKJVzXJiymdSfgejrcRw= +github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ= +github.com/go-openapi/runtime v0.28.0/go.mod h1:QN7OzcS+XuYmkQLw05akXk0jRH/eZ3kb18+1KwW9gyc= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= -github.com/go-openapi/spec v0.20.13 h1:XJDIN+dLH6vqXgafnl5SUIMnzaChQ6QTo0/UPMbkIaE= -github.com/go-openapi/spec v0.20.13/go.mod h1:8EOhTpBoFiask8rrgwbLC3zmJfz4zsCUueRuPM6GNkw= +github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= +github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= github.com/go-openapi/strfmt v0.21.2/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= -github.com/go-openapi/strfmt v0.22.0 h1:Ew9PnEYc246TwrEspvBdDHS4BVKXy/AOVsfqGDgAcaI= -github.com/go-openapi/strfmt v0.22.0/go.mod h1:HzJ9kokGIju3/K6ap8jL+OlGAbjpSv27135Yr9OivU4= +github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= +github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-openapi/swag v0.22.7 h1:JWrc1uc/P9cSomxfnsFSVWoE1FW6bNbrVPmpQYpCcR8= -github.com/go-openapi/swag v0.22.7/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.21.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= -github.com/go-openapi/validate v0.22.6 h1:+NhuwcEYpWdO5Nm4bmvhGLW0rt1Fcc532Mu3wpypXfo= -github.com/go-openapi/validate v0.22.6/go.mod h1:eaddXSqKeTg5XpSmj1dYyFTK/95n/XHwcOY+BMxKMyM= +github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= +github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= @@ -943,8 +940,8 @@ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2V github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= +github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -979,8 +976,8 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -1056,8 +1053,8 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/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.5.0 h1:I7ELFeVBr3yfPIcc8+MWvrjk+3VjbcSzoXm3JVa+jD8= github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= @@ -1138,8 +1135,8 @@ github.com/hashicorp/go-hclog v0.12.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39 github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v1.2.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= -github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= -github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +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-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.2.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= @@ -1153,8 +1150,8 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= github.com/hashicorp/go-plugin v1.4.4/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= -github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= -github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= +github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ= @@ -1216,12 +1213,12 @@ github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVW github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= -github.com/hashicorp/terraform-plugin-framework v1.5.0 h1:8kcvqJs/x6QyOFSdeAyEgsenVOUeC/IyKpi2ul4fjTg= -github.com/hashicorp/terraform-plugin-framework v1.5.0/go.mod h1:6waavirukIlFpVpthbGd2PUNYaFedB0RwW3MDzJ/rtc= -github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= -github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= -github.com/hashicorp/terraform-plugin-go v0.20.0 h1:oqvoUlL+2EUbKNsJbIt3zqqZ7wi6lzn4ufkn/UA51xQ= -github.com/hashicorp/terraform-plugin-go v0.20.0/go.mod h1:Rr8LBdMlY53a3Z/HpP+ZU3/xCDqtKNCkeI9qOyT10QE= +github.com/hashicorp/terraform-plugin-framework v1.12.0 h1:7HKaueHPaikX5/7cbC1r9d1m12iYHY+FlNZEGxQ42CQ= +github.com/hashicorp/terraform-plugin-framework v1.12.0/go.mod h1:N/IOQ2uYjW60Jp39Cp3mw7I/OpC/GfZ0385R0YibmkE= +github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= +github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= +github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U= +github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= @@ -1240,8 +1237,9 @@ github.com/hashicorp/vault/sdk v0.5.3/go.mod h1:DoGraE9kKGNcVgPmTuX357Fm6WAx1Okv github.com/hashicorp/vault/sdk v0.6.1 h1:sjZC1z4j5Rh2GXYbkxn5BLK05S1p7+MhW4AgdUmgRUA= github.com/hashicorp/vault/sdk v0.6.1/go.mod h1:Ck4JuAC6usTphfrrRJCRH+7/N7O2ozZzkm/fzQFt4uM= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +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/hetznercloud/hcloud-go v1.33.1/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME= github.com/hetznercloud/hcloud-go v1.35.0/go.mod h1:mepQwR6va27S3UQthaEPGS86jtzSY9xWL1e9dyxXpgA= github.com/hexops/autogold v1.3.0 h1:IEtGNPxBeBu8RMn8eKWh/Ll9dVNgSnJ7bp/qHgMQ14o= @@ -1624,8 +1622,8 @@ github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrap github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pgEdge/terraform-provider-pgedge v0.0.6 h1:me/WQ7OaiahlfI2VcldN647GSwUsNvIV5Fr5epb/1Fg= -github.com/pgEdge/terraform-provider-pgedge v0.0.6/go.mod h1:4FNE8ErOI3lKQtLRRXnJ7y2lRXzqfrH2F8aTOeI/5kE= +github.com/pgEdge/terraform-provider-pgedge v0.0.24 h1:imHF2DH0a9viUQr8yTO92ITS2ixNd9j9L5w+BHFu7q4= +github.com/pgEdge/terraform-provider-pgedge v0.0.24/go.mod h1:j/GaxCTLouUPD38CCjWzCwjBns5+tanE1L4S9Riddig= github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 h1:LoCV5cscNVWyK5ChN/uCoIFJz8jZD63VQiGJIRgr6uo= @@ -1651,7 +1649,6 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= 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 v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= @@ -1770,8 +1767,6 @@ github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+e github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sanity-io/litter v1.5.5 h1:iE+sBxPBzoK6uaEP5Lt3fHNgpKcHXc/A2HGETy0uJQo= -github.com/sanity-io/litter v1.5.5/go.mod h1:9gzJgR2i4ZpjZHsKvUXIRQVk7P+yM3e+jAF7bU2UI5U= 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/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= @@ -1847,9 +1842,9 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -1862,8 +1857,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -1915,9 +1910,7 @@ github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= -github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= 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= @@ -1960,8 +1953,8 @@ go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVd go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= go.mongodb.org/mongo-driver v1.8.3/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY= -go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk= -go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= +go.mongodb.org/mongo-driver v1.17.0 h1:Hp4q2MCjvY19ViwimTs00wHi7G4yzxh4/2+nTx8r40k= +go.mongodb.org/mongo-driver v1.17.0/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1986,8 +1979,8 @@ go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVj go.opentelemetry.io/otel v1.6.0/go.mod h1:bfJD2DZVw0LBxghOTlgnlI0CV3hLDu9XF/QKOUXMTQQ= go.opentelemetry.io/otel v1.6.1/go.mod h1:blzUabWHkX6LJewxvadmzafgh/wnvBSDBdOuwkAtrWQ= go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk= -go.opentelemetry.io/otel v1.17.0 h1:MW+phZ6WZ5/uk2nd93ANk/6yJ+dVrvNWUjGhnnFU5jM= -go.opentelemetry.io/otel v1.17.0/go.mod h1:I2vmBGtFaODIVMBSTPVDlJSzBDNf93k60E6Ft0nyjo0= +go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= +go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.1/go.mod h1:NEu79Xo32iVb+0gVNV8PMd7GoWqnyDXRlj04yFjqz40= @@ -2004,15 +1997,15 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.7.0/go.mod h1 go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= go.opentelemetry.io/otel/metric v0.28.0/go.mod h1:TrzsfQAmQaB1PDcdhBauLMk7nyyg9hm+GoQq/ekE9Iw= go.opentelemetry.io/otel/metric v0.30.0/go.mod h1:/ShZ7+TS4dHzDFmfi1kSXMhMVubNoP0oIaBp70J6UXU= -go.opentelemetry.io/otel/metric v1.17.0 h1:iG6LGVz5Gh+IuO0jmgvpTB6YVrCGngi8QGm+pMd8Pdc= -go.opentelemetry.io/otel/metric v1.17.0/go.mod h1:h4skoxdZI17AxwITdmdZjjYJQH5nzijUUjm+wtPph5o= +go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= +go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= go.opentelemetry.io/otel/sdk v1.6.1/go.mod h1:IVYrddmFZ+eJqu2k38qD3WezFR2pymCzm8tdxyh3R4E= go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe374q6cZwUU= -go.opentelemetry.io/otel/sdk v1.17.0 h1:FLN2X66Ke/k5Sg3V623Q7h7nt3cHXaW1FOvKKrW0IpE= -go.opentelemetry.io/otel/sdk v1.17.0/go.mod h1:U87sE0f5vQB7hwUoW98pW5Rz4ZDuCFBZFNUBlSgmDFQ= +go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= +go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= @@ -2020,8 +2013,8 @@ go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKu go.opentelemetry.io/otel/trace v1.6.0/go.mod h1:qs7BrU5cZ8dXQHBGxHMOxwME/27YH2qEp4/+tZLLwJE= go.opentelemetry.io/otel/trace v1.6.1/go.mod h1:RkFRM1m0puWIq10oxImnGEduNBzxiN7TXluRBtE+5j0= go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU= -go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYOdSKWQ= -go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY= +go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= +go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= go.opentelemetry.io/proto/otlp v0.12.1/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= @@ -2091,8 +2084,8 @@ golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -2219,8 +2212,8 @@ golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2250,8 +2243,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= -golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2267,8 +2260,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/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.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2417,8 +2410,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -2426,8 +2419,8 @@ golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= +golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2437,11 +2430,9 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/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.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2540,8 +2531,8 @@ golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= -golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2745,10 +2736,10 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg= google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f/go.mod h1:nWSwAFPb+qfNJXsoeO3Io7zf4tMSfN8EA8RlDA04GhY= -google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f h1:2yNACc1O40tTnrsbk9Cv6oxiW8pxI/pXj0wRtdlYmgY= -google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 h1:N9BgCIAUvn/M+p4NJccWPWb3BWh88+zyL0ll9HgbEeM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -2795,8 +2786,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= -google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= +google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -2813,8 +2804,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/provider/resources.go b/provider/resources.go index ebd669c..13fc0c1 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -10,11 +10,11 @@ import ( "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge/tokens" - // shim "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim" - // "github.com/pulumi/pulumi/sdk/v3/go/common/resource" + shim "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim" + "github.com/pulumi/pulumi/sdk/v3/go/common/resource" "github.com/pgEdge/pulumi-pgedge/provider/pkg/version" - shim "github.com/pgEdge/pulumi-pgedge/provider/shim" + providerShim "github.com/pgEdge/pulumi-pgedge/provider/shim" ) // all of the token components used below. @@ -23,47 +23,53 @@ const ( mainMod = "index" ) -// func preConfigureCallback(resource.PropertyMap, shim.ResourceConfig) error { -// return nil -// } +func preConfigureCallback(_ resource.PropertyMap, _ shim.ResourceConfig) error { + return nil +} //go:embed cmd/pulumi-resource-pgedge/bridge-metadata.json var metadata []byte func Provider() tfbridge.ProviderInfo { prov := tfbridge.ProviderInfo{ - P: pf.ShimProvider(shim.NewProvider()), + P: pf.ShimProvider(providerShim.NewProvider()), Name: "pgedge", DisplayName: "pgEdge", Publisher: "pgEdge", - LogoURL: "", - PluginDownloadURL: "", + LogoURL: "https://pgedge-public-assets.s3.amazonaws.com/product/images/pgedge_mark.svg", + PluginDownloadURL: "github://api.github.com/pgEdge/pulumi-pgedge", Description: "A Pulumi package for creating and managing pgedge cloud resources.", - Keywords: []string{"pulumi", "pgedge", "category/cloud"}, + Keywords: []string{"pulumi", "pgedge", "category/cloud", "category/database"}, License: "Apache-2.0", Homepage: "https://www.pgedge.com", Repository: "https://github.com/pgEdge/pulumi-pgedge", Version: version.Version, GitHubOrg: "pgEdge", MetadataInfo: tfbridge.NewProviderMetadata(metadata), - Config: map[string]*tfbridge.SchemaInfo{}, - // PreConfigureCallback: preConfigureCallback, + Config: map[string]*tfbridge.SchemaInfo{ + "base_url": { + Default: &tfbridge.DefaultInfo{ + EnvVars: []string{"PGEDGE_BASE_URL"}, + }, + }, + }, + PreConfigureCallback: preConfigureCallback, Resources: map[string]*tfbridge.ResourceInfo{ "pgedge_database": { Tok: tfbridge.MakeResource(mainPkg, mainMod, "Database"), - // Fields: map[string]*tfbridge.SchemaInfo{ - // "database_name": { - // Name: "", - // Secret: tfbridge.True(), - // CSharpName: "", - // MarkAsOptional: false, - // }, - // }, - // Docs: &tfbridge.DocInfo{}, }, "pgedge_cluster": { Tok: tfbridge.MakeResource(mainPkg, mainMod, "Cluster"), }, + "pgedge_cloud_account": { + Tok: tfbridge.MakeResource(mainPkg, mainMod, "CloudAccount"), + }, + "pgedge_ssh_key": { + Tok: tfbridge.MakeResource(mainPkg, mainMod, "SSHKey"), + }, + "pgedge_backup_store": { + Tok: tfbridge.MakeResource(mainPkg, mainMod, "BackupStore"), + }, }, DataSources: map[string]*tfbridge.DataSourceInfo{ "pgedge_databases": { @@ -72,6 +78,15 @@ func Provider() tfbridge.ProviderInfo { "pgedge_clusters": { Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getClusters"), }, + "pgedge_cloud_accounts": { + Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getCloudAccounts"), + }, + "pgedge_ssh_keys": { + Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getSSHKeys"), + }, + "pgedge_backup_stores": { + Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getBackupStores"), + }, }, JavaScript: &tfbridge.JavaScriptInfo{ PackageName: "@pgEdge/pulumi-pgedge", diff --git a/provider/shim/go.mod b/provider/shim/go.mod index eb79396..d0562f0 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -1,32 +1,34 @@ module github.com/pgEdge/pulumi-pgedge/provider/shim -go 1.21.5 +go 1.22.0 + +toolchain go1.22.2 require ( - github.com/hashicorp/terraform-plugin-framework v1.5.0 + github.com/hashicorp/terraform-plugin-framework v1.12.0 github.com/pgEdge/pulumi-pgedge/provider v0.0.0-20240213115242-7e064c5e16f5 - github.com/pgEdge/terraform-provider-pgedge v0.0.6 + github.com/pgEdge/terraform-provider-pgedge v0.0.24 ) require ( github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/fatih/color v1.16.0 // indirect - github.com/go-logr/logr v1.3.0 // indirect + github.com/fatih/color v1.17.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/analysis v0.22.0 // indirect - github.com/go-openapi/errors v0.21.0 // indirect - github.com/go-openapi/jsonpointer v0.20.2 // indirect - github.com/go-openapi/jsonreference v0.20.4 // indirect - github.com/go-openapi/loads v0.21.5 // indirect - github.com/go-openapi/runtime v0.26.2 // indirect - github.com/go-openapi/spec v0.20.13 // indirect - github.com/go-openapi/strfmt v0.22.0 // indirect - github.com/go-openapi/swag v0.22.7 // indirect - github.com/go-openapi/validate v0.22.6 // indirect - github.com/google/uuid v1.5.0 // indirect - github.com/hashicorp/go-hclog v1.5.0 // indirect - github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.20.0 // indirect + github.com/go-openapi/analysis v0.23.0 // indirect + github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/loads v0.22.0 // indirect + github.com/go-openapi/runtime v0.28.0 // indirect + github.com/go-openapi/spec v0.21.0 // indirect + github.com/go-openapi/strfmt v0.23.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/validate v0.24.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/go-hclog v1.6.3 // indirect + github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -36,13 +38,13 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/sanity-io/litter v1.5.5 // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect - go.mongodb.org/mongo-driver v1.13.1 // indirect - go.opentelemetry.io/otel v1.17.0 // indirect - go.opentelemetry.io/otel/metric v1.17.0 // indirect - go.opentelemetry.io/otel/trace v1.17.0 // indirect - golang.org/x/sys v0.18.0 // indirect + go.mongodb.org/mongo-driver v1.17.0 // indirect + go.opentelemetry.io/otel v1.30.0 // indirect + go.opentelemetry.io/otel/metric v1.30.0 // indirect + go.opentelemetry.io/otel/trace v1.30.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.25.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/provider/shim/go.sum b/provider/shim/go.sum index aafbac8..8a79d0f 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -8,46 +8,43 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3d github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -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/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/analysis v0.22.0 h1:wQ/d07nf78HNj4u+KiSY0sT234IAyePPbMgpUjUJQR0= -github.com/go-openapi/analysis v0.22.0/go.mod h1:acDnkkCI2QxIo8sSIPgmp1wUlRohV7vfGtAIVae73b0= -github.com/go-openapi/errors v0.21.0 h1:FhChC/duCnfoLj1gZ0BgaBmzhJC2SL/sJr8a2vAobSY= -github.com/go-openapi/errors v0.21.0/go.mod h1:jxNTMUxRCKj65yb/okJGEtahVd7uvWnuWfj53bse4ho= -github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= -github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= -github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= -github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= -github.com/go-openapi/loads v0.21.5 h1:jDzF4dSoHw6ZFADCGltDb2lE4F6De7aWSpe+IcsRzT0= -github.com/go-openapi/loads v0.21.5/go.mod h1:PxTsnFBoBe+z89riT+wYt3prmSBP6GDAQh2l9H1Flz8= -github.com/go-openapi/runtime v0.26.2 h1:elWyB9MacRzvIVgAZCBJmqTi7hBzU0hlKD4IvfX0Zl0= -github.com/go-openapi/runtime v0.26.2/go.mod h1:O034jyRZ557uJKzngbMDJXkcKJVzXJiymdSfgejrcRw= -github.com/go-openapi/spec v0.20.13 h1:XJDIN+dLH6vqXgafnl5SUIMnzaChQ6QTo0/UPMbkIaE= -github.com/go-openapi/spec v0.20.13/go.mod h1:8EOhTpBoFiask8rrgwbLC3zmJfz4zsCUueRuPM6GNkw= -github.com/go-openapi/strfmt v0.22.0 h1:Ew9PnEYc246TwrEspvBdDHS4BVKXy/AOVsfqGDgAcaI= -github.com/go-openapi/strfmt v0.22.0/go.mod h1:HzJ9kokGIju3/K6ap8jL+OlGAbjpSv27135Yr9OivU4= -github.com/go-openapi/swag v0.22.7 h1:JWrc1uc/P9cSomxfnsFSVWoE1FW6bNbrVPmpQYpCcR8= -github.com/go-openapi/swag v0.22.7/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= -github.com/go-openapi/validate v0.22.6 h1:+NhuwcEYpWdO5Nm4bmvhGLW0rt1Fcc532Mu3wpypXfo= -github.com/go-openapi/validate v0.22.6/go.mod h1:eaddXSqKeTg5XpSmj1dYyFTK/95n/XHwcOY+BMxKMyM= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/go-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= +github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= +github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= +github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco= +github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= +github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ= +github.com/go-openapi/runtime v0.28.0/go.mod h1:QN7OzcS+XuYmkQLw05akXk0jRH/eZ3kb18+1KwW9gyc= +github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= +github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= +github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= +github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= +github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/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/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= @@ -56,12 +53,12 @@ github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9n github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= -github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= -github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +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.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= -github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= +github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= @@ -77,12 +74,12 @@ github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVW github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= -github.com/hashicorp/terraform-plugin-framework v1.5.0 h1:8kcvqJs/x6QyOFSdeAyEgsenVOUeC/IyKpi2ul4fjTg= -github.com/hashicorp/terraform-plugin-framework v1.5.0/go.mod h1:6waavirukIlFpVpthbGd2PUNYaFedB0RwW3MDzJ/rtc= -github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= -github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= -github.com/hashicorp/terraform-plugin-go v0.20.0 h1:oqvoUlL+2EUbKNsJbIt3zqqZ7wi6lzn4ufkn/UA51xQ= -github.com/hashicorp/terraform-plugin-go v0.20.0/go.mod h1:Rr8LBdMlY53a3Z/HpP+ZU3/xCDqtKNCkeI9qOyT10QE= +github.com/hashicorp/terraform-plugin-framework v1.12.0 h1:7HKaueHPaikX5/7cbC1r9d1m12iYHY+FlNZEGxQ42CQ= +github.com/hashicorp/terraform-plugin-framework v1.12.0/go.mod h1:N/IOQ2uYjW60Jp39Cp3mw7I/OpC/GfZ0385R0YibmkE= +github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= +github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= +github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U= +github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-sdk/v2 v2.30.0 h1:X7vB6vn5tON2b49ILa4W7mFAsndeqJ7bZFOGbVO+0Cc= @@ -93,11 +90,10 @@ github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTV github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc= -github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= -github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +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/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -123,7 +119,6 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= @@ -132,101 +127,65 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pgEdge/pulumi-pgedge/provider v0.0.0-20240213115242-7e064c5e16f5 h1:0hdS10dSr1d0i4ey5UC+B78DdqdHP0KYaPObQUps+bQ= github.com/pgEdge/pulumi-pgedge/provider v0.0.0-20240213115242-7e064c5e16f5/go.mod h1:tKZ5pS8mVdY+MxwlgFRa4jtOG1NYzLLcW+vfzmeGZ6M= -github.com/pgEdge/terraform-provider-pgedge v0.0.6 h1:me/WQ7OaiahlfI2VcldN647GSwUsNvIV5Fr5epb/1Fg= -github.com/pgEdge/terraform-provider-pgedge v0.0.6/go.mod h1:4FNE8ErOI3lKQtLRRXnJ7y2lRXzqfrH2F8aTOeI/5kE= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pgEdge/terraform-provider-pgedge v0.0.24 h1:imHF2DH0a9viUQr8yTO92ITS2ixNd9j9L5w+BHFu7q4= +github.com/pgEdge/terraform-provider-pgedge v0.0.24/go.mod h1:j/GaxCTLouUPD38CCjWzCwjBns5+tanE1L4S9Riddig= 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/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/sanity-io/litter v1.5.5 h1:iE+sBxPBzoK6uaEP5Lt3fHNgpKcHXc/A2HGETy0uJQo= -github.com/sanity-io/litter v1.5.5/go.mod h1:9gzJgR2i4ZpjZHsKvUXIRQVk7P+yM3e+jAF7bU2UI5U= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 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/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= -github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk= -go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= -go.opentelemetry.io/otel v1.17.0 h1:MW+phZ6WZ5/uk2nd93ANk/6yJ+dVrvNWUjGhnnFU5jM= -go.opentelemetry.io/otel v1.17.0/go.mod h1:I2vmBGtFaODIVMBSTPVDlJSzBDNf93k60E6Ft0nyjo0= -go.opentelemetry.io/otel/metric v1.17.0 h1:iG6LGVz5Gh+IuO0jmgvpTB6YVrCGngi8QGm+pMd8Pdc= -go.opentelemetry.io/otel/metric v1.17.0/go.mod h1:h4skoxdZI17AxwITdmdZjjYJQH5nzijUUjm+wtPph5o= -go.opentelemetry.io/otel/sdk v1.17.0 h1:FLN2X66Ke/k5Sg3V623Q7h7nt3cHXaW1FOvKKrW0IpE= -go.opentelemetry.io/otel/sdk v1.17.0/go.mod h1:U87sE0f5vQB7hwUoW98pW5Rz4ZDuCFBZFNUBlSgmDFQ= -go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYOdSKWQ= -go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +go.mongodb.org/mongo-driver v1.17.0 h1:Hp4q2MCjvY19ViwimTs00wHi7G4yzxh4/2+nTx8r40k= +go.mongodb.org/mongo-driver v1.17.0/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= +go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= +go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= +go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= +go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= +go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= +go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= +go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= +go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -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/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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= 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-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= -google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= -google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 h1:N9BgCIAUvn/M+p4NJccWPWb3BWh88+zyL0ll9HgbEeM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= +google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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= diff --git a/sdk/dotnet/BackupStore.cs b/sdk/dotnet/BackupStore.cs new file mode 100644 index 0000000..37ff868 --- /dev/null +++ b/sdk/dotnet/BackupStore.cs @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge +{ + [PgedgeResourceType("pgedge:index/backupStore:BackupStore")] + public partial class BackupStore : global::Pulumi.CustomResource + { + [Output("cloudAccountId")] + public Output CloudAccountId { get; private set; } = null!; + + [Output("cloudAccountType")] + public Output CloudAccountType { get; private set; } = null!; + + [Output("clusterIds")] + public Output> ClusterIds { get; private set; } = null!; + + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("properties")] + public Output> Properties { get; private set; } = null!; + + [Output("region")] + public Output Region { get; private set; } = null!; + + [Output("status")] + public Output Status { get; private set; } = null!; + + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + + /// + /// Create a BackupStore resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public BackupStore(string name, BackupStoreArgs args, CustomResourceOptions? options = null) + : base("pgedge:index/backupStore:BackupStore", name, args ?? new BackupStoreArgs(), MakeResourceOptions(options, "")) + { + } + + private BackupStore(string name, Input id, BackupStoreState? state = null, CustomResourceOptions? options = null) + : base("pgedge:index/backupStore:BackupStore", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pgEdge/pulumi-pgedge", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing BackupStore resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static BackupStore Get(string name, Input id, BackupStoreState? state = null, CustomResourceOptions? options = null) + { + return new BackupStore(name, id, state, options); + } + } + + public sealed class BackupStoreArgs : global::Pulumi.ResourceArgs + { + [Input("cloudAccountId", required: true)] + public Input CloudAccountId { get; set; } = null!; + + [Input("name")] + public Input? Name { get; set; } + + [Input("region", required: true)] + public Input Region { get; set; } = null!; + + public BackupStoreArgs() + { + } + public static new BackupStoreArgs Empty => new BackupStoreArgs(); + } + + public sealed class BackupStoreState : global::Pulumi.ResourceArgs + { + [Input("cloudAccountId")] + public Input? CloudAccountId { get; set; } + + [Input("cloudAccountType")] + public Input? CloudAccountType { get; set; } + + [Input("clusterIds")] + private InputList? _clusterIds; + public InputList ClusterIds + { + get => _clusterIds ?? (_clusterIds = new InputList()); + set => _clusterIds = value; + } + + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("properties")] + private InputMap? _properties; + public InputMap Properties + { + get => _properties ?? (_properties = new InputMap()); + set => _properties = value; + } + + [Input("region")] + public Input? Region { get; set; } + + [Input("status")] + public Input? Status { get; set; } + + [Input("updatedAt")] + public Input? UpdatedAt { get; set; } + + public BackupStoreState() + { + } + public static new BackupStoreState Empty => new BackupStoreState(); + } +} diff --git a/sdk/dotnet/CloudAccount.cs b/sdk/dotnet/CloudAccount.cs new file mode 100644 index 0000000..88837c0 --- /dev/null +++ b/sdk/dotnet/CloudAccount.cs @@ -0,0 +1,134 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge +{ + [PgedgeResourceType("pgedge:index/cloudAccount:CloudAccount")] + public partial class CloudAccount : global::Pulumi.CustomResource + { + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + [Output("credentials")] + public Output> Credentials { get; private set; } = null!; + + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("type")] + public Output Type { get; private set; } = null!; + + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + + /// + /// Create a CloudAccount resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public CloudAccount(string name, CloudAccountArgs args, CustomResourceOptions? options = null) + : base("pgedge:index/cloudAccount:CloudAccount", name, args ?? new CloudAccountArgs(), MakeResourceOptions(options, "")) + { + } + + private CloudAccount(string name, Input id, CloudAccountState? state = null, CustomResourceOptions? options = null) + : base("pgedge:index/cloudAccount:CloudAccount", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pgEdge/pulumi-pgedge", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing CloudAccount resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static CloudAccount Get(string name, Input id, CloudAccountState? state = null, CustomResourceOptions? options = null) + { + return new CloudAccount(name, id, state, options); + } + } + + public sealed class CloudAccountArgs : global::Pulumi.ResourceArgs + { + [Input("credentials", required: true)] + private InputMap? _credentials; + public InputMap Credentials + { + get => _credentials ?? (_credentials = new InputMap()); + set => _credentials = value; + } + + [Input("description")] + public Input? Description { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public CloudAccountArgs() + { + } + public static new CloudAccountArgs Empty => new CloudAccountArgs(); + } + + public sealed class CloudAccountState : global::Pulumi.ResourceArgs + { + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + [Input("credentials")] + private InputMap? _credentials; + public InputMap Credentials + { + get => _credentials ?? (_credentials = new InputMap()); + set => _credentials = value; + } + + [Input("description")] + public Input? Description { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("type")] + public Input? Type { get; set; } + + [Input("updatedAt")] + public Input? UpdatedAt { get; set; } + + public CloudAccountState() + { + } + public static new CloudAccountState Empty => new CloudAccountState(); + } +} diff --git a/sdk/dotnet/Cluster.cs b/sdk/dotnet/Cluster.cs index 4831542..4c0b72e 100644 --- a/sdk/dotnet/Cluster.cs +++ b/sdk/dotnet/Cluster.cs @@ -10,30 +10,27 @@ namespace Pgedge.Pgedge { - /// - /// Interface with the pgEdge service API for clusters. - /// [PgedgeResourceType("pgedge:index/cluster:Cluster")] public partial class Cluster : global::Pulumi.CustomResource { /// - /// ID of the target cloud account + /// List of backup store IDs to associate with the cluster /// + [Output("backupStoreIds")] + public Output> BackupStoreIds { get; private set; } = null!; + + [Output("capacity")] + public Output Capacity { get; private set; } = null!; + [Output("cloudAccountId")] public Output CloudAccountId { get; private set; } = null!; - /// - /// Creation time of the cluster - /// [Output("createdAt")] public Output CreatedAt { get; private set; } = null!; [Output("firewallRules")] public Output> FirewallRules { get; private set; } = null!; - /// - /// Name of the network - /// [Output("name")] public Output Name { get; private set; } = null!; @@ -41,7 +38,7 @@ public partial class Cluster : global::Pulumi.CustomResource public Output> Networks { get; private set; } = null!; /// - /// Network location for nodes (public or private) + /// Node location of the cluster. Must be either 'public' or 'private'. /// [Output("nodeLocation")] public Output NodeLocation { get; private set; } = null!; @@ -53,14 +50,14 @@ public partial class Cluster : global::Pulumi.CustomResource public Output> Regions { get; private set; } = null!; /// - /// ID of the SSH key to add to the cluster nodes + /// A map of tags to assign to the cluster /// + [Output("resourceTags")] + public Output> ResourceTags { get; private set; } = null!; + [Output("sshKeyId")] - public Output SshKeyId { get; private set; } = null!; + public Output SshKeyId { get; private set; } = null!; - /// - /// Status of the cluster - /// [Output("status")] public Output Status { get; private set; } = null!; @@ -87,6 +84,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pgEdge/pulumi-pgedge", }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. @@ -110,9 +108,21 @@ public static Cluster Get(string name, Input id, ClusterState? state = n public sealed class ClusterArgs : global::Pulumi.ResourceArgs { + [Input("backupStoreIds")] + private InputList? _backupStoreIds; + /// - /// ID of the target cloud account + /// List of backup store IDs to associate with the cluster /// + public InputList BackupStoreIds + { + get => _backupStoreIds ?? (_backupStoreIds = new InputList()); + set => _backupStoreIds = value; + } + + [Input("capacity")] + public Input? Capacity { get; set; } + [Input("cloudAccountId", required: true)] public Input CloudAccountId { get; set; } = null!; @@ -124,13 +134,10 @@ public InputList FirewallRules set => _firewallRules = value; } - /// - /// Name of the network - /// [Input("name")] public Input? Name { get; set; } - [Input("networks")] + [Input("networks", required: true)] private InputList? _networks; public InputList Networks { @@ -139,12 +146,12 @@ public InputList Networks } /// - /// Network location for nodes (public or private) + /// Node location of the cluster. Must be either 'public' or 'private'. /// - [Input("nodeLocation")] - public Input? NodeLocation { get; set; } + [Input("nodeLocation", required: true)] + public Input NodeLocation { get; set; } = null!; - [Input("nodes")] + [Input("nodes", required: true)] private InputList? _nodes; public InputList Nodes { @@ -160,9 +167,18 @@ public InputList Regions set => _regions = value; } + [Input("resourceTags")] + private InputMap? _resourceTags; + /// - /// ID of the SSH key to add to the cluster nodes + /// A map of tags to assign to the cluster /// + public InputMap ResourceTags + { + get => _resourceTags ?? (_resourceTags = new InputMap()); + set => _resourceTags = value; + } + [Input("sshKeyId")] public Input? SshKeyId { get; set; } @@ -174,15 +190,24 @@ public ClusterArgs() public sealed class ClusterState : global::Pulumi.ResourceArgs { + [Input("backupStoreIds")] + private InputList? _backupStoreIds; + /// - /// ID of the target cloud account + /// List of backup store IDs to associate with the cluster /// + public InputList BackupStoreIds + { + get => _backupStoreIds ?? (_backupStoreIds = new InputList()); + set => _backupStoreIds = value; + } + + [Input("capacity")] + public Input? Capacity { get; set; } + [Input("cloudAccountId")] public Input? CloudAccountId { get; set; } - /// - /// Creation time of the cluster - /// [Input("createdAt")] public Input? CreatedAt { get; set; } @@ -194,9 +219,6 @@ public InputList FirewallRules set => _firewallRules = value; } - /// - /// Name of the network - /// [Input("name")] public Input? Name { get; set; } @@ -209,7 +231,7 @@ public InputList Networks } /// - /// Network location for nodes (public or private) + /// Node location of the cluster. Must be either 'public' or 'private'. /// [Input("nodeLocation")] public Input? NodeLocation { get; set; } @@ -230,15 +252,21 @@ public InputList Regions set => _regions = value; } + [Input("resourceTags")] + private InputMap? _resourceTags; + /// - /// ID of the SSH key to add to the cluster nodes + /// A map of tags to assign to the cluster /// + public InputMap ResourceTags + { + get => _resourceTags ?? (_resourceTags = new InputMap()); + set => _resourceTags = value; + } + [Input("sshKeyId")] public Input? SshKeyId { get; set; } - /// - /// Status of the cluster - /// [Input("status")] public Input? Status { get; set; } diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index c776698..1e3e43c 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -32,7 +32,7 @@ public void Set(T value) private static readonly global::Pulumi.Config __config = new global::Pulumi.Config("pgedge"); - private static readonly __Value _baseUrl = new __Value(() => __config.Get("baseUrl")); + private static readonly __Value _baseUrl = new __Value(() => __config.Get("baseUrl") ?? Utilities.GetEnv("PGEDGE_BASE_URL")); /// /// Base Url to use when connecting to the PgEdge service. /// diff --git a/sdk/dotnet/Database.cs b/sdk/dotnet/Database.cs index c8f5d0c..66e4a8a 100644 --- a/sdk/dotnet/Database.cs +++ b/sdk/dotnet/Database.cs @@ -11,70 +11,88 @@ namespace Pgedge.Pgedge { /// - /// Interface with the pgEdge service API. + /// Manages a pgEdge database. /// [PgedgeResourceType("pgedge:index/database:Database")] public partial class Database : global::Pulumi.CustomResource { /// - /// ID of the cluster to place the database on + /// Backup configuration for the database. + /// + [Output("backups")] + public Output Backups { get; private set; } = null!; + + /// + /// The ID of the cluster this database belongs to. /// [Output("clusterId")] public Output ClusterId { get; private set; } = null!; /// - /// Config version of the database + /// List of components in the database. + /// + [Output("components")] + public Output> Components { get; private set; } = null!; + + /// + /// The configuration version of the database. /// [Output("configVersion")] public Output ConfigVersion { get; private set; } = null!; /// - /// Created at of the database + /// The timestamp when the database was created. /// [Output("createdAt")] public Output CreatedAt { get; private set; } = null!; /// - /// Domain of the database + /// The domain associated with the database. /// [Output("domain")] public Output Domain { get; private set; } = null!; /// - /// Name of the database + /// Extensions configuration for the database. + /// + [Output("extensions")] + public Output Extensions { get; private set; } = null!; + + /// + /// The name of the database. /// [Output("name")] public Output Name { get; private set; } = null!; /// - /// Options for creating the database + /// Map of nodes in the database. + /// + [Output("nodes")] + public Output> Nodes { get; private set; } = null!; + + /// + /// A list of options for the database. /// [Output("options")] public Output> Options { get; private set; } = null!; /// - /// Postgres version of the database + /// The PostgreSQL version of the database. /// [Output("pgVersion")] public Output PgVersion { get; private set; } = null!; /// - /// Status of the database - /// - [Output("status")] - public Output Status { get; private set; } = null!; - - /// - /// Storage used of the database + /// List of roles in the database. /// - [Output("storageUsed")] - public Output StorageUsed { get; private set; } = null!; + [Output("roles")] + public Output> Roles { get; private set; } = null!; /// - /// Updated at of the database + /// The current status of the database. /// - [Output("updatedAt")] - public Output UpdatedAt { get; private set; } = null!; + [Output("status")] + public Output Status { get; private set; } = null!; /// @@ -99,6 +117,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pgEdge/pulumi-pgedge", }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. @@ -123,28 +142,52 @@ public static Database Get(string name, Input id, DatabaseState? state = public sealed class DatabaseArgs : global::Pulumi.ResourceArgs { /// - /// ID of the cluster to place the database on + /// Backup configuration for the database. + /// + [Input("backups")] + public Input? Backups { get; set; } + + /// + /// The ID of the cluster this database belongs to. /// [Input("clusterId", required: true)] public Input ClusterId { get; set; } = null!; /// - /// Config version of the database + /// The configuration version of the database. /// [Input("configVersion")] public Input? ConfigVersion { get; set; } /// - /// Name of the database + /// Extensions configuration for the database. + /// + [Input("extensions")] + public Input? Extensions { get; set; } + + /// + /// The name of the database. /// [Input("name")] public Input? Name { get; set; } + [Input("nodes", required: true)] + private InputMap? _nodes; + + /// + /// Map of nodes in the database. + /// + public InputMap Nodes + { + get => _nodes ?? (_nodes = new InputMap()); + set => _nodes = value; + } + [Input("options")] private InputList? _options; /// - /// Options for creating the database + /// A list of options for the database. /// public InputList Options { @@ -152,6 +195,18 @@ public InputList Options set => _options = value; } + [Input("roles")] + private InputList? _roles; + + /// + /// List of roles in the database. + /// + public InputList Roles + { + get => _roles ?? (_roles = new InputList()); + set => _roles = value; + } + public DatabaseArgs() { } @@ -161,40 +216,76 @@ public DatabaseArgs() public sealed class DatabaseState : global::Pulumi.ResourceArgs { /// - /// ID of the cluster to place the database on + /// Backup configuration for the database. + /// + [Input("backups")] + public Input? Backups { get; set; } + + /// + /// The ID of the cluster this database belongs to. /// [Input("clusterId")] public Input? ClusterId { get; set; } + [Input("components")] + private InputList? _components; + + /// + /// List of components in the database. + /// + public InputList Components + { + get => _components ?? (_components = new InputList()); + set => _components = value; + } + /// - /// Config version of the database + /// The configuration version of the database. /// [Input("configVersion")] public Input? ConfigVersion { get; set; } /// - /// Created at of the database + /// The timestamp when the database was created. /// [Input("createdAt")] public Input? CreatedAt { get; set; } /// - /// Domain of the database + /// The domain associated with the database. /// [Input("domain")] public Input? Domain { get; set; } /// - /// Name of the database + /// Extensions configuration for the database. + /// + [Input("extensions")] + public Input? Extensions { get; set; } + + /// + /// The name of the database. /// [Input("name")] public Input? Name { get; set; } + [Input("nodes")] + private InputMap? _nodes; + + /// + /// Map of nodes in the database. + /// + public InputMap Nodes + { + get => _nodes ?? (_nodes = new InputMap()); + set => _nodes = value; + } + [Input("options")] private InputList? _options; /// - /// Options for creating the database + /// A list of options for the database. /// public InputList Options { @@ -203,28 +294,28 @@ public InputList Options } /// - /// Postgres version of the database + /// The PostgreSQL version of the database. /// [Input("pgVersion")] public Input? PgVersion { get; set; } - /// - /// Status of the database - /// - [Input("status")] - public Input? Status { get; set; } + [Input("roles")] + private InputList? _roles; /// - /// Storage used of the database + /// List of roles in the database. /// - [Input("storageUsed")] - public Input? StorageUsed { get; set; } + public InputList Roles + { + get => _roles ?? (_roles = new InputList()); + set => _roles = value; + } /// - /// Updated at of the database + /// The current status of the database. /// - [Input("updatedAt")] - public Input? UpdatedAt { get; set; } + [Input("status")] + public Input? Status { get; set; } public DatabaseState() { diff --git a/sdk/dotnet/GetBackupStores.cs b/sdk/dotnet/GetBackupStores.cs new file mode 100644 index 0000000..522dd04 --- /dev/null +++ b/sdk/dotnet/GetBackupStores.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge +{ + public static class GetBackupStores + { + public static Task InvokeAsync(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("pgedge:index/getBackupStores:getBackupStores", InvokeArgs.Empty, options.WithDefaults()); + + public static Output Invoke(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("pgedge:index/getBackupStores:getBackupStores", InvokeArgs.Empty, options.WithDefaults()); + } + + + [OutputType] + public sealed class GetBackupStoresResult + { + public readonly ImmutableArray BackupStores; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + + [OutputConstructor] + private GetBackupStoresResult( + ImmutableArray backupStores, + + string id) + { + BackupStores = backupStores; + Id = id; + } + } +} diff --git a/sdk/dotnet/GetCloudAccounts.cs b/sdk/dotnet/GetCloudAccounts.cs new file mode 100644 index 0000000..b91031e --- /dev/null +++ b/sdk/dotnet/GetCloudAccounts.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge +{ + public static class GetCloudAccounts + { + /// + /// Data source for pgEdge cloud accounts. + /// + public static Task InvokeAsync(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("pgedge:index/getCloudAccounts:getCloudAccounts", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Data source for pgEdge cloud accounts. + /// + public static Output Invoke(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("pgedge:index/getCloudAccounts:getCloudAccounts", InvokeArgs.Empty, options.WithDefaults()); + } + + + [OutputType] + public sealed class GetCloudAccountsResult + { + public readonly ImmutableArray CloudAccounts; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + + [OutputConstructor] + private GetCloudAccountsResult( + ImmutableArray cloudAccounts, + + string id) + { + CloudAccounts = cloudAccounts; + Id = id; + } + } +} diff --git a/sdk/dotnet/GetClusters.cs b/sdk/dotnet/GetClusters.cs index 7305fa4..69b2f14 100644 --- a/sdk/dotnet/GetClusters.cs +++ b/sdk/dotnet/GetClusters.cs @@ -13,13 +13,13 @@ namespace Pgedge.Pgedge public static class GetClusters { /// - /// Interface with the pgEdge service API for clusters. + /// Data source for pgEdge clusters. /// public static Task InvokeAsync(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("pgedge:index/getClusters:getClusters", InvokeArgs.Empty, options.WithDefaults()); /// - /// Interface with the pgEdge service API for clusters. + /// Data source for pgEdge clusters. /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("pgedge:index/getClusters:getClusters", InvokeArgs.Empty, options.WithDefaults()); diff --git a/sdk/dotnet/GetDatabases.cs b/sdk/dotnet/GetDatabases.cs index 848d5d9..7941265 100644 --- a/sdk/dotnet/GetDatabases.cs +++ b/sdk/dotnet/GetDatabases.cs @@ -13,13 +13,13 @@ namespace Pgedge.Pgedge public static class GetDatabases { /// - /// Interface with the pgEdge service API. + /// Data source for pgEdge databases /// public static Task InvokeAsync(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("pgedge:index/getDatabases:getDatabases", InvokeArgs.Empty, options.WithDefaults()); /// - /// Interface with the pgEdge service API. + /// Data source for pgEdge databases /// public static Output Invoke(InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("pgedge:index/getDatabases:getDatabases", InvokeArgs.Empty, options.WithDefaults()); diff --git a/sdk/dotnet/GetSSHKeys.cs b/sdk/dotnet/GetSSHKeys.cs new file mode 100644 index 0000000..4721c98 --- /dev/null +++ b/sdk/dotnet/GetSSHKeys.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge +{ + public static class GetSSHKeys + { + /// + /// Data source for pgEdge SSH keys. + /// + public static Task InvokeAsync(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("pgedge:index/getSSHKeys:getSSHKeys", InvokeArgs.Empty, options.WithDefaults()); + + /// + /// Data source for pgEdge SSH keys. + /// + public static Output Invoke(InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("pgedge:index/getSSHKeys:getSSHKeys", InvokeArgs.Empty, options.WithDefaults()); + } + + + [OutputType] + public sealed class GetSSHKeysResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly ImmutableArray SshKeys; + + [OutputConstructor] + private GetSSHKeysResult( + string id, + + ImmutableArray sshKeys) + { + Id = id; + SshKeys = sshKeys; + } + } +} diff --git a/sdk/dotnet/Inputs/ClusterFirewallRuleArgs.cs b/sdk/dotnet/Inputs/ClusterFirewallRuleArgs.cs index 51827a9..563353d 100644 --- a/sdk/dotnet/Inputs/ClusterFirewallRuleArgs.cs +++ b/sdk/dotnet/Inputs/ClusterFirewallRuleArgs.cs @@ -13,18 +13,14 @@ namespace Pgedge.Pgedge.Inputs public sealed class ClusterFirewallRuleArgs : global::Pulumi.ResourceArgs { - /// - /// Port whose traffic is allowed - /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + [Input("port", required: true)] public Input Port { get; set; } = null!; [Input("sources", required: true)] private InputList? _sources; - - /// - /// CIDRs and/or IP addresses allowed - /// public InputList Sources { get => _sources ?? (_sources = new InputList()); diff --git a/sdk/dotnet/Inputs/ClusterFirewallRuleGetArgs.cs b/sdk/dotnet/Inputs/ClusterFirewallRuleGetArgs.cs index 1296697..bb41431 100644 --- a/sdk/dotnet/Inputs/ClusterFirewallRuleGetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterFirewallRuleGetArgs.cs @@ -13,18 +13,14 @@ namespace Pgedge.Pgedge.Inputs public sealed class ClusterFirewallRuleGetArgs : global::Pulumi.ResourceArgs { - /// - /// Port whose traffic is allowed - /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + [Input("port", required: true)] public Input Port { get; set; } = null!; [Input("sources", required: true)] private InputList? _sources; - - /// - /// CIDRs and/or IP addresses allowed - /// public InputList Sources { get => _sources ?? (_sources = new InputList()); diff --git a/sdk/dotnet/Inputs/ClusterNetworkArgs.cs b/sdk/dotnet/Inputs/ClusterNetworkArgs.cs index bae091e..de8d78e 100644 --- a/sdk/dotnet/Inputs/ClusterNetworkArgs.cs +++ b/sdk/dotnet/Inputs/ClusterNetworkArgs.cs @@ -14,19 +14,19 @@ namespace Pgedge.Pgedge.Inputs public sealed class ClusterNetworkArgs : global::Pulumi.ResourceArgs { /// - /// CIDR range for the network + /// CIDR of the network /// - [Input("cidr")] - public Input? Cidr { get; set; } + [Input("cidr", required: true)] + public Input Cidr { get; set; } = null!; /// - /// Is the network externally defined + /// Whether the network is external /// [Input("external")] public Input? External { get; set; } /// - /// ID of the network, if externally defined + /// External ID of the network /// [Input("externalId")] public Input? ExternalId { get; set; } @@ -39,14 +39,22 @@ public sealed class ClusterNetworkArgs : global::Pulumi.ResourceArgs [Input("privateSubnets")] private InputList? _privateSubnets; + + /// + /// List of private subnets + /// public InputList PrivateSubnets { get => _privateSubnets ?? (_privateSubnets = new InputList()); set => _privateSubnets = value; } - [Input("publicSubnets")] + [Input("publicSubnets", required: true)] private InputList? _publicSubnets; + + /// + /// List of public subnets + /// public InputList PublicSubnets { get => _publicSubnets ?? (_publicSubnets = new InputList()); diff --git a/sdk/dotnet/Inputs/ClusterNetworkGetArgs.cs b/sdk/dotnet/Inputs/ClusterNetworkGetArgs.cs index aee2968..cbcca08 100644 --- a/sdk/dotnet/Inputs/ClusterNetworkGetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterNetworkGetArgs.cs @@ -14,19 +14,19 @@ namespace Pgedge.Pgedge.Inputs public sealed class ClusterNetworkGetArgs : global::Pulumi.ResourceArgs { /// - /// CIDR range for the network + /// CIDR of the network /// - [Input("cidr")] - public Input? Cidr { get; set; } + [Input("cidr", required: true)] + public Input Cidr { get; set; } = null!; /// - /// Is the network externally defined + /// Whether the network is external /// [Input("external")] public Input? External { get; set; } /// - /// ID of the network, if externally defined + /// External ID of the network /// [Input("externalId")] public Input? ExternalId { get; set; } @@ -39,14 +39,22 @@ public sealed class ClusterNetworkGetArgs : global::Pulumi.ResourceArgs [Input("privateSubnets")] private InputList? _privateSubnets; + + /// + /// List of private subnets + /// public InputList PrivateSubnets { get => _privateSubnets ?? (_privateSubnets = new InputList()); set => _privateSubnets = value; } - [Input("publicSubnets")] + [Input("publicSubnets", required: true)] private InputList? _publicSubnets; + + /// + /// List of public subnets + /// public InputList PublicSubnets { get => _publicSubnets ?? (_publicSubnets = new InputList()); diff --git a/sdk/dotnet/Inputs/ClusterNodeArgs.cs b/sdk/dotnet/Inputs/ClusterNodeArgs.cs index 3fa1a51..317856b 100644 --- a/sdk/dotnet/Inputs/ClusterNodeArgs.cs +++ b/sdk/dotnet/Inputs/ClusterNodeArgs.cs @@ -13,53 +13,24 @@ namespace Pgedge.Pgedge.Inputs public sealed class ClusterNodeArgs : global::Pulumi.ResourceArgs { - /// - /// Cloud provider availability zone name - /// [Input("availabilityZone")] public Input? AvailabilityZone { get; set; } - /// - /// Instance type used for the node - /// - [Input("instanceType")] - public Input? InstanceType { get; set; } + [Input("instanceType", required: true)] + public Input InstanceType { get; set; } = null!; - /// - /// Node name - /// - [Input("name")] - public Input? Name { get; set; } + [Input("name", required: true)] + public Input Name { get; set; } = null!; - [Input("options")] - private InputList? _options; - public InputList Options - { - get => _options ?? (_options = new InputList()); - set => _options = value; - } - - /// - /// Cloud provider region - /// [Input("region", required: true)] public Input Region { get; set; } = null!; - /// - /// Volume IOPS of the node data volume - /// [Input("volumeIops")] public Input? VolumeIops { get; set; } - /// - /// Volume size of the node data volume - /// [Input("volumeSize")] public Input? VolumeSize { get; set; } - /// - /// Volume type of the node data volume - /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Inputs/ClusterNodeGetArgs.cs b/sdk/dotnet/Inputs/ClusterNodeGetArgs.cs index eebd3c1..09879b8 100644 --- a/sdk/dotnet/Inputs/ClusterNodeGetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterNodeGetArgs.cs @@ -13,53 +13,24 @@ namespace Pgedge.Pgedge.Inputs public sealed class ClusterNodeGetArgs : global::Pulumi.ResourceArgs { - /// - /// Cloud provider availability zone name - /// [Input("availabilityZone")] public Input? AvailabilityZone { get; set; } - /// - /// Instance type used for the node - /// - [Input("instanceType")] - public Input? InstanceType { get; set; } + [Input("instanceType", required: true)] + public Input InstanceType { get; set; } = null!; - /// - /// Node name - /// - [Input("name")] - public Input? Name { get; set; } + [Input("name", required: true)] + public Input Name { get; set; } = null!; - [Input("options")] - private InputList? _options; - public InputList Options - { - get => _options ?? (_options = new InputList()); - set => _options = value; - } - - /// - /// Cloud provider region - /// [Input("region", required: true)] public Input Region { get; set; } = null!; - /// - /// Volume IOPS of the node data volume - /// [Input("volumeIops")] public Input? VolumeIops { get; set; } - /// - /// Volume size of the node data volume - /// [Input("volumeSize")] public Input? VolumeSize { get; set; } - /// - /// Volume type of the node data volume - /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Inputs/DatabaseBackupsArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsArgs.cs new file mode 100644 index 0000000..d6d658b --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsArgs : global::Pulumi.ResourceArgs + { + [Input("configs")] + private InputList? _configs; + + /// + /// List of backup configurations. + /// + public InputList Configs + { + get => _configs ?? (_configs = new InputList()); + set => _configs = value; + } + + /// + /// The backup provider. + /// + [Input("provider")] + public Input? Provider { get; set; } + + public DatabaseBackupsArgs() + { + } + public static new DatabaseBackupsArgs Empty => new DatabaseBackupsArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseBackupsConfigArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsConfigArgs.cs new file mode 100644 index 0000000..3440772 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsConfigArgs.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Unique identifier for the backup config. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// Name of the node. + /// + [Input("nodeName")] + public Input? NodeName { get; set; } + + [Input("repositories")] + private InputList? _repositories; + + /// + /// List of backup repositories. + /// + public InputList Repositories + { + get => _repositories ?? (_repositories = new InputList()); + set => _repositories = value; + } + + [Input("schedules")] + private InputList? _schedules; + + /// + /// List of backup schedules. + /// + public InputList Schedules + { + get => _schedules ?? (_schedules = new InputList()); + set => _schedules = value; + } + + public DatabaseBackupsConfigArgs() + { + } + public static new DatabaseBackupsConfigArgs Empty => new DatabaseBackupsConfigArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseBackupsConfigGetArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsConfigGetArgs.cs new file mode 100644 index 0000000..1d516b6 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsConfigGetArgs.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Unique identifier for the backup config. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// Name of the node. + /// + [Input("nodeName")] + public Input? NodeName { get; set; } + + [Input("repositories")] + private InputList? _repositories; + + /// + /// List of backup repositories. + /// + public InputList Repositories + { + get => _repositories ?? (_repositories = new InputList()); + set => _repositories = value; + } + + [Input("schedules")] + private InputList? _schedules; + + /// + /// List of backup schedules. + /// + public InputList Schedules + { + get => _schedules ?? (_schedules = new InputList()); + set => _schedules = value; + } + + public DatabaseBackupsConfigGetArgs() + { + } + public static new DatabaseBackupsConfigGetArgs Empty => new DatabaseBackupsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseBackupsConfigRepositoryArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsConfigRepositoryArgs.cs new file mode 100644 index 0000000..d613bc2 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsConfigRepositoryArgs.cs @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsConfigRepositoryArgs : global::Pulumi.ResourceArgs + { + /// + /// Azure account. + /// + [Input("azureAccount")] + public Input? AzureAccount { get; set; } + + /// + /// Azure container. + /// + [Input("azureContainer")] + public Input? AzureContainer { get; set; } + + /// + /// Azure endpoint. + /// + [Input("azureEndpoint")] + public Input? AzureEndpoint { get; set; } + + /// + /// ID of the backup store. + /// + [Input("backupStoreId")] + public Input? BackupStoreId { get; set; } + + /// + /// Base path for the repository. + /// + [Input("basePath")] + public Input? BasePath { get; set; } + + /// + /// GCS bucket name. + /// + [Input("gcsBucket")] + public Input? GcsBucket { get; set; } + + /// + /// GCS endpoint. + /// + [Input("gcsEndpoint")] + public Input? GcsEndpoint { get; set; } + + /// + /// Unique identifier for the backup config. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// Retention period for full backups. + /// + [Input("retentionFull")] + public Input? RetentionFull { get; set; } + + /// + /// Type of retention for full backups. + /// + [Input("retentionFullType")] + public Input? RetentionFullType { get; set; } + + /// + /// S3 bucket name. + /// + [Input("s3Bucket")] + public Input? S3Bucket { get; set; } + + /// + /// S3 endpoint. + /// + [Input("s3Endpoint")] + public Input? S3Endpoint { get; set; } + + /// + /// S3 region. + /// + [Input("s3Region")] + public Input? S3Region { get; set; } + + /// + /// Type of the repository. + /// + [Input("type")] + public Input? Type { get; set; } + + public DatabaseBackupsConfigRepositoryArgs() + { + } + public static new DatabaseBackupsConfigRepositoryArgs Empty => new DatabaseBackupsConfigRepositoryArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseBackupsConfigRepositoryGetArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsConfigRepositoryGetArgs.cs new file mode 100644 index 0000000..839a575 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsConfigRepositoryGetArgs.cs @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsConfigRepositoryGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Azure account. + /// + [Input("azureAccount")] + public Input? AzureAccount { get; set; } + + /// + /// Azure container. + /// + [Input("azureContainer")] + public Input? AzureContainer { get; set; } + + /// + /// Azure endpoint. + /// + [Input("azureEndpoint")] + public Input? AzureEndpoint { get; set; } + + /// + /// ID of the backup store. + /// + [Input("backupStoreId")] + public Input? BackupStoreId { get; set; } + + /// + /// Base path for the repository. + /// + [Input("basePath")] + public Input? BasePath { get; set; } + + /// + /// GCS bucket name. + /// + [Input("gcsBucket")] + public Input? GcsBucket { get; set; } + + /// + /// GCS endpoint. + /// + [Input("gcsEndpoint")] + public Input? GcsEndpoint { get; set; } + + /// + /// Unique identifier for the backup config. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// Retention period for full backups. + /// + [Input("retentionFull")] + public Input? RetentionFull { get; set; } + + /// + /// Type of retention for full backups. + /// + [Input("retentionFullType")] + public Input? RetentionFullType { get; set; } + + /// + /// S3 bucket name. + /// + [Input("s3Bucket")] + public Input? S3Bucket { get; set; } + + /// + /// S3 endpoint. + /// + [Input("s3Endpoint")] + public Input? S3Endpoint { get; set; } + + /// + /// S3 region. + /// + [Input("s3Region")] + public Input? S3Region { get; set; } + + /// + /// Type of the repository. + /// + [Input("type")] + public Input? Type { get; set; } + + public DatabaseBackupsConfigRepositoryGetArgs() + { + } + public static new DatabaseBackupsConfigRepositoryGetArgs Empty => new DatabaseBackupsConfigRepositoryGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseBackupsConfigScheduleArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsConfigScheduleArgs.cs new file mode 100644 index 0000000..a3015e0 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsConfigScheduleArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsConfigScheduleArgs : global::Pulumi.ResourceArgs + { + /// + /// Cron expression for the schedule. + /// + [Input("cronExpression")] + public Input? CronExpression { get; set; } + + /// + /// Unique identifier for the backup config. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// Type of the repository. + /// + [Input("type")] + public Input? Type { get; set; } + + public DatabaseBackupsConfigScheduleArgs() + { + } + public static new DatabaseBackupsConfigScheduleArgs Empty => new DatabaseBackupsConfigScheduleArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseBackupsConfigScheduleGetArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsConfigScheduleGetArgs.cs new file mode 100644 index 0000000..e15e97b --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsConfigScheduleGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsConfigScheduleGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Cron expression for the schedule. + /// + [Input("cronExpression")] + public Input? CronExpression { get; set; } + + /// + /// Unique identifier for the backup config. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// Type of the repository. + /// + [Input("type")] + public Input? Type { get; set; } + + public DatabaseBackupsConfigScheduleGetArgs() + { + } + public static new DatabaseBackupsConfigScheduleGetArgs Empty => new DatabaseBackupsConfigScheduleGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseBackupsGetArgs.cs b/sdk/dotnet/Inputs/DatabaseBackupsGetArgs.cs new file mode 100644 index 0000000..b2391ab --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseBackupsGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseBackupsGetArgs : global::Pulumi.ResourceArgs + { + [Input("configs")] + private InputList? _configs; + + /// + /// List of backup configurations. + /// + public InputList Configs + { + get => _configs ?? (_configs = new InputList()); + set => _configs = value; + } + + /// + /// The backup provider. + /// + [Input("provider")] + public Input? Provider { get; set; } + + public DatabaseBackupsGetArgs() + { + } + public static new DatabaseBackupsGetArgs Empty => new DatabaseBackupsGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseComponentArgs.cs b/sdk/dotnet/Inputs/DatabaseComponentArgs.cs new file mode 100644 index 0000000..cddd4a6 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseComponentArgs.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseComponentArgs : global::Pulumi.ResourceArgs + { + [Input("id")] + public Input? Id { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("releaseDate")] + public Input? ReleaseDate { get; set; } + + [Input("status")] + public Input? Status { get; set; } + + [Input("version")] + public Input? Version { get; set; } + + public DatabaseComponentArgs() + { + } + public static new DatabaseComponentArgs Empty => new DatabaseComponentArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseComponentGetArgs.cs b/sdk/dotnet/Inputs/DatabaseComponentGetArgs.cs new file mode 100644 index 0000000..7c7c71e --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseComponentGetArgs.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseComponentGetArgs : global::Pulumi.ResourceArgs + { + [Input("id")] + public Input? Id { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("releaseDate")] + public Input? ReleaseDate { get; set; } + + [Input("status")] + public Input? Status { get; set; } + + [Input("version")] + public Input? Version { get; set; } + + public DatabaseComponentGetArgs() + { + } + public static new DatabaseComponentGetArgs Empty => new DatabaseComponentGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseExtensionsArgs.cs b/sdk/dotnet/Inputs/DatabaseExtensionsArgs.cs new file mode 100644 index 0000000..9fe9a7f --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseExtensionsArgs.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseExtensionsArgs : global::Pulumi.ResourceArgs + { + [Input("autoManage")] + public Input? AutoManage { get; set; } + + [Input("availables")] + private InputList? _availables; + public InputList Availables + { + get => _availables ?? (_availables = new InputList()); + set => _availables = value; + } + + [Input("requesteds")] + private InputList? _requesteds; + public InputList Requesteds + { + get => _requesteds ?? (_requesteds = new InputList()); + set => _requesteds = value; + } + + public DatabaseExtensionsArgs() + { + } + public static new DatabaseExtensionsArgs Empty => new DatabaseExtensionsArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseExtensionsGetArgs.cs b/sdk/dotnet/Inputs/DatabaseExtensionsGetArgs.cs new file mode 100644 index 0000000..cb99341 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseExtensionsGetArgs.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseExtensionsGetArgs : global::Pulumi.ResourceArgs + { + [Input("autoManage")] + public Input? AutoManage { get; set; } + + [Input("availables")] + private InputList? _availables; + public InputList Availables + { + get => _availables ?? (_availables = new InputList()); + set => _availables = value; + } + + [Input("requesteds")] + private InputList? _requesteds; + public InputList Requesteds + { + get => _requesteds ?? (_requesteds = new InputList()); + set => _requesteds = value; + } + + public DatabaseExtensionsGetArgs() + { + } + public static new DatabaseExtensionsGetArgs Empty => new DatabaseExtensionsGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesArgs.cs new file mode 100644 index 0000000..d0a5bbb --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesArgs.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesArgs : global::Pulumi.ResourceArgs + { + [Input("connection")] + public Input? Connection { get; set; } + + [Input("extensions")] + public Input? Extensions { get; set; } + + [Input("location")] + public Input? Location { get; set; } + + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("region")] + public Input? Region { get; set; } + + public DatabaseNodesArgs() + { + } + public static new DatabaseNodesArgs Empty => new DatabaseNodesArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesConnectionArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesConnectionArgs.cs new file mode 100644 index 0000000..e0352a5 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesConnectionArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesConnectionArgs : global::Pulumi.ResourceArgs + { + [Input("database")] + public Input? Database { get; set; } + + [Input("externalIpAddress")] + public Input? ExternalIpAddress { get; set; } + + [Input("host")] + public Input? Host { get; set; } + + [Input("internalHost")] + public Input? InternalHost { get; set; } + + [Input("internalIpAddress")] + public Input? InternalIpAddress { get; set; } + + [Input("password")] + public Input? Password { get; set; } + + [Input("port")] + public Input? Port { get; set; } + + [Input("username")] + public Input? Username { get; set; } + + public DatabaseNodesConnectionArgs() + { + } + public static new DatabaseNodesConnectionArgs Empty => new DatabaseNodesConnectionArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesConnectionGetArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesConnectionGetArgs.cs new file mode 100644 index 0000000..bc9e0cb --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesConnectionGetArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesConnectionGetArgs : global::Pulumi.ResourceArgs + { + [Input("database")] + public Input? Database { get; set; } + + [Input("externalIpAddress")] + public Input? ExternalIpAddress { get; set; } + + [Input("host")] + public Input? Host { get; set; } + + [Input("internalHost")] + public Input? InternalHost { get; set; } + + [Input("internalIpAddress")] + public Input? InternalIpAddress { get; set; } + + [Input("password")] + public Input? Password { get; set; } + + [Input("port")] + public Input? Port { get; set; } + + [Input("username")] + public Input? Username { get; set; } + + public DatabaseNodesConnectionGetArgs() + { + } + public static new DatabaseNodesConnectionGetArgs Empty => new DatabaseNodesConnectionGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesExtensionsArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesExtensionsArgs.cs new file mode 100644 index 0000000..4bca93e --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesExtensionsArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesExtensionsArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputMap? _errors; + public InputMap Errors + { + get => _errors ?? (_errors = new InputMap()); + set => _errors = value; + } + + [Input("installeds")] + private InputList? _installeds; + public InputList Installeds + { + get => _installeds ?? (_installeds = new InputList()); + set => _installeds = value; + } + + public DatabaseNodesExtensionsArgs() + { + } + public static new DatabaseNodesExtensionsArgs Empty => new DatabaseNodesExtensionsArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesExtensionsGetArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesExtensionsGetArgs.cs new file mode 100644 index 0000000..043b290 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesExtensionsGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesExtensionsGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputMap? _errors; + public InputMap Errors + { + get => _errors ?? (_errors = new InputMap()); + set => _errors = value; + } + + [Input("installeds")] + private InputList? _installeds; + public InputList Installeds + { + get => _installeds ?? (_installeds = new InputList()); + set => _installeds = value; + } + + public DatabaseNodesExtensionsGetArgs() + { + } + public static new DatabaseNodesExtensionsGetArgs Empty => new DatabaseNodesExtensionsGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesGetArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesGetArgs.cs new file mode 100644 index 0000000..7dbc2a7 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesGetArgs.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesGetArgs : global::Pulumi.ResourceArgs + { + [Input("connection")] + public Input? Connection { get; set; } + + [Input("extensions")] + public Input? Extensions { get; set; } + + [Input("location")] + public Input? Location { get; set; } + + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("region")] + public Input? Region { get; set; } + + public DatabaseNodesGetArgs() + { + } + public static new DatabaseNodesGetArgs Empty => new DatabaseNodesGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesLocationArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesLocationArgs.cs new file mode 100644 index 0000000..b37beaf --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesLocationArgs.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesLocationArgs : global::Pulumi.ResourceArgs + { + [Input("city")] + public Input? City { get; set; } + + [Input("code")] + public Input? Code { get; set; } + + [Input("country")] + public Input? Country { get; set; } + + [Input("latitude")] + public Input? Latitude { get; set; } + + [Input("longitude")] + public Input? Longitude { get; set; } + + [Input("metroCode")] + public Input? MetroCode { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("postalCode")] + public Input? PostalCode { get; set; } + + [Input("region")] + public Input? Region { get; set; } + + [Input("regionCode")] + public Input? RegionCode { get; set; } + + [Input("timezone")] + public Input? Timezone { get; set; } + + public DatabaseNodesLocationArgs() + { + } + public static new DatabaseNodesLocationArgs Empty => new DatabaseNodesLocationArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesLocationGetArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesLocationGetArgs.cs new file mode 100644 index 0000000..4ee7cb1 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesLocationGetArgs.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesLocationGetArgs : global::Pulumi.ResourceArgs + { + [Input("city")] + public Input? City { get; set; } + + [Input("code")] + public Input? Code { get; set; } + + [Input("country")] + public Input? Country { get; set; } + + [Input("latitude")] + public Input? Latitude { get; set; } + + [Input("longitude")] + public Input? Longitude { get; set; } + + [Input("metroCode")] + public Input? MetroCode { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("postalCode")] + public Input? PostalCode { get; set; } + + [Input("region")] + public Input? Region { get; set; } + + [Input("regionCode")] + public Input? RegionCode { get; set; } + + [Input("timezone")] + public Input? Timezone { get; set; } + + public DatabaseNodesLocationGetArgs() + { + } + public static new DatabaseNodesLocationGetArgs Empty => new DatabaseNodesLocationGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesRegionArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesRegionArgs.cs new file mode 100644 index 0000000..0bdddec --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesRegionArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesRegionArgs : global::Pulumi.ResourceArgs + { + [Input("active")] + public Input? Active { get; set; } + + [Input("availabilityZones")] + private InputList? _availabilityZones; + public InputList AvailabilityZones + { + get => _availabilityZones ?? (_availabilityZones = new InputList()); + set => _availabilityZones = value; + } + + [Input("cloud")] + public Input? Cloud { get; set; } + + [Input("code")] + public Input? Code { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("parent")] + public Input? Parent { get; set; } + + public DatabaseNodesRegionArgs() + { + } + public static new DatabaseNodesRegionArgs Empty => new DatabaseNodesRegionArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseNodesRegionGetArgs.cs b/sdk/dotnet/Inputs/DatabaseNodesRegionGetArgs.cs new file mode 100644 index 0000000..7c38d8d --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseNodesRegionGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseNodesRegionGetArgs : global::Pulumi.ResourceArgs + { + [Input("active")] + public Input? Active { get; set; } + + [Input("availabilityZones")] + private InputList? _availabilityZones; + public InputList AvailabilityZones + { + get => _availabilityZones ?? (_availabilityZones = new InputList()); + set => _availabilityZones = value; + } + + [Input("cloud")] + public Input? Cloud { get; set; } + + [Input("code")] + public Input? Code { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("parent")] + public Input? Parent { get; set; } + + public DatabaseNodesRegionGetArgs() + { + } + public static new DatabaseNodesRegionGetArgs Empty => new DatabaseNodesRegionGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseRoleArgs.cs b/sdk/dotnet/Inputs/DatabaseRoleArgs.cs new file mode 100644 index 0000000..e612a79 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseRoleArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseRoleArgs : global::Pulumi.ResourceArgs + { + [Input("bypassRls")] + public Input? BypassRls { get; set; } + + [Input("connectionLimit")] + public Input? ConnectionLimit { get; set; } + + [Input("createDb")] + public Input? CreateDb { get; set; } + + [Input("createRole")] + public Input? CreateRole { get; set; } + + [Input("inherit")] + public Input? Inherit { get; set; } + + [Input("login")] + public Input? Login { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("replication")] + public Input? Replication { get; set; } + + [Input("superuser")] + public Input? Superuser { get; set; } + + public DatabaseRoleArgs() + { + } + public static new DatabaseRoleArgs Empty => new DatabaseRoleArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DatabaseRoleGetArgs.cs b/sdk/dotnet/Inputs/DatabaseRoleGetArgs.cs new file mode 100644 index 0000000..f8ac6f2 --- /dev/null +++ b/sdk/dotnet/Inputs/DatabaseRoleGetArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Inputs +{ + + public sealed class DatabaseRoleGetArgs : global::Pulumi.ResourceArgs + { + [Input("bypassRls")] + public Input? BypassRls { get; set; } + + [Input("connectionLimit")] + public Input? ConnectionLimit { get; set; } + + [Input("createDb")] + public Input? CreateDb { get; set; } + + [Input("createRole")] + public Input? CreateRole { get; set; } + + [Input("inherit")] + public Input? Inherit { get; set; } + + [Input("login")] + public Input? Login { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("replication")] + public Input? Replication { get; set; } + + [Input("superuser")] + public Input? Superuser { get; set; } + + public DatabaseRoleGetArgs() + { + } + public static new DatabaseRoleGetArgs Empty => new DatabaseRoleGetArgs(); + } +} diff --git a/sdk/dotnet/Outputs/ClusterFirewallRule.cs b/sdk/dotnet/Outputs/ClusterFirewallRule.cs index 3635c80..3d2db51 100644 --- a/sdk/dotnet/Outputs/ClusterFirewallRule.cs +++ b/sdk/dotnet/Outputs/ClusterFirewallRule.cs @@ -14,21 +14,19 @@ namespace Pgedge.Pgedge.Outputs [OutputType] public sealed class ClusterFirewallRule { - /// - /// Port whose traffic is allowed - /// + public readonly string Name; public readonly int Port; - /// - /// CIDRs and/or IP addresses allowed - /// public readonly ImmutableArray Sources; [OutputConstructor] private ClusterFirewallRule( + string name, + int port, ImmutableArray sources) { + Name = name; Port = port; Sources = sources; } diff --git a/sdk/dotnet/Outputs/ClusterNetwork.cs b/sdk/dotnet/Outputs/ClusterNetwork.cs index 7b82b22..78af0b8 100644 --- a/sdk/dotnet/Outputs/ClusterNetwork.cs +++ b/sdk/dotnet/Outputs/ClusterNetwork.cs @@ -15,22 +15,28 @@ namespace Pgedge.Pgedge.Outputs public sealed class ClusterNetwork { /// - /// CIDR range for the network + /// CIDR of the network /// - public readonly string? Cidr; + public readonly string Cidr; /// - /// Is the network externally defined + /// Whether the network is external /// public readonly bool? External; /// - /// ID of the network, if externally defined + /// External ID of the network /// public readonly string? ExternalId; /// /// Name of the network /// public readonly string? Name; + /// + /// List of private subnets + /// public readonly ImmutableArray PrivateSubnets; + /// + /// List of public subnets + /// public readonly ImmutableArray PublicSubnets; /// /// Region of the network @@ -39,7 +45,7 @@ public sealed class ClusterNetwork [OutputConstructor] private ClusterNetwork( - string? cidr, + string cidr, bool? external, diff --git a/sdk/dotnet/Outputs/ClusterNode.cs b/sdk/dotnet/Outputs/ClusterNode.cs index d5a981f..dbfe904 100644 --- a/sdk/dotnet/Outputs/ClusterNode.cs +++ b/sdk/dotnet/Outputs/ClusterNode.cs @@ -14,45 +14,21 @@ namespace Pgedge.Pgedge.Outputs [OutputType] public sealed class ClusterNode { - /// - /// Cloud provider availability zone name - /// public readonly string? AvailabilityZone; - /// - /// Instance type used for the node - /// - public readonly string? InstanceType; - /// - /// Node name - /// - public readonly string? Name; - public readonly ImmutableArray Options; - /// - /// Cloud provider region - /// + public readonly string InstanceType; + public readonly string Name; public readonly string Region; - /// - /// Volume IOPS of the node data volume - /// public readonly int? VolumeIops; - /// - /// Volume size of the node data volume - /// public readonly int? VolumeSize; - /// - /// Volume type of the node data volume - /// public readonly string? VolumeType; [OutputConstructor] private ClusterNode( string? availabilityZone, - string? instanceType, + string instanceType, - string? name, - - ImmutableArray options, + string name, string region, @@ -65,7 +41,6 @@ private ClusterNode( AvailabilityZone = availabilityZone; InstanceType = instanceType; Name = name; - Options = options; Region = region; VolumeIops = volumeIops; VolumeSize = volumeSize; diff --git a/sdk/dotnet/Outputs/DatabaseBackups.cs b/sdk/dotnet/Outputs/DatabaseBackups.cs new file mode 100644 index 0000000..51839f1 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseBackups.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseBackups + { + /// + /// List of backup configurations. + /// + public readonly ImmutableArray Configs; + /// + /// The backup provider. + /// + public readonly string? Provider; + + [OutputConstructor] + private DatabaseBackups( + ImmutableArray configs, + + string? provider) + { + Configs = configs; + Provider = provider; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseBackupsConfig.cs b/sdk/dotnet/Outputs/DatabaseBackupsConfig.cs new file mode 100644 index 0000000..dc54d61 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseBackupsConfig.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseBackupsConfig + { + /// + /// Unique identifier for the backup config. + /// + public readonly string? Id; + /// + /// Name of the node. + /// + public readonly string? NodeName; + /// + /// List of backup repositories. + /// + public readonly ImmutableArray Repositories; + /// + /// List of backup schedules. + /// + public readonly ImmutableArray Schedules; + + [OutputConstructor] + private DatabaseBackupsConfig( + string? id, + + string? nodeName, + + ImmutableArray repositories, + + ImmutableArray schedules) + { + Id = id; + NodeName = nodeName; + Repositories = repositories; + Schedules = schedules; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseBackupsConfigRepository.cs b/sdk/dotnet/Outputs/DatabaseBackupsConfigRepository.cs new file mode 100644 index 0000000..6e71823 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseBackupsConfigRepository.cs @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseBackupsConfigRepository + { + /// + /// Azure account. + /// + public readonly string? AzureAccount; + /// + /// Azure container. + /// + public readonly string? AzureContainer; + /// + /// Azure endpoint. + /// + public readonly string? AzureEndpoint; + /// + /// ID of the backup store. + /// + public readonly string? BackupStoreId; + /// + /// Base path for the repository. + /// + public readonly string? BasePath; + /// + /// GCS bucket name. + /// + public readonly string? GcsBucket; + /// + /// GCS endpoint. + /// + public readonly string? GcsEndpoint; + /// + /// Unique identifier for the backup config. + /// + public readonly string? Id; + /// + /// Retention period for full backups. + /// + public readonly int? RetentionFull; + /// + /// Type of retention for full backups. + /// + public readonly string? RetentionFullType; + /// + /// S3 bucket name. + /// + public readonly string? S3Bucket; + /// + /// S3 endpoint. + /// + public readonly string? S3Endpoint; + /// + /// S3 region. + /// + public readonly string? S3Region; + /// + /// Type of the repository. + /// + public readonly string? Type; + + [OutputConstructor] + private DatabaseBackupsConfigRepository( + string? azureAccount, + + string? azureContainer, + + string? azureEndpoint, + + string? backupStoreId, + + string? basePath, + + string? gcsBucket, + + string? gcsEndpoint, + + string? id, + + int? retentionFull, + + string? retentionFullType, + + string? s3Bucket, + + string? s3Endpoint, + + string? s3Region, + + string? type) + { + AzureAccount = azureAccount; + AzureContainer = azureContainer; + AzureEndpoint = azureEndpoint; + BackupStoreId = backupStoreId; + BasePath = basePath; + GcsBucket = gcsBucket; + GcsEndpoint = gcsEndpoint; + Id = id; + RetentionFull = retentionFull; + RetentionFullType = retentionFullType; + S3Bucket = s3Bucket; + S3Endpoint = s3Endpoint; + S3Region = s3Region; + Type = type; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseBackupsConfigSchedule.cs b/sdk/dotnet/Outputs/DatabaseBackupsConfigSchedule.cs new file mode 100644 index 0000000..3618ef5 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseBackupsConfigSchedule.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseBackupsConfigSchedule + { + /// + /// Cron expression for the schedule. + /// + public readonly string? CronExpression; + /// + /// Unique identifier for the backup config. + /// + public readonly string? Id; + /// + /// Type of the repository. + /// + public readonly string? Type; + + [OutputConstructor] + private DatabaseBackupsConfigSchedule( + string? cronExpression, + + string? id, + + string? type) + { + CronExpression = cronExpression; + Id = id; + Type = type; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseComponent.cs b/sdk/dotnet/Outputs/DatabaseComponent.cs new file mode 100644 index 0000000..3eb8f72 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseComponent.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseComponent + { + public readonly string? Id; + public readonly string? Name; + public readonly string? ReleaseDate; + public readonly string? Status; + public readonly string? Version; + + [OutputConstructor] + private DatabaseComponent( + string? id, + + string? name, + + string? releaseDate, + + string? status, + + string? version) + { + Id = id; + Name = name; + ReleaseDate = releaseDate; + Status = status; + Version = version; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseExtensions.cs b/sdk/dotnet/Outputs/DatabaseExtensions.cs new file mode 100644 index 0000000..e231f57 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseExtensions.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseExtensions + { + public readonly bool? AutoManage; + public readonly ImmutableArray Availables; + public readonly ImmutableArray Requesteds; + + [OutputConstructor] + private DatabaseExtensions( + bool? autoManage, + + ImmutableArray availables, + + ImmutableArray requesteds) + { + AutoManage = autoManage; + Availables = availables; + Requesteds = requesteds; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseNodes.cs b/sdk/dotnet/Outputs/DatabaseNodes.cs new file mode 100644 index 0000000..61851fc --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseNodes.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseNodes + { + public readonly Outputs.DatabaseNodesConnection? Connection; + public readonly Outputs.DatabaseNodesExtensions? Extensions; + public readonly Outputs.DatabaseNodesLocation? Location; + public readonly string Name; + public readonly Outputs.DatabaseNodesRegion? Region; + + [OutputConstructor] + private DatabaseNodes( + Outputs.DatabaseNodesConnection? connection, + + Outputs.DatabaseNodesExtensions? extensions, + + Outputs.DatabaseNodesLocation? location, + + string name, + + Outputs.DatabaseNodesRegion? region) + { + Connection = connection; + Extensions = extensions; + Location = location; + Name = name; + Region = region; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseNodesConnection.cs b/sdk/dotnet/Outputs/DatabaseNodesConnection.cs new file mode 100644 index 0000000..87da531 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseNodesConnection.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseNodesConnection + { + public readonly string? Database; + public readonly string? ExternalIpAddress; + public readonly string? Host; + public readonly string? InternalHost; + public readonly string? InternalIpAddress; + public readonly string? Password; + public readonly int? Port; + public readonly string? Username; + + [OutputConstructor] + private DatabaseNodesConnection( + string? database, + + string? externalIpAddress, + + string? host, + + string? internalHost, + + string? internalIpAddress, + + string? password, + + int? port, + + string? username) + { + Database = database; + ExternalIpAddress = externalIpAddress; + Host = host; + InternalHost = internalHost; + InternalIpAddress = internalIpAddress; + Password = password; + Port = port; + Username = username; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeExtensionsResult.cs b/sdk/dotnet/Outputs/DatabaseNodesExtensions.cs similarity index 62% rename from sdk/dotnet/Outputs/GetDatabasesDatabaseNodeExtensionsResult.cs rename to sdk/dotnet/Outputs/DatabaseNodesExtensions.cs index 9fbf047..dee2405 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeExtensionsResult.cs +++ b/sdk/dotnet/Outputs/DatabaseNodesExtensions.cs @@ -12,17 +12,14 @@ namespace Pgedge.Pgedge.Outputs { [OutputType] - public sealed class GetDatabasesDatabaseNodeExtensionsResult + public sealed class DatabaseNodesExtensions { - public readonly Outputs.GetDatabasesDatabaseNodeExtensionsErrorsResult Errors; - /// - /// List of installed extensions - /// + public readonly ImmutableDictionary? Errors; public readonly ImmutableArray Installeds; [OutputConstructor] - private GetDatabasesDatabaseNodeExtensionsResult( - Outputs.GetDatabasesDatabaseNodeExtensionsErrorsResult errors, + private DatabaseNodesExtensions( + ImmutableDictionary? errors, ImmutableArray installeds) { diff --git a/sdk/dotnet/Outputs/DatabaseNodesLocation.cs b/sdk/dotnet/Outputs/DatabaseNodesLocation.cs new file mode 100644 index 0000000..8113b0c --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseNodesLocation.cs @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseNodesLocation + { + public readonly string? City; + public readonly string? Code; + public readonly string? Country; + public readonly double? Latitude; + public readonly double? Longitude; + public readonly string? MetroCode; + public readonly string? Name; + public readonly string? PostalCode; + public readonly string? Region; + public readonly string? RegionCode; + public readonly string? Timezone; + + [OutputConstructor] + private DatabaseNodesLocation( + string? city, + + string? code, + + string? country, + + double? latitude, + + double? longitude, + + string? metroCode, + + string? name, + + string? postalCode, + + string? region, + + string? regionCode, + + string? timezone) + { + City = city; + Code = code; + Country = country; + Latitude = latitude; + Longitude = longitude; + MetroCode = metroCode; + Name = name; + PostalCode = postalCode; + Region = region; + RegionCode = regionCode; + Timezone = timezone; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseNodesRegion.cs b/sdk/dotnet/Outputs/DatabaseNodesRegion.cs new file mode 100644 index 0000000..6bc3884 --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseNodesRegion.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseNodesRegion + { + public readonly bool? Active; + public readonly ImmutableArray AvailabilityZones; + public readonly string? Cloud; + public readonly string? Code; + public readonly string? Name; + public readonly string? Parent; + + [OutputConstructor] + private DatabaseNodesRegion( + bool? active, + + ImmutableArray availabilityZones, + + string? cloud, + + string? code, + + string? name, + + string? parent) + { + Active = active; + AvailabilityZones = availabilityZones; + Cloud = cloud; + Code = code; + Name = name; + Parent = parent; + } + } +} diff --git a/sdk/dotnet/Outputs/DatabaseRole.cs b/sdk/dotnet/Outputs/DatabaseRole.cs new file mode 100644 index 0000000..c8ae5ed --- /dev/null +++ b/sdk/dotnet/Outputs/DatabaseRole.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class DatabaseRole + { + public readonly bool? BypassRls; + public readonly int? ConnectionLimit; + public readonly bool? CreateDb; + public readonly bool? CreateRole; + public readonly bool? Inherit; + public readonly bool? Login; + public readonly string? Name; + public readonly bool? Replication; + public readonly bool? Superuser; + + [OutputConstructor] + private DatabaseRole( + bool? bypassRls, + + int? connectionLimit, + + bool? createDb, + + bool? createRole, + + bool? inherit, + + bool? login, + + string? name, + + bool? replication, + + bool? superuser) + { + BypassRls = bypassRls; + ConnectionLimit = connectionLimit; + CreateDb = createDb; + CreateRole = createRole; + Inherit = inherit; + Login = login; + Name = name; + Replication = replication; + Superuser = superuser; + } + } +} diff --git a/sdk/dotnet/Outputs/GetBackupStoresBackupStoreResult.cs b/sdk/dotnet/Outputs/GetBackupStoresBackupStoreResult.cs new file mode 100644 index 0000000..e62c739 --- /dev/null +++ b/sdk/dotnet/Outputs/GetBackupStoresBackupStoreResult.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetBackupStoresBackupStoreResult + { + public readonly string CloudAccountId; + public readonly string CloudAccountType; + public readonly ImmutableArray ClusterIds; + public readonly string CreatedAt; + public readonly string Id; + public readonly string Name; + public readonly ImmutableDictionary Properties; + public readonly string Status; + public readonly string UpdatedAt; + + [OutputConstructor] + private GetBackupStoresBackupStoreResult( + string cloudAccountId, + + string cloudAccountType, + + ImmutableArray clusterIds, + + string createdAt, + + string id, + + string name, + + ImmutableDictionary properties, + + string status, + + string updatedAt) + { + CloudAccountId = cloudAccountId; + CloudAccountType = cloudAccountType; + ClusterIds = clusterIds; + CreatedAt = createdAt; + Id = id; + Name = name; + Properties = properties; + Status = status; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/Outputs/GetCloudAccountsCloudAccountResult.cs b/sdk/dotnet/Outputs/GetCloudAccountsCloudAccountResult.cs new file mode 100644 index 0000000..76e082f --- /dev/null +++ b/sdk/dotnet/Outputs/GetCloudAccountsCloudAccountResult.cs @@ -0,0 +1,71 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetCloudAccountsCloudAccountResult + { + /// + /// Creation time of the cloud account + /// + public readonly string CreatedAt; + /// + /// Description of the cloud account + /// + public readonly string Description; + /// + /// ID of the cloud account + /// + public readonly string Id; + /// + /// Name of the cloud account + /// + public readonly string Name; + /// + /// Additional properties of the cloud account + /// + public readonly ImmutableDictionary Properties; + /// + /// Type of the cloud account (e.g., AWS, Azure, GCP) + /// + public readonly string Type; + /// + /// Last update time of the cloud account + /// + public readonly string UpdatedAt; + + [OutputConstructor] + private GetCloudAccountsCloudAccountResult( + string createdAt, + + string description, + + string id, + + string name, + + ImmutableDictionary properties, + + string type, + + string updatedAt) + { + CreatedAt = createdAt; + Description = description; + Id = id; + Name = name; + Properties = properties; + Type = type; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/Outputs/GetClustersClusterFirewallRuleResult.cs b/sdk/dotnet/Outputs/GetClustersClusterFirewallRuleResult.cs index f65d570..e1fb0e2 100644 --- a/sdk/dotnet/Outputs/GetClustersClusterFirewallRuleResult.cs +++ b/sdk/dotnet/Outputs/GetClustersClusterFirewallRuleResult.cs @@ -15,7 +15,7 @@ namespace Pgedge.Pgedge.Outputs public sealed class GetClustersClusterFirewallRuleResult { /// - /// IP address of the node + /// Name of the firewall rule /// public readonly string Name; /// diff --git a/sdk/dotnet/Outputs/GetClustersClusterNetworkResult.cs b/sdk/dotnet/Outputs/GetClustersClusterNetworkResult.cs index 50dfc09..9882c1c 100644 --- a/sdk/dotnet/Outputs/GetClustersClusterNetworkResult.cs +++ b/sdk/dotnet/Outputs/GetClustersClusterNetworkResult.cs @@ -15,7 +15,7 @@ namespace Pgedge.Pgedge.Outputs public sealed class GetClustersClusterNetworkResult { /// - /// CIDR of the AWS node group + /// CIDR of the network /// public readonly string Cidr; /// @@ -27,7 +27,7 @@ public sealed class GetClustersClusterNetworkResult /// public readonly string ExternalId; /// - /// IP address of the node + /// Name of the firewall rule /// public readonly string Name; public readonly ImmutableArray PrivateSubnets; diff --git a/sdk/dotnet/Outputs/GetClustersClusterNodeResult.cs b/sdk/dotnet/Outputs/GetClustersClusterNodeResult.cs index bc98316..8d88dca 100644 --- a/sdk/dotnet/Outputs/GetClustersClusterNodeResult.cs +++ b/sdk/dotnet/Outputs/GetClustersClusterNodeResult.cs @@ -23,7 +23,7 @@ public sealed class GetClustersClusterNodeResult /// public readonly string InstanceType; /// - /// IP address of the node + /// Name of the firewall rule /// public readonly string Name; public readonly ImmutableArray Options; diff --git a/sdk/dotnet/Outputs/GetClustersClusterResult.cs b/sdk/dotnet/Outputs/GetClustersClusterResult.cs index 4f267f2..205fd70 100644 --- a/sdk/dotnet/Outputs/GetClustersClusterResult.cs +++ b/sdk/dotnet/Outputs/GetClustersClusterResult.cs @@ -14,7 +14,14 @@ namespace Pgedge.Pgedge.Outputs [OutputType] public sealed class GetClustersClusterResult { - public readonly Outputs.GetClustersClusterCloudAccountResult CloudAccount; + /// + /// Backup store IDs of the cluster + /// + public readonly ImmutableArray BackupStoreIds; + /// + /// Capacity of the cluster + /// + public readonly int Capacity; /// /// Cloud account ID of the cluster /// @@ -34,12 +41,16 @@ public sealed class GetClustersClusterResult public readonly string Name; public readonly ImmutableArray Networks; /// - /// Node location of the cluster + /// Node location of the cluster. Must be either 'public' or 'private'. /// public readonly string NodeLocation; public readonly ImmutableArray Nodes; public readonly ImmutableArray Regions; /// + /// Resource tags of the cluster + /// + public readonly ImmutableDictionary ResourceTags; + /// /// SSH key ID of the cluster /// public readonly string SshKeyId; @@ -50,7 +61,9 @@ public sealed class GetClustersClusterResult [OutputConstructor] private GetClustersClusterResult( - Outputs.GetClustersClusterCloudAccountResult cloudAccount, + ImmutableArray backupStoreIds, + + int capacity, string cloudAccountId, @@ -70,11 +83,14 @@ private GetClustersClusterResult( ImmutableArray regions, + ImmutableDictionary resourceTags, + string sshKeyId, string status) { - CloudAccount = cloudAccount; + BackupStoreIds = backupStoreIds; + Capacity = capacity; CloudAccountId = cloudAccountId; CreatedAt = createdAt; FirewallRules = firewallRules; @@ -84,6 +100,7 @@ private GetClustersClusterResult( NodeLocation = nodeLocation; Nodes = nodes; Regions = regions; + ResourceTags = resourceTags; SshKeyId = sshKeyId; Status = status; } diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigRepositoryResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigRepositoryResult.cs new file mode 100644 index 0000000..a4b7792 --- /dev/null +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigRepositoryResult.cs @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetDatabasesDatabaseBackupsConfigRepositoryResult + { + public readonly string AzureAccount; + public readonly string AzureContainer; + public readonly string AzureEndpoint; + public readonly string BackupStoreId; + public readonly string BasePath; + public readonly string GcsBucket; + public readonly string GcsEndpoint; + /// + /// Backup configuration ID + /// + public readonly string Id; + public readonly int RetentionFull; + public readonly string RetentionFullType; + public readonly string S3Bucket; + public readonly string S3Endpoint; + public readonly string S3Region; + public readonly string Type; + + [OutputConstructor] + private GetDatabasesDatabaseBackupsConfigRepositoryResult( + string azureAccount, + + string azureContainer, + + string azureEndpoint, + + string backupStoreId, + + string basePath, + + string gcsBucket, + + string gcsEndpoint, + + string id, + + int retentionFull, + + string retentionFullType, + + string s3Bucket, + + string s3Endpoint, + + string s3Region, + + string type) + { + AzureAccount = azureAccount; + AzureContainer = azureContainer; + AzureEndpoint = azureEndpoint; + BackupStoreId = backupStoreId; + BasePath = basePath; + GcsBucket = gcsBucket; + GcsEndpoint = gcsEndpoint; + Id = id; + RetentionFull = retentionFull; + RetentionFullType = retentionFullType; + S3Bucket = s3Bucket; + S3Endpoint = s3Endpoint; + S3Region = s3Region; + Type = type; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigResult.cs new file mode 100644 index 0000000..2d86f6b --- /dev/null +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigResult.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetDatabasesDatabaseBackupsConfigResult + { + /// + /// Backup configuration ID + /// + public readonly string Id; + /// + /// Node name + /// + public readonly string NodeName; + /// + /// Backup repositories + /// + public readonly ImmutableArray Repositories; + /// + /// Backup schedules + /// + public readonly ImmutableArray Schedules; + + [OutputConstructor] + private GetDatabasesDatabaseBackupsConfigResult( + string id, + + string nodeName, + + ImmutableArray repositories, + + ImmutableArray schedules) + { + Id = id; + NodeName = nodeName; + Repositories = repositories; + Schedules = schedules; + } + } +} diff --git a/sdk/dotnet/Outputs/GetClustersClusterCloudAccountResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigScheduleResult.cs similarity index 62% rename from sdk/dotnet/Outputs/GetClustersClusterCloudAccountResult.cs rename to sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigScheduleResult.cs index 7bf3254..6f27033 100644 --- a/sdk/dotnet/Outputs/GetClustersClusterCloudAccountResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsConfigScheduleResult.cs @@ -12,31 +12,25 @@ namespace Pgedge.Pgedge.Outputs { [OutputType] - public sealed class GetClustersClusterCloudAccountResult + public sealed class GetDatabasesDatabaseBackupsConfigScheduleResult { + public readonly string CronExpression; /// - /// Display name of the node + /// Backup configuration ID /// public readonly string Id; - /// - /// IP address of the node - /// - public readonly string Name; - /// - /// Type of the node - /// public readonly string Type; [OutputConstructor] - private GetClustersClusterCloudAccountResult( - string id, + private GetDatabasesDatabaseBackupsConfigScheduleResult( + string cronExpression, - string name, + string id, string type) { + CronExpression = cronExpression; Id = id; - Name = name; Type = type; } } diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsResult.cs new file mode 100644 index 0000000..f60666d --- /dev/null +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseBackupsResult.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetDatabasesDatabaseBackupsResult + { + /// + /// Backup configurations + /// + public readonly ImmutableArray Configs; + /// + /// Backup provider + /// + public readonly string Provider; + + [OutputConstructor] + private GetDatabasesDatabaseBackupsResult( + ImmutableArray configs, + + string provider) + { + Configs = configs; + Provider = provider; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseComponentResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseComponentResult.cs index e46aa49..4bba306 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseComponentResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseComponentResult.cs @@ -15,23 +15,23 @@ namespace Pgedge.Pgedge.Outputs public sealed class GetDatabasesDatabaseComponentResult { /// - /// Id of the component + /// Backup configuration ID /// public readonly string Id; /// - /// Name of the component + /// Component name /// public readonly string Name; /// - /// Release date of the component + /// Component release date /// public readonly string ReleaseDate; /// - /// Status of the component + /// Component status /// public readonly string Status; /// - /// Version of the component + /// Component version /// public readonly string Version; diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseExtensionsResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseExtensionsResult.cs index 7294783..84289a3 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseExtensionsResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseExtensionsResult.cs @@ -15,15 +15,15 @@ namespace Pgedge.Pgedge.Outputs public sealed class GetDatabasesDatabaseExtensionsResult { /// - /// Auto manage of the extension + /// Auto-manage extensions /// public readonly bool AutoManage; /// - /// Available of the extension + /// Available extensions /// public readonly ImmutableArray Availables; /// - /// Requested of the extension + /// Requested extensions /// public readonly ImmutableArray Requesteds; diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeDistanceMeasurementResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeDistanceMeasurementResult.cs deleted file mode 100644 index 2943cd9..0000000 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeDistanceMeasurementResult.cs +++ /dev/null @@ -1,50 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; -using Pulumi; - -namespace Pgedge.Pgedge.Outputs -{ - - [OutputType] - public sealed class GetDatabasesDatabaseNodeDistanceMeasurementResult - { - /// - /// Distance from a reference point - /// - public readonly double Distance; - /// - /// Latitude of the reference point - /// - public readonly double FromLatitude; - /// - /// Longitude of the reference point - /// - public readonly double FromLongitude; - /// - /// Unit of distance measurement - /// - public readonly string Unit; - - [OutputConstructor] - private GetDatabasesDatabaseNodeDistanceMeasurementResult( - double distance, - - double fromLatitude, - - double fromLongitude, - - string unit) - { - Distance = distance; - FromLatitude = fromLatitude; - FromLongitude = fromLongitude; - Unit = unit; - } - } -} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeExtensionsErrorsResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeExtensionsErrorsResult.cs deleted file mode 100644 index 05b039d..0000000 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeExtensionsErrorsResult.cs +++ /dev/null @@ -1,50 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; -using Pulumi; - -namespace Pgedge.Pgedge.Outputs -{ - - [OutputType] - public sealed class GetDatabasesDatabaseNodeExtensionsErrorsResult - { - /// - /// Error code anim9ef - /// - public readonly string Anim9ef; - /// - /// Error code enim3b - /// - public readonly string Enim3b; - /// - /// Error code laborumd - /// - public readonly string Laborumd; - /// - /// Error code mollit267 - /// - public readonly string Mollit267; - - [OutputConstructor] - private GetDatabasesDatabaseNodeExtensionsErrorsResult( - string anim9ef, - - string enim3b, - - string laborumd, - - string mollit267) - { - Anim9ef = anim9ef; - Enim3b = enim3b; - Laborumd = laborumd; - Mollit267 = mollit267; - } - } -} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeResult.cs deleted file mode 100644 index 71c17c2..0000000 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeResult.cs +++ /dev/null @@ -1,52 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; -using Pulumi; - -namespace Pgedge.Pgedge.Outputs -{ - - [OutputType] - public sealed class GetDatabasesDatabaseNodeResult - { - public readonly Outputs.GetDatabasesDatabaseNodeConnectionResult Connection; - public readonly Outputs.GetDatabasesDatabaseNodeDistanceMeasurementResult DistanceMeasurement; - public readonly Outputs.GetDatabasesDatabaseNodeExtensionsResult Extensions; - public readonly Outputs.GetDatabasesDatabaseNodeLocationResult Location; - /// - /// Name of the component - /// - public readonly string Name; - /// - /// Region of the location - /// - public readonly Outputs.GetDatabasesDatabaseNodeRegionResult Region; - - [OutputConstructor] - private GetDatabasesDatabaseNodeResult( - Outputs.GetDatabasesDatabaseNodeConnectionResult connection, - - Outputs.GetDatabasesDatabaseNodeDistanceMeasurementResult distanceMeasurement, - - Outputs.GetDatabasesDatabaseNodeExtensionsResult extensions, - - Outputs.GetDatabasesDatabaseNodeLocationResult location, - - string name, - - Outputs.GetDatabasesDatabaseNodeRegionResult region) - { - Connection = connection; - DistanceMeasurement = distanceMeasurement; - Extensions = extensions; - Location = location; - Name = name; - Region = region; - } - } -} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeConnectionResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesConnectionResult.cs similarity index 63% rename from sdk/dotnet/Outputs/GetDatabasesDatabaseNodeConnectionResult.cs rename to sdk/dotnet/Outputs/GetDatabasesDatabaseNodesConnectionResult.cs index 0c6ba6b..bd5d4aa 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeConnectionResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesConnectionResult.cs @@ -12,43 +12,19 @@ namespace Pgedge.Pgedge.Outputs { [OutputType] - public sealed class GetDatabasesDatabaseNodeConnectionResult + public sealed class GetDatabasesDatabaseNodesConnectionResult { - /// - /// Database of the node - /// public readonly string Database; - /// - /// External IP of the node - /// public readonly string ExternalIpAddress; - /// - /// Host of the node - /// public readonly string Host; - /// - /// Internal Host of the node - /// public readonly string InternalHost; - /// - /// Internal IP of the node - /// public readonly string InternalIpAddress; - /// - /// Password of the node - /// public readonly string Password; - /// - /// Port of the node - /// public readonly int Port; - /// - /// Username of the node - /// public readonly string Username; [OutputConstructor] - private GetDatabasesDatabaseNodeConnectionResult( + private GetDatabasesDatabaseNodesConnectionResult( string database, string externalIpAddress, diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesExtensionsResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesExtensionsResult.cs new file mode 100644 index 0000000..9716d95 --- /dev/null +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesExtensionsResult.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetDatabasesDatabaseNodesExtensionsResult + { + public readonly ImmutableDictionary Errors; + public readonly ImmutableArray Installeds; + + [OutputConstructor] + private GetDatabasesDatabaseNodesExtensionsResult( + ImmutableDictionary errors, + + ImmutableArray installeds) + { + Errors = errors; + Installeds = installeds; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeLocationResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesLocationResult.cs similarity index 62% rename from sdk/dotnet/Outputs/GetDatabasesDatabaseNodeLocationResult.cs rename to sdk/dotnet/Outputs/GetDatabasesDatabaseNodesLocationResult.cs index 2953c94..55ad576 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeLocationResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesLocationResult.cs @@ -12,55 +12,25 @@ namespace Pgedge.Pgedge.Outputs { [OutputType] - public sealed class GetDatabasesDatabaseNodeLocationResult + public sealed class GetDatabasesDatabaseNodesLocationResult { - /// - /// City of the location - /// public readonly string City; - /// - /// Code of the location - /// public readonly string Code; - /// - /// Country of the location - /// public readonly string Country; - /// - /// Latitude of the location - /// public readonly double Latitude; - /// - /// Longitude of the location - /// public readonly double Longitude; - /// - /// Metro code of the location - /// public readonly string MetroCode; /// - /// Name of the component + /// Component name /// public readonly string Name; - /// - /// Postal code of the location - /// public readonly string PostalCode; - /// - /// Region of the location - /// public readonly string Region; - /// - /// Region code of the location - /// public readonly string RegionCode; - /// - /// Timezone of the location - /// public readonly string Timezone; [OutputConstructor] - private GetDatabasesDatabaseNodeLocationResult( + private GetDatabasesDatabaseNodesLocationResult( string city, string code, diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeRegionResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesRegionResult.cs similarity index 66% rename from sdk/dotnet/Outputs/GetDatabasesDatabaseNodeRegionResult.cs rename to sdk/dotnet/Outputs/GetDatabasesDatabaseNodesRegionResult.cs index fcbea23..ac947d4 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodeRegionResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesRegionResult.cs @@ -12,35 +12,20 @@ namespace Pgedge.Pgedge.Outputs { [OutputType] - public sealed class GetDatabasesDatabaseNodeRegionResult + public sealed class GetDatabasesDatabaseNodesRegionResult { - /// - /// Active status of the region - /// public readonly bool Active; - /// - /// Availability zones of the region - /// public readonly ImmutableArray AvailabilityZones; - /// - /// Cloud provider of the region - /// public readonly string Cloud; - /// - /// Code of the location - /// public readonly string Code; /// - /// Name of the component + /// Component name /// public readonly string Name; - /// - /// Parent region - /// public readonly string Parent; [OutputConstructor] - private GetDatabasesDatabaseNodeRegionResult( + private GetDatabasesDatabaseNodesRegionResult( bool active, ImmutableArray availabilityZones, diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesResult.cs new file mode 100644 index 0000000..c4deaa2 --- /dev/null +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseNodesResult.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetDatabasesDatabaseNodesResult + { + /// + /// Node connection details + /// + public readonly Outputs.GetDatabasesDatabaseNodesConnectionResult Connection; + /// + /// Extensions configuration for the database + /// + public readonly Outputs.GetDatabasesDatabaseNodesExtensionsResult Extensions; + /// + /// Node location + /// + public readonly Outputs.GetDatabasesDatabaseNodesLocationResult Location; + /// + /// Component name + /// + public readonly string Name; + /// + /// Node region + /// + public readonly Outputs.GetDatabasesDatabaseNodesRegionResult Region; + + [OutputConstructor] + private GetDatabasesDatabaseNodesResult( + Outputs.GetDatabasesDatabaseNodesConnectionResult connection, + + Outputs.GetDatabasesDatabaseNodesExtensionsResult extensions, + + Outputs.GetDatabasesDatabaseNodesLocationResult location, + + string name, + + Outputs.GetDatabasesDatabaseNodesRegionResult region) + { + Connection = connection; + Extensions = extensions; + Location = location; + Name = name; + Region = region; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseResult.cs index 28f725f..1f817fe 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseResult.cs @@ -15,22 +15,32 @@ namespace Pgedge.Pgedge.Outputs public sealed class GetDatabasesDatabaseResult { /// - /// Updated at of the database + /// Backup configuration for the database + /// + public readonly Outputs.GetDatabasesDatabaseBackupsResult Backups; + /// + /// ID of the cluster this database belongs to /// public readonly string ClusterId; + /// + /// Components of the database + /// public readonly ImmutableArray Components; /// - /// Config version of the database + /// Configuration version of the database /// - public readonly string? ConfigVersion; + public readonly string ConfigVersion; /// - /// Created at of the database + /// Creation timestamp of the database /// public readonly string CreatedAt; /// /// Domain of the database /// public readonly string Domain; + /// + /// Extensions configuration for the database + /// public readonly Outputs.GetDatabasesDatabaseExtensionsResult Extensions; /// /// ID of the database @@ -40,37 +50,40 @@ public sealed class GetDatabasesDatabaseResult /// Name of the database /// public readonly string Name; - public readonly ImmutableArray Nodes; /// - /// Options for creating the database + /// Map of nodes in the database + /// + public readonly ImmutableDictionary Nodes; + /// + /// Options for the database /// public readonly ImmutableArray Options; /// - /// Postgres version of the database + /// PostgreSQL version of the database /// public readonly string PgVersion; + /// + /// Roles in the database + /// public readonly ImmutableArray Roles; /// /// Status of the database /// public readonly string Status; /// - /// Storage used of the database - /// - public readonly int StorageUsed; - public readonly ImmutableArray Tables; - /// - /// Updated at of the database + /// Last update timestamp of the database /// public readonly string UpdatedAt; [OutputConstructor] private GetDatabasesDatabaseResult( + Outputs.GetDatabasesDatabaseBackupsResult backups, + string clusterId, ImmutableArray components, - string? configVersion, + string configVersion, string createdAt, @@ -82,7 +95,7 @@ private GetDatabasesDatabaseResult( string name, - ImmutableArray nodes, + ImmutableDictionary nodes, ImmutableArray options, @@ -92,12 +105,9 @@ private GetDatabasesDatabaseResult( string status, - int storageUsed, - - ImmutableArray tables, - string updatedAt) { + Backups = backups; ClusterId = clusterId; Components = components; ConfigVersion = configVersion; @@ -111,8 +121,6 @@ private GetDatabasesDatabaseResult( PgVersion = pgVersion; Roles = roles; Status = status; - StorageUsed = storageUsed; - Tables = tables; UpdatedAt = updatedAt; } } diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseRoleResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseRoleResult.cs index b796ea7..997c817 100644 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseRoleResult.cs +++ b/sdk/dotnet/Outputs/GetDatabasesDatabaseRoleResult.cs @@ -14,41 +14,17 @@ namespace Pgedge.Pgedge.Outputs [OutputType] public sealed class GetDatabasesDatabaseRoleResult { - /// - /// Bypass RLS - /// public readonly bool BypassRls; - /// - /// Connection limit - /// public readonly int ConnectionLimit; - /// - /// Create database - /// public readonly bool CreateDb; - /// - /// Create role - /// public readonly bool CreateRole; - /// - /// Inherit - /// public readonly bool Inherit; - /// - /// Login - /// public readonly bool Login; /// - /// Name of the component + /// Component name /// public readonly string Name; - /// - /// Replication - /// public readonly bool Replication; - /// - /// Superuser - /// public readonly bool Superuser; [OutputConstructor] diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseTableColumnResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseTableColumnResult.cs deleted file mode 100644 index a964903..0000000 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseTableColumnResult.cs +++ /dev/null @@ -1,64 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; -using Pulumi; - -namespace Pgedge.Pgedge.Outputs -{ - - [OutputType] - public sealed class GetDatabasesDatabaseTableColumnResult - { - /// - /// Data type of the column - /// - public readonly string DataType; - /// - /// Default of the column - /// - public readonly string Default; - /// - /// Is nullable of the column - /// - public readonly bool IsNullable; - /// - /// Is primary key of the column - /// - public readonly bool IsPrimaryKey; - /// - /// Name of the component - /// - public readonly string Name; - /// - /// Ordinal position of the column - /// - public readonly int OrdinalPosition; - - [OutputConstructor] - private GetDatabasesDatabaseTableColumnResult( - string dataType, - - string @default, - - bool isNullable, - - bool isPrimaryKey, - - string name, - - int ordinalPosition) - { - DataType = dataType; - Default = @default; - IsNullable = isNullable; - IsPrimaryKey = isPrimaryKey; - Name = name; - OrdinalPosition = ordinalPosition; - } - } -} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseTableResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseTableResult.cs deleted file mode 100644 index b33c2f8..0000000 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseTableResult.cs +++ /dev/null @@ -1,61 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; -using Pulumi; - -namespace Pgedge.Pgedge.Outputs -{ - - [OutputType] - public sealed class GetDatabasesDatabaseTableResult - { - public readonly ImmutableArray Columns; - /// - /// Name of the component - /// - public readonly string Name; - /// - /// Primary key of the table - /// - public readonly ImmutableArray PrimaryKeys; - /// - /// Replication sets of the table - /// - public readonly ImmutableArray ReplicationSets; - /// - /// Schema of the table - /// - public readonly string Schema; - /// - /// Status of the component - /// - public readonly ImmutableArray Statuses; - - [OutputConstructor] - private GetDatabasesDatabaseTableResult( - ImmutableArray columns, - - string name, - - ImmutableArray primaryKeys, - - ImmutableArray replicationSets, - - string schema, - - ImmutableArray statuses) - { - Columns = columns; - Name = name; - PrimaryKeys = primaryKeys; - ReplicationSets = replicationSets; - Schema = schema; - Statuses = statuses; - } - } -} diff --git a/sdk/dotnet/Outputs/GetDatabasesDatabaseTableStatusResult.cs b/sdk/dotnet/Outputs/GetDatabasesDatabaseTableStatusResult.cs deleted file mode 100644 index c352b20..0000000 --- a/sdk/dotnet/Outputs/GetDatabasesDatabaseTableStatusResult.cs +++ /dev/null @@ -1,50 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; -using Pulumi; - -namespace Pgedge.Pgedge.Outputs -{ - - [OutputType] - public sealed class GetDatabasesDatabaseTableStatusResult - { - /// - /// Aligned of the table - /// - public readonly bool Aligned; - /// - /// Node name of the table - /// - public readonly string NodeName; - /// - /// Present of the table - /// - public readonly bool Present; - /// - /// Replicating of the table - /// - public readonly bool Replicating; - - [OutputConstructor] - private GetDatabasesDatabaseTableStatusResult( - bool aligned, - - string nodeName, - - bool present, - - bool replicating) - { - Aligned = aligned; - NodeName = nodeName; - Present = present; - Replicating = replicating; - } - } -} diff --git a/sdk/dotnet/Outputs/GetSSHKeysSshKeyResult.cs b/sdk/dotnet/Outputs/GetSSHKeysSshKeyResult.cs new file mode 100644 index 0000000..ca669fb --- /dev/null +++ b/sdk/dotnet/Outputs/GetSSHKeysSshKeyResult.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge.Outputs +{ + + [OutputType] + public sealed class GetSSHKeysSshKeyResult + { + /// + /// Creation time of the SSH key + /// + public readonly string CreatedAt; + /// + /// ID of the SSH key + /// + public readonly string Id; + /// + /// Name of the SSH key + /// + public readonly string Name; + /// + /// Public key + /// + public readonly string PublicKey; + + [OutputConstructor] + private GetSSHKeysSshKeyResult( + string createdAt, + + string id, + + string name, + + string publicKey) + { + CreatedAt = createdAt; + Id = id; + Name = name; + PublicKey = publicKey; + } + } +} diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index 2eb69ac..b5aa332 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -43,6 +43,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pgEdge/pulumi-pgedge", }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. @@ -61,6 +62,7 @@ public sealed class ProviderArgs : global::Pulumi.ResourceArgs public ProviderArgs() { + BaseUrl = Utilities.GetEnv("PGEDGE_BASE_URL"); } public static new ProviderArgs Empty => new ProviderArgs(); } diff --git a/sdk/dotnet/SSHKey.cs b/sdk/dotnet/SSHKey.cs new file mode 100644 index 0000000..1c4c6b7 --- /dev/null +++ b/sdk/dotnet/SSHKey.cs @@ -0,0 +1,127 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pgedge.Pgedge +{ + /// + /// Manages a pgEdge SSH key. + /// + [PgedgeResourceType("pgedge:index/sSHKey:SSHKey")] + public partial class SSHKey : global::Pulumi.CustomResource + { + /// + /// The timestamp when the SSH key was created. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// The name of the SSH key. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The public key. + /// + [Output("publicKey")] + public Output PublicKey { get; private set; } = null!; + + + /// + /// Create a SSHKey resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public SSHKey(string name, SSHKeyArgs args, CustomResourceOptions? options = null) + : base("pgedge:index/sSHKey:SSHKey", name, args ?? new SSHKeyArgs(), MakeResourceOptions(options, "")) + { + } + + private SSHKey(string name, Input id, SSHKeyState? state = null, CustomResourceOptions? options = null) + : base("pgedge:index/sSHKey:SSHKey", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pgEdge/pulumi-pgedge", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing SSHKey resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static SSHKey Get(string name, Input id, SSHKeyState? state = null, CustomResourceOptions? options = null) + { + return new SSHKey(name, id, state, options); + } + } + + public sealed class SSHKeyArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the SSH key. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The public key. + /// + [Input("publicKey", required: true)] + public Input PublicKey { get; set; } = null!; + + public SSHKeyArgs() + { + } + public static new SSHKeyArgs Empty => new SSHKeyArgs(); + } + + public sealed class SSHKeyState : global::Pulumi.ResourceArgs + { + /// + /// The timestamp when the SSH key was created. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// The name of the SSH key. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The public key. + /// + [Input("publicKey")] + public Input? PublicKey { get; set; } + + public SSHKeyState() + { + } + public static new SSHKeyState Empty => new SSHKeyState(); + } +} diff --git a/sdk/dotnet/Utilities.cs b/sdk/dotnet/Utilities.cs index c8cde2d..a9ff6e8 100644 --- a/sdk/dotnet/Utilities.cs +++ b/sdk/dotnet/Utilities.cs @@ -53,6 +53,7 @@ static class Utilities { var dst = src ?? new global::Pulumi.InvokeOptions{}; dst.Version = src?.Version ?? Version; + dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github://api.github.com/pgEdge/pulumi-pgedge"; return dst; } diff --git a/sdk/dotnet/logo.png b/sdk/dotnet/logo.png index 181f421..81b5c66 100644 Binary files a/sdk/dotnet/logo.png and b/sdk/dotnet/logo.png differ diff --git a/sdk/dotnet/pulumi-plugin.json b/sdk/dotnet/pulumi-plugin.json index 33cf034..bc61944 100644 --- a/sdk/dotnet/pulumi-plugin.json +++ b/sdk/dotnet/pulumi-plugin.json @@ -1,4 +1,5 @@ { "resource": true, - "name": "pgedge" + "name": "pgedge", + "server": "github://api.github.com/pgEdge/pulumi-pgedge" } diff --git a/sdk/go/pgedge/backupStore.go b/sdk/go/pgedge/backupStore.go new file mode 100644 index 0000000..36dc7d9 --- /dev/null +++ b/sdk/go/pgedge/backupStore.go @@ -0,0 +1,275 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package pgedge + +import ( + "context" + "reflect" + + "errors" + "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type BackupStore struct { + pulumi.CustomResourceState + + CloudAccountId pulumi.StringOutput `pulumi:"cloudAccountId"` + CloudAccountType pulumi.StringOutput `pulumi:"cloudAccountType"` + ClusterIds pulumi.StringArrayOutput `pulumi:"clusterIds"` + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + Name pulumi.StringOutput `pulumi:"name"` + Properties pulumi.StringMapOutput `pulumi:"properties"` + Region pulumi.StringOutput `pulumi:"region"` + Status pulumi.StringOutput `pulumi:"status"` + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` +} + +// NewBackupStore registers a new resource with the given unique name, arguments, and options. +func NewBackupStore(ctx *pulumi.Context, + name string, args *BackupStoreArgs, opts ...pulumi.ResourceOption) (*BackupStore, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CloudAccountId == nil { + return nil, errors.New("invalid value for required argument 'CloudAccountId'") + } + if args.Region == nil { + return nil, errors.New("invalid value for required argument 'Region'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BackupStore + err := ctx.RegisterResource("pgedge:index/backupStore:BackupStore", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBackupStore gets an existing BackupStore 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 GetBackupStore(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BackupStoreState, opts ...pulumi.ResourceOption) (*BackupStore, error) { + var resource BackupStore + err := ctx.ReadResource("pgedge:index/backupStore:BackupStore", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BackupStore resources. +type backupStoreState struct { + CloudAccountId *string `pulumi:"cloudAccountId"` + CloudAccountType *string `pulumi:"cloudAccountType"` + ClusterIds []string `pulumi:"clusterIds"` + CreatedAt *string `pulumi:"createdAt"` + Name *string `pulumi:"name"` + Properties map[string]string `pulumi:"properties"` + Region *string `pulumi:"region"` + Status *string `pulumi:"status"` + UpdatedAt *string `pulumi:"updatedAt"` +} + +type BackupStoreState struct { + CloudAccountId pulumi.StringPtrInput + CloudAccountType pulumi.StringPtrInput + ClusterIds pulumi.StringArrayInput + CreatedAt pulumi.StringPtrInput + Name pulumi.StringPtrInput + Properties pulumi.StringMapInput + Region pulumi.StringPtrInput + Status pulumi.StringPtrInput + UpdatedAt pulumi.StringPtrInput +} + +func (BackupStoreState) ElementType() reflect.Type { + return reflect.TypeOf((*backupStoreState)(nil)).Elem() +} + +type backupStoreArgs struct { + CloudAccountId string `pulumi:"cloudAccountId"` + Name *string `pulumi:"name"` + Region string `pulumi:"region"` +} + +// The set of arguments for constructing a BackupStore resource. +type BackupStoreArgs struct { + CloudAccountId pulumi.StringInput + Name pulumi.StringPtrInput + Region pulumi.StringInput +} + +func (BackupStoreArgs) ElementType() reflect.Type { + return reflect.TypeOf((*backupStoreArgs)(nil)).Elem() +} + +type BackupStoreInput interface { + pulumi.Input + + ToBackupStoreOutput() BackupStoreOutput + ToBackupStoreOutputWithContext(ctx context.Context) BackupStoreOutput +} + +func (*BackupStore) ElementType() reflect.Type { + return reflect.TypeOf((**BackupStore)(nil)).Elem() +} + +func (i *BackupStore) ToBackupStoreOutput() BackupStoreOutput { + return i.ToBackupStoreOutputWithContext(context.Background()) +} + +func (i *BackupStore) ToBackupStoreOutputWithContext(ctx context.Context) BackupStoreOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupStoreOutput) +} + +// BackupStoreArrayInput is an input type that accepts BackupStoreArray and BackupStoreArrayOutput values. +// You can construct a concrete instance of `BackupStoreArrayInput` via: +// +// BackupStoreArray{ BackupStoreArgs{...} } +type BackupStoreArrayInput interface { + pulumi.Input + + ToBackupStoreArrayOutput() BackupStoreArrayOutput + ToBackupStoreArrayOutputWithContext(context.Context) BackupStoreArrayOutput +} + +type BackupStoreArray []BackupStoreInput + +func (BackupStoreArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupStore)(nil)).Elem() +} + +func (i BackupStoreArray) ToBackupStoreArrayOutput() BackupStoreArrayOutput { + return i.ToBackupStoreArrayOutputWithContext(context.Background()) +} + +func (i BackupStoreArray) ToBackupStoreArrayOutputWithContext(ctx context.Context) BackupStoreArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupStoreArrayOutput) +} + +// BackupStoreMapInput is an input type that accepts BackupStoreMap and BackupStoreMapOutput values. +// You can construct a concrete instance of `BackupStoreMapInput` via: +// +// BackupStoreMap{ "key": BackupStoreArgs{...} } +type BackupStoreMapInput interface { + pulumi.Input + + ToBackupStoreMapOutput() BackupStoreMapOutput + ToBackupStoreMapOutputWithContext(context.Context) BackupStoreMapOutput +} + +type BackupStoreMap map[string]BackupStoreInput + +func (BackupStoreMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupStore)(nil)).Elem() +} + +func (i BackupStoreMap) ToBackupStoreMapOutput() BackupStoreMapOutput { + return i.ToBackupStoreMapOutputWithContext(context.Background()) +} + +func (i BackupStoreMap) ToBackupStoreMapOutputWithContext(ctx context.Context) BackupStoreMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupStoreMapOutput) +} + +type BackupStoreOutput struct{ *pulumi.OutputState } + +func (BackupStoreOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BackupStore)(nil)).Elem() +} + +func (o BackupStoreOutput) ToBackupStoreOutput() BackupStoreOutput { + return o +} + +func (o BackupStoreOutput) ToBackupStoreOutputWithContext(ctx context.Context) BackupStoreOutput { + return o +} + +func (o BackupStoreOutput) CloudAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringOutput { return v.CloudAccountId }).(pulumi.StringOutput) +} + +func (o BackupStoreOutput) CloudAccountType() pulumi.StringOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringOutput { return v.CloudAccountType }).(pulumi.StringOutput) +} + +func (o BackupStoreOutput) ClusterIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringArrayOutput { return v.ClusterIds }).(pulumi.StringArrayOutput) +} + +func (o BackupStoreOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o BackupStoreOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o BackupStoreOutput) Properties() pulumi.StringMapOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringMapOutput { return v.Properties }).(pulumi.StringMapOutput) +} + +func (o BackupStoreOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +func (o BackupStoreOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +func (o BackupStoreOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *BackupStore) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +type BackupStoreArrayOutput struct{ *pulumi.OutputState } + +func (BackupStoreArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupStore)(nil)).Elem() +} + +func (o BackupStoreArrayOutput) ToBackupStoreArrayOutput() BackupStoreArrayOutput { + return o +} + +func (o BackupStoreArrayOutput) ToBackupStoreArrayOutputWithContext(ctx context.Context) BackupStoreArrayOutput { + return o +} + +func (o BackupStoreArrayOutput) Index(i pulumi.IntInput) BackupStoreOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BackupStore { + return vs[0].([]*BackupStore)[vs[1].(int)] + }).(BackupStoreOutput) +} + +type BackupStoreMapOutput struct{ *pulumi.OutputState } + +func (BackupStoreMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupStore)(nil)).Elem() +} + +func (o BackupStoreMapOutput) ToBackupStoreMapOutput() BackupStoreMapOutput { + return o +} + +func (o BackupStoreMapOutput) ToBackupStoreMapOutputWithContext(ctx context.Context) BackupStoreMapOutput { + return o +} + +func (o BackupStoreMapOutput) MapIndex(k pulumi.StringInput) BackupStoreOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BackupStore { + return vs[0].(map[string]*BackupStore)[vs[1].(string)] + }).(BackupStoreOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BackupStoreInput)(nil)).Elem(), &BackupStore{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupStoreArrayInput)(nil)).Elem(), BackupStoreArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupStoreMapInput)(nil)).Elem(), BackupStoreMap{}) + pulumi.RegisterOutputType(BackupStoreOutput{}) + pulumi.RegisterOutputType(BackupStoreArrayOutput{}) + pulumi.RegisterOutputType(BackupStoreMapOutput{}) +} diff --git a/sdk/go/pgedge/cloudAccount.go b/sdk/go/pgedge/cloudAccount.go new file mode 100644 index 0000000..dc412a7 --- /dev/null +++ b/sdk/go/pgedge/cloudAccount.go @@ -0,0 +1,256 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package pgedge + +import ( + "context" + "reflect" + + "errors" + "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type CloudAccount struct { + pulumi.CustomResourceState + + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + Credentials pulumi.StringMapOutput `pulumi:"credentials"` + Description pulumi.StringPtrOutput `pulumi:"description"` + Name pulumi.StringOutput `pulumi:"name"` + Type pulumi.StringOutput `pulumi:"type"` + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` +} + +// NewCloudAccount registers a new resource with the given unique name, arguments, and options. +func NewCloudAccount(ctx *pulumi.Context, + name string, args *CloudAccountArgs, opts ...pulumi.ResourceOption) (*CloudAccount, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Credentials == nil { + return nil, errors.New("invalid value for required argument 'Credentials'") + } + if args.Type == nil { + return nil, errors.New("invalid value for required argument 'Type'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource CloudAccount + err := ctx.RegisterResource("pgedge:index/cloudAccount:CloudAccount", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCloudAccount gets an existing CloudAccount 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 GetCloudAccount(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CloudAccountState, opts ...pulumi.ResourceOption) (*CloudAccount, error) { + var resource CloudAccount + err := ctx.ReadResource("pgedge:index/cloudAccount:CloudAccount", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CloudAccount resources. +type cloudAccountState struct { + CreatedAt *string `pulumi:"createdAt"` + Credentials map[string]string `pulumi:"credentials"` + Description *string `pulumi:"description"` + Name *string `pulumi:"name"` + Type *string `pulumi:"type"` + UpdatedAt *string `pulumi:"updatedAt"` +} + +type CloudAccountState struct { + CreatedAt pulumi.StringPtrInput + Credentials pulumi.StringMapInput + Description pulumi.StringPtrInput + Name pulumi.StringPtrInput + Type pulumi.StringPtrInput + UpdatedAt pulumi.StringPtrInput +} + +func (CloudAccountState) ElementType() reflect.Type { + return reflect.TypeOf((*cloudAccountState)(nil)).Elem() +} + +type cloudAccountArgs struct { + Credentials map[string]string `pulumi:"credentials"` + Description *string `pulumi:"description"` + Name *string `pulumi:"name"` + Type string `pulumi:"type"` +} + +// The set of arguments for constructing a CloudAccount resource. +type CloudAccountArgs struct { + Credentials pulumi.StringMapInput + Description pulumi.StringPtrInput + Name pulumi.StringPtrInput + Type pulumi.StringInput +} + +func (CloudAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*cloudAccountArgs)(nil)).Elem() +} + +type CloudAccountInput interface { + pulumi.Input + + ToCloudAccountOutput() CloudAccountOutput + ToCloudAccountOutputWithContext(ctx context.Context) CloudAccountOutput +} + +func (*CloudAccount) ElementType() reflect.Type { + return reflect.TypeOf((**CloudAccount)(nil)).Elem() +} + +func (i *CloudAccount) ToCloudAccountOutput() CloudAccountOutput { + return i.ToCloudAccountOutputWithContext(context.Background()) +} + +func (i *CloudAccount) ToCloudAccountOutputWithContext(ctx context.Context) CloudAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudAccountOutput) +} + +// CloudAccountArrayInput is an input type that accepts CloudAccountArray and CloudAccountArrayOutput values. +// You can construct a concrete instance of `CloudAccountArrayInput` via: +// +// CloudAccountArray{ CloudAccountArgs{...} } +type CloudAccountArrayInput interface { + pulumi.Input + + ToCloudAccountArrayOutput() CloudAccountArrayOutput + ToCloudAccountArrayOutputWithContext(context.Context) CloudAccountArrayOutput +} + +type CloudAccountArray []CloudAccountInput + +func (CloudAccountArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CloudAccount)(nil)).Elem() +} + +func (i CloudAccountArray) ToCloudAccountArrayOutput() CloudAccountArrayOutput { + return i.ToCloudAccountArrayOutputWithContext(context.Background()) +} + +func (i CloudAccountArray) ToCloudAccountArrayOutputWithContext(ctx context.Context) CloudAccountArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudAccountArrayOutput) +} + +// CloudAccountMapInput is an input type that accepts CloudAccountMap and CloudAccountMapOutput values. +// You can construct a concrete instance of `CloudAccountMapInput` via: +// +// CloudAccountMap{ "key": CloudAccountArgs{...} } +type CloudAccountMapInput interface { + pulumi.Input + + ToCloudAccountMapOutput() CloudAccountMapOutput + ToCloudAccountMapOutputWithContext(context.Context) CloudAccountMapOutput +} + +type CloudAccountMap map[string]CloudAccountInput + +func (CloudAccountMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CloudAccount)(nil)).Elem() +} + +func (i CloudAccountMap) ToCloudAccountMapOutput() CloudAccountMapOutput { + return i.ToCloudAccountMapOutputWithContext(context.Background()) +} + +func (i CloudAccountMap) ToCloudAccountMapOutputWithContext(ctx context.Context) CloudAccountMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudAccountMapOutput) +} + +type CloudAccountOutput struct{ *pulumi.OutputState } + +func (CloudAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CloudAccount)(nil)).Elem() +} + +func (o CloudAccountOutput) ToCloudAccountOutput() CloudAccountOutput { + return o +} + +func (o CloudAccountOutput) ToCloudAccountOutputWithContext(ctx context.Context) CloudAccountOutput { + return o +} + +func (o CloudAccountOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *CloudAccount) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o CloudAccountOutput) Credentials() pulumi.StringMapOutput { + return o.ApplyT(func(v *CloudAccount) pulumi.StringMapOutput { return v.Credentials }).(pulumi.StringMapOutput) +} + +func (o CloudAccountOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CloudAccount) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o CloudAccountOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *CloudAccount) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o CloudAccountOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *CloudAccount) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func (o CloudAccountOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *CloudAccount) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +type CloudAccountArrayOutput struct{ *pulumi.OutputState } + +func (CloudAccountArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CloudAccount)(nil)).Elem() +} + +func (o CloudAccountArrayOutput) ToCloudAccountArrayOutput() CloudAccountArrayOutput { + return o +} + +func (o CloudAccountArrayOutput) ToCloudAccountArrayOutputWithContext(ctx context.Context) CloudAccountArrayOutput { + return o +} + +func (o CloudAccountArrayOutput) Index(i pulumi.IntInput) CloudAccountOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CloudAccount { + return vs[0].([]*CloudAccount)[vs[1].(int)] + }).(CloudAccountOutput) +} + +type CloudAccountMapOutput struct{ *pulumi.OutputState } + +func (CloudAccountMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CloudAccount)(nil)).Elem() +} + +func (o CloudAccountMapOutput) ToCloudAccountMapOutput() CloudAccountMapOutput { + return o +} + +func (o CloudAccountMapOutput) ToCloudAccountMapOutputWithContext(ctx context.Context) CloudAccountMapOutput { + return o +} + +func (o CloudAccountMapOutput) MapIndex(k pulumi.StringInput) CloudAccountOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CloudAccount { + return vs[0].(map[string]*CloudAccount)[vs[1].(string)] + }).(CloudAccountOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CloudAccountInput)(nil)).Elem(), &CloudAccount{}) + pulumi.RegisterInputType(reflect.TypeOf((*CloudAccountArrayInput)(nil)).Elem(), CloudAccountArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CloudAccountMapInput)(nil)).Elem(), CloudAccountMap{}) + pulumi.RegisterOutputType(CloudAccountOutput{}) + pulumi.RegisterOutputType(CloudAccountArrayOutput{}) + pulumi.RegisterOutputType(CloudAccountMapOutput{}) +} diff --git a/sdk/go/pgedge/cluster.go b/sdk/go/pgedge/cluster.go index 93d6ece..1e58ac3 100644 --- a/sdk/go/pgedge/cluster.go +++ b/sdk/go/pgedge/cluster.go @@ -12,26 +12,25 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Interface with the pgEdge service API for clusters. type Cluster struct { pulumi.CustomResourceState - // ID of the target cloud account - CloudAccountId pulumi.StringOutput `pulumi:"cloudAccountId"` - // Creation time of the cluster - CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - FirewallRules ClusterFirewallRuleArrayOutput `pulumi:"firewallRules"` - // Name of the network - Name pulumi.StringOutput `pulumi:"name"` - Networks ClusterNetworkArrayOutput `pulumi:"networks"` - // Network location for nodes (public or private) + // List of backup store IDs to associate with the cluster + BackupStoreIds pulumi.StringArrayOutput `pulumi:"backupStoreIds"` + Capacity pulumi.IntOutput `pulumi:"capacity"` + CloudAccountId pulumi.StringOutput `pulumi:"cloudAccountId"` + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + FirewallRules ClusterFirewallRuleArrayOutput `pulumi:"firewallRules"` + Name pulumi.StringOutput `pulumi:"name"` + Networks ClusterNetworkArrayOutput `pulumi:"networks"` + // Node location of the cluster. Must be either 'public' or 'private'. NodeLocation pulumi.StringOutput `pulumi:"nodeLocation"` Nodes ClusterNodeArrayOutput `pulumi:"nodes"` Regions pulumi.StringArrayOutput `pulumi:"regions"` - // ID of the SSH key to add to the cluster nodes - SshKeyId pulumi.StringOutput `pulumi:"sshKeyId"` - // Status of the cluster - Status pulumi.StringOutput `pulumi:"status"` + // A map of tags to assign to the cluster + ResourceTags pulumi.StringMapOutput `pulumi:"resourceTags"` + SshKeyId pulumi.StringPtrOutput `pulumi:"sshKeyId"` + Status pulumi.StringOutput `pulumi:"status"` } // NewCluster registers a new resource with the given unique name, arguments, and options. @@ -44,6 +43,15 @@ func NewCluster(ctx *pulumi.Context, if args.CloudAccountId == nil { return nil, errors.New("invalid value for required argument 'CloudAccountId'") } + if args.Networks == nil { + return nil, errors.New("invalid value for required argument 'Networks'") + } + if args.NodeLocation == nil { + return nil, errors.New("invalid value for required argument 'NodeLocation'") + } + if args.Nodes == nil { + return nil, errors.New("invalid value for required argument 'Nodes'") + } if args.Regions == nil { return nil, errors.New("invalid value for required argument 'Regions'") } @@ -70,41 +78,41 @@ func GetCluster(ctx *pulumi.Context, // Input properties used for looking up and filtering Cluster resources. type clusterState struct { - // ID of the target cloud account - CloudAccountId *string `pulumi:"cloudAccountId"` - // Creation time of the cluster - CreatedAt *string `pulumi:"createdAt"` - FirewallRules []ClusterFirewallRule `pulumi:"firewallRules"` - // Name of the network - Name *string `pulumi:"name"` - Networks []ClusterNetwork `pulumi:"networks"` - // Network location for nodes (public or private) + // List of backup store IDs to associate with the cluster + BackupStoreIds []string `pulumi:"backupStoreIds"` + Capacity *int `pulumi:"capacity"` + CloudAccountId *string `pulumi:"cloudAccountId"` + CreatedAt *string `pulumi:"createdAt"` + FirewallRules []ClusterFirewallRule `pulumi:"firewallRules"` + Name *string `pulumi:"name"` + Networks []ClusterNetwork `pulumi:"networks"` + // Node location of the cluster. Must be either 'public' or 'private'. NodeLocation *string `pulumi:"nodeLocation"` Nodes []ClusterNode `pulumi:"nodes"` Regions []string `pulumi:"regions"` - // ID of the SSH key to add to the cluster nodes - SshKeyId *string `pulumi:"sshKeyId"` - // Status of the cluster - Status *string `pulumi:"status"` + // A map of tags to assign to the cluster + ResourceTags map[string]string `pulumi:"resourceTags"` + SshKeyId *string `pulumi:"sshKeyId"` + Status *string `pulumi:"status"` } type ClusterState struct { - // ID of the target cloud account + // List of backup store IDs to associate with the cluster + BackupStoreIds pulumi.StringArrayInput + Capacity pulumi.IntPtrInput CloudAccountId pulumi.StringPtrInput - // Creation time of the cluster - CreatedAt pulumi.StringPtrInput - FirewallRules ClusterFirewallRuleArrayInput - // Name of the network - Name pulumi.StringPtrInput - Networks ClusterNetworkArrayInput - // Network location for nodes (public or private) + CreatedAt pulumi.StringPtrInput + FirewallRules ClusterFirewallRuleArrayInput + Name pulumi.StringPtrInput + Networks ClusterNetworkArrayInput + // Node location of the cluster. Must be either 'public' or 'private'. NodeLocation pulumi.StringPtrInput Nodes ClusterNodeArrayInput Regions pulumi.StringArrayInput - // ID of the SSH key to add to the cluster nodes - SshKeyId pulumi.StringPtrInput - // Status of the cluster - Status pulumi.StringPtrInput + // A map of tags to assign to the cluster + ResourceTags pulumi.StringMapInput + SshKeyId pulumi.StringPtrInput + Status pulumi.StringPtrInput } func (ClusterState) ElementType() reflect.Type { @@ -112,34 +120,38 @@ func (ClusterState) ElementType() reflect.Type { } type clusterArgs struct { - // ID of the target cloud account + // List of backup store IDs to associate with the cluster + BackupStoreIds []string `pulumi:"backupStoreIds"` + Capacity *int `pulumi:"capacity"` CloudAccountId string `pulumi:"cloudAccountId"` FirewallRules []ClusterFirewallRule `pulumi:"firewallRules"` - // Name of the network - Name *string `pulumi:"name"` - Networks []ClusterNetwork `pulumi:"networks"` - // Network location for nodes (public or private) - NodeLocation *string `pulumi:"nodeLocation"` + Name *string `pulumi:"name"` + Networks []ClusterNetwork `pulumi:"networks"` + // Node location of the cluster. Must be either 'public' or 'private'. + NodeLocation string `pulumi:"nodeLocation"` Nodes []ClusterNode `pulumi:"nodes"` Regions []string `pulumi:"regions"` - // ID of the SSH key to add to the cluster nodes - SshKeyId *string `pulumi:"sshKeyId"` + // A map of tags to assign to the cluster + ResourceTags map[string]string `pulumi:"resourceTags"` + SshKeyId *string `pulumi:"sshKeyId"` } // The set of arguments for constructing a Cluster resource. type ClusterArgs struct { - // ID of the target cloud account + // List of backup store IDs to associate with the cluster + BackupStoreIds pulumi.StringArrayInput + Capacity pulumi.IntPtrInput CloudAccountId pulumi.StringInput FirewallRules ClusterFirewallRuleArrayInput - // Name of the network - Name pulumi.StringPtrInput - Networks ClusterNetworkArrayInput - // Network location for nodes (public or private) - NodeLocation pulumi.StringPtrInput + Name pulumi.StringPtrInput + Networks ClusterNetworkArrayInput + // Node location of the cluster. Must be either 'public' or 'private'. + NodeLocation pulumi.StringInput Nodes ClusterNodeArrayInput Regions pulumi.StringArrayInput - // ID of the SSH key to add to the cluster nodes - SshKeyId pulumi.StringPtrInput + // A map of tags to assign to the cluster + ResourceTags pulumi.StringMapInput + SshKeyId pulumi.StringPtrInput } func (ClusterArgs) ElementType() reflect.Type { @@ -229,12 +241,19 @@ func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOu return o } -// ID of the target cloud account +// List of backup store IDs to associate with the cluster +func (o ClusterOutput) BackupStoreIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.BackupStoreIds }).(pulumi.StringArrayOutput) +} + +func (o ClusterOutput) Capacity() pulumi.IntOutput { + return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.Capacity }).(pulumi.IntOutput) +} + func (o ClusterOutput) CloudAccountId() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.CloudAccountId }).(pulumi.StringOutput) } -// Creation time of the cluster func (o ClusterOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } @@ -243,7 +262,6 @@ func (o ClusterOutput) FirewallRules() ClusterFirewallRuleArrayOutput { return o.ApplyT(func(v *Cluster) ClusterFirewallRuleArrayOutput { return v.FirewallRules }).(ClusterFirewallRuleArrayOutput) } -// Name of the network func (o ClusterOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } @@ -252,7 +270,7 @@ func (o ClusterOutput) Networks() ClusterNetworkArrayOutput { return o.ApplyT(func(v *Cluster) ClusterNetworkArrayOutput { return v.Networks }).(ClusterNetworkArrayOutput) } -// Network location for nodes (public or private) +// Node location of the cluster. Must be either 'public' or 'private'. func (o ClusterOutput) NodeLocation() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.NodeLocation }).(pulumi.StringOutput) } @@ -265,12 +283,15 @@ func (o ClusterOutput) Regions() pulumi.StringArrayOutput { return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.Regions }).(pulumi.StringArrayOutput) } -// ID of the SSH key to add to the cluster nodes -func (o ClusterOutput) SshKeyId() pulumi.StringOutput { - return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.SshKeyId }).(pulumi.StringOutput) +// A map of tags to assign to the cluster +func (o ClusterOutput) ResourceTags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.ResourceTags }).(pulumi.StringMapOutput) +} + +func (o ClusterOutput) SshKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.SshKeyId }).(pulumi.StringPtrOutput) } -// Status of the cluster func (o ClusterOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) } diff --git a/sdk/go/pgedge/config/config.go b/sdk/go/pgedge/config/config.go index 6bc9271..87c7432 100644 --- a/sdk/go/pgedge/config/config.go +++ b/sdk/go/pgedge/config/config.go @@ -13,5 +13,13 @@ var _ = internal.GetEnvOrDefault // Base Url to use when connecting to the PgEdge service. func GetBaseUrl(ctx *pulumi.Context) string { - return config.Get(ctx, "pgedge:baseUrl") + v, err := config.Try(ctx, "pgedge:baseUrl") + if err == nil { + return v + } + var value string + if d := internal.GetEnvOrDefault(nil, nil, "PGEDGE_BASE_URL"); d != nil { + value = d.(string) + } + return value } diff --git a/sdk/go/pgedge/database.go b/sdk/go/pgedge/database.go index 5abbfec..8516936 100644 --- a/sdk/go/pgedge/database.go +++ b/sdk/go/pgedge/database.go @@ -12,30 +12,36 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Interface with the pgEdge service API. +// Manages a pgEdge database. type Database struct { pulumi.CustomResourceState - // ID of the cluster to place the database on + // Backup configuration for the database. + Backups DatabaseBackupsOutput `pulumi:"backups"` + // The ID of the cluster this database belongs to. ClusterId pulumi.StringOutput `pulumi:"clusterId"` - // Config version of the database + // List of components in the database. + Components DatabaseComponentArrayOutput `pulumi:"components"` + // The configuration version of the database. ConfigVersion pulumi.StringOutput `pulumi:"configVersion"` - // Created at of the database + // The timestamp when the database was created. CreatedAt pulumi.StringOutput `pulumi:"createdAt"` - // Domain of the database + // The domain associated with the database. Domain pulumi.StringOutput `pulumi:"domain"` - // Name of the database + // Extensions configuration for the database. + Extensions DatabaseExtensionsOutput `pulumi:"extensions"` + // The name of the database. Name pulumi.StringOutput `pulumi:"name"` - // Options for creating the database + // Map of nodes in the database. + Nodes DatabaseNodesMapOutput `pulumi:"nodes"` + // A list of options for the database. Options pulumi.StringArrayOutput `pulumi:"options"` - // Postgres version of the database + // The PostgreSQL version of the database. PgVersion pulumi.StringOutput `pulumi:"pgVersion"` - // Status of the database + // List of roles in the database. + Roles DatabaseRoleArrayOutput `pulumi:"roles"` + // The current status of the database. Status pulumi.StringOutput `pulumi:"status"` - // Storage used of the database - StorageUsed pulumi.IntOutput `pulumi:"storageUsed"` - // Updated at of the database - UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` } // NewDatabase registers a new resource with the given unique name, arguments, and options. @@ -48,6 +54,9 @@ func NewDatabase(ctx *pulumi.Context, if args.ClusterId == nil { return nil, errors.New("invalid value for required argument 'ClusterId'") } + if args.Nodes == nil { + return nil, errors.New("invalid value for required argument 'Nodes'") + } opts = internal.PkgResourceDefaultOpts(opts) var resource Database err := ctx.RegisterResource("pgedge:index/database:Database", name, args, &resource, opts...) @@ -71,49 +80,61 @@ func GetDatabase(ctx *pulumi.Context, // Input properties used for looking up and filtering Database resources. type databaseState struct { - // ID of the cluster to place the database on + // Backup configuration for the database. + Backups *DatabaseBackups `pulumi:"backups"` + // The ID of the cluster this database belongs to. ClusterId *string `pulumi:"clusterId"` - // Config version of the database + // List of components in the database. + Components []DatabaseComponent `pulumi:"components"` + // The configuration version of the database. ConfigVersion *string `pulumi:"configVersion"` - // Created at of the database + // The timestamp when the database was created. CreatedAt *string `pulumi:"createdAt"` - // Domain of the database + // The domain associated with the database. Domain *string `pulumi:"domain"` - // Name of the database + // Extensions configuration for the database. + Extensions *DatabaseExtensions `pulumi:"extensions"` + // The name of the database. Name *string `pulumi:"name"` - // Options for creating the database + // Map of nodes in the database. + Nodes map[string]DatabaseNodes `pulumi:"nodes"` + // A list of options for the database. Options []string `pulumi:"options"` - // Postgres version of the database + // The PostgreSQL version of the database. PgVersion *string `pulumi:"pgVersion"` - // Status of the database + // List of roles in the database. + Roles []DatabaseRole `pulumi:"roles"` + // The current status of the database. Status *string `pulumi:"status"` - // Storage used of the database - StorageUsed *int `pulumi:"storageUsed"` - // Updated at of the database - UpdatedAt *string `pulumi:"updatedAt"` } type DatabaseState struct { - // ID of the cluster to place the database on + // Backup configuration for the database. + Backups DatabaseBackupsPtrInput + // The ID of the cluster this database belongs to. ClusterId pulumi.StringPtrInput - // Config version of the database + // List of components in the database. + Components DatabaseComponentArrayInput + // The configuration version of the database. ConfigVersion pulumi.StringPtrInput - // Created at of the database + // The timestamp when the database was created. CreatedAt pulumi.StringPtrInput - // Domain of the database + // The domain associated with the database. Domain pulumi.StringPtrInput - // Name of the database + // Extensions configuration for the database. + Extensions DatabaseExtensionsPtrInput + // The name of the database. Name pulumi.StringPtrInput - // Options for creating the database + // Map of nodes in the database. + Nodes DatabaseNodesMapInput + // A list of options for the database. Options pulumi.StringArrayInput - // Postgres version of the database + // The PostgreSQL version of the database. PgVersion pulumi.StringPtrInput - // Status of the database + // List of roles in the database. + Roles DatabaseRoleArrayInput + // The current status of the database. Status pulumi.StringPtrInput - // Storage used of the database - StorageUsed pulumi.IntPtrInput - // Updated at of the database - UpdatedAt pulumi.StringPtrInput } func (DatabaseState) ElementType() reflect.Type { @@ -121,26 +142,42 @@ func (DatabaseState) ElementType() reflect.Type { } type databaseArgs struct { - // ID of the cluster to place the database on + // Backup configuration for the database. + Backups *DatabaseBackups `pulumi:"backups"` + // The ID of the cluster this database belongs to. ClusterId string `pulumi:"clusterId"` - // Config version of the database + // The configuration version of the database. ConfigVersion *string `pulumi:"configVersion"` - // Name of the database + // Extensions configuration for the database. + Extensions *DatabaseExtensions `pulumi:"extensions"` + // The name of the database. Name *string `pulumi:"name"` - // Options for creating the database + // Map of nodes in the database. + Nodes map[string]DatabaseNodes `pulumi:"nodes"` + // A list of options for the database. Options []string `pulumi:"options"` + // List of roles in the database. + Roles []DatabaseRole `pulumi:"roles"` } // The set of arguments for constructing a Database resource. type DatabaseArgs struct { - // ID of the cluster to place the database on + // Backup configuration for the database. + Backups DatabaseBackupsPtrInput + // The ID of the cluster this database belongs to. ClusterId pulumi.StringInput - // Config version of the database + // The configuration version of the database. ConfigVersion pulumi.StringPtrInput - // Name of the database + // Extensions configuration for the database. + Extensions DatabaseExtensionsPtrInput + // The name of the database. Name pulumi.StringPtrInput - // Options for creating the database + // Map of nodes in the database. + Nodes DatabaseNodesMapInput + // A list of options for the database. Options pulumi.StringArrayInput + // List of roles in the database. + Roles DatabaseRoleArrayInput } func (DatabaseArgs) ElementType() reflect.Type { @@ -230,54 +267,69 @@ func (o DatabaseOutput) ToDatabaseOutputWithContext(ctx context.Context) Databas return o } -// ID of the cluster to place the database on +// Backup configuration for the database. +func (o DatabaseOutput) Backups() DatabaseBackupsOutput { + return o.ApplyT(func(v *Database) DatabaseBackupsOutput { return v.Backups }).(DatabaseBackupsOutput) +} + +// The ID of the cluster this database belongs to. func (o DatabaseOutput) ClusterId() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.ClusterId }).(pulumi.StringOutput) } -// Config version of the database +// List of components in the database. +func (o DatabaseOutput) Components() DatabaseComponentArrayOutput { + return o.ApplyT(func(v *Database) DatabaseComponentArrayOutput { return v.Components }).(DatabaseComponentArrayOutput) +} + +// The configuration version of the database. func (o DatabaseOutput) ConfigVersion() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.ConfigVersion }).(pulumi.StringOutput) } -// Created at of the database +// The timestamp when the database was created. func (o DatabaseOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } -// Domain of the database +// The domain associated with the database. func (o DatabaseOutput) Domain() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Domain }).(pulumi.StringOutput) } -// Name of the database +// Extensions configuration for the database. +func (o DatabaseOutput) Extensions() DatabaseExtensionsOutput { + return o.ApplyT(func(v *Database) DatabaseExtensionsOutput { return v.Extensions }).(DatabaseExtensionsOutput) +} + +// The name of the database. func (o DatabaseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// Options for creating the database +// Map of nodes in the database. +func (o DatabaseOutput) Nodes() DatabaseNodesMapOutput { + return o.ApplyT(func(v *Database) DatabaseNodesMapOutput { return v.Nodes }).(DatabaseNodesMapOutput) +} + +// A list of options for the database. func (o DatabaseOutput) Options() pulumi.StringArrayOutput { return o.ApplyT(func(v *Database) pulumi.StringArrayOutput { return v.Options }).(pulumi.StringArrayOutput) } -// Postgres version of the database +// The PostgreSQL version of the database. func (o DatabaseOutput) PgVersion() pulumi.StringOutput { return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.PgVersion }).(pulumi.StringOutput) } -// Status of the database -func (o DatabaseOutput) Status() pulumi.StringOutput { - return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +// List of roles in the database. +func (o DatabaseOutput) Roles() DatabaseRoleArrayOutput { + return o.ApplyT(func(v *Database) DatabaseRoleArrayOutput { return v.Roles }).(DatabaseRoleArrayOutput) } -// Storage used of the database -func (o DatabaseOutput) StorageUsed() pulumi.IntOutput { - return o.ApplyT(func(v *Database) pulumi.IntOutput { return v.StorageUsed }).(pulumi.IntOutput) -} - -// Updated at of the database -func (o DatabaseOutput) UpdatedAt() pulumi.StringOutput { - return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +// The current status of the database. +func (o DatabaseOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) } type DatabaseArrayOutput struct{ *pulumi.OutputState } diff --git a/sdk/go/pgedge/getBackupStores.go b/sdk/go/pgedge/getBackupStores.go new file mode 100644 index 0000000..5948ac0 --- /dev/null +++ b/sdk/go/pgedge/getBackupStores.go @@ -0,0 +1,68 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package pgedge + +import ( + "context" + "reflect" + + "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +func GetBackupStores(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetBackupStoresResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetBackupStoresResult + err := ctx.Invoke("pgedge:index/getBackupStores:getBackupStores", nil, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of values returned by getBackupStores. +type GetBackupStoresResult struct { + BackupStores []GetBackupStoresBackupStore `pulumi:"backupStores"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` +} + +func GetBackupStoresOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetBackupStoresResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetBackupStoresResult, error) { + r, err := GetBackupStores(ctx, opts...) + var s GetBackupStoresResult + if r != nil { + s = *r + } + return s, err + }).(GetBackupStoresResultOutput) +} + +// A collection of values returned by getBackupStores. +type GetBackupStoresResultOutput struct{ *pulumi.OutputState } + +func (GetBackupStoresResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupStoresResult)(nil)).Elem() +} + +func (o GetBackupStoresResultOutput) ToGetBackupStoresResultOutput() GetBackupStoresResultOutput { + return o +} + +func (o GetBackupStoresResultOutput) ToGetBackupStoresResultOutputWithContext(ctx context.Context) GetBackupStoresResultOutput { + return o +} + +func (o GetBackupStoresResultOutput) BackupStores() GetBackupStoresBackupStoreArrayOutput { + return o.ApplyT(func(v GetBackupStoresResult) []GetBackupStoresBackupStore { return v.BackupStores }).(GetBackupStoresBackupStoreArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetBackupStoresResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetBackupStoresResultOutput{}) +} diff --git a/sdk/go/pgedge/getCloudAccounts.go b/sdk/go/pgedge/getCloudAccounts.go new file mode 100644 index 0000000..d900b80 --- /dev/null +++ b/sdk/go/pgedge/getCloudAccounts.go @@ -0,0 +1,69 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package pgedge + +import ( + "context" + "reflect" + + "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Data source for pgEdge cloud accounts. +func GetCloudAccounts(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetCloudAccountsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetCloudAccountsResult + err := ctx.Invoke("pgedge:index/getCloudAccounts:getCloudAccounts", nil, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of values returned by getCloudAccounts. +type GetCloudAccountsResult struct { + CloudAccounts []GetCloudAccountsCloudAccount `pulumi:"cloudAccounts"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` +} + +func GetCloudAccountsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetCloudAccountsResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetCloudAccountsResult, error) { + r, err := GetCloudAccounts(ctx, opts...) + var s GetCloudAccountsResult + if r != nil { + s = *r + } + return s, err + }).(GetCloudAccountsResultOutput) +} + +// A collection of values returned by getCloudAccounts. +type GetCloudAccountsResultOutput struct{ *pulumi.OutputState } + +func (GetCloudAccountsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetCloudAccountsResult)(nil)).Elem() +} + +func (o GetCloudAccountsResultOutput) ToGetCloudAccountsResultOutput() GetCloudAccountsResultOutput { + return o +} + +func (o GetCloudAccountsResultOutput) ToGetCloudAccountsResultOutputWithContext(ctx context.Context) GetCloudAccountsResultOutput { + return o +} + +func (o GetCloudAccountsResultOutput) CloudAccounts() GetCloudAccountsCloudAccountArrayOutput { + return o.ApplyT(func(v GetCloudAccountsResult) []GetCloudAccountsCloudAccount { return v.CloudAccounts }).(GetCloudAccountsCloudAccountArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetCloudAccountsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetCloudAccountsResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetCloudAccountsResultOutput{}) +} diff --git a/sdk/go/pgedge/getClusters.go b/sdk/go/pgedge/getClusters.go index fb42f3f..6e3bff0 100644 --- a/sdk/go/pgedge/getClusters.go +++ b/sdk/go/pgedge/getClusters.go @@ -11,7 +11,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Interface with the pgEdge service API for clusters. +// Data source for pgEdge clusters. func GetClusters(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetClustersResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv GetClustersResult diff --git a/sdk/go/pgedge/getDatabases.go b/sdk/go/pgedge/getDatabases.go index b91cc79..ef13714 100644 --- a/sdk/go/pgedge/getDatabases.go +++ b/sdk/go/pgedge/getDatabases.go @@ -11,7 +11,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Interface with the pgEdge service API. +// Data source for pgEdge databases func GetDatabases(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetDatabasesResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv GetDatabasesResult diff --git a/sdk/go/pgedge/getSSHKeys.go b/sdk/go/pgedge/getSSHKeys.go new file mode 100644 index 0000000..37c8b45 --- /dev/null +++ b/sdk/go/pgedge/getSSHKeys.go @@ -0,0 +1,69 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package pgedge + +import ( + "context" + "reflect" + + "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Data source for pgEdge SSH keys. +func GetSSHKeys(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetSSHKeysResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetSSHKeysResult + err := ctx.Invoke("pgedge:index/getSSHKeys:getSSHKeys", nil, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of values returned by getSSHKeys. +type GetSSHKeysResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + SshKeys []GetSSHKeysSshKey `pulumi:"sshKeys"` +} + +func GetSSHKeysOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetSSHKeysResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetSSHKeysResult, error) { + r, err := GetSSHKeys(ctx, opts...) + var s GetSSHKeysResult + if r != nil { + s = *r + } + return s, err + }).(GetSSHKeysResultOutput) +} + +// A collection of values returned by getSSHKeys. +type GetSSHKeysResultOutput struct{ *pulumi.OutputState } + +func (GetSSHKeysResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSSHKeysResult)(nil)).Elem() +} + +func (o GetSSHKeysResultOutput) ToGetSSHKeysResultOutput() GetSSHKeysResultOutput { + return o +} + +func (o GetSSHKeysResultOutput) ToGetSSHKeysResultOutputWithContext(ctx context.Context) GetSSHKeysResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o GetSSHKeysResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetSSHKeysResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetSSHKeysResultOutput) SshKeys() GetSSHKeysSshKeyArrayOutput { + return o.ApplyT(func(v GetSSHKeysResult) []GetSSHKeysSshKey { return v.SshKeys }).(GetSSHKeysSshKeyArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetSSHKeysResultOutput{}) +} diff --git a/sdk/go/pgedge/init.go b/sdk/go/pgedge/init.go index 04dc3a7..35fed39 100644 --- a/sdk/go/pgedge/init.go +++ b/sdk/go/pgedge/init.go @@ -21,10 +21,16 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "pgedge:index/backupStore:BackupStore": + r = &BackupStore{} + case "pgedge:index/cloudAccount:CloudAccount": + r = &CloudAccount{} case "pgedge:index/cluster:Cluster": r = &Cluster{} case "pgedge:index/database:Database": r = &Database{} + case "pgedge:index/sSHKey:SSHKey": + r = &SSHKey{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -56,6 +62,16 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "pgedge", + "index/backupStore", + &module{version}, + ) + pulumi.RegisterResourceModule( + "pgedge", + "index/cloudAccount", + &module{version}, + ) pulumi.RegisterResourceModule( "pgedge", "index/cluster", @@ -66,6 +82,11 @@ func init() { "index/database", &module{version}, ) + pulumi.RegisterResourceModule( + "pgedge", + "index/sSHKey", + &module{version}, + ) pulumi.RegisterResourcePackage( "pgedge", &pkg{version}, diff --git a/sdk/go/pgedge/internal/pulumiUtilities.go b/sdk/go/pgedge/internal/pulumiUtilities.go index 788435c..c0d2c70 100644 --- a/sdk/go/pgedge/internal/pulumiUtilities.go +++ b/sdk/go/pgedge/internal/pulumiUtilities.go @@ -164,7 +164,7 @@ func callPlainInner( // 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/pgEdge/pulumi-pgedge")) version := SdkVersion if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) @@ -175,7 +175,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio // 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/pgEdge/pulumi-pgedge")) version := SdkVersion if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) diff --git a/sdk/go/pgedge/provider.go b/sdk/go/pgedge/provider.go index fee52b8..f1b1724 100644 --- a/sdk/go/pgedge/provider.go +++ b/sdk/go/pgedge/provider.go @@ -29,6 +29,11 @@ func NewProvider(ctx *pulumi.Context, args = &ProviderArgs{} } + if args.BaseUrl == nil { + if d := internal.GetEnvOrDefault(nil, nil, "PGEDGE_BASE_URL"); d != nil { + args.BaseUrl = pulumi.StringPtr(d.(string)) + } + } opts = internal.PkgResourceDefaultOpts(opts) var resource Provider err := ctx.RegisterResource("pulumi:providers:pgedge", name, args, &resource, opts...) diff --git a/sdk/go/pgedge/pulumi-plugin.json b/sdk/go/pgedge/pulumi-plugin.json index 33cf034..bc61944 100644 --- a/sdk/go/pgedge/pulumi-plugin.json +++ b/sdk/go/pgedge/pulumi-plugin.json @@ -1,4 +1,5 @@ { "resource": true, - "name": "pgedge" + "name": "pgedge", + "server": "github://api.github.com/pgEdge/pulumi-pgedge" } diff --git a/sdk/go/pgedge/pulumiTypes.go b/sdk/go/pgedge/pulumiTypes.go index baa0b3a..bb91765 100644 --- a/sdk/go/pgedge/pulumiTypes.go +++ b/sdk/go/pgedge/pulumiTypes.go @@ -14,9 +14,8 @@ import ( var _ = internal.GetEnvOrDefault type ClusterFirewallRule struct { - // Port whose traffic is allowed - Port int `pulumi:"port"` - // CIDRs and/or IP addresses allowed + Name string `pulumi:"name"` + Port int `pulumi:"port"` Sources []string `pulumi:"sources"` } @@ -32,9 +31,8 @@ type ClusterFirewallRuleInput interface { } type ClusterFirewallRuleArgs struct { - // Port whose traffic is allowed - Port pulumi.IntInput `pulumi:"port"` - // CIDRs and/or IP addresses allowed + Name pulumi.StringInput `pulumi:"name"` + Port pulumi.IntInput `pulumi:"port"` Sources pulumi.StringArrayInput `pulumi:"sources"` } @@ -89,12 +87,14 @@ func (o ClusterFirewallRuleOutput) ToClusterFirewallRuleOutputWithContext(ctx co return o } -// Port whose traffic is allowed +func (o ClusterFirewallRuleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ClusterFirewallRule) string { return v.Name }).(pulumi.StringOutput) +} + func (o ClusterFirewallRuleOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v ClusterFirewallRule) int { return v.Port }).(pulumi.IntOutput) } -// CIDRs and/or IP addresses allowed func (o ClusterFirewallRuleOutput) Sources() pulumi.StringArrayOutput { return o.ApplyT(func(v ClusterFirewallRule) []string { return v.Sources }).(pulumi.StringArrayOutput) } @@ -120,16 +120,18 @@ func (o ClusterFirewallRuleArrayOutput) Index(i pulumi.IntInput) ClusterFirewall } type ClusterNetwork struct { - // CIDR range for the network - Cidr *string `pulumi:"cidr"` - // Is the network externally defined + // CIDR of the network + Cidr string `pulumi:"cidr"` + // Whether the network is external External *bool `pulumi:"external"` - // ID of the network, if externally defined + // External ID of the network ExternalId *string `pulumi:"externalId"` // Name of the network - Name *string `pulumi:"name"` + Name *string `pulumi:"name"` + // List of private subnets PrivateSubnets []string `pulumi:"privateSubnets"` - PublicSubnets []string `pulumi:"publicSubnets"` + // List of public subnets + PublicSubnets []string `pulumi:"publicSubnets"` // Region of the network Region string `pulumi:"region"` } @@ -146,16 +148,18 @@ type ClusterNetworkInput interface { } type ClusterNetworkArgs struct { - // CIDR range for the network - Cidr pulumi.StringPtrInput `pulumi:"cidr"` - // Is the network externally defined + // CIDR of the network + Cidr pulumi.StringInput `pulumi:"cidr"` + // Whether the network is external External pulumi.BoolPtrInput `pulumi:"external"` - // ID of the network, if externally defined + // External ID of the network ExternalId pulumi.StringPtrInput `pulumi:"externalId"` // Name of the network - Name pulumi.StringPtrInput `pulumi:"name"` + Name pulumi.StringPtrInput `pulumi:"name"` + // List of private subnets PrivateSubnets pulumi.StringArrayInput `pulumi:"privateSubnets"` - PublicSubnets pulumi.StringArrayInput `pulumi:"publicSubnets"` + // List of public subnets + PublicSubnets pulumi.StringArrayInput `pulumi:"publicSubnets"` // Region of the network Region pulumi.StringInput `pulumi:"region"` } @@ -211,17 +215,17 @@ func (o ClusterNetworkOutput) ToClusterNetworkOutputWithContext(ctx context.Cont return o } -// CIDR range for the network -func (o ClusterNetworkOutput) Cidr() pulumi.StringPtrOutput { - return o.ApplyT(func(v ClusterNetwork) *string { return v.Cidr }).(pulumi.StringPtrOutput) +// CIDR of the network +func (o ClusterNetworkOutput) Cidr() pulumi.StringOutput { + return o.ApplyT(func(v ClusterNetwork) string { return v.Cidr }).(pulumi.StringOutput) } -// Is the network externally defined +// Whether the network is external func (o ClusterNetworkOutput) External() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterNetwork) *bool { return v.External }).(pulumi.BoolPtrOutput) } -// ID of the network, if externally defined +// External ID of the network func (o ClusterNetworkOutput) ExternalId() pulumi.StringPtrOutput { return o.ApplyT(func(v ClusterNetwork) *string { return v.ExternalId }).(pulumi.StringPtrOutput) } @@ -231,10 +235,12 @@ func (o ClusterNetworkOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v ClusterNetwork) *string { return v.Name }).(pulumi.StringPtrOutput) } +// List of private subnets func (o ClusterNetworkOutput) PrivateSubnets() pulumi.StringArrayOutput { return o.ApplyT(func(v ClusterNetwork) []string { return v.PrivateSubnets }).(pulumi.StringArrayOutput) } +// List of public subnets func (o ClusterNetworkOutput) PublicSubnets() pulumi.StringArrayOutput { return o.ApplyT(func(v ClusterNetwork) []string { return v.PublicSubnets }).(pulumi.StringArrayOutput) } @@ -265,21 +271,13 @@ func (o ClusterNetworkArrayOutput) Index(i pulumi.IntInput) ClusterNetworkOutput } type ClusterNode struct { - // Cloud provider availability zone name AvailabilityZone *string `pulumi:"availabilityZone"` - // Instance type used for the node - InstanceType *string `pulumi:"instanceType"` - // Node name - Name *string `pulumi:"name"` - Options []string `pulumi:"options"` - // Cloud provider region - Region string `pulumi:"region"` - // Volume IOPS of the node data volume - VolumeIops *int `pulumi:"volumeIops"` - // Volume size of the node data volume - VolumeSize *int `pulumi:"volumeSize"` - // Volume type of the node data volume - VolumeType *string `pulumi:"volumeType"` + InstanceType string `pulumi:"instanceType"` + Name string `pulumi:"name"` + Region string `pulumi:"region"` + VolumeIops *int `pulumi:"volumeIops"` + VolumeSize *int `pulumi:"volumeSize"` + VolumeType *string `pulumi:"volumeType"` } // ClusterNodeInput is an input type that accepts ClusterNodeArgs and ClusterNodeOutput values. @@ -294,21 +292,13 @@ type ClusterNodeInput interface { } type ClusterNodeArgs struct { - // Cloud provider availability zone name AvailabilityZone pulumi.StringPtrInput `pulumi:"availabilityZone"` - // Instance type used for the node - InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` - // Node name - Name pulumi.StringPtrInput `pulumi:"name"` - Options pulumi.StringArrayInput `pulumi:"options"` - // Cloud provider region - Region pulumi.StringInput `pulumi:"region"` - // Volume IOPS of the node data volume - VolumeIops pulumi.IntPtrInput `pulumi:"volumeIops"` - // Volume size of the node data volume - VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` - // Volume type of the node data volume - VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` + InstanceType pulumi.StringInput `pulumi:"instanceType"` + Name pulumi.StringInput `pulumi:"name"` + Region pulumi.StringInput `pulumi:"region"` + VolumeIops pulumi.IntPtrInput `pulumi:"volumeIops"` + VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` + VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } func (ClusterNodeArgs) ElementType() reflect.Type { @@ -362,41 +352,30 @@ func (o ClusterNodeOutput) ToClusterNodeOutputWithContext(ctx context.Context) C return o } -// Cloud provider availability zone name func (o ClusterNodeOutput) AvailabilityZone() pulumi.StringPtrOutput { return o.ApplyT(func(v ClusterNode) *string { return v.AvailabilityZone }).(pulumi.StringPtrOutput) } -// Instance type used for the node -func (o ClusterNodeOutput) InstanceType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ClusterNode) *string { return v.InstanceType }).(pulumi.StringPtrOutput) -} - -// Node name -func (o ClusterNodeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ClusterNode) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ClusterNodeOutput) InstanceType() pulumi.StringOutput { + return o.ApplyT(func(v ClusterNode) string { return v.InstanceType }).(pulumi.StringOutput) } -func (o ClusterNodeOutput) Options() pulumi.StringArrayOutput { - return o.ApplyT(func(v ClusterNode) []string { return v.Options }).(pulumi.StringArrayOutput) +func (o ClusterNodeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ClusterNode) string { return v.Name }).(pulumi.StringOutput) } -// Cloud provider region func (o ClusterNodeOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v ClusterNode) string { return v.Region }).(pulumi.StringOutput) } -// Volume IOPS of the node data volume func (o ClusterNodeOutput) VolumeIops() pulumi.IntPtrOutput { return o.ApplyT(func(v ClusterNode) *int { return v.VolumeIops }).(pulumi.IntPtrOutput) } -// Volume size of the node data volume func (o ClusterNodeOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v ClusterNode) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) } -// Volume type of the node data volume func (o ClusterNodeOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v ClusterNode) *string { return v.VolumeType }).(pulumi.StringPtrOutput) } @@ -421,259 +400,2530 @@ func (o ClusterNodeArrayOutput) Index(i pulumi.IntInput) ClusterNodeOutput { }).(ClusterNodeOutput) } -type GetClustersCluster struct { - CloudAccount GetClustersClusterCloudAccount `pulumi:"cloudAccount"` - // Cloud account ID of the cluster - CloudAccountId string `pulumi:"cloudAccountId"` - // Created at of the cluster - CreatedAt string `pulumi:"createdAt"` - FirewallRules []GetClustersClusterFirewallRule `pulumi:"firewallRules"` - // ID of the cluster - Id string `pulumi:"id"` - // Name of the cluster - Name string `pulumi:"name"` - Networks []GetClustersClusterNetwork `pulumi:"networks"` - // Node location of the cluster - NodeLocation string `pulumi:"nodeLocation"` - Nodes []GetClustersClusterNode `pulumi:"nodes"` - Regions []string `pulumi:"regions"` - // SSH key ID of the cluster - SshKeyId string `pulumi:"sshKeyId"` - // Status of the cluster - Status string `pulumi:"status"` +type DatabaseBackups struct { + // List of backup configurations. + Configs []DatabaseBackupsConfig `pulumi:"configs"` + // The backup provider. + Provider *string `pulumi:"provider"` } -// GetClustersClusterInput is an input type that accepts GetClustersClusterArgs and GetClustersClusterOutput values. -// You can construct a concrete instance of `GetClustersClusterInput` via: +// DatabaseBackupsInput is an input type that accepts DatabaseBackupsArgs and DatabaseBackupsOutput values. +// You can construct a concrete instance of `DatabaseBackupsInput` via: // -// GetClustersClusterArgs{...} -type GetClustersClusterInput interface { +// DatabaseBackupsArgs{...} +type DatabaseBackupsInput interface { pulumi.Input - ToGetClustersClusterOutput() GetClustersClusterOutput - ToGetClustersClusterOutputWithContext(context.Context) GetClustersClusterOutput + ToDatabaseBackupsOutput() DatabaseBackupsOutput + ToDatabaseBackupsOutputWithContext(context.Context) DatabaseBackupsOutput } -type GetClustersClusterArgs struct { - CloudAccount GetClustersClusterCloudAccountInput `pulumi:"cloudAccount"` - // Cloud account ID of the cluster - CloudAccountId pulumi.StringInput `pulumi:"cloudAccountId"` - // Created at of the cluster - CreatedAt pulumi.StringInput `pulumi:"createdAt"` - FirewallRules GetClustersClusterFirewallRuleArrayInput `pulumi:"firewallRules"` - // ID of the cluster - Id pulumi.StringInput `pulumi:"id"` - // Name of the cluster - Name pulumi.StringInput `pulumi:"name"` - Networks GetClustersClusterNetworkArrayInput `pulumi:"networks"` - // Node location of the cluster - NodeLocation pulumi.StringInput `pulumi:"nodeLocation"` - Nodes GetClustersClusterNodeArrayInput `pulumi:"nodes"` - Regions pulumi.StringArrayInput `pulumi:"regions"` - // SSH key ID of the cluster - SshKeyId pulumi.StringInput `pulumi:"sshKeyId"` - // Status of the cluster - Status pulumi.StringInput `pulumi:"status"` +type DatabaseBackupsArgs struct { + // List of backup configurations. + Configs DatabaseBackupsConfigArrayInput `pulumi:"configs"` + // The backup provider. + Provider pulumi.StringPtrInput `pulumi:"provider"` } -func (GetClustersClusterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetClustersCluster)(nil)).Elem() +func (DatabaseBackupsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackups)(nil)).Elem() } -func (i GetClustersClusterArgs) ToGetClustersClusterOutput() GetClustersClusterOutput { - return i.ToGetClustersClusterOutputWithContext(context.Background()) +func (i DatabaseBackupsArgs) ToDatabaseBackupsOutput() DatabaseBackupsOutput { + return i.ToDatabaseBackupsOutputWithContext(context.Background()) } -func (i GetClustersClusterArgs) ToGetClustersClusterOutputWithContext(ctx context.Context) GetClustersClusterOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetClustersClusterOutput) +func (i DatabaseBackupsArgs) ToDatabaseBackupsOutputWithContext(ctx context.Context) DatabaseBackupsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsOutput) } -// GetClustersClusterArrayInput is an input type that accepts GetClustersClusterArray and GetClustersClusterArrayOutput values. -// You can construct a concrete instance of `GetClustersClusterArrayInput` via: +func (i DatabaseBackupsArgs) ToDatabaseBackupsPtrOutput() DatabaseBackupsPtrOutput { + return i.ToDatabaseBackupsPtrOutputWithContext(context.Background()) +} + +func (i DatabaseBackupsArgs) ToDatabaseBackupsPtrOutputWithContext(ctx context.Context) DatabaseBackupsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsOutput).ToDatabaseBackupsPtrOutputWithContext(ctx) +} + +// DatabaseBackupsPtrInput is an input type that accepts DatabaseBackupsArgs, DatabaseBackupsPtr and DatabaseBackupsPtrOutput values. +// You can construct a concrete instance of `DatabaseBackupsPtrInput` via: // -// GetClustersClusterArray{ GetClustersClusterArgs{...} } -type GetClustersClusterArrayInput interface { +// DatabaseBackupsArgs{...} +// +// or: +// +// nil +type DatabaseBackupsPtrInput interface { pulumi.Input - ToGetClustersClusterArrayOutput() GetClustersClusterArrayOutput - ToGetClustersClusterArrayOutputWithContext(context.Context) GetClustersClusterArrayOutput + ToDatabaseBackupsPtrOutput() DatabaseBackupsPtrOutput + ToDatabaseBackupsPtrOutputWithContext(context.Context) DatabaseBackupsPtrOutput } -type GetClustersClusterArray []GetClustersClusterInput +type databaseBackupsPtrType DatabaseBackupsArgs -func (GetClustersClusterArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetClustersCluster)(nil)).Elem() +func DatabaseBackupsPtr(v *DatabaseBackupsArgs) DatabaseBackupsPtrInput { + return (*databaseBackupsPtrType)(v) } -func (i GetClustersClusterArray) ToGetClustersClusterArrayOutput() GetClustersClusterArrayOutput { - return i.ToGetClustersClusterArrayOutputWithContext(context.Background()) +func (*databaseBackupsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseBackups)(nil)).Elem() } -func (i GetClustersClusterArray) ToGetClustersClusterArrayOutputWithContext(ctx context.Context) GetClustersClusterArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetClustersClusterArrayOutput) +func (i *databaseBackupsPtrType) ToDatabaseBackupsPtrOutput() DatabaseBackupsPtrOutput { + return i.ToDatabaseBackupsPtrOutputWithContext(context.Background()) } -type GetClustersClusterOutput struct{ *pulumi.OutputState } +func (i *databaseBackupsPtrType) ToDatabaseBackupsPtrOutputWithContext(ctx context.Context) DatabaseBackupsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsPtrOutput) +} -func (GetClustersClusterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetClustersCluster)(nil)).Elem() +type DatabaseBackupsOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackups)(nil)).Elem() } -func (o GetClustersClusterOutput) ToGetClustersClusterOutput() GetClustersClusterOutput { +func (o DatabaseBackupsOutput) ToDatabaseBackupsOutput() DatabaseBackupsOutput { return o } -func (o GetClustersClusterOutput) ToGetClustersClusterOutputWithContext(ctx context.Context) GetClustersClusterOutput { +func (o DatabaseBackupsOutput) ToDatabaseBackupsOutputWithContext(ctx context.Context) DatabaseBackupsOutput { return o } -func (o GetClustersClusterOutput) CloudAccount() GetClustersClusterCloudAccountOutput { - return o.ApplyT(func(v GetClustersCluster) GetClustersClusterCloudAccount { return v.CloudAccount }).(GetClustersClusterCloudAccountOutput) +func (o DatabaseBackupsOutput) ToDatabaseBackupsPtrOutput() DatabaseBackupsPtrOutput { + return o.ToDatabaseBackupsPtrOutputWithContext(context.Background()) } -// Cloud account ID of the cluster -func (o GetClustersClusterOutput) CloudAccountId() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersCluster) string { return v.CloudAccountId }).(pulumi.StringOutput) +func (o DatabaseBackupsOutput) ToDatabaseBackupsPtrOutputWithContext(ctx context.Context) DatabaseBackupsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DatabaseBackups) *DatabaseBackups { + return &v + }).(DatabaseBackupsPtrOutput) } -// Created at of the cluster -func (o GetClustersClusterOutput) CreatedAt() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersCluster) string { return v.CreatedAt }).(pulumi.StringOutput) +// List of backup configurations. +func (o DatabaseBackupsOutput) Configs() DatabaseBackupsConfigArrayOutput { + return o.ApplyT(func(v DatabaseBackups) []DatabaseBackupsConfig { return v.Configs }).(DatabaseBackupsConfigArrayOutput) } -func (o GetClustersClusterOutput) FirewallRules() GetClustersClusterFirewallRuleArrayOutput { - return o.ApplyT(func(v GetClustersCluster) []GetClustersClusterFirewallRule { return v.FirewallRules }).(GetClustersClusterFirewallRuleArrayOutput) +// The backup provider. +func (o DatabaseBackupsOutput) Provider() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackups) *string { return v.Provider }).(pulumi.StringPtrOutput) } -// ID of the cluster -func (o GetClustersClusterOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersCluster) string { return v.Id }).(pulumi.StringOutput) +type DatabaseBackupsPtrOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseBackups)(nil)).Elem() } -// Name of the cluster -func (o GetClustersClusterOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersCluster) string { return v.Name }).(pulumi.StringOutput) +func (o DatabaseBackupsPtrOutput) ToDatabaseBackupsPtrOutput() DatabaseBackupsPtrOutput { + return o } -func (o GetClustersClusterOutput) Networks() GetClustersClusterNetworkArrayOutput { - return o.ApplyT(func(v GetClustersCluster) []GetClustersClusterNetwork { return v.Networks }).(GetClustersClusterNetworkArrayOutput) +func (o DatabaseBackupsPtrOutput) ToDatabaseBackupsPtrOutputWithContext(ctx context.Context) DatabaseBackupsPtrOutput { + return o } -// Node location of the cluster -func (o GetClustersClusterOutput) NodeLocation() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersCluster) string { return v.NodeLocation }).(pulumi.StringOutput) +func (o DatabaseBackupsPtrOutput) Elem() DatabaseBackupsOutput { + return o.ApplyT(func(v *DatabaseBackups) DatabaseBackups { + if v != nil { + return *v + } + var ret DatabaseBackups + return ret + }).(DatabaseBackupsOutput) +} + +// List of backup configurations. +func (o DatabaseBackupsPtrOutput) Configs() DatabaseBackupsConfigArrayOutput { + return o.ApplyT(func(v *DatabaseBackups) []DatabaseBackupsConfig { + if v == nil { + return nil + } + return v.Configs + }).(DatabaseBackupsConfigArrayOutput) +} + +// The backup provider. +func (o DatabaseBackupsPtrOutput) Provider() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseBackups) *string { + if v == nil { + return nil + } + return v.Provider + }).(pulumi.StringPtrOutput) +} + +type DatabaseBackupsConfig struct { + // Unique identifier for the backup config. + Id *string `pulumi:"id"` + // Name of the node. + NodeName *string `pulumi:"nodeName"` + // List of backup repositories. + Repositories []DatabaseBackupsConfigRepository `pulumi:"repositories"` + // List of backup schedules. + Schedules []DatabaseBackupsConfigSchedule `pulumi:"schedules"` +} + +// DatabaseBackupsConfigInput is an input type that accepts DatabaseBackupsConfigArgs and DatabaseBackupsConfigOutput values. +// You can construct a concrete instance of `DatabaseBackupsConfigInput` via: +// +// DatabaseBackupsConfigArgs{...} +type DatabaseBackupsConfigInput interface { + pulumi.Input + + ToDatabaseBackupsConfigOutput() DatabaseBackupsConfigOutput + ToDatabaseBackupsConfigOutputWithContext(context.Context) DatabaseBackupsConfigOutput } -func (o GetClustersClusterOutput) Nodes() GetClustersClusterNodeArrayOutput { - return o.ApplyT(func(v GetClustersCluster) []GetClustersClusterNode { return v.Nodes }).(GetClustersClusterNodeArrayOutput) +type DatabaseBackupsConfigArgs struct { + // Unique identifier for the backup config. + Id pulumi.StringPtrInput `pulumi:"id"` + // Name of the node. + NodeName pulumi.StringPtrInput `pulumi:"nodeName"` + // List of backup repositories. + Repositories DatabaseBackupsConfigRepositoryArrayInput `pulumi:"repositories"` + // List of backup schedules. + Schedules DatabaseBackupsConfigScheduleArrayInput `pulumi:"schedules"` } -func (o GetClustersClusterOutput) Regions() pulumi.StringArrayOutput { - return o.ApplyT(func(v GetClustersCluster) []string { return v.Regions }).(pulumi.StringArrayOutput) +func (DatabaseBackupsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackupsConfig)(nil)).Elem() } -// SSH key ID of the cluster -func (o GetClustersClusterOutput) SshKeyId() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersCluster) string { return v.SshKeyId }).(pulumi.StringOutput) +func (i DatabaseBackupsConfigArgs) ToDatabaseBackupsConfigOutput() DatabaseBackupsConfigOutput { + return i.ToDatabaseBackupsConfigOutputWithContext(context.Background()) } -// Status of the cluster -func (o GetClustersClusterOutput) Status() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersCluster) string { return v.Status }).(pulumi.StringOutput) +func (i DatabaseBackupsConfigArgs) ToDatabaseBackupsConfigOutputWithContext(ctx context.Context) DatabaseBackupsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsConfigOutput) } -type GetClustersClusterArrayOutput struct{ *pulumi.OutputState } +// DatabaseBackupsConfigArrayInput is an input type that accepts DatabaseBackupsConfigArray and DatabaseBackupsConfigArrayOutput values. +// You can construct a concrete instance of `DatabaseBackupsConfigArrayInput` via: +// +// DatabaseBackupsConfigArray{ DatabaseBackupsConfigArgs{...} } +type DatabaseBackupsConfigArrayInput interface { + pulumi.Input -func (GetClustersClusterArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetClustersCluster)(nil)).Elem() + ToDatabaseBackupsConfigArrayOutput() DatabaseBackupsConfigArrayOutput + ToDatabaseBackupsConfigArrayOutputWithContext(context.Context) DatabaseBackupsConfigArrayOutput } -func (o GetClustersClusterArrayOutput) ToGetClustersClusterArrayOutput() GetClustersClusterArrayOutput { +type DatabaseBackupsConfigArray []DatabaseBackupsConfigInput + +func (DatabaseBackupsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseBackupsConfig)(nil)).Elem() +} + +func (i DatabaseBackupsConfigArray) ToDatabaseBackupsConfigArrayOutput() DatabaseBackupsConfigArrayOutput { + return i.ToDatabaseBackupsConfigArrayOutputWithContext(context.Background()) +} + +func (i DatabaseBackupsConfigArray) ToDatabaseBackupsConfigArrayOutputWithContext(ctx context.Context) DatabaseBackupsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsConfigArrayOutput) +} + +type DatabaseBackupsConfigOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackupsConfig)(nil)).Elem() +} + +func (o DatabaseBackupsConfigOutput) ToDatabaseBackupsConfigOutput() DatabaseBackupsConfigOutput { return o } -func (o GetClustersClusterArrayOutput) ToGetClustersClusterArrayOutputWithContext(ctx context.Context) GetClustersClusterArrayOutput { +func (o DatabaseBackupsConfigOutput) ToDatabaseBackupsConfigOutputWithContext(ctx context.Context) DatabaseBackupsConfigOutput { return o } -func (o GetClustersClusterArrayOutput) Index(i pulumi.IntInput) GetClustersClusterOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClustersCluster { - return vs[0].([]GetClustersCluster)[vs[1].(int)] - }).(GetClustersClusterOutput) +// Unique identifier for the backup config. +func (o DatabaseBackupsConfigOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfig) *string { return v.Id }).(pulumi.StringPtrOutput) } -type GetClustersClusterCloudAccount struct { - // Display name of the node - Id string `pulumi:"id"` - // IP address of the node - Name string `pulumi:"name"` - // Type of the node - Type string `pulumi:"type"` +// Name of the node. +func (o DatabaseBackupsConfigOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfig) *string { return v.NodeName }).(pulumi.StringPtrOutput) +} + +// List of backup repositories. +func (o DatabaseBackupsConfigOutput) Repositories() DatabaseBackupsConfigRepositoryArrayOutput { + return o.ApplyT(func(v DatabaseBackupsConfig) []DatabaseBackupsConfigRepository { return v.Repositories }).(DatabaseBackupsConfigRepositoryArrayOutput) +} + +// List of backup schedules. +func (o DatabaseBackupsConfigOutput) Schedules() DatabaseBackupsConfigScheduleArrayOutput { + return o.ApplyT(func(v DatabaseBackupsConfig) []DatabaseBackupsConfigSchedule { return v.Schedules }).(DatabaseBackupsConfigScheduleArrayOutput) +} + +type DatabaseBackupsConfigArrayOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseBackupsConfig)(nil)).Elem() } -// GetClustersClusterCloudAccountInput is an input type that accepts GetClustersClusterCloudAccountArgs and GetClustersClusterCloudAccountOutput values. -// You can construct a concrete instance of `GetClustersClusterCloudAccountInput` via: +func (o DatabaseBackupsConfigArrayOutput) ToDatabaseBackupsConfigArrayOutput() DatabaseBackupsConfigArrayOutput { + return o +} + +func (o DatabaseBackupsConfigArrayOutput) ToDatabaseBackupsConfigArrayOutputWithContext(ctx context.Context) DatabaseBackupsConfigArrayOutput { + return o +} + +func (o DatabaseBackupsConfigArrayOutput) Index(i pulumi.IntInput) DatabaseBackupsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DatabaseBackupsConfig { + return vs[0].([]DatabaseBackupsConfig)[vs[1].(int)] + }).(DatabaseBackupsConfigOutput) +} + +type DatabaseBackupsConfigRepository struct { + // Azure account. + AzureAccount *string `pulumi:"azureAccount"` + // Azure container. + AzureContainer *string `pulumi:"azureContainer"` + // Azure endpoint. + AzureEndpoint *string `pulumi:"azureEndpoint"` + // ID of the backup store. + BackupStoreId *string `pulumi:"backupStoreId"` + // Base path for the repository. + BasePath *string `pulumi:"basePath"` + // GCS bucket name. + GcsBucket *string `pulumi:"gcsBucket"` + // GCS endpoint. + GcsEndpoint *string `pulumi:"gcsEndpoint"` + // Unique identifier for the backup config. + Id *string `pulumi:"id"` + // Retention period for full backups. + RetentionFull *int `pulumi:"retentionFull"` + // Type of retention for full backups. + RetentionFullType *string `pulumi:"retentionFullType"` + // S3 bucket name. + S3Bucket *string `pulumi:"s3Bucket"` + // S3 endpoint. + S3Endpoint *string `pulumi:"s3Endpoint"` + // S3 region. + S3Region *string `pulumi:"s3Region"` + // Type of the repository. + Type *string `pulumi:"type"` +} + +// DatabaseBackupsConfigRepositoryInput is an input type that accepts DatabaseBackupsConfigRepositoryArgs and DatabaseBackupsConfigRepositoryOutput values. +// You can construct a concrete instance of `DatabaseBackupsConfigRepositoryInput` via: +// +// DatabaseBackupsConfigRepositoryArgs{...} +type DatabaseBackupsConfigRepositoryInput interface { + pulumi.Input + + ToDatabaseBackupsConfigRepositoryOutput() DatabaseBackupsConfigRepositoryOutput + ToDatabaseBackupsConfigRepositoryOutputWithContext(context.Context) DatabaseBackupsConfigRepositoryOutput +} + +type DatabaseBackupsConfigRepositoryArgs struct { + // Azure account. + AzureAccount pulumi.StringPtrInput `pulumi:"azureAccount"` + // Azure container. + AzureContainer pulumi.StringPtrInput `pulumi:"azureContainer"` + // Azure endpoint. + AzureEndpoint pulumi.StringPtrInput `pulumi:"azureEndpoint"` + // ID of the backup store. + BackupStoreId pulumi.StringPtrInput `pulumi:"backupStoreId"` + // Base path for the repository. + BasePath pulumi.StringPtrInput `pulumi:"basePath"` + // GCS bucket name. + GcsBucket pulumi.StringPtrInput `pulumi:"gcsBucket"` + // GCS endpoint. + GcsEndpoint pulumi.StringPtrInput `pulumi:"gcsEndpoint"` + // Unique identifier for the backup config. + Id pulumi.StringPtrInput `pulumi:"id"` + // Retention period for full backups. + RetentionFull pulumi.IntPtrInput `pulumi:"retentionFull"` + // Type of retention for full backups. + RetentionFullType pulumi.StringPtrInput `pulumi:"retentionFullType"` + // S3 bucket name. + S3Bucket pulumi.StringPtrInput `pulumi:"s3Bucket"` + // S3 endpoint. + S3Endpoint pulumi.StringPtrInput `pulumi:"s3Endpoint"` + // S3 region. + S3Region pulumi.StringPtrInput `pulumi:"s3Region"` + // Type of the repository. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (DatabaseBackupsConfigRepositoryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (i DatabaseBackupsConfigRepositoryArgs) ToDatabaseBackupsConfigRepositoryOutput() DatabaseBackupsConfigRepositoryOutput { + return i.ToDatabaseBackupsConfigRepositoryOutputWithContext(context.Background()) +} + +func (i DatabaseBackupsConfigRepositoryArgs) ToDatabaseBackupsConfigRepositoryOutputWithContext(ctx context.Context) DatabaseBackupsConfigRepositoryOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsConfigRepositoryOutput) +} + +// DatabaseBackupsConfigRepositoryArrayInput is an input type that accepts DatabaseBackupsConfigRepositoryArray and DatabaseBackupsConfigRepositoryArrayOutput values. +// You can construct a concrete instance of `DatabaseBackupsConfigRepositoryArrayInput` via: // -// GetClustersClusterCloudAccountArgs{...} -type GetClustersClusterCloudAccountInput interface { +// DatabaseBackupsConfigRepositoryArray{ DatabaseBackupsConfigRepositoryArgs{...} } +type DatabaseBackupsConfigRepositoryArrayInput interface { pulumi.Input - ToGetClustersClusterCloudAccountOutput() GetClustersClusterCloudAccountOutput - ToGetClustersClusterCloudAccountOutputWithContext(context.Context) GetClustersClusterCloudAccountOutput + ToDatabaseBackupsConfigRepositoryArrayOutput() DatabaseBackupsConfigRepositoryArrayOutput + ToDatabaseBackupsConfigRepositoryArrayOutputWithContext(context.Context) DatabaseBackupsConfigRepositoryArrayOutput } -type GetClustersClusterCloudAccountArgs struct { - // Display name of the node - Id pulumi.StringInput `pulumi:"id"` - // IP address of the node - Name pulumi.StringInput `pulumi:"name"` - // Type of the node - Type pulumi.StringInput `pulumi:"type"` +type DatabaseBackupsConfigRepositoryArray []DatabaseBackupsConfigRepositoryInput + +func (DatabaseBackupsConfigRepositoryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (i DatabaseBackupsConfigRepositoryArray) ToDatabaseBackupsConfigRepositoryArrayOutput() DatabaseBackupsConfigRepositoryArrayOutput { + return i.ToDatabaseBackupsConfigRepositoryArrayOutputWithContext(context.Background()) +} + +func (i DatabaseBackupsConfigRepositoryArray) ToDatabaseBackupsConfigRepositoryArrayOutputWithContext(ctx context.Context) DatabaseBackupsConfigRepositoryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsConfigRepositoryArrayOutput) +} + +type DatabaseBackupsConfigRepositoryOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsConfigRepositoryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (o DatabaseBackupsConfigRepositoryOutput) ToDatabaseBackupsConfigRepositoryOutput() DatabaseBackupsConfigRepositoryOutput { + return o +} + +func (o DatabaseBackupsConfigRepositoryOutput) ToDatabaseBackupsConfigRepositoryOutputWithContext(ctx context.Context) DatabaseBackupsConfigRepositoryOutput { + return o +} + +// Azure account. +func (o DatabaseBackupsConfigRepositoryOutput) AzureAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.AzureAccount }).(pulumi.StringPtrOutput) +} + +// Azure container. +func (o DatabaseBackupsConfigRepositoryOutput) AzureContainer() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.AzureContainer }).(pulumi.StringPtrOutput) +} + +// Azure endpoint. +func (o DatabaseBackupsConfigRepositoryOutput) AzureEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.AzureEndpoint }).(pulumi.StringPtrOutput) +} + +// ID of the backup store. +func (o DatabaseBackupsConfigRepositoryOutput) BackupStoreId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.BackupStoreId }).(pulumi.StringPtrOutput) +} + +// Base path for the repository. +func (o DatabaseBackupsConfigRepositoryOutput) BasePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.BasePath }).(pulumi.StringPtrOutput) +} + +// GCS bucket name. +func (o DatabaseBackupsConfigRepositoryOutput) GcsBucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.GcsBucket }).(pulumi.StringPtrOutput) +} + +// GCS endpoint. +func (o DatabaseBackupsConfigRepositoryOutput) GcsEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.GcsEndpoint }).(pulumi.StringPtrOutput) +} + +// Unique identifier for the backup config. +func (o DatabaseBackupsConfigRepositoryOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Retention period for full backups. +func (o DatabaseBackupsConfigRepositoryOutput) RetentionFull() pulumi.IntPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *int { return v.RetentionFull }).(pulumi.IntPtrOutput) +} + +// Type of retention for full backups. +func (o DatabaseBackupsConfigRepositoryOutput) RetentionFullType() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.RetentionFullType }).(pulumi.StringPtrOutput) +} + +// S3 bucket name. +func (o DatabaseBackupsConfigRepositoryOutput) S3Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.S3Bucket }).(pulumi.StringPtrOutput) } -func (GetClustersClusterCloudAccountArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetClustersClusterCloudAccount)(nil)).Elem() +// S3 endpoint. +func (o DatabaseBackupsConfigRepositoryOutput) S3Endpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.S3Endpoint }).(pulumi.StringPtrOutput) } -func (i GetClustersClusterCloudAccountArgs) ToGetClustersClusterCloudAccountOutput() GetClustersClusterCloudAccountOutput { - return i.ToGetClustersClusterCloudAccountOutputWithContext(context.Background()) +// S3 region. +func (o DatabaseBackupsConfigRepositoryOutput) S3Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.S3Region }).(pulumi.StringPtrOutput) +} + +// Type of the repository. +func (o DatabaseBackupsConfigRepositoryOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigRepository) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type DatabaseBackupsConfigRepositoryArrayOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsConfigRepositoryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (o DatabaseBackupsConfigRepositoryArrayOutput) ToDatabaseBackupsConfigRepositoryArrayOutput() DatabaseBackupsConfigRepositoryArrayOutput { + return o +} + +func (o DatabaseBackupsConfigRepositoryArrayOutput) ToDatabaseBackupsConfigRepositoryArrayOutputWithContext(ctx context.Context) DatabaseBackupsConfigRepositoryArrayOutput { + return o +} + +func (o DatabaseBackupsConfigRepositoryArrayOutput) Index(i pulumi.IntInput) DatabaseBackupsConfigRepositoryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DatabaseBackupsConfigRepository { + return vs[0].([]DatabaseBackupsConfigRepository)[vs[1].(int)] + }).(DatabaseBackupsConfigRepositoryOutput) +} + +type DatabaseBackupsConfigSchedule struct { + // Cron expression for the schedule. + CronExpression *string `pulumi:"cronExpression"` + // Unique identifier for the backup config. + Id *string `pulumi:"id"` + // Type of the repository. + Type *string `pulumi:"type"` +} + +// DatabaseBackupsConfigScheduleInput is an input type that accepts DatabaseBackupsConfigScheduleArgs and DatabaseBackupsConfigScheduleOutput values. +// You can construct a concrete instance of `DatabaseBackupsConfigScheduleInput` via: +// +// DatabaseBackupsConfigScheduleArgs{...} +type DatabaseBackupsConfigScheduleInput interface { + pulumi.Input + + ToDatabaseBackupsConfigScheduleOutput() DatabaseBackupsConfigScheduleOutput + ToDatabaseBackupsConfigScheduleOutputWithContext(context.Context) DatabaseBackupsConfigScheduleOutput +} + +type DatabaseBackupsConfigScheduleArgs struct { + // Cron expression for the schedule. + CronExpression pulumi.StringPtrInput `pulumi:"cronExpression"` + // Unique identifier for the backup config. + Id pulumi.StringPtrInput `pulumi:"id"` + // Type of the repository. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (DatabaseBackupsConfigScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackupsConfigSchedule)(nil)).Elem() +} + +func (i DatabaseBackupsConfigScheduleArgs) ToDatabaseBackupsConfigScheduleOutput() DatabaseBackupsConfigScheduleOutput { + return i.ToDatabaseBackupsConfigScheduleOutputWithContext(context.Background()) +} + +func (i DatabaseBackupsConfigScheduleArgs) ToDatabaseBackupsConfigScheduleOutputWithContext(ctx context.Context) DatabaseBackupsConfigScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsConfigScheduleOutput) +} + +// DatabaseBackupsConfigScheduleArrayInput is an input type that accepts DatabaseBackupsConfigScheduleArray and DatabaseBackupsConfigScheduleArrayOutput values. +// You can construct a concrete instance of `DatabaseBackupsConfigScheduleArrayInput` via: +// +// DatabaseBackupsConfigScheduleArray{ DatabaseBackupsConfigScheduleArgs{...} } +type DatabaseBackupsConfigScheduleArrayInput interface { + pulumi.Input + + ToDatabaseBackupsConfigScheduleArrayOutput() DatabaseBackupsConfigScheduleArrayOutput + ToDatabaseBackupsConfigScheduleArrayOutputWithContext(context.Context) DatabaseBackupsConfigScheduleArrayOutput +} + +type DatabaseBackupsConfigScheduleArray []DatabaseBackupsConfigScheduleInput + +func (DatabaseBackupsConfigScheduleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseBackupsConfigSchedule)(nil)).Elem() +} + +func (i DatabaseBackupsConfigScheduleArray) ToDatabaseBackupsConfigScheduleArrayOutput() DatabaseBackupsConfigScheduleArrayOutput { + return i.ToDatabaseBackupsConfigScheduleArrayOutputWithContext(context.Background()) +} + +func (i DatabaseBackupsConfigScheduleArray) ToDatabaseBackupsConfigScheduleArrayOutputWithContext(ctx context.Context) DatabaseBackupsConfigScheduleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseBackupsConfigScheduleArrayOutput) +} + +type DatabaseBackupsConfigScheduleOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsConfigScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseBackupsConfigSchedule)(nil)).Elem() +} + +func (o DatabaseBackupsConfigScheduleOutput) ToDatabaseBackupsConfigScheduleOutput() DatabaseBackupsConfigScheduleOutput { + return o +} + +func (o DatabaseBackupsConfigScheduleOutput) ToDatabaseBackupsConfigScheduleOutputWithContext(ctx context.Context) DatabaseBackupsConfigScheduleOutput { + return o +} + +// Cron expression for the schedule. +func (o DatabaseBackupsConfigScheduleOutput) CronExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigSchedule) *string { return v.CronExpression }).(pulumi.StringPtrOutput) +} + +// Unique identifier for the backup config. +func (o DatabaseBackupsConfigScheduleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigSchedule) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Type of the repository. +func (o DatabaseBackupsConfigScheduleOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseBackupsConfigSchedule) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type DatabaseBackupsConfigScheduleArrayOutput struct{ *pulumi.OutputState } + +func (DatabaseBackupsConfigScheduleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseBackupsConfigSchedule)(nil)).Elem() +} + +func (o DatabaseBackupsConfigScheduleArrayOutput) ToDatabaseBackupsConfigScheduleArrayOutput() DatabaseBackupsConfigScheduleArrayOutput { + return o +} + +func (o DatabaseBackupsConfigScheduleArrayOutput) ToDatabaseBackupsConfigScheduleArrayOutputWithContext(ctx context.Context) DatabaseBackupsConfigScheduleArrayOutput { + return o +} + +func (o DatabaseBackupsConfigScheduleArrayOutput) Index(i pulumi.IntInput) DatabaseBackupsConfigScheduleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DatabaseBackupsConfigSchedule { + return vs[0].([]DatabaseBackupsConfigSchedule)[vs[1].(int)] + }).(DatabaseBackupsConfigScheduleOutput) +} + +type DatabaseComponent struct { + Id *string `pulumi:"id"` + Name *string `pulumi:"name"` + ReleaseDate *string `pulumi:"releaseDate"` + Status *string `pulumi:"status"` + Version *string `pulumi:"version"` +} + +// DatabaseComponentInput is an input type that accepts DatabaseComponentArgs and DatabaseComponentOutput values. +// You can construct a concrete instance of `DatabaseComponentInput` via: +// +// DatabaseComponentArgs{...} +type DatabaseComponentInput interface { + pulumi.Input + + ToDatabaseComponentOutput() DatabaseComponentOutput + ToDatabaseComponentOutputWithContext(context.Context) DatabaseComponentOutput +} + +type DatabaseComponentArgs struct { + Id pulumi.StringPtrInput `pulumi:"id"` + Name pulumi.StringPtrInput `pulumi:"name"` + ReleaseDate pulumi.StringPtrInput `pulumi:"releaseDate"` + Status pulumi.StringPtrInput `pulumi:"status"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (DatabaseComponentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseComponent)(nil)).Elem() +} + +func (i DatabaseComponentArgs) ToDatabaseComponentOutput() DatabaseComponentOutput { + return i.ToDatabaseComponentOutputWithContext(context.Background()) +} + +func (i DatabaseComponentArgs) ToDatabaseComponentOutputWithContext(ctx context.Context) DatabaseComponentOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseComponentOutput) +} + +// DatabaseComponentArrayInput is an input type that accepts DatabaseComponentArray and DatabaseComponentArrayOutput values. +// You can construct a concrete instance of `DatabaseComponentArrayInput` via: +// +// DatabaseComponentArray{ DatabaseComponentArgs{...} } +type DatabaseComponentArrayInput interface { + pulumi.Input + + ToDatabaseComponentArrayOutput() DatabaseComponentArrayOutput + ToDatabaseComponentArrayOutputWithContext(context.Context) DatabaseComponentArrayOutput +} + +type DatabaseComponentArray []DatabaseComponentInput + +func (DatabaseComponentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseComponent)(nil)).Elem() +} + +func (i DatabaseComponentArray) ToDatabaseComponentArrayOutput() DatabaseComponentArrayOutput { + return i.ToDatabaseComponentArrayOutputWithContext(context.Background()) +} + +func (i DatabaseComponentArray) ToDatabaseComponentArrayOutputWithContext(ctx context.Context) DatabaseComponentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseComponentArrayOutput) +} + +type DatabaseComponentOutput struct{ *pulumi.OutputState } + +func (DatabaseComponentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseComponent)(nil)).Elem() +} + +func (o DatabaseComponentOutput) ToDatabaseComponentOutput() DatabaseComponentOutput { + return o +} + +func (o DatabaseComponentOutput) ToDatabaseComponentOutputWithContext(ctx context.Context) DatabaseComponentOutput { + return o +} + +func (o DatabaseComponentOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseComponent) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +func (o DatabaseComponentOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseComponent) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o DatabaseComponentOutput) ReleaseDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseComponent) *string { return v.ReleaseDate }).(pulumi.StringPtrOutput) +} + +func (o DatabaseComponentOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseComponent) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +func (o DatabaseComponentOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseComponent) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type DatabaseComponentArrayOutput struct{ *pulumi.OutputState } + +func (DatabaseComponentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseComponent)(nil)).Elem() +} + +func (o DatabaseComponentArrayOutput) ToDatabaseComponentArrayOutput() DatabaseComponentArrayOutput { + return o +} + +func (o DatabaseComponentArrayOutput) ToDatabaseComponentArrayOutputWithContext(ctx context.Context) DatabaseComponentArrayOutput { + return o +} + +func (o DatabaseComponentArrayOutput) Index(i pulumi.IntInput) DatabaseComponentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DatabaseComponent { + return vs[0].([]DatabaseComponent)[vs[1].(int)] + }).(DatabaseComponentOutput) +} + +type DatabaseExtensions struct { + AutoManage *bool `pulumi:"autoManage"` + Availables []string `pulumi:"availables"` + Requesteds []string `pulumi:"requesteds"` +} + +// DatabaseExtensionsInput is an input type that accepts DatabaseExtensionsArgs and DatabaseExtensionsOutput values. +// You can construct a concrete instance of `DatabaseExtensionsInput` via: +// +// DatabaseExtensionsArgs{...} +type DatabaseExtensionsInput interface { + pulumi.Input + + ToDatabaseExtensionsOutput() DatabaseExtensionsOutput + ToDatabaseExtensionsOutputWithContext(context.Context) DatabaseExtensionsOutput +} + +type DatabaseExtensionsArgs struct { + AutoManage pulumi.BoolPtrInput `pulumi:"autoManage"` + Availables pulumi.StringArrayInput `pulumi:"availables"` + Requesteds pulumi.StringArrayInput `pulumi:"requesteds"` +} + +func (DatabaseExtensionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseExtensions)(nil)).Elem() +} + +func (i DatabaseExtensionsArgs) ToDatabaseExtensionsOutput() DatabaseExtensionsOutput { + return i.ToDatabaseExtensionsOutputWithContext(context.Background()) +} + +func (i DatabaseExtensionsArgs) ToDatabaseExtensionsOutputWithContext(ctx context.Context) DatabaseExtensionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseExtensionsOutput) +} + +func (i DatabaseExtensionsArgs) ToDatabaseExtensionsPtrOutput() DatabaseExtensionsPtrOutput { + return i.ToDatabaseExtensionsPtrOutputWithContext(context.Background()) +} + +func (i DatabaseExtensionsArgs) ToDatabaseExtensionsPtrOutputWithContext(ctx context.Context) DatabaseExtensionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseExtensionsOutput).ToDatabaseExtensionsPtrOutputWithContext(ctx) +} + +// DatabaseExtensionsPtrInput is an input type that accepts DatabaseExtensionsArgs, DatabaseExtensionsPtr and DatabaseExtensionsPtrOutput values. +// You can construct a concrete instance of `DatabaseExtensionsPtrInput` via: +// +// DatabaseExtensionsArgs{...} +// +// or: +// +// nil +type DatabaseExtensionsPtrInput interface { + pulumi.Input + + ToDatabaseExtensionsPtrOutput() DatabaseExtensionsPtrOutput + ToDatabaseExtensionsPtrOutputWithContext(context.Context) DatabaseExtensionsPtrOutput +} + +type databaseExtensionsPtrType DatabaseExtensionsArgs + +func DatabaseExtensionsPtr(v *DatabaseExtensionsArgs) DatabaseExtensionsPtrInput { + return (*databaseExtensionsPtrType)(v) +} + +func (*databaseExtensionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseExtensions)(nil)).Elem() +} + +func (i *databaseExtensionsPtrType) ToDatabaseExtensionsPtrOutput() DatabaseExtensionsPtrOutput { + return i.ToDatabaseExtensionsPtrOutputWithContext(context.Background()) +} + +func (i *databaseExtensionsPtrType) ToDatabaseExtensionsPtrOutputWithContext(ctx context.Context) DatabaseExtensionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseExtensionsPtrOutput) +} + +type DatabaseExtensionsOutput struct{ *pulumi.OutputState } + +func (DatabaseExtensionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseExtensions)(nil)).Elem() +} + +func (o DatabaseExtensionsOutput) ToDatabaseExtensionsOutput() DatabaseExtensionsOutput { + return o +} + +func (o DatabaseExtensionsOutput) ToDatabaseExtensionsOutputWithContext(ctx context.Context) DatabaseExtensionsOutput { + return o +} + +func (o DatabaseExtensionsOutput) ToDatabaseExtensionsPtrOutput() DatabaseExtensionsPtrOutput { + return o.ToDatabaseExtensionsPtrOutputWithContext(context.Background()) +} + +func (o DatabaseExtensionsOutput) ToDatabaseExtensionsPtrOutputWithContext(ctx context.Context) DatabaseExtensionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DatabaseExtensions) *DatabaseExtensions { + return &v + }).(DatabaseExtensionsPtrOutput) +} + +func (o DatabaseExtensionsOutput) AutoManage() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseExtensions) *bool { return v.AutoManage }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseExtensionsOutput) Availables() pulumi.StringArrayOutput { + return o.ApplyT(func(v DatabaseExtensions) []string { return v.Availables }).(pulumi.StringArrayOutput) +} + +func (o DatabaseExtensionsOutput) Requesteds() pulumi.StringArrayOutput { + return o.ApplyT(func(v DatabaseExtensions) []string { return v.Requesteds }).(pulumi.StringArrayOutput) +} + +type DatabaseExtensionsPtrOutput struct{ *pulumi.OutputState } + +func (DatabaseExtensionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseExtensions)(nil)).Elem() +} + +func (o DatabaseExtensionsPtrOutput) ToDatabaseExtensionsPtrOutput() DatabaseExtensionsPtrOutput { + return o +} + +func (o DatabaseExtensionsPtrOutput) ToDatabaseExtensionsPtrOutputWithContext(ctx context.Context) DatabaseExtensionsPtrOutput { + return o +} + +func (o DatabaseExtensionsPtrOutput) Elem() DatabaseExtensionsOutput { + return o.ApplyT(func(v *DatabaseExtensions) DatabaseExtensions { + if v != nil { + return *v + } + var ret DatabaseExtensions + return ret + }).(DatabaseExtensionsOutput) +} + +func (o DatabaseExtensionsPtrOutput) AutoManage() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DatabaseExtensions) *bool { + if v == nil { + return nil + } + return v.AutoManage + }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseExtensionsPtrOutput) Availables() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DatabaseExtensions) []string { + if v == nil { + return nil + } + return v.Availables + }).(pulumi.StringArrayOutput) +} + +func (o DatabaseExtensionsPtrOutput) Requesteds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DatabaseExtensions) []string { + if v == nil { + return nil + } + return v.Requesteds + }).(pulumi.StringArrayOutput) +} + +type DatabaseNodes struct { + Connection *DatabaseNodesConnection `pulumi:"connection"` + Extensions *DatabaseNodesExtensions `pulumi:"extensions"` + Location *DatabaseNodesLocation `pulumi:"location"` + Name string `pulumi:"name"` + Region *DatabaseNodesRegion `pulumi:"region"` +} + +// DatabaseNodesInput is an input type that accepts DatabaseNodesArgs and DatabaseNodesOutput values. +// You can construct a concrete instance of `DatabaseNodesInput` via: +// +// DatabaseNodesArgs{...} +type DatabaseNodesInput interface { + pulumi.Input + + ToDatabaseNodesOutput() DatabaseNodesOutput + ToDatabaseNodesOutputWithContext(context.Context) DatabaseNodesOutput +} + +type DatabaseNodesArgs struct { + Connection DatabaseNodesConnectionPtrInput `pulumi:"connection"` + Extensions DatabaseNodesExtensionsPtrInput `pulumi:"extensions"` + Location DatabaseNodesLocationPtrInput `pulumi:"location"` + Name pulumi.StringInput `pulumi:"name"` + Region DatabaseNodesRegionPtrInput `pulumi:"region"` +} + +func (DatabaseNodesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodes)(nil)).Elem() +} + +func (i DatabaseNodesArgs) ToDatabaseNodesOutput() DatabaseNodesOutput { + return i.ToDatabaseNodesOutputWithContext(context.Background()) +} + +func (i DatabaseNodesArgs) ToDatabaseNodesOutputWithContext(ctx context.Context) DatabaseNodesOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesOutput) +} + +// DatabaseNodesMapInput is an input type that accepts DatabaseNodesMap and DatabaseNodesMapOutput values. +// You can construct a concrete instance of `DatabaseNodesMapInput` via: +// +// DatabaseNodesMap{ "key": DatabaseNodesArgs{...} } +type DatabaseNodesMapInput interface { + pulumi.Input + + ToDatabaseNodesMapOutput() DatabaseNodesMapOutput + ToDatabaseNodesMapOutputWithContext(context.Context) DatabaseNodesMapOutput +} + +type DatabaseNodesMap map[string]DatabaseNodesInput + +func (DatabaseNodesMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DatabaseNodes)(nil)).Elem() +} + +func (i DatabaseNodesMap) ToDatabaseNodesMapOutput() DatabaseNodesMapOutput { + return i.ToDatabaseNodesMapOutputWithContext(context.Background()) +} + +func (i DatabaseNodesMap) ToDatabaseNodesMapOutputWithContext(ctx context.Context) DatabaseNodesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesMapOutput) +} + +type DatabaseNodesOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodes)(nil)).Elem() +} + +func (o DatabaseNodesOutput) ToDatabaseNodesOutput() DatabaseNodesOutput { + return o +} + +func (o DatabaseNodesOutput) ToDatabaseNodesOutputWithContext(ctx context.Context) DatabaseNodesOutput { + return o +} + +func (o DatabaseNodesOutput) Connection() DatabaseNodesConnectionPtrOutput { + return o.ApplyT(func(v DatabaseNodes) *DatabaseNodesConnection { return v.Connection }).(DatabaseNodesConnectionPtrOutput) +} + +func (o DatabaseNodesOutput) Extensions() DatabaseNodesExtensionsPtrOutput { + return o.ApplyT(func(v DatabaseNodes) *DatabaseNodesExtensions { return v.Extensions }).(DatabaseNodesExtensionsPtrOutput) +} + +func (o DatabaseNodesOutput) Location() DatabaseNodesLocationPtrOutput { + return o.ApplyT(func(v DatabaseNodes) *DatabaseNodesLocation { return v.Location }).(DatabaseNodesLocationPtrOutput) +} + +func (o DatabaseNodesOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v DatabaseNodes) string { return v.Name }).(pulumi.StringOutput) +} + +func (o DatabaseNodesOutput) Region() DatabaseNodesRegionPtrOutput { + return o.ApplyT(func(v DatabaseNodes) *DatabaseNodesRegion { return v.Region }).(DatabaseNodesRegionPtrOutput) +} + +type DatabaseNodesMapOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DatabaseNodes)(nil)).Elem() +} + +func (o DatabaseNodesMapOutput) ToDatabaseNodesMapOutput() DatabaseNodesMapOutput { + return o +} + +func (o DatabaseNodesMapOutput) ToDatabaseNodesMapOutputWithContext(ctx context.Context) DatabaseNodesMapOutput { + return o +} + +func (o DatabaseNodesMapOutput) MapIndex(k pulumi.StringInput) DatabaseNodesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) DatabaseNodes { + return vs[0].(map[string]DatabaseNodes)[vs[1].(string)] + }).(DatabaseNodesOutput) +} + +type DatabaseNodesConnection struct { + Database *string `pulumi:"database"` + ExternalIpAddress *string `pulumi:"externalIpAddress"` + Host *string `pulumi:"host"` + InternalHost *string `pulumi:"internalHost"` + InternalIpAddress *string `pulumi:"internalIpAddress"` + Password *string `pulumi:"password"` + Port *int `pulumi:"port"` + Username *string `pulumi:"username"` +} + +// DatabaseNodesConnectionInput is an input type that accepts DatabaseNodesConnectionArgs and DatabaseNodesConnectionOutput values. +// You can construct a concrete instance of `DatabaseNodesConnectionInput` via: +// +// DatabaseNodesConnectionArgs{...} +type DatabaseNodesConnectionInput interface { + pulumi.Input + + ToDatabaseNodesConnectionOutput() DatabaseNodesConnectionOutput + ToDatabaseNodesConnectionOutputWithContext(context.Context) DatabaseNodesConnectionOutput +} + +type DatabaseNodesConnectionArgs struct { + Database pulumi.StringPtrInput `pulumi:"database"` + ExternalIpAddress pulumi.StringPtrInput `pulumi:"externalIpAddress"` + Host pulumi.StringPtrInput `pulumi:"host"` + InternalHost pulumi.StringPtrInput `pulumi:"internalHost"` + InternalIpAddress pulumi.StringPtrInput `pulumi:"internalIpAddress"` + Password pulumi.StringPtrInput `pulumi:"password"` + Port pulumi.IntPtrInput `pulumi:"port"` + Username pulumi.StringPtrInput `pulumi:"username"` +} + +func (DatabaseNodesConnectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesConnection)(nil)).Elem() +} + +func (i DatabaseNodesConnectionArgs) ToDatabaseNodesConnectionOutput() DatabaseNodesConnectionOutput { + return i.ToDatabaseNodesConnectionOutputWithContext(context.Background()) +} + +func (i DatabaseNodesConnectionArgs) ToDatabaseNodesConnectionOutputWithContext(ctx context.Context) DatabaseNodesConnectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesConnectionOutput) +} + +func (i DatabaseNodesConnectionArgs) ToDatabaseNodesConnectionPtrOutput() DatabaseNodesConnectionPtrOutput { + return i.ToDatabaseNodesConnectionPtrOutputWithContext(context.Background()) +} + +func (i DatabaseNodesConnectionArgs) ToDatabaseNodesConnectionPtrOutputWithContext(ctx context.Context) DatabaseNodesConnectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesConnectionOutput).ToDatabaseNodesConnectionPtrOutputWithContext(ctx) +} + +// DatabaseNodesConnectionPtrInput is an input type that accepts DatabaseNodesConnectionArgs, DatabaseNodesConnectionPtr and DatabaseNodesConnectionPtrOutput values. +// You can construct a concrete instance of `DatabaseNodesConnectionPtrInput` via: +// +// DatabaseNodesConnectionArgs{...} +// +// or: +// +// nil +type DatabaseNodesConnectionPtrInput interface { + pulumi.Input + + ToDatabaseNodesConnectionPtrOutput() DatabaseNodesConnectionPtrOutput + ToDatabaseNodesConnectionPtrOutputWithContext(context.Context) DatabaseNodesConnectionPtrOutput +} + +type databaseNodesConnectionPtrType DatabaseNodesConnectionArgs + +func DatabaseNodesConnectionPtr(v *DatabaseNodesConnectionArgs) DatabaseNodesConnectionPtrInput { + return (*databaseNodesConnectionPtrType)(v) +} + +func (*databaseNodesConnectionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesConnection)(nil)).Elem() +} + +func (i *databaseNodesConnectionPtrType) ToDatabaseNodesConnectionPtrOutput() DatabaseNodesConnectionPtrOutput { + return i.ToDatabaseNodesConnectionPtrOutputWithContext(context.Background()) +} + +func (i *databaseNodesConnectionPtrType) ToDatabaseNodesConnectionPtrOutputWithContext(ctx context.Context) DatabaseNodesConnectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesConnectionPtrOutput) +} + +type DatabaseNodesConnectionOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesConnectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesConnection)(nil)).Elem() +} + +func (o DatabaseNodesConnectionOutput) ToDatabaseNodesConnectionOutput() DatabaseNodesConnectionOutput { + return o +} + +func (o DatabaseNodesConnectionOutput) ToDatabaseNodesConnectionOutputWithContext(ctx context.Context) DatabaseNodesConnectionOutput { + return o +} + +func (o DatabaseNodesConnectionOutput) ToDatabaseNodesConnectionPtrOutput() DatabaseNodesConnectionPtrOutput { + return o.ToDatabaseNodesConnectionPtrOutputWithContext(context.Background()) +} + +func (o DatabaseNodesConnectionOutput) ToDatabaseNodesConnectionPtrOutputWithContext(ctx context.Context) DatabaseNodesConnectionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DatabaseNodesConnection) *DatabaseNodesConnection { + return &v + }).(DatabaseNodesConnectionPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) Database() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *string { return v.Database }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) ExternalIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *string { return v.ExternalIpAddress }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *string { return v.Host }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) InternalHost() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *string { return v.InternalHost }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) InternalIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *string { return v.InternalIpAddress }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *string { return v.Password }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +func (o DatabaseNodesConnectionOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesConnection) *string { return v.Username }).(pulumi.StringPtrOutput) +} + +type DatabaseNodesConnectionPtrOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesConnectionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesConnection)(nil)).Elem() +} + +func (o DatabaseNodesConnectionPtrOutput) ToDatabaseNodesConnectionPtrOutput() DatabaseNodesConnectionPtrOutput { + return o +} + +func (o DatabaseNodesConnectionPtrOutput) ToDatabaseNodesConnectionPtrOutputWithContext(ctx context.Context) DatabaseNodesConnectionPtrOutput { + return o +} + +func (o DatabaseNodesConnectionPtrOutput) Elem() DatabaseNodesConnectionOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) DatabaseNodesConnection { + if v != nil { + return *v + } + var ret DatabaseNodesConnection + return ret + }).(DatabaseNodesConnectionOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) Database() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *string { + if v == nil { + return nil + } + return v.Database + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) ExternalIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *string { + if v == nil { + return nil + } + return v.ExternalIpAddress + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *string { + if v == nil { + return nil + } + return v.Host + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) InternalHost() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *string { + if v == nil { + return nil + } + return v.InternalHost + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) InternalIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *string { + if v == nil { + return nil + } + return v.InternalIpAddress + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *string { + if v == nil { + return nil + } + return v.Password + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +func (o DatabaseNodesConnectionPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesConnection) *string { + if v == nil { + return nil + } + return v.Username + }).(pulumi.StringPtrOutput) +} + +type DatabaseNodesExtensions struct { + Errors map[string]string `pulumi:"errors"` + Installeds []string `pulumi:"installeds"` +} + +// DatabaseNodesExtensionsInput is an input type that accepts DatabaseNodesExtensionsArgs and DatabaseNodesExtensionsOutput values. +// You can construct a concrete instance of `DatabaseNodesExtensionsInput` via: +// +// DatabaseNodesExtensionsArgs{...} +type DatabaseNodesExtensionsInput interface { + pulumi.Input + + ToDatabaseNodesExtensionsOutput() DatabaseNodesExtensionsOutput + ToDatabaseNodesExtensionsOutputWithContext(context.Context) DatabaseNodesExtensionsOutput +} + +type DatabaseNodesExtensionsArgs struct { + Errors pulumi.StringMapInput `pulumi:"errors"` + Installeds pulumi.StringArrayInput `pulumi:"installeds"` +} + +func (DatabaseNodesExtensionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesExtensions)(nil)).Elem() +} + +func (i DatabaseNodesExtensionsArgs) ToDatabaseNodesExtensionsOutput() DatabaseNodesExtensionsOutput { + return i.ToDatabaseNodesExtensionsOutputWithContext(context.Background()) +} + +func (i DatabaseNodesExtensionsArgs) ToDatabaseNodesExtensionsOutputWithContext(ctx context.Context) DatabaseNodesExtensionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesExtensionsOutput) +} + +func (i DatabaseNodesExtensionsArgs) ToDatabaseNodesExtensionsPtrOutput() DatabaseNodesExtensionsPtrOutput { + return i.ToDatabaseNodesExtensionsPtrOutputWithContext(context.Background()) +} + +func (i DatabaseNodesExtensionsArgs) ToDatabaseNodesExtensionsPtrOutputWithContext(ctx context.Context) DatabaseNodesExtensionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesExtensionsOutput).ToDatabaseNodesExtensionsPtrOutputWithContext(ctx) +} + +// DatabaseNodesExtensionsPtrInput is an input type that accepts DatabaseNodesExtensionsArgs, DatabaseNodesExtensionsPtr and DatabaseNodesExtensionsPtrOutput values. +// You can construct a concrete instance of `DatabaseNodesExtensionsPtrInput` via: +// +// DatabaseNodesExtensionsArgs{...} +// +// or: +// +// nil +type DatabaseNodesExtensionsPtrInput interface { + pulumi.Input + + ToDatabaseNodesExtensionsPtrOutput() DatabaseNodesExtensionsPtrOutput + ToDatabaseNodesExtensionsPtrOutputWithContext(context.Context) DatabaseNodesExtensionsPtrOutput +} + +type databaseNodesExtensionsPtrType DatabaseNodesExtensionsArgs + +func DatabaseNodesExtensionsPtr(v *DatabaseNodesExtensionsArgs) DatabaseNodesExtensionsPtrInput { + return (*databaseNodesExtensionsPtrType)(v) +} + +func (*databaseNodesExtensionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesExtensions)(nil)).Elem() +} + +func (i *databaseNodesExtensionsPtrType) ToDatabaseNodesExtensionsPtrOutput() DatabaseNodesExtensionsPtrOutput { + return i.ToDatabaseNodesExtensionsPtrOutputWithContext(context.Background()) +} + +func (i *databaseNodesExtensionsPtrType) ToDatabaseNodesExtensionsPtrOutputWithContext(ctx context.Context) DatabaseNodesExtensionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesExtensionsPtrOutput) +} + +type DatabaseNodesExtensionsOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesExtensionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesExtensions)(nil)).Elem() +} + +func (o DatabaseNodesExtensionsOutput) ToDatabaseNodesExtensionsOutput() DatabaseNodesExtensionsOutput { + return o +} + +func (o DatabaseNodesExtensionsOutput) ToDatabaseNodesExtensionsOutputWithContext(ctx context.Context) DatabaseNodesExtensionsOutput { + return o +} + +func (o DatabaseNodesExtensionsOutput) ToDatabaseNodesExtensionsPtrOutput() DatabaseNodesExtensionsPtrOutput { + return o.ToDatabaseNodesExtensionsPtrOutputWithContext(context.Background()) +} + +func (o DatabaseNodesExtensionsOutput) ToDatabaseNodesExtensionsPtrOutputWithContext(ctx context.Context) DatabaseNodesExtensionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DatabaseNodesExtensions) *DatabaseNodesExtensions { + return &v + }).(DatabaseNodesExtensionsPtrOutput) +} + +func (o DatabaseNodesExtensionsOutput) Errors() pulumi.StringMapOutput { + return o.ApplyT(func(v DatabaseNodesExtensions) map[string]string { return v.Errors }).(pulumi.StringMapOutput) +} + +func (o DatabaseNodesExtensionsOutput) Installeds() pulumi.StringArrayOutput { + return o.ApplyT(func(v DatabaseNodesExtensions) []string { return v.Installeds }).(pulumi.StringArrayOutput) +} + +type DatabaseNodesExtensionsPtrOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesExtensionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesExtensions)(nil)).Elem() +} + +func (o DatabaseNodesExtensionsPtrOutput) ToDatabaseNodesExtensionsPtrOutput() DatabaseNodesExtensionsPtrOutput { + return o +} + +func (o DatabaseNodesExtensionsPtrOutput) ToDatabaseNodesExtensionsPtrOutputWithContext(ctx context.Context) DatabaseNodesExtensionsPtrOutput { + return o +} + +func (o DatabaseNodesExtensionsPtrOutput) Elem() DatabaseNodesExtensionsOutput { + return o.ApplyT(func(v *DatabaseNodesExtensions) DatabaseNodesExtensions { + if v != nil { + return *v + } + var ret DatabaseNodesExtensions + return ret + }).(DatabaseNodesExtensionsOutput) +} + +func (o DatabaseNodesExtensionsPtrOutput) Errors() pulumi.StringMapOutput { + return o.ApplyT(func(v *DatabaseNodesExtensions) map[string]string { + if v == nil { + return nil + } + return v.Errors + }).(pulumi.StringMapOutput) +} + +func (o DatabaseNodesExtensionsPtrOutput) Installeds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DatabaseNodesExtensions) []string { + if v == nil { + return nil + } + return v.Installeds + }).(pulumi.StringArrayOutput) +} + +type DatabaseNodesLocation struct { + City *string `pulumi:"city"` + Code *string `pulumi:"code"` + Country *string `pulumi:"country"` + Latitude *float64 `pulumi:"latitude"` + Longitude *float64 `pulumi:"longitude"` + MetroCode *string `pulumi:"metroCode"` + Name *string `pulumi:"name"` + PostalCode *string `pulumi:"postalCode"` + Region *string `pulumi:"region"` + RegionCode *string `pulumi:"regionCode"` + Timezone *string `pulumi:"timezone"` +} + +// DatabaseNodesLocationInput is an input type that accepts DatabaseNodesLocationArgs and DatabaseNodesLocationOutput values. +// You can construct a concrete instance of `DatabaseNodesLocationInput` via: +// +// DatabaseNodesLocationArgs{...} +type DatabaseNodesLocationInput interface { + pulumi.Input + + ToDatabaseNodesLocationOutput() DatabaseNodesLocationOutput + ToDatabaseNodesLocationOutputWithContext(context.Context) DatabaseNodesLocationOutput +} + +type DatabaseNodesLocationArgs struct { + City pulumi.StringPtrInput `pulumi:"city"` + Code pulumi.StringPtrInput `pulumi:"code"` + Country pulumi.StringPtrInput `pulumi:"country"` + Latitude pulumi.Float64PtrInput `pulumi:"latitude"` + Longitude pulumi.Float64PtrInput `pulumi:"longitude"` + MetroCode pulumi.StringPtrInput `pulumi:"metroCode"` + Name pulumi.StringPtrInput `pulumi:"name"` + PostalCode pulumi.StringPtrInput `pulumi:"postalCode"` + Region pulumi.StringPtrInput `pulumi:"region"` + RegionCode pulumi.StringPtrInput `pulumi:"regionCode"` + Timezone pulumi.StringPtrInput `pulumi:"timezone"` +} + +func (DatabaseNodesLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesLocation)(nil)).Elem() +} + +func (i DatabaseNodesLocationArgs) ToDatabaseNodesLocationOutput() DatabaseNodesLocationOutput { + return i.ToDatabaseNodesLocationOutputWithContext(context.Background()) +} + +func (i DatabaseNodesLocationArgs) ToDatabaseNodesLocationOutputWithContext(ctx context.Context) DatabaseNodesLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesLocationOutput) +} + +func (i DatabaseNodesLocationArgs) ToDatabaseNodesLocationPtrOutput() DatabaseNodesLocationPtrOutput { + return i.ToDatabaseNodesLocationPtrOutputWithContext(context.Background()) +} + +func (i DatabaseNodesLocationArgs) ToDatabaseNodesLocationPtrOutputWithContext(ctx context.Context) DatabaseNodesLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesLocationOutput).ToDatabaseNodesLocationPtrOutputWithContext(ctx) +} + +// DatabaseNodesLocationPtrInput is an input type that accepts DatabaseNodesLocationArgs, DatabaseNodesLocationPtr and DatabaseNodesLocationPtrOutput values. +// You can construct a concrete instance of `DatabaseNodesLocationPtrInput` via: +// +// DatabaseNodesLocationArgs{...} +// +// or: +// +// nil +type DatabaseNodesLocationPtrInput interface { + pulumi.Input + + ToDatabaseNodesLocationPtrOutput() DatabaseNodesLocationPtrOutput + ToDatabaseNodesLocationPtrOutputWithContext(context.Context) DatabaseNodesLocationPtrOutput +} + +type databaseNodesLocationPtrType DatabaseNodesLocationArgs + +func DatabaseNodesLocationPtr(v *DatabaseNodesLocationArgs) DatabaseNodesLocationPtrInput { + return (*databaseNodesLocationPtrType)(v) +} + +func (*databaseNodesLocationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesLocation)(nil)).Elem() +} + +func (i *databaseNodesLocationPtrType) ToDatabaseNodesLocationPtrOutput() DatabaseNodesLocationPtrOutput { + return i.ToDatabaseNodesLocationPtrOutputWithContext(context.Background()) +} + +func (i *databaseNodesLocationPtrType) ToDatabaseNodesLocationPtrOutputWithContext(ctx context.Context) DatabaseNodesLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesLocationPtrOutput) +} + +type DatabaseNodesLocationOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesLocation)(nil)).Elem() +} + +func (o DatabaseNodesLocationOutput) ToDatabaseNodesLocationOutput() DatabaseNodesLocationOutput { + return o +} + +func (o DatabaseNodesLocationOutput) ToDatabaseNodesLocationOutputWithContext(ctx context.Context) DatabaseNodesLocationOutput { + return o +} + +func (o DatabaseNodesLocationOutput) ToDatabaseNodesLocationPtrOutput() DatabaseNodesLocationPtrOutput { + return o.ToDatabaseNodesLocationPtrOutputWithContext(context.Background()) +} + +func (o DatabaseNodesLocationOutput) ToDatabaseNodesLocationPtrOutputWithContext(ctx context.Context) DatabaseNodesLocationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DatabaseNodesLocation) *DatabaseNodesLocation { + return &v + }).(DatabaseNodesLocationPtrOutput) +} + +func (o DatabaseNodesLocationOutput) City() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.City }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.Code }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) Country() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.Country }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) Latitude() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *float64 { return v.Latitude }).(pulumi.Float64PtrOutput) +} + +func (o DatabaseNodesLocationOutput) Longitude() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *float64 { return v.Longitude }).(pulumi.Float64PtrOutput) +} + +func (o DatabaseNodesLocationOutput) MetroCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.MetroCode }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) PostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.PostalCode }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) RegionCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.RegionCode }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationOutput) Timezone() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesLocation) *string { return v.Timezone }).(pulumi.StringPtrOutput) +} + +type DatabaseNodesLocationPtrOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesLocationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesLocation)(nil)).Elem() +} + +func (o DatabaseNodesLocationPtrOutput) ToDatabaseNodesLocationPtrOutput() DatabaseNodesLocationPtrOutput { + return o +} + +func (o DatabaseNodesLocationPtrOutput) ToDatabaseNodesLocationPtrOutputWithContext(ctx context.Context) DatabaseNodesLocationPtrOutput { + return o +} + +func (o DatabaseNodesLocationPtrOutput) Elem() DatabaseNodesLocationOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) DatabaseNodesLocation { + if v != nil { + return *v + } + var ret DatabaseNodesLocation + return ret + }).(DatabaseNodesLocationOutput) +} + +func (o DatabaseNodesLocationPtrOutput) City() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.City + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.Code + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) Country() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.Country + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) Latitude() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *float64 { + if v == nil { + return nil + } + return v.Latitude + }).(pulumi.Float64PtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) Longitude() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *float64 { + if v == nil { + return nil + } + return v.Longitude + }).(pulumi.Float64PtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) MetroCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.MetroCode + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) PostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.PostalCode + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) RegionCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.RegionCode + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesLocationPtrOutput) Timezone() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesLocation) *string { + if v == nil { + return nil + } + return v.Timezone + }).(pulumi.StringPtrOutput) +} + +type DatabaseNodesRegion struct { + Active *bool `pulumi:"active"` + AvailabilityZones []string `pulumi:"availabilityZones"` + Cloud *string `pulumi:"cloud"` + Code *string `pulumi:"code"` + Name *string `pulumi:"name"` + Parent *string `pulumi:"parent"` +} + +// DatabaseNodesRegionInput is an input type that accepts DatabaseNodesRegionArgs and DatabaseNodesRegionOutput values. +// You can construct a concrete instance of `DatabaseNodesRegionInput` via: +// +// DatabaseNodesRegionArgs{...} +type DatabaseNodesRegionInput interface { + pulumi.Input + + ToDatabaseNodesRegionOutput() DatabaseNodesRegionOutput + ToDatabaseNodesRegionOutputWithContext(context.Context) DatabaseNodesRegionOutput +} + +type DatabaseNodesRegionArgs struct { + Active pulumi.BoolPtrInput `pulumi:"active"` + AvailabilityZones pulumi.StringArrayInput `pulumi:"availabilityZones"` + Cloud pulumi.StringPtrInput `pulumi:"cloud"` + Code pulumi.StringPtrInput `pulumi:"code"` + Name pulumi.StringPtrInput `pulumi:"name"` + Parent pulumi.StringPtrInput `pulumi:"parent"` +} + +func (DatabaseNodesRegionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesRegion)(nil)).Elem() +} + +func (i DatabaseNodesRegionArgs) ToDatabaseNodesRegionOutput() DatabaseNodesRegionOutput { + return i.ToDatabaseNodesRegionOutputWithContext(context.Background()) +} + +func (i DatabaseNodesRegionArgs) ToDatabaseNodesRegionOutputWithContext(ctx context.Context) DatabaseNodesRegionOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesRegionOutput) +} + +func (i DatabaseNodesRegionArgs) ToDatabaseNodesRegionPtrOutput() DatabaseNodesRegionPtrOutput { + return i.ToDatabaseNodesRegionPtrOutputWithContext(context.Background()) +} + +func (i DatabaseNodesRegionArgs) ToDatabaseNodesRegionPtrOutputWithContext(ctx context.Context) DatabaseNodesRegionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesRegionOutput).ToDatabaseNodesRegionPtrOutputWithContext(ctx) +} + +// DatabaseNodesRegionPtrInput is an input type that accepts DatabaseNodesRegionArgs, DatabaseNodesRegionPtr and DatabaseNodesRegionPtrOutput values. +// You can construct a concrete instance of `DatabaseNodesRegionPtrInput` via: +// +// DatabaseNodesRegionArgs{...} +// +// or: +// +// nil +type DatabaseNodesRegionPtrInput interface { + pulumi.Input + + ToDatabaseNodesRegionPtrOutput() DatabaseNodesRegionPtrOutput + ToDatabaseNodesRegionPtrOutputWithContext(context.Context) DatabaseNodesRegionPtrOutput +} + +type databaseNodesRegionPtrType DatabaseNodesRegionArgs + +func DatabaseNodesRegionPtr(v *DatabaseNodesRegionArgs) DatabaseNodesRegionPtrInput { + return (*databaseNodesRegionPtrType)(v) +} + +func (*databaseNodesRegionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesRegion)(nil)).Elem() +} + +func (i *databaseNodesRegionPtrType) ToDatabaseNodesRegionPtrOutput() DatabaseNodesRegionPtrOutput { + return i.ToDatabaseNodesRegionPtrOutputWithContext(context.Background()) +} + +func (i *databaseNodesRegionPtrType) ToDatabaseNodesRegionPtrOutputWithContext(ctx context.Context) DatabaseNodesRegionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseNodesRegionPtrOutput) +} + +type DatabaseNodesRegionOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesRegionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseNodesRegion)(nil)).Elem() +} + +func (o DatabaseNodesRegionOutput) ToDatabaseNodesRegionOutput() DatabaseNodesRegionOutput { + return o +} + +func (o DatabaseNodesRegionOutput) ToDatabaseNodesRegionOutputWithContext(ctx context.Context) DatabaseNodesRegionOutput { + return o +} + +func (o DatabaseNodesRegionOutput) ToDatabaseNodesRegionPtrOutput() DatabaseNodesRegionPtrOutput { + return o.ToDatabaseNodesRegionPtrOutputWithContext(context.Background()) +} + +func (o DatabaseNodesRegionOutput) ToDatabaseNodesRegionPtrOutputWithContext(ctx context.Context) DatabaseNodesRegionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DatabaseNodesRegion) *DatabaseNodesRegion { + return &v + }).(DatabaseNodesRegionPtrOutput) +} + +func (o DatabaseNodesRegionOutput) Active() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseNodesRegion) *bool { return v.Active }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseNodesRegionOutput) AvailabilityZones() pulumi.StringArrayOutput { + return o.ApplyT(func(v DatabaseNodesRegion) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput) +} + +func (o DatabaseNodesRegionOutput) Cloud() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesRegion) *string { return v.Cloud }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesRegionOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesRegion) *string { return v.Code }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesRegionOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesRegion) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesRegionOutput) Parent() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseNodesRegion) *string { return v.Parent }).(pulumi.StringPtrOutput) +} + +type DatabaseNodesRegionPtrOutput struct{ *pulumi.OutputState } + +func (DatabaseNodesRegionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DatabaseNodesRegion)(nil)).Elem() +} + +func (o DatabaseNodesRegionPtrOutput) ToDatabaseNodesRegionPtrOutput() DatabaseNodesRegionPtrOutput { + return o +} + +func (o DatabaseNodesRegionPtrOutput) ToDatabaseNodesRegionPtrOutputWithContext(ctx context.Context) DatabaseNodesRegionPtrOutput { + return o +} + +func (o DatabaseNodesRegionPtrOutput) Elem() DatabaseNodesRegionOutput { + return o.ApplyT(func(v *DatabaseNodesRegion) DatabaseNodesRegion { + if v != nil { + return *v + } + var ret DatabaseNodesRegion + return ret + }).(DatabaseNodesRegionOutput) +} + +func (o DatabaseNodesRegionPtrOutput) Active() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DatabaseNodesRegion) *bool { + if v == nil { + return nil + } + return v.Active + }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseNodesRegionPtrOutput) AvailabilityZones() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DatabaseNodesRegion) []string { + if v == nil { + return nil + } + return v.AvailabilityZones + }).(pulumi.StringArrayOutput) +} + +func (o DatabaseNodesRegionPtrOutput) Cloud() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesRegion) *string { + if v == nil { + return nil + } + return v.Cloud + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesRegionPtrOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesRegion) *string { + if v == nil { + return nil + } + return v.Code + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesRegionPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesRegion) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +func (o DatabaseNodesRegionPtrOutput) Parent() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DatabaseNodesRegion) *string { + if v == nil { + return nil + } + return v.Parent + }).(pulumi.StringPtrOutput) +} + +type DatabaseRole struct { + BypassRls *bool `pulumi:"bypassRls"` + ConnectionLimit *int `pulumi:"connectionLimit"` + CreateDb *bool `pulumi:"createDb"` + CreateRole *bool `pulumi:"createRole"` + Inherit *bool `pulumi:"inherit"` + Login *bool `pulumi:"login"` + Name *string `pulumi:"name"` + Replication *bool `pulumi:"replication"` + Superuser *bool `pulumi:"superuser"` +} + +// DatabaseRoleInput is an input type that accepts DatabaseRoleArgs and DatabaseRoleOutput values. +// You can construct a concrete instance of `DatabaseRoleInput` via: +// +// DatabaseRoleArgs{...} +type DatabaseRoleInput interface { + pulumi.Input + + ToDatabaseRoleOutput() DatabaseRoleOutput + ToDatabaseRoleOutputWithContext(context.Context) DatabaseRoleOutput +} + +type DatabaseRoleArgs struct { + BypassRls pulumi.BoolPtrInput `pulumi:"bypassRls"` + ConnectionLimit pulumi.IntPtrInput `pulumi:"connectionLimit"` + CreateDb pulumi.BoolPtrInput `pulumi:"createDb"` + CreateRole pulumi.BoolPtrInput `pulumi:"createRole"` + Inherit pulumi.BoolPtrInput `pulumi:"inherit"` + Login pulumi.BoolPtrInput `pulumi:"login"` + Name pulumi.StringPtrInput `pulumi:"name"` + Replication pulumi.BoolPtrInput `pulumi:"replication"` + Superuser pulumi.BoolPtrInput `pulumi:"superuser"` +} + +func (DatabaseRoleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseRole)(nil)).Elem() +} + +func (i DatabaseRoleArgs) ToDatabaseRoleOutput() DatabaseRoleOutput { + return i.ToDatabaseRoleOutputWithContext(context.Background()) +} + +func (i DatabaseRoleArgs) ToDatabaseRoleOutputWithContext(ctx context.Context) DatabaseRoleOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseRoleOutput) +} + +// DatabaseRoleArrayInput is an input type that accepts DatabaseRoleArray and DatabaseRoleArrayOutput values. +// You can construct a concrete instance of `DatabaseRoleArrayInput` via: +// +// DatabaseRoleArray{ DatabaseRoleArgs{...} } +type DatabaseRoleArrayInput interface { + pulumi.Input + + ToDatabaseRoleArrayOutput() DatabaseRoleArrayOutput + ToDatabaseRoleArrayOutputWithContext(context.Context) DatabaseRoleArrayOutput +} + +type DatabaseRoleArray []DatabaseRoleInput + +func (DatabaseRoleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseRole)(nil)).Elem() +} + +func (i DatabaseRoleArray) ToDatabaseRoleArrayOutput() DatabaseRoleArrayOutput { + return i.ToDatabaseRoleArrayOutputWithContext(context.Background()) +} + +func (i DatabaseRoleArray) ToDatabaseRoleArrayOutputWithContext(ctx context.Context) DatabaseRoleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseRoleArrayOutput) +} + +type DatabaseRoleOutput struct{ *pulumi.OutputState } + +func (DatabaseRoleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DatabaseRole)(nil)).Elem() +} + +func (o DatabaseRoleOutput) ToDatabaseRoleOutput() DatabaseRoleOutput { + return o +} + +func (o DatabaseRoleOutput) ToDatabaseRoleOutputWithContext(ctx context.Context) DatabaseRoleOutput { + return o +} + +func (o DatabaseRoleOutput) BypassRls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseRole) *bool { return v.BypassRls }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseRoleOutput) ConnectionLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v DatabaseRole) *int { return v.ConnectionLimit }).(pulumi.IntPtrOutput) +} + +func (o DatabaseRoleOutput) CreateDb() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseRole) *bool { return v.CreateDb }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseRoleOutput) CreateRole() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseRole) *bool { return v.CreateRole }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseRoleOutput) Inherit() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseRole) *bool { return v.Inherit }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseRoleOutput) Login() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseRole) *bool { return v.Login }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseRoleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DatabaseRole) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o DatabaseRoleOutput) Replication() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseRole) *bool { return v.Replication }).(pulumi.BoolPtrOutput) +} + +func (o DatabaseRoleOutput) Superuser() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseRole) *bool { return v.Superuser }).(pulumi.BoolPtrOutput) +} + +type DatabaseRoleArrayOutput struct{ *pulumi.OutputState } + +func (DatabaseRoleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DatabaseRole)(nil)).Elem() +} + +func (o DatabaseRoleArrayOutput) ToDatabaseRoleArrayOutput() DatabaseRoleArrayOutput { + return o +} + +func (o DatabaseRoleArrayOutput) ToDatabaseRoleArrayOutputWithContext(ctx context.Context) DatabaseRoleArrayOutput { + return o +} + +func (o DatabaseRoleArrayOutput) Index(i pulumi.IntInput) DatabaseRoleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DatabaseRole { + return vs[0].([]DatabaseRole)[vs[1].(int)] + }).(DatabaseRoleOutput) +} + +type GetBackupStoresBackupStore struct { + CloudAccountId string `pulumi:"cloudAccountId"` + CloudAccountType string `pulumi:"cloudAccountType"` + ClusterIds []string `pulumi:"clusterIds"` + CreatedAt string `pulumi:"createdAt"` + Id string `pulumi:"id"` + Name string `pulumi:"name"` + Properties map[string]string `pulumi:"properties"` + Status string `pulumi:"status"` + UpdatedAt string `pulumi:"updatedAt"` +} + +// GetBackupStoresBackupStoreInput is an input type that accepts GetBackupStoresBackupStoreArgs and GetBackupStoresBackupStoreOutput values. +// You can construct a concrete instance of `GetBackupStoresBackupStoreInput` via: +// +// GetBackupStoresBackupStoreArgs{...} +type GetBackupStoresBackupStoreInput interface { + pulumi.Input + + ToGetBackupStoresBackupStoreOutput() GetBackupStoresBackupStoreOutput + ToGetBackupStoresBackupStoreOutputWithContext(context.Context) GetBackupStoresBackupStoreOutput +} + +type GetBackupStoresBackupStoreArgs struct { + CloudAccountId pulumi.StringInput `pulumi:"cloudAccountId"` + CloudAccountType pulumi.StringInput `pulumi:"cloudAccountType"` + ClusterIds pulumi.StringArrayInput `pulumi:"clusterIds"` + CreatedAt pulumi.StringInput `pulumi:"createdAt"` + Id pulumi.StringInput `pulumi:"id"` + Name pulumi.StringInput `pulumi:"name"` + Properties pulumi.StringMapInput `pulumi:"properties"` + Status pulumi.StringInput `pulumi:"status"` + UpdatedAt pulumi.StringInput `pulumi:"updatedAt"` +} + +func (GetBackupStoresBackupStoreArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupStoresBackupStore)(nil)).Elem() +} + +func (i GetBackupStoresBackupStoreArgs) ToGetBackupStoresBackupStoreOutput() GetBackupStoresBackupStoreOutput { + return i.ToGetBackupStoresBackupStoreOutputWithContext(context.Background()) +} + +func (i GetBackupStoresBackupStoreArgs) ToGetBackupStoresBackupStoreOutputWithContext(ctx context.Context) GetBackupStoresBackupStoreOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupStoresBackupStoreOutput) +} + +// GetBackupStoresBackupStoreArrayInput is an input type that accepts GetBackupStoresBackupStoreArray and GetBackupStoresBackupStoreArrayOutput values. +// You can construct a concrete instance of `GetBackupStoresBackupStoreArrayInput` via: +// +// GetBackupStoresBackupStoreArray{ GetBackupStoresBackupStoreArgs{...} } +type GetBackupStoresBackupStoreArrayInput interface { + pulumi.Input + + ToGetBackupStoresBackupStoreArrayOutput() GetBackupStoresBackupStoreArrayOutput + ToGetBackupStoresBackupStoreArrayOutputWithContext(context.Context) GetBackupStoresBackupStoreArrayOutput +} + +type GetBackupStoresBackupStoreArray []GetBackupStoresBackupStoreInput + +func (GetBackupStoresBackupStoreArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupStoresBackupStore)(nil)).Elem() +} + +func (i GetBackupStoresBackupStoreArray) ToGetBackupStoresBackupStoreArrayOutput() GetBackupStoresBackupStoreArrayOutput { + return i.ToGetBackupStoresBackupStoreArrayOutputWithContext(context.Background()) +} + +func (i GetBackupStoresBackupStoreArray) ToGetBackupStoresBackupStoreArrayOutputWithContext(ctx context.Context) GetBackupStoresBackupStoreArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupStoresBackupStoreArrayOutput) +} + +type GetBackupStoresBackupStoreOutput struct{ *pulumi.OutputState } + +func (GetBackupStoresBackupStoreOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupStoresBackupStore)(nil)).Elem() +} + +func (o GetBackupStoresBackupStoreOutput) ToGetBackupStoresBackupStoreOutput() GetBackupStoresBackupStoreOutput { + return o +} + +func (o GetBackupStoresBackupStoreOutput) ToGetBackupStoresBackupStoreOutputWithContext(ctx context.Context) GetBackupStoresBackupStoreOutput { + return o +} + +func (o GetBackupStoresBackupStoreOutput) CloudAccountId() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) string { return v.CloudAccountId }).(pulumi.StringOutput) +} + +func (o GetBackupStoresBackupStoreOutput) CloudAccountType() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) string { return v.CloudAccountType }).(pulumi.StringOutput) +} + +func (o GetBackupStoresBackupStoreOutput) ClusterIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) []string { return v.ClusterIds }).(pulumi.StringArrayOutput) +} + +func (o GetBackupStoresBackupStoreOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o GetBackupStoresBackupStoreOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetBackupStoresBackupStoreOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetBackupStoresBackupStoreOutput) Properties() pulumi.StringMapOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) map[string]string { return v.Properties }).(pulumi.StringMapOutput) +} + +func (o GetBackupStoresBackupStoreOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) string { return v.Status }).(pulumi.StringOutput) +} + +func (o GetBackupStoresBackupStoreOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupStoresBackupStore) string { return v.UpdatedAt }).(pulumi.StringOutput) +} + +type GetBackupStoresBackupStoreArrayOutput struct{ *pulumi.OutputState } + +func (GetBackupStoresBackupStoreArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupStoresBackupStore)(nil)).Elem() +} + +func (o GetBackupStoresBackupStoreArrayOutput) ToGetBackupStoresBackupStoreArrayOutput() GetBackupStoresBackupStoreArrayOutput { + return o +} + +func (o GetBackupStoresBackupStoreArrayOutput) ToGetBackupStoresBackupStoreArrayOutputWithContext(ctx context.Context) GetBackupStoresBackupStoreArrayOutput { + return o +} + +func (o GetBackupStoresBackupStoreArrayOutput) Index(i pulumi.IntInput) GetBackupStoresBackupStoreOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackupStoresBackupStore { + return vs[0].([]GetBackupStoresBackupStore)[vs[1].(int)] + }).(GetBackupStoresBackupStoreOutput) +} + +type GetCloudAccountsCloudAccount struct { + // Creation time of the cloud account + CreatedAt string `pulumi:"createdAt"` + // Description of the cloud account + Description string `pulumi:"description"` + // ID of the cloud account + Id string `pulumi:"id"` + // Name of the cloud account + Name string `pulumi:"name"` + // Additional properties of the cloud account + Properties map[string]string `pulumi:"properties"` + // Type of the cloud account (e.g., AWS, Azure, GCP) + Type string `pulumi:"type"` + // Last update time of the cloud account + UpdatedAt string `pulumi:"updatedAt"` +} + +// GetCloudAccountsCloudAccountInput is an input type that accepts GetCloudAccountsCloudAccountArgs and GetCloudAccountsCloudAccountOutput values. +// You can construct a concrete instance of `GetCloudAccountsCloudAccountInput` via: +// +// GetCloudAccountsCloudAccountArgs{...} +type GetCloudAccountsCloudAccountInput interface { + pulumi.Input + + ToGetCloudAccountsCloudAccountOutput() GetCloudAccountsCloudAccountOutput + ToGetCloudAccountsCloudAccountOutputWithContext(context.Context) GetCloudAccountsCloudAccountOutput +} + +type GetCloudAccountsCloudAccountArgs struct { + // Creation time of the cloud account + CreatedAt pulumi.StringInput `pulumi:"createdAt"` + // Description of the cloud account + Description pulumi.StringInput `pulumi:"description"` + // ID of the cloud account + Id pulumi.StringInput `pulumi:"id"` + // Name of the cloud account + Name pulumi.StringInput `pulumi:"name"` + // Additional properties of the cloud account + Properties pulumi.StringMapInput `pulumi:"properties"` + // Type of the cloud account (e.g., AWS, Azure, GCP) + Type pulumi.StringInput `pulumi:"type"` + // Last update time of the cloud account + UpdatedAt pulumi.StringInput `pulumi:"updatedAt"` +} + +func (GetCloudAccountsCloudAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetCloudAccountsCloudAccount)(nil)).Elem() +} + +func (i GetCloudAccountsCloudAccountArgs) ToGetCloudAccountsCloudAccountOutput() GetCloudAccountsCloudAccountOutput { + return i.ToGetCloudAccountsCloudAccountOutputWithContext(context.Background()) +} + +func (i GetCloudAccountsCloudAccountArgs) ToGetCloudAccountsCloudAccountOutputWithContext(ctx context.Context) GetCloudAccountsCloudAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetCloudAccountsCloudAccountOutput) +} + +// GetCloudAccountsCloudAccountArrayInput is an input type that accepts GetCloudAccountsCloudAccountArray and GetCloudAccountsCloudAccountArrayOutput values. +// You can construct a concrete instance of `GetCloudAccountsCloudAccountArrayInput` via: +// +// GetCloudAccountsCloudAccountArray{ GetCloudAccountsCloudAccountArgs{...} } +type GetCloudAccountsCloudAccountArrayInput interface { + pulumi.Input + + ToGetCloudAccountsCloudAccountArrayOutput() GetCloudAccountsCloudAccountArrayOutput + ToGetCloudAccountsCloudAccountArrayOutputWithContext(context.Context) GetCloudAccountsCloudAccountArrayOutput +} + +type GetCloudAccountsCloudAccountArray []GetCloudAccountsCloudAccountInput + +func (GetCloudAccountsCloudAccountArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetCloudAccountsCloudAccount)(nil)).Elem() +} + +func (i GetCloudAccountsCloudAccountArray) ToGetCloudAccountsCloudAccountArrayOutput() GetCloudAccountsCloudAccountArrayOutput { + return i.ToGetCloudAccountsCloudAccountArrayOutputWithContext(context.Background()) +} + +func (i GetCloudAccountsCloudAccountArray) ToGetCloudAccountsCloudAccountArrayOutputWithContext(ctx context.Context) GetCloudAccountsCloudAccountArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetCloudAccountsCloudAccountArrayOutput) +} + +type GetCloudAccountsCloudAccountOutput struct{ *pulumi.OutputState } + +func (GetCloudAccountsCloudAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetCloudAccountsCloudAccount)(nil)).Elem() +} + +func (o GetCloudAccountsCloudAccountOutput) ToGetCloudAccountsCloudAccountOutput() GetCloudAccountsCloudAccountOutput { + return o +} + +func (o GetCloudAccountsCloudAccountOutput) ToGetCloudAccountsCloudAccountOutputWithContext(ctx context.Context) GetCloudAccountsCloudAccountOutput { + return o +} + +// Creation time of the cloud account +func (o GetCloudAccountsCloudAccountOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetCloudAccountsCloudAccount) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Description of the cloud account +func (o GetCloudAccountsCloudAccountOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetCloudAccountsCloudAccount) string { return v.Description }).(pulumi.StringOutput) +} + +// ID of the cloud account +func (o GetCloudAccountsCloudAccountOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetCloudAccountsCloudAccount) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the cloud account +func (o GetCloudAccountsCloudAccountOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetCloudAccountsCloudAccount) string { return v.Name }).(pulumi.StringOutput) +} + +// Additional properties of the cloud account +func (o GetCloudAccountsCloudAccountOutput) Properties() pulumi.StringMapOutput { + return o.ApplyT(func(v GetCloudAccountsCloudAccount) map[string]string { return v.Properties }).(pulumi.StringMapOutput) +} + +// Type of the cloud account (e.g., AWS, Azure, GCP) +func (o GetCloudAccountsCloudAccountOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetCloudAccountsCloudAccount) string { return v.Type }).(pulumi.StringOutput) +} + +// Last update time of the cloud account +func (o GetCloudAccountsCloudAccountOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetCloudAccountsCloudAccount) string { return v.UpdatedAt }).(pulumi.StringOutput) +} + +type GetCloudAccountsCloudAccountArrayOutput struct{ *pulumi.OutputState } + +func (GetCloudAccountsCloudAccountArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetCloudAccountsCloudAccount)(nil)).Elem() +} + +func (o GetCloudAccountsCloudAccountArrayOutput) ToGetCloudAccountsCloudAccountArrayOutput() GetCloudAccountsCloudAccountArrayOutput { + return o +} + +func (o GetCloudAccountsCloudAccountArrayOutput) ToGetCloudAccountsCloudAccountArrayOutputWithContext(ctx context.Context) GetCloudAccountsCloudAccountArrayOutput { + return o +} + +func (o GetCloudAccountsCloudAccountArrayOutput) Index(i pulumi.IntInput) GetCloudAccountsCloudAccountOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetCloudAccountsCloudAccount { + return vs[0].([]GetCloudAccountsCloudAccount)[vs[1].(int)] + }).(GetCloudAccountsCloudAccountOutput) +} + +type GetClustersCluster struct { + // Backup store IDs of the cluster + BackupStoreIds []string `pulumi:"backupStoreIds"` + // Capacity of the cluster + Capacity int `pulumi:"capacity"` + // Cloud account ID of the cluster + CloudAccountId string `pulumi:"cloudAccountId"` + // Created at of the cluster + CreatedAt string `pulumi:"createdAt"` + FirewallRules []GetClustersClusterFirewallRule `pulumi:"firewallRules"` + // ID of the cluster + Id string `pulumi:"id"` + // Name of the cluster + Name string `pulumi:"name"` + Networks []GetClustersClusterNetwork `pulumi:"networks"` + // Node location of the cluster. Must be either 'public' or 'private'. + NodeLocation string `pulumi:"nodeLocation"` + Nodes []GetClustersClusterNode `pulumi:"nodes"` + Regions []string `pulumi:"regions"` + // Resource tags of the cluster + ResourceTags map[string]string `pulumi:"resourceTags"` + // SSH key ID of the cluster + SshKeyId string `pulumi:"sshKeyId"` + // Status of the cluster + Status string `pulumi:"status"` +} + +// GetClustersClusterInput is an input type that accepts GetClustersClusterArgs and GetClustersClusterOutput values. +// You can construct a concrete instance of `GetClustersClusterInput` via: +// +// GetClustersClusterArgs{...} +type GetClustersClusterInput interface { + pulumi.Input + + ToGetClustersClusterOutput() GetClustersClusterOutput + ToGetClustersClusterOutputWithContext(context.Context) GetClustersClusterOutput +} + +type GetClustersClusterArgs struct { + // Backup store IDs of the cluster + BackupStoreIds pulumi.StringArrayInput `pulumi:"backupStoreIds"` + // Capacity of the cluster + Capacity pulumi.IntInput `pulumi:"capacity"` + // Cloud account ID of the cluster + CloudAccountId pulumi.StringInput `pulumi:"cloudAccountId"` + // Created at of the cluster + CreatedAt pulumi.StringInput `pulumi:"createdAt"` + FirewallRules GetClustersClusterFirewallRuleArrayInput `pulumi:"firewallRules"` + // ID of the cluster + Id pulumi.StringInput `pulumi:"id"` + // Name of the cluster + Name pulumi.StringInput `pulumi:"name"` + Networks GetClustersClusterNetworkArrayInput `pulumi:"networks"` + // Node location of the cluster. Must be either 'public' or 'private'. + NodeLocation pulumi.StringInput `pulumi:"nodeLocation"` + Nodes GetClustersClusterNodeArrayInput `pulumi:"nodes"` + Regions pulumi.StringArrayInput `pulumi:"regions"` + // Resource tags of the cluster + ResourceTags pulumi.StringMapInput `pulumi:"resourceTags"` + // SSH key ID of the cluster + SshKeyId pulumi.StringInput `pulumi:"sshKeyId"` + // Status of the cluster + Status pulumi.StringInput `pulumi:"status"` +} + +func (GetClustersClusterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClustersCluster)(nil)).Elem() +} + +func (i GetClustersClusterArgs) ToGetClustersClusterOutput() GetClustersClusterOutput { + return i.ToGetClustersClusterOutputWithContext(context.Background()) +} + +func (i GetClustersClusterArgs) ToGetClustersClusterOutputWithContext(ctx context.Context) GetClustersClusterOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClustersClusterOutput) +} + +// GetClustersClusterArrayInput is an input type that accepts GetClustersClusterArray and GetClustersClusterArrayOutput values. +// You can construct a concrete instance of `GetClustersClusterArrayInput` via: +// +// GetClustersClusterArray{ GetClustersClusterArgs{...} } +type GetClustersClusterArrayInput interface { + pulumi.Input + + ToGetClustersClusterArrayOutput() GetClustersClusterArrayOutput + ToGetClustersClusterArrayOutputWithContext(context.Context) GetClustersClusterArrayOutput +} + +type GetClustersClusterArray []GetClustersClusterInput + +func (GetClustersClusterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClustersCluster)(nil)).Elem() +} + +func (i GetClustersClusterArray) ToGetClustersClusterArrayOutput() GetClustersClusterArrayOutput { + return i.ToGetClustersClusterArrayOutputWithContext(context.Background()) +} + +func (i GetClustersClusterArray) ToGetClustersClusterArrayOutputWithContext(ctx context.Context) GetClustersClusterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClustersClusterArrayOutput) +} + +type GetClustersClusterOutput struct{ *pulumi.OutputState } + +func (GetClustersClusterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClustersCluster)(nil)).Elem() +} + +func (o GetClustersClusterOutput) ToGetClustersClusterOutput() GetClustersClusterOutput { + return o +} + +func (o GetClustersClusterOutput) ToGetClustersClusterOutputWithContext(ctx context.Context) GetClustersClusterOutput { + return o +} + +// Backup store IDs of the cluster +func (o GetClustersClusterOutput) BackupStoreIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetClustersCluster) []string { return v.BackupStoreIds }).(pulumi.StringArrayOutput) +} + +// Capacity of the cluster +func (o GetClustersClusterOutput) Capacity() pulumi.IntOutput { + return o.ApplyT(func(v GetClustersCluster) int { return v.Capacity }).(pulumi.IntOutput) +} + +// Cloud account ID of the cluster +func (o GetClustersClusterOutput) CloudAccountId() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersCluster) string { return v.CloudAccountId }).(pulumi.StringOutput) +} + +// Created at of the cluster +func (o GetClustersClusterOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersCluster) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o GetClustersClusterOutput) FirewallRules() GetClustersClusterFirewallRuleArrayOutput { + return o.ApplyT(func(v GetClustersCluster) []GetClustersClusterFirewallRule { return v.FirewallRules }).(GetClustersClusterFirewallRuleArrayOutput) +} + +// ID of the cluster +func (o GetClustersClusterOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersCluster) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the cluster +func (o GetClustersClusterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersCluster) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetClustersClusterOutput) Networks() GetClustersClusterNetworkArrayOutput { + return o.ApplyT(func(v GetClustersCluster) []GetClustersClusterNetwork { return v.Networks }).(GetClustersClusterNetworkArrayOutput) +} + +// Node location of the cluster. Must be either 'public' or 'private'. +func (o GetClustersClusterOutput) NodeLocation() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersCluster) string { return v.NodeLocation }).(pulumi.StringOutput) +} + +func (o GetClustersClusterOutput) Nodes() GetClustersClusterNodeArrayOutput { + return o.ApplyT(func(v GetClustersCluster) []GetClustersClusterNode { return v.Nodes }).(GetClustersClusterNodeArrayOutput) +} + +func (o GetClustersClusterOutput) Regions() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetClustersCluster) []string { return v.Regions }).(pulumi.StringArrayOutput) +} + +// Resource tags of the cluster +func (o GetClustersClusterOutput) ResourceTags() pulumi.StringMapOutput { + return o.ApplyT(func(v GetClustersCluster) map[string]string { return v.ResourceTags }).(pulumi.StringMapOutput) +} + +// SSH key ID of the cluster +func (o GetClustersClusterOutput) SshKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersCluster) string { return v.SshKeyId }).(pulumi.StringOutput) } -func (i GetClustersClusterCloudAccountArgs) ToGetClustersClusterCloudAccountOutputWithContext(ctx context.Context) GetClustersClusterCloudAccountOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetClustersClusterCloudAccountOutput) +// Status of the cluster +func (o GetClustersClusterOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersCluster) string { return v.Status }).(pulumi.StringOutput) } -type GetClustersClusterCloudAccountOutput struct{ *pulumi.OutputState } +type GetClustersClusterArrayOutput struct{ *pulumi.OutputState } -func (GetClustersClusterCloudAccountOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetClustersClusterCloudAccount)(nil)).Elem() +func (GetClustersClusterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClustersCluster)(nil)).Elem() } -func (o GetClustersClusterCloudAccountOutput) ToGetClustersClusterCloudAccountOutput() GetClustersClusterCloudAccountOutput { +func (o GetClustersClusterArrayOutput) ToGetClustersClusterArrayOutput() GetClustersClusterArrayOutput { return o } -func (o GetClustersClusterCloudAccountOutput) ToGetClustersClusterCloudAccountOutputWithContext(ctx context.Context) GetClustersClusterCloudAccountOutput { +func (o GetClustersClusterArrayOutput) ToGetClustersClusterArrayOutputWithContext(ctx context.Context) GetClustersClusterArrayOutput { return o } -// Display name of the node -func (o GetClustersClusterCloudAccountOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersClusterCloudAccount) string { return v.Id }).(pulumi.StringOutput) -} - -// IP address of the node -func (o GetClustersClusterCloudAccountOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersClusterCloudAccount) string { return v.Name }).(pulumi.StringOutput) -} - -// Type of the node -func (o GetClustersClusterCloudAccountOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v GetClustersClusterCloudAccount) string { return v.Type }).(pulumi.StringOutput) +func (o GetClustersClusterArrayOutput) Index(i pulumi.IntInput) GetClustersClusterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClustersCluster { + return vs[0].([]GetClustersCluster)[vs[1].(int)] + }).(GetClustersClusterOutput) } type GetClustersClusterFirewallRule struct { - // IP address of the node + // Name of the firewall rule Name string `pulumi:"name"` // Port for the firewall rule Port int `pulumi:"port"` @@ -693,7 +2943,7 @@ type GetClustersClusterFirewallRuleInput interface { } type GetClustersClusterFirewallRuleArgs struct { - // IP address of the node + // Name of the firewall rule Name pulumi.StringInput `pulumi:"name"` // Port for the firewall rule Port pulumi.IntInput `pulumi:"port"` @@ -752,7 +3002,7 @@ func (o GetClustersClusterFirewallRuleOutput) ToGetClustersClusterFirewallRuleOu return o } -// IP address of the node +// Name of the firewall rule func (o GetClustersClusterFirewallRuleOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetClustersClusterFirewallRule) string { return v.Name }).(pulumi.StringOutput) } @@ -788,13 +3038,13 @@ func (o GetClustersClusterFirewallRuleArrayOutput) Index(i pulumi.IntInput) GetC } type GetClustersClusterNetwork struct { - // CIDR of the AWS node group + // CIDR of the network Cidr string `pulumi:"cidr"` // Is the network external External bool `pulumi:"external"` // External ID of the network ExternalId string `pulumi:"externalId"` - // IP address of the node + // Name of the firewall rule Name string `pulumi:"name"` PrivateSubnets []string `pulumi:"privateSubnets"` PublicSubnets []string `pulumi:"publicSubnets"` @@ -814,13 +3064,13 @@ type GetClustersClusterNetworkInput interface { } type GetClustersClusterNetworkArgs struct { - // CIDR of the AWS node group + // CIDR of the network Cidr pulumi.StringInput `pulumi:"cidr"` // Is the network external External pulumi.BoolInput `pulumi:"external"` // External ID of the network ExternalId pulumi.StringInput `pulumi:"externalId"` - // IP address of the node + // Name of the firewall rule Name pulumi.StringInput `pulumi:"name"` PrivateSubnets pulumi.StringArrayInput `pulumi:"privateSubnets"` PublicSubnets pulumi.StringArrayInput `pulumi:"publicSubnets"` @@ -879,7 +3129,7 @@ func (o GetClustersClusterNetworkOutput) ToGetClustersClusterNetworkOutputWithCo return o } -// CIDR of the AWS node group +// CIDR of the network func (o GetClustersClusterNetworkOutput) Cidr() pulumi.StringOutput { return o.ApplyT(func(v GetClustersClusterNetwork) string { return v.Cidr }).(pulumi.StringOutput) } @@ -894,7 +3144,7 @@ func (o GetClustersClusterNetworkOutput) ExternalId() pulumi.StringOutput { return o.ApplyT(func(v GetClustersClusterNetwork) string { return v.ExternalId }).(pulumi.StringOutput) } -// IP address of the node +// Name of the firewall rule func (o GetClustersClusterNetworkOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetClustersClusterNetwork) string { return v.Name }).(pulumi.StringOutput) } @@ -937,7 +3187,7 @@ type GetClustersClusterNode struct { AvailabilityZone string `pulumi:"availabilityZone"` // Instance type used for the node InstanceType string `pulumi:"instanceType"` - // IP address of the node + // Name of the firewall rule Name string `pulumi:"name"` Options []string `pulumi:"options"` // Region of the network @@ -966,7 +3216,7 @@ type GetClustersClusterNodeArgs struct { AvailabilityZone pulumi.StringInput `pulumi:"availabilityZone"` // Instance type used for the node InstanceType pulumi.StringInput `pulumi:"instanceType"` - // IP address of the node + // Name of the firewall rule Name pulumi.StringInput `pulumi:"name"` Options pulumi.StringArrayInput `pulumi:"options"` // Region of the network @@ -1040,7 +3290,7 @@ func (o GetClustersClusterNodeOutput) InstanceType() pulumi.StringOutput { return o.ApplyT(func(v GetClustersClusterNode) string { return v.InstanceType }).(pulumi.StringOutput) } -// IP address of the node +// Name of the firewall rule func (o GetClustersClusterNodeOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetClustersClusterNode) string { return v.Name }).(pulumi.StringOutput) } @@ -1090,32 +3340,35 @@ func (o GetClustersClusterNodeArrayOutput) Index(i pulumi.IntInput) GetClustersC } type GetDatabasesDatabase struct { - // Updated at of the database - ClusterId string `pulumi:"clusterId"` + // Backup configuration for the database + Backups GetDatabasesDatabaseBackups `pulumi:"backups"` + // ID of the cluster this database belongs to + ClusterId string `pulumi:"clusterId"` + // Components of the database Components []GetDatabasesDatabaseComponent `pulumi:"components"` - // Config version of the database - ConfigVersion *string `pulumi:"configVersion"` - // Created at of the database + // Configuration version of the database + ConfigVersion string `pulumi:"configVersion"` + // Creation timestamp of the database CreatedAt string `pulumi:"createdAt"` // Domain of the database - Domain string `pulumi:"domain"` + Domain string `pulumi:"domain"` + // Extensions configuration for the database Extensions GetDatabasesDatabaseExtensions `pulumi:"extensions"` // ID of the database Id string `pulumi:"id"` // Name of the database - Name string `pulumi:"name"` - Nodes []GetDatabasesDatabaseNode `pulumi:"nodes"` - // Options for creating the database + Name string `pulumi:"name"` + // Map of nodes in the database + Nodes map[string]GetDatabasesDatabaseNodes `pulumi:"nodes"` + // Options for the database Options []string `pulumi:"options"` - // Postgres version of the database - PgVersion string `pulumi:"pgVersion"` - Roles []GetDatabasesDatabaseRole `pulumi:"roles"` + // PostgreSQL version of the database + PgVersion string `pulumi:"pgVersion"` + // Roles in the database + Roles []GetDatabasesDatabaseRole `pulumi:"roles"` // Status of the database Status string `pulumi:"status"` - // Storage used of the database - StorageUsed int `pulumi:"storageUsed"` - Tables []GetDatabasesDatabaseTable `pulumi:"tables"` - // Updated at of the database + // Last update timestamp of the database UpdatedAt string `pulumi:"updatedAt"` } @@ -1131,32 +3384,35 @@ type GetDatabasesDatabaseInput interface { } type GetDatabasesDatabaseArgs struct { - // Updated at of the database - ClusterId pulumi.StringInput `pulumi:"clusterId"` + // Backup configuration for the database + Backups GetDatabasesDatabaseBackupsInput `pulumi:"backups"` + // ID of the cluster this database belongs to + ClusterId pulumi.StringInput `pulumi:"clusterId"` + // Components of the database Components GetDatabasesDatabaseComponentArrayInput `pulumi:"components"` - // Config version of the database - ConfigVersion pulumi.StringPtrInput `pulumi:"configVersion"` - // Created at of the database + // Configuration version of the database + ConfigVersion pulumi.StringInput `pulumi:"configVersion"` + // Creation timestamp of the database CreatedAt pulumi.StringInput `pulumi:"createdAt"` // Domain of the database - Domain pulumi.StringInput `pulumi:"domain"` + Domain pulumi.StringInput `pulumi:"domain"` + // Extensions configuration for the database Extensions GetDatabasesDatabaseExtensionsInput `pulumi:"extensions"` // ID of the database Id pulumi.StringInput `pulumi:"id"` // Name of the database - Name pulumi.StringInput `pulumi:"name"` - Nodes GetDatabasesDatabaseNodeArrayInput `pulumi:"nodes"` - // Options for creating the database + Name pulumi.StringInput `pulumi:"name"` + // Map of nodes in the database + Nodes GetDatabasesDatabaseNodesMapInput `pulumi:"nodes"` + // Options for the database Options pulumi.StringArrayInput `pulumi:"options"` - // Postgres version of the database - PgVersion pulumi.StringInput `pulumi:"pgVersion"` - Roles GetDatabasesDatabaseRoleArrayInput `pulumi:"roles"` + // PostgreSQL version of the database + PgVersion pulumi.StringInput `pulumi:"pgVersion"` + // Roles in the database + Roles GetDatabasesDatabaseRoleArrayInput `pulumi:"roles"` // Status of the database Status pulumi.StringInput `pulumi:"status"` - // Storage used of the database - StorageUsed pulumi.IntInput `pulumi:"storageUsed"` - Tables GetDatabasesDatabaseTableArrayInput `pulumi:"tables"` - // Updated at of the database + // Last update timestamp of the database UpdatedAt pulumi.StringInput `pulumi:"updatedAt"` } @@ -1203,119 +3459,592 @@ func (GetDatabasesDatabaseOutput) ElementType() reflect.Type { return reflect.TypeOf((*GetDatabasesDatabase)(nil)).Elem() } -func (o GetDatabasesDatabaseOutput) ToGetDatabasesDatabaseOutput() GetDatabasesDatabaseOutput { +func (o GetDatabasesDatabaseOutput) ToGetDatabasesDatabaseOutput() GetDatabasesDatabaseOutput { + return o +} + +func (o GetDatabasesDatabaseOutput) ToGetDatabasesDatabaseOutputWithContext(ctx context.Context) GetDatabasesDatabaseOutput { + return o +} + +// Backup configuration for the database +func (o GetDatabasesDatabaseOutput) Backups() GetDatabasesDatabaseBackupsOutput { + return o.ApplyT(func(v GetDatabasesDatabase) GetDatabasesDatabaseBackups { return v.Backups }).(GetDatabasesDatabaseBackupsOutput) +} + +// ID of the cluster this database belongs to +func (o GetDatabasesDatabaseOutput) ClusterId() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.ClusterId }).(pulumi.StringOutput) +} + +// Components of the database +func (o GetDatabasesDatabaseOutput) Components() GetDatabasesDatabaseComponentArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabase) []GetDatabasesDatabaseComponent { return v.Components }).(GetDatabasesDatabaseComponentArrayOutput) +} + +// Configuration version of the database +func (o GetDatabasesDatabaseOutput) ConfigVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.ConfigVersion }).(pulumi.StringOutput) +} + +// Creation timestamp of the database +func (o GetDatabasesDatabaseOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Domain of the database +func (o GetDatabasesDatabaseOutput) Domain() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Domain }).(pulumi.StringOutput) +} + +// Extensions configuration for the database +func (o GetDatabasesDatabaseOutput) Extensions() GetDatabasesDatabaseExtensionsOutput { + return o.ApplyT(func(v GetDatabasesDatabase) GetDatabasesDatabaseExtensions { return v.Extensions }).(GetDatabasesDatabaseExtensionsOutput) +} + +// ID of the database +func (o GetDatabasesDatabaseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the database +func (o GetDatabasesDatabaseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Name }).(pulumi.StringOutput) +} + +// Map of nodes in the database +func (o GetDatabasesDatabaseOutput) Nodes() GetDatabasesDatabaseNodesMapOutput { + return o.ApplyT(func(v GetDatabasesDatabase) map[string]GetDatabasesDatabaseNodes { return v.Nodes }).(GetDatabasesDatabaseNodesMapOutput) +} + +// Options for the database +func (o GetDatabasesDatabaseOutput) Options() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabase) []string { return v.Options }).(pulumi.StringArrayOutput) +} + +// PostgreSQL version of the database +func (o GetDatabasesDatabaseOutput) PgVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.PgVersion }).(pulumi.StringOutput) +} + +// Roles in the database +func (o GetDatabasesDatabaseOutput) Roles() GetDatabasesDatabaseRoleArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabase) []GetDatabasesDatabaseRole { return v.Roles }).(GetDatabasesDatabaseRoleArrayOutput) +} + +// Status of the database +func (o GetDatabasesDatabaseOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Status }).(pulumi.StringOutput) +} + +// Last update timestamp of the database +func (o GetDatabasesDatabaseOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabase) string { return v.UpdatedAt }).(pulumi.StringOutput) +} + +type GetDatabasesDatabaseArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabasesDatabase)(nil)).Elem() +} + +func (o GetDatabasesDatabaseArrayOutput) ToGetDatabasesDatabaseArrayOutput() GetDatabasesDatabaseArrayOutput { + return o +} + +func (o GetDatabasesDatabaseArrayOutput) ToGetDatabasesDatabaseArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseArrayOutput { + return o +} + +func (o GetDatabasesDatabaseArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabase { + return vs[0].([]GetDatabasesDatabase)[vs[1].(int)] + }).(GetDatabasesDatabaseOutput) +} + +type GetDatabasesDatabaseBackups struct { + // Backup configurations + Configs []GetDatabasesDatabaseBackupsConfig `pulumi:"configs"` + // Backup provider + Provider string `pulumi:"provider"` +} + +// GetDatabasesDatabaseBackupsInput is an input type that accepts GetDatabasesDatabaseBackupsArgs and GetDatabasesDatabaseBackupsOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseBackupsInput` via: +// +// GetDatabasesDatabaseBackupsArgs{...} +type GetDatabasesDatabaseBackupsInput interface { + pulumi.Input + + ToGetDatabasesDatabaseBackupsOutput() GetDatabasesDatabaseBackupsOutput + ToGetDatabasesDatabaseBackupsOutputWithContext(context.Context) GetDatabasesDatabaseBackupsOutput +} + +type GetDatabasesDatabaseBackupsArgs struct { + // Backup configurations + Configs GetDatabasesDatabaseBackupsConfigArrayInput `pulumi:"configs"` + // Backup provider + Provider pulumi.StringInput `pulumi:"provider"` +} + +func (GetDatabasesDatabaseBackupsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackups)(nil)).Elem() +} + +func (i GetDatabasesDatabaseBackupsArgs) ToGetDatabasesDatabaseBackupsOutput() GetDatabasesDatabaseBackupsOutput { + return i.ToGetDatabasesDatabaseBackupsOutputWithContext(context.Background()) +} + +func (i GetDatabasesDatabaseBackupsArgs) ToGetDatabasesDatabaseBackupsOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseBackupsOutput) +} + +type GetDatabasesDatabaseBackupsOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseBackupsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackups)(nil)).Elem() +} + +func (o GetDatabasesDatabaseBackupsOutput) ToGetDatabasesDatabaseBackupsOutput() GetDatabasesDatabaseBackupsOutput { + return o +} + +func (o GetDatabasesDatabaseBackupsOutput) ToGetDatabasesDatabaseBackupsOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsOutput { + return o +} + +// Backup configurations +func (o GetDatabasesDatabaseBackupsOutput) Configs() GetDatabasesDatabaseBackupsConfigArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackups) []GetDatabasesDatabaseBackupsConfig { return v.Configs }).(GetDatabasesDatabaseBackupsConfigArrayOutput) +} + +// Backup provider +func (o GetDatabasesDatabaseBackupsOutput) Provider() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackups) string { return v.Provider }).(pulumi.StringOutput) +} + +type GetDatabasesDatabaseBackupsConfig struct { + // Backup configuration ID + Id string `pulumi:"id"` + // Node name + NodeName string `pulumi:"nodeName"` + // Backup repositories + Repositories []GetDatabasesDatabaseBackupsConfigRepository `pulumi:"repositories"` + // Backup schedules + Schedules []GetDatabasesDatabaseBackupsConfigSchedule `pulumi:"schedules"` +} + +// GetDatabasesDatabaseBackupsConfigInput is an input type that accepts GetDatabasesDatabaseBackupsConfigArgs and GetDatabasesDatabaseBackupsConfigOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseBackupsConfigInput` via: +// +// GetDatabasesDatabaseBackupsConfigArgs{...} +type GetDatabasesDatabaseBackupsConfigInput interface { + pulumi.Input + + ToGetDatabasesDatabaseBackupsConfigOutput() GetDatabasesDatabaseBackupsConfigOutput + ToGetDatabasesDatabaseBackupsConfigOutputWithContext(context.Context) GetDatabasesDatabaseBackupsConfigOutput +} + +type GetDatabasesDatabaseBackupsConfigArgs struct { + // Backup configuration ID + Id pulumi.StringInput `pulumi:"id"` + // Node name + NodeName pulumi.StringInput `pulumi:"nodeName"` + // Backup repositories + Repositories GetDatabasesDatabaseBackupsConfigRepositoryArrayInput `pulumi:"repositories"` + // Backup schedules + Schedules GetDatabasesDatabaseBackupsConfigScheduleArrayInput `pulumi:"schedules"` +} + +func (GetDatabasesDatabaseBackupsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackupsConfig)(nil)).Elem() +} + +func (i GetDatabasesDatabaseBackupsConfigArgs) ToGetDatabasesDatabaseBackupsConfigOutput() GetDatabasesDatabaseBackupsConfigOutput { + return i.ToGetDatabasesDatabaseBackupsConfigOutputWithContext(context.Background()) +} + +func (i GetDatabasesDatabaseBackupsConfigArgs) ToGetDatabasesDatabaseBackupsConfigOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseBackupsConfigOutput) +} + +// GetDatabasesDatabaseBackupsConfigArrayInput is an input type that accepts GetDatabasesDatabaseBackupsConfigArray and GetDatabasesDatabaseBackupsConfigArrayOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseBackupsConfigArrayInput` via: +// +// GetDatabasesDatabaseBackupsConfigArray{ GetDatabasesDatabaseBackupsConfigArgs{...} } +type GetDatabasesDatabaseBackupsConfigArrayInput interface { + pulumi.Input + + ToGetDatabasesDatabaseBackupsConfigArrayOutput() GetDatabasesDatabaseBackupsConfigArrayOutput + ToGetDatabasesDatabaseBackupsConfigArrayOutputWithContext(context.Context) GetDatabasesDatabaseBackupsConfigArrayOutput +} + +type GetDatabasesDatabaseBackupsConfigArray []GetDatabasesDatabaseBackupsConfigInput + +func (GetDatabasesDatabaseBackupsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabasesDatabaseBackupsConfig)(nil)).Elem() +} + +func (i GetDatabasesDatabaseBackupsConfigArray) ToGetDatabasesDatabaseBackupsConfigArrayOutput() GetDatabasesDatabaseBackupsConfigArrayOutput { + return i.ToGetDatabasesDatabaseBackupsConfigArrayOutputWithContext(context.Background()) +} + +func (i GetDatabasesDatabaseBackupsConfigArray) ToGetDatabasesDatabaseBackupsConfigArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseBackupsConfigArrayOutput) +} + +type GetDatabasesDatabaseBackupsConfigOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseBackupsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackupsConfig)(nil)).Elem() +} + +func (o GetDatabasesDatabaseBackupsConfigOutput) ToGetDatabasesDatabaseBackupsConfigOutput() GetDatabasesDatabaseBackupsConfigOutput { + return o +} + +func (o GetDatabasesDatabaseBackupsConfigOutput) ToGetDatabasesDatabaseBackupsConfigOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigOutput { + return o +} + +// Backup configuration ID +func (o GetDatabasesDatabaseBackupsConfigOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfig) string { return v.Id }).(pulumi.StringOutput) +} + +// Node name +func (o GetDatabasesDatabaseBackupsConfigOutput) NodeName() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfig) string { return v.NodeName }).(pulumi.StringOutput) +} + +// Backup repositories +func (o GetDatabasesDatabaseBackupsConfigOutput) Repositories() GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfig) []GetDatabasesDatabaseBackupsConfigRepository { + return v.Repositories + }).(GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput) +} + +// Backup schedules +func (o GetDatabasesDatabaseBackupsConfigOutput) Schedules() GetDatabasesDatabaseBackupsConfigScheduleArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfig) []GetDatabasesDatabaseBackupsConfigSchedule { + return v.Schedules + }).(GetDatabasesDatabaseBackupsConfigScheduleArrayOutput) +} + +type GetDatabasesDatabaseBackupsConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseBackupsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabasesDatabaseBackupsConfig)(nil)).Elem() +} + +func (o GetDatabasesDatabaseBackupsConfigArrayOutput) ToGetDatabasesDatabaseBackupsConfigArrayOutput() GetDatabasesDatabaseBackupsConfigArrayOutput { + return o +} + +func (o GetDatabasesDatabaseBackupsConfigArrayOutput) ToGetDatabasesDatabaseBackupsConfigArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigArrayOutput { + return o +} + +func (o GetDatabasesDatabaseBackupsConfigArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseBackupsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabaseBackupsConfig { + return vs[0].([]GetDatabasesDatabaseBackupsConfig)[vs[1].(int)] + }).(GetDatabasesDatabaseBackupsConfigOutput) +} + +type GetDatabasesDatabaseBackupsConfigRepository struct { + AzureAccount string `pulumi:"azureAccount"` + AzureContainer string `pulumi:"azureContainer"` + AzureEndpoint string `pulumi:"azureEndpoint"` + BackupStoreId string `pulumi:"backupStoreId"` + BasePath string `pulumi:"basePath"` + GcsBucket string `pulumi:"gcsBucket"` + GcsEndpoint string `pulumi:"gcsEndpoint"` + // Backup configuration ID + Id string `pulumi:"id"` + RetentionFull int `pulumi:"retentionFull"` + RetentionFullType string `pulumi:"retentionFullType"` + S3Bucket string `pulumi:"s3Bucket"` + S3Endpoint string `pulumi:"s3Endpoint"` + S3Region string `pulumi:"s3Region"` + Type string `pulumi:"type"` +} + +// GetDatabasesDatabaseBackupsConfigRepositoryInput is an input type that accepts GetDatabasesDatabaseBackupsConfigRepositoryArgs and GetDatabasesDatabaseBackupsConfigRepositoryOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseBackupsConfigRepositoryInput` via: +// +// GetDatabasesDatabaseBackupsConfigRepositoryArgs{...} +type GetDatabasesDatabaseBackupsConfigRepositoryInput interface { + pulumi.Input + + ToGetDatabasesDatabaseBackupsConfigRepositoryOutput() GetDatabasesDatabaseBackupsConfigRepositoryOutput + ToGetDatabasesDatabaseBackupsConfigRepositoryOutputWithContext(context.Context) GetDatabasesDatabaseBackupsConfigRepositoryOutput +} + +type GetDatabasesDatabaseBackupsConfigRepositoryArgs struct { + AzureAccount pulumi.StringInput `pulumi:"azureAccount"` + AzureContainer pulumi.StringInput `pulumi:"azureContainer"` + AzureEndpoint pulumi.StringInput `pulumi:"azureEndpoint"` + BackupStoreId pulumi.StringInput `pulumi:"backupStoreId"` + BasePath pulumi.StringInput `pulumi:"basePath"` + GcsBucket pulumi.StringInput `pulumi:"gcsBucket"` + GcsEndpoint pulumi.StringInput `pulumi:"gcsEndpoint"` + // Backup configuration ID + Id pulumi.StringInput `pulumi:"id"` + RetentionFull pulumi.IntInput `pulumi:"retentionFull"` + RetentionFullType pulumi.StringInput `pulumi:"retentionFullType"` + S3Bucket pulumi.StringInput `pulumi:"s3Bucket"` + S3Endpoint pulumi.StringInput `pulumi:"s3Endpoint"` + S3Region pulumi.StringInput `pulumi:"s3Region"` + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetDatabasesDatabaseBackupsConfigRepositoryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (i GetDatabasesDatabaseBackupsConfigRepositoryArgs) ToGetDatabasesDatabaseBackupsConfigRepositoryOutput() GetDatabasesDatabaseBackupsConfigRepositoryOutput { + return i.ToGetDatabasesDatabaseBackupsConfigRepositoryOutputWithContext(context.Background()) +} + +func (i GetDatabasesDatabaseBackupsConfigRepositoryArgs) ToGetDatabasesDatabaseBackupsConfigRepositoryOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigRepositoryOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseBackupsConfigRepositoryOutput) +} + +// GetDatabasesDatabaseBackupsConfigRepositoryArrayInput is an input type that accepts GetDatabasesDatabaseBackupsConfigRepositoryArray and GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseBackupsConfigRepositoryArrayInput` via: +// +// GetDatabasesDatabaseBackupsConfigRepositoryArray{ GetDatabasesDatabaseBackupsConfigRepositoryArgs{...} } +type GetDatabasesDatabaseBackupsConfigRepositoryArrayInput interface { + pulumi.Input + + ToGetDatabasesDatabaseBackupsConfigRepositoryArrayOutput() GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput + ToGetDatabasesDatabaseBackupsConfigRepositoryArrayOutputWithContext(context.Context) GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput +} + +type GetDatabasesDatabaseBackupsConfigRepositoryArray []GetDatabasesDatabaseBackupsConfigRepositoryInput + +func (GetDatabasesDatabaseBackupsConfigRepositoryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabasesDatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (i GetDatabasesDatabaseBackupsConfigRepositoryArray) ToGetDatabasesDatabaseBackupsConfigRepositoryArrayOutput() GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput { + return i.ToGetDatabasesDatabaseBackupsConfigRepositoryArrayOutputWithContext(context.Background()) +} + +func (i GetDatabasesDatabaseBackupsConfigRepositoryArray) ToGetDatabasesDatabaseBackupsConfigRepositoryArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput) +} + +type GetDatabasesDatabaseBackupsConfigRepositoryOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseBackupsConfigRepositoryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) ToGetDatabasesDatabaseBackupsConfigRepositoryOutput() GetDatabasesDatabaseBackupsConfigRepositoryOutput { + return o +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) ToGetDatabasesDatabaseBackupsConfigRepositoryOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigRepositoryOutput { + return o +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) AzureAccount() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.AzureAccount }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) AzureContainer() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.AzureContainer }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) AzureEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.AzureEndpoint }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) BackupStoreId() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.BackupStoreId }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) BasePath() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.BasePath }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) GcsBucket() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.GcsBucket }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) GcsEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.GcsEndpoint }).(pulumi.StringOutput) +} + +// Backup configuration ID +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) RetentionFull() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) int { return v.RetentionFull }).(pulumi.IntOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) RetentionFullType() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.RetentionFullType }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) S3Bucket() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.S3Bucket }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) S3Endpoint() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.S3Endpoint }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) S3Region() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.S3Region }).(pulumi.StringOutput) +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigRepository) string { return v.Type }).(pulumi.StringOutput) +} + +type GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabasesDatabaseBackupsConfigRepository)(nil)).Elem() +} + +func (o GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput) ToGetDatabasesDatabaseBackupsConfigRepositoryArrayOutput() GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput { return o } -func (o GetDatabasesDatabaseOutput) ToGetDatabasesDatabaseOutputWithContext(ctx context.Context) GetDatabasesDatabaseOutput { +func (o GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput) ToGetDatabasesDatabaseBackupsConfigRepositoryArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput { return o } -// Updated at of the database -func (o GetDatabasesDatabaseOutput) ClusterId() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.ClusterId }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseBackupsConfigRepositoryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabaseBackupsConfigRepository { + return vs[0].([]GetDatabasesDatabaseBackupsConfigRepository)[vs[1].(int)] + }).(GetDatabasesDatabaseBackupsConfigRepositoryOutput) } -func (o GetDatabasesDatabaseOutput) Components() GetDatabasesDatabaseComponentArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabase) []GetDatabasesDatabaseComponent { return v.Components }).(GetDatabasesDatabaseComponentArrayOutput) +type GetDatabasesDatabaseBackupsConfigSchedule struct { + CronExpression string `pulumi:"cronExpression"` + // Backup configuration ID + Id string `pulumi:"id"` + Type string `pulumi:"type"` } -// Config version of the database -func (o GetDatabasesDatabaseOutput) ConfigVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v GetDatabasesDatabase) *string { return v.ConfigVersion }).(pulumi.StringPtrOutput) +// GetDatabasesDatabaseBackupsConfigScheduleInput is an input type that accepts GetDatabasesDatabaseBackupsConfigScheduleArgs and GetDatabasesDatabaseBackupsConfigScheduleOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseBackupsConfigScheduleInput` via: +// +// GetDatabasesDatabaseBackupsConfigScheduleArgs{...} +type GetDatabasesDatabaseBackupsConfigScheduleInput interface { + pulumi.Input + + ToGetDatabasesDatabaseBackupsConfigScheduleOutput() GetDatabasesDatabaseBackupsConfigScheduleOutput + ToGetDatabasesDatabaseBackupsConfigScheduleOutputWithContext(context.Context) GetDatabasesDatabaseBackupsConfigScheduleOutput } -// Created at of the database -func (o GetDatabasesDatabaseOutput) CreatedAt() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.CreatedAt }).(pulumi.StringOutput) +type GetDatabasesDatabaseBackupsConfigScheduleArgs struct { + CronExpression pulumi.StringInput `pulumi:"cronExpression"` + // Backup configuration ID + Id pulumi.StringInput `pulumi:"id"` + Type pulumi.StringInput `pulumi:"type"` } -// Domain of the database -func (o GetDatabasesDatabaseOutput) Domain() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Domain }).(pulumi.StringOutput) +func (GetDatabasesDatabaseBackupsConfigScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigSchedule)(nil)).Elem() } -func (o GetDatabasesDatabaseOutput) Extensions() GetDatabasesDatabaseExtensionsOutput { - return o.ApplyT(func(v GetDatabasesDatabase) GetDatabasesDatabaseExtensions { return v.Extensions }).(GetDatabasesDatabaseExtensionsOutput) +func (i GetDatabasesDatabaseBackupsConfigScheduleArgs) ToGetDatabasesDatabaseBackupsConfigScheduleOutput() GetDatabasesDatabaseBackupsConfigScheduleOutput { + return i.ToGetDatabasesDatabaseBackupsConfigScheduleOutputWithContext(context.Background()) } -// ID of the database -func (o GetDatabasesDatabaseOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Id }).(pulumi.StringOutput) +func (i GetDatabasesDatabaseBackupsConfigScheduleArgs) ToGetDatabasesDatabaseBackupsConfigScheduleOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseBackupsConfigScheduleOutput) } -// Name of the database -func (o GetDatabasesDatabaseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Name }).(pulumi.StringOutput) +// GetDatabasesDatabaseBackupsConfigScheduleArrayInput is an input type that accepts GetDatabasesDatabaseBackupsConfigScheduleArray and GetDatabasesDatabaseBackupsConfigScheduleArrayOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseBackupsConfigScheduleArrayInput` via: +// +// GetDatabasesDatabaseBackupsConfigScheduleArray{ GetDatabasesDatabaseBackupsConfigScheduleArgs{...} } +type GetDatabasesDatabaseBackupsConfigScheduleArrayInput interface { + pulumi.Input + + ToGetDatabasesDatabaseBackupsConfigScheduleArrayOutput() GetDatabasesDatabaseBackupsConfigScheduleArrayOutput + ToGetDatabasesDatabaseBackupsConfigScheduleArrayOutputWithContext(context.Context) GetDatabasesDatabaseBackupsConfigScheduleArrayOutput } -func (o GetDatabasesDatabaseOutput) Nodes() GetDatabasesDatabaseNodeArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabase) []GetDatabasesDatabaseNode { return v.Nodes }).(GetDatabasesDatabaseNodeArrayOutput) +type GetDatabasesDatabaseBackupsConfigScheduleArray []GetDatabasesDatabaseBackupsConfigScheduleInput + +func (GetDatabasesDatabaseBackupsConfigScheduleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabasesDatabaseBackupsConfigSchedule)(nil)).Elem() } -// Options for creating the database -func (o GetDatabasesDatabaseOutput) Options() pulumi.StringArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabase) []string { return v.Options }).(pulumi.StringArrayOutput) +func (i GetDatabasesDatabaseBackupsConfigScheduleArray) ToGetDatabasesDatabaseBackupsConfigScheduleArrayOutput() GetDatabasesDatabaseBackupsConfigScheduleArrayOutput { + return i.ToGetDatabasesDatabaseBackupsConfigScheduleArrayOutputWithContext(context.Background()) } -// Postgres version of the database -func (o GetDatabasesDatabaseOutput) PgVersion() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.PgVersion }).(pulumi.StringOutput) +func (i GetDatabasesDatabaseBackupsConfigScheduleArray) ToGetDatabasesDatabaseBackupsConfigScheduleArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigScheduleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseBackupsConfigScheduleArrayOutput) } -func (o GetDatabasesDatabaseOutput) Roles() GetDatabasesDatabaseRoleArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabase) []GetDatabasesDatabaseRole { return v.Roles }).(GetDatabasesDatabaseRoleArrayOutput) +type GetDatabasesDatabaseBackupsConfigScheduleOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseBackupsConfigScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigSchedule)(nil)).Elem() } -// Status of the database -func (o GetDatabasesDatabaseOutput) Status() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.Status }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseBackupsConfigScheduleOutput) ToGetDatabasesDatabaseBackupsConfigScheduleOutput() GetDatabasesDatabaseBackupsConfigScheduleOutput { + return o } -// Storage used of the database -func (o GetDatabasesDatabaseOutput) StorageUsed() pulumi.IntOutput { - return o.ApplyT(func(v GetDatabasesDatabase) int { return v.StorageUsed }).(pulumi.IntOutput) +func (o GetDatabasesDatabaseBackupsConfigScheduleOutput) ToGetDatabasesDatabaseBackupsConfigScheduleOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigScheduleOutput { + return o } -func (o GetDatabasesDatabaseOutput) Tables() GetDatabasesDatabaseTableArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabase) []GetDatabasesDatabaseTable { return v.Tables }).(GetDatabasesDatabaseTableArrayOutput) +func (o GetDatabasesDatabaseBackupsConfigScheduleOutput) CronExpression() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigSchedule) string { return v.CronExpression }).(pulumi.StringOutput) } -// Updated at of the database -func (o GetDatabasesDatabaseOutput) UpdatedAt() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabase) string { return v.UpdatedAt }).(pulumi.StringOutput) +// Backup configuration ID +func (o GetDatabasesDatabaseBackupsConfigScheduleOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigSchedule) string { return v.Id }).(pulumi.StringOutput) } -type GetDatabasesDatabaseArrayOutput struct{ *pulumi.OutputState } +func (o GetDatabasesDatabaseBackupsConfigScheduleOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseBackupsConfigSchedule) string { return v.Type }).(pulumi.StringOutput) +} -func (GetDatabasesDatabaseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabase)(nil)).Elem() +type GetDatabasesDatabaseBackupsConfigScheduleArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabasesDatabaseBackupsConfigScheduleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabasesDatabaseBackupsConfigSchedule)(nil)).Elem() } -func (o GetDatabasesDatabaseArrayOutput) ToGetDatabasesDatabaseArrayOutput() GetDatabasesDatabaseArrayOutput { +func (o GetDatabasesDatabaseBackupsConfigScheduleArrayOutput) ToGetDatabasesDatabaseBackupsConfigScheduleArrayOutput() GetDatabasesDatabaseBackupsConfigScheduleArrayOutput { return o } -func (o GetDatabasesDatabaseArrayOutput) ToGetDatabasesDatabaseArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseArrayOutput { +func (o GetDatabasesDatabaseBackupsConfigScheduleArrayOutput) ToGetDatabasesDatabaseBackupsConfigScheduleArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseBackupsConfigScheduleArrayOutput { return o } -func (o GetDatabasesDatabaseArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabase { - return vs[0].([]GetDatabasesDatabase)[vs[1].(int)] - }).(GetDatabasesDatabaseOutput) +func (o GetDatabasesDatabaseBackupsConfigScheduleArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseBackupsConfigScheduleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabaseBackupsConfigSchedule { + return vs[0].([]GetDatabasesDatabaseBackupsConfigSchedule)[vs[1].(int)] + }).(GetDatabasesDatabaseBackupsConfigScheduleOutput) } type GetDatabasesDatabaseComponent struct { - // Id of the component + // Backup configuration ID Id string `pulumi:"id"` - // Name of the component + // Component name Name string `pulumi:"name"` - // Release date of the component + // Component release date ReleaseDate string `pulumi:"releaseDate"` - // Status of the component + // Component status Status string `pulumi:"status"` - // Version of the component + // Component version Version string `pulumi:"version"` } @@ -1331,15 +4060,15 @@ type GetDatabasesDatabaseComponentInput interface { } type GetDatabasesDatabaseComponentArgs struct { - // Id of the component + // Backup configuration ID Id pulumi.StringInput `pulumi:"id"` - // Name of the component + // Component name Name pulumi.StringInput `pulumi:"name"` - // Release date of the component + // Component release date ReleaseDate pulumi.StringInput `pulumi:"releaseDate"` - // Status of the component + // Component status Status pulumi.StringInput `pulumi:"status"` - // Version of the component + // Component version Version pulumi.StringInput `pulumi:"version"` } @@ -1394,27 +4123,27 @@ func (o GetDatabasesDatabaseComponentOutput) ToGetDatabasesDatabaseComponentOutp return o } -// Id of the component +// Backup configuration ID func (o GetDatabasesDatabaseComponentOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v GetDatabasesDatabaseComponent) string { return v.Id }).(pulumi.StringOutput) } -// Name of the component +// Component name func (o GetDatabasesDatabaseComponentOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetDatabasesDatabaseComponent) string { return v.Name }).(pulumi.StringOutput) } -// Release date of the component +// Component release date func (o GetDatabasesDatabaseComponentOutput) ReleaseDate() pulumi.StringOutput { return o.ApplyT(func(v GetDatabasesDatabaseComponent) string { return v.ReleaseDate }).(pulumi.StringOutput) } -// Status of the component +// Component status func (o GetDatabasesDatabaseComponentOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v GetDatabasesDatabaseComponent) string { return v.Status }).(pulumi.StringOutput) } -// Version of the component +// Component version func (o GetDatabasesDatabaseComponentOutput) Version() pulumi.StringOutput { return o.ApplyT(func(v GetDatabasesDatabaseComponent) string { return v.Version }).(pulumi.StringOutput) } @@ -1440,11 +4169,11 @@ func (o GetDatabasesDatabaseComponentArrayOutput) Index(i pulumi.IntInput) GetDa } type GetDatabasesDatabaseExtensions struct { - // Auto manage of the extension + // Auto-manage extensions AutoManage bool `pulumi:"autoManage"` - // Available of the extension + // Available extensions Availables []string `pulumi:"availables"` - // Requested of the extension + // Requested extensions Requesteds []string `pulumi:"requesteds"` } @@ -1460,11 +4189,11 @@ type GetDatabasesDatabaseExtensionsInput interface { } type GetDatabasesDatabaseExtensionsArgs struct { - // Auto manage of the extension + // Auto-manage extensions AutoManage pulumi.BoolInput `pulumi:"autoManage"` - // Available of the extension + // Available extensions Availables pulumi.StringArrayInput `pulumi:"availables"` - // Requested of the extension + // Requested extensions Requesteds pulumi.StringArrayInput `pulumi:"requesteds"` } @@ -1494,742 +4223,505 @@ func (o GetDatabasesDatabaseExtensionsOutput) ToGetDatabasesDatabaseExtensionsOu return o } -// Auto manage of the extension +// Auto-manage extensions func (o GetDatabasesDatabaseExtensionsOutput) AutoManage() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseExtensions) bool { return v.AutoManage }).(pulumi.BoolOutput) } -// Available of the extension +// Available extensions func (o GetDatabasesDatabaseExtensionsOutput) Availables() pulumi.StringArrayOutput { return o.ApplyT(func(v GetDatabasesDatabaseExtensions) []string { return v.Availables }).(pulumi.StringArrayOutput) } -// Requested of the extension +// Requested extensions func (o GetDatabasesDatabaseExtensionsOutput) Requesteds() pulumi.StringArrayOutput { return o.ApplyT(func(v GetDatabasesDatabaseExtensions) []string { return v.Requesteds }).(pulumi.StringArrayOutput) } -type GetDatabasesDatabaseNode struct { - Connection GetDatabasesDatabaseNodeConnection `pulumi:"connection"` - DistanceMeasurement GetDatabasesDatabaseNodeDistanceMeasurement `pulumi:"distanceMeasurement"` - Extensions GetDatabasesDatabaseNodeExtensions `pulumi:"extensions"` - Location GetDatabasesDatabaseNodeLocation `pulumi:"location"` - // Name of the component +type GetDatabasesDatabaseNodes struct { + // Node connection details + Connection GetDatabasesDatabaseNodesConnection `pulumi:"connection"` + // Extensions configuration for the database + Extensions GetDatabasesDatabaseNodesExtensions `pulumi:"extensions"` + // Node location + Location GetDatabasesDatabaseNodesLocation `pulumi:"location"` + // Component name Name string `pulumi:"name"` - // Region of the location - Region GetDatabasesDatabaseNodeRegion `pulumi:"region"` + // Node region + Region GetDatabasesDatabaseNodesRegion `pulumi:"region"` } -// GetDatabasesDatabaseNodeInput is an input type that accepts GetDatabasesDatabaseNodeArgs and GetDatabasesDatabaseNodeOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeInput` via: +// GetDatabasesDatabaseNodesInput is an input type that accepts GetDatabasesDatabaseNodesArgs and GetDatabasesDatabaseNodesOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseNodesInput` via: // -// GetDatabasesDatabaseNodeArgs{...} -type GetDatabasesDatabaseNodeInput interface { +// GetDatabasesDatabaseNodesArgs{...} +type GetDatabasesDatabaseNodesInput interface { pulumi.Input - ToGetDatabasesDatabaseNodeOutput() GetDatabasesDatabaseNodeOutput - ToGetDatabasesDatabaseNodeOutputWithContext(context.Context) GetDatabasesDatabaseNodeOutput + ToGetDatabasesDatabaseNodesOutput() GetDatabasesDatabaseNodesOutput + ToGetDatabasesDatabaseNodesOutputWithContext(context.Context) GetDatabasesDatabaseNodesOutput } -type GetDatabasesDatabaseNodeArgs struct { - Connection GetDatabasesDatabaseNodeConnectionInput `pulumi:"connection"` - DistanceMeasurement GetDatabasesDatabaseNodeDistanceMeasurementInput `pulumi:"distanceMeasurement"` - Extensions GetDatabasesDatabaseNodeExtensionsInput `pulumi:"extensions"` - Location GetDatabasesDatabaseNodeLocationInput `pulumi:"location"` - // Name of the component +type GetDatabasesDatabaseNodesArgs struct { + // Node connection details + Connection GetDatabasesDatabaseNodesConnectionInput `pulumi:"connection"` + // Extensions configuration for the database + Extensions GetDatabasesDatabaseNodesExtensionsInput `pulumi:"extensions"` + // Node location + Location GetDatabasesDatabaseNodesLocationInput `pulumi:"location"` + // Component name Name pulumi.StringInput `pulumi:"name"` - // Region of the location - Region GetDatabasesDatabaseNodeRegionInput `pulumi:"region"` + // Node region + Region GetDatabasesDatabaseNodesRegionInput `pulumi:"region"` } -func (GetDatabasesDatabaseNodeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNode)(nil)).Elem() +func (GetDatabasesDatabaseNodesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodes)(nil)).Elem() } -func (i GetDatabasesDatabaseNodeArgs) ToGetDatabasesDatabaseNodeOutput() GetDatabasesDatabaseNodeOutput { - return i.ToGetDatabasesDatabaseNodeOutputWithContext(context.Background()) +func (i GetDatabasesDatabaseNodesArgs) ToGetDatabasesDatabaseNodesOutput() GetDatabasesDatabaseNodesOutput { + return i.ToGetDatabasesDatabaseNodesOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseNodeArgs) ToGetDatabasesDatabaseNodeOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeOutput) +func (i GetDatabasesDatabaseNodesArgs) ToGetDatabasesDatabaseNodesOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodesOutput) } -// GetDatabasesDatabaseNodeArrayInput is an input type that accepts GetDatabasesDatabaseNodeArray and GetDatabasesDatabaseNodeArrayOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeArrayInput` via: +// GetDatabasesDatabaseNodesMapInput is an input type that accepts GetDatabasesDatabaseNodesMap and GetDatabasesDatabaseNodesMapOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseNodesMapInput` via: // -// GetDatabasesDatabaseNodeArray{ GetDatabasesDatabaseNodeArgs{...} } -type GetDatabasesDatabaseNodeArrayInput interface { +// GetDatabasesDatabaseNodesMap{ "key": GetDatabasesDatabaseNodesArgs{...} } +type GetDatabasesDatabaseNodesMapInput interface { pulumi.Input - ToGetDatabasesDatabaseNodeArrayOutput() GetDatabasesDatabaseNodeArrayOutput - ToGetDatabasesDatabaseNodeArrayOutputWithContext(context.Context) GetDatabasesDatabaseNodeArrayOutput + ToGetDatabasesDatabaseNodesMapOutput() GetDatabasesDatabaseNodesMapOutput + ToGetDatabasesDatabaseNodesMapOutputWithContext(context.Context) GetDatabasesDatabaseNodesMapOutput } -type GetDatabasesDatabaseNodeArray []GetDatabasesDatabaseNodeInput +type GetDatabasesDatabaseNodesMap map[string]GetDatabasesDatabaseNodesInput -func (GetDatabasesDatabaseNodeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseNode)(nil)).Elem() +func (GetDatabasesDatabaseNodesMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]GetDatabasesDatabaseNodes)(nil)).Elem() } -func (i GetDatabasesDatabaseNodeArray) ToGetDatabasesDatabaseNodeArrayOutput() GetDatabasesDatabaseNodeArrayOutput { - return i.ToGetDatabasesDatabaseNodeArrayOutputWithContext(context.Background()) +func (i GetDatabasesDatabaseNodesMap) ToGetDatabasesDatabaseNodesMapOutput() GetDatabasesDatabaseNodesMapOutput { + return i.ToGetDatabasesDatabaseNodesMapOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseNodeArray) ToGetDatabasesDatabaseNodeArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeArrayOutput) +func (i GetDatabasesDatabaseNodesMap) ToGetDatabasesDatabaseNodesMapOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodesMapOutput) } -type GetDatabasesDatabaseNodeOutput struct{ *pulumi.OutputState } +type GetDatabasesDatabaseNodesOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseNodeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNode)(nil)).Elem() +func (GetDatabasesDatabaseNodesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodes)(nil)).Elem() } -func (o GetDatabasesDatabaseNodeOutput) ToGetDatabasesDatabaseNodeOutput() GetDatabasesDatabaseNodeOutput { +func (o GetDatabasesDatabaseNodesOutput) ToGetDatabasesDatabaseNodesOutput() GetDatabasesDatabaseNodesOutput { return o } -func (o GetDatabasesDatabaseNodeOutput) ToGetDatabasesDatabaseNodeOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeOutput { +func (o GetDatabasesDatabaseNodesOutput) ToGetDatabasesDatabaseNodesOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesOutput { return o } -func (o GetDatabasesDatabaseNodeOutput) Connection() GetDatabasesDatabaseNodeConnectionOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNode) GetDatabasesDatabaseNodeConnection { return v.Connection }).(GetDatabasesDatabaseNodeConnectionOutput) -} - -func (o GetDatabasesDatabaseNodeOutput) DistanceMeasurement() GetDatabasesDatabaseNodeDistanceMeasurementOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNode) GetDatabasesDatabaseNodeDistanceMeasurement { - return v.DistanceMeasurement - }).(GetDatabasesDatabaseNodeDistanceMeasurementOutput) +// Node connection details +func (o GetDatabasesDatabaseNodesOutput) Connection() GetDatabasesDatabaseNodesConnectionOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodes) GetDatabasesDatabaseNodesConnection { return v.Connection }).(GetDatabasesDatabaseNodesConnectionOutput) } -func (o GetDatabasesDatabaseNodeOutput) Extensions() GetDatabasesDatabaseNodeExtensionsOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNode) GetDatabasesDatabaseNodeExtensions { return v.Extensions }).(GetDatabasesDatabaseNodeExtensionsOutput) +// Extensions configuration for the database +func (o GetDatabasesDatabaseNodesOutput) Extensions() GetDatabasesDatabaseNodesExtensionsOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodes) GetDatabasesDatabaseNodesExtensions { return v.Extensions }).(GetDatabasesDatabaseNodesExtensionsOutput) } -func (o GetDatabasesDatabaseNodeOutput) Location() GetDatabasesDatabaseNodeLocationOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNode) GetDatabasesDatabaseNodeLocation { return v.Location }).(GetDatabasesDatabaseNodeLocationOutput) +// Node location +func (o GetDatabasesDatabaseNodesOutput) Location() GetDatabasesDatabaseNodesLocationOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodes) GetDatabasesDatabaseNodesLocation { return v.Location }).(GetDatabasesDatabaseNodesLocationOutput) } -// Name of the component -func (o GetDatabasesDatabaseNodeOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNode) string { return v.Name }).(pulumi.StringOutput) +// Component name +func (o GetDatabasesDatabaseNodesOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodes) string { return v.Name }).(pulumi.StringOutput) } -// Region of the location -func (o GetDatabasesDatabaseNodeOutput) Region() GetDatabasesDatabaseNodeRegionOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNode) GetDatabasesDatabaseNodeRegion { return v.Region }).(GetDatabasesDatabaseNodeRegionOutput) +// Node region +func (o GetDatabasesDatabaseNodesOutput) Region() GetDatabasesDatabaseNodesRegionOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodes) GetDatabasesDatabaseNodesRegion { return v.Region }).(GetDatabasesDatabaseNodesRegionOutput) } -type GetDatabasesDatabaseNodeArrayOutput struct{ *pulumi.OutputState } +type GetDatabasesDatabaseNodesMapOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseNodeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseNode)(nil)).Elem() +func (GetDatabasesDatabaseNodesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]GetDatabasesDatabaseNodes)(nil)).Elem() } -func (o GetDatabasesDatabaseNodeArrayOutput) ToGetDatabasesDatabaseNodeArrayOutput() GetDatabasesDatabaseNodeArrayOutput { +func (o GetDatabasesDatabaseNodesMapOutput) ToGetDatabasesDatabaseNodesMapOutput() GetDatabasesDatabaseNodesMapOutput { return o } -func (o GetDatabasesDatabaseNodeArrayOutput) ToGetDatabasesDatabaseNodeArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeArrayOutput { +func (o GetDatabasesDatabaseNodesMapOutput) ToGetDatabasesDatabaseNodesMapOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesMapOutput { return o } -func (o GetDatabasesDatabaseNodeArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseNodeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabaseNode { - return vs[0].([]GetDatabasesDatabaseNode)[vs[1].(int)] - }).(GetDatabasesDatabaseNodeOutput) +func (o GetDatabasesDatabaseNodesMapOutput) MapIndex(k pulumi.StringInput) GetDatabasesDatabaseNodesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) GetDatabasesDatabaseNodes { + return vs[0].(map[string]GetDatabasesDatabaseNodes)[vs[1].(string)] + }).(GetDatabasesDatabaseNodesOutput) } -type GetDatabasesDatabaseNodeConnection struct { - // Database of the node - Database string `pulumi:"database"` - // External IP of the node +type GetDatabasesDatabaseNodesConnection struct { + Database string `pulumi:"database"` ExternalIpAddress string `pulumi:"externalIpAddress"` - // Host of the node - Host string `pulumi:"host"` - // Internal Host of the node - InternalHost string `pulumi:"internalHost"` - // Internal IP of the node + Host string `pulumi:"host"` + InternalHost string `pulumi:"internalHost"` InternalIpAddress string `pulumi:"internalIpAddress"` - // Password of the node - Password string `pulumi:"password"` - // Port of the node - Port int `pulumi:"port"` - // Username of the node - Username string `pulumi:"username"` + Password string `pulumi:"password"` + Port int `pulumi:"port"` + Username string `pulumi:"username"` } -// GetDatabasesDatabaseNodeConnectionInput is an input type that accepts GetDatabasesDatabaseNodeConnectionArgs and GetDatabasesDatabaseNodeConnectionOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeConnectionInput` via: +// GetDatabasesDatabaseNodesConnectionInput is an input type that accepts GetDatabasesDatabaseNodesConnectionArgs and GetDatabasesDatabaseNodesConnectionOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseNodesConnectionInput` via: // -// GetDatabasesDatabaseNodeConnectionArgs{...} -type GetDatabasesDatabaseNodeConnectionInput interface { +// GetDatabasesDatabaseNodesConnectionArgs{...} +type GetDatabasesDatabaseNodesConnectionInput interface { pulumi.Input - ToGetDatabasesDatabaseNodeConnectionOutput() GetDatabasesDatabaseNodeConnectionOutput - ToGetDatabasesDatabaseNodeConnectionOutputWithContext(context.Context) GetDatabasesDatabaseNodeConnectionOutput + ToGetDatabasesDatabaseNodesConnectionOutput() GetDatabasesDatabaseNodesConnectionOutput + ToGetDatabasesDatabaseNodesConnectionOutputWithContext(context.Context) GetDatabasesDatabaseNodesConnectionOutput } -type GetDatabasesDatabaseNodeConnectionArgs struct { - // Database of the node - Database pulumi.StringInput `pulumi:"database"` - // External IP of the node +type GetDatabasesDatabaseNodesConnectionArgs struct { + Database pulumi.StringInput `pulumi:"database"` ExternalIpAddress pulumi.StringInput `pulumi:"externalIpAddress"` - // Host of the node - Host pulumi.StringInput `pulumi:"host"` - // Internal Host of the node - InternalHost pulumi.StringInput `pulumi:"internalHost"` - // Internal IP of the node + Host pulumi.StringInput `pulumi:"host"` + InternalHost pulumi.StringInput `pulumi:"internalHost"` InternalIpAddress pulumi.StringInput `pulumi:"internalIpAddress"` - // Password of the node - Password pulumi.StringInput `pulumi:"password"` - // Port of the node - Port pulumi.IntInput `pulumi:"port"` - // Username of the node - Username pulumi.StringInput `pulumi:"username"` + Password pulumi.StringInput `pulumi:"password"` + Port pulumi.IntInput `pulumi:"port"` + Username pulumi.StringInput `pulumi:"username"` } -func (GetDatabasesDatabaseNodeConnectionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeConnection)(nil)).Elem() +func (GetDatabasesDatabaseNodesConnectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesConnection)(nil)).Elem() } -func (i GetDatabasesDatabaseNodeConnectionArgs) ToGetDatabasesDatabaseNodeConnectionOutput() GetDatabasesDatabaseNodeConnectionOutput { - return i.ToGetDatabasesDatabaseNodeConnectionOutputWithContext(context.Background()) +func (i GetDatabasesDatabaseNodesConnectionArgs) ToGetDatabasesDatabaseNodesConnectionOutput() GetDatabasesDatabaseNodesConnectionOutput { + return i.ToGetDatabasesDatabaseNodesConnectionOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseNodeConnectionArgs) ToGetDatabasesDatabaseNodeConnectionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeConnectionOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeConnectionOutput) +func (i GetDatabasesDatabaseNodesConnectionArgs) ToGetDatabasesDatabaseNodesConnectionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesConnectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodesConnectionOutput) } -type GetDatabasesDatabaseNodeConnectionOutput struct{ *pulumi.OutputState } +type GetDatabasesDatabaseNodesConnectionOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseNodeConnectionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeConnection)(nil)).Elem() +func (GetDatabasesDatabaseNodesConnectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesConnection)(nil)).Elem() } -func (o GetDatabasesDatabaseNodeConnectionOutput) ToGetDatabasesDatabaseNodeConnectionOutput() GetDatabasesDatabaseNodeConnectionOutput { +func (o GetDatabasesDatabaseNodesConnectionOutput) ToGetDatabasesDatabaseNodesConnectionOutput() GetDatabasesDatabaseNodesConnectionOutput { return o } -func (o GetDatabasesDatabaseNodeConnectionOutput) ToGetDatabasesDatabaseNodeConnectionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeConnectionOutput { +func (o GetDatabasesDatabaseNodesConnectionOutput) ToGetDatabasesDatabaseNodesConnectionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesConnectionOutput { return o } -// Database of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) Database() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) string { return v.Database }).(pulumi.StringOutput) -} - -// External IP of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) ExternalIpAddress() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) string { return v.ExternalIpAddress }).(pulumi.StringOutput) -} - -// Host of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) Host() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) string { return v.Host }).(pulumi.StringOutput) -} - -// Internal Host of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) InternalHost() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) string { return v.InternalHost }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesConnectionOutput) Database() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) string { return v.Database }).(pulumi.StringOutput) } -// Internal IP of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) InternalIpAddress() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) string { return v.InternalIpAddress }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesConnectionOutput) ExternalIpAddress() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) string { return v.ExternalIpAddress }).(pulumi.StringOutput) } -// Password of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) Password() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) string { return v.Password }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesConnectionOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) string { return v.Host }).(pulumi.StringOutput) } -// Port of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) Port() pulumi.IntOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) int { return v.Port }).(pulumi.IntOutput) +func (o GetDatabasesDatabaseNodesConnectionOutput) InternalHost() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) string { return v.InternalHost }).(pulumi.StringOutput) } -// Username of the node -func (o GetDatabasesDatabaseNodeConnectionOutput) Username() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeConnection) string { return v.Username }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesConnectionOutput) InternalIpAddress() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) string { return v.InternalIpAddress }).(pulumi.StringOutput) } -type GetDatabasesDatabaseNodeDistanceMeasurement struct { - // Distance from a reference point - Distance float64 `pulumi:"distance"` - // Latitude of the reference point - FromLatitude float64 `pulumi:"fromLatitude"` - // Longitude of the reference point - FromLongitude float64 `pulumi:"fromLongitude"` - // Unit of distance measurement - Unit string `pulumi:"unit"` +func (o GetDatabasesDatabaseNodesConnectionOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) string { return v.Password }).(pulumi.StringOutput) } -// GetDatabasesDatabaseNodeDistanceMeasurementInput is an input type that accepts GetDatabasesDatabaseNodeDistanceMeasurementArgs and GetDatabasesDatabaseNodeDistanceMeasurementOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeDistanceMeasurementInput` via: -// -// GetDatabasesDatabaseNodeDistanceMeasurementArgs{...} -type GetDatabasesDatabaseNodeDistanceMeasurementInput interface { - pulumi.Input - - ToGetDatabasesDatabaseNodeDistanceMeasurementOutput() GetDatabasesDatabaseNodeDistanceMeasurementOutput - ToGetDatabasesDatabaseNodeDistanceMeasurementOutputWithContext(context.Context) GetDatabasesDatabaseNodeDistanceMeasurementOutput -} - -type GetDatabasesDatabaseNodeDistanceMeasurementArgs struct { - // Distance from a reference point - Distance pulumi.Float64Input `pulumi:"distance"` - // Latitude of the reference point - FromLatitude pulumi.Float64Input `pulumi:"fromLatitude"` - // Longitude of the reference point - FromLongitude pulumi.Float64Input `pulumi:"fromLongitude"` - // Unit of distance measurement - Unit pulumi.StringInput `pulumi:"unit"` -} - -func (GetDatabasesDatabaseNodeDistanceMeasurementArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeDistanceMeasurement)(nil)).Elem() -} - -func (i GetDatabasesDatabaseNodeDistanceMeasurementArgs) ToGetDatabasesDatabaseNodeDistanceMeasurementOutput() GetDatabasesDatabaseNodeDistanceMeasurementOutput { - return i.ToGetDatabasesDatabaseNodeDistanceMeasurementOutputWithContext(context.Background()) -} - -func (i GetDatabasesDatabaseNodeDistanceMeasurementArgs) ToGetDatabasesDatabaseNodeDistanceMeasurementOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeDistanceMeasurementOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeDistanceMeasurementOutput) -} - -type GetDatabasesDatabaseNodeDistanceMeasurementOutput struct{ *pulumi.OutputState } - -func (GetDatabasesDatabaseNodeDistanceMeasurementOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeDistanceMeasurement)(nil)).Elem() -} - -func (o GetDatabasesDatabaseNodeDistanceMeasurementOutput) ToGetDatabasesDatabaseNodeDistanceMeasurementOutput() GetDatabasesDatabaseNodeDistanceMeasurementOutput { - return o -} - -func (o GetDatabasesDatabaseNodeDistanceMeasurementOutput) ToGetDatabasesDatabaseNodeDistanceMeasurementOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeDistanceMeasurementOutput { - return o -} - -// Distance from a reference point -func (o GetDatabasesDatabaseNodeDistanceMeasurementOutput) Distance() pulumi.Float64Output { - return o.ApplyT(func(v GetDatabasesDatabaseNodeDistanceMeasurement) float64 { return v.Distance }).(pulumi.Float64Output) -} - -// Latitude of the reference point -func (o GetDatabasesDatabaseNodeDistanceMeasurementOutput) FromLatitude() pulumi.Float64Output { - return o.ApplyT(func(v GetDatabasesDatabaseNodeDistanceMeasurement) float64 { return v.FromLatitude }).(pulumi.Float64Output) +func (o GetDatabasesDatabaseNodesConnectionOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) int { return v.Port }).(pulumi.IntOutput) } -// Longitude of the reference point -func (o GetDatabasesDatabaseNodeDistanceMeasurementOutput) FromLongitude() pulumi.Float64Output { - return o.ApplyT(func(v GetDatabasesDatabaseNodeDistanceMeasurement) float64 { return v.FromLongitude }).(pulumi.Float64Output) +func (o GetDatabasesDatabaseNodesConnectionOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesConnection) string { return v.Username }).(pulumi.StringOutput) } -// Unit of distance measurement -func (o GetDatabasesDatabaseNodeDistanceMeasurementOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeDistanceMeasurement) string { return v.Unit }).(pulumi.StringOutput) +type GetDatabasesDatabaseNodesExtensions struct { + Errors map[string]string `pulumi:"errors"` + Installeds []string `pulumi:"installeds"` } -type GetDatabasesDatabaseNodeExtensions struct { - Errors GetDatabasesDatabaseNodeExtensionsErrors `pulumi:"errors"` - // List of installed extensions - Installeds []string `pulumi:"installeds"` -} - -// GetDatabasesDatabaseNodeExtensionsInput is an input type that accepts GetDatabasesDatabaseNodeExtensionsArgs and GetDatabasesDatabaseNodeExtensionsOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeExtensionsInput` via: +// GetDatabasesDatabaseNodesExtensionsInput is an input type that accepts GetDatabasesDatabaseNodesExtensionsArgs and GetDatabasesDatabaseNodesExtensionsOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseNodesExtensionsInput` via: // -// GetDatabasesDatabaseNodeExtensionsArgs{...} -type GetDatabasesDatabaseNodeExtensionsInput interface { +// GetDatabasesDatabaseNodesExtensionsArgs{...} +type GetDatabasesDatabaseNodesExtensionsInput interface { pulumi.Input - ToGetDatabasesDatabaseNodeExtensionsOutput() GetDatabasesDatabaseNodeExtensionsOutput - ToGetDatabasesDatabaseNodeExtensionsOutputWithContext(context.Context) GetDatabasesDatabaseNodeExtensionsOutput + ToGetDatabasesDatabaseNodesExtensionsOutput() GetDatabasesDatabaseNodesExtensionsOutput + ToGetDatabasesDatabaseNodesExtensionsOutputWithContext(context.Context) GetDatabasesDatabaseNodesExtensionsOutput } -type GetDatabasesDatabaseNodeExtensionsArgs struct { - Errors GetDatabasesDatabaseNodeExtensionsErrorsInput `pulumi:"errors"` - // List of installed extensions +type GetDatabasesDatabaseNodesExtensionsArgs struct { + Errors pulumi.StringMapInput `pulumi:"errors"` Installeds pulumi.StringArrayInput `pulumi:"installeds"` } -func (GetDatabasesDatabaseNodeExtensionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeExtensions)(nil)).Elem() -} - -func (i GetDatabasesDatabaseNodeExtensionsArgs) ToGetDatabasesDatabaseNodeExtensionsOutput() GetDatabasesDatabaseNodeExtensionsOutput { - return i.ToGetDatabasesDatabaseNodeExtensionsOutputWithContext(context.Background()) -} - -func (i GetDatabasesDatabaseNodeExtensionsArgs) ToGetDatabasesDatabaseNodeExtensionsOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeExtensionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeExtensionsOutput) -} - -type GetDatabasesDatabaseNodeExtensionsOutput struct{ *pulumi.OutputState } - -func (GetDatabasesDatabaseNodeExtensionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeExtensions)(nil)).Elem() -} - -func (o GetDatabasesDatabaseNodeExtensionsOutput) ToGetDatabasesDatabaseNodeExtensionsOutput() GetDatabasesDatabaseNodeExtensionsOutput { - return o -} - -func (o GetDatabasesDatabaseNodeExtensionsOutput) ToGetDatabasesDatabaseNodeExtensionsOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeExtensionsOutput { - return o -} - -func (o GetDatabasesDatabaseNodeExtensionsOutput) Errors() GetDatabasesDatabaseNodeExtensionsErrorsOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeExtensions) GetDatabasesDatabaseNodeExtensionsErrors { return v.Errors }).(GetDatabasesDatabaseNodeExtensionsErrorsOutput) -} - -// List of installed extensions -func (o GetDatabasesDatabaseNodeExtensionsOutput) Installeds() pulumi.StringArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeExtensions) []string { return v.Installeds }).(pulumi.StringArrayOutput) -} - -type GetDatabasesDatabaseNodeExtensionsErrors struct { - // Error code anim9ef - Anim9ef string `pulumi:"anim9ef"` - // Error code enim3b - Enim3b string `pulumi:"enim3b"` - // Error code laborumd - Laborumd string `pulumi:"laborumd"` - // Error code mollit267 - Mollit267 string `pulumi:"mollit267"` -} - -// GetDatabasesDatabaseNodeExtensionsErrorsInput is an input type that accepts GetDatabasesDatabaseNodeExtensionsErrorsArgs and GetDatabasesDatabaseNodeExtensionsErrorsOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeExtensionsErrorsInput` via: -// -// GetDatabasesDatabaseNodeExtensionsErrorsArgs{...} -type GetDatabasesDatabaseNodeExtensionsErrorsInput interface { - pulumi.Input - - ToGetDatabasesDatabaseNodeExtensionsErrorsOutput() GetDatabasesDatabaseNodeExtensionsErrorsOutput - ToGetDatabasesDatabaseNodeExtensionsErrorsOutputWithContext(context.Context) GetDatabasesDatabaseNodeExtensionsErrorsOutput -} - -type GetDatabasesDatabaseNodeExtensionsErrorsArgs struct { - // Error code anim9ef - Anim9ef pulumi.StringInput `pulumi:"anim9ef"` - // Error code enim3b - Enim3b pulumi.StringInput `pulumi:"enim3b"` - // Error code laborumd - Laborumd pulumi.StringInput `pulumi:"laborumd"` - // Error code mollit267 - Mollit267 pulumi.StringInput `pulumi:"mollit267"` +func (GetDatabasesDatabaseNodesExtensionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesExtensions)(nil)).Elem() } -func (GetDatabasesDatabaseNodeExtensionsErrorsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeExtensionsErrors)(nil)).Elem() +func (i GetDatabasesDatabaseNodesExtensionsArgs) ToGetDatabasesDatabaseNodesExtensionsOutput() GetDatabasesDatabaseNodesExtensionsOutput { + return i.ToGetDatabasesDatabaseNodesExtensionsOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseNodeExtensionsErrorsArgs) ToGetDatabasesDatabaseNodeExtensionsErrorsOutput() GetDatabasesDatabaseNodeExtensionsErrorsOutput { - return i.ToGetDatabasesDatabaseNodeExtensionsErrorsOutputWithContext(context.Background()) +func (i GetDatabasesDatabaseNodesExtensionsArgs) ToGetDatabasesDatabaseNodesExtensionsOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesExtensionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodesExtensionsOutput) } -func (i GetDatabasesDatabaseNodeExtensionsErrorsArgs) ToGetDatabasesDatabaseNodeExtensionsErrorsOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeExtensionsErrorsOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeExtensionsErrorsOutput) -} - -type GetDatabasesDatabaseNodeExtensionsErrorsOutput struct{ *pulumi.OutputState } +type GetDatabasesDatabaseNodesExtensionsOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseNodeExtensionsErrorsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeExtensionsErrors)(nil)).Elem() +func (GetDatabasesDatabaseNodesExtensionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesExtensions)(nil)).Elem() } -func (o GetDatabasesDatabaseNodeExtensionsErrorsOutput) ToGetDatabasesDatabaseNodeExtensionsErrorsOutput() GetDatabasesDatabaseNodeExtensionsErrorsOutput { +func (o GetDatabasesDatabaseNodesExtensionsOutput) ToGetDatabasesDatabaseNodesExtensionsOutput() GetDatabasesDatabaseNodesExtensionsOutput { return o } -func (o GetDatabasesDatabaseNodeExtensionsErrorsOutput) ToGetDatabasesDatabaseNodeExtensionsErrorsOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeExtensionsErrorsOutput { +func (o GetDatabasesDatabaseNodesExtensionsOutput) ToGetDatabasesDatabaseNodesExtensionsOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesExtensionsOutput { return o } -// Error code anim9ef -func (o GetDatabasesDatabaseNodeExtensionsErrorsOutput) Anim9ef() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeExtensionsErrors) string { return v.Anim9ef }).(pulumi.StringOutput) -} - -// Error code enim3b -func (o GetDatabasesDatabaseNodeExtensionsErrorsOutput) Enim3b() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeExtensionsErrors) string { return v.Enim3b }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesExtensionsOutput) Errors() pulumi.StringMapOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesExtensions) map[string]string { return v.Errors }).(pulumi.StringMapOutput) } -// Error code laborumd -func (o GetDatabasesDatabaseNodeExtensionsErrorsOutput) Laborumd() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeExtensionsErrors) string { return v.Laborumd }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesExtensionsOutput) Installeds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesExtensions) []string { return v.Installeds }).(pulumi.StringArrayOutput) } -// Error code mollit267 -func (o GetDatabasesDatabaseNodeExtensionsErrorsOutput) Mollit267() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeExtensionsErrors) string { return v.Mollit267 }).(pulumi.StringOutput) -} - -type GetDatabasesDatabaseNodeLocation struct { - // City of the location - City string `pulumi:"city"` - // Code of the location - Code string `pulumi:"code"` - // Country of the location - Country string `pulumi:"country"` - // Latitude of the location - Latitude float64 `pulumi:"latitude"` - // Longitude of the location +type GetDatabasesDatabaseNodesLocation struct { + City string `pulumi:"city"` + Code string `pulumi:"code"` + Country string `pulumi:"country"` + Latitude float64 `pulumi:"latitude"` Longitude float64 `pulumi:"longitude"` - // Metro code of the location - MetroCode string `pulumi:"metroCode"` - // Name of the component - Name string `pulumi:"name"` - // Postal code of the location + MetroCode string `pulumi:"metroCode"` + // Component name + Name string `pulumi:"name"` PostalCode string `pulumi:"postalCode"` - // Region of the location - Region string `pulumi:"region"` - // Region code of the location + Region string `pulumi:"region"` RegionCode string `pulumi:"regionCode"` - // Timezone of the location - Timezone string `pulumi:"timezone"` + Timezone string `pulumi:"timezone"` } -// GetDatabasesDatabaseNodeLocationInput is an input type that accepts GetDatabasesDatabaseNodeLocationArgs and GetDatabasesDatabaseNodeLocationOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeLocationInput` via: +// GetDatabasesDatabaseNodesLocationInput is an input type that accepts GetDatabasesDatabaseNodesLocationArgs and GetDatabasesDatabaseNodesLocationOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseNodesLocationInput` via: // -// GetDatabasesDatabaseNodeLocationArgs{...} -type GetDatabasesDatabaseNodeLocationInput interface { +// GetDatabasesDatabaseNodesLocationArgs{...} +type GetDatabasesDatabaseNodesLocationInput interface { pulumi.Input - ToGetDatabasesDatabaseNodeLocationOutput() GetDatabasesDatabaseNodeLocationOutput - ToGetDatabasesDatabaseNodeLocationOutputWithContext(context.Context) GetDatabasesDatabaseNodeLocationOutput + ToGetDatabasesDatabaseNodesLocationOutput() GetDatabasesDatabaseNodesLocationOutput + ToGetDatabasesDatabaseNodesLocationOutputWithContext(context.Context) GetDatabasesDatabaseNodesLocationOutput } -type GetDatabasesDatabaseNodeLocationArgs struct { - // City of the location - City pulumi.StringInput `pulumi:"city"` - // Code of the location - Code pulumi.StringInput `pulumi:"code"` - // Country of the location - Country pulumi.StringInput `pulumi:"country"` - // Latitude of the location - Latitude pulumi.Float64Input `pulumi:"latitude"` - // Longitude of the location +type GetDatabasesDatabaseNodesLocationArgs struct { + City pulumi.StringInput `pulumi:"city"` + Code pulumi.StringInput `pulumi:"code"` + Country pulumi.StringInput `pulumi:"country"` + Latitude pulumi.Float64Input `pulumi:"latitude"` Longitude pulumi.Float64Input `pulumi:"longitude"` - // Metro code of the location - MetroCode pulumi.StringInput `pulumi:"metroCode"` - // Name of the component - Name pulumi.StringInput `pulumi:"name"` - // Postal code of the location + MetroCode pulumi.StringInput `pulumi:"metroCode"` + // Component name + Name pulumi.StringInput `pulumi:"name"` PostalCode pulumi.StringInput `pulumi:"postalCode"` - // Region of the location - Region pulumi.StringInput `pulumi:"region"` - // Region code of the location + Region pulumi.StringInput `pulumi:"region"` RegionCode pulumi.StringInput `pulumi:"regionCode"` - // Timezone of the location - Timezone pulumi.StringInput `pulumi:"timezone"` + Timezone pulumi.StringInput `pulumi:"timezone"` } -func (GetDatabasesDatabaseNodeLocationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeLocation)(nil)).Elem() +func (GetDatabasesDatabaseNodesLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesLocation)(nil)).Elem() } -func (i GetDatabasesDatabaseNodeLocationArgs) ToGetDatabasesDatabaseNodeLocationOutput() GetDatabasesDatabaseNodeLocationOutput { - return i.ToGetDatabasesDatabaseNodeLocationOutputWithContext(context.Background()) +func (i GetDatabasesDatabaseNodesLocationArgs) ToGetDatabasesDatabaseNodesLocationOutput() GetDatabasesDatabaseNodesLocationOutput { + return i.ToGetDatabasesDatabaseNodesLocationOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseNodeLocationArgs) ToGetDatabasesDatabaseNodeLocationOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeLocationOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeLocationOutput) +func (i GetDatabasesDatabaseNodesLocationArgs) ToGetDatabasesDatabaseNodesLocationOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodesLocationOutput) } -type GetDatabasesDatabaseNodeLocationOutput struct{ *pulumi.OutputState } +type GetDatabasesDatabaseNodesLocationOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseNodeLocationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeLocation)(nil)).Elem() +func (GetDatabasesDatabaseNodesLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesLocation)(nil)).Elem() } -func (o GetDatabasesDatabaseNodeLocationOutput) ToGetDatabasesDatabaseNodeLocationOutput() GetDatabasesDatabaseNodeLocationOutput { +func (o GetDatabasesDatabaseNodesLocationOutput) ToGetDatabasesDatabaseNodesLocationOutput() GetDatabasesDatabaseNodesLocationOutput { return o } -func (o GetDatabasesDatabaseNodeLocationOutput) ToGetDatabasesDatabaseNodeLocationOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeLocationOutput { +func (o GetDatabasesDatabaseNodesLocationOutput) ToGetDatabasesDatabaseNodesLocationOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesLocationOutput { return o } -// City of the location -func (o GetDatabasesDatabaseNodeLocationOutput) City() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.City }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) City() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.City }).(pulumi.StringOutput) } -// Code of the location -func (o GetDatabasesDatabaseNodeLocationOutput) Code() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.Code }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) Code() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.Code }).(pulumi.StringOutput) } -// Country of the location -func (o GetDatabasesDatabaseNodeLocationOutput) Country() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.Country }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) Country() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.Country }).(pulumi.StringOutput) } -// Latitude of the location -func (o GetDatabasesDatabaseNodeLocationOutput) Latitude() pulumi.Float64Output { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) float64 { return v.Latitude }).(pulumi.Float64Output) +func (o GetDatabasesDatabaseNodesLocationOutput) Latitude() pulumi.Float64Output { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) float64 { return v.Latitude }).(pulumi.Float64Output) } -// Longitude of the location -func (o GetDatabasesDatabaseNodeLocationOutput) Longitude() pulumi.Float64Output { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) float64 { return v.Longitude }).(pulumi.Float64Output) +func (o GetDatabasesDatabaseNodesLocationOutput) Longitude() pulumi.Float64Output { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) float64 { return v.Longitude }).(pulumi.Float64Output) } -// Metro code of the location -func (o GetDatabasesDatabaseNodeLocationOutput) MetroCode() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.MetroCode }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) MetroCode() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.MetroCode }).(pulumi.StringOutput) } -// Name of the component -func (o GetDatabasesDatabaseNodeLocationOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.Name }).(pulumi.StringOutput) +// Component name +func (o GetDatabasesDatabaseNodesLocationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.Name }).(pulumi.StringOutput) } -// Postal code of the location -func (o GetDatabasesDatabaseNodeLocationOutput) PostalCode() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.PostalCode }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) PostalCode() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.PostalCode }).(pulumi.StringOutput) } -// Region of the location -func (o GetDatabasesDatabaseNodeLocationOutput) Region() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.Region }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.Region }).(pulumi.StringOutput) } -// Region code of the location -func (o GetDatabasesDatabaseNodeLocationOutput) RegionCode() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.RegionCode }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) RegionCode() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.RegionCode }).(pulumi.StringOutput) } -// Timezone of the location -func (o GetDatabasesDatabaseNodeLocationOutput) Timezone() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeLocation) string { return v.Timezone }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesLocationOutput) Timezone() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesLocation) string { return v.Timezone }).(pulumi.StringOutput) } -type GetDatabasesDatabaseNodeRegion struct { - // Active status of the region - Active bool `pulumi:"active"` - // Availability zones of the region +type GetDatabasesDatabaseNodesRegion struct { + Active bool `pulumi:"active"` AvailabilityZones []string `pulumi:"availabilityZones"` - // Cloud provider of the region - Cloud string `pulumi:"cloud"` - // Code of the location - Code string `pulumi:"code"` - // Name of the component - Name string `pulumi:"name"` - // Parent region + Cloud string `pulumi:"cloud"` + Code string `pulumi:"code"` + // Component name + Name string `pulumi:"name"` Parent string `pulumi:"parent"` } -// GetDatabasesDatabaseNodeRegionInput is an input type that accepts GetDatabasesDatabaseNodeRegionArgs and GetDatabasesDatabaseNodeRegionOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseNodeRegionInput` via: +// GetDatabasesDatabaseNodesRegionInput is an input type that accepts GetDatabasesDatabaseNodesRegionArgs and GetDatabasesDatabaseNodesRegionOutput values. +// You can construct a concrete instance of `GetDatabasesDatabaseNodesRegionInput` via: // -// GetDatabasesDatabaseNodeRegionArgs{...} -type GetDatabasesDatabaseNodeRegionInput interface { +// GetDatabasesDatabaseNodesRegionArgs{...} +type GetDatabasesDatabaseNodesRegionInput interface { pulumi.Input - ToGetDatabasesDatabaseNodeRegionOutput() GetDatabasesDatabaseNodeRegionOutput - ToGetDatabasesDatabaseNodeRegionOutputWithContext(context.Context) GetDatabasesDatabaseNodeRegionOutput + ToGetDatabasesDatabaseNodesRegionOutput() GetDatabasesDatabaseNodesRegionOutput + ToGetDatabasesDatabaseNodesRegionOutputWithContext(context.Context) GetDatabasesDatabaseNodesRegionOutput } -type GetDatabasesDatabaseNodeRegionArgs struct { - // Active status of the region - Active pulumi.BoolInput `pulumi:"active"` - // Availability zones of the region +type GetDatabasesDatabaseNodesRegionArgs struct { + Active pulumi.BoolInput `pulumi:"active"` AvailabilityZones pulumi.StringArrayInput `pulumi:"availabilityZones"` - // Cloud provider of the region - Cloud pulumi.StringInput `pulumi:"cloud"` - // Code of the location - Code pulumi.StringInput `pulumi:"code"` - // Name of the component - Name pulumi.StringInput `pulumi:"name"` - // Parent region + Cloud pulumi.StringInput `pulumi:"cloud"` + Code pulumi.StringInput `pulumi:"code"` + // Component name + Name pulumi.StringInput `pulumi:"name"` Parent pulumi.StringInput `pulumi:"parent"` } -func (GetDatabasesDatabaseNodeRegionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeRegion)(nil)).Elem() +func (GetDatabasesDatabaseNodesRegionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesRegion)(nil)).Elem() } -func (i GetDatabasesDatabaseNodeRegionArgs) ToGetDatabasesDatabaseNodeRegionOutput() GetDatabasesDatabaseNodeRegionOutput { - return i.ToGetDatabasesDatabaseNodeRegionOutputWithContext(context.Background()) +func (i GetDatabasesDatabaseNodesRegionArgs) ToGetDatabasesDatabaseNodesRegionOutput() GetDatabasesDatabaseNodesRegionOutput { + return i.ToGetDatabasesDatabaseNodesRegionOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseNodeRegionArgs) ToGetDatabasesDatabaseNodeRegionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeRegionOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodeRegionOutput) +func (i GetDatabasesDatabaseNodesRegionArgs) ToGetDatabasesDatabaseNodesRegionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesRegionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseNodesRegionOutput) } -type GetDatabasesDatabaseNodeRegionOutput struct{ *pulumi.OutputState } +type GetDatabasesDatabaseNodesRegionOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseNodeRegionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseNodeRegion)(nil)).Elem() +func (GetDatabasesDatabaseNodesRegionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabasesDatabaseNodesRegion)(nil)).Elem() } -func (o GetDatabasesDatabaseNodeRegionOutput) ToGetDatabasesDatabaseNodeRegionOutput() GetDatabasesDatabaseNodeRegionOutput { +func (o GetDatabasesDatabaseNodesRegionOutput) ToGetDatabasesDatabaseNodesRegionOutput() GetDatabasesDatabaseNodesRegionOutput { return o } -func (o GetDatabasesDatabaseNodeRegionOutput) ToGetDatabasesDatabaseNodeRegionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodeRegionOutput { +func (o GetDatabasesDatabaseNodesRegionOutput) ToGetDatabasesDatabaseNodesRegionOutputWithContext(ctx context.Context) GetDatabasesDatabaseNodesRegionOutput { return o } -// Active status of the region -func (o GetDatabasesDatabaseNodeRegionOutput) Active() pulumi.BoolOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeRegion) bool { return v.Active }).(pulumi.BoolOutput) +func (o GetDatabasesDatabaseNodesRegionOutput) Active() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesRegion) bool { return v.Active }).(pulumi.BoolOutput) } -// Availability zones of the region -func (o GetDatabasesDatabaseNodeRegionOutput) AvailabilityZones() pulumi.StringArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeRegion) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput) +func (o GetDatabasesDatabaseNodesRegionOutput) AvailabilityZones() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesRegion) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput) } -// Cloud provider of the region -func (o GetDatabasesDatabaseNodeRegionOutput) Cloud() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeRegion) string { return v.Cloud }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesRegionOutput) Cloud() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesRegion) string { return v.Cloud }).(pulumi.StringOutput) } -// Code of the location -func (o GetDatabasesDatabaseNodeRegionOutput) Code() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeRegion) string { return v.Code }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesRegionOutput) Code() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesRegion) string { return v.Code }).(pulumi.StringOutput) } -// Name of the component -func (o GetDatabasesDatabaseNodeRegionOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeRegion) string { return v.Name }).(pulumi.StringOutput) +// Component name +func (o GetDatabasesDatabaseNodesRegionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesRegion) string { return v.Name }).(pulumi.StringOutput) } -// Parent region -func (o GetDatabasesDatabaseNodeRegionOutput) Parent() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseNodeRegion) string { return v.Parent }).(pulumi.StringOutput) +func (o GetDatabasesDatabaseNodesRegionOutput) Parent() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabasesDatabaseNodesRegion) string { return v.Parent }).(pulumi.StringOutput) } type GetDatabasesDatabaseRole struct { - // Bypass RLS - BypassRls bool `pulumi:"bypassRls"` - // Connection limit - ConnectionLimit int `pulumi:"connectionLimit"` - // Create database - CreateDb bool `pulumi:"createDb"` - // Create role - CreateRole bool `pulumi:"createRole"` - // Inherit - Inherit bool `pulumi:"inherit"` - // Login - Login bool `pulumi:"login"` - // Name of the component - Name string `pulumi:"name"` - // Replication - Replication bool `pulumi:"replication"` - // Superuser - Superuser bool `pulumi:"superuser"` + BypassRls bool `pulumi:"bypassRls"` + ConnectionLimit int `pulumi:"connectionLimit"` + CreateDb bool `pulumi:"createDb"` + CreateRole bool `pulumi:"createRole"` + Inherit bool `pulumi:"inherit"` + Login bool `pulumi:"login"` + // Component name + Name string `pulumi:"name"` + Replication bool `pulumi:"replication"` + Superuser bool `pulumi:"superuser"` } // GetDatabasesDatabaseRoleInput is an input type that accepts GetDatabasesDatabaseRoleArgs and GetDatabasesDatabaseRoleOutput values. @@ -2244,24 +4736,16 @@ type GetDatabasesDatabaseRoleInput interface { } type GetDatabasesDatabaseRoleArgs struct { - // Bypass RLS - BypassRls pulumi.BoolInput `pulumi:"bypassRls"` - // Connection limit - ConnectionLimit pulumi.IntInput `pulumi:"connectionLimit"` - // Create database - CreateDb pulumi.BoolInput `pulumi:"createDb"` - // Create role - CreateRole pulumi.BoolInput `pulumi:"createRole"` - // Inherit - Inherit pulumi.BoolInput `pulumi:"inherit"` - // Login - Login pulumi.BoolInput `pulumi:"login"` - // Name of the component - Name pulumi.StringInput `pulumi:"name"` - // Replication - Replication pulumi.BoolInput `pulumi:"replication"` - // Superuser - Superuser pulumi.BoolInput `pulumi:"superuser"` + BypassRls pulumi.BoolInput `pulumi:"bypassRls"` + ConnectionLimit pulumi.IntInput `pulumi:"connectionLimit"` + CreateDb pulumi.BoolInput `pulumi:"createDb"` + CreateRole pulumi.BoolInput `pulumi:"createRole"` + Inherit pulumi.BoolInput `pulumi:"inherit"` + Login pulumi.BoolInput `pulumi:"login"` + // Component name + Name pulumi.StringInput `pulumi:"name"` + Replication pulumi.BoolInput `pulumi:"replication"` + Superuser pulumi.BoolInput `pulumi:"superuser"` } func (GetDatabasesDatabaseRoleArgs) ElementType() reflect.Type { @@ -2315,47 +4799,39 @@ func (o GetDatabasesDatabaseRoleOutput) ToGetDatabasesDatabaseRoleOutputWithCont return o } -// Bypass RLS func (o GetDatabasesDatabaseRoleOutput) BypassRls() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) bool { return v.BypassRls }).(pulumi.BoolOutput) } -// Connection limit func (o GetDatabasesDatabaseRoleOutput) ConnectionLimit() pulumi.IntOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) int { return v.ConnectionLimit }).(pulumi.IntOutput) } -// Create database func (o GetDatabasesDatabaseRoleOutput) CreateDb() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) bool { return v.CreateDb }).(pulumi.BoolOutput) } -// Create role func (o GetDatabasesDatabaseRoleOutput) CreateRole() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) bool { return v.CreateRole }).(pulumi.BoolOutput) } -// Inherit func (o GetDatabasesDatabaseRoleOutput) Inherit() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) bool { return v.Inherit }).(pulumi.BoolOutput) } -// Login func (o GetDatabasesDatabaseRoleOutput) Login() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) bool { return v.Login }).(pulumi.BoolOutput) } -// Name of the component +// Component name func (o GetDatabasesDatabaseRoleOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) string { return v.Name }).(pulumi.StringOutput) } -// Replication func (o GetDatabasesDatabaseRoleOutput) Replication() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) bool { return v.Replication }).(pulumi.BoolOutput) } -// Superuser func (o GetDatabasesDatabaseRoleOutput) Superuser() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabasesDatabaseRole) bool { return v.Superuser }).(pulumi.BoolOutput) } @@ -2380,409 +4856,128 @@ func (o GetDatabasesDatabaseRoleArrayOutput) Index(i pulumi.IntInput) GetDatabas }).(GetDatabasesDatabaseRoleOutput) } -type GetDatabasesDatabaseTable struct { - Columns []GetDatabasesDatabaseTableColumn `pulumi:"columns"` - // Name of the component - Name string `pulumi:"name"` - // Primary key of the table - PrimaryKeys []string `pulumi:"primaryKeys"` - // Replication sets of the table - ReplicationSets []string `pulumi:"replicationSets"` - // Schema of the table - Schema string `pulumi:"schema"` - // Status of the component - Statuses []GetDatabasesDatabaseTableStatus `pulumi:"statuses"` -} - -// GetDatabasesDatabaseTableInput is an input type that accepts GetDatabasesDatabaseTableArgs and GetDatabasesDatabaseTableOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseTableInput` via: -// -// GetDatabasesDatabaseTableArgs{...} -type GetDatabasesDatabaseTableInput interface { - pulumi.Input - - ToGetDatabasesDatabaseTableOutput() GetDatabasesDatabaseTableOutput - ToGetDatabasesDatabaseTableOutputWithContext(context.Context) GetDatabasesDatabaseTableOutput -} - -type GetDatabasesDatabaseTableArgs struct { - Columns GetDatabasesDatabaseTableColumnArrayInput `pulumi:"columns"` - // Name of the component - Name pulumi.StringInput `pulumi:"name"` - // Primary key of the table - PrimaryKeys pulumi.StringArrayInput `pulumi:"primaryKeys"` - // Replication sets of the table - ReplicationSets pulumi.StringArrayInput `pulumi:"replicationSets"` - // Schema of the table - Schema pulumi.StringInput `pulumi:"schema"` - // Status of the component - Statuses GetDatabasesDatabaseTableStatusArrayInput `pulumi:"statuses"` -} - -func (GetDatabasesDatabaseTableArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseTable)(nil)).Elem() -} - -func (i GetDatabasesDatabaseTableArgs) ToGetDatabasesDatabaseTableOutput() GetDatabasesDatabaseTableOutput { - return i.ToGetDatabasesDatabaseTableOutputWithContext(context.Background()) -} - -func (i GetDatabasesDatabaseTableArgs) ToGetDatabasesDatabaseTableOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseTableOutput) -} - -// GetDatabasesDatabaseTableArrayInput is an input type that accepts GetDatabasesDatabaseTableArray and GetDatabasesDatabaseTableArrayOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseTableArrayInput` via: -// -// GetDatabasesDatabaseTableArray{ GetDatabasesDatabaseTableArgs{...} } -type GetDatabasesDatabaseTableArrayInput interface { - pulumi.Input - - ToGetDatabasesDatabaseTableArrayOutput() GetDatabasesDatabaseTableArrayOutput - ToGetDatabasesDatabaseTableArrayOutputWithContext(context.Context) GetDatabasesDatabaseTableArrayOutput -} - -type GetDatabasesDatabaseTableArray []GetDatabasesDatabaseTableInput - -func (GetDatabasesDatabaseTableArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseTable)(nil)).Elem() -} - -func (i GetDatabasesDatabaseTableArray) ToGetDatabasesDatabaseTableArrayOutput() GetDatabasesDatabaseTableArrayOutput { - return i.ToGetDatabasesDatabaseTableArrayOutputWithContext(context.Background()) -} - -func (i GetDatabasesDatabaseTableArray) ToGetDatabasesDatabaseTableArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseTableArrayOutput) -} - -type GetDatabasesDatabaseTableOutput struct{ *pulumi.OutputState } - -func (GetDatabasesDatabaseTableOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseTable)(nil)).Elem() -} - -func (o GetDatabasesDatabaseTableOutput) ToGetDatabasesDatabaseTableOutput() GetDatabasesDatabaseTableOutput { - return o -} - -func (o GetDatabasesDatabaseTableOutput) ToGetDatabasesDatabaseTableOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableOutput { - return o -} - -func (o GetDatabasesDatabaseTableOutput) Columns() GetDatabasesDatabaseTableColumnArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTable) []GetDatabasesDatabaseTableColumn { return v.Columns }).(GetDatabasesDatabaseTableColumnArrayOutput) -} - -// Name of the component -func (o GetDatabasesDatabaseTableOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTable) string { return v.Name }).(pulumi.StringOutput) -} - -// Primary key of the table -func (o GetDatabasesDatabaseTableOutput) PrimaryKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTable) []string { return v.PrimaryKeys }).(pulumi.StringArrayOutput) -} - -// Replication sets of the table -func (o GetDatabasesDatabaseTableOutput) ReplicationSets() pulumi.StringArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTable) []string { return v.ReplicationSets }).(pulumi.StringArrayOutput) -} - -// Schema of the table -func (o GetDatabasesDatabaseTableOutput) Schema() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTable) string { return v.Schema }).(pulumi.StringOutput) -} - -// Status of the component -func (o GetDatabasesDatabaseTableOutput) Statuses() GetDatabasesDatabaseTableStatusArrayOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTable) []GetDatabasesDatabaseTableStatus { return v.Statuses }).(GetDatabasesDatabaseTableStatusArrayOutput) -} - -type GetDatabasesDatabaseTableArrayOutput struct{ *pulumi.OutputState } - -func (GetDatabasesDatabaseTableArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseTable)(nil)).Elem() -} - -func (o GetDatabasesDatabaseTableArrayOutput) ToGetDatabasesDatabaseTableArrayOutput() GetDatabasesDatabaseTableArrayOutput { - return o -} - -func (o GetDatabasesDatabaseTableArrayOutput) ToGetDatabasesDatabaseTableArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableArrayOutput { - return o -} - -func (o GetDatabasesDatabaseTableArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseTableOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabaseTable { - return vs[0].([]GetDatabasesDatabaseTable)[vs[1].(int)] - }).(GetDatabasesDatabaseTableOutput) -} - -type GetDatabasesDatabaseTableColumn struct { - // Data type of the column - DataType string `pulumi:"dataType"` - // Default of the column - Default string `pulumi:"default"` - // Is nullable of the column - IsNullable bool `pulumi:"isNullable"` - // Is primary key of the column - IsPrimaryKey bool `pulumi:"isPrimaryKey"` - // Name of the component +type GetSSHKeysSshKey struct { + // Creation time of the SSH key + CreatedAt string `pulumi:"createdAt"` + // ID of the SSH key + Id string `pulumi:"id"` + // Name of the SSH key Name string `pulumi:"name"` - // Ordinal position of the column - OrdinalPosition int `pulumi:"ordinalPosition"` + // Public key + PublicKey string `pulumi:"publicKey"` } -// GetDatabasesDatabaseTableColumnInput is an input type that accepts GetDatabasesDatabaseTableColumnArgs and GetDatabasesDatabaseTableColumnOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseTableColumnInput` via: +// GetSSHKeysSshKeyInput is an input type that accepts GetSSHKeysSshKeyArgs and GetSSHKeysSshKeyOutput values. +// You can construct a concrete instance of `GetSSHKeysSshKeyInput` via: // -// GetDatabasesDatabaseTableColumnArgs{...} -type GetDatabasesDatabaseTableColumnInput interface { +// GetSSHKeysSshKeyArgs{...} +type GetSSHKeysSshKeyInput interface { pulumi.Input - ToGetDatabasesDatabaseTableColumnOutput() GetDatabasesDatabaseTableColumnOutput - ToGetDatabasesDatabaseTableColumnOutputWithContext(context.Context) GetDatabasesDatabaseTableColumnOutput + ToGetSSHKeysSshKeyOutput() GetSSHKeysSshKeyOutput + ToGetSSHKeysSshKeyOutputWithContext(context.Context) GetSSHKeysSshKeyOutput } -type GetDatabasesDatabaseTableColumnArgs struct { - // Data type of the column - DataType pulumi.StringInput `pulumi:"dataType"` - // Default of the column - Default pulumi.StringInput `pulumi:"default"` - // Is nullable of the column - IsNullable pulumi.BoolInput `pulumi:"isNullable"` - // Is primary key of the column - IsPrimaryKey pulumi.BoolInput `pulumi:"isPrimaryKey"` - // Name of the component +type GetSSHKeysSshKeyArgs struct { + // Creation time of the SSH key + CreatedAt pulumi.StringInput `pulumi:"createdAt"` + // ID of the SSH key + Id pulumi.StringInput `pulumi:"id"` + // Name of the SSH key Name pulumi.StringInput `pulumi:"name"` - // Ordinal position of the column - OrdinalPosition pulumi.IntInput `pulumi:"ordinalPosition"` -} - -func (GetDatabasesDatabaseTableColumnArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseTableColumn)(nil)).Elem() -} - -func (i GetDatabasesDatabaseTableColumnArgs) ToGetDatabasesDatabaseTableColumnOutput() GetDatabasesDatabaseTableColumnOutput { - return i.ToGetDatabasesDatabaseTableColumnOutputWithContext(context.Background()) -} - -func (i GetDatabasesDatabaseTableColumnArgs) ToGetDatabasesDatabaseTableColumnOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableColumnOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseTableColumnOutput) -} - -// GetDatabasesDatabaseTableColumnArrayInput is an input type that accepts GetDatabasesDatabaseTableColumnArray and GetDatabasesDatabaseTableColumnArrayOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseTableColumnArrayInput` via: -// -// GetDatabasesDatabaseTableColumnArray{ GetDatabasesDatabaseTableColumnArgs{...} } -type GetDatabasesDatabaseTableColumnArrayInput interface { - pulumi.Input - - ToGetDatabasesDatabaseTableColumnArrayOutput() GetDatabasesDatabaseTableColumnArrayOutput - ToGetDatabasesDatabaseTableColumnArrayOutputWithContext(context.Context) GetDatabasesDatabaseTableColumnArrayOutput -} - -type GetDatabasesDatabaseTableColumnArray []GetDatabasesDatabaseTableColumnInput - -func (GetDatabasesDatabaseTableColumnArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseTableColumn)(nil)).Elem() -} - -func (i GetDatabasesDatabaseTableColumnArray) ToGetDatabasesDatabaseTableColumnArrayOutput() GetDatabasesDatabaseTableColumnArrayOutput { - return i.ToGetDatabasesDatabaseTableColumnArrayOutputWithContext(context.Background()) -} - -func (i GetDatabasesDatabaseTableColumnArray) ToGetDatabasesDatabaseTableColumnArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableColumnArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseTableColumnArrayOutput) -} - -type GetDatabasesDatabaseTableColumnOutput struct{ *pulumi.OutputState } - -func (GetDatabasesDatabaseTableColumnOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseTableColumn)(nil)).Elem() -} - -func (o GetDatabasesDatabaseTableColumnOutput) ToGetDatabasesDatabaseTableColumnOutput() GetDatabasesDatabaseTableColumnOutput { - return o -} - -func (o GetDatabasesDatabaseTableColumnOutput) ToGetDatabasesDatabaseTableColumnOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableColumnOutput { - return o -} - -// Data type of the column -func (o GetDatabasesDatabaseTableColumnOutput) DataType() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableColumn) string { return v.DataType }).(pulumi.StringOutput) -} - -// Default of the column -func (o GetDatabasesDatabaseTableColumnOutput) Default() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableColumn) string { return v.Default }).(pulumi.StringOutput) -} - -// Is nullable of the column -func (o GetDatabasesDatabaseTableColumnOutput) IsNullable() pulumi.BoolOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableColumn) bool { return v.IsNullable }).(pulumi.BoolOutput) -} - -// Is primary key of the column -func (o GetDatabasesDatabaseTableColumnOutput) IsPrimaryKey() pulumi.BoolOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableColumn) bool { return v.IsPrimaryKey }).(pulumi.BoolOutput) -} - -// Name of the component -func (o GetDatabasesDatabaseTableColumnOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableColumn) string { return v.Name }).(pulumi.StringOutput) -} - -// Ordinal position of the column -func (o GetDatabasesDatabaseTableColumnOutput) OrdinalPosition() pulumi.IntOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableColumn) int { return v.OrdinalPosition }).(pulumi.IntOutput) -} - -type GetDatabasesDatabaseTableColumnArrayOutput struct{ *pulumi.OutputState } - -func (GetDatabasesDatabaseTableColumnArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseTableColumn)(nil)).Elem() -} - -func (o GetDatabasesDatabaseTableColumnArrayOutput) ToGetDatabasesDatabaseTableColumnArrayOutput() GetDatabasesDatabaseTableColumnArrayOutput { - return o -} - -func (o GetDatabasesDatabaseTableColumnArrayOutput) ToGetDatabasesDatabaseTableColumnArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableColumnArrayOutput { - return o -} - -func (o GetDatabasesDatabaseTableColumnArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseTableColumnOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabaseTableColumn { - return vs[0].([]GetDatabasesDatabaseTableColumn)[vs[1].(int)] - }).(GetDatabasesDatabaseTableColumnOutput) -} - -type GetDatabasesDatabaseTableStatus struct { - // Aligned of the table - Aligned bool `pulumi:"aligned"` - // Node name of the table - NodeName string `pulumi:"nodeName"` - // Present of the table - Present bool `pulumi:"present"` - // Replicating of the table - Replicating bool `pulumi:"replicating"` -} - -// GetDatabasesDatabaseTableStatusInput is an input type that accepts GetDatabasesDatabaseTableStatusArgs and GetDatabasesDatabaseTableStatusOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseTableStatusInput` via: -// -// GetDatabasesDatabaseTableStatusArgs{...} -type GetDatabasesDatabaseTableStatusInput interface { - pulumi.Input - - ToGetDatabasesDatabaseTableStatusOutput() GetDatabasesDatabaseTableStatusOutput - ToGetDatabasesDatabaseTableStatusOutputWithContext(context.Context) GetDatabasesDatabaseTableStatusOutput -} - -type GetDatabasesDatabaseTableStatusArgs struct { - // Aligned of the table - Aligned pulumi.BoolInput `pulumi:"aligned"` - // Node name of the table - NodeName pulumi.StringInput `pulumi:"nodeName"` - // Present of the table - Present pulumi.BoolInput `pulumi:"present"` - // Replicating of the table - Replicating pulumi.BoolInput `pulumi:"replicating"` + // Public key + PublicKey pulumi.StringInput `pulumi:"publicKey"` } -func (GetDatabasesDatabaseTableStatusArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseTableStatus)(nil)).Elem() +func (GetSSHKeysSshKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetSSHKeysSshKey)(nil)).Elem() } -func (i GetDatabasesDatabaseTableStatusArgs) ToGetDatabasesDatabaseTableStatusOutput() GetDatabasesDatabaseTableStatusOutput { - return i.ToGetDatabasesDatabaseTableStatusOutputWithContext(context.Background()) +func (i GetSSHKeysSshKeyArgs) ToGetSSHKeysSshKeyOutput() GetSSHKeysSshKeyOutput { + return i.ToGetSSHKeysSshKeyOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseTableStatusArgs) ToGetDatabasesDatabaseTableStatusOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableStatusOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseTableStatusOutput) +func (i GetSSHKeysSshKeyArgs) ToGetSSHKeysSshKeyOutputWithContext(ctx context.Context) GetSSHKeysSshKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetSSHKeysSshKeyOutput) } -// GetDatabasesDatabaseTableStatusArrayInput is an input type that accepts GetDatabasesDatabaseTableStatusArray and GetDatabasesDatabaseTableStatusArrayOutput values. -// You can construct a concrete instance of `GetDatabasesDatabaseTableStatusArrayInput` via: +// GetSSHKeysSshKeyArrayInput is an input type that accepts GetSSHKeysSshKeyArray and GetSSHKeysSshKeyArrayOutput values. +// You can construct a concrete instance of `GetSSHKeysSshKeyArrayInput` via: // -// GetDatabasesDatabaseTableStatusArray{ GetDatabasesDatabaseTableStatusArgs{...} } -type GetDatabasesDatabaseTableStatusArrayInput interface { +// GetSSHKeysSshKeyArray{ GetSSHKeysSshKeyArgs{...} } +type GetSSHKeysSshKeyArrayInput interface { pulumi.Input - ToGetDatabasesDatabaseTableStatusArrayOutput() GetDatabasesDatabaseTableStatusArrayOutput - ToGetDatabasesDatabaseTableStatusArrayOutputWithContext(context.Context) GetDatabasesDatabaseTableStatusArrayOutput + ToGetSSHKeysSshKeyArrayOutput() GetSSHKeysSshKeyArrayOutput + ToGetSSHKeysSshKeyArrayOutputWithContext(context.Context) GetSSHKeysSshKeyArrayOutput } -type GetDatabasesDatabaseTableStatusArray []GetDatabasesDatabaseTableStatusInput +type GetSSHKeysSshKeyArray []GetSSHKeysSshKeyInput -func (GetDatabasesDatabaseTableStatusArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseTableStatus)(nil)).Elem() +func (GetSSHKeysSshKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetSSHKeysSshKey)(nil)).Elem() } -func (i GetDatabasesDatabaseTableStatusArray) ToGetDatabasesDatabaseTableStatusArrayOutput() GetDatabasesDatabaseTableStatusArrayOutput { - return i.ToGetDatabasesDatabaseTableStatusArrayOutputWithContext(context.Background()) +func (i GetSSHKeysSshKeyArray) ToGetSSHKeysSshKeyArrayOutput() GetSSHKeysSshKeyArrayOutput { + return i.ToGetSSHKeysSshKeyArrayOutputWithContext(context.Background()) } -func (i GetDatabasesDatabaseTableStatusArray) ToGetDatabasesDatabaseTableStatusArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableStatusArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetDatabasesDatabaseTableStatusArrayOutput) +func (i GetSSHKeysSshKeyArray) ToGetSSHKeysSshKeyArrayOutputWithContext(ctx context.Context) GetSSHKeysSshKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetSSHKeysSshKeyArrayOutput) } -type GetDatabasesDatabaseTableStatusOutput struct{ *pulumi.OutputState } +type GetSSHKeysSshKeyOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseTableStatusOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetDatabasesDatabaseTableStatus)(nil)).Elem() +func (GetSSHKeysSshKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSSHKeysSshKey)(nil)).Elem() } -func (o GetDatabasesDatabaseTableStatusOutput) ToGetDatabasesDatabaseTableStatusOutput() GetDatabasesDatabaseTableStatusOutput { +func (o GetSSHKeysSshKeyOutput) ToGetSSHKeysSshKeyOutput() GetSSHKeysSshKeyOutput { return o } -func (o GetDatabasesDatabaseTableStatusOutput) ToGetDatabasesDatabaseTableStatusOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableStatusOutput { +func (o GetSSHKeysSshKeyOutput) ToGetSSHKeysSshKeyOutputWithContext(ctx context.Context) GetSSHKeysSshKeyOutput { return o } -// Aligned of the table -func (o GetDatabasesDatabaseTableStatusOutput) Aligned() pulumi.BoolOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableStatus) bool { return v.Aligned }).(pulumi.BoolOutput) +// Creation time of the SSH key +func (o GetSSHKeysSshKeyOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetSSHKeysSshKey) string { return v.CreatedAt }).(pulumi.StringOutput) } -// Node name of the table -func (o GetDatabasesDatabaseTableStatusOutput) NodeName() pulumi.StringOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableStatus) string { return v.NodeName }).(pulumi.StringOutput) +// ID of the SSH key +func (o GetSSHKeysSshKeyOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetSSHKeysSshKey) string { return v.Id }).(pulumi.StringOutput) } -// Present of the table -func (o GetDatabasesDatabaseTableStatusOutput) Present() pulumi.BoolOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableStatus) bool { return v.Present }).(pulumi.BoolOutput) +// Name of the SSH key +func (o GetSSHKeysSshKeyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetSSHKeysSshKey) string { return v.Name }).(pulumi.StringOutput) } -// Replicating of the table -func (o GetDatabasesDatabaseTableStatusOutput) Replicating() pulumi.BoolOutput { - return o.ApplyT(func(v GetDatabasesDatabaseTableStatus) bool { return v.Replicating }).(pulumi.BoolOutput) +// Public key +func (o GetSSHKeysSshKeyOutput) PublicKey() pulumi.StringOutput { + return o.ApplyT(func(v GetSSHKeysSshKey) string { return v.PublicKey }).(pulumi.StringOutput) } -type GetDatabasesDatabaseTableStatusArrayOutput struct{ *pulumi.OutputState } +type GetSSHKeysSshKeyArrayOutput struct{ *pulumi.OutputState } -func (GetDatabasesDatabaseTableStatusArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetDatabasesDatabaseTableStatus)(nil)).Elem() +func (GetSSHKeysSshKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetSSHKeysSshKey)(nil)).Elem() } -func (o GetDatabasesDatabaseTableStatusArrayOutput) ToGetDatabasesDatabaseTableStatusArrayOutput() GetDatabasesDatabaseTableStatusArrayOutput { +func (o GetSSHKeysSshKeyArrayOutput) ToGetSSHKeysSshKeyArrayOutput() GetSSHKeysSshKeyArrayOutput { return o } -func (o GetDatabasesDatabaseTableStatusArrayOutput) ToGetDatabasesDatabaseTableStatusArrayOutputWithContext(ctx context.Context) GetDatabasesDatabaseTableStatusArrayOutput { +func (o GetSSHKeysSshKeyArrayOutput) ToGetSSHKeysSshKeyArrayOutputWithContext(ctx context.Context) GetSSHKeysSshKeyArrayOutput { return o } -func (o GetDatabasesDatabaseTableStatusArrayOutput) Index(i pulumi.IntInput) GetDatabasesDatabaseTableStatusOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabasesDatabaseTableStatus { - return vs[0].([]GetDatabasesDatabaseTableStatus)[vs[1].(int)] - }).(GetDatabasesDatabaseTableStatusOutput) +func (o GetSSHKeysSshKeyArrayOutput) Index(i pulumi.IntInput) GetSSHKeysSshKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetSSHKeysSshKey { + return vs[0].([]GetSSHKeysSshKey)[vs[1].(int)] + }).(GetSSHKeysSshKeyOutput) } func init() { @@ -2792,9 +4987,36 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterNetworkArrayInput)(nil)).Elem(), ClusterNetworkArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterNodeInput)(nil)).Elem(), ClusterNodeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterNodeArrayInput)(nil)).Elem(), ClusterNodeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsInput)(nil)).Elem(), DatabaseBackupsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsPtrInput)(nil)).Elem(), DatabaseBackupsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsConfigInput)(nil)).Elem(), DatabaseBackupsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsConfigArrayInput)(nil)).Elem(), DatabaseBackupsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsConfigRepositoryInput)(nil)).Elem(), DatabaseBackupsConfigRepositoryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsConfigRepositoryArrayInput)(nil)).Elem(), DatabaseBackupsConfigRepositoryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsConfigScheduleInput)(nil)).Elem(), DatabaseBackupsConfigScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseBackupsConfigScheduleArrayInput)(nil)).Elem(), DatabaseBackupsConfigScheduleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseComponentInput)(nil)).Elem(), DatabaseComponentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseComponentArrayInput)(nil)).Elem(), DatabaseComponentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseExtensionsInput)(nil)).Elem(), DatabaseExtensionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseExtensionsPtrInput)(nil)).Elem(), DatabaseExtensionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesInput)(nil)).Elem(), DatabaseNodesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesMapInput)(nil)).Elem(), DatabaseNodesMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesConnectionInput)(nil)).Elem(), DatabaseNodesConnectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesConnectionPtrInput)(nil)).Elem(), DatabaseNodesConnectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesExtensionsInput)(nil)).Elem(), DatabaseNodesExtensionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesExtensionsPtrInput)(nil)).Elem(), DatabaseNodesExtensionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesLocationInput)(nil)).Elem(), DatabaseNodesLocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesLocationPtrInput)(nil)).Elem(), DatabaseNodesLocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesRegionInput)(nil)).Elem(), DatabaseNodesRegionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseNodesRegionPtrInput)(nil)).Elem(), DatabaseNodesRegionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseRoleInput)(nil)).Elem(), DatabaseRoleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseRoleArrayInput)(nil)).Elem(), DatabaseRoleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupStoresBackupStoreInput)(nil)).Elem(), GetBackupStoresBackupStoreArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupStoresBackupStoreArrayInput)(nil)).Elem(), GetBackupStoresBackupStoreArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetCloudAccountsCloudAccountInput)(nil)).Elem(), GetCloudAccountsCloudAccountArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetCloudAccountsCloudAccountArrayInput)(nil)).Elem(), GetCloudAccountsCloudAccountArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClustersClusterInput)(nil)).Elem(), GetClustersClusterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClustersClusterArrayInput)(nil)).Elem(), GetClustersClusterArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetClustersClusterCloudAccountInput)(nil)).Elem(), GetClustersClusterCloudAccountArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClustersClusterFirewallRuleInput)(nil)).Elem(), GetClustersClusterFirewallRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClustersClusterFirewallRuleArrayInput)(nil)).Elem(), GetClustersClusterFirewallRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClustersClusterNetworkInput)(nil)).Elem(), GetClustersClusterNetworkArgs{}) @@ -2803,34 +5025,62 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetClustersClusterNodeArrayInput)(nil)).Elem(), GetClustersClusterNodeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseInput)(nil)).Elem(), GetDatabasesDatabaseArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseArrayInput)(nil)).Elem(), GetDatabasesDatabaseArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseBackupsInput)(nil)).Elem(), GetDatabasesDatabaseBackupsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigInput)(nil)).Elem(), GetDatabasesDatabaseBackupsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigArrayInput)(nil)).Elem(), GetDatabasesDatabaseBackupsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigRepositoryInput)(nil)).Elem(), GetDatabasesDatabaseBackupsConfigRepositoryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigRepositoryArrayInput)(nil)).Elem(), GetDatabasesDatabaseBackupsConfigRepositoryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigScheduleInput)(nil)).Elem(), GetDatabasesDatabaseBackupsConfigScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseBackupsConfigScheduleArrayInput)(nil)).Elem(), GetDatabasesDatabaseBackupsConfigScheduleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseComponentInput)(nil)).Elem(), GetDatabasesDatabaseComponentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseComponentArrayInput)(nil)).Elem(), GetDatabasesDatabaseComponentArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseExtensionsInput)(nil)).Elem(), GetDatabasesDatabaseExtensionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeInput)(nil)).Elem(), GetDatabasesDatabaseNodeArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeArrayInput)(nil)).Elem(), GetDatabasesDatabaseNodeArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeConnectionInput)(nil)).Elem(), GetDatabasesDatabaseNodeConnectionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeDistanceMeasurementInput)(nil)).Elem(), GetDatabasesDatabaseNodeDistanceMeasurementArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeExtensionsInput)(nil)).Elem(), GetDatabasesDatabaseNodeExtensionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeExtensionsErrorsInput)(nil)).Elem(), GetDatabasesDatabaseNodeExtensionsErrorsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeLocationInput)(nil)).Elem(), GetDatabasesDatabaseNodeLocationArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodeRegionInput)(nil)).Elem(), GetDatabasesDatabaseNodeRegionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodesInput)(nil)).Elem(), GetDatabasesDatabaseNodesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodesMapInput)(nil)).Elem(), GetDatabasesDatabaseNodesMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodesConnectionInput)(nil)).Elem(), GetDatabasesDatabaseNodesConnectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodesExtensionsInput)(nil)).Elem(), GetDatabasesDatabaseNodesExtensionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodesLocationInput)(nil)).Elem(), GetDatabasesDatabaseNodesLocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseNodesRegionInput)(nil)).Elem(), GetDatabasesDatabaseNodesRegionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseRoleInput)(nil)).Elem(), GetDatabasesDatabaseRoleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseRoleArrayInput)(nil)).Elem(), GetDatabasesDatabaseRoleArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseTableInput)(nil)).Elem(), GetDatabasesDatabaseTableArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseTableArrayInput)(nil)).Elem(), GetDatabasesDatabaseTableArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseTableColumnInput)(nil)).Elem(), GetDatabasesDatabaseTableColumnArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseTableColumnArrayInput)(nil)).Elem(), GetDatabasesDatabaseTableColumnArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseTableStatusInput)(nil)).Elem(), GetDatabasesDatabaseTableStatusArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetDatabasesDatabaseTableStatusArrayInput)(nil)).Elem(), GetDatabasesDatabaseTableStatusArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetSSHKeysSshKeyInput)(nil)).Elem(), GetSSHKeysSshKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetSSHKeysSshKeyArrayInput)(nil)).Elem(), GetSSHKeysSshKeyArray{}) pulumi.RegisterOutputType(ClusterFirewallRuleOutput{}) pulumi.RegisterOutputType(ClusterFirewallRuleArrayOutput{}) pulumi.RegisterOutputType(ClusterNetworkOutput{}) pulumi.RegisterOutputType(ClusterNetworkArrayOutput{}) pulumi.RegisterOutputType(ClusterNodeOutput{}) pulumi.RegisterOutputType(ClusterNodeArrayOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsPtrOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsConfigOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsConfigArrayOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsConfigRepositoryOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsConfigRepositoryArrayOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsConfigScheduleOutput{}) + pulumi.RegisterOutputType(DatabaseBackupsConfigScheduleArrayOutput{}) + pulumi.RegisterOutputType(DatabaseComponentOutput{}) + pulumi.RegisterOutputType(DatabaseComponentArrayOutput{}) + pulumi.RegisterOutputType(DatabaseExtensionsOutput{}) + pulumi.RegisterOutputType(DatabaseExtensionsPtrOutput{}) + pulumi.RegisterOutputType(DatabaseNodesOutput{}) + pulumi.RegisterOutputType(DatabaseNodesMapOutput{}) + pulumi.RegisterOutputType(DatabaseNodesConnectionOutput{}) + pulumi.RegisterOutputType(DatabaseNodesConnectionPtrOutput{}) + pulumi.RegisterOutputType(DatabaseNodesExtensionsOutput{}) + pulumi.RegisterOutputType(DatabaseNodesExtensionsPtrOutput{}) + pulumi.RegisterOutputType(DatabaseNodesLocationOutput{}) + pulumi.RegisterOutputType(DatabaseNodesLocationPtrOutput{}) + pulumi.RegisterOutputType(DatabaseNodesRegionOutput{}) + pulumi.RegisterOutputType(DatabaseNodesRegionPtrOutput{}) + pulumi.RegisterOutputType(DatabaseRoleOutput{}) + pulumi.RegisterOutputType(DatabaseRoleArrayOutput{}) + pulumi.RegisterOutputType(GetBackupStoresBackupStoreOutput{}) + pulumi.RegisterOutputType(GetBackupStoresBackupStoreArrayOutput{}) + pulumi.RegisterOutputType(GetCloudAccountsCloudAccountOutput{}) + pulumi.RegisterOutputType(GetCloudAccountsCloudAccountArrayOutput{}) pulumi.RegisterOutputType(GetClustersClusterOutput{}) pulumi.RegisterOutputType(GetClustersClusterArrayOutput{}) - pulumi.RegisterOutputType(GetClustersClusterCloudAccountOutput{}) pulumi.RegisterOutputType(GetClustersClusterFirewallRuleOutput{}) pulumi.RegisterOutputType(GetClustersClusterFirewallRuleArrayOutput{}) pulumi.RegisterOutputType(GetClustersClusterNetworkOutput{}) @@ -2839,23 +5089,24 @@ func init() { pulumi.RegisterOutputType(GetClustersClusterNodeArrayOutput{}) pulumi.RegisterOutputType(GetDatabasesDatabaseOutput{}) pulumi.RegisterOutputType(GetDatabasesDatabaseArrayOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseBackupsOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseBackupsConfigOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseBackupsConfigArrayOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseBackupsConfigRepositoryOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseBackupsConfigRepositoryArrayOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseBackupsConfigScheduleOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseBackupsConfigScheduleArrayOutput{}) pulumi.RegisterOutputType(GetDatabasesDatabaseComponentOutput{}) pulumi.RegisterOutputType(GetDatabasesDatabaseComponentArrayOutput{}) pulumi.RegisterOutputType(GetDatabasesDatabaseExtensionsOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeArrayOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeConnectionOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeDistanceMeasurementOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeExtensionsOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeExtensionsErrorsOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeLocationOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseNodeRegionOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseNodesOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseNodesMapOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseNodesConnectionOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseNodesExtensionsOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseNodesLocationOutput{}) + pulumi.RegisterOutputType(GetDatabasesDatabaseNodesRegionOutput{}) pulumi.RegisterOutputType(GetDatabasesDatabaseRoleOutput{}) pulumi.RegisterOutputType(GetDatabasesDatabaseRoleArrayOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseTableOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseTableArrayOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseTableColumnOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseTableColumnArrayOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseTableStatusOutput{}) - pulumi.RegisterOutputType(GetDatabasesDatabaseTableStatusArrayOutput{}) + pulumi.RegisterOutputType(GetSSHKeysSshKeyOutput{}) + pulumi.RegisterOutputType(GetSSHKeysSshKeyArrayOutput{}) } diff --git a/sdk/go/pgedge/sshkey.go b/sdk/go/pgedge/sshkey.go new file mode 100644 index 0000000..93ed0b2 --- /dev/null +++ b/sdk/go/pgedge/sshkey.go @@ -0,0 +1,245 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package pgedge + +import ( + "context" + "reflect" + + "errors" + "github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages a pgEdge SSH key. +type SSHKey struct { + pulumi.CustomResourceState + + // The timestamp when the SSH key was created. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // The name of the SSH key. + Name pulumi.StringOutput `pulumi:"name"` + // The 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.PublicKey == nil { + return nil, errors.New("invalid value for required argument 'PublicKey'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SSHKey + err := ctx.RegisterResource("pgedge: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("pgedge: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 { + // The timestamp when the SSH key was created. + CreatedAt *string `pulumi:"createdAt"` + // The name of the SSH key. + Name *string `pulumi:"name"` + // The public key. + PublicKey *string `pulumi:"publicKey"` +} + +type SSHKeyState struct { + // The timestamp when the SSH key was created. + CreatedAt pulumi.StringPtrInput + // The name of the SSH key. + Name pulumi.StringPtrInput + // The public key. + PublicKey pulumi.StringPtrInput +} + +func (SSHKeyState) ElementType() reflect.Type { + return reflect.TypeOf((*sshkeyState)(nil)).Elem() +} + +type sshkeyArgs struct { + // The name of the SSH key. + Name *string `pulumi:"name"` + // The public key. + PublicKey string `pulumi:"publicKey"` +} + +// The set of arguments for constructing a SSHKey resource. +type SSHKeyArgs struct { + // The name of the SSH key. + Name pulumi.StringPtrInput + // The 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 +} + +// The timestamp when the SSH key was created. +func (o SSHKeyOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *SSHKey) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// The name of the SSH key. +func (o SSHKeyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *SSHKey) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The 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{}) +} diff --git a/sdk/nodejs/backupStore.ts b/sdk/nodejs/backupStore.ts new file mode 100644 index 0000000..9f20a6c --- /dev/null +++ b/sdk/nodejs/backupStore.ts @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class BackupStore extends pulumi.CustomResource { + /** + * Get an existing BackupStore resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: BackupStoreState, opts?: pulumi.CustomResourceOptions): BackupStore { + return new BackupStore(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'pgedge:index/backupStore:BackupStore'; + + /** + * Returns true if the given object is an instance of BackupStore. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is BackupStore { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === BackupStore.__pulumiType; + } + + public readonly cloudAccountId!: pulumi.Output; + public /*out*/ readonly cloudAccountType!: pulumi.Output; + public /*out*/ readonly clusterIds!: pulumi.Output; + public /*out*/ readonly createdAt!: pulumi.Output; + public readonly name!: pulumi.Output; + public /*out*/ readonly properties!: pulumi.Output<{[key: string]: string}>; + public readonly region!: pulumi.Output; + public /*out*/ readonly status!: pulumi.Output; + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a BackupStore resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: BackupStoreArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: BackupStoreArgs | BackupStoreState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as BackupStoreState | undefined; + resourceInputs["cloudAccountId"] = state ? state.cloudAccountId : undefined; + resourceInputs["cloudAccountType"] = state ? state.cloudAccountType : undefined; + resourceInputs["clusterIds"] = state ? state.clusterIds : undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["properties"] = state ? state.properties : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + } else { + const args = argsOrState as BackupStoreArgs | undefined; + if ((!args || args.cloudAccountId === undefined) && !opts.urn) { + throw new Error("Missing required property 'cloudAccountId'"); + } + if ((!args || args.region === undefined) && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + resourceInputs["cloudAccountId"] = args ? args.cloudAccountId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["cloudAccountType"] = undefined /*out*/; + resourceInputs["clusterIds"] = undefined /*out*/; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["properties"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(BackupStore.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering BackupStore resources. + */ +export interface BackupStoreState { + cloudAccountId?: pulumi.Input; + cloudAccountType?: pulumi.Input; + clusterIds?: pulumi.Input[]>; + createdAt?: pulumi.Input; + name?: pulumi.Input; + properties?: pulumi.Input<{[key: string]: pulumi.Input}>; + region?: pulumi.Input; + status?: pulumi.Input; + updatedAt?: pulumi.Input; +} + +/** + * The set of arguments for constructing a BackupStore resource. + */ +export interface BackupStoreArgs { + cloudAccountId: pulumi.Input; + name?: pulumi.Input; + region: pulumi.Input; +} diff --git a/sdk/nodejs/cloudAccount.ts b/sdk/nodejs/cloudAccount.ts new file mode 100644 index 0000000..e6773ca --- /dev/null +++ b/sdk/nodejs/cloudAccount.ts @@ -0,0 +1,101 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class CloudAccount extends pulumi.CustomResource { + /** + * Get an existing CloudAccount resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: CloudAccountState, opts?: pulumi.CustomResourceOptions): CloudAccount { + return new CloudAccount(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'pgedge:index/cloudAccount:CloudAccount'; + + /** + * Returns true if the given object is an instance of CloudAccount. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is CloudAccount { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CloudAccount.__pulumiType; + } + + public /*out*/ readonly createdAt!: pulumi.Output; + public readonly credentials!: pulumi.Output<{[key: string]: string}>; + public readonly description!: pulumi.Output; + public readonly name!: pulumi.Output; + public readonly type!: pulumi.Output; + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a CloudAccount resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: CloudAccountArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CloudAccountArgs | CloudAccountState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CloudAccountState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["credentials"] = state ? state.credentials : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["type"] = state ? state.type : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + } else { + const args = argsOrState as CloudAccountArgs | undefined; + if ((!args || args.credentials === undefined) && !opts.urn) { + throw new Error("Missing required property 'credentials'"); + } + if ((!args || args.type === undefined) && !opts.urn) { + throw new Error("Missing required property 'type'"); + } + resourceInputs["credentials"] = args ? args.credentials : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["type"] = args ? args.type : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CloudAccount.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CloudAccount resources. + */ +export interface CloudAccountState { + createdAt?: pulumi.Input; + credentials?: pulumi.Input<{[key: string]: pulumi.Input}>; + description?: pulumi.Input; + name?: pulumi.Input; + type?: pulumi.Input; + updatedAt?: pulumi.Input; +} + +/** + * The set of arguments for constructing a CloudAccount resource. + */ +export interface CloudAccountArgs { + credentials: pulumi.Input<{[key: string]: pulumi.Input}>; + description?: pulumi.Input; + name?: pulumi.Input; + type: pulumi.Input; +} diff --git a/sdk/nodejs/cluster.ts b/sdk/nodejs/cluster.ts index 848e566..6aa1d6a 100644 --- a/sdk/nodejs/cluster.ts +++ b/sdk/nodejs/cluster.ts @@ -6,9 +6,6 @@ import * as inputs from "./types/input"; import * as outputs from "./types/output"; import * as utilities from "./utilities"; -/** - * Interface with the pgEdge service API for clusters. - */ export class Cluster extends pulumi.CustomResource { /** * Get an existing Cluster resource's state with the given name, ID, and optional extra @@ -38,32 +35,26 @@ export class Cluster extends pulumi.CustomResource { } /** - * ID of the target cloud account + * List of backup store IDs to associate with the cluster */ + public readonly backupStoreIds!: pulumi.Output; + public readonly capacity!: pulumi.Output; public readonly cloudAccountId!: pulumi.Output; - /** - * Creation time of the cluster - */ public /*out*/ readonly createdAt!: pulumi.Output; public readonly firewallRules!: pulumi.Output; - /** - * Name of the network - */ public readonly name!: pulumi.Output; public readonly networks!: pulumi.Output; /** - * Network location for nodes (public or private) + * Node location of the cluster. Must be either 'public' or 'private'. */ public readonly nodeLocation!: pulumi.Output; public readonly nodes!: pulumi.Output; public readonly regions!: pulumi.Output; /** - * ID of the SSH key to add to the cluster nodes - */ - public readonly sshKeyId!: pulumi.Output; - /** - * Status of the cluster + * A map of tags to assign to the cluster */ + public readonly resourceTags!: pulumi.Output<{[key: string]: string}>; + public readonly sshKeyId!: pulumi.Output; public /*out*/ readonly status!: pulumi.Output; /** @@ -79,6 +70,8 @@ export class Cluster extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as ClusterState | undefined; + resourceInputs["backupStoreIds"] = state ? state.backupStoreIds : undefined; + resourceInputs["capacity"] = state ? state.capacity : undefined; resourceInputs["cloudAccountId"] = state ? state.cloudAccountId : undefined; resourceInputs["createdAt"] = state ? state.createdAt : undefined; resourceInputs["firewallRules"] = state ? state.firewallRules : undefined; @@ -87,6 +80,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["nodeLocation"] = state ? state.nodeLocation : undefined; resourceInputs["nodes"] = state ? state.nodes : undefined; resourceInputs["regions"] = state ? state.regions : undefined; + resourceInputs["resourceTags"] = state ? state.resourceTags : undefined; resourceInputs["sshKeyId"] = state ? state.sshKeyId : undefined; resourceInputs["status"] = state ? state.status : undefined; } else { @@ -94,9 +88,20 @@ export class Cluster extends pulumi.CustomResource { if ((!args || args.cloudAccountId === undefined) && !opts.urn) { throw new Error("Missing required property 'cloudAccountId'"); } + if ((!args || args.networks === undefined) && !opts.urn) { + throw new Error("Missing required property 'networks'"); + } + if ((!args || args.nodeLocation === undefined) && !opts.urn) { + throw new Error("Missing required property 'nodeLocation'"); + } + if ((!args || args.nodes === undefined) && !opts.urn) { + throw new Error("Missing required property 'nodes'"); + } if ((!args || args.regions === undefined) && !opts.urn) { throw new Error("Missing required property 'regions'"); } + resourceInputs["backupStoreIds"] = args ? args.backupStoreIds : undefined; + resourceInputs["capacity"] = args ? args.capacity : undefined; resourceInputs["cloudAccountId"] = args ? args.cloudAccountId : undefined; resourceInputs["firewallRules"] = args ? args.firewallRules : undefined; resourceInputs["name"] = args ? args.name : undefined; @@ -104,6 +109,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["nodeLocation"] = args ? args.nodeLocation : undefined; resourceInputs["nodes"] = args ? args.nodes : undefined; resourceInputs["regions"] = args ? args.regions : undefined; + resourceInputs["resourceTags"] = args ? args.resourceTags : undefined; resourceInputs["sshKeyId"] = args ? args.sshKeyId : undefined; resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["status"] = undefined /*out*/; @@ -118,32 +124,26 @@ export class Cluster extends pulumi.CustomResource { */ export interface ClusterState { /** - * ID of the target cloud account + * List of backup store IDs to associate with the cluster */ + backupStoreIds?: pulumi.Input[]>; + capacity?: pulumi.Input; cloudAccountId?: pulumi.Input; - /** - * Creation time of the cluster - */ createdAt?: pulumi.Input; firewallRules?: pulumi.Input[]>; - /** - * Name of the network - */ name?: pulumi.Input; networks?: pulumi.Input[]>; /** - * Network location for nodes (public or private) + * Node location of the cluster. Must be either 'public' or 'private'. */ nodeLocation?: pulumi.Input; nodes?: pulumi.Input[]>; regions?: pulumi.Input[]>; /** - * ID of the SSH key to add to the cluster nodes + * A map of tags to assign to the cluster */ + resourceTags?: pulumi.Input<{[key: string]: pulumi.Input}>; sshKeyId?: pulumi.Input; - /** - * Status of the cluster - */ status?: pulumi.Input; } @@ -152,23 +152,23 @@ export interface ClusterState { */ export interface ClusterArgs { /** - * ID of the target cloud account + * List of backup store IDs to associate with the cluster */ + backupStoreIds?: pulumi.Input[]>; + capacity?: pulumi.Input; cloudAccountId: pulumi.Input; firewallRules?: pulumi.Input[]>; - /** - * Name of the network - */ name?: pulumi.Input; - networks?: pulumi.Input[]>; + networks: pulumi.Input[]>; /** - * Network location for nodes (public or private) + * Node location of the cluster. Must be either 'public' or 'private'. */ - nodeLocation?: pulumi.Input; - nodes?: pulumi.Input[]>; + nodeLocation: pulumi.Input; + nodes: pulumi.Input[]>; regions: pulumi.Input[]>; /** - * ID of the SSH key to add to the cluster nodes + * A map of tags to assign to the cluster */ + resourceTags?: pulumi.Input<{[key: string]: pulumi.Input}>; sshKeyId?: pulumi.Input; } diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index 73e51f8..d629c64 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -13,7 +13,7 @@ const __config = new pulumi.Config("pgedge"); export declare const baseUrl: string | undefined; Object.defineProperty(exports, "baseUrl", { get() { - return __config.get("baseUrl"); + return __config.get("baseUrl") ?? utilities.getEnv("PGEDGE_BASE_URL"); }, enumerable: true, }); diff --git a/sdk/nodejs/database.ts b/sdk/nodejs/database.ts index fac095b..d861e79 100644 --- a/sdk/nodejs/database.ts +++ b/sdk/nodejs/database.ts @@ -2,10 +2,12 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; import * as utilities from "./utilities"; /** - * Interface with the pgEdge service API. + * Manages a pgEdge database. */ export class Database extends pulumi.CustomResource { /** @@ -36,45 +38,57 @@ export class Database extends pulumi.CustomResource { } /** - * ID of the cluster to place the database on + * Backup configuration for the database. + */ + public readonly backups!: pulumi.Output; + /** + * The ID of the cluster this database belongs to. */ public readonly clusterId!: pulumi.Output; /** - * Config version of the database + * List of components in the database. + */ + public /*out*/ readonly components!: pulumi.Output; + /** + * The configuration version of the database. */ public readonly configVersion!: pulumi.Output; /** - * Created at of the database + * The timestamp when the database was created. */ public /*out*/ readonly createdAt!: pulumi.Output; /** - * Domain of the database + * The domain associated with the database. */ public /*out*/ readonly domain!: pulumi.Output; /** - * Name of the database + * Extensions configuration for the database. + */ + public readonly extensions!: pulumi.Output; + /** + * The name of the database. */ public readonly name!: pulumi.Output; /** - * Options for creating the database + * Map of nodes in the database. */ - public readonly options!: pulumi.Output; + public readonly nodes!: pulumi.Output<{[key: string]: outputs.DatabaseNodes}>; /** - * Postgres version of the database + * A list of options for the database. */ - public /*out*/ readonly pgVersion!: pulumi.Output; + public readonly options!: pulumi.Output; /** - * Status of the database + * The PostgreSQL version of the database. */ - public /*out*/ readonly status!: pulumi.Output; + public /*out*/ readonly pgVersion!: pulumi.Output; /** - * Storage used of the database + * List of roles in the database. */ - public /*out*/ readonly storageUsed!: pulumi.Output; + public readonly roles!: pulumi.Output; /** - * Updated at of the database + * The current status of the database. */ - public /*out*/ readonly updatedAt!: pulumi.Output; + public /*out*/ readonly status!: pulumi.Output; /** * Create a Database resource with the given unique name, arguments, and options. @@ -89,31 +103,40 @@ export class Database extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as DatabaseState | undefined; + resourceInputs["backups"] = state ? state.backups : undefined; resourceInputs["clusterId"] = state ? state.clusterId : undefined; + resourceInputs["components"] = state ? state.components : undefined; resourceInputs["configVersion"] = state ? state.configVersion : undefined; resourceInputs["createdAt"] = state ? state.createdAt : undefined; resourceInputs["domain"] = state ? state.domain : undefined; + resourceInputs["extensions"] = state ? state.extensions : undefined; resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["nodes"] = state ? state.nodes : undefined; resourceInputs["options"] = state ? state.options : undefined; resourceInputs["pgVersion"] = state ? state.pgVersion : undefined; + resourceInputs["roles"] = state ? state.roles : undefined; resourceInputs["status"] = state ? state.status : undefined; - resourceInputs["storageUsed"] = state ? state.storageUsed : undefined; - resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; } else { const args = argsOrState as DatabaseArgs | undefined; if ((!args || args.clusterId === undefined) && !opts.urn) { throw new Error("Missing required property 'clusterId'"); } + if ((!args || args.nodes === undefined) && !opts.urn) { + throw new Error("Missing required property 'nodes'"); + } + resourceInputs["backups"] = args ? args.backups : undefined; resourceInputs["clusterId"] = args ? args.clusterId : undefined; resourceInputs["configVersion"] = args ? args.configVersion : undefined; + resourceInputs["extensions"] = args ? args.extensions : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["nodes"] = args ? args.nodes : undefined; resourceInputs["options"] = args ? args.options : undefined; + resourceInputs["roles"] = args ? args.roles : undefined; + resourceInputs["components"] = undefined /*out*/; resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["domain"] = undefined /*out*/; resourceInputs["pgVersion"] = undefined /*out*/; resourceInputs["status"] = undefined /*out*/; - resourceInputs["storageUsed"] = undefined /*out*/; - resourceInputs["updatedAt"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(Database.__pulumiType, name, resourceInputs, opts); @@ -125,45 +148,57 @@ export class Database extends pulumi.CustomResource { */ export interface DatabaseState { /** - * ID of the cluster to place the database on + * Backup configuration for the database. + */ + backups?: pulumi.Input; + /** + * The ID of the cluster this database belongs to. */ clusterId?: pulumi.Input; /** - * Config version of the database + * List of components in the database. + */ + components?: pulumi.Input[]>; + /** + * The configuration version of the database. */ configVersion?: pulumi.Input; /** - * Created at of the database + * The timestamp when the database was created. */ createdAt?: pulumi.Input; /** - * Domain of the database + * The domain associated with the database. */ domain?: pulumi.Input; /** - * Name of the database + * Extensions configuration for the database. + */ + extensions?: pulumi.Input; + /** + * The name of the database. */ name?: pulumi.Input; /** - * Options for creating the database + * Map of nodes in the database. */ - options?: pulumi.Input[]>; + nodes?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * Postgres version of the database + * A list of options for the database. */ - pgVersion?: pulumi.Input; + options?: pulumi.Input[]>; /** - * Status of the database + * The PostgreSQL version of the database. */ - status?: pulumi.Input; + pgVersion?: pulumi.Input; /** - * Storage used of the database + * List of roles in the database. */ - storageUsed?: pulumi.Input; + roles?: pulumi.Input[]>; /** - * Updated at of the database + * The current status of the database. */ - updatedAt?: pulumi.Input; + status?: pulumi.Input; } /** @@ -171,19 +206,35 @@ export interface DatabaseState { */ export interface DatabaseArgs { /** - * ID of the cluster to place the database on + * Backup configuration for the database. + */ + backups?: pulumi.Input; + /** + * The ID of the cluster this database belongs to. */ clusterId: pulumi.Input; /** - * Config version of the database + * The configuration version of the database. */ configVersion?: pulumi.Input; /** - * Name of the database + * Extensions configuration for the database. + */ + extensions?: pulumi.Input; + /** + * The name of the database. */ name?: pulumi.Input; /** - * Options for creating the database + * Map of nodes in the database. + */ + nodes: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A list of options for the database. */ options?: pulumi.Input[]>; + /** + * List of roles in the database. + */ + roles?: pulumi.Input[]>; } diff --git a/sdk/nodejs/getBackupStores.ts b/sdk/nodejs/getBackupStores.ts new file mode 100644 index 0000000..0570cae --- /dev/null +++ b/sdk/nodejs/getBackupStores.ts @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getBackupStores(opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("pgedge:index/getBackupStores:getBackupStores", { + }, opts); +} + +/** + * A collection of values returned by getBackupStores. + */ +export interface GetBackupStoresResult { + readonly backupStores: outputs.GetBackupStoresBackupStore[]; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; +} +export function getBackupStoresOutput(opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(getBackupStores(opts)) +} diff --git a/sdk/nodejs/getCloudAccounts.ts b/sdk/nodejs/getCloudAccounts.ts new file mode 100644 index 0000000..b1018be --- /dev/null +++ b/sdk/nodejs/getCloudAccounts.ts @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * Data source for pgEdge cloud accounts. + */ +export function getCloudAccounts(opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("pgedge:index/getCloudAccounts:getCloudAccounts", { + }, opts); +} + +/** + * A collection of values returned by getCloudAccounts. + */ +export interface GetCloudAccountsResult { + readonly cloudAccounts: outputs.GetCloudAccountsCloudAccount[]; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; +} +/** + * Data source for pgEdge cloud accounts. + */ +export function getCloudAccountsOutput(opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(getCloudAccounts(opts)) +} diff --git a/sdk/nodejs/getClusters.ts b/sdk/nodejs/getClusters.ts index e7dac12..1c8f39b 100644 --- a/sdk/nodejs/getClusters.ts +++ b/sdk/nodejs/getClusters.ts @@ -7,7 +7,7 @@ import * as outputs from "./types/output"; import * as utilities from "./utilities"; /** - * Interface with the pgEdge service API for clusters. + * Data source for pgEdge clusters. */ export function getClusters(opts?: pulumi.InvokeOptions): Promise { @@ -27,7 +27,7 @@ export interface GetClustersResult { readonly id: string; } /** - * Interface with the pgEdge service API for clusters. + * Data source for pgEdge clusters. */ export function getClustersOutput(opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(getClusters(opts)) diff --git a/sdk/nodejs/getDatabases.ts b/sdk/nodejs/getDatabases.ts index d4cc354..f480539 100644 --- a/sdk/nodejs/getDatabases.ts +++ b/sdk/nodejs/getDatabases.ts @@ -7,7 +7,7 @@ import * as outputs from "./types/output"; import * as utilities from "./utilities"; /** - * Interface with the pgEdge service API. + * Data source for pgEdge databases */ export function getDatabases(opts?: pulumi.InvokeOptions): Promise { @@ -27,7 +27,7 @@ export interface GetDatabasesResult { readonly id: string; } /** - * Interface with the pgEdge service API. + * Data source for pgEdge databases */ export function getDatabasesOutput(opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(getDatabases(opts)) diff --git a/sdk/nodejs/getSSHKeys.ts b/sdk/nodejs/getSSHKeys.ts new file mode 100644 index 0000000..e3816f2 --- /dev/null +++ b/sdk/nodejs/getSSHKeys.ts @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * Data source for pgEdge SSH keys. + */ +export function getSSHKeys(opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("pgedge:index/getSSHKeys:getSSHKeys", { + }, opts); +} + +/** + * A collection of values returned by getSSHKeys. + */ +export interface GetSSHKeysResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly sshKeys: outputs.GetSSHKeysSshKey[]; +} +/** + * Data source for pgEdge SSH keys. + */ +export function getSSHKeysOutput(opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(getSSHKeys(opts)) +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index ffaf168..39fc841 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -5,6 +5,16 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "./utilities"; // Export members: +export { BackupStoreArgs, BackupStoreState } from "./backupStore"; +export type BackupStore = import("./backupStore").BackupStore; +export const BackupStore: typeof import("./backupStore").BackupStore = null as any; +utilities.lazyLoad(exports, ["BackupStore"], () => require("./backupStore")); + +export { CloudAccountArgs, CloudAccountState } from "./cloudAccount"; +export type CloudAccount = import("./cloudAccount").CloudAccount; +export const CloudAccount: typeof import("./cloudAccount").CloudAccount = null as any; +utilities.lazyLoad(exports, ["CloudAccount"], () => require("./cloudAccount")); + export { ClusterArgs, ClusterState } from "./cluster"; export type Cluster = import("./cluster").Cluster; export const Cluster: typeof import("./cluster").Cluster = null as any; @@ -15,6 +25,16 @@ export type Database = import("./database").Database; export const Database: typeof import("./database").Database = null as any; utilities.lazyLoad(exports, ["Database"], () => require("./database")); +export { GetBackupStoresResult } from "./getBackupStores"; +export const getBackupStores: typeof import("./getBackupStores").getBackupStores = null as any; +export const getBackupStoresOutput: typeof import("./getBackupStores").getBackupStoresOutput = null as any; +utilities.lazyLoad(exports, ["getBackupStores","getBackupStoresOutput"], () => require("./getBackupStores")); + +export { GetCloudAccountsResult } from "./getCloudAccounts"; +export const getCloudAccounts: typeof import("./getCloudAccounts").getCloudAccounts = null as any; +export const getCloudAccountsOutput: typeof import("./getCloudAccounts").getCloudAccountsOutput = null as any; +utilities.lazyLoad(exports, ["getCloudAccounts","getCloudAccountsOutput"], () => require("./getCloudAccounts")); + export { GetClustersResult } from "./getClusters"; export const getClusters: typeof import("./getClusters").getClusters = null as any; export const getClustersOutput: typeof import("./getClusters").getClustersOutput = null as any; @@ -25,11 +45,21 @@ export const getDatabases: typeof import("./getDatabases").getDatabases = null a export const getDatabasesOutput: typeof import("./getDatabases").getDatabasesOutput = null as any; utilities.lazyLoad(exports, ["getDatabases","getDatabasesOutput"], () => require("./getDatabases")); +export { GetSSHKeysResult } from "./getSSHKeys"; +export const getSSHKeys: typeof import("./getSSHKeys").getSSHKeys = null as any; +export const getSSHKeysOutput: typeof import("./getSSHKeys").getSSHKeysOutput = null as any; +utilities.lazyLoad(exports, ["getSSHKeys","getSSHKeysOutput"], () => require("./getSSHKeys")); + export { ProviderArgs } from "./provider"; export type Provider = import("./provider").Provider; export const Provider: typeof import("./provider").Provider = null as any; utilities.lazyLoad(exports, ["Provider"], () => require("./provider")); +export { SSHKeyArgs, SSHKeyState } from "./sshkey"; +export type SSHKey = import("./sshkey").SSHKey; +export const SSHKey: typeof import("./sshkey").SSHKey = null as any; +utilities.lazyLoad(exports, ["SSHKey"], () => require("./sshkey")); + // Export sub-modules: import * as config from "./config"; @@ -44,17 +74,26 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "pgedge:index/backupStore:BackupStore": + return new BackupStore(name, undefined, { urn }) + case "pgedge:index/cloudAccount:CloudAccount": + return new CloudAccount(name, undefined, { urn }) case "pgedge:index/cluster:Cluster": return new Cluster(name, undefined, { urn }) case "pgedge:index/database:Database": return new Database(name, undefined, { urn }) + case "pgedge:index/sSHKey:SSHKey": + return new SSHKey(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } }, }; +pulumi.runtime.registerResourceModule("pgedge", "index/backupStore", _module) +pulumi.runtime.registerResourceModule("pgedge", "index/cloudAccount", _module) pulumi.runtime.registerResourceModule("pgedge", "index/cluster", _module) pulumi.runtime.registerResourceModule("pgedge", "index/database", _module) +pulumi.runtime.registerResourceModule("pgedge", "index/sSHKey", _module) pulumi.runtime.registerResourcePackage("pgedge", { version: utilities.getVersion(), constructProvider: (name: string, type: string, urn: string): pulumi.ProviderResource => { diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json index d3472d5..9a3c4c0 100644 --- a/sdk/nodejs/package.json +++ b/sdk/nodejs/package.json @@ -5,7 +5,8 @@ "keywords": [ "pulumi", "pgedge", - "category/cloud" + "category/cloud", + "category/database" ], "homepage": "https://www.pgedge.com", "repository": "https://github.com/pgEdge/pulumi-pgedge", @@ -23,6 +24,7 @@ }, "pulumi": { "resource": true, - "name": "pgedge" + "name": "pgedge", + "server": "github://api.github.com/pgEdge/pulumi-pgedge" } } diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 7e69944..62ef066 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -41,7 +41,7 @@ export class Provider extends pulumi.ProviderResource { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; { - resourceInputs["baseUrl"] = args ? args.baseUrl : undefined; + resourceInputs["baseUrl"] = (args ? args.baseUrl : undefined) ?? utilities.getEnv("PGEDGE_BASE_URL"); } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(Provider.__pulumiType, name, resourceInputs, opts); diff --git a/sdk/nodejs/sshkey.ts b/sdk/nodejs/sshkey.ts new file mode 100644 index 0000000..44fb8a5 --- /dev/null +++ b/sdk/nodejs/sshkey.ts @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Manages a pgEdge SSH key. + */ +export class SSHKey extends pulumi.CustomResource { + /** + * Get an existing SSHKey resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: SSHKeyState, opts?: pulumi.CustomResourceOptions): SSHKey { + return new SSHKey(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'pgedge:index/sSHKey:SSHKey'; + + /** + * Returns true if the given object is an instance of SSHKey. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is SSHKey { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === SSHKey.__pulumiType; + } + + /** + * The timestamp when the SSH key was created. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * The name of the SSH key. + */ + public readonly name!: pulumi.Output; + /** + * The public key. + */ + public readonly publicKey!: pulumi.Output; + + /** + * Create a SSHKey resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SSHKeyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: SSHKeyArgs | SSHKeyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as SSHKeyState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["publicKey"] = state ? state.publicKey : undefined; + } else { + const args = argsOrState as SSHKeyArgs | undefined; + if ((!args || args.publicKey === undefined) && !opts.urn) { + throw new Error("Missing required property 'publicKey'"); + } + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["publicKey"] = args ? args.publicKey : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(SSHKey.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering SSHKey resources. + */ +export interface SSHKeyState { + /** + * The timestamp when the SSH key was created. + */ + createdAt?: pulumi.Input; + /** + * The name of the SSH key. + */ + name?: pulumi.Input; + /** + * The public key. + */ + publicKey?: pulumi.Input; +} + +/** + * The set of arguments for constructing a SSHKey resource. + */ +export interface SSHKeyArgs { + /** + * The name of the SSH key. + */ + name?: pulumi.Input; + /** + * The public key. + */ + publicKey: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index d858138..345c7ab 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -13,14 +13,20 @@ "strict": true }, "files": [ + "backupStore.ts", + "cloudAccount.ts", "cluster.ts", "config/index.ts", "config/vars.ts", "database.ts", + "getBackupStores.ts", + "getCloudAccounts.ts", "getClusters.ts", "getDatabases.ts", + "getSSHKeys.ts", "index.ts", "provider.ts", + "sshkey.ts", "types/index.ts", "types/input.ts", "types/output.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index d56f8c4..ea98da4 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -6,35 +6,36 @@ import * as inputs from "../types/input"; import * as outputs from "../types/output"; export interface ClusterFirewallRule { - /** - * Port whose traffic is allowed - */ + name: pulumi.Input; port: pulumi.Input; - /** - * CIDRs and/or IP addresses allowed - */ sources: pulumi.Input[]>; } export interface ClusterNetwork { /** - * CIDR range for the network + * CIDR of the network */ - cidr?: pulumi.Input; + cidr: pulumi.Input; /** - * Is the network externally defined + * Whether the network is external */ external?: pulumi.Input; /** - * ID of the network, if externally defined + * External ID of the network */ externalId?: pulumi.Input; /** * Name of the network */ name?: pulumi.Input; + /** + * List of private subnets + */ privateSubnets?: pulumi.Input[]>; - publicSubnets?: pulumi.Input[]>; + /** + * List of public subnets + */ + publicSubnets: pulumi.Input[]>; /** * Region of the network */ @@ -42,34 +43,189 @@ export interface ClusterNetwork { } export interface ClusterNode { + availabilityZone?: pulumi.Input; + instanceType: pulumi.Input; + name: pulumi.Input; + region: pulumi.Input; + volumeIops?: pulumi.Input; + volumeSize?: pulumi.Input; + volumeType?: pulumi.Input; +} + +export interface DatabaseBackups { /** - * Cloud provider availability zone name + * List of backup configurations. */ - availabilityZone?: pulumi.Input; + configs?: pulumi.Input[]>; /** - * Instance type used for the node + * The backup provider. */ - instanceType?: pulumi.Input; + provider?: pulumi.Input; +} + +export interface DatabaseBackupsConfig { /** - * Node name + * Unique identifier for the backup config. */ - name?: pulumi.Input; - options?: pulumi.Input[]>; + id?: pulumi.Input; /** - * Cloud provider region + * Name of the node. */ - region: pulumi.Input; + nodeName?: pulumi.Input; /** - * Volume IOPS of the node data volume + * List of backup repositories. */ - volumeIops?: pulumi.Input; + repositories?: pulumi.Input[]>; /** - * Volume size of the node data volume + * List of backup schedules. */ - volumeSize?: pulumi.Input; + schedules?: pulumi.Input[]>; +} + +export interface DatabaseBackupsConfigRepository { /** - * Volume type of the node data volume + * Azure account. */ - volumeType?: pulumi.Input; + azureAccount?: pulumi.Input; + /** + * Azure container. + */ + azureContainer?: pulumi.Input; + /** + * Azure endpoint. + */ + azureEndpoint?: pulumi.Input; + /** + * ID of the backup store. + */ + backupStoreId?: pulumi.Input; + /** + * Base path for the repository. + */ + basePath?: pulumi.Input; + /** + * GCS bucket name. + */ + gcsBucket?: pulumi.Input; + /** + * GCS endpoint. + */ + gcsEndpoint?: pulumi.Input; + /** + * Unique identifier for the backup config. + */ + id?: pulumi.Input; + /** + * Retention period for full backups. + */ + retentionFull?: pulumi.Input; + /** + * Type of retention for full backups. + */ + retentionFullType?: pulumi.Input; + /** + * S3 bucket name. + */ + s3Bucket?: pulumi.Input; + /** + * S3 endpoint. + */ + s3Endpoint?: pulumi.Input; + /** + * S3 region. + */ + s3Region?: pulumi.Input; + /** + * Type of the repository. + */ + type?: pulumi.Input; +} + +export interface DatabaseBackupsConfigSchedule { + /** + * Cron expression for the schedule. + */ + cronExpression?: pulumi.Input; + /** + * Unique identifier for the backup config. + */ + id?: pulumi.Input; + /** + * Type of the repository. + */ + type?: pulumi.Input; +} + +export interface DatabaseComponent { + id?: pulumi.Input; + name?: pulumi.Input; + releaseDate?: pulumi.Input; + status?: pulumi.Input; + version?: pulumi.Input; +} + +export interface DatabaseExtensions { + autoManage?: pulumi.Input; + availables?: pulumi.Input[]>; + requesteds?: pulumi.Input[]>; +} + +export interface DatabaseNodes { + connection?: pulumi.Input; + extensions?: pulumi.Input; + location?: pulumi.Input; + name: pulumi.Input; + region?: pulumi.Input; +} + +export interface DatabaseNodesConnection { + database?: pulumi.Input; + externalIpAddress?: pulumi.Input; + host?: pulumi.Input; + internalHost?: pulumi.Input; + internalIpAddress?: pulumi.Input; + password?: pulumi.Input; + port?: pulumi.Input; + username?: pulumi.Input; +} + +export interface DatabaseNodesExtensions { + errors?: pulumi.Input<{[key: string]: pulumi.Input}>; + installeds?: pulumi.Input[]>; +} + +export interface DatabaseNodesLocation { + city?: pulumi.Input; + code?: pulumi.Input; + country?: pulumi.Input; + latitude?: pulumi.Input; + longitude?: pulumi.Input; + metroCode?: pulumi.Input; + name?: pulumi.Input; + postalCode?: pulumi.Input; + region?: pulumi.Input; + regionCode?: pulumi.Input; + timezone?: pulumi.Input; +} + +export interface DatabaseNodesRegion { + active?: pulumi.Input; + availabilityZones?: pulumi.Input[]>; + cloud?: pulumi.Input; + code?: pulumi.Input; + name?: pulumi.Input; + parent?: pulumi.Input; +} + +export interface DatabaseRole { + bypassRls?: pulumi.Input; + connectionLimit?: pulumi.Input; + createDb?: pulumi.Input; + createRole?: pulumi.Input; + inherit?: pulumi.Input; + login?: pulumi.Input; + name?: pulumi.Input; + replication?: pulumi.Input; + superuser?: pulumi.Input; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 47506cb..903496d 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -6,34 +6,35 @@ import * as inputs from "../types/input"; import * as outputs from "../types/output"; export interface ClusterFirewallRule { - /** - * Port whose traffic is allowed - */ + name: string; port: number; - /** - * CIDRs and/or IP addresses allowed - */ sources: string[]; } export interface ClusterNetwork { /** - * CIDR range for the network + * CIDR of the network */ cidr: string; /** - * Is the network externally defined + * Whether the network is external */ external: boolean; /** - * ID of the network, if externally defined + * External ID of the network */ externalId: string; /** * Name of the network */ name: string; + /** + * List of private subnets + */ privateSubnets: string[]; + /** + * List of public subnets + */ publicSubnets: string[]; /** * Region of the network @@ -42,39 +43,244 @@ export interface ClusterNetwork { } export interface ClusterNode { + availabilityZone: string; + instanceType: string; + name: string; + region: string; + volumeIops: number; + volumeSize: number; + volumeType: string; +} + +export interface DatabaseBackups { /** - * Cloud provider availability zone name + * List of backup configurations. */ - availabilityZone: string; + configs: outputs.DatabaseBackupsConfig[]; /** - * Instance type used for the node + * The backup provider. */ - instanceType: string; + provider: string; +} + +export interface DatabaseBackupsConfig { /** - * Node name + * Unique identifier for the backup config. */ - name: string; - options: string[]; + id: string; /** - * Cloud provider region + * Name of the node. */ + nodeName: string; + /** + * List of backup repositories. + */ + repositories: outputs.DatabaseBackupsConfigRepository[]; + /** + * List of backup schedules. + */ + schedules: outputs.DatabaseBackupsConfigSchedule[]; +} + +export interface DatabaseBackupsConfigRepository { + /** + * Azure account. + */ + azureAccount: string; + /** + * Azure container. + */ + azureContainer: string; + /** + * Azure endpoint. + */ + azureEndpoint: string; + /** + * ID of the backup store. + */ + backupStoreId: string; + /** + * Base path for the repository. + */ + basePath: string; + /** + * GCS bucket name. + */ + gcsBucket: string; + /** + * GCS endpoint. + */ + gcsEndpoint: string; + /** + * Unique identifier for the backup config. + */ + id: string; + /** + * Retention period for full backups. + */ + retentionFull: number; + /** + * Type of retention for full backups. + */ + retentionFullType: string; + /** + * S3 bucket name. + */ + s3Bucket: string; + /** + * S3 endpoint. + */ + s3Endpoint: string; + /** + * S3 region. + */ + s3Region: string; + /** + * Type of the repository. + */ + type: string; +} + +export interface DatabaseBackupsConfigSchedule { + /** + * Cron expression for the schedule. + */ + cronExpression: string; + /** + * Unique identifier for the backup config. + */ + id: string; + /** + * Type of the repository. + */ + type: string; +} + +export interface DatabaseComponent { + id: string; + name: string; + releaseDate: string; + status: string; + version: string; +} + +export interface DatabaseExtensions { + autoManage: boolean; + availables: string[]; + requesteds: string[]; +} + +export interface DatabaseNodes { + connection: outputs.DatabaseNodesConnection; + extensions: outputs.DatabaseNodesExtensions; + location: outputs.DatabaseNodesLocation; + name: string; + region: outputs.DatabaseNodesRegion; +} + +export interface DatabaseNodesConnection { + database: string; + externalIpAddress: string; + host: string; + internalHost: string; + internalIpAddress: string; + password: string; + port: number; + username: string; +} + +export interface DatabaseNodesExtensions { + errors: {[key: string]: string}; + installeds: string[]; +} + +export interface DatabaseNodesLocation { + city: string; + code: string; + country: string; + latitude: number; + longitude: number; + metroCode: string; + name: string; + postalCode: string; region: string; + regionCode: string; + timezone: string; +} + +export interface DatabaseNodesRegion { + active: boolean; + availabilityZones: string[]; + cloud: string; + code: string; + name: string; + parent: string; +} + +export interface DatabaseRole { + bypassRls: boolean; + connectionLimit: number; + createDb: boolean; + createRole: boolean; + inherit: boolean; + login: boolean; + name: string; + replication: boolean; + superuser: boolean; +} + +export interface GetBackupStoresBackupStore { + cloudAccountId: string; + cloudAccountType: string; + clusterIds: string[]; + createdAt: string; + id: string; + name: string; + properties: {[key: string]: string}; + status: string; + updatedAt: string; +} + +export interface GetCloudAccountsCloudAccount { /** - * Volume IOPS of the node data volume + * Creation time of the cloud account */ - volumeIops: number; + createdAt: string; /** - * Volume size of the node data volume + * Description of the cloud account */ - volumeSize: number; + description: string; /** - * Volume type of the node data volume + * ID of the cloud account */ - volumeType: string; + id: string; + /** + * Name of the cloud account + */ + name: string; + /** + * Additional properties of the cloud account + */ + properties: {[key: string]: string}; + /** + * Type of the cloud account (e.g., AWS, Azure, GCP) + */ + type: string; + /** + * Last update time of the cloud account + */ + updatedAt: string; } export interface GetClustersCluster { - cloudAccount: outputs.GetClustersClusterCloudAccount; + /** + * Backup store IDs of the cluster + */ + backupStoreIds: string[]; + /** + * Capacity of the cluster + */ + capacity: number; /** * Cloud account ID of the cluster */ @@ -94,11 +300,15 @@ export interface GetClustersCluster { name: string; networks: outputs.GetClustersClusterNetwork[]; /** - * Node location of the cluster + * Node location of the cluster. Must be either 'public' or 'private'. */ nodeLocation: string; nodes: outputs.GetClustersClusterNode[]; regions: string[]; + /** + * Resource tags of the cluster + */ + resourceTags: {[key: string]: string}; /** * SSH key ID of the cluster */ @@ -109,24 +319,9 @@ export interface GetClustersCluster { status: string; } -export interface GetClustersClusterCloudAccount { - /** - * Display name of the node - */ - id: string; - /** - * IP address of the node - */ - name: string; - /** - * Type of the node - */ - type: string; -} - export interface GetClustersClusterFirewallRule { /** - * IP address of the node + * Name of the firewall rule */ name: string; /** @@ -141,7 +336,7 @@ export interface GetClustersClusterFirewallRule { export interface GetClustersClusterNetwork { /** - * CIDR of the AWS node group + * CIDR of the network */ cidr: string; /** @@ -153,7 +348,7 @@ export interface GetClustersClusterNetwork { */ externalId: string; /** - * IP address of the node + * Name of the firewall rule */ name: string; privateSubnets: string[]; @@ -174,7 +369,7 @@ export interface GetClustersClusterNode { */ instanceType: string; /** - * IP address of the node + * Name of the firewall rule */ name: string; options: string[]; @@ -198,22 +393,32 @@ export interface GetClustersClusterNode { export interface GetDatabasesDatabase { /** - * Updated at of the database + * Backup configuration for the database + */ + backups: outputs.GetDatabasesDatabaseBackups; + /** + * ID of the cluster this database belongs to */ clusterId: string; + /** + * Components of the database + */ components: outputs.GetDatabasesDatabaseComponent[]; /** - * Config version of the database + * Configuration version of the database */ - configVersion?: string; + configVersion: string; /** - * Created at of the database + * Creation timestamp of the database */ createdAt: string; /** * Domain of the database */ domain: string; + /** + * Extensions configuration for the database + */ extensions: outputs.GetDatabasesDatabaseExtensions; /** * ID of the database @@ -223,345 +428,228 @@ export interface GetDatabasesDatabase { * Name of the database */ name: string; - nodes?: outputs.GetDatabasesDatabaseNode[]; /** - * Options for creating the database + * Map of nodes in the database + */ + nodes: {[key: string]: outputs.GetDatabasesDatabaseNodes}; + /** + * Options for the database */ options: string[]; /** - * Postgres version of the database + * PostgreSQL version of the database */ pgVersion: string; + /** + * Roles in the database + */ roles: outputs.GetDatabasesDatabaseRole[]; /** * Status of the database */ status: string; /** - * Storage used of the database - */ - storageUsed: number; - tables: outputs.GetDatabasesDatabaseTable[]; - /** - * Updated at of the database + * Last update timestamp of the database */ updatedAt: string; } -export interface GetDatabasesDatabaseComponent { - /** - * Id of the component - */ - id: string; +export interface GetDatabasesDatabaseBackups { /** - * Name of the component + * Backup configurations */ - name: string; + configs: outputs.GetDatabasesDatabaseBackupsConfig[]; /** - * Release date of the component + * Backup provider */ - releaseDate: string; - /** - * Status of the component - */ - status: string; - /** - * Version of the component - */ - version: string; + provider: string; } -export interface GetDatabasesDatabaseExtensions { - /** - * Auto manage of the extension - */ - autoManage: boolean; +export interface GetDatabasesDatabaseBackupsConfig { /** - * Available of the extension + * Backup configuration ID */ - availables: string[]; + id: string; /** - * Requested of the extension + * Node name */ - requesteds: string[]; -} - -export interface GetDatabasesDatabaseNode { - connection: outputs.GetDatabasesDatabaseNodeConnection; - distanceMeasurement: outputs.GetDatabasesDatabaseNodeDistanceMeasurement; - extensions: outputs.GetDatabasesDatabaseNodeExtensions; - location: outputs.GetDatabasesDatabaseNodeLocation; + nodeName: string; /** - * Name of the component + * Backup repositories */ - name: string; + repositories: outputs.GetDatabasesDatabaseBackupsConfigRepository[]; /** - * Region of the location + * Backup schedules */ - region: outputs.GetDatabasesDatabaseNodeRegion; + schedules: outputs.GetDatabasesDatabaseBackupsConfigSchedule[]; } -export interface GetDatabasesDatabaseNodeConnection { +export interface GetDatabasesDatabaseBackupsConfigRepository { + azureAccount: string; + azureContainer: string; + azureEndpoint: string; + backupStoreId: string; + basePath: string; + gcsBucket: string; + gcsEndpoint: string; /** - * Database of the node + * Backup configuration ID */ - database: string; - /** - * External IP of the node - */ - externalIpAddress: string; + id: string; + retentionFull: number; + retentionFullType: string; + s3Bucket: string; + s3Endpoint: string; + s3Region: string; + type: string; +} + +export interface GetDatabasesDatabaseBackupsConfigSchedule { + cronExpression: string; /** - * Host of the node + * Backup configuration ID */ - host: string; + id: string; + type: string; +} + +export interface GetDatabasesDatabaseComponent { /** - * Internal Host of the node + * Backup configuration ID */ - internalHost: string; + id: string; /** - * Internal IP of the node + * Component name */ - internalIpAddress: string; + name: string; /** - * Password of the node + * Component release date */ - password: string; + releaseDate: string; /** - * Port of the node + * Component status */ - port: number; + status: string; /** - * Username of the node + * Component version */ - username: string; + version: string; } -export interface GetDatabasesDatabaseNodeDistanceMeasurement { - /** - * Distance from a reference point - */ - distance: number; +export interface GetDatabasesDatabaseExtensions { /** - * Latitude of the reference point + * Auto-manage extensions */ - fromLatitude: number; + autoManage: boolean; /** - * Longitude of the reference point + * Available extensions */ - fromLongitude: number; + availables: string[]; /** - * Unit of distance measurement + * Requested extensions */ - unit: string; + requesteds: string[]; } -export interface GetDatabasesDatabaseNodeExtensions { - errors: outputs.GetDatabasesDatabaseNodeExtensionsErrors; +export interface GetDatabasesDatabaseNodes { /** - * List of installed extensions + * Node connection details */ - installeds: string[]; -} - -export interface GetDatabasesDatabaseNodeExtensionsErrors { + connection: outputs.GetDatabasesDatabaseNodesConnection; /** - * Error code anim9ef + * Extensions configuration for the database */ - anim9ef: string; + extensions: outputs.GetDatabasesDatabaseNodesExtensions; /** - * Error code enim3b + * Node location */ - enim3b: string; + location: outputs.GetDatabasesDatabaseNodesLocation; /** - * Error code laborumd + * Component name */ - laborumd: string; + name: string; /** - * Error code mollit267 + * Node region */ - mollit267: string; + region: outputs.GetDatabasesDatabaseNodesRegion; } -export interface GetDatabasesDatabaseNodeLocation { - /** - * City of the location - */ +export interface GetDatabasesDatabaseNodesConnection { + database: string; + externalIpAddress: string; + host: string; + internalHost: string; + internalIpAddress: string; + password: string; + port: number; + username: string; +} + +export interface GetDatabasesDatabaseNodesExtensions { + errors: {[key: string]: string}; + installeds: string[]; +} + +export interface GetDatabasesDatabaseNodesLocation { city: string; - /** - * Code of the location - */ code: string; - /** - * Country of the location - */ country: string; - /** - * Latitude of the location - */ latitude: number; - /** - * Longitude of the location - */ longitude: number; - /** - * Metro code of the location - */ metroCode: string; /** - * Name of the component + * Component name */ name: string; - /** - * Postal code of the location - */ postalCode: string; - /** - * Region of the location - */ region: string; - /** - * Region code of the location - */ regionCode: string; - /** - * Timezone of the location - */ timezone: string; } -export interface GetDatabasesDatabaseNodeRegion { - /** - * Active status of the region - */ +export interface GetDatabasesDatabaseNodesRegion { active: boolean; - /** - * Availability zones of the region - */ availabilityZones: string[]; - /** - * Cloud provider of the region - */ cloud: string; - /** - * Code of the location - */ code: string; /** - * Name of the component + * Component name */ name: string; - /** - * Parent region - */ parent: string; } export interface GetDatabasesDatabaseRole { - /** - * Bypass RLS - */ bypassRls: boolean; - /** - * Connection limit - */ connectionLimit: number; - /** - * Create database - */ createDb: boolean; - /** - * Create role - */ createRole: boolean; - /** - * Inherit - */ inherit: boolean; - /** - * Login - */ login: boolean; /** - * Name of the component + * Component name */ name: string; - /** - * Replication - */ replication: boolean; - /** - * Superuser - */ superuser: boolean; } -export interface GetDatabasesDatabaseTable { - columns: outputs.GetDatabasesDatabaseTableColumn[]; - /** - * Name of the component - */ - name: string; - /** - * Primary key of the table - */ - primaryKeys: string[]; - /** - * Replication sets of the table - */ - replicationSets: string[]; - /** - * Schema of the table - */ - schema: string; - /** - * Status of the component - */ - statuses: outputs.GetDatabasesDatabaseTableStatus[]; -} - -export interface GetDatabasesDatabaseTableColumn { - /** - * Data type of the column - */ - dataType: string; +export interface GetSSHKeysSshKey { /** - * Default of the column + * Creation time of the SSH key */ - default: string; - /** - * Is nullable of the column - */ - isNullable: boolean; + createdAt: string; /** - * Is primary key of the column + * ID of the SSH key */ - isPrimaryKey: boolean; + id: string; /** - * Name of the component + * Name of the SSH key */ name: string; /** - * Ordinal position of the column - */ - ordinalPosition: number; -} - -export interface GetDatabasesDatabaseTableStatus { - /** - * Aligned of the table - */ - aligned: boolean; - /** - * Node name of the table - */ - nodeName: string; - /** - * Present of the table - */ - present: boolean; - /** - * Replicating of the table + * Public key */ - replicating: boolean; + publicKey: string; } diff --git a/sdk/nodejs/utilities.ts b/sdk/nodejs/utilities.ts index 080cc82..7949fad 100644 --- a/sdk/nodejs/utilities.ts +++ b/sdk/nodejs/utilities.ts @@ -53,7 +53,7 @@ export function getVersion(): string { /** @internal */ export function resourceOptsDefaults(): any { - return { version: getVersion() }; + return { version: getVersion(), pluginDownloadURL: "github://api.github.com/pgEdge/pulumi-pgedge" }; } /** @internal */ diff --git a/sdk/python/README.md b/sdk/python/README.md index e69de29..7c319e6 100644 --- a/sdk/python/README.md +++ b/sdk/python/README.md @@ -0,0 +1,306 @@ +# pgEdge Pulumi Provider + +pgEdge + +The official Pulumi provider for [pgEdge](https://www.pgedge.com/), designed to simplify the management of pgEdge resources using infrastructure as code. + +- **Documentation:** [pgEdge Pulumi Docs](https://www.pulumi.com/registry/packages/pgedge/) +- **Website:** [pgEdge](https://www.pgedge.com/) +- **Discuss:** [GitHub Issues](https://github.com/pgEdge/pulumi-pgedge/issues) + +## Prerequisites + +Before you begin, ensure you have the following tools installed: + +- [Pulumi CLI](https://www.pulumi.com/docs/get-started/install/) +- [Go](https://golang.org/doc/install) (version 1.18 or later) +- [pulumictl](https://github.com/pulumi/pulumictl) +- [golangci-lint](https://golangci-lint.run/usage/install/) +- [Node.js](https://nodejs.org/) (Active LTS or maintenance version, we recommend using [nvm](https://github.com/nvm-sh/nvm) to manage Node.js installations) +- [Yarn](https://yarnpkg.com/getting-started/install) +- [TypeScript](https://www.typescriptlang.org/download) +- [Python](https://www.python.org/downloads/) (Python 3) +- [.NET SDK](https://dotnet.microsoft.com/download) + +## Installation + +To use this provider, you need to have Pulumi installed. If you haven't already, you can [install Pulumi here](https://www.pulumi.com/docs/get-started/install/). + +### Go + +```bash +go get github.com/pgEdge/pulumi-pgedge/sdk/go/pgedge +``` + +### Node.js + +```bash +npm install @pgEdge/pulumi-pgedge +``` + +## Configuration + +Before using the provider, you need to configure your pgEdge credentials. Set the following environment variables: + +```sh +export PGEDGE_CLIENT_ID="your-client-id" +export PGEDGE_CLIENT_SECRET="your-client-secret" +``` + +These credentials authenticate the Pulumi provider with your pgEdge Cloud account. + +## Getting Started + +### Creating a New Pulumi Project + +1. Create a new directory for your project: + +```bash +mkdir pgedge-pulumi-project && cd pgedge-pulumi-project +``` + +2. Initialize a new Pulumi project: + +```bash +pulumi new typescript +``` + +Follow the prompts to set up your project. + +3. Install the pgEdge provider: + +```bash +npm install @pgEdge/pulumi-pgedge +``` + +4. Update your `Pulumi.yaml` file to include the pgEdge provider: + +```yaml +name: pgedge-pulumi-project +runtime: nodejs +description: A new Pulumi project using pgEdge +plugins: + providers: + - name: pgedge + path: ./node_modules/@pgEdge/pulumi-pgedge +``` + +### Writing Your Pulumi Program + +Replace the contents of `index.ts` with the following: + +```typescript +import * as pulumi from "@pulumi/pulumi"; +import * as pgedge from "@pgEdge/pulumi-pgedge"; + +// Create an SSH Key +const sshKey = new pgedge.SSHKey("exampleSSHKey", { + name: "example", + publicKey: "ssh-ed25519 AAAAC3df23442ccAANTE5AAAAICXfT63i04t5fvvlGeoUoVG7DkyxvyXbYQNhKP/rSeLY user@example.com", +}); + +// Create a Cloud Account +const cloudAccount = new pgedge.CloudAccount("exampleCloudAccount", { + name: "my-aws-account", + type: "aws", + description: "My AWS Cloud Account", + credentials: { + role_arn: "arn:aws:iam::124568901:role/pgedge-13e32c", + }, +}, { dependsOn: sshKey }); + +// Create a Backup Store +const backupStore = new pgedge.BackupStore("exampleBackupStore", { + name: "example", + cloudAccountId: cloudAccount.id, + region: "us-west-2", +}, { dependsOn: cloudAccount }); + +// Create a Cluster +const cluster = new pgedge.Cluster("exampleCluster", { + name: "example", + cloudAccountId: cloudAccount.id, + regions: ["us-west-2", "us-east-1", "eu-central-1"], + nodeLocation: "public", + sshKeyId: sshKey.id, + nodes: [ + { + name: "n1", + region: "us-west-2", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n2", + region: "us-east-1", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n3", + region: "eu-central-1", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + ], + networks: [ + { + region: "us-west-2", + cidr: "10.1.0.0/16", + publicSubnets: ["10.1.0.0/24"], + // privateSubnets: ["10.1.0.0/24"], + }, + { + region: "us-east-1", + cidr: "10.2.0.0/16", + publicSubnets: ["10.2.0.0/24"], + // privateSubnets: ["10.2.0.0/24"], + }, + { + region: "eu-central-1", + cidr: "10.3.0.0/16", + publicSubnets: ["10.3.0.0/24"], + // privateSubnets: ["10.3.0.0/24"], + }, + ], + firewallRules: [ + { + name: "postgres", + port: 5432, + sources: ["107.18.0.0/16", "89.0.142.86/16"], + }, + ], +}, { dependsOn: backupStore }); + +// Create a Database +const database = new pgedge.Database("exampleDatabase", { + name: "example", + clusterId: cluster.id, + options: [ + "install:northwind", + "rest:enabled", + "autoddl:enabled", + ], + extensions: { + autoManage: true, + requesteds: [ + "postgis" + ], + }, + nodes: [ + { name: "n1" }, + { name: "n2" }, + { name: "n3" }, + ], + backups: { + provider: "pgdump", + }, +}, { dependsOn: cluster }); + +// Export the resource IDs +export const sshKeyId = sshKey.id; +export const cloudAccountId = cloudAccount.id; +export const backupStoreId = backupStore.id; +export const clusterId = cluster.id; +export const databaseId = database.id; +``` + +### Deploying Your Infrastructure + +To deploy your infrastructure: + +1. Set up your pgEdge credentials as environment variables. +2. Run the following command: + +```bash +pulumi up +``` + +Review the changes and confirm the deployment. + +## Updating Resources + +### Updating a Database + +To update a database, you can modify properties such as `options`, `extensions`, or `nodes`. Here's an example of adding a new extension and removing a node. (Make sure to update one property at a time): + +```typescript +const database = new pgedge.Database("exampleDatabase", { + // ... other properties ... + options: [ + "install:northwind", + "rest:enabled", + "autoddl:enabled", + "cloudwatch_metrics:enabled", // New option + ], + extensions: { + autoManage: true, + requesteds: [ + "postgis", + "vector", // New extension + ], + }, + nodes: [ + { name: "n1" }, + { name: "n3" }, + ], + // ... other properties ... +}); +``` + +### Updating a Cluster + +To update an existing cluster, such as adding or removing nodes, you can modify the `nodes`, `regions`, and `networks` arrays in your Pulumi program. Here's an example of removing a node: + +```typescript +const cluster = new pgedge.Cluster("exampleCluster", { + // ... other properties ... + nodes: [ + { + name: "n1", + region: "us-west-2", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + { + name: "n3", + region: "eu-central-1", + instanceType: "r6g.medium", + volumeSize: 100, + volumeType: "gp2", + }, + ], + regions: ["us-west-2", "eu-central-1"], + networks: [ + { + region: "us-west-2", + cidr: "10.1.0.0/16", + publicSubnets: ["10.1.0.0/24"], + // privateSubnets: ["10.1.0.0/24"], + }, + { + region: "eu-central-1", + cidr: "10.3.0.0/16", + publicSubnets: ["10.3.0.0/24"], + // privateSubnets: ["10.3.0.0/24"], + }, + ], + // ... other properties ... +}); +``` + +After making these changes, run `pulumi up` to apply the updates to your infrastructure. + +You can find more examples in the [examples](examples/) directory. + +## Contributing + +We welcome contributions from the community. Please review our [contribution guidelines](CONTRIBUTING.md) for more information on how to get started. + +## License + +This project is licensed under the Apache License. See the [LICENSE](LICENSE) file for details. \ No newline at end of file diff --git a/sdk/python/pgEdge_pulumi_pgedge/__init__.py b/sdk/python/pgEdge_pulumi_pgedge/__init__.py index 6d88c23..b84bb62 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/__init__.py +++ b/sdk/python/pgEdge_pulumi_pgedge/__init__.py @@ -5,11 +5,17 @@ from . import _utilities import typing # Export this package's modules as members: +from .backup_store import * +from .cloud_account import * from .cluster import * from .database import * +from .get_backup_stores import * +from .get_cloud_accounts import * from .get_clusters import * from .get_databases import * +from .get_ssh_keys import * from .provider import * +from .ssh_key import * from ._inputs import * from . import outputs @@ -23,6 +29,22 @@ _utilities.register( resource_modules=""" [ + { + "pkg": "pgedge", + "mod": "index/backupStore", + "fqn": "pgEdge_pulumi_pgedge", + "classes": { + "pgedge:index/backupStore:BackupStore": "BackupStore" + } + }, + { + "pkg": "pgedge", + "mod": "index/cloudAccount", + "fqn": "pgEdge_pulumi_pgedge", + "classes": { + "pgedge:index/cloudAccount:CloudAccount": "CloudAccount" + } + }, { "pkg": "pgedge", "mod": "index/cluster", @@ -38,6 +60,14 @@ "classes": { "pgedge:index/database:Database": "Database" } + }, + { + "pkg": "pgedge", + "mod": "index/sSHKey", + "fqn": "pgEdge_pulumi_pgedge", + "classes": { + "pgedge:index/sSHKey:SSHKey": "SSHKey" + } } ] """, diff --git a/sdk/python/pgEdge_pulumi_pgedge/_inputs.py b/sdk/python/pgEdge_pulumi_pgedge/_inputs.py index 9e2c114..93dca03 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/_inputs.py +++ b/sdk/python/pgEdge_pulumi_pgedge/_inputs.py @@ -13,26 +13,42 @@ 'ClusterFirewallRuleArgs', 'ClusterNetworkArgs', 'ClusterNodeArgs', + 'DatabaseBackupsArgs', + 'DatabaseBackupsConfigArgs', + 'DatabaseBackupsConfigRepositoryArgs', + 'DatabaseBackupsConfigScheduleArgs', + 'DatabaseComponentArgs', + 'DatabaseExtensionsArgs', + 'DatabaseNodesArgs', + 'DatabaseNodesConnectionArgs', + 'DatabaseNodesExtensionsArgs', + 'DatabaseNodesLocationArgs', + 'DatabaseNodesRegionArgs', + 'DatabaseRoleArgs', ] @pulumi.input_type class ClusterFirewallRuleArgs: def __init__(__self__, *, + name: pulumi.Input[str], port: pulumi.Input[int], sources: pulumi.Input[Sequence[pulumi.Input[str]]]): - """ - :param pulumi.Input[int] port: Port whose traffic is allowed - :param pulumi.Input[Sequence[pulumi.Input[str]]] sources: CIDRs and/or IP addresses allowed - """ + pulumi.set(__self__, "name", name) pulumi.set(__self__, "port", port) pulumi.set(__self__, "sources", sources) + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + @property @pulumi.getter def port(self) -> pulumi.Input[int]: - """ - Port whose traffic is allowed - """ return pulumi.get(self, "port") @port.setter @@ -42,9 +58,6 @@ def port(self, value: pulumi.Input[int]): @property @pulumi.getter def sources(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: - """ - CIDRs and/or IP addresses allowed - """ return pulumi.get(self, "sources") @sources.setter @@ -55,23 +68,25 @@ def sources(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): @pulumi.input_type class ClusterNetworkArgs: def __init__(__self__, *, + cidr: pulumi.Input[str], + public_subnets: pulumi.Input[Sequence[pulumi.Input[str]]], region: pulumi.Input[str], - cidr: Optional[pulumi.Input[str]] = None, external: Optional[pulumi.Input[bool]] = None, external_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, - private_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - public_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + private_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ + :param pulumi.Input[str] cidr: CIDR of the network + :param pulumi.Input[Sequence[pulumi.Input[str]]] public_subnets: List of public subnets :param pulumi.Input[str] region: Region of the network - :param pulumi.Input[str] cidr: CIDR range for the network - :param pulumi.Input[bool] external: Is the network externally defined - :param pulumi.Input[str] external_id: ID of the network, if externally defined + :param pulumi.Input[bool] external: Whether the network is external + :param pulumi.Input[str] external_id: External ID of the network :param pulumi.Input[str] name: Name of the network + :param pulumi.Input[Sequence[pulumi.Input[str]]] private_subnets: List of private subnets """ + pulumi.set(__self__, "cidr", cidr) + pulumi.set(__self__, "public_subnets", public_subnets) pulumi.set(__self__, "region", region) - if cidr is not None: - pulumi.set(__self__, "cidr", cidr) if external is not None: pulumi.set(__self__, "external", external) if external_id is not None: @@ -80,38 +95,48 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if private_subnets is not None: pulumi.set(__self__, "private_subnets", private_subnets) - if public_subnets is not None: - pulumi.set(__self__, "public_subnets", public_subnets) @property @pulumi.getter - def region(self) -> pulumi.Input[str]: + def cidr(self) -> pulumi.Input[str]: """ - Region of the network + CIDR of the network """ - return pulumi.get(self, "region") + return pulumi.get(self, "cidr") - @region.setter - def region(self, value: pulumi.Input[str]): - pulumi.set(self, "region", value) + @cidr.setter + def cidr(self, value: pulumi.Input[str]): + pulumi.set(self, "cidr", value) + + @property + @pulumi.getter(name="publicSubnets") + def public_subnets(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + List of public subnets + """ + return pulumi.get(self, "public_subnets") + + @public_subnets.setter + def public_subnets(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "public_subnets", value) @property @pulumi.getter - def cidr(self) -> Optional[pulumi.Input[str]]: + def region(self) -> pulumi.Input[str]: """ - CIDR range for the network + Region of the network """ - return pulumi.get(self, "cidr") + return pulumi.get(self, "region") - @cidr.setter - def cidr(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "cidr", value) + @region.setter + def region(self, value: pulumi.Input[str]): + pulumi.set(self, "region", value) @property @pulumi.getter def external(self) -> Optional[pulumi.Input[bool]]: """ - Is the network externally defined + Whether the network is external """ return pulumi.get(self, "external") @@ -123,7 +148,7 @@ def external(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="externalId") def external_id(self) -> Optional[pulumi.Input[str]]: """ - ID of the network, if externally defined + External ID of the network """ return pulumi.get(self, "external_id") @@ -146,51 +171,31 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="privateSubnets") def private_subnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of private subnets + """ return pulumi.get(self, "private_subnets") @private_subnets.setter def private_subnets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "private_subnets", value) - @property - @pulumi.getter(name="publicSubnets") - def public_subnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: - return pulumi.get(self, "public_subnets") - - @public_subnets.setter - def public_subnets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "public_subnets", value) - @pulumi.input_type class ClusterNodeArgs: def __init__(__self__, *, + instance_type: pulumi.Input[str], + name: pulumi.Input[str], region: pulumi.Input[str], availability_zone: Optional[pulumi.Input[str]] = None, - instance_type: Optional[pulumi.Input[str]] = None, - name: Optional[pulumi.Input[str]] = None, - options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, volume_iops: Optional[pulumi.Input[int]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] region: Cloud provider region - :param pulumi.Input[str] availability_zone: Cloud provider availability zone name - :param pulumi.Input[str] instance_type: Instance type used for the node - :param pulumi.Input[str] name: Node name - :param pulumi.Input[int] volume_iops: Volume IOPS of the node data volume - :param pulumi.Input[int] volume_size: Volume size of the node data volume - :param pulumi.Input[str] volume_type: Volume type of the node data volume - """ + pulumi.set(__self__, "instance_type", instance_type) + pulumi.set(__self__, "name", name) pulumi.set(__self__, "region", region) if availability_zone is not None: pulumi.set(__self__, "availability_zone", availability_zone) - if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) - if name is not None: - pulumi.set(__self__, "name", name) - if options is not None: - pulumi.set(__self__, "options", options) if volume_iops is not None: pulumi.set(__self__, "volume_iops", volume_iops) if volume_size is not None: @@ -198,12 +203,27 @@ def __init__(__self__, *, if volume_type is not None: pulumi.set(__self__, "volume_type", volume_type) + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> pulumi.Input[str]: + return pulumi.get(self, "instance_type") + + @instance_type.setter + def instance_type(self, value: pulumi.Input[str]): + pulumi.set(self, "instance_type", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + @property @pulumi.getter def region(self) -> pulumi.Input[str]: - """ - Cloud provider region - """ return pulumi.get(self, "region") @region.setter @@ -213,9 +233,6 @@ def region(self, value: pulumi.Input[str]): @property @pulumi.getter(name="availabilityZone") def availability_zone(self) -> Optional[pulumi.Input[str]]: - """ - Cloud provider availability zone name - """ return pulumi.get(self, "availability_zone") @availability_zone.setter @@ -223,72 +240,1053 @@ def availability_zone(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "availability_zone", value) @property - @pulumi.getter(name="instanceType") - def instance_type(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="volumeIops") + def volume_iops(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "volume_iops") + + @volume_iops.setter + def volume_iops(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "volume_iops", value) + + @property + @pulumi.getter(name="volumeSize") + def volume_size(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "volume_size") + + @volume_size.setter + def volume_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "volume_size", value) + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "volume_type") + + @volume_type.setter + def volume_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "volume_type", value) + + +@pulumi.input_type +class DatabaseBackupsArgs: + def __init__(__self__, *, + configs: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigArgs']]]] = None, + provider: Optional[pulumi.Input[str]] = None): """ - Instance type used for the node + :param pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigArgs']]] configs: List of backup configurations. + :param pulumi.Input[str] provider: The backup provider. """ - return pulumi.get(self, "instance_type") + if configs is not None: + pulumi.set(__self__, "configs", configs) + if provider is not None: + pulumi.set(__self__, "provider", provider) - @instance_type.setter - def instance_type(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "instance_type", value) + @property + @pulumi.getter + def configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigArgs']]]]: + """ + List of backup configurations. + """ + return pulumi.get(self, "configs") + + @configs.setter + def configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigArgs']]]]): + pulumi.set(self, "configs", value) @property @pulumi.getter - def name(self) -> Optional[pulumi.Input[str]]: + def provider(self) -> Optional[pulumi.Input[str]]: """ - Node name + The backup provider. """ - return pulumi.get(self, "name") + return pulumi.get(self, "provider") - @name.setter - def name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "name", value) + @provider.setter + def provider(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "provider", value) + + +@pulumi.input_type +class DatabaseBackupsConfigArgs: + def __init__(__self__, *, + id: Optional[pulumi.Input[str]] = None, + node_name: Optional[pulumi.Input[str]] = None, + repositories: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigRepositoryArgs']]]] = None, + schedules: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigScheduleArgs']]]] = None): + """ + :param pulumi.Input[str] id: Unique identifier for the backup config. + :param pulumi.Input[str] node_name: Name of the node. + :param pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigRepositoryArgs']]] repositories: List of backup repositories. + :param pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigScheduleArgs']]] schedules: List of backup schedules. + """ + if id is not None: + pulumi.set(__self__, "id", id) + if node_name is not None: + pulumi.set(__self__, "node_name", node_name) + if repositories is not None: + pulumi.set(__self__, "repositories", repositories) + if schedules is not None: + pulumi.set(__self__, "schedules", schedules) @property @pulumi.getter - def options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: - return pulumi.get(self, "options") + def id(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier for the backup config. + """ + return pulumi.get(self, "id") - @options.setter - def options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "options", value) + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) @property - @pulumi.getter(name="volumeIops") - def volume_iops(self) -> Optional[pulumi.Input[int]]: + @pulumi.getter(name="nodeName") + def node_name(self) -> Optional[pulumi.Input[str]]: """ - Volume IOPS of the node data volume + Name of the node. """ - return pulumi.get(self, "volume_iops") + return pulumi.get(self, "node_name") - @volume_iops.setter - def volume_iops(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "volume_iops", value) + @node_name.setter + def node_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_name", value) @property - @pulumi.getter(name="volumeSize") - def volume_size(self) -> Optional[pulumi.Input[int]]: + @pulumi.getter + def repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigRepositoryArgs']]]]: """ - Volume size of the node data volume + List of backup repositories. """ - return pulumi.get(self, "volume_size") + return pulumi.get(self, "repositories") - @volume_size.setter - def volume_size(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "volume_size", value) + @repositories.setter + def repositories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigRepositoryArgs']]]]): + pulumi.set(self, "repositories", value) @property - @pulumi.getter(name="volumeType") - def volume_type(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter + def schedules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigScheduleArgs']]]]: """ - Volume type of the node data volume + List of backup schedules. """ - return pulumi.get(self, "volume_type") + return pulumi.get(self, "schedules") - @volume_type.setter - def volume_type(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "volume_type", value) + @schedules.setter + def schedules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseBackupsConfigScheduleArgs']]]]): + pulumi.set(self, "schedules", value) + + +@pulumi.input_type +class DatabaseBackupsConfigRepositoryArgs: + def __init__(__self__, *, + azure_account: Optional[pulumi.Input[str]] = None, + azure_container: Optional[pulumi.Input[str]] = None, + azure_endpoint: Optional[pulumi.Input[str]] = None, + backup_store_id: Optional[pulumi.Input[str]] = None, + base_path: Optional[pulumi.Input[str]] = None, + gcs_bucket: Optional[pulumi.Input[str]] = None, + gcs_endpoint: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + retention_full: Optional[pulumi.Input[int]] = None, + retention_full_type: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_endpoint: Optional[pulumi.Input[str]] = None, + s3_region: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] azure_account: Azure account. + :param pulumi.Input[str] azure_container: Azure container. + :param pulumi.Input[str] azure_endpoint: Azure endpoint. + :param pulumi.Input[str] backup_store_id: ID of the backup store. + :param pulumi.Input[str] base_path: Base path for the repository. + :param pulumi.Input[str] gcs_bucket: GCS bucket name. + :param pulumi.Input[str] gcs_endpoint: GCS endpoint. + :param pulumi.Input[str] id: Unique identifier for the backup config. + :param pulumi.Input[int] retention_full: Retention period for full backups. + :param pulumi.Input[str] retention_full_type: Type of retention for full backups. + :param pulumi.Input[str] s3_bucket: S3 bucket name. + :param pulumi.Input[str] s3_endpoint: S3 endpoint. + :param pulumi.Input[str] s3_region: S3 region. + :param pulumi.Input[str] type: Type of the repository. + """ + if azure_account is not None: + pulumi.set(__self__, "azure_account", azure_account) + if azure_container is not None: + pulumi.set(__self__, "azure_container", azure_container) + if azure_endpoint is not None: + pulumi.set(__self__, "azure_endpoint", azure_endpoint) + if backup_store_id is not None: + pulumi.set(__self__, "backup_store_id", backup_store_id) + if base_path is not None: + pulumi.set(__self__, "base_path", base_path) + if gcs_bucket is not None: + pulumi.set(__self__, "gcs_bucket", gcs_bucket) + if gcs_endpoint is not None: + pulumi.set(__self__, "gcs_endpoint", gcs_endpoint) + if id is not None: + pulumi.set(__self__, "id", id) + if retention_full is not None: + pulumi.set(__self__, "retention_full", retention_full) + if retention_full_type is not None: + pulumi.set(__self__, "retention_full_type", retention_full_type) + if s3_bucket is not None: + pulumi.set(__self__, "s3_bucket", s3_bucket) + if s3_endpoint is not None: + pulumi.set(__self__, "s3_endpoint", s3_endpoint) + if s3_region is not None: + pulumi.set(__self__, "s3_region", s3_region) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="azureAccount") + def azure_account(self) -> Optional[pulumi.Input[str]]: + """ + Azure account. + """ + return pulumi.get(self, "azure_account") + + @azure_account.setter + def azure_account(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "azure_account", value) + + @property + @pulumi.getter(name="azureContainer") + def azure_container(self) -> Optional[pulumi.Input[str]]: + """ + Azure container. + """ + return pulumi.get(self, "azure_container") + + @azure_container.setter + def azure_container(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "azure_container", value) + + @property + @pulumi.getter(name="azureEndpoint") + def azure_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + Azure endpoint. + """ + return pulumi.get(self, "azure_endpoint") + + @azure_endpoint.setter + def azure_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "azure_endpoint", value) + + @property + @pulumi.getter(name="backupStoreId") + def backup_store_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the backup store. + """ + return pulumi.get(self, "backup_store_id") + + @backup_store_id.setter + def backup_store_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_store_id", value) + + @property + @pulumi.getter(name="basePath") + def base_path(self) -> Optional[pulumi.Input[str]]: + """ + Base path for the repository. + """ + return pulumi.get(self, "base_path") + + @base_path.setter + def base_path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "base_path", value) + + @property + @pulumi.getter(name="gcsBucket") + def gcs_bucket(self) -> Optional[pulumi.Input[str]]: + """ + GCS bucket name. + """ + return pulumi.get(self, "gcs_bucket") + + @gcs_bucket.setter + def gcs_bucket(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "gcs_bucket", value) + + @property + @pulumi.getter(name="gcsEndpoint") + def gcs_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + GCS endpoint. + """ + return pulumi.get(self, "gcs_endpoint") + + @gcs_endpoint.setter + def gcs_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "gcs_endpoint", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier for the backup config. + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter(name="retentionFull") + def retention_full(self) -> Optional[pulumi.Input[int]]: + """ + Retention period for full backups. + """ + return pulumi.get(self, "retention_full") + + @retention_full.setter + def retention_full(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "retention_full", value) + + @property + @pulumi.getter(name="retentionFullType") + def retention_full_type(self) -> Optional[pulumi.Input[str]]: + """ + Type of retention for full backups. + """ + return pulumi.get(self, "retention_full_type") + + @retention_full_type.setter + def retention_full_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "retention_full_type", value) + + @property + @pulumi.getter(name="s3Bucket") + def s3_bucket(self) -> Optional[pulumi.Input[str]]: + """ + S3 bucket name. + """ + return pulumi.get(self, "s3_bucket") + + @s3_bucket.setter + def s3_bucket(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_bucket", value) + + @property + @pulumi.getter(name="s3Endpoint") + def s3_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + S3 endpoint. + """ + return pulumi.get(self, "s3_endpoint") + + @s3_endpoint.setter + def s3_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_endpoint", value) + + @property + @pulumi.getter(name="s3Region") + def s3_region(self) -> Optional[pulumi.Input[str]]: + """ + S3 region. + """ + return pulumi.get(self, "s3_region") + + @s3_region.setter + def s3_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_region", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + Type of the repository. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class DatabaseBackupsConfigScheduleArgs: + def __init__(__self__, *, + cron_expression: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] cron_expression: Cron expression for the schedule. + :param pulumi.Input[str] id: Unique identifier for the backup config. + :param pulumi.Input[str] type: Type of the repository. + """ + if cron_expression is not None: + pulumi.set(__self__, "cron_expression", cron_expression) + if id is not None: + pulumi.set(__self__, "id", id) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="cronExpression") + def cron_expression(self) -> Optional[pulumi.Input[str]]: + """ + Cron expression for the schedule. + """ + return pulumi.get(self, "cron_expression") + + @cron_expression.setter + def cron_expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cron_expression", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier for the backup config. + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + Type of the repository. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class DatabaseComponentArgs: + def __init__(__self__, *, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + release_date: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None): + if id is not None: + pulumi.set(__self__, "id", id) + if name is not None: + pulumi.set(__self__, "name", name) + if release_date is not None: + pulumi.set(__self__, "release_date", release_date) + if status is not None: + pulumi.set(__self__, "status", status) + if version is not None: + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="releaseDate") + def release_date(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "release_date") + + @release_date.setter + def release_date(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "release_date", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + +@pulumi.input_type +class DatabaseExtensionsArgs: + def __init__(__self__, *, + auto_manage: Optional[pulumi.Input[bool]] = None, + availables: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + requesteds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + if auto_manage is not None: + pulumi.set(__self__, "auto_manage", auto_manage) + if availables is not None: + pulumi.set(__self__, "availables", availables) + if requesteds is not None: + pulumi.set(__self__, "requesteds", requesteds) + + @property + @pulumi.getter(name="autoManage") + def auto_manage(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "auto_manage") + + @auto_manage.setter + def auto_manage(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "auto_manage", value) + + @property + @pulumi.getter + def availables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "availables") + + @availables.setter + def availables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "availables", value) + + @property + @pulumi.getter + def requesteds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "requesteds") + + @requesteds.setter + def requesteds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "requesteds", value) + + +@pulumi.input_type +class DatabaseNodesArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + connection: Optional[pulumi.Input['DatabaseNodesConnectionArgs']] = None, + extensions: Optional[pulumi.Input['DatabaseNodesExtensionsArgs']] = None, + location: Optional[pulumi.Input['DatabaseNodesLocationArgs']] = None, + region: Optional[pulumi.Input['DatabaseNodesRegionArgs']] = None): + pulumi.set(__self__, "name", name) + if connection is not None: + pulumi.set(__self__, "connection", connection) + if extensions is not None: + pulumi.set(__self__, "extensions", extensions) + if location is not None: + pulumi.set(__self__, "location", location) + if region is not None: + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def connection(self) -> Optional[pulumi.Input['DatabaseNodesConnectionArgs']]: + return pulumi.get(self, "connection") + + @connection.setter + def connection(self, value: Optional[pulumi.Input['DatabaseNodesConnectionArgs']]): + pulumi.set(self, "connection", value) + + @property + @pulumi.getter + def extensions(self) -> Optional[pulumi.Input['DatabaseNodesExtensionsArgs']]: + return pulumi.get(self, "extensions") + + @extensions.setter + def extensions(self, value: Optional[pulumi.Input['DatabaseNodesExtensionsArgs']]): + pulumi.set(self, "extensions", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input['DatabaseNodesLocationArgs']]: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input['DatabaseNodesLocationArgs']]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input['DatabaseNodesRegionArgs']]: + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input['DatabaseNodesRegionArgs']]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class DatabaseNodesConnectionArgs: + def __init__(__self__, *, + database: Optional[pulumi.Input[str]] = None, + external_ip_address: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + internal_host: Optional[pulumi.Input[str]] = None, + internal_ip_address: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + username: Optional[pulumi.Input[str]] = None): + if database is not None: + pulumi.set(__self__, "database", database) + if external_ip_address is not None: + pulumi.set(__self__, "external_ip_address", external_ip_address) + if host is not None: + pulumi.set(__self__, "host", host) + if internal_host is not None: + pulumi.set(__self__, "internal_host", internal_host) + if internal_ip_address is not None: + pulumi.set(__self__, "internal_ip_address", internal_ip_address) + if password is not None: + pulumi.set(__self__, "password", password) + if port is not None: + pulumi.set(__self__, "port", port) + if username is not None: + pulumi.set(__self__, "username", username) + + @property + @pulumi.getter + def database(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "database") + + @database.setter + def database(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "database", value) + + @property + @pulumi.getter(name="externalIpAddress") + def external_ip_address(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "external_ip_address") + + @external_ip_address.setter + def external_ip_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "external_ip_address", value) + + @property + @pulumi.getter + def host(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "host") + + @host.setter + def host(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "host", value) + + @property + @pulumi.getter(name="internalHost") + def internal_host(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "internal_host") + + @internal_host.setter + def internal_host(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "internal_host", value) + + @property + @pulumi.getter(name="internalIpAddress") + def internal_ip_address(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "internal_ip_address") + + @internal_ip_address.setter + def internal_ip_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "internal_ip_address", value) + + @property + @pulumi.getter + def password(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "password") + + @password.setter + def password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "password", value) + + @property + @pulumi.getter + def port(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "port") + + @port.setter + def port(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "port", value) + + @property + @pulumi.getter + def username(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "username") + + @username.setter + def username(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "username", value) + + +@pulumi.input_type +class DatabaseNodesExtensionsArgs: + def __init__(__self__, *, + errors: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + installeds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + if errors is not None: + pulumi.set(__self__, "errors", errors) + if installeds is not None: + pulumi.set(__self__, "installeds", installeds) + + @property + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "errors") + + @errors.setter + def errors(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "errors", value) + + @property + @pulumi.getter + def installeds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "installeds") + + @installeds.setter + def installeds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "installeds", value) + + +@pulumi.input_type +class DatabaseNodesLocationArgs: + def __init__(__self__, *, + city: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[str]] = None, + country: Optional[pulumi.Input[str]] = None, + latitude: Optional[pulumi.Input[float]] = None, + longitude: Optional[pulumi.Input[float]] = None, + metro_code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + postal_code: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + region_code: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None): + if city is not None: + pulumi.set(__self__, "city", city) + if code is not None: + pulumi.set(__self__, "code", code) + if country is not None: + pulumi.set(__self__, "country", country) + if latitude is not None: + pulumi.set(__self__, "latitude", latitude) + if longitude is not None: + pulumi.set(__self__, "longitude", longitude) + if metro_code is not None: + pulumi.set(__self__, "metro_code", metro_code) + if name is not None: + pulumi.set(__self__, "name", name) + if postal_code is not None: + pulumi.set(__self__, "postal_code", postal_code) + if region is not None: + pulumi.set(__self__, "region", region) + if region_code is not None: + pulumi.set(__self__, "region_code", region_code) + if timezone is not None: + pulumi.set(__self__, "timezone", timezone) + + @property + @pulumi.getter + def city(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "city") + + @city.setter + def city(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "city", value) + + @property + @pulumi.getter + def code(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "code") + + @code.setter + def code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "code", value) + + @property + @pulumi.getter + def country(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "country") + + @country.setter + def country(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "country", value) + + @property + @pulumi.getter + def latitude(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "latitude") + + @latitude.setter + def latitude(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "latitude", value) + + @property + @pulumi.getter + def longitude(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "longitude") + + @longitude.setter + def longitude(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "longitude", value) + + @property + @pulumi.getter(name="metroCode") + def metro_code(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "metro_code") + + @metro_code.setter + def metro_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metro_code", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="postalCode") + def postal_code(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "postal_code") + + @postal_code.setter + def postal_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "postal_code", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="regionCode") + def region_code(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "region_code") + + @region_code.setter + def region_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region_code", value) + + @property + @pulumi.getter + def timezone(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "timezone") + + @timezone.setter + def timezone(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "timezone", value) + + +@pulumi.input_type +class DatabaseNodesRegionArgs: + def __init__(__self__, *, + active: Optional[pulumi.Input[bool]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cloud: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent: Optional[pulumi.Input[str]] = None): + if active is not None: + pulumi.set(__self__, "active", active) + if availability_zones is not None: + pulumi.set(__self__, "availability_zones", availability_zones) + if cloud is not None: + pulumi.set(__self__, "cloud", cloud) + if code is not None: + pulumi.set(__self__, "code", code) + if name is not None: + pulumi.set(__self__, "name", name) + if parent is not None: + pulumi.set(__self__, "parent", parent) + + @property + @pulumi.getter + def active(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "active") + + @active.setter + def active(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "active", value) + + @property + @pulumi.getter(name="availabilityZones") + def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "availability_zones") + + @availability_zones.setter + def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "availability_zones", value) + + @property + @pulumi.getter + def cloud(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cloud") + + @cloud.setter + def cloud(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloud", value) + + @property + @pulumi.getter + def code(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "code") + + @code.setter + def code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "code", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def parent(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "parent") + + @parent.setter + def parent(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "parent", value) + + +@pulumi.input_type +class DatabaseRoleArgs: + def __init__(__self__, *, + bypass_rls: Optional[pulumi.Input[bool]] = None, + connection_limit: Optional[pulumi.Input[int]] = None, + create_db: Optional[pulumi.Input[bool]] = None, + create_role: Optional[pulumi.Input[bool]] = None, + inherit: Optional[pulumi.Input[bool]] = None, + login: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + replication: Optional[pulumi.Input[bool]] = None, + superuser: Optional[pulumi.Input[bool]] = None): + if bypass_rls is not None: + pulumi.set(__self__, "bypass_rls", bypass_rls) + if connection_limit is not None: + pulumi.set(__self__, "connection_limit", connection_limit) + if create_db is not None: + pulumi.set(__self__, "create_db", create_db) + if create_role is not None: + pulumi.set(__self__, "create_role", create_role) + if inherit is not None: + pulumi.set(__self__, "inherit", inherit) + if login is not None: + pulumi.set(__self__, "login", login) + if name is not None: + pulumi.set(__self__, "name", name) + if replication is not None: + pulumi.set(__self__, "replication", replication) + if superuser is not None: + pulumi.set(__self__, "superuser", superuser) + + @property + @pulumi.getter(name="bypassRls") + def bypass_rls(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "bypass_rls") + + @bypass_rls.setter + def bypass_rls(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "bypass_rls", value) + + @property + @pulumi.getter(name="connectionLimit") + def connection_limit(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "connection_limit") + + @connection_limit.setter + def connection_limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "connection_limit", value) + + @property + @pulumi.getter(name="createDb") + def create_db(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "create_db") + + @create_db.setter + def create_db(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "create_db", value) + + @property + @pulumi.getter(name="createRole") + def create_role(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "create_role") + + @create_role.setter + def create_role(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "create_role", value) + + @property + @pulumi.getter + def inherit(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "inherit") + + @inherit.setter + def inherit(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "inherit", value) + + @property + @pulumi.getter + def login(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "login") + + @login.setter + def login(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "login", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def replication(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "replication") + + @replication.setter + def replication(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "replication", value) + + @property + @pulumi.getter + def superuser(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "superuser") + + @superuser.setter + def superuser(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "superuser", value) diff --git a/sdk/python/pgEdge_pulumi_pgedge/_utilities.py b/sdk/python/pgEdge_pulumi_pgedge/_utilities.py index 8219769..f46ae85 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/_utilities.py +++ b/sdk/python/pgEdge_pulumi_pgedge/_utilities.py @@ -292,4 +292,4 @@ async def _await_output(o: pulumi.Output[typing.Any]) -> typing.Tuple[object, bo ) def get_plugin_download_url(): - return None + return "github://api.github.com/pgEdge/pulumi-pgedge" diff --git a/sdk/python/pgEdge_pulumi_pgedge/backup_store.py b/sdk/python/pgEdge_pulumi_pgedge/backup_store.py new file mode 100644 index 0000000..cb2f3b4 --- /dev/null +++ b/sdk/python/pgEdge_pulumi_pgedge/backup_store.py @@ -0,0 +1,320 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['BackupStoreArgs', 'BackupStore'] + +@pulumi.input_type +class BackupStoreArgs: + def __init__(__self__, *, + cloud_account_id: pulumi.Input[str], + region: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a BackupStore resource. + """ + pulumi.set(__self__, "cloud_account_id", cloud_account_id) + pulumi.set(__self__, "region", region) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="cloudAccountId") + def cloud_account_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "cloud_account_id") + + @cloud_account_id.setter + def cloud_account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "cloud_account_id", value) + + @property + @pulumi.getter + def region(self) -> pulumi.Input[str]: + return pulumi.get(self, "region") + + @region.setter + def region(self, value: pulumi.Input[str]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _BackupStoreState: + def __init__(__self__, *, + cloud_account_id: Optional[pulumi.Input[str]] = None, + cloud_account_type: Optional[pulumi.Input[str]] = None, + cluster_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + region: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering BackupStore resources. + """ + if cloud_account_id is not None: + pulumi.set(__self__, "cloud_account_id", cloud_account_id) + if cloud_account_type is not None: + pulumi.set(__self__, "cloud_account_type", cloud_account_type) + if cluster_ids is not None: + pulumi.set(__self__, "cluster_ids", cluster_ids) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if name is not None: + pulumi.set(__self__, "name", name) + if properties is not None: + pulumi.set(__self__, "properties", properties) + if region is not None: + pulumi.set(__self__, "region", region) + if status is not None: + pulumi.set(__self__, "status", status) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter(name="cloudAccountId") + def cloud_account_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cloud_account_id") + + @cloud_account_id.setter + def cloud_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloud_account_id", value) + + @property + @pulumi.getter(name="cloudAccountType") + def cloud_account_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "cloud_account_type") + + @cloud_account_type.setter + def cloud_account_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloud_account_type", value) + + @property + @pulumi.getter(name="clusterIds") + def cluster_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "cluster_ids") + + @cluster_ids.setter + def cluster_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "cluster_ids", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def properties(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "properties") + + @properties.setter + def properties(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "properties", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + +class BackupStore(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cloud_account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a BackupStore resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: BackupStoreArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a BackupStore resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param BackupStoreArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(BackupStoreArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cloud_account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = BackupStoreArgs.__new__(BackupStoreArgs) + + if cloud_account_id is None and not opts.urn: + raise TypeError("Missing required property 'cloud_account_id'") + __props__.__dict__["cloud_account_id"] = cloud_account_id + __props__.__dict__["name"] = name + if region is None and not opts.urn: + raise TypeError("Missing required property 'region'") + __props__.__dict__["region"] = region + __props__.__dict__["cloud_account_type"] = None + __props__.__dict__["cluster_ids"] = None + __props__.__dict__["created_at"] = None + __props__.__dict__["properties"] = None + __props__.__dict__["status"] = None + __props__.__dict__["updated_at"] = None + super(BackupStore, __self__).__init__( + 'pgedge:index/backupStore:BackupStore', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + cloud_account_id: Optional[pulumi.Input[str]] = None, + cloud_account_type: Optional[pulumi.Input[str]] = None, + cluster_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + region: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None) -> 'BackupStore': + """ + Get an existing BackupStore resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _BackupStoreState.__new__(_BackupStoreState) + + __props__.__dict__["cloud_account_id"] = cloud_account_id + __props__.__dict__["cloud_account_type"] = cloud_account_type + __props__.__dict__["cluster_ids"] = cluster_ids + __props__.__dict__["created_at"] = created_at + __props__.__dict__["name"] = name + __props__.__dict__["properties"] = properties + __props__.__dict__["region"] = region + __props__.__dict__["status"] = status + __props__.__dict__["updated_at"] = updated_at + return BackupStore(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="cloudAccountId") + def cloud_account_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "cloud_account_id") + + @property + @pulumi.getter(name="cloudAccountType") + def cloud_account_type(self) -> pulumi.Output[str]: + return pulumi.get(self, "cloud_account_type") + + @property + @pulumi.getter(name="clusterIds") + def cluster_ids(self) -> pulumi.Output[Sequence[str]]: + return pulumi.get(self, "cluster_ids") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def properties(self) -> pulumi.Output[Mapping[str, str]]: + return pulumi.get(self, "properties") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + return pulumi.get(self, "region") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + return pulumi.get(self, "updated_at") + diff --git a/sdk/python/pgEdge_pulumi_pgedge/cloud_account.py b/sdk/python/pgEdge_pulumi_pgedge/cloud_account.py new file mode 100644 index 0000000..8869f53 --- /dev/null +++ b/sdk/python/pgEdge_pulumi_pgedge/cloud_account.py @@ -0,0 +1,274 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['CloudAccountArgs', 'CloudAccount'] + +@pulumi.input_type +class CloudAccountArgs: + def __init__(__self__, *, + credentials: pulumi.Input[Mapping[str, pulumi.Input[str]]], + type: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a CloudAccount resource. + """ + pulumi.set(__self__, "credentials", credentials) + pulumi.set(__self__, "type", type) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def credentials(self) -> pulumi.Input[Mapping[str, pulumi.Input[str]]]: + return pulumi.get(self, "credentials") + + @credentials.setter + def credentials(self, value: pulumi.Input[Mapping[str, pulumi.Input[str]]]): + pulumi.set(self, "credentials", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _CloudAccountState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering CloudAccount resources. + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if credentials is not None: + pulumi.set(__self__, "credentials", credentials) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if type is not None: + pulumi.set(__self__, "type", type) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def credentials(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "credentials") + + @credentials.setter + def credentials(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "credentials", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + +class CloudAccount(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + credentials: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a CloudAccount resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CloudAccountArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a CloudAccount resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param CloudAccountArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(CloudAccountArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + credentials: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = CloudAccountArgs.__new__(CloudAccountArgs) + + if credentials is None and not opts.urn: + raise TypeError("Missing required property 'credentials'") + __props__.__dict__["credentials"] = credentials + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + if type is None and not opts.urn: + raise TypeError("Missing required property 'type'") + __props__.__dict__["type"] = type + __props__.__dict__["created_at"] = None + __props__.__dict__["updated_at"] = None + super(CloudAccount, __self__).__init__( + 'pgedge:index/cloudAccount:CloudAccount', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None) -> 'CloudAccount': + """ + Get an existing CloudAccount resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CloudAccountState.__new__(_CloudAccountState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["credentials"] = credentials + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + __props__.__dict__["type"] = type + __props__.__dict__["updated_at"] = updated_at + return CloudAccount(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def credentials(self) -> pulumi.Output[Mapping[str, str]]: + return pulumi.get(self, "credentials") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def type(self) -> pulumi.Output[str]: + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + return pulumi.get(self, "updated_at") + diff --git a/sdk/python/pgEdge_pulumi_pgedge/cluster.py b/sdk/python/pgEdge_pulumi_pgedge/cluster.py index fea7c87..68edbb0 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/cluster.py +++ b/sdk/python/pgEdge_pulumi_pgedge/cluster.py @@ -17,47 +17,79 @@ class ClusterArgs: def __init__(__self__, *, cloud_account_id: pulumi.Input[str], + networks: pulumi.Input[Sequence[pulumi.Input['ClusterNetworkArgs']]], + node_location: pulumi.Input[str], + nodes: pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]], regions: pulumi.Input[Sequence[pulumi.Input[str]]], + backup_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + capacity: Optional[pulumi.Input[int]] = None, firewall_rules: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterFirewallRuleArgs']]]] = None, name: Optional[pulumi.Input[str]] = None, - networks: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNetworkArgs']]]] = None, - node_location: Optional[pulumi.Input[str]] = None, - nodes: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, ssh_key_id: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Cluster resource. - :param pulumi.Input[str] cloud_account_id: ID of the target cloud account - :param pulumi.Input[str] name: Name of the network - :param pulumi.Input[str] node_location: Network location for nodes (public or private) - :param pulumi.Input[str] ssh_key_id: ID of the SSH key to add to the cluster nodes + :param pulumi.Input[str] node_location: Node location of the cluster. Must be either 'public' or 'private'. + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_store_ids: List of backup store IDs to associate with the cluster + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: A map of tags to assign to the cluster """ pulumi.set(__self__, "cloud_account_id", cloud_account_id) + pulumi.set(__self__, "networks", networks) + pulumi.set(__self__, "node_location", node_location) + pulumi.set(__self__, "nodes", nodes) pulumi.set(__self__, "regions", regions) + if backup_store_ids is not None: + pulumi.set(__self__, "backup_store_ids", backup_store_ids) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) if firewall_rules is not None: pulumi.set(__self__, "firewall_rules", firewall_rules) if name is not None: pulumi.set(__self__, "name", name) - if networks is not None: - pulumi.set(__self__, "networks", networks) - if node_location is not None: - pulumi.set(__self__, "node_location", node_location) - if nodes is not None: - pulumi.set(__self__, "nodes", nodes) + if resource_tags is not None: + pulumi.set(__self__, "resource_tags", resource_tags) if ssh_key_id is not None: pulumi.set(__self__, "ssh_key_id", ssh_key_id) @property @pulumi.getter(name="cloudAccountId") def cloud_account_id(self) -> pulumi.Input[str]: - """ - ID of the target cloud account - """ return pulumi.get(self, "cloud_account_id") @cloud_account_id.setter def cloud_account_id(self, value: pulumi.Input[str]): pulumi.set(self, "cloud_account_id", value) + @property + @pulumi.getter + def networks(self) -> pulumi.Input[Sequence[pulumi.Input['ClusterNetworkArgs']]]: + return pulumi.get(self, "networks") + + @networks.setter + def networks(self, value: pulumi.Input[Sequence[pulumi.Input['ClusterNetworkArgs']]]): + pulumi.set(self, "networks", value) + + @property + @pulumi.getter(name="nodeLocation") + def node_location(self) -> pulumi.Input[str]: + """ + Node location of the cluster. Must be either 'public' or 'private'. + """ + return pulumi.get(self, "node_location") + + @node_location.setter + def node_location(self, value: pulumi.Input[str]): + pulumi.set(self, "node_location", value) + + @property + @pulumi.getter + def nodes(self) -> pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]]: + return pulumi.get(self, "nodes") + + @nodes.setter + def nodes(self, value: pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]]): + pulumi.set(self, "nodes", value) + @property @pulumi.getter def regions(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: @@ -67,6 +99,27 @@ def regions(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: def regions(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): pulumi.set(self, "regions", value) + @property + @pulumi.getter(name="backupStoreIds") + def backup_store_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of backup store IDs to associate with the cluster + """ + return pulumi.get(self, "backup_store_ids") + + @backup_store_ids.setter + def backup_store_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "backup_store_ids", value) + + @property + @pulumi.getter + def capacity(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "capacity") + + @capacity.setter + def capacity(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "capacity", value) + @property @pulumi.getter(name="firewallRules") def firewall_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterFirewallRuleArgs']]]]: @@ -79,9 +132,6 @@ def firewall_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Clu @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: - """ - Name of the network - """ return pulumi.get(self, "name") @name.setter @@ -89,41 +139,20 @@ def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) @property - @pulumi.getter - def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNetworkArgs']]]]: - return pulumi.get(self, "networks") - - @networks.setter - def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNetworkArgs']]]]): - pulumi.set(self, "networks", value) - - @property - @pulumi.getter(name="nodeLocation") - def node_location(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - Network location for nodes (public or private) + A map of tags to assign to the cluster """ - return pulumi.get(self, "node_location") + return pulumi.get(self, "resource_tags") - @node_location.setter - def node_location(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "node_location", value) - - @property - @pulumi.getter - def nodes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]]]: - return pulumi.get(self, "nodes") - - @nodes.setter - def nodes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]]]): - pulumi.set(self, "nodes", value) + @resource_tags.setter + def resource_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "resource_tags", value) @property @pulumi.getter(name="sshKeyId") def ssh_key_id(self) -> Optional[pulumi.Input[str]]: - """ - ID of the SSH key to add to the cluster nodes - """ return pulumi.get(self, "ssh_key_id") @ssh_key_id.setter @@ -134,6 +163,8 @@ def ssh_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class _ClusterState: def __init__(__self__, *, + backup_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + capacity: Optional[pulumi.Input[int]] = None, cloud_account_id: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, firewall_rules: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterFirewallRuleArgs']]]] = None, @@ -142,17 +173,19 @@ def __init__(__self__, *, node_location: Optional[pulumi.Input[str]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]]] = None, regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, ssh_key_id: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Cluster resources. - :param pulumi.Input[str] cloud_account_id: ID of the target cloud account - :param pulumi.Input[str] created_at: Creation time of the cluster - :param pulumi.Input[str] name: Name of the network - :param pulumi.Input[str] node_location: Network location for nodes (public or private) - :param pulumi.Input[str] ssh_key_id: ID of the SSH key to add to the cluster nodes - :param pulumi.Input[str] status: Status of the cluster - """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_store_ids: List of backup store IDs to associate with the cluster + :param pulumi.Input[str] node_location: Node location of the cluster. Must be either 'public' or 'private'. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: A map of tags to assign to the cluster + """ + if backup_store_ids is not None: + pulumi.set(__self__, "backup_store_ids", backup_store_ids) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) if cloud_account_id is not None: pulumi.set(__self__, "cloud_account_id", cloud_account_id) if created_at is not None: @@ -169,17 +202,37 @@ def __init__(__self__, *, pulumi.set(__self__, "nodes", nodes) if regions is not None: pulumi.set(__self__, "regions", regions) + if resource_tags is not None: + pulumi.set(__self__, "resource_tags", resource_tags) if ssh_key_id is not None: pulumi.set(__self__, "ssh_key_id", ssh_key_id) if status is not None: pulumi.set(__self__, "status", status) @property - @pulumi.getter(name="cloudAccountId") - def cloud_account_id(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="backupStoreIds") + def backup_store_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - ID of the target cloud account + List of backup store IDs to associate with the cluster """ + return pulumi.get(self, "backup_store_ids") + + @backup_store_ids.setter + def backup_store_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "backup_store_ids", value) + + @property + @pulumi.getter + def capacity(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "capacity") + + @capacity.setter + def capacity(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "capacity", value) + + @property + @pulumi.getter(name="cloudAccountId") + def cloud_account_id(self) -> Optional[pulumi.Input[str]]: return pulumi.get(self, "cloud_account_id") @cloud_account_id.setter @@ -189,9 +242,6 @@ def cloud_account_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="createdAt") def created_at(self) -> Optional[pulumi.Input[str]]: - """ - Creation time of the cluster - """ return pulumi.get(self, "created_at") @created_at.setter @@ -210,9 +260,6 @@ def firewall_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Clu @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: - """ - Name of the network - """ return pulumi.get(self, "name") @name.setter @@ -232,7 +279,7 @@ def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNe @pulumi.getter(name="nodeLocation") def node_location(self) -> Optional[pulumi.Input[str]]: """ - Network location for nodes (public or private) + Node location of the cluster. Must be either 'public' or 'private'. """ return pulumi.get(self, "node_location") @@ -259,11 +306,20 @@ def regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "regions", value) @property - @pulumi.getter(name="sshKeyId") - def ssh_key_id(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - ID of the SSH key to add to the cluster nodes + A map of tags to assign to the cluster """ + return pulumi.get(self, "resource_tags") + + @resource_tags.setter + def resource_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "resource_tags", value) + + @property + @pulumi.getter(name="sshKeyId") + def ssh_key_id(self) -> Optional[pulumi.Input[str]]: return pulumi.get(self, "ssh_key_id") @ssh_key_id.setter @@ -273,9 +329,6 @@ def ssh_key_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def status(self) -> Optional[pulumi.Input[str]]: - """ - Status of the cluster - """ return pulumi.get(self, "status") @status.setter @@ -288,6 +341,8 @@ class Cluster(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + backup_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + capacity: Optional[pulumi.Input[int]] = None, cloud_account_id: Optional[pulumi.Input[str]] = None, firewall_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ClusterFirewallRuleArgs']]]]] = None, name: Optional[pulumi.Input[str]] = None, @@ -295,17 +350,16 @@ def __init__(__self__, node_location: Optional[pulumi.Input[str]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ClusterNodeArgs']]]]] = None, regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, ssh_key_id: Optional[pulumi.Input[str]] = None, __props__=None): """ - Interface with the pgEdge service API for clusters. - + Create a Cluster resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] cloud_account_id: ID of the target cloud account - :param pulumi.Input[str] name: Name of the network - :param pulumi.Input[str] node_location: Network location for nodes (public or private) - :param pulumi.Input[str] ssh_key_id: ID of the SSH key to add to the cluster nodes + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_store_ids: List of backup store IDs to associate with the cluster + :param pulumi.Input[str] node_location: Node location of the cluster. Must be either 'public' or 'private'. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: A map of tags to assign to the cluster """ ... @overload @@ -314,8 +368,7 @@ def __init__(__self__, args: ClusterArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Interface with the pgEdge service API for clusters. - + Create a Cluster resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param ClusterArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. @@ -331,6 +384,8 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + backup_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + capacity: Optional[pulumi.Input[int]] = None, cloud_account_id: Optional[pulumi.Input[str]] = None, firewall_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ClusterFirewallRuleArgs']]]]] = None, name: Optional[pulumi.Input[str]] = None, @@ -338,6 +393,7 @@ def _internal_init(__self__, node_location: Optional[pulumi.Input[str]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ClusterNodeArgs']]]]] = None, regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, ssh_key_id: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -348,17 +404,26 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ClusterArgs.__new__(ClusterArgs) + __props__.__dict__["backup_store_ids"] = backup_store_ids + __props__.__dict__["capacity"] = capacity if cloud_account_id is None and not opts.urn: raise TypeError("Missing required property 'cloud_account_id'") __props__.__dict__["cloud_account_id"] = cloud_account_id __props__.__dict__["firewall_rules"] = firewall_rules __props__.__dict__["name"] = name + if networks is None and not opts.urn: + raise TypeError("Missing required property 'networks'") __props__.__dict__["networks"] = networks + if node_location is None and not opts.urn: + raise TypeError("Missing required property 'node_location'") __props__.__dict__["node_location"] = node_location + if nodes is None and not opts.urn: + raise TypeError("Missing required property 'nodes'") __props__.__dict__["nodes"] = nodes if regions is None and not opts.urn: raise TypeError("Missing required property 'regions'") __props__.__dict__["regions"] = regions + __props__.__dict__["resource_tags"] = resource_tags __props__.__dict__["ssh_key_id"] = ssh_key_id __props__.__dict__["created_at"] = None __props__.__dict__["status"] = None @@ -372,6 +437,8 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + backup_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + capacity: Optional[pulumi.Input[int]] = None, cloud_account_id: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, firewall_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ClusterFirewallRuleArgs']]]]] = None, @@ -380,6 +447,7 @@ def get(resource_name: str, node_location: Optional[pulumi.Input[str]] = None, nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ClusterNodeArgs']]]]] = None, regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, ssh_key_id: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None) -> 'Cluster': """ @@ -389,17 +457,16 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] cloud_account_id: ID of the target cloud account - :param pulumi.Input[str] created_at: Creation time of the cluster - :param pulumi.Input[str] name: Name of the network - :param pulumi.Input[str] node_location: Network location for nodes (public or private) - :param pulumi.Input[str] ssh_key_id: ID of the SSH key to add to the cluster nodes - :param pulumi.Input[str] status: Status of the cluster + :param pulumi.Input[Sequence[pulumi.Input[str]]] backup_store_ids: List of backup store IDs to associate with the cluster + :param pulumi.Input[str] node_location: Node location of the cluster. Must be either 'public' or 'private'. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: A map of tags to assign to the cluster """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) __props__ = _ClusterState.__new__(_ClusterState) + __props__.__dict__["backup_store_ids"] = backup_store_ids + __props__.__dict__["capacity"] = capacity __props__.__dict__["cloud_account_id"] = cloud_account_id __props__.__dict__["created_at"] = created_at __props__.__dict__["firewall_rules"] = firewall_rules @@ -408,24 +475,32 @@ def get(resource_name: str, __props__.__dict__["node_location"] = node_location __props__.__dict__["nodes"] = nodes __props__.__dict__["regions"] = regions + __props__.__dict__["resource_tags"] = resource_tags __props__.__dict__["ssh_key_id"] = ssh_key_id __props__.__dict__["status"] = status return Cluster(resource_name, opts=opts, __props__=__props__) @property - @pulumi.getter(name="cloudAccountId") - def cloud_account_id(self) -> pulumi.Output[str]: + @pulumi.getter(name="backupStoreIds") + def backup_store_ids(self) -> pulumi.Output[Sequence[str]]: """ - ID of the target cloud account + List of backup store IDs to associate with the cluster """ + return pulumi.get(self, "backup_store_ids") + + @property + @pulumi.getter + def capacity(self) -> pulumi.Output[int]: + return pulumi.get(self, "capacity") + + @property + @pulumi.getter(name="cloudAccountId") + def cloud_account_id(self) -> pulumi.Output[str]: return pulumi.get(self, "cloud_account_id") @property @pulumi.getter(name="createdAt") def created_at(self) -> pulumi.Output[str]: - """ - Creation time of the cluster - """ return pulumi.get(self, "created_at") @property @@ -436,9 +511,6 @@ def firewall_rules(self) -> pulumi.Output[Optional[Sequence['outputs.ClusterFire @property @pulumi.getter def name(self) -> pulumi.Output[str]: - """ - Name of the network - """ return pulumi.get(self, "name") @property @@ -450,7 +522,7 @@ def networks(self) -> pulumi.Output[Sequence['outputs.ClusterNetwork']]: @pulumi.getter(name="nodeLocation") def node_location(self) -> pulumi.Output[str]: """ - Network location for nodes (public or private) + Node location of the cluster. Must be either 'public' or 'private'. """ return pulumi.get(self, "node_location") @@ -465,18 +537,20 @@ def regions(self) -> pulumi.Output[Sequence[str]]: return pulumi.get(self, "regions") @property - @pulumi.getter(name="sshKeyId") - def ssh_key_id(self) -> pulumi.Output[str]: + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> pulumi.Output[Mapping[str, str]]: """ - ID of the SSH key to add to the cluster nodes + A map of tags to assign to the cluster """ + return pulumi.get(self, "resource_tags") + + @property + @pulumi.getter(name="sshKeyId") + def ssh_key_id(self) -> pulumi.Output[Optional[str]]: return pulumi.get(self, "ssh_key_id") @property @pulumi.getter def status(self) -> pulumi.Output[str]: - """ - Status of the cluster - """ return pulumi.get(self, "status") diff --git a/sdk/python/pgEdge_pulumi_pgedge/config/vars.py b/sdk/python/pgEdge_pulumi_pgedge/config/vars.py index c20fb74..3b0281a 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/config/vars.py +++ b/sdk/python/pgEdge_pulumi_pgedge/config/vars.py @@ -20,5 +20,5 @@ def base_url(self) -> Optional[str]: """ Base Url to use when connecting to the PgEdge service. """ - return __config__.get('baseUrl') + return __config__.get('baseUrl') or _utilities.get_env('PGEDGE_BASE_URL') diff --git a/sdk/python/pgEdge_pulumi_pgedge/database.py b/sdk/python/pgEdge_pulumi_pgedge/database.py index 1a3afc9..e9bfc82 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/database.py +++ b/sdk/python/pgEdge_pulumi_pgedge/database.py @@ -8,6 +8,8 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from . import _utilities +from . import outputs +from ._inputs import * __all__ = ['DatabaseArgs', 'Database'] @@ -15,29 +17,44 @@ class DatabaseArgs: def __init__(__self__, *, cluster_id: pulumi.Input[str], + nodes: pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]], + backups: Optional[pulumi.Input['DatabaseBackupsArgs']] = None, config_version: Optional[pulumi.Input[str]] = None, + extensions: Optional[pulumi.Input['DatabaseExtensionsArgs']] = None, name: Optional[pulumi.Input[str]] = None, - options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]]] = None): """ The set of arguments for constructing a Database resource. - :param pulumi.Input[str] cluster_id: ID of the cluster to place the database on - :param pulumi.Input[str] config_version: Config version of the database - :param pulumi.Input[str] name: Name of the database - :param pulumi.Input[Sequence[pulumi.Input[str]]] options: Options for creating the database + :param pulumi.Input[str] cluster_id: The ID of the cluster this database belongs to. + :param pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]] nodes: Map of nodes in the database. + :param pulumi.Input['DatabaseBackupsArgs'] backups: Backup configuration for the database. + :param pulumi.Input[str] config_version: The configuration version of the database. + :param pulumi.Input['DatabaseExtensionsArgs'] extensions: Extensions configuration for the database. + :param pulumi.Input[str] name: The name of the database. + :param pulumi.Input[Sequence[pulumi.Input[str]]] options: A list of options for the database. + :param pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]] roles: List of roles in the database. """ pulumi.set(__self__, "cluster_id", cluster_id) + pulumi.set(__self__, "nodes", nodes) + if backups is not None: + pulumi.set(__self__, "backups", backups) if config_version is not None: pulumi.set(__self__, "config_version", config_version) + if extensions is not None: + pulumi.set(__self__, "extensions", extensions) if name is not None: pulumi.set(__self__, "name", name) if options is not None: pulumi.set(__self__, "options", options) + if roles is not None: + pulumi.set(__self__, "roles", roles) @property @pulumi.getter(name="clusterId") def cluster_id(self) -> pulumi.Input[str]: """ - ID of the cluster to place the database on + The ID of the cluster this database belongs to. """ return pulumi.get(self, "cluster_id") @@ -45,11 +62,35 @@ def cluster_id(self) -> pulumi.Input[str]: def cluster_id(self, value: pulumi.Input[str]): pulumi.set(self, "cluster_id", value) + @property + @pulumi.getter + def nodes(self) -> pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]]: + """ + Map of nodes in the database. + """ + return pulumi.get(self, "nodes") + + @nodes.setter + def nodes(self, value: pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]]): + pulumi.set(self, "nodes", value) + + @property + @pulumi.getter + def backups(self) -> Optional[pulumi.Input['DatabaseBackupsArgs']]: + """ + Backup configuration for the database. + """ + return pulumi.get(self, "backups") + + @backups.setter + def backups(self, value: Optional[pulumi.Input['DatabaseBackupsArgs']]): + pulumi.set(self, "backups", value) + @property @pulumi.getter(name="configVersion") def config_version(self) -> Optional[pulumi.Input[str]]: """ - Config version of the database + The configuration version of the database. """ return pulumi.get(self, "config_version") @@ -57,11 +98,23 @@ def config_version(self) -> Optional[pulumi.Input[str]]: def config_version(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "config_version", value) + @property + @pulumi.getter + def extensions(self) -> Optional[pulumi.Input['DatabaseExtensionsArgs']]: + """ + Extensions configuration for the database. + """ + return pulumi.get(self, "extensions") + + @extensions.setter + def extensions(self, value: Optional[pulumi.Input['DatabaseExtensionsArgs']]): + pulumi.set(self, "extensions", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the database + The name of the database. """ return pulumi.get(self, "name") @@ -73,7 +126,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Options for creating the database + A list of options for the database. """ return pulumi.get(self, "options") @@ -81,59 +134,95 @@ def options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: def options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "options", value) + @property + @pulumi.getter + def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]]]: + """ + List of roles in the database. + """ + return pulumi.get(self, "roles") + + @roles.setter + def roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]]]): + pulumi.set(self, "roles", value) + @pulumi.input_type class _DatabaseState: def __init__(__self__, *, + backups: Optional[pulumi.Input['DatabaseBackupsArgs']] = None, cluster_id: Optional[pulumi.Input[str]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseComponentArgs']]]] = None, config_version: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, domain: Optional[pulumi.Input[str]] = None, + extensions: Optional[pulumi.Input['DatabaseExtensionsArgs']] = None, name: Optional[pulumi.Input[str]] = None, + nodes: Optional[pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]]] = None, options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, pg_version: Optional[pulumi.Input[str]] = None, - status: Optional[pulumi.Input[str]] = None, - storage_used: Optional[pulumi.Input[int]] = None, - updated_at: Optional[pulumi.Input[str]] = None): + roles: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Database resources. - :param pulumi.Input[str] cluster_id: ID of the cluster to place the database on - :param pulumi.Input[str] config_version: Config version of the database - :param pulumi.Input[str] created_at: Created at of the database - :param pulumi.Input[str] domain: Domain of the database - :param pulumi.Input[str] name: Name of the database - :param pulumi.Input[Sequence[pulumi.Input[str]]] options: Options for creating the database - :param pulumi.Input[str] pg_version: Postgres version of the database - :param pulumi.Input[str] status: Status of the database - :param pulumi.Input[int] storage_used: Storage used of the database - :param pulumi.Input[str] updated_at: Updated at of the database - """ + :param pulumi.Input['DatabaseBackupsArgs'] backups: Backup configuration for the database. + :param pulumi.Input[str] cluster_id: The ID of the cluster this database belongs to. + :param pulumi.Input[Sequence[pulumi.Input['DatabaseComponentArgs']]] components: List of components in the database. + :param pulumi.Input[str] config_version: The configuration version of the database. + :param pulumi.Input[str] created_at: The timestamp when the database was created. + :param pulumi.Input[str] domain: The domain associated with the database. + :param pulumi.Input['DatabaseExtensionsArgs'] extensions: Extensions configuration for the database. + :param pulumi.Input[str] name: The name of the database. + :param pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]] nodes: Map of nodes in the database. + :param pulumi.Input[Sequence[pulumi.Input[str]]] options: A list of options for the database. + :param pulumi.Input[str] pg_version: The PostgreSQL version of the database. + :param pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]] roles: List of roles in the database. + :param pulumi.Input[str] status: The current status of the database. + """ + if backups is not None: + pulumi.set(__self__, "backups", backups) if cluster_id is not None: pulumi.set(__self__, "cluster_id", cluster_id) + if components is not None: + pulumi.set(__self__, "components", components) if config_version is not None: pulumi.set(__self__, "config_version", config_version) if created_at is not None: pulumi.set(__self__, "created_at", created_at) if domain is not None: pulumi.set(__self__, "domain", domain) + if extensions is not None: + pulumi.set(__self__, "extensions", extensions) if name is not None: pulumi.set(__self__, "name", name) + if nodes is not None: + pulumi.set(__self__, "nodes", nodes) if options is not None: pulumi.set(__self__, "options", options) if pg_version is not None: pulumi.set(__self__, "pg_version", pg_version) + if roles is not None: + pulumi.set(__self__, "roles", roles) if status is not None: pulumi.set(__self__, "status", status) - if storage_used is not None: - pulumi.set(__self__, "storage_used", storage_used) - if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter + def backups(self) -> Optional[pulumi.Input['DatabaseBackupsArgs']]: + """ + Backup configuration for the database. + """ + return pulumi.get(self, "backups") + + @backups.setter + def backups(self, value: Optional[pulumi.Input['DatabaseBackupsArgs']]): + pulumi.set(self, "backups", value) @property @pulumi.getter(name="clusterId") def cluster_id(self) -> Optional[pulumi.Input[str]]: """ - ID of the cluster to place the database on + The ID of the cluster this database belongs to. """ return pulumi.get(self, "cluster_id") @@ -141,11 +230,23 @@ def cluster_id(self) -> Optional[pulumi.Input[str]]: def cluster_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "cluster_id", value) + @property + @pulumi.getter + def components(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseComponentArgs']]]]: + """ + List of components in the database. + """ + return pulumi.get(self, "components") + + @components.setter + def components(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseComponentArgs']]]]): + pulumi.set(self, "components", value) + @property @pulumi.getter(name="configVersion") def config_version(self) -> Optional[pulumi.Input[str]]: """ - Config version of the database + The configuration version of the database. """ return pulumi.get(self, "config_version") @@ -157,7 +258,7 @@ def config_version(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="createdAt") def created_at(self) -> Optional[pulumi.Input[str]]: """ - Created at of the database + The timestamp when the database was created. """ return pulumi.get(self, "created_at") @@ -169,7 +270,7 @@ def created_at(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def domain(self) -> Optional[pulumi.Input[str]]: """ - Domain of the database + The domain associated with the database. """ return pulumi.get(self, "domain") @@ -177,11 +278,23 @@ def domain(self) -> Optional[pulumi.Input[str]]: def domain(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "domain", value) + @property + @pulumi.getter + def extensions(self) -> Optional[pulumi.Input['DatabaseExtensionsArgs']]: + """ + Extensions configuration for the database. + """ + return pulumi.get(self, "extensions") + + @extensions.setter + def extensions(self, value: Optional[pulumi.Input['DatabaseExtensionsArgs']]): + pulumi.set(self, "extensions", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the database + The name of the database. """ return pulumi.get(self, "name") @@ -189,11 +302,23 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter + def nodes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]]]: + """ + Map of nodes in the database. + """ + return pulumi.get(self, "nodes") + + @nodes.setter + def nodes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['DatabaseNodesArgs']]]]): + pulumi.set(self, "nodes", value) + @property @pulumi.getter def options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Options for creating the database + A list of options for the database. """ return pulumi.get(self, "options") @@ -205,7 +330,7 @@ def options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter(name="pgVersion") def pg_version(self) -> Optional[pulumi.Input[str]]: """ - Postgres version of the database + The PostgreSQL version of the database. """ return pulumi.get(self, "pg_version") @@ -215,39 +340,27 @@ def pg_version(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter - def status(self) -> Optional[pulumi.Input[str]]: - """ - Status of the database - """ - return pulumi.get(self, "status") - - @status.setter - def status(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "status", value) - - @property - @pulumi.getter(name="storageUsed") - def storage_used(self) -> Optional[pulumi.Input[int]]: + def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]]]: """ - Storage used of the database + List of roles in the database. """ - return pulumi.get(self, "storage_used") + return pulumi.get(self, "roles") - @storage_used.setter - def storage_used(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "storage_used", value) + @roles.setter + def roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseRoleArgs']]]]): + pulumi.set(self, "roles", value) @property - @pulumi.getter(name="updatedAt") - def updated_at(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: """ - Updated at of the database + The current status of the database. """ - return pulumi.get(self, "updated_at") + return pulumi.get(self, "status") - @updated_at.setter - def updated_at(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "updated_at", value) + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) class Database(pulumi.CustomResource): @@ -255,20 +368,28 @@ class Database(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + backups: Optional[pulumi.Input[pulumi.InputType['DatabaseBackupsArgs']]] = None, cluster_id: Optional[pulumi.Input[str]] = None, config_version: Optional[pulumi.Input[str]] = None, + extensions: Optional[pulumi.Input[pulumi.InputType['DatabaseExtensionsArgs']]] = None, name: Optional[pulumi.Input[str]] = None, + nodes: Optional[pulumi.Input[Mapping[str, pulumi.Input[pulumi.InputType['DatabaseNodesArgs']]]]] = None, options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseRoleArgs']]]]] = None, __props__=None): """ - Interface with the pgEdge service API. + Manages a pgEdge database. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] cluster_id: ID of the cluster to place the database on - :param pulumi.Input[str] config_version: Config version of the database - :param pulumi.Input[str] name: Name of the database - :param pulumi.Input[Sequence[pulumi.Input[str]]] options: Options for creating the database + :param pulumi.Input[pulumi.InputType['DatabaseBackupsArgs']] backups: Backup configuration for the database. + :param pulumi.Input[str] cluster_id: The ID of the cluster this database belongs to. + :param pulumi.Input[str] config_version: The configuration version of the database. + :param pulumi.Input[pulumi.InputType['DatabaseExtensionsArgs']] extensions: Extensions configuration for the database. + :param pulumi.Input[str] name: The name of the database. + :param pulumi.Input[Mapping[str, pulumi.Input[pulumi.InputType['DatabaseNodesArgs']]]] nodes: Map of nodes in the database. + :param pulumi.Input[Sequence[pulumi.Input[str]]] options: A list of options for the database. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseRoleArgs']]]] roles: List of roles in the database. """ ... @overload @@ -277,7 +398,7 @@ def __init__(__self__, args: DatabaseArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Interface with the pgEdge service API. + Manages a pgEdge database. :param str resource_name: The name of the resource. :param DatabaseArgs args: The arguments to use to populate this resource's properties. @@ -294,10 +415,14 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + backups: Optional[pulumi.Input[pulumi.InputType['DatabaseBackupsArgs']]] = None, cluster_id: Optional[pulumi.Input[str]] = None, config_version: Optional[pulumi.Input[str]] = None, + extensions: Optional[pulumi.Input[pulumi.InputType['DatabaseExtensionsArgs']]] = None, name: Optional[pulumi.Input[str]] = None, + nodes: Optional[pulumi.Input[Mapping[str, pulumi.Input[pulumi.InputType['DatabaseNodesArgs']]]]] = None, options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseRoleArgs']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -307,18 +432,23 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DatabaseArgs.__new__(DatabaseArgs) + __props__.__dict__["backups"] = backups if cluster_id is None and not opts.urn: raise TypeError("Missing required property 'cluster_id'") __props__.__dict__["cluster_id"] = cluster_id __props__.__dict__["config_version"] = config_version + __props__.__dict__["extensions"] = extensions __props__.__dict__["name"] = name + if nodes is None and not opts.urn: + raise TypeError("Missing required property 'nodes'") + __props__.__dict__["nodes"] = nodes __props__.__dict__["options"] = options + __props__.__dict__["roles"] = roles + __props__.__dict__["components"] = None __props__.__dict__["created_at"] = None __props__.__dict__["domain"] = None __props__.__dict__["pg_version"] = None __props__.__dict__["status"] = None - __props__.__dict__["storage_used"] = None - __props__.__dict__["updated_at"] = None super(Database, __self__).__init__( 'pgedge:index/database:Database', resource_name, @@ -329,16 +459,19 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + backups: Optional[pulumi.Input[pulumi.InputType['DatabaseBackupsArgs']]] = None, cluster_id: Optional[pulumi.Input[str]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseComponentArgs']]]]] = None, config_version: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, domain: Optional[pulumi.Input[str]] = None, + extensions: Optional[pulumi.Input[pulumi.InputType['DatabaseExtensionsArgs']]] = None, name: Optional[pulumi.Input[str]] = None, + nodes: Optional[pulumi.Input[Mapping[str, pulumi.Input[pulumi.InputType['DatabaseNodesArgs']]]]] = None, options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, pg_version: Optional[pulumi.Input[str]] = None, - status: Optional[pulumi.Input[str]] = None, - storage_used: Optional[pulumi.Input[int]] = None, - updated_at: Optional[pulumi.Input[str]] = None) -> 'Database': + roles: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseRoleArgs']]]]] = None, + status: Optional[pulumi.Input[str]] = None) -> 'Database': """ Get an existing Database resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -346,46 +479,68 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] cluster_id: ID of the cluster to place the database on - :param pulumi.Input[str] config_version: Config version of the database - :param pulumi.Input[str] created_at: Created at of the database - :param pulumi.Input[str] domain: Domain of the database - :param pulumi.Input[str] name: Name of the database - :param pulumi.Input[Sequence[pulumi.Input[str]]] options: Options for creating the database - :param pulumi.Input[str] pg_version: Postgres version of the database - :param pulumi.Input[str] status: Status of the database - :param pulumi.Input[int] storage_used: Storage used of the database - :param pulumi.Input[str] updated_at: Updated at of the database + :param pulumi.Input[pulumi.InputType['DatabaseBackupsArgs']] backups: Backup configuration for the database. + :param pulumi.Input[str] cluster_id: The ID of the cluster this database belongs to. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseComponentArgs']]]] components: List of components in the database. + :param pulumi.Input[str] config_version: The configuration version of the database. + :param pulumi.Input[str] created_at: The timestamp when the database was created. + :param pulumi.Input[str] domain: The domain associated with the database. + :param pulumi.Input[pulumi.InputType['DatabaseExtensionsArgs']] extensions: Extensions configuration for the database. + :param pulumi.Input[str] name: The name of the database. + :param pulumi.Input[Mapping[str, pulumi.Input[pulumi.InputType['DatabaseNodesArgs']]]] nodes: Map of nodes in the database. + :param pulumi.Input[Sequence[pulumi.Input[str]]] options: A list of options for the database. + :param pulumi.Input[str] pg_version: The PostgreSQL version of the database. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseRoleArgs']]]] roles: List of roles in the database. + :param pulumi.Input[str] status: The current status of the database. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) __props__ = _DatabaseState.__new__(_DatabaseState) + __props__.__dict__["backups"] = backups __props__.__dict__["cluster_id"] = cluster_id + __props__.__dict__["components"] = components __props__.__dict__["config_version"] = config_version __props__.__dict__["created_at"] = created_at __props__.__dict__["domain"] = domain + __props__.__dict__["extensions"] = extensions __props__.__dict__["name"] = name + __props__.__dict__["nodes"] = nodes __props__.__dict__["options"] = options __props__.__dict__["pg_version"] = pg_version + __props__.__dict__["roles"] = roles __props__.__dict__["status"] = status - __props__.__dict__["storage_used"] = storage_used - __props__.__dict__["updated_at"] = updated_at return Database(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter + def backups(self) -> pulumi.Output['outputs.DatabaseBackups']: + """ + Backup configuration for the database. + """ + return pulumi.get(self, "backups") + @property @pulumi.getter(name="clusterId") def cluster_id(self) -> pulumi.Output[str]: """ - ID of the cluster to place the database on + The ID of the cluster this database belongs to. """ return pulumi.get(self, "cluster_id") + @property + @pulumi.getter + def components(self) -> pulumi.Output[Sequence['outputs.DatabaseComponent']]: + """ + List of components in the database. + """ + return pulumi.get(self, "components") + @property @pulumi.getter(name="configVersion") def config_version(self) -> pulumi.Output[str]: """ - Config version of the database + The configuration version of the database. """ return pulumi.get(self, "config_version") @@ -393,7 +548,7 @@ def config_version(self) -> pulumi.Output[str]: @pulumi.getter(name="createdAt") def created_at(self) -> pulumi.Output[str]: """ - Created at of the database + The timestamp when the database was created. """ return pulumi.get(self, "created_at") @@ -401,23 +556,39 @@ def created_at(self) -> pulumi.Output[str]: @pulumi.getter def domain(self) -> pulumi.Output[str]: """ - Domain of the database + The domain associated with the database. """ return pulumi.get(self, "domain") + @property + @pulumi.getter + def extensions(self) -> pulumi.Output['outputs.DatabaseExtensions']: + """ + Extensions configuration for the database. + """ + return pulumi.get(self, "extensions") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the database + The name of the database. """ return pulumi.get(self, "name") @property @pulumi.getter - def options(self) -> pulumi.Output[Sequence[str]]: + def nodes(self) -> pulumi.Output[Mapping[str, 'outputs.DatabaseNodes']]: """ - Options for creating the database + Map of nodes in the database. + """ + return pulumi.get(self, "nodes") + + @property + @pulumi.getter + def options(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + A list of options for the database. """ return pulumi.get(self, "options") @@ -425,31 +596,23 @@ def options(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter(name="pgVersion") def pg_version(self) -> pulumi.Output[str]: """ - Postgres version of the database + The PostgreSQL version of the database. """ return pulumi.get(self, "pg_version") @property @pulumi.getter - def status(self) -> pulumi.Output[str]: + def roles(self) -> pulumi.Output[Sequence['outputs.DatabaseRole']]: """ - Status of the database + List of roles in the database. """ - return pulumi.get(self, "status") + return pulumi.get(self, "roles") @property - @pulumi.getter(name="storageUsed") - def storage_used(self) -> pulumi.Output[int]: - """ - Storage used of the database - """ - return pulumi.get(self, "storage_used") - - @property - @pulumi.getter(name="updatedAt") - def updated_at(self) -> pulumi.Output[str]: + @pulumi.getter + def status(self) -> pulumi.Output[str]: """ - Updated at of the database + The current status of the database. """ - return pulumi.get(self, "updated_at") + return pulumi.get(self, "status") diff --git a/sdk/python/pgEdge_pulumi_pgedge/get_backup_stores.py b/sdk/python/pgEdge_pulumi_pgedge/get_backup_stores.py new file mode 100644 index 0000000..560d267 --- /dev/null +++ b/sdk/python/pgEdge_pulumi_pgedge/get_backup_stores.py @@ -0,0 +1,75 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetBackupStoresResult', + 'AwaitableGetBackupStoresResult', + 'get_backup_stores', + 'get_backup_stores_output', +] + +@pulumi.output_type +class GetBackupStoresResult: + """ + A collection of values returned by getBackupStores. + """ + def __init__(__self__, backup_stores=None, id=None): + if backup_stores and not isinstance(backup_stores, list): + raise TypeError("Expected argument 'backup_stores' to be a list") + pulumi.set(__self__, "backup_stores", backup_stores) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + + @property + @pulumi.getter(name="backupStores") + def backup_stores(self) -> Sequence['outputs.GetBackupStoresBackupStoreResult']: + return pulumi.get(self, "backup_stores") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + +class AwaitableGetBackupStoresResult(GetBackupStoresResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetBackupStoresResult( + backup_stores=self.backup_stores, + id=self.id) + + +def get_backup_stores(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBackupStoresResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('pgedge:index/getBackupStores:getBackupStores', __args__, opts=opts, typ=GetBackupStoresResult).value + + return AwaitableGetBackupStoresResult( + backup_stores=pulumi.get(__ret__, 'backup_stores'), + id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_backup_stores) +def get_backup_stores_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetBackupStoresResult]: + """ + Use this data source to access information about an existing resource. + """ + ... diff --git a/sdk/python/pgEdge_pulumi_pgedge/get_cloud_accounts.py b/sdk/python/pgEdge_pulumi_pgedge/get_cloud_accounts.py new file mode 100644 index 0000000..130d0cc --- /dev/null +++ b/sdk/python/pgEdge_pulumi_pgedge/get_cloud_accounts.py @@ -0,0 +1,75 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetCloudAccountsResult', + 'AwaitableGetCloudAccountsResult', + 'get_cloud_accounts', + 'get_cloud_accounts_output', +] + +@pulumi.output_type +class GetCloudAccountsResult: + """ + A collection of values returned by getCloudAccounts. + """ + def __init__(__self__, cloud_accounts=None, id=None): + if cloud_accounts and not isinstance(cloud_accounts, list): + raise TypeError("Expected argument 'cloud_accounts' to be a list") + pulumi.set(__self__, "cloud_accounts", cloud_accounts) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + + @property + @pulumi.getter(name="cloudAccounts") + def cloud_accounts(self) -> Sequence['outputs.GetCloudAccountsCloudAccountResult']: + return pulumi.get(self, "cloud_accounts") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + +class AwaitableGetCloudAccountsResult(GetCloudAccountsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetCloudAccountsResult( + cloud_accounts=self.cloud_accounts, + id=self.id) + + +def get_cloud_accounts(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetCloudAccountsResult: + """ + Data source for pgEdge cloud accounts. + """ + __args__ = dict() + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('pgedge:index/getCloudAccounts:getCloudAccounts', __args__, opts=opts, typ=GetCloudAccountsResult).value + + return AwaitableGetCloudAccountsResult( + cloud_accounts=pulumi.get(__ret__, 'cloud_accounts'), + id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_cloud_accounts) +def get_cloud_accounts_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCloudAccountsResult]: + """ + Data source for pgEdge cloud accounts. + """ + ... diff --git a/sdk/python/pgEdge_pulumi_pgedge/get_clusters.py b/sdk/python/pgEdge_pulumi_pgedge/get_clusters.py index bb87dc2..03be7f7 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/get_clusters.py +++ b/sdk/python/pgEdge_pulumi_pgedge/get_clusters.py @@ -56,7 +56,7 @@ def __await__(self): def get_clusters(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetClustersResult: """ - Interface with the pgEdge service API for clusters. + Data source for pgEdge clusters. """ __args__ = dict() opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) @@ -70,6 +70,6 @@ def get_clusters(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetClu @_utilities.lift_output_func(get_clusters) def get_clusters_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetClustersResult]: """ - Interface with the pgEdge service API for clusters. + Data source for pgEdge clusters. """ ... diff --git a/sdk/python/pgEdge_pulumi_pgedge/get_databases.py b/sdk/python/pgEdge_pulumi_pgedge/get_databases.py index 227a6c8..8cfac99 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/get_databases.py +++ b/sdk/python/pgEdge_pulumi_pgedge/get_databases.py @@ -56,7 +56,7 @@ def __await__(self): def get_databases(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDatabasesResult: """ - Interface with the pgEdge service API. + Data source for pgEdge databases """ __args__ = dict() opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) @@ -70,6 +70,6 @@ def get_databases(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDa @_utilities.lift_output_func(get_databases) def get_databases_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDatabasesResult]: """ - Interface with the pgEdge service API. + Data source for pgEdge databases """ ... diff --git a/sdk/python/pgEdge_pulumi_pgedge/get_ssh_keys.py b/sdk/python/pgEdge_pulumi_pgedge/get_ssh_keys.py new file mode 100644 index 0000000..ccc540e --- /dev/null +++ b/sdk/python/pgEdge_pulumi_pgedge/get_ssh_keys.py @@ -0,0 +1,75 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetSSHKeysResult', + 'AwaitableGetSSHKeysResult', + 'get_ssh_keys', + 'get_ssh_keys_output', +] + +@pulumi.output_type +class GetSSHKeysResult: + """ + A collection of values returned by getSSHKeys. + """ + def __init__(__self__, id=None, ssh_keys=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if ssh_keys and not isinstance(ssh_keys, list): + raise TypeError("Expected argument 'ssh_keys' to be a list") + pulumi.set(__self__, "ssh_keys", ssh_keys) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="sshKeys") + def ssh_keys(self) -> Sequence['outputs.GetSSHKeysSshKeyResult']: + return pulumi.get(self, "ssh_keys") + + +class AwaitableGetSSHKeysResult(GetSSHKeysResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetSSHKeysResult( + id=self.id, + ssh_keys=self.ssh_keys) + + +def get_ssh_keys(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSSHKeysResult: + """ + Data source for pgEdge SSH keys. + """ + __args__ = dict() + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('pgedge:index/getSSHKeys:getSSHKeys', __args__, opts=opts, typ=GetSSHKeysResult).value + + return AwaitableGetSSHKeysResult( + id=pulumi.get(__ret__, 'id'), + ssh_keys=pulumi.get(__ret__, 'ssh_keys')) + + +@_utilities.lift_output_func(get_ssh_keys) +def get_ssh_keys_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSSHKeysResult]: + """ + Data source for pgEdge SSH keys. + """ + ... diff --git a/sdk/python/pgEdge_pulumi_pgedge/outputs.py b/sdk/python/pgEdge_pulumi_pgedge/outputs.py index 98ee848..de73bdd 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/outputs.py +++ b/sdk/python/pgEdge_pulumi_pgedge/outputs.py @@ -14,53 +14,63 @@ 'ClusterFirewallRule', 'ClusterNetwork', 'ClusterNode', + 'DatabaseBackups', + 'DatabaseBackupsConfig', + 'DatabaseBackupsConfigRepository', + 'DatabaseBackupsConfigSchedule', + 'DatabaseComponent', + 'DatabaseExtensions', + 'DatabaseNodes', + 'DatabaseNodesConnection', + 'DatabaseNodesExtensions', + 'DatabaseNodesLocation', + 'DatabaseNodesRegion', + 'DatabaseRole', + 'GetBackupStoresBackupStoreResult', + 'GetCloudAccountsCloudAccountResult', 'GetClustersClusterResult', - 'GetClustersClusterCloudAccountResult', 'GetClustersClusterFirewallRuleResult', 'GetClustersClusterNetworkResult', 'GetClustersClusterNodeResult', 'GetDatabasesDatabaseResult', + 'GetDatabasesDatabaseBackupsResult', + 'GetDatabasesDatabaseBackupsConfigResult', + 'GetDatabasesDatabaseBackupsConfigRepositoryResult', + 'GetDatabasesDatabaseBackupsConfigScheduleResult', 'GetDatabasesDatabaseComponentResult', 'GetDatabasesDatabaseExtensionsResult', - 'GetDatabasesDatabaseNodeResult', - 'GetDatabasesDatabaseNodeConnectionResult', - 'GetDatabasesDatabaseNodeDistanceMeasurementResult', - 'GetDatabasesDatabaseNodeExtensionsResult', - 'GetDatabasesDatabaseNodeExtensionsErrorsResult', - 'GetDatabasesDatabaseNodeLocationResult', - 'GetDatabasesDatabaseNodeRegionResult', + 'GetDatabasesDatabaseNodesResult', + 'GetDatabasesDatabaseNodesConnectionResult', + 'GetDatabasesDatabaseNodesExtensionsResult', + 'GetDatabasesDatabaseNodesLocationResult', + 'GetDatabasesDatabaseNodesRegionResult', 'GetDatabasesDatabaseRoleResult', - 'GetDatabasesDatabaseTableResult', - 'GetDatabasesDatabaseTableColumnResult', - 'GetDatabasesDatabaseTableStatusResult', + 'GetSSHKeysSshKeyResult', ] @pulumi.output_type class ClusterFirewallRule(dict): def __init__(__self__, *, + name: str, port: int, sources: Sequence[str]): - """ - :param int port: Port whose traffic is allowed - :param Sequence[str] sources: CIDRs and/or IP addresses allowed - """ + pulumi.set(__self__, "name", name) pulumi.set(__self__, "port", port) pulumi.set(__self__, "sources", sources) + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + @property @pulumi.getter def port(self) -> int: - """ - Port whose traffic is allowed - """ return pulumi.get(self, "port") @property @pulumi.getter def sources(self) -> Sequence[str]: - """ - CIDRs and/or IP addresses allowed - """ return pulumi.get(self, "sources") @@ -69,12 +79,12 @@ class ClusterNetwork(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "externalId": + if key == "publicSubnets": + suggest = "public_subnets" + elif key == "externalId": suggest = "external_id" elif key == "privateSubnets": suggest = "private_subnets" - elif key == "publicSubnets": - suggest = "public_subnets" if suggest: pulumi.log.warn(f"Key '{key}' not found in ClusterNetwork. Access the value via the '{suggest}' property getter instead.") @@ -88,23 +98,25 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + cidr: str, + public_subnets: Sequence[str], region: str, - cidr: Optional[str] = None, external: Optional[bool] = None, external_id: Optional[str] = None, name: Optional[str] = None, - private_subnets: Optional[Sequence[str]] = None, - public_subnets: Optional[Sequence[str]] = None): + private_subnets: Optional[Sequence[str]] = None): """ + :param str cidr: CIDR of the network + :param Sequence[str] public_subnets: List of public subnets :param str region: Region of the network - :param str cidr: CIDR range for the network - :param bool external: Is the network externally defined - :param str external_id: ID of the network, if externally defined + :param bool external: Whether the network is external + :param str external_id: External ID of the network :param str name: Name of the network + :param Sequence[str] private_subnets: List of private subnets """ + pulumi.set(__self__, "cidr", cidr) + pulumi.set(__self__, "public_subnets", public_subnets) pulumi.set(__self__, "region", region) - if cidr is not None: - pulumi.set(__self__, "cidr", cidr) if external is not None: pulumi.set(__self__, "external", external) if external_id is not None: @@ -113,30 +125,36 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if private_subnets is not None: pulumi.set(__self__, "private_subnets", private_subnets) - if public_subnets is not None: - pulumi.set(__self__, "public_subnets", public_subnets) @property @pulumi.getter - def region(self) -> str: + def cidr(self) -> str: """ - Region of the network + CIDR of the network """ - return pulumi.get(self, "region") + return pulumi.get(self, "cidr") + + @property + @pulumi.getter(name="publicSubnets") + def public_subnets(self) -> Sequence[str]: + """ + List of public subnets + """ + return pulumi.get(self, "public_subnets") @property @pulumi.getter - def cidr(self) -> Optional[str]: + def region(self) -> str: """ - CIDR range for the network + Region of the network """ - return pulumi.get(self, "cidr") + return pulumi.get(self, "region") @property @pulumi.getter def external(self) -> Optional[bool]: """ - Is the network externally defined + Whether the network is external """ return pulumi.get(self, "external") @@ -144,7 +162,7 @@ def external(self) -> Optional[bool]: @pulumi.getter(name="externalId") def external_id(self) -> Optional[str]: """ - ID of the network, if externally defined + External ID of the network """ return pulumi.get(self, "external_id") @@ -159,23 +177,21 @@ def name(self) -> Optional[str]: @property @pulumi.getter(name="privateSubnets") def private_subnets(self) -> Optional[Sequence[str]]: + """ + List of private subnets + """ return pulumi.get(self, "private_subnets") - @property - @pulumi.getter(name="publicSubnets") - def public_subnets(self) -> Optional[Sequence[str]]: - return pulumi.get(self, "public_subnets") - @pulumi.output_type class ClusterNode(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "availabilityZone": - suggest = "availability_zone" - elif key == "instanceType": + if key == "instanceType": suggest = "instance_type" + elif key == "availabilityZone": + suggest = "availability_zone" elif key == "volumeIops": suggest = "volume_iops" elif key == "volumeSize": @@ -195,105 +211,1142 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - region: str, - availability_zone: Optional[str] = None, - instance_type: Optional[str] = None, - name: Optional[str] = None, - options: Optional[Sequence[str]] = None, - volume_iops: Optional[int] = None, - volume_size: Optional[int] = None, - volume_type: Optional[str] = None): - """ - :param str region: Cloud provider region - :param str availability_zone: Cloud provider availability zone name - :param str instance_type: Instance type used for the node - :param str name: Node name - :param int volume_iops: Volume IOPS of the node data volume - :param int volume_size: Volume size of the node data volume - :param str volume_type: Volume type of the node data volume + instance_type: str, + name: str, + region: str, + availability_zone: Optional[str] = None, + volume_iops: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None): + pulumi.set(__self__, "instance_type", instance_type) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "region", region) + if availability_zone is not None: + pulumi.set(__self__, "availability_zone", availability_zone) + if volume_iops is not None: + pulumi.set(__self__, "volume_iops", volume_iops) + if volume_size is not None: + pulumi.set(__self__, "volume_size", volume_size) + if volume_type is not None: + pulumi.set(__self__, "volume_type", volume_type) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> str: + return pulumi.get(self, "instance_type") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def region(self) -> str: + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="availabilityZone") + def availability_zone(self) -> Optional[str]: + return pulumi.get(self, "availability_zone") + + @property + @pulumi.getter(name="volumeIops") + def volume_iops(self) -> Optional[int]: + return pulumi.get(self, "volume_iops") + + @property + @pulumi.getter(name="volumeSize") + def volume_size(self) -> Optional[int]: + return pulumi.get(self, "volume_size") + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> Optional[str]: + return pulumi.get(self, "volume_type") + + +@pulumi.output_type +class DatabaseBackups(dict): + def __init__(__self__, *, + configs: Optional[Sequence['outputs.DatabaseBackupsConfig']] = None, + provider: Optional[str] = None): + """ + :param Sequence['DatabaseBackupsConfigArgs'] configs: List of backup configurations. + :param str provider: The backup provider. + """ + if configs is not None: + pulumi.set(__self__, "configs", configs) + if provider is not None: + pulumi.set(__self__, "provider", provider) + + @property + @pulumi.getter + def configs(self) -> Optional[Sequence['outputs.DatabaseBackupsConfig']]: + """ + List of backup configurations. + """ + return pulumi.get(self, "configs") + + @property + @pulumi.getter + def provider(self) -> Optional[str]: + """ + The backup provider. + """ + return pulumi.get(self, "provider") + + +@pulumi.output_type +class DatabaseBackupsConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "nodeName": + suggest = "node_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseBackupsConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseBackupsConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseBackupsConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + id: Optional[str] = None, + node_name: Optional[str] = None, + repositories: Optional[Sequence['outputs.DatabaseBackupsConfigRepository']] = None, + schedules: Optional[Sequence['outputs.DatabaseBackupsConfigSchedule']] = None): + """ + :param str id: Unique identifier for the backup config. + :param str node_name: Name of the node. + :param Sequence['DatabaseBackupsConfigRepositoryArgs'] repositories: List of backup repositories. + :param Sequence['DatabaseBackupsConfigScheduleArgs'] schedules: List of backup schedules. + """ + if id is not None: + pulumi.set(__self__, "id", id) + if node_name is not None: + pulumi.set(__self__, "node_name", node_name) + if repositories is not None: + pulumi.set(__self__, "repositories", repositories) + if schedules is not None: + pulumi.set(__self__, "schedules", schedules) + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + Unique identifier for the backup config. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="nodeName") + def node_name(self) -> Optional[str]: + """ + Name of the node. + """ + return pulumi.get(self, "node_name") + + @property + @pulumi.getter + def repositories(self) -> Optional[Sequence['outputs.DatabaseBackupsConfigRepository']]: + """ + List of backup repositories. + """ + return pulumi.get(self, "repositories") + + @property + @pulumi.getter + def schedules(self) -> Optional[Sequence['outputs.DatabaseBackupsConfigSchedule']]: + """ + List of backup schedules. + """ + return pulumi.get(self, "schedules") + + +@pulumi.output_type +class DatabaseBackupsConfigRepository(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "azureAccount": + suggest = "azure_account" + elif key == "azureContainer": + suggest = "azure_container" + elif key == "azureEndpoint": + suggest = "azure_endpoint" + elif key == "backupStoreId": + suggest = "backup_store_id" + elif key == "basePath": + suggest = "base_path" + elif key == "gcsBucket": + suggest = "gcs_bucket" + elif key == "gcsEndpoint": + suggest = "gcs_endpoint" + elif key == "retentionFull": + suggest = "retention_full" + elif key == "retentionFullType": + suggest = "retention_full_type" + elif key == "s3Bucket": + suggest = "s3_bucket" + elif key == "s3Endpoint": + suggest = "s3_endpoint" + elif key == "s3Region": + suggest = "s3_region" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseBackupsConfigRepository. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseBackupsConfigRepository.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseBackupsConfigRepository.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + azure_account: Optional[str] = None, + azure_container: Optional[str] = None, + azure_endpoint: Optional[str] = None, + backup_store_id: Optional[str] = None, + base_path: Optional[str] = None, + gcs_bucket: Optional[str] = None, + gcs_endpoint: Optional[str] = None, + id: Optional[str] = None, + retention_full: Optional[int] = None, + retention_full_type: Optional[str] = None, + s3_bucket: Optional[str] = None, + s3_endpoint: Optional[str] = None, + s3_region: Optional[str] = None, + type: Optional[str] = None): + """ + :param str azure_account: Azure account. + :param str azure_container: Azure container. + :param str azure_endpoint: Azure endpoint. + :param str backup_store_id: ID of the backup store. + :param str base_path: Base path for the repository. + :param str gcs_bucket: GCS bucket name. + :param str gcs_endpoint: GCS endpoint. + :param str id: Unique identifier for the backup config. + :param int retention_full: Retention period for full backups. + :param str retention_full_type: Type of retention for full backups. + :param str s3_bucket: S3 bucket name. + :param str s3_endpoint: S3 endpoint. + :param str s3_region: S3 region. + :param str type: Type of the repository. + """ + if azure_account is not None: + pulumi.set(__self__, "azure_account", azure_account) + if azure_container is not None: + pulumi.set(__self__, "azure_container", azure_container) + if azure_endpoint is not None: + pulumi.set(__self__, "azure_endpoint", azure_endpoint) + if backup_store_id is not None: + pulumi.set(__self__, "backup_store_id", backup_store_id) + if base_path is not None: + pulumi.set(__self__, "base_path", base_path) + if gcs_bucket is not None: + pulumi.set(__self__, "gcs_bucket", gcs_bucket) + if gcs_endpoint is not None: + pulumi.set(__self__, "gcs_endpoint", gcs_endpoint) + if id is not None: + pulumi.set(__self__, "id", id) + if retention_full is not None: + pulumi.set(__self__, "retention_full", retention_full) + if retention_full_type is not None: + pulumi.set(__self__, "retention_full_type", retention_full_type) + if s3_bucket is not None: + pulumi.set(__self__, "s3_bucket", s3_bucket) + if s3_endpoint is not None: + pulumi.set(__self__, "s3_endpoint", s3_endpoint) + if s3_region is not None: + pulumi.set(__self__, "s3_region", s3_region) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="azureAccount") + def azure_account(self) -> Optional[str]: + """ + Azure account. + """ + return pulumi.get(self, "azure_account") + + @property + @pulumi.getter(name="azureContainer") + def azure_container(self) -> Optional[str]: + """ + Azure container. + """ + return pulumi.get(self, "azure_container") + + @property + @pulumi.getter(name="azureEndpoint") + def azure_endpoint(self) -> Optional[str]: + """ + Azure endpoint. + """ + return pulumi.get(self, "azure_endpoint") + + @property + @pulumi.getter(name="backupStoreId") + def backup_store_id(self) -> Optional[str]: + """ + ID of the backup store. + """ + return pulumi.get(self, "backup_store_id") + + @property + @pulumi.getter(name="basePath") + def base_path(self) -> Optional[str]: + """ + Base path for the repository. + """ + return pulumi.get(self, "base_path") + + @property + @pulumi.getter(name="gcsBucket") + def gcs_bucket(self) -> Optional[str]: + """ + GCS bucket name. + """ + return pulumi.get(self, "gcs_bucket") + + @property + @pulumi.getter(name="gcsEndpoint") + def gcs_endpoint(self) -> Optional[str]: + """ + GCS endpoint. + """ + return pulumi.get(self, "gcs_endpoint") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + Unique identifier for the backup config. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="retentionFull") + def retention_full(self) -> Optional[int]: + """ + Retention period for full backups. + """ + return pulumi.get(self, "retention_full") + + @property + @pulumi.getter(name="retentionFullType") + def retention_full_type(self) -> Optional[str]: + """ + Type of retention for full backups. + """ + return pulumi.get(self, "retention_full_type") + + @property + @pulumi.getter(name="s3Bucket") + def s3_bucket(self) -> Optional[str]: + """ + S3 bucket name. + """ + return pulumi.get(self, "s3_bucket") + + @property + @pulumi.getter(name="s3Endpoint") + def s3_endpoint(self) -> Optional[str]: + """ + S3 endpoint. + """ + return pulumi.get(self, "s3_endpoint") + + @property + @pulumi.getter(name="s3Region") + def s3_region(self) -> Optional[str]: + """ + S3 region. + """ + return pulumi.get(self, "s3_region") + + @property + @pulumi.getter + def type(self) -> Optional[str]: + """ + Type of the repository. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class DatabaseBackupsConfigSchedule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cronExpression": + suggest = "cron_expression" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseBackupsConfigSchedule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseBackupsConfigSchedule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseBackupsConfigSchedule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cron_expression: Optional[str] = None, + id: Optional[str] = None, + type: Optional[str] = None): + """ + :param str cron_expression: Cron expression for the schedule. + :param str id: Unique identifier for the backup config. + :param str type: Type of the repository. + """ + if cron_expression is not None: + pulumi.set(__self__, "cron_expression", cron_expression) + if id is not None: + pulumi.set(__self__, "id", id) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="cronExpression") + def cron_expression(self) -> Optional[str]: + """ + Cron expression for the schedule. + """ + return pulumi.get(self, "cron_expression") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + Unique identifier for the backup config. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def type(self) -> Optional[str]: + """ + Type of the repository. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class DatabaseComponent(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "releaseDate": + suggest = "release_date" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseComponent. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseComponent.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseComponent.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + id: Optional[str] = None, + name: Optional[str] = None, + release_date: Optional[str] = None, + status: Optional[str] = None, + version: Optional[str] = None): + if id is not None: + pulumi.set(__self__, "id", id) + if name is not None: + pulumi.set(__self__, "name", name) + if release_date is not None: + pulumi.set(__self__, "release_date", release_date) + if status is not None: + pulumi.set(__self__, "status", status) + if version is not None: + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter + def id(self) -> Optional[str]: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="releaseDate") + def release_date(self) -> Optional[str]: + return pulumi.get(self, "release_date") + + @property + @pulumi.getter + def status(self) -> Optional[str]: + return pulumi.get(self, "status") + + @property + @pulumi.getter + def version(self) -> Optional[str]: + return pulumi.get(self, "version") + + +@pulumi.output_type +class DatabaseExtensions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "autoManage": + suggest = "auto_manage" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseExtensions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseExtensions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseExtensions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + auto_manage: Optional[bool] = None, + availables: Optional[Sequence[str]] = None, + requesteds: Optional[Sequence[str]] = None): + if auto_manage is not None: + pulumi.set(__self__, "auto_manage", auto_manage) + if availables is not None: + pulumi.set(__self__, "availables", availables) + if requesteds is not None: + pulumi.set(__self__, "requesteds", requesteds) + + @property + @pulumi.getter(name="autoManage") + def auto_manage(self) -> Optional[bool]: + return pulumi.get(self, "auto_manage") + + @property + @pulumi.getter + def availables(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "availables") + + @property + @pulumi.getter + def requesteds(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "requesteds") + + +@pulumi.output_type +class DatabaseNodes(dict): + def __init__(__self__, *, + name: str, + connection: Optional['outputs.DatabaseNodesConnection'] = None, + extensions: Optional['outputs.DatabaseNodesExtensions'] = None, + location: Optional['outputs.DatabaseNodesLocation'] = None, + region: Optional['outputs.DatabaseNodesRegion'] = None): + pulumi.set(__self__, "name", name) + if connection is not None: + pulumi.set(__self__, "connection", connection) + if extensions is not None: + pulumi.set(__self__, "extensions", extensions) + if location is not None: + pulumi.set(__self__, "location", location) + if region is not None: + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def connection(self) -> Optional['outputs.DatabaseNodesConnection']: + return pulumi.get(self, "connection") + + @property + @pulumi.getter + def extensions(self) -> Optional['outputs.DatabaseNodesExtensions']: + return pulumi.get(self, "extensions") + + @property + @pulumi.getter + def location(self) -> Optional['outputs.DatabaseNodesLocation']: + return pulumi.get(self, "location") + + @property + @pulumi.getter + def region(self) -> Optional['outputs.DatabaseNodesRegion']: + return pulumi.get(self, "region") + + +@pulumi.output_type +class DatabaseNodesConnection(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "externalIpAddress": + suggest = "external_ip_address" + elif key == "internalHost": + suggest = "internal_host" + elif key == "internalIpAddress": + suggest = "internal_ip_address" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseNodesConnection. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseNodesConnection.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseNodesConnection.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + database: Optional[str] = None, + external_ip_address: Optional[str] = None, + host: Optional[str] = None, + internal_host: Optional[str] = None, + internal_ip_address: Optional[str] = None, + password: Optional[str] = None, + port: Optional[int] = None, + username: Optional[str] = None): + if database is not None: + pulumi.set(__self__, "database", database) + if external_ip_address is not None: + pulumi.set(__self__, "external_ip_address", external_ip_address) + if host is not None: + pulumi.set(__self__, "host", host) + if internal_host is not None: + pulumi.set(__self__, "internal_host", internal_host) + if internal_ip_address is not None: + pulumi.set(__self__, "internal_ip_address", internal_ip_address) + if password is not None: + pulumi.set(__self__, "password", password) + if port is not None: + pulumi.set(__self__, "port", port) + if username is not None: + pulumi.set(__self__, "username", username) + + @property + @pulumi.getter + def database(self) -> Optional[str]: + return pulumi.get(self, "database") + + @property + @pulumi.getter(name="externalIpAddress") + def external_ip_address(self) -> Optional[str]: + return pulumi.get(self, "external_ip_address") + + @property + @pulumi.getter + def host(self) -> Optional[str]: + return pulumi.get(self, "host") + + @property + @pulumi.getter(name="internalHost") + def internal_host(self) -> Optional[str]: + return pulumi.get(self, "internal_host") + + @property + @pulumi.getter(name="internalIpAddress") + def internal_ip_address(self) -> Optional[str]: + return pulumi.get(self, "internal_ip_address") + + @property + @pulumi.getter + def password(self) -> Optional[str]: + return pulumi.get(self, "password") + + @property + @pulumi.getter + def port(self) -> Optional[int]: + return pulumi.get(self, "port") + + @property + @pulumi.getter + def username(self) -> Optional[str]: + return pulumi.get(self, "username") + + +@pulumi.output_type +class DatabaseNodesExtensions(dict): + def __init__(__self__, *, + errors: Optional[Mapping[str, str]] = None, + installeds: Optional[Sequence[str]] = None): + if errors is not None: + pulumi.set(__self__, "errors", errors) + if installeds is not None: + pulumi.set(__self__, "installeds", installeds) + + @property + @pulumi.getter + def errors(self) -> Optional[Mapping[str, str]]: + return pulumi.get(self, "errors") + + @property + @pulumi.getter + def installeds(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "installeds") + + +@pulumi.output_type +class DatabaseNodesLocation(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metroCode": + suggest = "metro_code" + elif key == "postalCode": + suggest = "postal_code" + elif key == "regionCode": + suggest = "region_code" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseNodesLocation. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseNodesLocation.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseNodesLocation.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + city: Optional[str] = None, + code: Optional[str] = None, + country: Optional[str] = None, + latitude: Optional[float] = None, + longitude: Optional[float] = None, + metro_code: Optional[str] = None, + name: Optional[str] = None, + postal_code: Optional[str] = None, + region: Optional[str] = None, + region_code: Optional[str] = None, + timezone: Optional[str] = None): + if city is not None: + pulumi.set(__self__, "city", city) + if code is not None: + pulumi.set(__self__, "code", code) + if country is not None: + pulumi.set(__self__, "country", country) + if latitude is not None: + pulumi.set(__self__, "latitude", latitude) + if longitude is not None: + pulumi.set(__self__, "longitude", longitude) + if metro_code is not None: + pulumi.set(__self__, "metro_code", metro_code) + if name is not None: + pulumi.set(__self__, "name", name) + if postal_code is not None: + pulumi.set(__self__, "postal_code", postal_code) + if region is not None: + pulumi.set(__self__, "region", region) + if region_code is not None: + pulumi.set(__self__, "region_code", region_code) + if timezone is not None: + pulumi.set(__self__, "timezone", timezone) + + @property + @pulumi.getter + def city(self) -> Optional[str]: + return pulumi.get(self, "city") + + @property + @pulumi.getter + def code(self) -> Optional[str]: + return pulumi.get(self, "code") + + @property + @pulumi.getter + def country(self) -> Optional[str]: + return pulumi.get(self, "country") + + @property + @pulumi.getter + def latitude(self) -> Optional[float]: + return pulumi.get(self, "latitude") + + @property + @pulumi.getter + def longitude(self) -> Optional[float]: + return pulumi.get(self, "longitude") + + @property + @pulumi.getter(name="metroCode") + def metro_code(self) -> Optional[str]: + return pulumi.get(self, "metro_code") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="postalCode") + def postal_code(self) -> Optional[str]: + return pulumi.get(self, "postal_code") + + @property + @pulumi.getter + def region(self) -> Optional[str]: + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="regionCode") + def region_code(self) -> Optional[str]: + return pulumi.get(self, "region_code") + + @property + @pulumi.getter + def timezone(self) -> Optional[str]: + return pulumi.get(self, "timezone") + + +@pulumi.output_type +class DatabaseNodesRegion(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "availabilityZones": + suggest = "availability_zones" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseNodesRegion. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseNodesRegion.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseNodesRegion.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + active: Optional[bool] = None, + availability_zones: Optional[Sequence[str]] = None, + cloud: Optional[str] = None, + code: Optional[str] = None, + name: Optional[str] = None, + parent: Optional[str] = None): + if active is not None: + pulumi.set(__self__, "active", active) + if availability_zones is not None: + pulumi.set(__self__, "availability_zones", availability_zones) + if cloud is not None: + pulumi.set(__self__, "cloud", cloud) + if code is not None: + pulumi.set(__self__, "code", code) + if name is not None: + pulumi.set(__self__, "name", name) + if parent is not None: + pulumi.set(__self__, "parent", parent) + + @property + @pulumi.getter + def active(self) -> Optional[bool]: + return pulumi.get(self, "active") + + @property + @pulumi.getter(name="availabilityZones") + def availability_zones(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "availability_zones") + + @property + @pulumi.getter + def cloud(self) -> Optional[str]: + return pulumi.get(self, "cloud") + + @property + @pulumi.getter + def code(self) -> Optional[str]: + return pulumi.get(self, "code") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def parent(self) -> Optional[str]: + return pulumi.get(self, "parent") + + +@pulumi.output_type +class DatabaseRole(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bypassRls": + suggest = "bypass_rls" + elif key == "connectionLimit": + suggest = "connection_limit" + elif key == "createDb": + suggest = "create_db" + elif key == "createRole": + suggest = "create_role" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DatabaseRole. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DatabaseRole.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DatabaseRole.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bypass_rls: Optional[bool] = None, + connection_limit: Optional[int] = None, + create_db: Optional[bool] = None, + create_role: Optional[bool] = None, + inherit: Optional[bool] = None, + login: Optional[bool] = None, + name: Optional[str] = None, + replication: Optional[bool] = None, + superuser: Optional[bool] = None): + if bypass_rls is not None: + pulumi.set(__self__, "bypass_rls", bypass_rls) + if connection_limit is not None: + pulumi.set(__self__, "connection_limit", connection_limit) + if create_db is not None: + pulumi.set(__self__, "create_db", create_db) + if create_role is not None: + pulumi.set(__self__, "create_role", create_role) + if inherit is not None: + pulumi.set(__self__, "inherit", inherit) + if login is not None: + pulumi.set(__self__, "login", login) + if name is not None: + pulumi.set(__self__, "name", name) + if replication is not None: + pulumi.set(__self__, "replication", replication) + if superuser is not None: + pulumi.set(__self__, "superuser", superuser) + + @property + @pulumi.getter(name="bypassRls") + def bypass_rls(self) -> Optional[bool]: + return pulumi.get(self, "bypass_rls") + + @property + @pulumi.getter(name="connectionLimit") + def connection_limit(self) -> Optional[int]: + return pulumi.get(self, "connection_limit") + + @property + @pulumi.getter(name="createDb") + def create_db(self) -> Optional[bool]: + return pulumi.get(self, "create_db") + + @property + @pulumi.getter(name="createRole") + def create_role(self) -> Optional[bool]: + return pulumi.get(self, "create_role") + + @property + @pulumi.getter + def inherit(self) -> Optional[bool]: + return pulumi.get(self, "inherit") + + @property + @pulumi.getter + def login(self) -> Optional[bool]: + return pulumi.get(self, "login") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def replication(self) -> Optional[bool]: + return pulumi.get(self, "replication") + + @property + @pulumi.getter + def superuser(self) -> Optional[bool]: + return pulumi.get(self, "superuser") + + +@pulumi.output_type +class GetBackupStoresBackupStoreResult(dict): + def __init__(__self__, *, + cloud_account_id: str, + cloud_account_type: str, + cluster_ids: Sequence[str], + created_at: str, + id: str, + name: str, + properties: Mapping[str, str], + status: str, + updated_at: str): + pulumi.set(__self__, "cloud_account_id", cloud_account_id) + pulumi.set(__self__, "cloud_account_type", cloud_account_type) + pulumi.set(__self__, "cluster_ids", cluster_ids) + pulumi.set(__self__, "created_at", created_at) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "properties", properties) + pulumi.set(__self__, "status", status) + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter(name="cloudAccountId") + def cloud_account_id(self) -> str: + return pulumi.get(self, "cloud_account_id") + + @property + @pulumi.getter(name="cloudAccountType") + def cloud_account_type(self) -> str: + return pulumi.get(self, "cloud_account_type") + + @property + @pulumi.getter(name="clusterIds") + def cluster_ids(self) -> Sequence[str]: + return pulumi.get(self, "cluster_ids") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def properties(self) -> Mapping[str, str]: + return pulumi.get(self, "properties") + + @property + @pulumi.getter + def status(self) -> str: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + return pulumi.get(self, "updated_at") + + +@pulumi.output_type +class GetCloudAccountsCloudAccountResult(dict): + def __init__(__self__, *, + created_at: str, + description: str, + id: str, + name: str, + properties: Mapping[str, str], + type: str, + updated_at: str): + """ + :param str created_at: Creation time of the cloud account + :param str description: Description of the cloud account + :param str id: ID of the cloud account + :param str name: Name of the cloud account + :param Mapping[str, str] properties: Additional properties of the cloud account + :param str type: Type of the cloud account (e.g., AWS, Azure, GCP) + :param str updated_at: Last update time of the cloud account """ - pulumi.set(__self__, "region", region) - if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) - if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) - if name is not None: - pulumi.set(__self__, "name", name) - if options is not None: - pulumi.set(__self__, "options", options) - if volume_iops is not None: - pulumi.set(__self__, "volume_iops", volume_iops) - if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) - if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + pulumi.set(__self__, "created_at", created_at) + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "properties", properties) + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "updated_at", updated_at) @property - @pulumi.getter - def region(self) -> str: + @pulumi.getter(name="createdAt") + def created_at(self) -> str: """ - Cloud provider region + Creation time of the cloud account """ - return pulumi.get(self, "region") + return pulumi.get(self, "created_at") @property - @pulumi.getter(name="availabilityZone") - def availability_zone(self) -> Optional[str]: + @pulumi.getter + def description(self) -> str: """ - Cloud provider availability zone name + Description of the cloud account """ - return pulumi.get(self, "availability_zone") + return pulumi.get(self, "description") @property - @pulumi.getter(name="instanceType") - def instance_type(self) -> Optional[str]: + @pulumi.getter + def id(self) -> str: """ - Instance type used for the node + ID of the cloud account """ - return pulumi.get(self, "instance_type") + return pulumi.get(self, "id") @property @pulumi.getter - def name(self) -> Optional[str]: + def name(self) -> str: """ - Node name + Name of the cloud account """ return pulumi.get(self, "name") @property @pulumi.getter - def options(self) -> Optional[Sequence[str]]: - return pulumi.get(self, "options") - - @property - @pulumi.getter(name="volumeIops") - def volume_iops(self) -> Optional[int]: + def properties(self) -> Mapping[str, str]: """ - Volume IOPS of the node data volume + Additional properties of the cloud account """ - return pulumi.get(self, "volume_iops") + return pulumi.get(self, "properties") @property - @pulumi.getter(name="volumeSize") - def volume_size(self) -> Optional[int]: + @pulumi.getter + def type(self) -> str: """ - Volume size of the node data volume + Type of the cloud account (e.g., AWS, Azure, GCP) """ - return pulumi.get(self, "volume_size") + return pulumi.get(self, "type") @property - @pulumi.getter(name="volumeType") - def volume_type(self) -> Optional[str]: + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: """ - Volume type of the node data volume + Last update time of the cloud account """ - return pulumi.get(self, "volume_type") + return pulumi.get(self, "updated_at") @pulumi.output_type class GetClustersClusterResult(dict): def __init__(__self__, *, - cloud_account: 'outputs.GetClustersClusterCloudAccountResult', + backup_store_ids: Sequence[str], + capacity: int, cloud_account_id: str, created_at: str, firewall_rules: Sequence['outputs.GetClustersClusterFirewallRuleResult'], @@ -303,18 +1356,23 @@ def __init__(__self__, *, node_location: str, nodes: Sequence['outputs.GetClustersClusterNodeResult'], regions: Sequence[str], + resource_tags: Mapping[str, str], ssh_key_id: str, status: str): """ + :param Sequence[str] backup_store_ids: Backup store IDs of the cluster + :param int capacity: Capacity of the cluster :param str cloud_account_id: Cloud account ID of the cluster :param str created_at: Created at of the cluster :param str id: ID of the cluster :param str name: Name of the cluster - :param str node_location: Node location of the cluster + :param str node_location: Node location of the cluster. Must be either 'public' or 'private'. + :param Mapping[str, str] resource_tags: Resource tags of the cluster :param str ssh_key_id: SSH key ID of the cluster :param str status: Status of the cluster """ - pulumi.set(__self__, "cloud_account", cloud_account) + pulumi.set(__self__, "backup_store_ids", backup_store_ids) + pulumi.set(__self__, "capacity", capacity) pulumi.set(__self__, "cloud_account_id", cloud_account_id) pulumi.set(__self__, "created_at", created_at) pulumi.set(__self__, "firewall_rules", firewall_rules) @@ -324,13 +1382,25 @@ def __init__(__self__, *, pulumi.set(__self__, "node_location", node_location) pulumi.set(__self__, "nodes", nodes) pulumi.set(__self__, "regions", regions) + pulumi.set(__self__, "resource_tags", resource_tags) pulumi.set(__self__, "ssh_key_id", ssh_key_id) pulumi.set(__self__, "status", status) @property - @pulumi.getter(name="cloudAccount") - def cloud_account(self) -> 'outputs.GetClustersClusterCloudAccountResult': - return pulumi.get(self, "cloud_account") + @pulumi.getter(name="backupStoreIds") + def backup_store_ids(self) -> Sequence[str]: + """ + Backup store IDs of the cluster + """ + return pulumi.get(self, "backup_store_ids") + + @property + @pulumi.getter + def capacity(self) -> int: + """ + Capacity of the cluster + """ + return pulumi.get(self, "capacity") @property @pulumi.getter(name="cloudAccountId") @@ -378,7 +1448,7 @@ def networks(self) -> Sequence['outputs.GetClustersClusterNetworkResult']: @pulumi.getter(name="nodeLocation") def node_location(self) -> str: """ - Node location of the cluster + Node location of the cluster. Must be either 'public' or 'private'. """ return pulumi.get(self, "node_location") @@ -392,6 +1462,14 @@ def nodes(self) -> Sequence['outputs.GetClustersClusterNodeResult']: def regions(self) -> Sequence[str]: return pulumi.get(self, "regions") + @property + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> Mapping[str, str]: + """ + Resource tags of the cluster + """ + return pulumi.get(self, "resource_tags") + @property @pulumi.getter(name="sshKeyId") def ssh_key_id(self) -> str: @@ -409,46 +1487,6 @@ def status(self) -> str: return pulumi.get(self, "status") -@pulumi.output_type -class GetClustersClusterCloudAccountResult(dict): - def __init__(__self__, *, - id: str, - name: str, - type: str): - """ - :param str id: Display name of the node - :param str name: IP address of the node - :param str type: Type of the node - """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) - - @property - @pulumi.getter - def id(self) -> str: - """ - Display name of the node - """ - return pulumi.get(self, "id") - - @property - @pulumi.getter - def name(self) -> str: - """ - IP address of the node - """ - return pulumi.get(self, "name") - - @property - @pulumi.getter - def type(self) -> str: - """ - Type of the node - """ - return pulumi.get(self, "type") - - @pulumi.output_type class GetClustersClusterFirewallRuleResult(dict): def __init__(__self__, *, @@ -456,7 +1494,7 @@ def __init__(__self__, *, port: int, sources: Sequence[str]): """ - :param str name: IP address of the node + :param str name: Name of the firewall rule :param int port: Port for the firewall rule :param Sequence[str] sources: Sources for the firewall rule """ @@ -468,7 +1506,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> str: """ - IP address of the node + Name of the firewall rule """ return pulumi.get(self, "name") @@ -500,10 +1538,10 @@ def __init__(__self__, *, public_subnets: Sequence[str], region: str): """ - :param str cidr: CIDR of the AWS node group + :param str cidr: CIDR of the network :param bool external: Is the network external :param str external_id: External ID of the network - :param str name: IP address of the node + :param str name: Name of the firewall rule :param str region: Region of the network """ pulumi.set(__self__, "cidr", cidr) @@ -518,7 +1556,7 @@ def __init__(__self__, *, @pulumi.getter def cidr(self) -> str: """ - CIDR of the AWS node group + CIDR of the network """ return pulumi.get(self, "cidr") @@ -542,7 +1580,7 @@ def external_id(self) -> str: @pulumi.getter def name(self) -> str: """ - IP address of the node + Name of the firewall rule """ return pulumi.get(self, "name") @@ -579,7 +1617,7 @@ def __init__(__self__, *, """ :param str availability_zone: Cloud provider availability zone name :param str instance_type: Instance type used for the node - :param str name: IP address of the node + :param str name: Name of the firewall rule :param str region: Region of the network :param int volume_iops: Volume IOPS of the node data volume :param int volume_size: Volume size of the node data volume @@ -614,7 +1652,7 @@ def instance_type(self) -> str: @pulumi.getter def name(self) -> str: """ - IP address of the node + Name of the firewall rule """ return pulumi.get(self, "name") @@ -659,72 +1697,91 @@ def volume_type(self) -> str: @pulumi.output_type class GetDatabasesDatabaseResult(dict): def __init__(__self__, *, + backups: 'outputs.GetDatabasesDatabaseBackupsResult', cluster_id: str, components: Sequence['outputs.GetDatabasesDatabaseComponentResult'], + config_version: str, created_at: str, domain: str, extensions: 'outputs.GetDatabasesDatabaseExtensionsResult', id: str, name: str, + nodes: Mapping[str, 'outputs.GetDatabasesDatabaseNodesResult'], options: Sequence[str], pg_version: str, roles: Sequence['outputs.GetDatabasesDatabaseRoleResult'], status: str, - storage_used: int, - tables: Sequence['outputs.GetDatabasesDatabaseTableResult'], - updated_at: str, - config_version: Optional[str] = None, - nodes: Optional[Sequence['outputs.GetDatabasesDatabaseNodeResult']] = None): - """ - :param str cluster_id: Updated at of the database - :param str created_at: Created at of the database + updated_at: str): + """ + :param 'GetDatabasesDatabaseBackupsArgs' backups: Backup configuration for the database + :param str cluster_id: ID of the cluster this database belongs to + :param Sequence['GetDatabasesDatabaseComponentArgs'] components: Components of the database + :param str config_version: Configuration version of the database + :param str created_at: Creation timestamp of the database :param str domain: Domain of the database + :param 'GetDatabasesDatabaseExtensionsArgs' extensions: Extensions configuration for the database :param str id: ID of the database :param str name: Name of the database - :param Sequence[str] options: Options for creating the database - :param str pg_version: Postgres version of the database + :param Mapping[str, 'GetDatabasesDatabaseNodesArgs'] nodes: Map of nodes in the database + :param Sequence[str] options: Options for the database + :param str pg_version: PostgreSQL version of the database + :param Sequence['GetDatabasesDatabaseRoleArgs'] roles: Roles in the database :param str status: Status of the database - :param int storage_used: Storage used of the database - :param str updated_at: Updated at of the database - :param str config_version: Config version of the database + :param str updated_at: Last update timestamp of the database """ + pulumi.set(__self__, "backups", backups) pulumi.set(__self__, "cluster_id", cluster_id) pulumi.set(__self__, "components", components) + pulumi.set(__self__, "config_version", config_version) pulumi.set(__self__, "created_at", created_at) pulumi.set(__self__, "domain", domain) pulumi.set(__self__, "extensions", extensions) pulumi.set(__self__, "id", id) pulumi.set(__self__, "name", name) + pulumi.set(__self__, "nodes", nodes) pulumi.set(__self__, "options", options) pulumi.set(__self__, "pg_version", pg_version) pulumi.set(__self__, "roles", roles) pulumi.set(__self__, "status", status) - pulumi.set(__self__, "storage_used", storage_used) - pulumi.set(__self__, "tables", tables) pulumi.set(__self__, "updated_at", updated_at) - if config_version is not None: - pulumi.set(__self__, "config_version", config_version) - if nodes is not None: - pulumi.set(__self__, "nodes", nodes) + + @property + @pulumi.getter + def backups(self) -> 'outputs.GetDatabasesDatabaseBackupsResult': + """ + Backup configuration for the database + """ + return pulumi.get(self, "backups") @property @pulumi.getter(name="clusterId") def cluster_id(self) -> str: """ - Updated at of the database + ID of the cluster this database belongs to """ return pulumi.get(self, "cluster_id") @property @pulumi.getter def components(self) -> Sequence['outputs.GetDatabasesDatabaseComponentResult']: + """ + Components of the database + """ return pulumi.get(self, "components") + @property + @pulumi.getter(name="configVersion") + def config_version(self) -> str: + """ + Configuration version of the database + """ + return pulumi.get(self, "config_version") + @property @pulumi.getter(name="createdAt") def created_at(self) -> str: """ - Created at of the database + Creation timestamp of the database """ return pulumi.get(self, "created_at") @@ -739,6 +1796,9 @@ def domain(self) -> str: @property @pulumi.getter def extensions(self) -> 'outputs.GetDatabasesDatabaseExtensionsResult': + """ + Extensions configuration for the database + """ return pulumi.get(self, "extensions") @property @@ -750,75 +1810,281 @@ def id(self) -> str: return pulumi.get(self, "id") @property - @pulumi.getter - def name(self) -> str: - """ - Name of the database - """ - return pulumi.get(self, "name") + @pulumi.getter + def name(self) -> str: + """ + Name of the database + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def nodes(self) -> Mapping[str, 'outputs.GetDatabasesDatabaseNodesResult']: + """ + Map of nodes in the database + """ + return pulumi.get(self, "nodes") + + @property + @pulumi.getter + def options(self) -> Sequence[str]: + """ + Options for the database + """ + return pulumi.get(self, "options") + + @property + @pulumi.getter(name="pgVersion") + def pg_version(self) -> str: + """ + PostgreSQL version of the database + """ + return pulumi.get(self, "pg_version") + + @property + @pulumi.getter + def roles(self) -> Sequence['outputs.GetDatabasesDatabaseRoleResult']: + """ + Roles in the database + """ + return pulumi.get(self, "roles") + + @property + @pulumi.getter + def status(self) -> str: + """ + Status of the database + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + """ + Last update timestamp of the database + """ + return pulumi.get(self, "updated_at") + + +@pulumi.output_type +class GetDatabasesDatabaseBackupsResult(dict): + def __init__(__self__, *, + configs: Sequence['outputs.GetDatabasesDatabaseBackupsConfigResult'], + provider: str): + """ + :param Sequence['GetDatabasesDatabaseBackupsConfigArgs'] configs: Backup configurations + :param str provider: Backup provider + """ + pulumi.set(__self__, "configs", configs) + pulumi.set(__self__, "provider", provider) + + @property + @pulumi.getter + def configs(self) -> Sequence['outputs.GetDatabasesDatabaseBackupsConfigResult']: + """ + Backup configurations + """ + return pulumi.get(self, "configs") + + @property + @pulumi.getter + def provider(self) -> str: + """ + Backup provider + """ + return pulumi.get(self, "provider") + + +@pulumi.output_type +class GetDatabasesDatabaseBackupsConfigResult(dict): + def __init__(__self__, *, + id: str, + node_name: str, + repositories: Sequence['outputs.GetDatabasesDatabaseBackupsConfigRepositoryResult'], + schedules: Sequence['outputs.GetDatabasesDatabaseBackupsConfigScheduleResult']): + """ + :param str id: Backup configuration ID + :param str node_name: Node name + :param Sequence['GetDatabasesDatabaseBackupsConfigRepositoryArgs'] repositories: Backup repositories + :param Sequence['GetDatabasesDatabaseBackupsConfigScheduleArgs'] schedules: Backup schedules + """ + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "node_name", node_name) + pulumi.set(__self__, "repositories", repositories) + pulumi.set(__self__, "schedules", schedules) + + @property + @pulumi.getter + def id(self) -> str: + """ + Backup configuration ID + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="nodeName") + def node_name(self) -> str: + """ + Node name + """ + return pulumi.get(self, "node_name") + + @property + @pulumi.getter + def repositories(self) -> Sequence['outputs.GetDatabasesDatabaseBackupsConfigRepositoryResult']: + """ + Backup repositories + """ + return pulumi.get(self, "repositories") + + @property + @pulumi.getter + def schedules(self) -> Sequence['outputs.GetDatabasesDatabaseBackupsConfigScheduleResult']: + """ + Backup schedules + """ + return pulumi.get(self, "schedules") + + +@pulumi.output_type +class GetDatabasesDatabaseBackupsConfigRepositoryResult(dict): + def __init__(__self__, *, + azure_account: str, + azure_container: str, + azure_endpoint: str, + backup_store_id: str, + base_path: str, + gcs_bucket: str, + gcs_endpoint: str, + id: str, + retention_full: int, + retention_full_type: str, + s3_bucket: str, + s3_endpoint: str, + s3_region: str, + type: str): + """ + :param str id: Backup configuration ID + """ + pulumi.set(__self__, "azure_account", azure_account) + pulumi.set(__self__, "azure_container", azure_container) + pulumi.set(__self__, "azure_endpoint", azure_endpoint) + pulumi.set(__self__, "backup_store_id", backup_store_id) + pulumi.set(__self__, "base_path", base_path) + pulumi.set(__self__, "gcs_bucket", gcs_bucket) + pulumi.set(__self__, "gcs_endpoint", gcs_endpoint) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "retention_full", retention_full) + pulumi.set(__self__, "retention_full_type", retention_full_type) + pulumi.set(__self__, "s3_bucket", s3_bucket) + pulumi.set(__self__, "s3_endpoint", s3_endpoint) + pulumi.set(__self__, "s3_region", s3_region) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="azureAccount") + def azure_account(self) -> str: + return pulumi.get(self, "azure_account") + + @property + @pulumi.getter(name="azureContainer") + def azure_container(self) -> str: + return pulumi.get(self, "azure_container") + + @property + @pulumi.getter(name="azureEndpoint") + def azure_endpoint(self) -> str: + return pulumi.get(self, "azure_endpoint") + + @property + @pulumi.getter(name="backupStoreId") + def backup_store_id(self) -> str: + return pulumi.get(self, "backup_store_id") + + @property + @pulumi.getter(name="basePath") + def base_path(self) -> str: + return pulumi.get(self, "base_path") + + @property + @pulumi.getter(name="gcsBucket") + def gcs_bucket(self) -> str: + return pulumi.get(self, "gcs_bucket") + + @property + @pulumi.getter(name="gcsEndpoint") + def gcs_endpoint(self) -> str: + return pulumi.get(self, "gcs_endpoint") @property @pulumi.getter - def options(self) -> Sequence[str]: + def id(self) -> str: """ - Options for creating the database + Backup configuration ID """ - return pulumi.get(self, "options") + return pulumi.get(self, "id") @property - @pulumi.getter(name="pgVersion") - def pg_version(self) -> str: - """ - Postgres version of the database - """ - return pulumi.get(self, "pg_version") + @pulumi.getter(name="retentionFull") + def retention_full(self) -> int: + return pulumi.get(self, "retention_full") @property - @pulumi.getter - def roles(self) -> Sequence['outputs.GetDatabasesDatabaseRoleResult']: - return pulumi.get(self, "roles") + @pulumi.getter(name="retentionFullType") + def retention_full_type(self) -> str: + return pulumi.get(self, "retention_full_type") @property - @pulumi.getter - def status(self) -> str: - """ - Status of the database - """ - return pulumi.get(self, "status") + @pulumi.getter(name="s3Bucket") + def s3_bucket(self) -> str: + return pulumi.get(self, "s3_bucket") @property - @pulumi.getter(name="storageUsed") - def storage_used(self) -> int: - """ - Storage used of the database - """ - return pulumi.get(self, "storage_used") + @pulumi.getter(name="s3Endpoint") + def s3_endpoint(self) -> str: + return pulumi.get(self, "s3_endpoint") @property - @pulumi.getter - def tables(self) -> Sequence['outputs.GetDatabasesDatabaseTableResult']: - return pulumi.get(self, "tables") + @pulumi.getter(name="s3Region") + def s3_region(self) -> str: + return pulumi.get(self, "s3_region") @property - @pulumi.getter(name="updatedAt") - def updated_at(self) -> str: + @pulumi.getter + def type(self) -> str: + return pulumi.get(self, "type") + + +@pulumi.output_type +class GetDatabasesDatabaseBackupsConfigScheduleResult(dict): + def __init__(__self__, *, + cron_expression: str, + id: str, + type: str): """ - Updated at of the database + :param str id: Backup configuration ID """ - return pulumi.get(self, "updated_at") + pulumi.set(__self__, "cron_expression", cron_expression) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "type", type) @property - @pulumi.getter(name="configVersion") - def config_version(self) -> Optional[str]: + @pulumi.getter(name="cronExpression") + def cron_expression(self) -> str: + return pulumi.get(self, "cron_expression") + + @property + @pulumi.getter + def id(self) -> str: """ - Config version of the database + Backup configuration ID """ - return pulumi.get(self, "config_version") + return pulumi.get(self, "id") @property @pulumi.getter - def nodes(self) -> Optional[Sequence['outputs.GetDatabasesDatabaseNodeResult']]: - return pulumi.get(self, "nodes") + def type(self) -> str: + return pulumi.get(self, "type") @pulumi.output_type @@ -830,11 +2096,11 @@ def __init__(__self__, *, status: str, version: str): """ - :param str id: Id of the component - :param str name: Name of the component - :param str release_date: Release date of the component - :param str status: Status of the component - :param str version: Version of the component + :param str id: Backup configuration ID + :param str name: Component name + :param str release_date: Component release date + :param str status: Component status + :param str version: Component version """ pulumi.set(__self__, "id", id) pulumi.set(__self__, "name", name) @@ -846,7 +2112,7 @@ def __init__(__self__, *, @pulumi.getter def id(self) -> str: """ - Id of the component + Backup configuration ID """ return pulumi.get(self, "id") @@ -854,7 +2120,7 @@ def id(self) -> str: @pulumi.getter def name(self) -> str: """ - Name of the component + Component name """ return pulumi.get(self, "name") @@ -862,7 +2128,7 @@ def name(self) -> str: @pulumi.getter(name="releaseDate") def release_date(self) -> str: """ - Release date of the component + Component release date """ return pulumi.get(self, "release_date") @@ -870,7 +2136,7 @@ def release_date(self) -> str: @pulumi.getter def status(self) -> str: """ - Status of the component + Component status """ return pulumi.get(self, "status") @@ -878,7 +2144,7 @@ def status(self) -> str: @pulumi.getter def version(self) -> str: """ - Version of the component + Component version """ return pulumi.get(self, "version") @@ -890,9 +2156,9 @@ def __init__(__self__, *, availables: Sequence[str], requesteds: Sequence[str]): """ - :param bool auto_manage: Auto manage of the extension - :param Sequence[str] availables: Available of the extension - :param Sequence[str] requesteds: Requested of the extension + :param bool auto_manage: Auto-manage extensions + :param Sequence[str] availables: Available extensions + :param Sequence[str] requesteds: Requested extensions """ pulumi.set(__self__, "auto_manage", auto_manage) pulumi.set(__self__, "availables", availables) @@ -902,7 +2168,7 @@ def __init__(__self__, *, @pulumi.getter(name="autoManage") def auto_manage(self) -> bool: """ - Auto manage of the extension + Auto-manage extensions """ return pulumi.get(self, "auto_manage") @@ -910,7 +2176,7 @@ def auto_manage(self) -> bool: @pulumi.getter def availables(self) -> Sequence[str]: """ - Available of the extension + Available extensions """ return pulumi.get(self, "availables") @@ -918,26 +2184,27 @@ def availables(self) -> Sequence[str]: @pulumi.getter def requesteds(self) -> Sequence[str]: """ - Requested of the extension + Requested extensions """ return pulumi.get(self, "requesteds") @pulumi.output_type -class GetDatabasesDatabaseNodeResult(dict): +class GetDatabasesDatabaseNodesResult(dict): def __init__(__self__, *, - connection: 'outputs.GetDatabasesDatabaseNodeConnectionResult', - distance_measurement: 'outputs.GetDatabasesDatabaseNodeDistanceMeasurementResult', - extensions: 'outputs.GetDatabasesDatabaseNodeExtensionsResult', - location: 'outputs.GetDatabasesDatabaseNodeLocationResult', + connection: 'outputs.GetDatabasesDatabaseNodesConnectionResult', + extensions: 'outputs.GetDatabasesDatabaseNodesExtensionsResult', + location: 'outputs.GetDatabasesDatabaseNodesLocationResult', name: str, - region: 'outputs.GetDatabasesDatabaseNodeRegionResult'): + region: 'outputs.GetDatabasesDatabaseNodesRegionResult'): """ - :param str name: Name of the component - :param 'GetDatabasesDatabaseNodeRegionArgs' region: Region of the location + :param 'GetDatabasesDatabaseNodesConnectionArgs' connection: Node connection details + :param 'GetDatabasesDatabaseNodesExtensionsArgs' extensions: Extensions configuration for the database + :param 'GetDatabasesDatabaseNodesLocationArgs' location: Node location + :param str name: Component name + :param 'GetDatabasesDatabaseNodesRegionArgs' region: Node region """ pulumi.set(__self__, "connection", connection) - pulumi.set(__self__, "distance_measurement", distance_measurement) pulumi.set(__self__, "extensions", extensions) pulumi.set(__self__, "location", location) pulumi.set(__self__, "name", name) @@ -945,43 +2212,47 @@ def __init__(__self__, *, @property @pulumi.getter - def connection(self) -> 'outputs.GetDatabasesDatabaseNodeConnectionResult': + def connection(self) -> 'outputs.GetDatabasesDatabaseNodesConnectionResult': + """ + Node connection details + """ return pulumi.get(self, "connection") - @property - @pulumi.getter(name="distanceMeasurement") - def distance_measurement(self) -> 'outputs.GetDatabasesDatabaseNodeDistanceMeasurementResult': - return pulumi.get(self, "distance_measurement") - @property @pulumi.getter - def extensions(self) -> 'outputs.GetDatabasesDatabaseNodeExtensionsResult': + def extensions(self) -> 'outputs.GetDatabasesDatabaseNodesExtensionsResult': + """ + Extensions configuration for the database + """ return pulumi.get(self, "extensions") @property @pulumi.getter - def location(self) -> 'outputs.GetDatabasesDatabaseNodeLocationResult': + def location(self) -> 'outputs.GetDatabasesDatabaseNodesLocationResult': + """ + Node location + """ return pulumi.get(self, "location") @property @pulumi.getter def name(self) -> str: """ - Name of the component + Component name """ return pulumi.get(self, "name") @property @pulumi.getter - def region(self) -> 'outputs.GetDatabasesDatabaseNodeRegionResult': + def region(self) -> 'outputs.GetDatabasesDatabaseNodesRegionResult': """ - Region of the location + Node region """ return pulumi.get(self, "region") @pulumi.output_type -class GetDatabasesDatabaseNodeConnectionResult(dict): +class GetDatabasesDatabaseNodesConnectionResult(dict): def __init__(__self__, *, database: str, external_ip_address: str, @@ -991,16 +2262,6 @@ def __init__(__self__, *, password: str, port: int, username: str): - """ - :param str database: Database of the node - :param str external_ip_address: External IP of the node - :param str host: Host of the node - :param str internal_host: Internal Host of the node - :param str internal_ip_address: Internal IP of the node - :param str password: Password of the node - :param int port: Port of the node - :param str username: Username of the node - """ pulumi.set(__self__, "database", database) pulumi.set(__self__, "external_ip_address", external_ip_address) pulumi.set(__self__, "host", host) @@ -1013,197 +2274,65 @@ def __init__(__self__, *, @property @pulumi.getter def database(self) -> str: - """ - Database of the node - """ return pulumi.get(self, "database") @property @pulumi.getter(name="externalIpAddress") def external_ip_address(self) -> str: - """ - External IP of the node - """ return pulumi.get(self, "external_ip_address") @property @pulumi.getter def host(self) -> str: - """ - Host of the node - """ return pulumi.get(self, "host") @property @pulumi.getter(name="internalHost") def internal_host(self) -> str: - """ - Internal Host of the node - """ return pulumi.get(self, "internal_host") @property @pulumi.getter(name="internalIpAddress") def internal_ip_address(self) -> str: - """ - Internal IP of the node - """ return pulumi.get(self, "internal_ip_address") @property @pulumi.getter def password(self) -> str: - """ - Password of the node - """ return pulumi.get(self, "password") @property @pulumi.getter def port(self) -> int: - """ - Port of the node - """ return pulumi.get(self, "port") @property @pulumi.getter def username(self) -> str: - """ - Username of the node - """ return pulumi.get(self, "username") @pulumi.output_type -class GetDatabasesDatabaseNodeDistanceMeasurementResult(dict): - def __init__(__self__, *, - distance: float, - from_latitude: float, - from_longitude: float, - unit: str): - """ - :param float distance: Distance from a reference point - :param float from_latitude: Latitude of the reference point - :param float from_longitude: Longitude of the reference point - :param str unit: Unit of distance measurement - """ - pulumi.set(__self__, "distance", distance) - pulumi.set(__self__, "from_latitude", from_latitude) - pulumi.set(__self__, "from_longitude", from_longitude) - pulumi.set(__self__, "unit", unit) - - @property - @pulumi.getter - def distance(self) -> float: - """ - Distance from a reference point - """ - return pulumi.get(self, "distance") - - @property - @pulumi.getter(name="fromLatitude") - def from_latitude(self) -> float: - """ - Latitude of the reference point - """ - return pulumi.get(self, "from_latitude") - - @property - @pulumi.getter(name="fromLongitude") - def from_longitude(self) -> float: - """ - Longitude of the reference point - """ - return pulumi.get(self, "from_longitude") - - @property - @pulumi.getter - def unit(self) -> str: - """ - Unit of distance measurement - """ - return pulumi.get(self, "unit") - - -@pulumi.output_type -class GetDatabasesDatabaseNodeExtensionsResult(dict): +class GetDatabasesDatabaseNodesExtensionsResult(dict): def __init__(__self__, *, - errors: 'outputs.GetDatabasesDatabaseNodeExtensionsErrorsResult', + errors: Mapping[str, str], installeds: Sequence[str]): - """ - :param Sequence[str] installeds: List of installed extensions - """ pulumi.set(__self__, "errors", errors) pulumi.set(__self__, "installeds", installeds) @property @pulumi.getter - def errors(self) -> 'outputs.GetDatabasesDatabaseNodeExtensionsErrorsResult': + def errors(self) -> Mapping[str, str]: return pulumi.get(self, "errors") @property @pulumi.getter def installeds(self) -> Sequence[str]: - """ - List of installed extensions - """ return pulumi.get(self, "installeds") @pulumi.output_type -class GetDatabasesDatabaseNodeExtensionsErrorsResult(dict): - def __init__(__self__, *, - anim9ef: str, - enim3b: str, - laborumd: str, - mollit267: str): - """ - :param str anim9ef: Error code anim9ef - :param str enim3b: Error code enim3b - :param str laborumd: Error code laborumd - :param str mollit267: Error code mollit267 - """ - pulumi.set(__self__, "anim9ef", anim9ef) - pulumi.set(__self__, "enim3b", enim3b) - pulumi.set(__self__, "laborumd", laborumd) - pulumi.set(__self__, "mollit267", mollit267) - - @property - @pulumi.getter - def anim9ef(self) -> str: - """ - Error code anim9ef - """ - return pulumi.get(self, "anim9ef") - - @property - @pulumi.getter - def enim3b(self) -> str: - """ - Error code enim3b - """ - return pulumi.get(self, "enim3b") - - @property - @pulumi.getter - def laborumd(self) -> str: - """ - Error code laborumd - """ - return pulumi.get(self, "laborumd") - - @property - @pulumi.getter - def mollit267(self) -> str: - """ - Error code mollit267 - """ - return pulumi.get(self, "mollit267") - - -@pulumi.output_type -class GetDatabasesDatabaseNodeLocationResult(dict): +class GetDatabasesDatabaseNodesLocationResult(dict): def __init__(__self__, *, city: str, code: str, @@ -1217,17 +2346,7 @@ def __init__(__self__, *, region_code: str, timezone: str): """ - :param str city: City of the location - :param str code: Code of the location - :param str country: Country of the location - :param float latitude: Latitude of the location - :param float longitude: Longitude of the location - :param str metro_code: Metro code of the location - :param str name: Name of the component - :param str postal_code: Postal code of the location - :param str region: Region of the location - :param str region_code: Region code of the location - :param str timezone: Timezone of the location + :param str name: Component name """ pulumi.set(__self__, "city", city) pulumi.set(__self__, "code", code) @@ -1244,94 +2363,64 @@ def __init__(__self__, *, @property @pulumi.getter def city(self) -> str: - """ - City of the location - """ return pulumi.get(self, "city") @property @pulumi.getter def code(self) -> str: - """ - Code of the location - """ return pulumi.get(self, "code") @property @pulumi.getter def country(self) -> str: - """ - Country of the location - """ return pulumi.get(self, "country") @property @pulumi.getter def latitude(self) -> float: - """ - Latitude of the location - """ return pulumi.get(self, "latitude") @property @pulumi.getter def longitude(self) -> float: - """ - Longitude of the location - """ return pulumi.get(self, "longitude") @property @pulumi.getter(name="metroCode") def metro_code(self) -> str: - """ - Metro code of the location - """ return pulumi.get(self, "metro_code") @property @pulumi.getter def name(self) -> str: """ - Name of the component + Component name """ return pulumi.get(self, "name") @property @pulumi.getter(name="postalCode") def postal_code(self) -> str: - """ - Postal code of the location - """ return pulumi.get(self, "postal_code") @property @pulumi.getter def region(self) -> str: - """ - Region of the location - """ return pulumi.get(self, "region") @property @pulumi.getter(name="regionCode") def region_code(self) -> str: - """ - Region code of the location - """ return pulumi.get(self, "region_code") @property @pulumi.getter def timezone(self) -> str: - """ - Timezone of the location - """ return pulumi.get(self, "timezone") @pulumi.output_type -class GetDatabasesDatabaseNodeRegionResult(dict): +class GetDatabasesDatabaseNodesRegionResult(dict): def __init__(__self__, *, active: bool, availability_zones: Sequence[str], @@ -1340,12 +2429,7 @@ def __init__(__self__, *, name: str, parent: str): """ - :param bool active: Active status of the region - :param Sequence[str] availability_zones: Availability zones of the region - :param str cloud: Cloud provider of the region - :param str code: Code of the location - :param str name: Name of the component - :param str parent: Parent region + :param str name: Component name """ pulumi.set(__self__, "active", active) pulumi.set(__self__, "availability_zones", availability_zones) @@ -1357,49 +2441,34 @@ def __init__(__self__, *, @property @pulumi.getter def active(self) -> bool: - """ - Active status of the region - """ return pulumi.get(self, "active") @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Sequence[str]: - """ - Availability zones of the region - """ return pulumi.get(self, "availability_zones") @property @pulumi.getter def cloud(self) -> str: - """ - Cloud provider of the region - """ return pulumi.get(self, "cloud") @property @pulumi.getter def code(self) -> str: - """ - Code of the location - """ return pulumi.get(self, "code") @property @pulumi.getter def name(self) -> str: """ - Name of the component + Component name """ return pulumi.get(self, "name") @property @pulumi.getter def parent(self) -> str: - """ - Parent region - """ return pulumi.get(self, "parent") @@ -1416,15 +2485,7 @@ def __init__(__self__, *, replication: bool, superuser: bool): """ - :param bool bypass_rls: Bypass RLS - :param int connection_limit: Connection limit - :param bool create_db: Create database - :param bool create_role: Create role - :param bool inherit: Inherit - :param bool login: Login - :param str name: Name of the component - :param bool replication: Replication - :param bool superuser: Superuser + :param str name: Component name """ pulumi.set(__self__, "bypass_rls", bypass_rls) pulumi.set(__self__, "connection_limit", connection_limit) @@ -1439,266 +2500,100 @@ def __init__(__self__, *, @property @pulumi.getter(name="bypassRls") def bypass_rls(self) -> bool: - """ - Bypass RLS - """ return pulumi.get(self, "bypass_rls") @property @pulumi.getter(name="connectionLimit") def connection_limit(self) -> int: - """ - Connection limit - """ return pulumi.get(self, "connection_limit") @property @pulumi.getter(name="createDb") def create_db(self) -> bool: - """ - Create database - """ return pulumi.get(self, "create_db") @property @pulumi.getter(name="createRole") def create_role(self) -> bool: - """ - Create role - """ return pulumi.get(self, "create_role") @property @pulumi.getter def inherit(self) -> bool: - """ - Inherit - """ return pulumi.get(self, "inherit") @property @pulumi.getter def login(self) -> bool: - """ - Login - """ return pulumi.get(self, "login") @property @pulumi.getter def name(self) -> str: """ - Name of the component + Component name """ return pulumi.get(self, "name") @property @pulumi.getter def replication(self) -> bool: - """ - Replication - """ return pulumi.get(self, "replication") @property @pulumi.getter def superuser(self) -> bool: - """ - Superuser - """ return pulumi.get(self, "superuser") @pulumi.output_type -class GetDatabasesDatabaseTableResult(dict): +class GetSSHKeysSshKeyResult(dict): def __init__(__self__, *, - columns: Sequence['outputs.GetDatabasesDatabaseTableColumnResult'], + created_at: str, + id: str, name: str, - primary_keys: Sequence[str], - replication_sets: Sequence[str], - schema: str, - statuses: Sequence['outputs.GetDatabasesDatabaseTableStatusResult']): - """ - :param str name: Name of the component - :param Sequence[str] primary_keys: Primary key of the table - :param Sequence[str] replication_sets: Replication sets of the table - :param str schema: Schema of the table - :param Sequence['GetDatabasesDatabaseTableStatusArgs'] statuses: Status of the component - """ - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "primary_keys", primary_keys) - pulumi.set(__self__, "replication_sets", replication_sets) - pulumi.set(__self__, "schema", schema) - pulumi.set(__self__, "statuses", statuses) - - @property - @pulumi.getter - def columns(self) -> Sequence['outputs.GetDatabasesDatabaseTableColumnResult']: - return pulumi.get(self, "columns") - - @property - @pulumi.getter - def name(self) -> str: - """ - Name of the component - """ - return pulumi.get(self, "name") - - @property - @pulumi.getter(name="primaryKeys") - def primary_keys(self) -> Sequence[str]: + public_key: str): """ - Primary key of the table + :param str created_at: Creation time of the SSH key + :param str id: ID of the SSH key + :param str name: Name of the SSH key + :param str public_key: Public key """ - return pulumi.get(self, "primary_keys") - - @property - @pulumi.getter(name="replicationSets") - def replication_sets(self) -> Sequence[str]: - """ - Replication sets of the table - """ - return pulumi.get(self, "replication_sets") - - @property - @pulumi.getter - def schema(self) -> str: - """ - Schema of the table - """ - return pulumi.get(self, "schema") - - @property - @pulumi.getter - def statuses(self) -> Sequence['outputs.GetDatabasesDatabaseTableStatusResult']: - """ - Status of the component - """ - return pulumi.get(self, "statuses") - - -@pulumi.output_type -class GetDatabasesDatabaseTableColumnResult(dict): - def __init__(__self__, *, - data_type: str, - default: str, - is_nullable: bool, - is_primary_key: bool, - name: str, - ordinal_position: int): - """ - :param str data_type: Data type of the column - :param str default: Default of the column - :param bool is_nullable: Is nullable of the column - :param bool is_primary_key: Is primary key of the column - :param str name: Name of the component - :param int ordinal_position: Ordinal position of the column - """ - pulumi.set(__self__, "data_type", data_type) - pulumi.set(__self__, "default", default) - pulumi.set(__self__, "is_nullable", is_nullable) - pulumi.set(__self__, "is_primary_key", is_primary_key) + pulumi.set(__self__, "created_at", created_at) + pulumi.set(__self__, "id", id) pulumi.set(__self__, "name", name) - pulumi.set(__self__, "ordinal_position", ordinal_position) + pulumi.set(__self__, "public_key", public_key) @property - @pulumi.getter(name="dataType") - def data_type(self) -> str: + @pulumi.getter(name="createdAt") + def created_at(self) -> str: """ - Data type of the column + Creation time of the SSH key """ - return pulumi.get(self, "data_type") + return pulumi.get(self, "created_at") @property @pulumi.getter - def default(self) -> str: - """ - Default of the column - """ - return pulumi.get(self, "default") - - @property - @pulumi.getter(name="isNullable") - def is_nullable(self) -> bool: - """ - Is nullable of the column - """ - return pulumi.get(self, "is_nullable") - - @property - @pulumi.getter(name="isPrimaryKey") - def is_primary_key(self) -> bool: + def id(self) -> str: """ - Is primary key of the column + ID of the SSH key """ - return pulumi.get(self, "is_primary_key") + return pulumi.get(self, "id") @property @pulumi.getter def name(self) -> str: """ - Name of the component + Name of the SSH key """ return pulumi.get(self, "name") @property - @pulumi.getter(name="ordinalPosition") - def ordinal_position(self) -> int: - """ - Ordinal position of the column - """ - return pulumi.get(self, "ordinal_position") - - -@pulumi.output_type -class GetDatabasesDatabaseTableStatusResult(dict): - def __init__(__self__, *, - aligned: bool, - node_name: str, - present: bool, - replicating: bool): - """ - :param bool aligned: Aligned of the table - :param str node_name: Node name of the table - :param bool present: Present of the table - :param bool replicating: Replicating of the table - """ - pulumi.set(__self__, "aligned", aligned) - pulumi.set(__self__, "node_name", node_name) - pulumi.set(__self__, "present", present) - pulumi.set(__self__, "replicating", replicating) - - @property - @pulumi.getter - def aligned(self) -> bool: - """ - Aligned of the table - """ - return pulumi.get(self, "aligned") - - @property - @pulumi.getter(name="nodeName") - def node_name(self) -> str: - """ - Node name of the table - """ - return pulumi.get(self, "node_name") - - @property - @pulumi.getter - def present(self) -> bool: - """ - Present of the table - """ - return pulumi.get(self, "present") - - @property - @pulumi.getter - def replicating(self) -> bool: + @pulumi.getter(name="publicKey") + def public_key(self) -> str: """ - Replicating of the table + Public key """ - return pulumi.get(self, "replicating") + return pulumi.get(self, "public_key") diff --git a/sdk/python/pgEdge_pulumi_pgedge/provider.py b/sdk/python/pgEdge_pulumi_pgedge/provider.py index d065c4d..ca3b9d0 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/provider.py +++ b/sdk/python/pgEdge_pulumi_pgedge/provider.py @@ -19,6 +19,8 @@ def __init__(__self__, *, The set of arguments for constructing a Provider resource. :param pulumi.Input[str] base_url: Base Url to use when connecting to the PgEdge service. """ + if base_url is None: + base_url = _utilities.get_env('PGEDGE_BASE_URL') if base_url is not None: pulumi.set(__self__, "base_url", base_url) @@ -89,6 +91,8 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ProviderArgs.__new__(ProviderArgs) + if base_url is None: + base_url = _utilities.get_env('PGEDGE_BASE_URL') __props__.__dict__["base_url"] = base_url super(Provider, __self__).__init__( 'pgedge', diff --git a/sdk/python/pgEdge_pulumi_pgedge/pulumi-plugin.json b/sdk/python/pgEdge_pulumi_pgedge/pulumi-plugin.json index 33cf034..bc61944 100644 --- a/sdk/python/pgEdge_pulumi_pgedge/pulumi-plugin.json +++ b/sdk/python/pgEdge_pulumi_pgedge/pulumi-plugin.json @@ -1,4 +1,5 @@ { "resource": true, - "name": "pgedge" + "name": "pgedge", + "server": "github://api.github.com/pgEdge/pulumi-pgedge" } diff --git a/sdk/python/pgEdge_pulumi_pgedge/ssh_key.py b/sdk/python/pgEdge_pulumi_pgedge/ssh_key.py new file mode 100644 index 0000000..77afee8 --- /dev/null +++ b/sdk/python/pgEdge_pulumi_pgedge/ssh_key.py @@ -0,0 +1,221 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['SSHKeyArgs', 'SSHKey'] + +@pulumi.input_type +class SSHKeyArgs: + def __init__(__self__, *, + public_key: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a SSHKey resource. + :param pulumi.Input[str] public_key: The public key. + :param pulumi.Input[str] name: The name of the SSH key. + """ + pulumi.set(__self__, "public_key", public_key) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="publicKey") + def public_key(self) -> pulumi.Input[str]: + """ + The public key. + """ + return pulumi.get(self, "public_key") + + @public_key.setter + def public_key(self, value: pulumi.Input[str]): + pulumi.set(self, "public_key", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the SSH key. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _SSHKeyState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering SSHKey resources. + :param pulumi.Input[str] created_at: The timestamp when the SSH key was created. + :param pulumi.Input[str] name: The name of the SSH key. + :param pulumi.Input[str] public_key: The public key. + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if name is not None: + pulumi.set(__self__, "name", name) + if public_key is not None: + pulumi.set(__self__, "public_key", public_key) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + The timestamp when the SSH key was created. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the SSH key. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="publicKey") + def public_key(self) -> Optional[pulumi.Input[str]]: + """ + The public key. + """ + return pulumi.get(self, "public_key") + + @public_key.setter + def public_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "public_key", value) + + +class SSHKey(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages a pgEdge SSH key. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: The name of the SSH key. + :param pulumi.Input[str] public_key: The public key. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: SSHKeyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages a pgEdge SSH key. + + :param str resource_name: The name of the resource. + :param SSHKeyArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(SSHKeyArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = SSHKeyArgs.__new__(SSHKeyArgs) + + __props__.__dict__["name"] = name + if public_key is None and not opts.urn: + raise TypeError("Missing required property 'public_key'") + __props__.__dict__["public_key"] = public_key + __props__.__dict__["created_at"] = None + super(SSHKey, __self__).__init__( + 'pgedge:index/sSHKey:SSHKey', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None) -> 'SSHKey': + """ + Get an existing SSHKey resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] created_at: The timestamp when the SSH key was created. + :param pulumi.Input[str] name: The name of the SSH key. + :param pulumi.Input[str] public_key: The public key. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _SSHKeyState.__new__(_SSHKeyState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["name"] = name + __props__.__dict__["public_key"] = public_key + return SSHKey(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + The timestamp when the SSH key was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the SSH key. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="publicKey") + def public_key(self) -> pulumi.Output[str]: + """ + The public key. + """ + return pulumi.get(self, "public_key") + diff --git a/sdk/python/setup.py b/sdk/python/setup.py index f3b04c0..fe47f8f 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -24,7 +24,7 @@ def readme(): description="A Pulumi package for creating and managing pgedge cloud resources.", long_description=readme(), long_description_content_type='text/markdown', - keywords='pulumi pgedge category/cloud', + keywords='pulumi pgedge category/cloud category/database', url='https://www.pgedge.com', project_urls={ 'Repository': 'https://github.com/pgEdge/pulumi-pgedge'