0

Update Logsink for a Database Cluster

by
Published Dec 20, 2024

To update a logsink for a database cluster, send a PUT request to `/v2/databases/$DATABASE_ID/logsink/$LOGSINK_ID`.

Script digitalocean Verified

The script

Submitted by hugo697 Bun
Verified 537 days ago
1
//native
2
type Digitalocean = {
3
  token: string;
4
};
5
/**
6
 * Update Logsink for a Database Cluster
7

8
 * To update a logsink for a database cluster, send a PUT request to
9
`/v2/databases/$DATABASE_ID/logsink/$LOGSINK_ID`.
10

11
 */
12
export async function main(
13
  auth: Digitalocean,
14
  database_cluster_uuid: string,
15
  logsink_id: string,
16
  body: {
17
    config:
18
      | {
19
          server: string;
20
          port: number;
21
          tls: false | true;
22
          format: "rfc5424" | "rfc3164" | "custom";
23
          logline?: string;
24
          sd?: string;
25
          ca?: string;
26
          key?: string;
27
          cert?: string;
28
        }
29
      | {
30
          url: string;
31
          index_prefix: string;
32
          index_days_max?: number;
33
          timeout?: number;
34
          ca?: string;
35
        }
36
      | {
37
          url: string;
38
          index_prefix: string;
39
          index_days_max?: number;
40
          timeout?: number;
41
          ca?: string;
42
        };
43
  },
44
) {
45
  const url = new URL(
46
    `https://api.digitalocean.com/v2/databases/${database_cluster_uuid}/logsink/${logsink_id}`,
47
  );
48

49
  const response = await fetch(url, {
50
    method: "PUT",
51
    headers: {
52
      "Content-Type": "application/json",
53
      Authorization: "Bearer " + auth.token,
54
    },
55
    body: JSON.stringify(body),
56
  });
57
  if (!response.ok) {
58
    const text = await response.text();
59
    throw new Error(`${response.status} ${text}`);
60
  }
61
  return await response.json();
62
}
63