mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-07-01 19:12:59 +00:00
* feat(acme): implement CRUD API for proxmox cluster ACME * feat(acme): implement acme_accounts data source * feat(acme): implement acme_account data source * fix(acme): wait for task status on account creation * feat(acme): implement account resource creation * feat(acme): implement account read * fix(acme): wait for task status on account update * feat(acme): implement account update * fix(acme): wait for task status on account deletion * feat(acme): implement account deletion * feat(acme): implement account import * feat(acme): provide correctly typed API response for `account` field * feat(acme): implement account schema for acme_account data source * fix(acme): read `location` into state in acme_account resource * fix(acme): ensure `name` of acme_account resource can't be changed * docs(acme): generate documentation * feat(acme): read back ACME account details from API * Revert "fix(acme): ensure `name` of acme_account resource can't be changed" * fix(acme): provide default for acme account name * fix(acme): acme account name can't be changed * chore(acme): update resource doc to clarify PVE auth requirements * chore(acme): add `created_at` attr to the resource, sort model fields & schema attributes alphabetically --------- Signed-off-by: Björn Brauer <zaubernerd@zaubernerd.de> Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com> Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
package cluster
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/bpg/terraform-provider-proxmox/proxmox/api"
|
|
"github.com/bpg/terraform-provider-proxmox/proxmox/cluster/acme"
|
|
clusterfirewall "github.com/bpg/terraform-provider-proxmox/proxmox/cluster/firewall"
|
|
"github.com/bpg/terraform-provider-proxmox/proxmox/cluster/ha"
|
|
"github.com/bpg/terraform-provider-proxmox/proxmox/cluster/mapping"
|
|
"github.com/bpg/terraform-provider-proxmox/proxmox/firewall"
|
|
)
|
|
|
|
// Client is an interface for accessing the Proxmox cluster API.
|
|
type Client struct {
|
|
api.Client
|
|
}
|
|
|
|
// ExpandPath expands a relative path to a full cluster API path.
|
|
func (c *Client) ExpandPath(path string) string {
|
|
return fmt.Sprintf("cluster/%s", path)
|
|
}
|
|
|
|
// Firewall returns a client for managing the cluster firewall.
|
|
func (c *Client) Firewall() clusterfirewall.API {
|
|
return &clusterfirewall.Client{
|
|
Client: firewall.Client{Client: c},
|
|
}
|
|
}
|
|
|
|
// HA returns a client for managing the cluster's High Availability features.
|
|
func (c *Client) HA() *ha.Client {
|
|
return &ha.Client{Client: c}
|
|
}
|
|
|
|
// HardwareMapping returns a client for managing the cluster's hardware mapping features.
|
|
func (c *Client) HardwareMapping() *mapping.Client {
|
|
return &mapping.Client{Client: c}
|
|
}
|
|
|
|
// ACME returns a client for managing the cluster's ACME features.
|
|
func (c *Client) ACME() *acme.Client {
|
|
return &acme.Client{Client: c}
|
|
}
|