From 0188d9871ed6cedc1aa9570ad08e3d4732ee3289 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2026 15:23:13 +0000 Subject: [PATCH] fix(deps): update module github.com/hetznercloud/hcloud-go/v2 to v2.49.0 --- go.mod | 2 +- go.sum | 2 + .../v2/hcloud/internal/version/version.go | 2 +- .../hcloud-go/v2/hcloud/network.go | 104 ++++++++++++++++++ .../hcloud-go/v2/hcloud/schema/network.go | 16 +++ .../hcloud-go/v2/hcloud/schema_gen.go | 4 + .../v2/hcloud/zz_network_client_iface.go | 12 ++ .../hcloud-go/v2/hcloud/zz_schema.go | 10 ++ .../v2/hcloud/zz_schema_converter.go | 33 ++++++ vendor/modules.txt | 2 +- 10 files changed, 184 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 652751be5..c73b1d2e4 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.4 github.com/hashicorp/go-multierror v1.1.1 - github.com/hetznercloud/hcloud-go/v2 v2.48.0 + github.com/hetznercloud/hcloud-go/v2 v2.49.0 github.com/jackc/pgx/v5 v5.11.0 github.com/johannesboyne/gofakes3 v1.2.0 github.com/jwx-go/jwkfetch/v4 v4.0.4 diff --git a/go.sum b/go.sum index 741487a2e..ff079ad5f 100644 --- a/go.sum +++ b/go.sum @@ -240,6 +240,8 @@ github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hetznercloud/hcloud-go/v2 v2.48.0 h1:P3biOxqEufOxp2xBEZTZGIl56xK4sFbwLkCW/52AbiE= github.com/hetznercloud/hcloud-go/v2 v2.48.0/go.mod h1:J9QH6j8pRH0K3+HlqgOlQ8abXagWTD/GpTkfra2et+g= +github.com/hetznercloud/hcloud-go/v2 v2.49.0 h1:QXONxfgXIF99PFJknkVw+LrQQB4PB5IbEjEDh4Hfmig= +github.com/hetznercloud/hcloud-go/v2 v2.49.0/go.mod h1:J9QH6j8pRH0K3+HlqgOlQ8abXagWTD/GpTkfra2et+g= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= diff --git a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/internal/version/version.go b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/internal/version/version.go index a808f2a4e..9671c0b05 100644 --- a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/internal/version/version.go +++ b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/internal/version/version.go @@ -1,4 +1,4 @@ package version // Version is the library's version following Semantic Versioning. -const Version = "2.48.0" // x-releaser-pleaser-version +const Version = "2.49.0" // x-releaser-pleaser-version diff --git a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/network.go b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/network.go index d467eebe4..429a115d7 100644 --- a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/network.go +++ b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/network.go @@ -84,6 +84,47 @@ type NetworkProtection struct { Delete bool } +// NetworkMember represents a resource attached to a [Network]. +type NetworkMember struct { + Type NetworkMemberType + ID int64 + IP net.IP + Status NetworkMemberStatus + AliasIPs []net.IP + Subnet *net.IPNet +} + +// NetworkMemberType specifies the type of a resource attached to a [Network]. +type NetworkMemberType string + +// List of available [NetworkMember] types. +const ( + // NetworkMemberTypeServer is a [Server] attached to a [Network]. + NetworkMemberTypeServer NetworkMemberType = "server" + // NetworkMemberTypeLoadBalancer is a [LoadBalancer] attached to a [Network]. + NetworkMemberTypeLoadBalancer NetworkMemberType = "load_balancer" +) + +// NetworkMemberStatus specifies the status of a resource attached to a [Network]. +type NetworkMemberStatus string + +// List of available [NetworkMember] statuses. +const ( + // NetworkMemberStatusOK indicates the resource is attached and its network + // configuration is up to date. + NetworkMemberStatusOK NetworkMemberStatus = "ok" + // NetworkMemberStatusAttaching indicates the resource is being attached to the [Network]. + NetworkMemberStatusAttaching NetworkMemberStatus = "attaching" + // NetworkMemberStatusDetaching indicates the resource is being detached from the [Network]. + NetworkMemberStatusDetaching NetworkMemberStatus = "detaching" + // NetworkMemberStatusUpdating indicates the resource network configuration is being updated. + NetworkMemberStatusUpdating NetworkMemberStatus = "updating" + // NetworkMemberStatusError indicates the last operation on this member failed. Its + // network configuration might be out of date, and the resource might not be + // reachable within the network. + NetworkMemberStatusError NetworkMemberStatus = "error" +) + // NetworkClient is a client for the network API. type NetworkClient struct { client *Client @@ -436,3 +477,66 @@ func (c *NetworkClient) ChangeProtection(ctx context.Context, network *Network, return ActionFromSchema(respBody.Action), resp, nil } + +// NetworkMemberListOpts specifies options for listing members of a [Network]. +type NetworkMemberListOpts struct { + ListOpts + Type []NetworkMemberType + Subnet []*net.IPNet + Status []NetworkMemberStatus + Sort []string +} + +func (l NetworkMemberListOpts) Values() url.Values { + vals := l.ListOpts.Values() + for _, t := range l.Type { + vals.Add("type", string(t)) + } + for _, s := range l.Subnet { + vals.Add("subnet", s.String()) + } + for _, s := range l.Status { + vals.Add("status", string(s)) + } + for _, s := range l.Sort { + vals.Add("sort", s) + } + return vals +} + +// ListMembers returns a list of [NetworkMember] attached to a specific [Network] for the given options. +// +// See https://docs.hetzner.cloud/reference/cloud#tag/networks/list_network_members +func (c *NetworkClient) ListMembers(ctx context.Context, network *Network, opts NetworkMemberListOpts) ([]*NetworkMember, *Response, error) { + const opPath = "/networks/%d/members?%s" + ctx = ctxutil.SetOpPath(ctx, opPath) + + reqPath := fmt.Sprintf(opPath, network.ID, opts.Values().Encode()) + + respBody, resp, err := getRequest[schema.NetworkMemberListResponse](ctx, c.client, reqPath) + if err != nil { + return nil, resp, err + } + + return allFromSchemaFunc(respBody.Members, NetworkMemberFromSchema), resp, nil +} + +// AllMembersWithOpts returns all [NetworkMember] attached to a specific [Network] for the given options. +// +// See https://docs.hetzner.cloud/reference/cloud#tag/networks/list_network_members +func (c *NetworkClient) AllMembersWithOpts(ctx context.Context, network *Network, opts NetworkMemberListOpts) ([]*NetworkMember, error) { + if opts.ListOpts.PerPage == 0 { + opts.ListOpts.PerPage = 50 + } + return iterPages(func(page int) ([]*NetworkMember, *Response, error) { + opts.Page = page + return c.ListMembers(ctx, network, opts) + }) +} + +// AllMembers returns all [NetworkMember] attached to a specific [Network]. +// +// See https://docs.hetzner.cloud/reference/cloud#tag/networks/list_network_members +func (c *NetworkClient) AllMembers(ctx context.Context, network *Network) ([]*NetworkMember, error) { + return c.AllMembersWithOpts(ctx, network, NetworkMemberListOpts{}) +} diff --git a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema/network.go b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema/network.go index 8fadc8f06..4f1a34618 100644 --- a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema/network.go +++ b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema/network.go @@ -153,3 +153,19 @@ type NetworkActionChangeProtectionRequest struct { type NetworkActionChangeProtectionResponse struct { Action Action `json:"action"` } + +// NetworkMember defines the schema of a resource attached to a network. +type NetworkMember struct { + Type string `json:"type"` + ID int64 `json:"id"` + IP string `json:"ip"` + Status string `json:"status"` + AliasIPs []string `json:"alias_ips"` + Subnet string `json:"subnet"` +} + +// NetworkMemberListResponse defines the schema of the response when +// listing members of a network. +type NetworkMemberListResponse struct { + Members []NetworkMember `json:"members"` +} diff --git a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema_gen.go b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema_gen.go index becc8daec..65b9c608e 100644 --- a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema_gen.go +++ b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/schema_gen.go @@ -218,6 +218,10 @@ type converter interface { SchemaFromNetworkRoute(NetworkRoute) schema.NetworkRoute + NetworkMemberFromSchema(schema.NetworkMember) *NetworkMember + + SchemaFromNetworkMember(*NetworkMember) schema.NetworkMember + LoadBalancerFromSchema(schema.LoadBalancer) *LoadBalancer // goverter:map OutgoingTraffic | mapZeroUint64ToNil diff --git a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_network_client_iface.go b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_network_client_iface.go index f8b752e34..11eb4cf8d 100644 --- a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_network_client_iface.go +++ b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_network_client_iface.go @@ -42,4 +42,16 @@ type INetworkClient interface { DeleteRoute(ctx context.Context, network *Network, opts NetworkDeleteRouteOpts) (*Action, *Response, error) // ChangeProtection changes the resource protection level of a network. ChangeProtection(ctx context.Context, network *Network, opts NetworkChangeProtectionOpts) (*Action, *Response, error) + // ListMembers returns a list of [NetworkMember] attached to a specific [Network] for the given options. + // + // See https://docs.hetzner.cloud/reference/cloud#tag/networks/list_network_members + ListMembers(ctx context.Context, network *Network, opts NetworkMemberListOpts) ([]*NetworkMember, *Response, error) + // AllMembersWithOpts returns all [NetworkMember] attached to a specific [Network] for the given options. + // + // See https://docs.hetzner.cloud/reference/cloud#tag/networks/list_network_members + AllMembersWithOpts(ctx context.Context, network *Network, opts NetworkMemberListOpts) ([]*NetworkMember, error) + // AllMembers returns all [NetworkMember] attached to a specific [Network]. + // + // See https://docs.hetzner.cloud/reference/cloud#tag/networks/list_network_members + AllMembers(ctx context.Context, network *Network) ([]*NetworkMember, error) } diff --git a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema.go b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema.go index a9a71da85..d4c0cdbd1 100644 --- a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema.go +++ b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema.go @@ -115,6 +115,11 @@ func NetworkFromSchema(in schema.Network) *Network { return c.NetworkFromSchema(in) } +// NetworkMemberFromSchema converts schema.NetworkMember to *NetworkMember. +func NetworkMemberFromSchema(in schema.NetworkMember) *NetworkMember { + return c.NetworkMemberFromSchema(in) +} + // NetworkRouteFromSchema converts schema.NetworkRoute to NetworkRoute. func NetworkRouteFromSchema(in schema.NetworkRoute) NetworkRoute { return c.NetworkRouteFromSchema(in) @@ -290,6 +295,11 @@ func SchemaFromNetwork(in *Network) schema.Network { return c.SchemaFromNetwork(in) } +// SchemaFromNetworkMember converts *NetworkMember to schema.NetworkMember. +func SchemaFromNetworkMember(in *NetworkMember) schema.NetworkMember { + return c.SchemaFromNetworkMember(in) +} + // SchemaFromNetworkRoute converts NetworkRoute to schema.NetworkRoute. func SchemaFromNetworkRoute(in NetworkRoute) schema.NetworkRoute { return c.SchemaFromNetworkRoute(in) diff --git a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema_converter.go b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema_converter.go index babf986cd..aa9ef06fd 100644 --- a/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema_converter.go +++ b/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/zz_schema_converter.go @@ -341,6 +341,22 @@ func (c *converterImpl) NetworkFromSchema(source schema.Network) *Network { hcloudNetwork.ExposeRoutesToVSwitch = source.ExposeRoutesToVSwitch return &hcloudNetwork } +func (c *converterImpl) NetworkMemberFromSchema(source schema.NetworkMember) *NetworkMember { + var hcloudNetworkMember NetworkMember + hcloudNetworkMember.Type = NetworkMemberType(source.Type) + hcloudNetworkMember.ID = source.ID + hcloudNetworkMember.IP = ipFromString(source.IP) + hcloudNetworkMember.Status = NetworkMemberStatus(source.Status) + if source.AliasIPs != nil { + hcloudNetworkMember.AliasIPs = make([]net.IP, len(source.AliasIPs)) + for i := 0; i < len(source.AliasIPs); i++ { + hcloudNetworkMember.AliasIPs[i] = ipFromString(source.AliasIPs[i]) + } + } + netIPNet := ipNetFromString(source.Subnet) + hcloudNetworkMember.Subnet = &netIPNet + return &hcloudNetworkMember +} func (c *converterImpl) NetworkRouteFromSchema(source schema.NetworkRoute) NetworkRoute { var hcloudNetworkRoute NetworkRoute netIPNet := ipNetFromString(source.Destination) @@ -837,6 +853,23 @@ func (c *converterImpl) SchemaFromNetwork(source *Network) schema.Network { } return schemaNetwork } +func (c *converterImpl) SchemaFromNetworkMember(source *NetworkMember) schema.NetworkMember { + var schemaNetworkMember schema.NetworkMember + if source != nil { + schemaNetworkMember.Type = string((*source).Type) + schemaNetworkMember.ID = (*source).ID + schemaNetworkMember.IP = stringFromIP((*source).IP) + schemaNetworkMember.Status = string((*source).Status) + if (*source).AliasIPs != nil { + schemaNetworkMember.AliasIPs = make([]string, len((*source).AliasIPs)) + for i := 0; i < len((*source).AliasIPs); i++ { + schemaNetworkMember.AliasIPs[i] = stringFromIP((*source).AliasIPs[i]) + } + } + schemaNetworkMember.Subnet = c.pNetIPNetToString((*source).Subnet) + } + return schemaNetworkMember +} func (c *converterImpl) SchemaFromNetworkRoute(source NetworkRoute) schema.NetworkRoute { var schemaNetworkRoute schema.NetworkRoute schemaNetworkRoute.Destination = c.pNetIPNetToString(source.Destination) diff --git a/vendor/modules.txt b/vendor/modules.txt index 23591d72a..9412ac844 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -485,7 +485,7 @@ github.com/hashicorp/errwrap # github.com/hashicorp/go-multierror v1.1.1 ## explicit; go 1.13 github.com/hashicorp/go-multierror -# github.com/hetznercloud/hcloud-go/v2 v2.48.0 +# github.com/hetznercloud/hcloud-go/v2 v2.49.0 ## explicit; go 1.25.0 github.com/hetznercloud/hcloud-go/v2/hcloud github.com/hetznercloud/hcloud-go/v2/hcloud/exp/ctxutil