2024-01-29 21:08:05 +01:00
|
|
|
import * as plugins from './hetznercloud.plugins.js';
|
2024-06-15 16:21:45 +02:00
|
|
|
import * as hetznerOpenapiSpec from './openapi.spec.js';
|
2024-01-29 21:08:05 +01:00
|
|
|
|
2026-05-07 23:31:22 +00:00
|
|
|
type TJsonRequestBody<TPathMethod> = TPathMethod extends { requestBody?: infer TRequestBody }
|
|
|
|
|
? NonNullable<TRequestBody> extends { content: { 'application/json': infer TJsonBody } }
|
|
|
|
|
? TJsonBody
|
|
|
|
|
: never
|
|
|
|
|
: never;
|
|
|
|
|
|
2024-01-29 21:08:05 +01:00
|
|
|
// datacenters
|
2024-06-15 16:21:45 +02:00
|
|
|
export type TDatacenters = hetznerOpenapiSpec.paths['/datacenters']['get']['responses']['200']['content']['application/json'];
|
2024-01-29 21:08:05 +01:00
|
|
|
|
|
|
|
|
// servers
|
2026-05-07 23:31:22 +00:00
|
|
|
export type IServer = NonNullable<hetznerOpenapiSpec.paths['/servers/{id}']['get']['responses']['200']['content']['application/json']['server']>;
|
2024-01-29 21:08:05 +01:00
|
|
|
export type TServersGetRequestBody = {};
|
2024-06-15 16:21:45 +02:00
|
|
|
export type TServersGetResponseBody = hetznerOpenapiSpec.paths['/servers']['get']['responses']['200']['content']['application/json'];
|
2026-05-07 23:31:22 +00:00
|
|
|
export type TServerCreateRequestBody = TJsonRequestBody<hetznerOpenapiSpec.paths['/servers']['post']>;
|
2024-06-15 16:21:45 +02:00
|
|
|
export type TServerCreateResponseBody = hetznerOpenapiSpec.paths['/servers']['post']['responses']['201']['content']['application/json'];
|
|
|
|
|
export type TServerDeleteRequestBody = hetznerOpenapiSpec.paths['/servers/{id}']['delete'];
|
2024-01-29 21:08:05 +01:00
|
|
|
|
2024-02-18 01:17:15 +01:00
|
|
|
// server types
|
|
|
|
|
export type THetznerCloudServerName =
|
|
|
|
|
| 'cx11'
|
|
|
|
|
| 'cx21'
|
|
|
|
|
| 'cx31'
|
|
|
|
|
| 'cx41'
|
|
|
|
|
| 'cx51'
|
|
|
|
|
| 'ccx11'
|
|
|
|
|
| 'ccx21'
|
|
|
|
|
| 'ccx31'
|
|
|
|
|
| 'ccx41'
|
|
|
|
|
| 'ccx51'
|
|
|
|
|
| 'ccx13'
|
|
|
|
|
| 'ccx23'
|
|
|
|
|
| 'ccx33'
|
|
|
|
|
| 'ccx43'
|
|
|
|
|
| 'ccx53'
|
|
|
|
|
| 'ccx63'
|
|
|
|
|
| 'cpx11'
|
|
|
|
|
| 'cpx21'
|
|
|
|
|
| 'cpx31'
|
|
|
|
|
| 'cpx41'
|
|
|
|
|
| 'cpx51'
|
|
|
|
|
| 'cpx61'
|
|
|
|
|
| 'cpx70'
|
|
|
|
|
| 'cpx71'
|
|
|
|
|
| 'cpx90';
|
|
|
|
|
|
|
|
|
|
// location types
|
2024-06-15 12:26:29 +02:00
|
|
|
export type THetznerCloudLocationName = 'fsn1' | 'nbg1' | 'hel1' | 'ash' | 'hil';
|
|
|
|
|
|
|
|
|
|
// volumes
|
2026-05-07 23:31:22 +00:00
|
|
|
export type IVolume = NonNullable<hetznerOpenapiSpec.paths['/volumes/{id}']['get']['responses']['200']['content']['application/json']['volume']>;
|
2024-06-15 12:26:29 +02:00
|
|
|
export type TVolumeGetRequestBody = {};
|
2024-06-15 16:21:45 +02:00
|
|
|
export type TVolumeGetResponseBody = hetznerOpenapiSpec.paths['/volumes']['get']['responses']['200']['content']['application/json'];
|
2026-05-07 23:31:22 +00:00
|
|
|
export type TVolumeCreateRequestBody = TJsonRequestBody<hetznerOpenapiSpec.paths['/volumes']['post']>;
|
2024-06-15 16:21:45 +02:00
|
|
|
export type TVolumeCreateResponseBody = hetznerOpenapiSpec.paths['/volumes']['post']['responses']['201']['content']['application/json'];
|
|
|
|
|
export type TVolumeDeleteRequestBody = hetznerOpenapiSpec.paths['/volumes/{id}']['delete'];
|
2024-06-15 12:26:29 +02:00
|
|
|
|
|
|
|
|
// firewalls
|
2026-05-07 23:31:22 +00:00
|
|
|
export type IFirewall = NonNullable<hetznerOpenapiSpec.paths['/firewalls/{id}']['get']['responses']['200']['content']['application/json']['firewall']>;
|
2024-06-15 12:26:29 +02:00
|
|
|
export type TFirewallsGetRequestBody = {};
|
2024-06-15 16:21:45 +02:00
|
|
|
export type TFirewallsGetResponseBody = hetznerOpenapiSpec.paths['/firewalls']['get']['responses']['200']['content']['application/json'];
|
2026-05-07 23:31:22 +00:00
|
|
|
export type TFirewallCreateRequestBody = TJsonRequestBody<hetznerOpenapiSpec.paths['/firewalls']['post']>;
|
2024-06-15 16:21:45 +02:00
|
|
|
export type TFirewallCreateResponseBody = hetznerOpenapiSpec.paths['/firewalls']['post']['responses']['201']['content']['application/json'];
|
|
|
|
|
export type TFirewallDeleteRequestBody = hetznerOpenapiSpec.paths['/firewalls/{id}']['delete'];
|