//native
type Linode = {
token: string;
};
/**
* Clone a disk
* Copies a disk, byte-for-byte, into a new disk on the same Linode. The operation fails if the target doesn't have enough storage space. A Linode can have up to 50 disks.
>
---
- __CLI__.
```
linode-cli linodes disk-clone
```
[Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)
- __OAuth scopes__.
```
linodes:read_write
```
[Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)
*/
export async function main(
auth: Linode,
apiVersion: "v4" | "v4beta",
linodeId: string,
diskId: string,
) {
const url = new URL(
`https://api.linode.com/${apiVersion}/linode/instances/${linodeId}/disks/${diskId}/clone`,
);
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: "Bearer " + auth.token,
},
body: undefined,
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 235 days ago