Nutanix v0.1.0 published on Tuesday, Sep 24, 2024 by Piers Karsenbarg
nutanix.getNdbDbserver
Explore with Pulumi AI
Nutanix v0.1.0 published on Tuesday, Sep 24, 2024 by Piers Karsenbarg
Describes Database Server VM in Nutanix Database Service
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as nutanix from "@pulumi/nutanix";
const dbserver = nutanix.getNdbDbserver({
ip: "{{ dbserver_vm_ip }}",
});
import pulumi
import pulumi_nutanix as nutanix
dbserver = nutanix.get_ndb_dbserver(ip="{{ dbserver_vm_ip }}")
package main
import (
"github.com/pierskarsenbarg/pulumi-nutanix/sdk/go/nutanix"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := nutanix.GetNdbDbserver(ctx, &nutanix.GetNdbDbserverArgs{
Ip: pulumi.StringRef("{{ dbserver_vm_ip }}"),
}, nil)
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Nutanix = Pulumi.Nutanix;
return await Deployment.RunAsync(() =>
{
var dbserver = Nutanix.GetNdbDbserver.Invoke(new()
{
Ip = "{{ dbserver_vm_ip }}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.nutanix.NutanixFunctions;
import com.pulumi.nutanix.inputs.GetNdbDbserverArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var dbserver = NutanixFunctions.getNdbDbserver(GetNdbDbserverArgs.builder()
.ip("{{ dbserver_vm_ip }}")
.build());
}
}
variables:
dbserver:
fn::invoke:
Function: nutanix:getNdbDbserver
Arguments:
ip: '{{ dbserver_vm_ip }}'
Using getNdbDbserver
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getNdbDbserver(args: GetNdbDbserverArgs, opts?: InvokeOptions): Promise<GetNdbDbserverResult>
function getNdbDbserverOutput(args: GetNdbDbserverOutputArgs, opts?: InvokeOptions): Output<GetNdbDbserverResult>
def get_ndb_dbserver(dbserver_cluster_id: Optional[str] = None,
id: Optional[str] = None,
ip: Optional[str] = None,
name: Optional[str] = None,
nx_cluster_id: Optional[str] = None,
tags: Optional[Sequence[GetNdbDbserverTag]] = None,
vm_cluster_id: Optional[str] = None,
vm_cluster_name: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetNdbDbserverResult
def get_ndb_dbserver_output(dbserver_cluster_id: Optional[pulumi.Input[str]] = None,
id: Optional[pulumi.Input[str]] = None,
ip: Optional[pulumi.Input[str]] = None,
name: Optional[pulumi.Input[str]] = None,
nx_cluster_id: Optional[pulumi.Input[str]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input[GetNdbDbserverTagArgs]]]] = None,
vm_cluster_id: Optional[pulumi.Input[str]] = None,
vm_cluster_name: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetNdbDbserverResult]
func GetNdbDbserver(ctx *Context, args *GetNdbDbserverArgs, opts ...InvokeOption) (*GetNdbDbserverResult, error)
func GetNdbDbserverOutput(ctx *Context, args *GetNdbDbserverOutputArgs, opts ...InvokeOption) GetNdbDbserverResultOutput
> Note: This function is named GetNdbDbserver
in the Go SDK.
public static class GetNdbDbserver
{
public static Task<GetNdbDbserverResult> InvokeAsync(GetNdbDbserverArgs args, InvokeOptions? opts = null)
public static Output<GetNdbDbserverResult> Invoke(GetNdbDbserverInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetNdbDbserverResult> getNdbDbserver(GetNdbDbserverArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
function: nutanix:index/getNdbDbserver:getNdbDbserver
arguments:
# arguments dictionary
The following arguments are supported:
- Dbserver
Cluster stringId - Id string
- id of database server vm
- Ip string
- ip of database server vm
- Name string
- name of database server vm
- Nx
Cluster stringId - List<Piers
Karsenbarg. Nutanix. Inputs. Get Ndb Dbserver Tag> - tags for db server vm
- Vm
Cluster stringId - vm cluster id of database server
- Vm
Cluster stringName - vm cluster name of database server
- Dbserver
Cluster stringId - Id string
- id of database server vm
- Ip string
- ip of database server vm
- Name string
- name of database server vm
- Nx
Cluster stringId - []Get
Ndb Dbserver Tag - tags for db server vm
- Vm
Cluster stringId - vm cluster id of database server
- Vm
Cluster stringName - vm cluster name of database server
- dbserver
Cluster StringId - id String
- id of database server vm
- ip String
- ip of database server vm
- name String
- name of database server vm
- nx
Cluster StringId - List<Get
Ndb Dbserver Tag> - tags for db server vm
- vm
Cluster StringId - vm cluster id of database server
- vm
Cluster StringName - vm cluster name of database server
- dbserver
Cluster stringId - id string
- id of database server vm
- ip string
- ip of database server vm
- name string
- name of database server vm
- nx
Cluster stringId - Get
Ndb Dbserver Tag[] - tags for db server vm
- vm
Cluster stringId - vm cluster id of database server
- vm
Cluster stringName - vm cluster name of database server
- dbserver_
cluster_ strid - id str
- id of database server vm
- ip str
- ip of database server vm
- name str
- name of database server vm
- nx_
cluster_ strid - Sequence[Get
Ndb Dbserver Tag] - tags for db server vm
- vm_
cluster_ strid - vm cluster id of database server
- vm_
cluster_ strname - vm cluster name of database server
- dbserver
Cluster StringId - id String
- id of database server vm
- ip String
- ip of database server vm
- name String
- name of database server vm
- nx
Cluster StringId - List<Property Map>
- tags for db server vm
- vm
Cluster StringId - vm cluster id of database server
- vm
Cluster StringName - vm cluster name of database server
getNdbDbserver Result
The following output properties are available:
- Access
Key stringId - access key id of dbserver vm
- Access
Level string - access level
- Associated
Time List<string>Machine Ids - associated time machines ids
- Client
Id string - client id
- Clustered bool
- clustered or not
- Database
Type string - database type
- Date
Created string - date created of db server vm
- Date
Modified string - date modified of db server vm
- Dbserver
Cluster stringId - Dbserver
Invalid boolEa State - dbserver invalid ea state
- Description string
- description of db server vm
- Era
Drive stringId - era drive id
- Era
Version string - era version
- Fqdns string
- Id string
- Ip
Addresses List<string> - IP addresses of the dbserver vm
- Is
Server boolDriven - is server down or not
- Mac
Addresses List<string> - Mac addresses of dbserver vm
- Name string
- Properties
List<Piers
Karsenbarg. Nutanix. Outputs. Get Ndb Dbserver Property> - properties of db server vm
- Protection
Domain stringId - protection domain id
- Query
Count int - query count
- Status string
- Status of Dbserver . Active or not.
- List<Piers
Karsenbarg. Nutanix. Outputs. Get Ndb Dbserver Tag> - tags for db server vm
- Type string
- Type of entity. i.e. Dbserver
- Valid
Diagnostic boolBundle State - valid diagnostic bundle state
- Vm
Cluster stringName - Vm
Cluster stringUuid - clusetr uuid for dbserver vm
- Vm
Infos List<PiersKarsenbarg. Nutanix. Outputs. Get Ndb Dbserver Vm Info> - info of dbserver vm
- Vm
Timezone string - timezone of dbserver vm
- Windows
Db boolServer - window db server
- Working
Directory string - working directory of db server vm
- Ip string
- Nx
Cluster stringId - Vm
Cluster stringId
- Access
Key stringId - access key id of dbserver vm
- Access
Level string - access level
- Associated
Time []stringMachine Ids - associated time machines ids
- Client
Id string - client id
- Clustered bool
- clustered or not
- Database
Type string - database type
- Date
Created string - date created of db server vm
- Date
Modified string - date modified of db server vm
- Dbserver
Cluster stringId - Dbserver
Invalid boolEa State - dbserver invalid ea state
- Description string
- description of db server vm
- Era
Drive stringId - era drive id
- Era
Version string - era version
- Fqdns string
- Id string
- Ip
Addresses []string - IP addresses of the dbserver vm
- Is
Server boolDriven - is server down or not
- Mac
Addresses []string - Mac addresses of dbserver vm
- Name string
- Properties
[]Get
Ndb Dbserver Property - properties of db server vm
- Protection
Domain stringId - protection domain id
- Query
Count int - query count
- Status string
- Status of Dbserver . Active or not.
- []Get
Ndb Dbserver Tag - tags for db server vm
- Type string
- Type of entity. i.e. Dbserver
- Valid
Diagnostic boolBundle State - valid diagnostic bundle state
- Vm
Cluster stringName - Vm
Cluster stringUuid - clusetr uuid for dbserver vm
- Vm
Infos []GetNdb Dbserver Vm Info - info of dbserver vm
- Vm
Timezone string - timezone of dbserver vm
- Windows
Db boolServer - window db server
- Working
Directory string - working directory of db server vm
- Ip string
- Nx
Cluster stringId - Vm
Cluster stringId
- access
Key StringId - access key id of dbserver vm
- access
Level String - access level
- associated
Time List<String>Machine Ids - associated time machines ids
- client
Id String - client id
- clustered Boolean
- clustered or not
- database
Type String - database type
- date
Created String - date created of db server vm
- date
Modified String - date modified of db server vm
- dbserver
Cluster StringId - dbserver
Invalid BooleanEa State - dbserver invalid ea state
- description String
- description of db server vm
- era
Drive StringId - era drive id
- era
Version String - era version
- fqdns String
- id String
- ip
Addresses List<String> - IP addresses of the dbserver vm
- is
Server BooleanDriven - is server down or not
- mac
Addresses List<String> - Mac addresses of dbserver vm
- name String
- properties
List<Get
Ndb Dbserver Property> - properties of db server vm
- protection
Domain StringId - protection domain id
- query
Count Integer - query count
- status String
- Status of Dbserver . Active or not.
- List<Get
Ndb Dbserver Tag> - tags for db server vm
- type String
- Type of entity. i.e. Dbserver
- valid
Diagnostic BooleanBundle State - valid diagnostic bundle state
- vm
Cluster StringName - vm
Cluster StringUuid - clusetr uuid for dbserver vm
- vm
Infos List<GetNdb Dbserver Vm Info> - info of dbserver vm
- vm
Timezone String - timezone of dbserver vm
- windows
Db BooleanServer - window db server
- working
Directory String - working directory of db server vm
- ip String
- nx
Cluster StringId - vm
Cluster StringId
- access
Key stringId - access key id of dbserver vm
- access
Level string - access level
- associated
Time string[]Machine Ids - associated time machines ids
- client
Id string - client id
- clustered boolean
- clustered or not
- database
Type string - database type
- date
Created string - date created of db server vm
- date
Modified string - date modified of db server vm
- dbserver
Cluster stringId - dbserver
Invalid booleanEa State - dbserver invalid ea state
- description string
- description of db server vm
- era
Drive stringId - era drive id
- era
Version string - era version
- fqdns string
- id string
- ip
Addresses string[] - IP addresses of the dbserver vm
- is
Server booleanDriven - is server down or not
- mac
Addresses string[] - Mac addresses of dbserver vm
- name string
- properties
Get
Ndb Dbserver Property[] - properties of db server vm
- protection
Domain stringId - protection domain id
- query
Count number - query count
- status string
- Status of Dbserver . Active or not.
- Get
Ndb Dbserver Tag[] - tags for db server vm
- type string
- Type of entity. i.e. Dbserver
- valid
Diagnostic booleanBundle State - valid diagnostic bundle state
- vm
Cluster stringName - vm
Cluster stringUuid - clusetr uuid for dbserver vm
- vm
Infos GetNdb Dbserver Vm Info[] - info of dbserver vm
- vm
Timezone string - timezone of dbserver vm
- windows
Db booleanServer - window db server
- working
Directory string - working directory of db server vm
- ip string
- nx
Cluster stringId - vm
Cluster stringId
- access_
key_ strid - access key id of dbserver vm
- access_
level str - access level
- associated_
time_ Sequence[str]machine_ ids - associated time machines ids
- client_
id str - client id
- clustered bool
- clustered or not
- database_
type str - database type
- date_
created str - date created of db server vm
- date_
modified str - date modified of db server vm
- dbserver_
cluster_ strid - dbserver_
invalid_ boolea_ state - dbserver invalid ea state
- description str
- description of db server vm
- era_
drive_ strid - era drive id
- era_
version str - era version
- fqdns str
- id str
- ip_
addresses Sequence[str] - IP addresses of the dbserver vm
- is_
server_ booldriven - is server down or not
- mac_
addresses Sequence[str] - Mac addresses of dbserver vm
- name str
- properties
Sequence[Get
Ndb Dbserver Property] - properties of db server vm
- protection_
domain_ strid - protection domain id
- query_
count int - query count
- status str
- Status of Dbserver . Active or not.
- Sequence[Get
Ndb Dbserver Tag] - tags for db server vm
- type str
- Type of entity. i.e. Dbserver
- valid_
diagnostic_ boolbundle_ state - valid diagnostic bundle state
- vm_
cluster_ strname - vm_
cluster_ struuid - clusetr uuid for dbserver vm
- vm_
infos Sequence[GetNdb Dbserver Vm Info] - info of dbserver vm
- vm_
timezone str - timezone of dbserver vm
- windows_
db_ boolserver - window db server
- working_
directory str - working directory of db server vm
- ip str
- nx_
cluster_ strid - vm_
cluster_ strid
- access
Key StringId - access key id of dbserver vm
- access
Level String - access level
- associated
Time List<String>Machine Ids - associated time machines ids
- client
Id String - client id
- clustered Boolean
- clustered or not
- database
Type String - database type
- date
Created String - date created of db server vm
- date
Modified String - date modified of db server vm
- dbserver
Cluster StringId - dbserver
Invalid BooleanEa State - dbserver invalid ea state
- description String
- description of db server vm
- era
Drive StringId - era drive id
- era
Version String - era version
- fqdns String
- id String
- ip
Addresses List<String> - IP addresses of the dbserver vm
- is
Server BooleanDriven - is server down or not
- mac
Addresses List<String> - Mac addresses of dbserver vm
- name String
- properties List<Property Map>
- properties of db server vm
- protection
Domain StringId - protection domain id
- query
Count Number - query count
- status String
- Status of Dbserver . Active or not.
- List<Property Map>
- tags for db server vm
- type String
- Type of entity. i.e. Dbserver
- valid
Diagnostic BooleanBundle State - valid diagnostic bundle state
- vm
Cluster StringName - vm
Cluster StringUuid - clusetr uuid for dbserver vm
- vm
Infos List<Property Map> - info of dbserver vm
- vm
Timezone String - timezone of dbserver vm
- windows
Db BooleanServer - window db server
- working
Directory String - working directory of db server vm
- ip String
- nx
Cluster StringId - vm
Cluster StringId
Supporting Types
GetNdbDbserverProperty
GetNdbDbserverTag
- Entity
Id string - Entity
Type string - Tag
Id string - Tag
Name string - Value string
- Entity
Id string - Entity
Type string - Tag
Id string - Tag
Name string - Value string
- entity
Id String - entity
Type String - tag
Id String - tag
Name String - value String
- entity
Id string - entity
Type string - tag
Id string - tag
Name string - value string
- entity_
id str - entity_
type str - tag_
id str - tag_
name str - value str
- entity
Id String - entity
Type String - tag
Id String - tag
Name String - value String
GetNdbDbserverVmInfo
- Deregister
Infos List<PiersKarsenbarg. Nutanix. Inputs. Get Ndb Dbserver Vm Info Deregister Info> - Distribution Dictionary<string, string>
- Infos
List<Piers
Karsenbarg. Nutanix. Inputs. Get Ndb Dbserver Vm Info Info> - Network
Infos List<PiersKarsenbarg. Nutanix. Inputs. Get Ndb Dbserver Vm Info Network Info> - Os
Type string - Os
Version string - Secure
Info Dictionary<string, string>
- Deregister
Infos []GetNdb Dbserver Vm Info Deregister Info - Distribution map[string]string
- Infos
[]Get
Ndb Dbserver Vm Info Info - Network
Infos []GetNdb Dbserver Vm Info Network Info - Os
Type string - Os
Version string - Secure
Info map[string]string
- deregister
Infos List<GetNdb Dbserver Vm Info Deregister Info> - distribution Map<String,String>
- infos
List<Get
Ndb Dbserver Vm Info Info> - network
Infos List<GetNdb Dbserver Vm Info Network Info> - os
Type String - os
Version String - secure
Info Map<String,String>
- deregister
Infos GetNdb Dbserver Vm Info Deregister Info[] - distribution {[key: string]: string}
- infos
Get
Ndb Dbserver Vm Info Info[] - network
Infos GetNdb Dbserver Vm Info Network Info[] - os
Type string - os
Version string - secure
Info {[key: string]: string}
- deregister
Infos List<Property Map> - distribution Map<String>
- infos List<Property Map>
- network
Infos List<Property Map> - os
Type String - os
Version String - secure
Info Map<String>
GetNdbDbserverVmInfoDeregisterInfo
- Message string
- Operations List<string>
- Message string
- Operations []string
- message String
- operations List<String>
- message string
- operations string[]
- message str
- operations Sequence[str]
- message String
- operations List<String>
GetNdbDbserverVmInfoInfo
- Bpg
Configs List<PiersKarsenbarg. Nutanix. Inputs. Get Ndb Dbserver Vm Info Info Bpg Config> - Secure
Info Dictionary<string, string>
- Bpg
Configs []GetNdb Dbserver Vm Info Info Bpg Config - Secure
Info map[string]string
- bpg
Configs List<GetNdb Dbserver Vm Info Info Bpg Config> - secure
Info Map<String,String>
- bpg
Configs GetNdb Dbserver Vm Info Info Bpg Config[] - secure
Info {[key: string]: string}
- bpg_
configs Sequence[GetNdb Dbserver Vm Info Info Bpg Config] - secure_
info Mapping[str, str]
- bpg
Configs List<Property Map> - secure
Info Map<String>
GetNdbDbserverVmInfoInfoBpgConfig
GetNdbDbserverVmInfoInfoBpgConfigBpgDbParam
- Effective
Cache stringSize - Maintenance
Work stringMem - Max
Parallel stringWorkers Per Gather - Max
Worker stringProcesses - string
- Work
Mem string
- Effective
Cache stringSize - Maintenance
Work stringMem - Max
Parallel stringWorkers Per Gather - Max
Worker stringProcesses - string
- Work
Mem string
- effective
Cache StringSize - maintenance
Work StringMem - max
Parallel StringWorkers Per Gather - max
Worker StringProcesses - String
- work
Mem String
- effective
Cache stringSize - maintenance
Work stringMem - max
Parallel stringWorkers Per Gather - max
Worker stringProcesses - string
- work
Mem string
- effective
Cache StringSize - maintenance
Work StringMem - max
Parallel StringWorkers Per Gather - max
Worker StringProcesses - String
- work
Mem String
GetNdbDbserverVmInfoInfoBpgConfigStorage
GetNdbDbserverVmInfoInfoBpgConfigStorageArchiveStorage
- Size double
- Size float64
- size Double
- size number
- size float
- size Number
GetNdbDbserverVmInfoInfoBpgConfigStorageDataDisk
- Count double
- Count float64
- count Double
- count number
- count float
- count Number
GetNdbDbserverVmInfoInfoBpgConfigStorageLogDisk
GetNdbDbserverVmInfoInfoBpgConfigVmProperty
- Dirty
Background doubleRatio - Dirty
Expire doubleCentisecs - Dirty
Ratio double - Dirty
Writeback doubleCentisecs - Nr
Hugepages double - Overcommit
Memory double - Swappiness double
- Dirty
Background float64Ratio - Dirty
Expire float64Centisecs - Dirty
Ratio float64 - Dirty
Writeback float64Centisecs - Nr
Hugepages float64 - Overcommit
Memory float64 - Swappiness float64
- dirty
Background DoubleRatio - dirty
Expire DoubleCentisecs - dirty
Ratio Double - dirty
Writeback DoubleCentisecs - nr
Hugepages Double - overcommit
Memory Double - swappiness Double
- dirty
Background numberRatio - dirty
Expire numberCentisecs - dirty
Ratio number - dirty
Writeback numberCentisecs - nr
Hugepages number - overcommit
Memory number - swappiness number
- dirty_
background_ floatratio - dirty_
expire_ floatcentisecs - dirty_
ratio float - dirty_
writeback_ floatcentisecs - nr_
hugepages float - overcommit_
memory float - swappiness float
- dirty
Background NumberRatio - dirty
Expire NumberCentisecs - dirty
Ratio Number - dirty
Writeback NumberCentisecs - nr
Hugepages Number - overcommit
Memory Number - swappiness Number
GetNdbDbserverVmInfoNetworkInfo
- Access
Infos List<PiersKarsenbarg. Nutanix. Inputs. Get Ndb Dbserver Vm Info Network Info Access Info> - Default
Gateway boolDevice - Device
Name string - Era
Configured bool - Flags string
- Gateway string
- Hostname string
- Ip
Addresses List<string> - IP addresses of the dbserver vm
- Mac
Address string - Mtu string
- Subnet
Mask string - Vlan
Name string - Vlan
Type string - Vlan
Uuid string
- Access
Infos []GetNdb Dbserver Vm Info Network Info Access Info - Default
Gateway boolDevice - Device
Name string - Era
Configured bool - Flags string
- Gateway string
- Hostname string
- Ip
Addresses []string - IP addresses of the dbserver vm
- Mac
Address string - Mtu string
- Subnet
Mask string - Vlan
Name string - Vlan
Type string - Vlan
Uuid string
- access
Infos List<GetNdb Dbserver Vm Info Network Info Access Info> - default
Gateway BooleanDevice - device
Name String - era
Configured Boolean - flags String
- gateway String
- hostname String
- ip
Addresses List<String> - IP addresses of the dbserver vm
- mac
Address String - mtu String
- subnet
Mask String - vlan
Name String - vlan
Type String - vlan
Uuid String
- access
Infos GetNdb Dbserver Vm Info Network Info Access Info[] - default
Gateway booleanDevice - device
Name string - era
Configured boolean - flags string
- gateway string
- hostname string
- ip
Addresses string[] - IP addresses of the dbserver vm
- mac
Address string - mtu string
- subnet
Mask string - vlan
Name string - vlan
Type string - vlan
Uuid string
- access_
infos Sequence[GetNdb Dbserver Vm Info Network Info Access Info] - default_
gateway_ booldevice - device_
name str - era_
configured bool - flags str
- gateway str
- hostname str
- ip_
addresses Sequence[str] - IP addresses of the dbserver vm
- mac_
address str - mtu str
- subnet_
mask str - vlan_
name str - vlan_
type str - vlan_
uuid str
- access
Infos List<Property Map> - default
Gateway BooleanDevice - device
Name String - era
Configured Boolean - flags String
- gateway String
- hostname String
- ip
Addresses List<String> - IP addresses of the dbserver vm
- mac
Address String - mtu String
- subnet
Mask String - vlan
Name String - vlan
Type String - vlan
Uuid String
GetNdbDbserverVmInfoNetworkInfoAccessInfo
- Access
Type string - Destination
Subnet string
- Access
Type string - Destination
Subnet string
- access
Type String - destination
Subnet String
- access
Type string - destination
Subnet string
- access_
type str - destination_
subnet str
- access
Type String - destination
Subnet String
Package Details
- Repository
- nutanix pierskarsenbarg/pulumi-nutanix
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
nutanix
Terraform Provider.
Nutanix v0.1.0 published on Tuesday, Sep 24, 2024 by Piers Karsenbarg