From 6a64a958b10255f279d3a466bda03d096cea2bf4 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Mon, 6 May 2024 15:56:08 +0000 Subject: [PATCH] chore(bolt): add server filters & update admin api + cli --- .../definition/admin/clusters/__package__.yml | 26 +- .../admin/{ => clusters}/common.yml | 6 + .../__package__.yml => datacenters.yml} | 25 +- fern/definition/admin/clusters/servers.yml | 39 + .../cli/src/commands/cluster/datacenter.rs | 71 +- lib/bolt/cli/src/commands/cluster/mod.rs | 126 +- lib/bolt/cli/src/commands/mod.rs | 1 - lib/bolt/cli/src/commands/ssh.rs | 64 - lib/bolt/cli/src/main.rs | 6 - lib/bolt/core/src/tasks/api.rs | 51 +- lib/bolt/core/src/tasks/ssh.rs | 33 +- lib/convert/src/impls/admin.rs | 66 +- proto/backend/cluster.proto | 28 +- scripts/openapi/gen_rust.sh | 2 +- sdks/full/go/admin/clusters/client/client.go | 107 +- sdks/full/go/admin/clusters/clusters.go | 62 +- .../clusters/{datacenters => }/datacenters.go | 65 +- .../datacenters/{client => }/client.go | 89 +- sdks/full/go/admin/clusters/servers.go | 77 + sdks/full/go/admin/clusters/servers/client.go | 222 +++ sdks/full/go/admin/clusters/types.go | 207 +- sdks/full/go/admin/types.go | 207 -- sdks/full/openapi/openapi.yml | 1715 +++++++++-------- sdks/full/openapi_compat/openapi.yml | 285 +-- sdks/full/rust-cli/.openapi-generator/FILES | 64 +- sdks/full/rust-cli/README.md | 35 +- sdks/full/rust-cli/docs/AdminClustersApi.md | 40 +- ...md => AdminClustersBuildDeliveryMethod.md} | 2 +- .../docs/AdminClustersCluster.md} | 2 +- ...d => AdminClustersCreateClusterRequest.md} | 2 +- .../AdminClustersCreateClusterResponse.md} | 2 +- .../AdminClustersCreateDatacenterRequest.md} | 6 +- .../AdminClustersCreateDatacenterResponse.md} | 2 +- ...tacenter.md => AdminClustersDatacenter.md} | 8 +- .../docs/AdminClustersDatacentersApi.md | 44 +- .../docs/AdminClustersHardware.md} | 2 +- .../docs/AdminClustersListClustersResponse.md | 11 + .../AdminClustersListDatacentersResponse.md | 11 + .../docs/AdminClustersListResponse.md | 11 - ...md => AdminClustersListServersResponse.md} | 4 +- .../{AdminPool.md => AdminClustersPool.md} | 6 +- .../docs/AdminClustersPoolType.md} | 2 +- .../docs/AdminClustersProvider.md} | 2 +- ...rIpsResponse.md => AdminClustersServer.md} | 5 +- .../rust-cli/docs/AdminClustersServersApi.md | 74 + ...> AdminClustersUpdateDatacenterRequest.md} | 6 +- .../rust-cli/src/apis/admin_clusters_api.rs | 55 +- .../apis/admin_clusters_datacenters_api.rs | 53 +- .../src/apis/admin_clusters_servers_api.rs | 128 ++ sdks/full/rust-cli/src/apis/mod.rs | 1 + ...> admin_clusters_build_delivery_method.rs} | 8 +- .../src/models/admin_clusters_cluster.rs} | 8 +- .../admin_clusters_create_cluster_request.rs} | 8 +- ...admin_clusters_create_cluster_response.rs} | 8 +- ...min_clusters_create_datacenter_request.rs} | 12 +- ...in_clusters_create_datacenter_response.rs} | 8 +- .../src/models/admin_clusters_datacenter.rs} | 14 +- .../admin_clusters_get_server_ips_response.rs | 28 - ...hardware.rs => admin_clusters_hardware.rs} | 8 +- .../admin_clusters_list_clusters_response.rs} | 10 +- ...min_clusters_list_datacenters_response.rs} | 10 +- .../admin_clusters_list_servers_response.rs | 28 + .../{admin_pool.rs => admin_clusters_pool.rs} | 12 +- .../src/models/admin_clusters_pool_type.rs} | 8 +- ...provider.rs => admin_clusters_provider.rs} | 8 +- .../src/models/admin_clusters_server.rs | 31 + ...min_clusters_update_datacenter_request.rs} | 12 +- sdks/full/rust-cli/src/models/mod.rs | 62 +- sdks/full/rust/.openapi-generator/FILES | 64 +- sdks/full/rust/README.md | 35 +- sdks/full/rust/docs/AdminClustersApi.md | 40 +- ...md => AdminClustersBuildDeliveryMethod.md} | 2 +- .../docs/AdminClustersCluster.md} | 2 +- ...d => AdminClustersCreateClusterRequest.md} | 2 +- .../AdminClustersCreateClusterResponse.md} | 2 +- .../AdminClustersCreateDatacenterRequest.md} | 6 +- .../AdminClustersCreateDatacenterResponse.md} | 2 +- ...tacenter.md => AdminClustersDatacenter.md} | 8 +- .../rust/docs/AdminClustersDatacentersApi.md | 44 +- .../AdminClustersDatacentersListResponse.md | 11 - .../docs/AdminClustersGetServerIpsResponse.md | 11 - .../docs/AdminClustersHardware.md} | 2 +- .../docs/AdminClustersListClustersResponse.md | 11 + .../AdminClustersListDatacentersResponse.md | 11 + .../rust/docs/AdminClustersListResponse.md | 11 - .../docs/AdminClustersListServersResponse.md | 11 + .../{AdminPool.md => AdminClustersPool.md} | 6 +- .../docs/AdminClustersPoolType.md} | 2 +- .../docs/AdminClustersProvider.md} | 2 +- sdks/full/rust/docs/AdminClustersServer.md | 12 + .../full/rust/docs/AdminClustersServersApi.md | 74 + ...> AdminClustersUpdateDatacenterRequest.md} | 6 +- sdks/full/rust/src/apis/admin_clusters_api.rs | 55 +- .../apis/admin_clusters_datacenters_api.rs | 53 +- .../src/apis/admin_clusters_servers_api.rs | 128 ++ sdks/full/rust/src/apis/mod.rs | 1 + ...> admin_clusters_build_delivery_method.rs} | 8 +- .../src/models/admin_clusters_cluster.rs} | 8 +- .../admin_clusters_create_cluster_request.rs} | 8 +- ...admin_clusters_create_cluster_response.rs} | 8 +- ...min_clusters_create_datacenter_request.rs} | 12 +- ...in_clusters_create_datacenter_response.rs} | 8 +- .../src/models/admin_clusters_datacenter.rs} | 14 +- .../admin_clusters_get_server_ips_response.rs | 28 - ...hardware.rs => admin_clusters_hardware.rs} | 8 +- .../admin_clusters_list_clusters_response.rs} | 10 +- ...min_clusters_list_datacenters_response.rs} | 10 +- .../admin_clusters_list_servers_response.rs | 28 + .../{admin_pool.rs => admin_clusters_pool.rs} | 12 +- .../src/models/admin_clusters_pool_type.rs} | 8 +- ...provider.rs => admin_clusters_provider.rs} | 8 +- .../rust/src/models/admin_clusters_server.rs | 31 + ...min_clusters_update_datacenter_request.rs} | 12 +- sdks/full/rust/src/models/mod.rs | 62 +- sdks/full/typescript/archive.tgz | 4 +- .../admin/resources/clusters/client/Client.ts | 150 +- .../admin/resources/clusters/client/index.ts | 2 +- .../client/requests/GetServerIpsRequest.ts | 10 - .../clusters/client/requests/index.ts | 1 - .../{ => clusters/resources}/common/index.ts | 0 .../resources/datacenters/client/Client.ts | 131 +- .../datacenters/types/CreateRequest.ts | 13 - .../datacenters/types/CreateResponse.ts | 7 - .../datacenters/types/ListResponse.ts | 9 - .../datacenters/types/UpdateRequest.ts | 13 - .../resources/datacenters/types/index.ts | 8 +- .../resources/clusters/resources/index.ts | 6 + .../resources/servers/client/Client.ts | 310 +++ .../resources/servers/client/index.ts | 1 + .../client/requests/ListServersRequest.ts | 12 + .../client/requests/TaintServersRequest.ts | 12 + .../servers/client/requests/index.ts | 2 + .../clusters/resources/servers/index.ts | 2 + .../resources/clusters/types/CreateRequest.ts | 8 - .../clusters/types/CreateResponse.ts | 7 - .../clusters/types/GetServerIpsResponse.ts | 7 - .../resources/clusters/types/ListResponse.ts | 9 - .../admin/resources/clusters/types/index.ts | 7 +- .../common/types/BuildDeliveryMethod.ts | 10 - .../admin/resources/common/types/Cluster.ts | 10 - .../resources/common/types/Datacenter.ts | 17 - .../admin/resources/common/types/Hardware.ts | 7 - .../admin/resources/common/types/Pool.ts | 13 - .../admin/resources/common/types/PoolType.ts | 11 - .../admin/resources/common/types/Provider.ts | 9 - .../admin/resources/common/types/index.ts | 7 - .../api/resources/admin/resources/index.ts | 2 - .../{ => clusters/resources}/common/index.ts | 0 .../datacenters/types/CreateRequest.ts | 31 - .../datacenters/types/CreateResponse.ts | 20 - .../datacenters/types/ListResponse.ts | 22 - .../datacenters/types/UpdateRequest.ts | 33 - .../resources/datacenters/types/index.ts | 8 +- .../resources/clusters/resources/index.ts | 5 + .../clusters/resources/servers/index.ts | 1 + .../resources/clusters/types/CreateRequest.ts | 22 - .../clusters/types/CreateResponse.ts | 20 - .../clusters/types/GetServerIpsResponse.ts | 20 - .../resources/clusters/types/ListResponse.ts | 22 - .../admin/resources/clusters/types/index.ts | 7 +- .../common/types/BuildDeliveryMethod.ts | 16 - .../admin/resources/common/types/Cluster.ts | 24 - .../resources/common/types/Datacenter.ts | 39 - .../admin/resources/common/types/Hardware.ts | 18 - .../admin/resources/common/types/Pool.ts | 31 - .../admin/resources/common/types/PoolType.ts | 14 - .../admin/resources/common/types/Provider.ts | 14 - .../admin/resources/common/types/index.ts | 7 - .../resources/admin/resources/index.ts | 2 - .../resources/clusters/client/Client.d.ts | 16 +- .../resources/clusters/client/index.d.ts | 2 +- .../resources/datacenters/client/Client.d.ts | 15 +- .../resources/datacenters/types/index.d.ts | 8 +- .../resources/clusters/resources/index.d.ts | 6 + .../client/requests/ListServersRequest.d.ts | 7 +- .../client/requests/TaintServersRequest.d.ts | 5 +- .../resources/servers/types/index.d.ts | 1 - .../admin/resources/clusters/types/index.d.ts | 7 +- .../api/resources/admin/resources/index.d.ts | 2 - .../resources/datacenters/types/index.d.ts | 8 +- .../resources/clusters/resources/index.d.ts | 5 + .../resources/servers/types/index.d.ts | 1 - .../admin/resources/clusters/types/index.d.ts | 7 +- .../resources/admin/resources/index.d.ts | 2 - sdks/runtime/typescript/archive.tgz | 4 +- svc/Cargo.lock | 1 + svc/api/admin/Cargo.toml | 1 + .../admin/src/route/clusters/datacenters.rs | 45 +- svc/api/admin/src/route/clusters/mod.rs | 77 +- svc/api/admin/src/route/clusters/servers.rs | 111 ++ svc/api/admin/src/route/mod.rs | 21 +- svc/pkg/cluster/ops/server-get/src/lib.rs | 30 +- svc/pkg/cluster/ops/server-list/src/lib.rs | 156 +- .../standalone/default-update/src/lib.rs | 17 +- .../cluster/types/msg/datacenter-taint.proto | 13 - svc/pkg/cluster/types/msg/server-taint.proto | 14 + svc/pkg/cluster/types/server-list.proto | 9 +- .../worker/src/workers/datacenter_taint.rs | 32 - svc/pkg/cluster/worker/src/workers/mod.rs | 4 +- .../worker/src/workers/server_taint.rs | 92 + .../{datacenter_taint.rs => server_taint.rs} | 8 +- 201 files changed, 3707 insertions(+), 3551 deletions(-) rename fern/definition/admin/{ => clusters}/common.yml (92%) rename fern/definition/admin/clusters/{datacenters/__package__.yml => datacenters.yml} (75%) create mode 100644 fern/definition/admin/clusters/servers.yml delete mode 100644 lib/bolt/cli/src/commands/ssh.rs rename sdks/full/go/admin/clusters/{datacenters => }/datacenters.go (51%) rename sdks/full/go/admin/clusters/datacenters/{client => }/client.go (73%) create mode 100644 sdks/full/go/admin/clusters/servers.go create mode 100644 sdks/full/go/admin/clusters/servers/client.go delete mode 100644 sdks/full/go/admin/types.go rename sdks/full/rust-cli/docs/{AdminBuildDeliveryMethod.md => AdminClustersBuildDeliveryMethod.md} (88%) rename sdks/full/{rust/docs/AdminCluster.md => rust-cli/docs/AdminClustersCluster.md} (95%) rename sdks/full/rust-cli/docs/{AdminClustersCreateRequest.md => AdminClustersCreateClusterRequest.md} (91%) rename sdks/full/{rust/docs/AdminClustersCreateResponse.md => rust-cli/docs/AdminClustersCreateClusterResponse.md} (89%) rename sdks/full/{rust/docs/AdminClustersDatacentersCreateRequest.md => rust-cli/docs/AdminClustersCreateDatacenterRequest.md} (60%) rename sdks/full/{rust/docs/AdminClustersDatacentersCreateResponse.md => rust-cli/docs/AdminClustersCreateDatacenterResponse.md} (89%) rename sdks/full/rust-cli/docs/{AdminDatacenter.md => AdminClustersDatacenter.md} (63%) rename sdks/full/{rust/docs/AdminHardware.md => rust-cli/docs/AdminClustersHardware.md} (92%) create mode 100644 sdks/full/rust-cli/docs/AdminClustersListClustersResponse.md create mode 100644 sdks/full/rust-cli/docs/AdminClustersListDatacentersResponse.md delete mode 100644 sdks/full/rust-cli/docs/AdminClustersListResponse.md rename sdks/full/rust-cli/docs/{AdminClustersDatacentersListResponse.md => AdminClustersListServersResponse.md} (68%) rename sdks/full/rust-cli/docs/{AdminPool.md => AdminClustersPool.md} (64%) rename sdks/full/{rust/docs/AdminPoolType.md => rust-cli/docs/AdminClustersPoolType.md} (92%) rename sdks/full/{rust/docs/AdminProvider.md => rust-cli/docs/AdminClustersProvider.md} (92%) rename sdks/full/rust-cli/docs/{AdminClustersGetServerIpsResponse.md => AdminClustersServer.md} (71%) create mode 100644 sdks/full/rust-cli/docs/AdminClustersServersApi.md rename sdks/full/rust-cli/docs/{AdminClustersDatacentersUpdateRequest.md => AdminClustersUpdateDatacenterRequest.md} (65%) create mode 100644 sdks/full/rust-cli/src/apis/admin_clusters_servers_api.rs rename sdks/full/rust-cli/src/models/{admin_build_delivery_method.rs => admin_clusters_build_delivery_method.rs} (77%) rename sdks/full/{rust/src/models/admin_cluster.rs => rust-cli/src/models/admin_clusters_cluster.rs} (86%) rename sdks/full/{rust/src/models/admin_clusters_create_request.rs => rust-cli/src/models/admin_clusters_create_cluster_request.rs} (73%) rename sdks/full/{rust/src/models/admin_clusters_create_response.rs => rust-cli/src/models/admin_clusters_create_cluster_response.rs} (66%) rename sdks/full/{rust/src/models/admin_clusters_datacenters_create_request.rs => rust-cli/src/models/admin_clusters_create_datacenter_request.rs} (59%) rename sdks/full/rust-cli/src/models/{admin_clusters_datacenters_create_response.rs => admin_clusters_create_datacenter_response.rs} (64%) rename sdks/full/{rust/src/models/admin_datacenter.rs => rust-cli/src/models/admin_clusters_datacenter.rs} (65%) delete mode 100644 sdks/full/rust-cli/src/models/admin_clusters_get_server_ips_response.rs rename sdks/full/rust-cli/src/models/{admin_hardware.rs => admin_clusters_hardware.rs} (72%) rename sdks/full/{rust/src/models/admin_clusters_list_response.rs => rust-cli/src/models/admin_clusters_list_clusters_response.rs} (56%) rename sdks/full/{rust/src/models/admin_clusters_datacenters_list_response.rs => rust-cli/src/models/admin_clusters_list_datacenters_response.rs} (54%) create mode 100644 sdks/full/rust-cli/src/models/admin_clusters_list_servers_response.rs rename sdks/full/rust-cli/src/models/{admin_pool.rs => admin_clusters_pool.rs} (69%) rename sdks/full/{rust/src/models/admin_pool_type.rs => rust-cli/src/models/admin_clusters_pool_type.rs} (81%) rename sdks/full/rust-cli/src/models/{admin_provider.rs => admin_clusters_provider.rs} (77%) create mode 100644 sdks/full/rust-cli/src/models/admin_clusters_server.rs rename sdks/full/{rust/src/models/admin_clusters_datacenters_update_request.rs => rust-cli/src/models/admin_clusters_update_datacenter_request.rs} (67%) rename sdks/full/rust/docs/{AdminBuildDeliveryMethod.md => AdminClustersBuildDeliveryMethod.md} (88%) rename sdks/full/{rust-cli/docs/AdminCluster.md => rust/docs/AdminClustersCluster.md} (95%) rename sdks/full/rust/docs/{AdminClustersCreateRequest.md => AdminClustersCreateClusterRequest.md} (91%) rename sdks/full/{rust-cli/docs/AdminClustersCreateResponse.md => rust/docs/AdminClustersCreateClusterResponse.md} (89%) rename sdks/full/{rust-cli/docs/AdminClustersDatacentersCreateRequest.md => rust/docs/AdminClustersCreateDatacenterRequest.md} (60%) rename sdks/full/{rust-cli/docs/AdminClustersDatacentersCreateResponse.md => rust/docs/AdminClustersCreateDatacenterResponse.md} (89%) rename sdks/full/rust/docs/{AdminDatacenter.md => AdminClustersDatacenter.md} (63%) delete mode 100644 sdks/full/rust/docs/AdminClustersDatacentersListResponse.md delete mode 100644 sdks/full/rust/docs/AdminClustersGetServerIpsResponse.md rename sdks/full/{rust-cli/docs/AdminHardware.md => rust/docs/AdminClustersHardware.md} (92%) create mode 100644 sdks/full/rust/docs/AdminClustersListClustersResponse.md create mode 100644 sdks/full/rust/docs/AdminClustersListDatacentersResponse.md delete mode 100644 sdks/full/rust/docs/AdminClustersListResponse.md create mode 100644 sdks/full/rust/docs/AdminClustersListServersResponse.md rename sdks/full/rust/docs/{AdminPool.md => AdminClustersPool.md} (64%) rename sdks/full/{rust-cli/docs/AdminProvider.md => rust/docs/AdminClustersPoolType.md} (92%) rename sdks/full/{rust-cli/docs/AdminPoolType.md => rust/docs/AdminClustersProvider.md} (92%) create mode 100644 sdks/full/rust/docs/AdminClustersServer.md create mode 100644 sdks/full/rust/docs/AdminClustersServersApi.md rename sdks/full/rust/docs/{AdminClustersDatacentersUpdateRequest.md => AdminClustersUpdateDatacenterRequest.md} (65%) create mode 100644 sdks/full/rust/src/apis/admin_clusters_servers_api.rs rename sdks/full/rust/src/models/{admin_build_delivery_method.rs => admin_clusters_build_delivery_method.rs} (77%) rename sdks/full/{rust-cli/src/models/admin_cluster.rs => rust/src/models/admin_clusters_cluster.rs} (86%) rename sdks/full/{rust-cli/src/models/admin_clusters_create_request.rs => rust/src/models/admin_clusters_create_cluster_request.rs} (73%) rename sdks/full/{rust-cli/src/models/admin_clusters_create_response.rs => rust/src/models/admin_clusters_create_cluster_response.rs} (66%) rename sdks/full/{rust-cli/src/models/admin_clusters_datacenters_create_request.rs => rust/src/models/admin_clusters_create_datacenter_request.rs} (59%) rename sdks/full/rust/src/models/{admin_clusters_datacenters_create_response.rs => admin_clusters_create_datacenter_response.rs} (64%) rename sdks/full/{rust-cli/src/models/admin_datacenter.rs => rust/src/models/admin_clusters_datacenter.rs} (65%) delete mode 100644 sdks/full/rust/src/models/admin_clusters_get_server_ips_response.rs rename sdks/full/rust/src/models/{admin_hardware.rs => admin_clusters_hardware.rs} (72%) rename sdks/full/{rust-cli/src/models/admin_clusters_list_response.rs => rust/src/models/admin_clusters_list_clusters_response.rs} (56%) rename sdks/full/{rust-cli/src/models/admin_clusters_datacenters_list_response.rs => rust/src/models/admin_clusters_list_datacenters_response.rs} (54%) create mode 100644 sdks/full/rust/src/models/admin_clusters_list_servers_response.rs rename sdks/full/rust/src/models/{admin_pool.rs => admin_clusters_pool.rs} (69%) rename sdks/full/{rust-cli/src/models/admin_pool_type.rs => rust/src/models/admin_clusters_pool_type.rs} (81%) rename sdks/full/rust/src/models/{admin_provider.rs => admin_clusters_provider.rs} (77%) create mode 100644 sdks/full/rust/src/models/admin_clusters_server.rs rename sdks/full/{rust-cli/src/models/admin_clusters_datacenters_update_request.rs => rust/src/models/admin_clusters_update_datacenter_request.rs} (67%) delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/GetServerIpsRequest.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/index.ts rename sdks/full/typescript/src/api/resources/admin/resources/{ => clusters/resources}/common/index.ts (100%) delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts create mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/Client.ts create mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/index.ts create mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.ts create mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.ts create mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/index.ts create mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/index.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateRequest.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateResponse.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/types/GetServerIpsResponse.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/clusters/types/ListResponse.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/BuildDeliveryMethod.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/Cluster.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/Datacenter.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/Hardware.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/Pool.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/PoolType.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/Provider.ts delete mode 100644 sdks/full/typescript/src/api/resources/admin/resources/common/types/index.ts rename sdks/full/typescript/src/serialization/resources/admin/resources/{ => clusters/resources}/common/index.ts (100%) delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts create mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/servers/index.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateRequest.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateResponse.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/GetServerIpsResponse.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/ListResponse.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/BuildDeliveryMethod.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Cluster.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Datacenter.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Hardware.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Pool.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/PoolType.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Provider.ts delete mode 100644 sdks/full/typescript/src/serialization/resources/admin/resources/common/types/index.ts create mode 100644 svc/api/admin/src/route/clusters/servers.rs delete mode 100644 svc/pkg/cluster/types/msg/datacenter-taint.proto create mode 100644 svc/pkg/cluster/types/msg/server-taint.proto delete mode 100644 svc/pkg/cluster/worker/src/workers/datacenter_taint.rs create mode 100644 svc/pkg/cluster/worker/src/workers/server_taint.rs rename svc/pkg/cluster/worker/tests/{datacenter_taint.rs => server_taint.rs} (91%) diff --git a/fern/definition/admin/clusters/__package__.yml b/fern/definition/admin/clusters/__package__.yml index 9a494f25e..55ac874d5 100644 --- a/fern/definition/admin/clusters/__package__.yml +++ b/fern/definition/admin/clusters/__package__.yml @@ -1,45 +1,33 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/fern-api/fern/main/fern.schema.json imports: - localCommons: ../common.yml + localCommons: ./common.yml service: auth: true base-path: /admin/clusters endpoints: - getServerIps: - path: /server_ips - method: GET - request: - name: GetServerIpsRequest - query-parameters: - server_id: optional - pool: optional - response: GetServerIpsResponse list: path: "" method: GET docs: Get clusters - response: ListResponse + response: ListClustersResponse create: path: "" method: POST docs: Create a new cluster request: - body: CreateRequest - response: CreateResponse + body: CreateClusterRequest + response: CreateClusterResponse types: - GetServerIpsResponse: - properties: - ips: list - ListResponse: + ListClustersResponse: properties: clusters: list - CreateRequest: + CreateClusterRequest: properties: name_id: string owner_team_id: optional - CreateResponse: + CreateClusterResponse: properties: cluster_id: uuid diff --git a/fern/definition/admin/common.yml b/fern/definition/admin/clusters/common.yml similarity index 92% rename from fern/definition/admin/common.yml rename to fern/definition/admin/clusters/common.yml index 3d01dbd58..d2199184b 100644 --- a/fern/definition/admin/common.yml +++ b/fern/definition/admin/clusters/common.yml @@ -1,4 +1,5 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/fern-api/fern/main/fern.schema.json + types: PoolType: enum: @@ -39,3 +40,8 @@ types: provider_api_token: optional pools: list build_delivery_method: BuildDeliveryMethod + Server: + properties: + server_id: uuid + public_ip: string + diff --git a/fern/definition/admin/clusters/datacenters/__package__.yml b/fern/definition/admin/clusters/datacenters.yml similarity index 75% rename from fern/definition/admin/clusters/datacenters/__package__.yml rename to fern/definition/admin/clusters/datacenters.yml index 1ca26aaf2..485b223a9 100644 --- a/fern/definition/admin/clusters/datacenters/__package__.yml +++ b/fern/definition/admin/clusters/datacenters.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/fern-api/fern/main/fern.schema.json imports: - localCommons: ../../common.yml + localCommons: ./common.yml service: auth: true @@ -14,13 +14,13 @@ service: path: "" method: GET docs: Get datacenters of a cluster - response: ListResponse + response: ListDatacentersResponse create: path: "" method: POST request: - body: CreateRequest - response: CreateResponse + body: CreateDatacenterRequest + response: CreateDatacenterResponse update: path: /{datacenter_id} path-parameters: @@ -28,32 +28,27 @@ service: type: uuid method: PATCH request: - body: UpdateRequest - taint: - path: /{datacenter_id}/taint - path-parameters: - datacenter_id: - type: string - method: GET + body: UpdateDatacenterRequest types: - ListResponse: + ListDatacentersResponse: properties: datacenters: list - CreateRequest: + CreateDatacenterRequest: properties: display_name: string name_id: string provider: localCommons.Provider provider_datacenter_id: string build_delivery_method: localCommons.BuildDeliveryMethod - CreateResponse: + CreateDatacenterResponse: properties: datacenter_id: uuid - UpdateRequest: + UpdateDatacenterRequest: properties: pool_type: localCommons.PoolType hardware: list desired_count: optional max_count: optional drain_timeout: optional + diff --git a/fern/definition/admin/clusters/servers.yml b/fern/definition/admin/clusters/servers.yml new file mode 100644 index 000000000..09e9a57e8 --- /dev/null +++ b/fern/definition/admin/clusters/servers.yml @@ -0,0 +1,39 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/fern-api/fern/main/fern.schema.json + +imports: + localCommons: ./common.yml + +service: + auth: true + base-path: /admin/clusters/{cluster_id}/servers + path-parameters: + cluster_id: + type: uuid + endpoints: + list: + path: "" + method: GET + request: + name: ListServersRequest + query-parameters: + server_id: optional + datacenter: optional + pool: optional + public_ip: optional + response: ListServersResponse + taint: + path: /taint + method: POST + request: + name: TaintServersRequest + query-parameters: + server_id: optional + datacenter: optional + pool: optional + public_ip: optional + +types: + ListServersResponse: + properties: + servers: list + diff --git a/lib/bolt/cli/src/commands/cluster/datacenter.rs b/lib/bolt/cli/src/commands/cluster/datacenter.rs index 493e8995d..7fee55815 100644 --- a/lib/bolt/cli/src/commands/cluster/datacenter.rs +++ b/lib/bolt/cli/src/commands/cluster/datacenter.rs @@ -10,10 +10,10 @@ pub enum DatacenterProvider { Linode, } -impl From for models::AdminProvider { +impl From for models::AdminClustersProvider { fn from(provider: DatacenterProvider) -> Self { match provider { - DatacenterProvider::Linode => models::AdminProvider::Linode, + DatacenterProvider::Linode => models::AdminClustersProvider::Linode, } } } @@ -24,13 +24,15 @@ pub enum DatacenterBuildDeliveryMethod { S3Direct, } -impl From for models::AdminBuildDeliveryMethod { +impl From for models::AdminClustersBuildDeliveryMethod { fn from(method: DatacenterBuildDeliveryMethod) -> Self { match method { DatacenterBuildDeliveryMethod::TrafficServer => { - models::AdminBuildDeliveryMethod::TrafficServer + models::AdminClustersBuildDeliveryMethod::TrafficServer + } + DatacenterBuildDeliveryMethod::S3Direct => { + models::AdminClustersBuildDeliveryMethod::S3Direct } - DatacenterBuildDeliveryMethod::S3Direct => models::AdminBuildDeliveryMethod::S3Direct, } } } @@ -42,12 +44,12 @@ pub enum DatacenterPoolType { Ats, } -impl From for models::AdminPoolType { +impl From for models::AdminClustersPoolType { fn from(pool_type: DatacenterPoolType) -> Self { match pool_type { - DatacenterPoolType::Job => models::AdminPoolType::Job, - DatacenterPoolType::Gg => models::AdminPoolType::Gg, - DatacenterPoolType::Ats => models::AdminPoolType::Ats, + DatacenterPoolType::Job => models::AdminClustersPoolType::Job, + DatacenterPoolType::Gg => models::AdminClustersPoolType::Gg, + DatacenterPoolType::Ats => models::AdminClustersPoolType::Ats, } } } @@ -81,15 +83,6 @@ pub enum SubCommand { #[clap(long, short = 'c')] cluster: String, }, - /// Taint a datacenter - Taint { - /// The name id of the cluster - #[clap(long, short = 'c')] - cluster: String, - /// The name id of the datacenter - #[clap(long, short = 'd')] - name_id: String, - }, /// Update a datacenter's pools Update { /// The name id of the cluster @@ -153,7 +146,7 @@ impl SubCommand { admin_clusters_datacenters_api::admin_clusters_datacenters_create( &ctx.openapi_config_cloud().await?, &cluster.cluster_id.to_string(), - models::AdminClustersDatacentersCreateRequest { + models::AdminClustersCreateDatacenterRequest { name_id, display_name, provider: provider.into(), @@ -193,42 +186,6 @@ impl SubCommand { datacenter_id: d.datacenter_id, })); } - Self::Taint { - cluster: cluster_name_id, - name_id, - } => { - let clusters = - admin_clusters_api::admin_clusters_list(&ctx.openapi_config_cloud().await?) - .await? - .clusters; - let cluster = clusters.iter().find(|c| c.name_id == cluster_name_id); - - let cluster = match cluster { - Some(c) => c, - None => bail!("cluster with the name id {} not found", cluster_name_id), - }; - - let datacenters = admin_clusters_datacenters_api::admin_clusters_datacenters_list( - &ctx.openapi_config_cloud().await?, - &cluster.cluster_id.to_string(), - ) - .await? - .datacenters; - - let datacenter = datacenters.iter().find(|d| d.name_id == name_id); - - let datacenter = match datacenter { - Some(d) => d, - None => bail!("datacenter with the name id {} not found", name_id), - }; - - admin_clusters_datacenters_api::admin_clusters_datacenters_taint( - &ctx.openapi_config_cloud().await?, - &cluster.cluster_id.to_string(), - &datacenter.datacenter_id.to_string(), - ) - .await?; - } Self::Update { cluster: cluster_name_id, name_id, @@ -268,12 +225,12 @@ impl SubCommand { &ctx.openapi_config_cloud().await?, &cluster.cluster_id.to_string(), &datacenter.datacenter_id.to_string(), - models::AdminClustersDatacentersUpdateRequest { + models::AdminClustersUpdateDatacenterRequest { desired_count, drain_timeout, hardware: hardware .iter() - .map(|hardware| models::AdminHardware { + .map(|hardware| models::AdminClustersHardware { provider_hardware: hardware.clone(), }) .collect(), diff --git a/lib/bolt/cli/src/commands/cluster/mod.rs b/lib/bolt/cli/src/commands/cluster/mod.rs index 04f4e2c9e..568318af9 100644 --- a/lib/bolt/cli/src/commands/cluster/mod.rs +++ b/lib/bolt/cli/src/commands/cluster/mod.rs @@ -1,5 +1,5 @@ use anyhow::*; -use bolt_core::context::ProjectContext; +use bolt_core::{context::ProjectContext, tasks::ssh}; use clap::Parser; use rivet_api::{apis::*, models}; use tabled::Tabled; @@ -20,6 +20,37 @@ pub enum SubCommand { }, /// Lists all clusters List, + /// Taint servers in a cluster + Taint { + /// The name id of the cluster + #[clap(index = 1)] + cluster: String, + #[clap(long)] + server_id: Option, + #[clap(long, short = 'p')] + pool: Option, + #[clap(long, short = 'd')] + datacenter: Option, + #[clap(long)] + ip: Option, + }, + /// SSH in to a server in the cluster + Ssh { + /// The name id of the cluster + #[clap(index = 1)] + cluster: String, + #[clap(long)] + server_id: Option, + #[clap(long, short = 'p')] + pool: Option, + #[clap(long, short = 'd')] + datacenter: Option, + #[clap(long)] + ip: Option, + + #[clap(long, short = 'c')] + command: Option, + }, /// Datacenter handler Datacenter { #[clap(subcommand)] @@ -47,7 +78,7 @@ impl SubCommand { admin_clusters_api::admin_clusters_create( &ctx.openapi_config_cloud().await?, - models::AdminClustersCreateRequest { + models::AdminClustersCreateClusterRequest { name_id, owner_team_id: Some(Uuid::parse_str(&owner_team_id).unwrap()), }, @@ -71,6 +102,97 @@ impl SubCommand { })); } + Self::Taint { + cluster: cluster_name_id, + server_id, + pool, + datacenter, + ip, + } => { + let cloud_config = ctx.openapi_config_cloud().await?; + + // Look up cluster + let clusters = admin_clusters_api::admin_clusters_list(&cloud_config) + .await? + .clusters; + let cluster = clusters.iter().find(|c| c.name_id == cluster_name_id); + let cluster = match cluster { + Some(c) => c, + None => bail!("cluster with the name id {} not found", cluster_name_id), + }; + + // Taint servers + let pool_type = pool + .map(|p| match p.as_str() { + "job" => Ok(models::AdminClustersPoolType::Job), + "gg" => Ok(models::AdminClustersPoolType::Gg), + "ats" => Ok(models::AdminClustersPoolType::Ats), + _ => Err(anyhow!("invalid pool type")), + }) + .transpose()?; + admin_clusters_servers_api::admin_clusters_servers_taint( + &cloud_config, + &cluster.cluster_id.to_string(), + server_id.as_deref(), + datacenter.as_deref(), + pool_type, + ip.as_deref(), + ) + .await?; + } + Self::Ssh { + cluster: cluster_name_id, + command, + server_id, + pool, + datacenter, + ip, + } => { + let cloud_config = ctx.openapi_config_cloud().await?; + + // Look up cluster + let clusters = admin_clusters_api::admin_clusters_list(&cloud_config) + .await? + .clusters; + let cluster = clusters.iter().find(|c| c.name_id == cluster_name_id); + let cluster = match cluster { + Some(c) => c, + None => bail!("cluster with the name id {} not found", cluster_name_id), + }; + + // Look up server IPs + let pool_type = pool + .map(|p| match p.as_str() { + "job" => Ok(models::AdminClustersPoolType::Job), + "gg" => Ok(models::AdminClustersPoolType::Gg), + "ats" => Ok(models::AdminClustersPoolType::Ats), + _ => Err(anyhow!("invalid pool type")), + }) + .transpose()?; + let mut servers = admin_clusters_servers_api::admin_clusters_servers_list( + &cloud_config, + &cluster.cluster_id.to_string(), + server_id.as_deref(), + datacenter.as_deref(), + pool_type, + ip.as_deref(), + ) + .await?; + servers.servers.sort_by_key(|s| s.server_id); + let server_ips = servers + .servers + .iter() + .map(|x| x.public_ip.as_str()) + .collect::>(); + + // SSH in to servers + if let Some(command) = command { + ssh::ip_all(&ctx, &server_ips, &command).await?; + } else { + let ip = server_ips.first().context("no matching servers")?; + ssh::ip(&ctx, ip, command.as_deref()).await?; + } + } Self::Datacenter { command } => { command.execute(ctx).await?; } diff --git a/lib/bolt/cli/src/commands/mod.rs b/lib/bolt/cli/src/commands/mod.rs index a7e6587f9..04078453d 100644 --- a/lib/bolt/cli/src/commands/mod.rs +++ b/lib/bolt/cli/src/commands/mod.rs @@ -10,7 +10,6 @@ pub mod init; pub mod logs; pub mod output; pub mod secret; -pub mod ssh; pub mod terraform; pub mod test; pub mod up; diff --git a/lib/bolt/cli/src/commands/ssh.rs b/lib/bolt/cli/src/commands/ssh.rs deleted file mode 100644 index 0acd25c11..000000000 --- a/lib/bolt/cli/src/commands/ssh.rs +++ /dev/null @@ -1,64 +0,0 @@ -use anyhow::*; -use bolt_core::{context::ProjectContext, tasks::ssh::TempSshKey}; -use clap::{Parser, ValueEnum}; - -#[derive(ValueEnum, Clone)] -pub enum Format { - Json, -} - -#[derive(Parser)] -pub enum SubCommand { - Ip { - #[clap(index = 1)] - ip: String, - #[clap(index = 2)] - command: Option, - #[clap(long)] - ssh_key: Option, - }, - Id { - #[clap(index = 1)] - server_id: String, - #[clap(index = 2)] - command: Option, - }, - Pool { - #[clap(index = 1)] - pool: String, - #[clap(index = 2)] - command: Option, - #[clap(short = 'a', long)] - all: bool, - }, -} - -impl SubCommand { - pub async fn execute(self, ctx: ProjectContext) -> Result<()> { - match self { - Self::Ip { - ip, - command, - ssh_key, - } => { - let ssh_key = - TempSshKey::new(&ctx, &ssh_key.map_or_else(|| "server".to_string(), |x| x)) - .await?; - bolt_core::tasks::ssh::ip(&ctx, &ip, &ssh_key, command.as_deref()).await?; - } - Self::Id { server_id, command } => { - bolt_core::tasks::ssh::id(&ctx, &server_id, command.as_deref()).await?; - } - Self::Pool { pool, command, all } => { - if all { - let command = command.context("must provide command with --all")?; - bolt_core::tasks::ssh::pool_all(&ctx, &pool, &command).await?; - } else { - bolt_core::tasks::ssh::pool(&ctx, &pool, command.as_deref()).await?; - } - } - } - - Ok(()) - } -} diff --git a/lib/bolt/cli/src/main.rs b/lib/bolt/cli/src/main.rs index fd50d017a..a6d824778 100644 --- a/lib/bolt/cli/src/main.rs +++ b/lib/bolt/cli/src/main.rs @@ -62,11 +62,6 @@ enum SubCommand { #[clap(subcommand)] command: terraform::SubCommand, }, - /// Provides SSH access to provisioned servers. - Ssh { - #[clap(subcommand)] - command: ssh::SubCommand, - }, /// Manages databases for services. #[clap(alias = "db")] Database { @@ -130,7 +125,6 @@ async fn main_inner() -> Result { SubCommand::Secret { command } => command.execute(ctx).await?, SubCommand::Output { command } => command.execute(ctx).await?, SubCommand::Terraform { command } => command.execute(ctx).await?, - SubCommand::Ssh { command } => command.execute(ctx).await?, SubCommand::Database { command } => command.execute(ctx).await?, SubCommand::Cluster { command } => command.execute(ctx).await?, SubCommand::Admin { command } => command.execute(ctx).await?, diff --git a/lib/bolt/core/src/tasks/api.rs b/lib/bolt/core/src/tasks/api.rs index a7d31f3ca..64ea310f8 100644 --- a/lib/bolt/core/src/tasks/api.rs +++ b/lib/bolt/core/src/tasks/api.rs @@ -1,5 +1,8 @@ use anyhow::*; -use rivet_api::{apis::admin_clusters_api, models}; +use rivet_api::{ + apis::{admin_clusters_api, admin_clusters_servers_api}, + models, +}; use serde_json::json; use crate::context::ProjectContext; @@ -47,19 +50,35 @@ pub async fn get_cluster_server_ips( server_id: Option<&str>, pools: Option<&str>, ) -> Result> { - let server_ips = admin_clusters_api::admin_clusters_get_server_ips( - &project_ctx.openapi_config_cloud().await?, - server_id, - pools - .map(|p| match p { - "job" => Ok(models::AdminPoolType::Job), - "gg" => Ok(models::AdminPoolType::Gg), - "ats" => Ok(models::AdminPoolType::Ats), - _ => Err(anyhow!("invalid pool type")), - }) - .transpose()?, - ) - .await?; - - Ok(server_ips.ips) + todo!() } + +// pub struct ServerFilterQuery { +// pool: Option, +// datacenter: Option, +// public_ip: Option, +// } +// +// pub async fn get_cluster_server_ips( +// project_ctx: &ProjectContext, +// cluster_id: Uuid, +// pool_type: Option<&str>, +// datacenter_id: Option<&str>, +// ) -> Result> { +// let server_ips = admin_clusters_servers_api::admin_clusters_servers_list( +// &project_ctx.openapi_config_cloud().await?, +// cluster_id, +// datacenter_id.as_ref().map(String::as_str), +// pool_type +// .map(|p| match p { +// "job" => Ok(models::AdminClustersPoolType::Job), +// "gg" => Ok(models::AdminClustersPoolType::Gg), +// "ats" => Ok(models::AdminClustersPoolType::Ats), +// _ => Err(anyhow!("invalid pool type")), +// }) +// .transpose()?, +// ) +// .await?; +// +// Ok(server_ips.ips) +// } diff --git a/lib/bolt/core/src/tasks/ssh.rs b/lib/bolt/core/src/tasks/ssh.rs index a9680d28d..c35bfdb3c 100644 --- a/lib/bolt/core/src/tasks/ssh.rs +++ b/lib/bolt/core/src/tasks/ssh.rs @@ -37,7 +37,7 @@ impl TempSshKey { } } -pub async fn ip( +async fn ip_inner( _ctx: &ProjectContext, ip: &str, ssh_key: &TempSshKey, @@ -54,33 +54,12 @@ pub async fn ip( Ok(()) } -pub async fn id(ctx: &ProjectContext, server_id: &str, command: Option<&str>) -> Result<()> { - let server_ips = tasks::api::get_cluster_server_ips(ctx, Some(server_id), None).await?; - let server_ip = server_ips - .first() - .context(format!("failed to find server with server id {server_id}"))?; - - // TODO: Choose correct SSH key - let ssh_key = TempSshKey::new(ctx, "server").await?; - ip(ctx, server_ip, &ssh_key, command).await?; - - Ok(()) -} - -pub async fn pool(ctx: &ProjectContext, pool: &str, command: Option<&str>) -> Result<()> { - let server_ips = tasks::api::get_cluster_server_ips(ctx, None, Some(pool)).await?; - let server_ip = server_ips - .first() - .context(format!("failed to find server with pool {pool}"))?; - - let ssh_key = TempSshKey::new(ctx, "server").await?; - ip(ctx, server_ip, &ssh_key, command).await?; - - Ok(()) +pub async fn ip(ctx: &ProjectContext, ip: &str, command: Option<&str>) -> Result<()> { + let ssh_key = Arc::new(TempSshKey::new(ctx, "server").await?); + ip_inner(ctx, ip, &ssh_key, command).await } -pub async fn pool_all(ctx: &ProjectContext, pool: &str, command: &str) -> Result<()> { - let server_ips = tasks::api::get_cluster_server_ips(ctx, None, Some(pool)).await?; +pub async fn ip_all(ctx: &ProjectContext, server_ips: &[&str], command: &str) -> Result<()> { let ssh_key = Arc::new(TempSshKey::new(ctx, "server").await?); futures_util::stream::iter(server_ips) @@ -88,7 +67,7 @@ pub async fn pool_all(ctx: &ProjectContext, pool: &str, command: &str) -> Result let ctx = ctx.clone(); let ssh_key = ssh_key.clone(); async move { - let res = ip(&ctx, &server_ip, &ssh_key, Some(command)).await; + let res = ip_inner(&ctx, &server_ip, &ssh_key, Some(command)).await; println!("{res:?}"); } }) diff --git a/lib/convert/src/impls/admin.rs b/lib/convert/src/impls/admin.rs index 4d6bcc127..998185eff 100644 --- a/lib/convert/src/impls/admin.rs +++ b/lib/convert/src/impls/admin.rs @@ -4,73 +4,73 @@ use rivet_operation::prelude::*; use crate::{ApiFrom, ApiInto, ApiTryFrom}; -impl ApiFrom for backend::cluster::PoolType { - fn api_from(value: models::AdminPoolType) -> backend::cluster::PoolType { +impl ApiFrom for backend::cluster::PoolType { + fn api_from(value: models::AdminClustersPoolType) -> backend::cluster::PoolType { match value { - models::AdminPoolType::Job => backend::cluster::PoolType::Job, - models::AdminPoolType::Gg => backend::cluster::PoolType::Gg, - models::AdminPoolType::Ats => backend::cluster::PoolType::Ats, + models::AdminClustersPoolType::Job => backend::cluster::PoolType::Job, + models::AdminClustersPoolType::Gg => backend::cluster::PoolType::Gg, + models::AdminClustersPoolType::Ats => backend::cluster::PoolType::Ats, } } } -impl ApiFrom for models::AdminPoolType { - fn api_from(value: backend::cluster::PoolType) -> models::AdminPoolType { +impl ApiFrom for models::AdminClustersPoolType { + fn api_from(value: backend::cluster::PoolType) -> models::AdminClustersPoolType { match value { - backend::cluster::PoolType::Job => models::AdminPoolType::Job, - backend::cluster::PoolType::Gg => models::AdminPoolType::Gg, - backend::cluster::PoolType::Ats => models::AdminPoolType::Ats, + backend::cluster::PoolType::Job => models::AdminClustersPoolType::Job, + backend::cluster::PoolType::Gg => models::AdminClustersPoolType::Gg, + backend::cluster::PoolType::Ats => models::AdminClustersPoolType::Ats, } } } -impl ApiFrom for backend::cluster::Provider { - fn api_from(value: models::AdminProvider) -> backend::cluster::Provider { +impl ApiFrom for backend::cluster::Provider { + fn api_from(value: models::AdminClustersProvider) -> backend::cluster::Provider { match value { - models::AdminProvider::Linode => backend::cluster::Provider::Linode, + models::AdminClustersProvider::Linode => backend::cluster::Provider::Linode, } } } -impl ApiFrom for models::AdminProvider { - fn api_from(value: backend::cluster::Provider) -> models::AdminProvider { +impl ApiFrom for models::AdminClustersProvider { + fn api_from(value: backend::cluster::Provider) -> models::AdminClustersProvider { match value { - backend::cluster::Provider::Linode => models::AdminProvider::Linode, + backend::cluster::Provider::Linode => models::AdminClustersProvider::Linode, } } } -impl ApiFrom for backend::cluster::BuildDeliveryMethod { - fn api_from(value: models::AdminBuildDeliveryMethod) -> backend::cluster::BuildDeliveryMethod { +impl ApiFrom for backend::cluster::BuildDeliveryMethod { + fn api_from(value: models::AdminClustersBuildDeliveryMethod) -> backend::cluster::BuildDeliveryMethod { match value { - models::AdminBuildDeliveryMethod::TrafficServer => { + models::AdminClustersBuildDeliveryMethod::TrafficServer => { backend::cluster::BuildDeliveryMethod::TrafficServer } - models::AdminBuildDeliveryMethod::S3Direct => { + models::AdminClustersBuildDeliveryMethod::S3Direct => { backend::cluster::BuildDeliveryMethod::S3Direct } } } } -impl ApiFrom for models::AdminBuildDeliveryMethod { - fn api_from(value: backend::cluster::BuildDeliveryMethod) -> models::AdminBuildDeliveryMethod { +impl ApiFrom for models::AdminClustersBuildDeliveryMethod { + fn api_from(value: backend::cluster::BuildDeliveryMethod) -> models::AdminClustersBuildDeliveryMethod { match value { backend::cluster::BuildDeliveryMethod::TrafficServer => { - models::AdminBuildDeliveryMethod::TrafficServer + models::AdminClustersBuildDeliveryMethod::TrafficServer } backend::cluster::BuildDeliveryMethod::S3Direct => { - models::AdminBuildDeliveryMethod::S3Direct + models::AdminClustersBuildDeliveryMethod::S3Direct } } } } -impl ApiTryFrom for models::AdminCluster { +impl ApiTryFrom for models::AdminClustersCluster { type Error = GlobalError; - fn api_try_from(value: backend::cluster::Cluster) -> GlobalResult { - Ok(models::AdminCluster { + fn api_try_from(value: backend::cluster::Cluster) -> GlobalResult { + Ok(models::AdminClustersCluster { cluster_id: unwrap!(value.cluster_id).into(), name_id: value.name_id, create_ts: value.create_ts, @@ -79,11 +79,11 @@ impl ApiTryFrom for models::AdminCluster { } } -impl ApiTryFrom for models::AdminDatacenter { +impl ApiTryFrom for models::AdminClustersDatacenter { type Error = GlobalError; - fn api_try_from(value: backend::cluster::Datacenter) -> GlobalResult { - Ok(models::AdminDatacenter { + fn api_try_from(value: backend::cluster::Datacenter) -> GlobalResult { + Ok(models::AdminClustersDatacenter { build_delivery_method: unwrap!(backend::cluster::BuildDeliveryMethod::from_i32( value.build_delivery_method )) @@ -96,18 +96,18 @@ impl ApiTryFrom for models::AdminDatacenter { .pools .iter() .map(|p| { - Ok(models::AdminPool { + Ok(models::AdminClustersPool { desired_count: unwrap!(p.desired_count.try_into()), drain_timeout: unwrap!(p.drain_timeout.try_into()), hardware: p .hardware .iter() .map(|h| { - Ok(models::AdminHardware { + Ok(models::AdminClustersHardware { provider_hardware: h.provider_hardware.clone(), }) }) - .collect::, GlobalError>>()?, + .collect::, GlobalError>>()?, max_count: unwrap!(p.max_count.try_into()), pool_type: unwrap!(backend::cluster::PoolType::from_i32(p.pool_type)) .api_into(), diff --git a/proto/backend/cluster.proto b/proto/backend/cluster.proto index 7c8cb39b6..2e48eea09 100644 --- a/proto/backend/cluster.proto +++ b/proto/backend/cluster.proto @@ -59,12 +59,13 @@ enum BuildDeliveryMethod { message Server { rivet.common.Uuid server_id = 1; - rivet.common.Uuid datacenter_id = 2; - PoolType pool_type = 3; - optional string vlan_ip = 4; - optional string public_ip = 5; + rivet.common.Uuid cluster_id = 2; + rivet.common.Uuid datacenter_id = 3; + PoolType pool_type = 4; + optional string vlan_ip = 5; + optional string public_ip = 6; - optional int64 cloud_destroy_ts = 6; + optional int64 cloud_destroy_ts = 7; // TODO: Add the rest of the sql columns } @@ -74,3 +75,20 @@ enum TlsState { ACTIVE = 1; RENEWING = 2; } + +message ServerFilter { + bool filter_server_ids = 1; + repeated rivet.common.Uuid server_ids = 2; + + bool filter_cluster_ids = 3; + repeated rivet.common.Uuid cluster_ids = 4; + + bool filter_datacenter_ids = 5; + repeated rivet.common.Uuid datacenter_ids = 6; + + bool filter_pool_types = 7; + repeated PoolType pool_types = 8; + + bool filter_public_ips = 9; + repeated string public_ips = 10; +} diff --git a/scripts/openapi/gen_rust.sh b/scripts/openapi/gen_rust.sh index 3176e38f1..7ff3bc192 100755 --- a/scripts/openapi/gen_rust.sh +++ b/scripts/openapi/gen_rust.sh @@ -21,7 +21,7 @@ docker run --rm \ if [ "$FERN_GROUP" == "full" ]; then # Fix OpenAPI bug (https://github.com/OpenAPITools/openapi-generator/issues/14171) sed -i 's/CloudGamesLogStream/crate::models::CloudGamesLogStream/' "$GEN_PATH_RUST/src/apis/cloud_games_matchmaker_api.rs" - sed -i 's/AdminPoolType/crate::models::AdminPoolType/' "$GEN_PATH_RUST/src/apis/admin_clusters_api.rs" + sed -i 's/AdminClustersPoolType/crate::models::AdminClustersPoolType/' "$GEN_PATH_RUST/src/apis/admin_clusters_servers_api.rs" # Create variant specifically for the CLI cp -r $GEN_PATH_RUST $GEN_PATH_RUST_CLI diff --git a/sdks/full/go/admin/clusters/client/client.go b/sdks/full/go/admin/clusters/client/client.go index 5e1127e1e..b3194c8b1 100644 --- a/sdks/full/go/admin/clusters/client/client.go +++ b/sdks/full/go/admin/clusters/client/client.go @@ -7,13 +7,12 @@ import ( context "context" json "encoding/json" errors "errors" - fmt "fmt" io "io" http "net/http" - url "net/url" sdk "sdk" clusters "sdk/admin/clusters" - datacentersclient "sdk/admin/clusters/datacenters/client" + datacenters "sdk/admin/clusters/datacenters" + servers "sdk/admin/clusters/servers" core "sdk/core" ) @@ -22,7 +21,8 @@ type Client struct { caller *core.Caller header http.Header - Datacenters *datacentersclient.Client + Datacenters *datacenters.Client + Servers *servers.Client } func NewClient(opts ...core.ClientOption) *Client { @@ -34,100 +34,13 @@ func NewClient(opts ...core.ClientOption) *Client { baseURL: options.BaseURL, caller: core.NewCaller(options.HTTPClient), header: options.ToHeader(), - Datacenters: datacentersclient.NewClient(opts...), + Datacenters: datacenters.NewClient(opts...), + Servers: servers.NewClient(opts...), } } -func (c *Client) GetServerIps(ctx context.Context, request *clusters.GetServerIpsRequest) (*clusters.GetServerIpsResponse, error) { - baseURL := "https://api.rivet.gg" - if c.baseURL != "" { - baseURL = c.baseURL - } - endpointURL := baseURL + "/" + "admin/clusters/server_ips" - - queryParams := make(url.Values) - if request.ServerId != nil { - queryParams.Add("server_id", fmt.Sprintf("%v", *request.ServerId)) - } - if request.Pool != nil { - queryParams.Add("pool", fmt.Sprintf("%v", *request.Pool)) - } - if len(queryParams) > 0 { - endpointURL += "?" + queryParams.Encode() - } - - errorDecoder := func(statusCode int, body io.Reader) error { - raw, err := io.ReadAll(body) - if err != nil { - return err - } - apiError := core.NewAPIError(statusCode, errors.New(string(raw))) - decoder := json.NewDecoder(bytes.NewReader(raw)) - switch statusCode { - case 500: - value := new(sdk.InternalError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 429: - value := new(sdk.RateLimitError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 403: - value := new(sdk.ForbiddenError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 408: - value := new(sdk.UnauthorizedError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 404: - value := new(sdk.NotFoundError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 400: - value := new(sdk.BadRequestError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - } - return apiError - } - - var response *clusters.GetServerIpsResponse - if err := c.caller.Call( - ctx, - &core.CallParams{ - URL: endpointURL, - Method: http.MethodGet, - Headers: c.header, - Response: &response, - ErrorDecoder: errorDecoder, - }, - ); err != nil { - return nil, err - } - return response, nil -} - // Get clusters -func (c *Client) List(ctx context.Context) (*clusters.ListResponse, error) { +func (c *Client) List(ctx context.Context) (*clusters.ListClustersResponse, error) { baseURL := "https://api.rivet.gg" if c.baseURL != "" { baseURL = c.baseURL @@ -188,7 +101,7 @@ func (c *Client) List(ctx context.Context) (*clusters.ListResponse, error) { return apiError } - var response *clusters.ListResponse + var response *clusters.ListClustersResponse if err := c.caller.Call( ctx, &core.CallParams{ @@ -205,7 +118,7 @@ func (c *Client) List(ctx context.Context) (*clusters.ListResponse, error) { } // Create a new cluster -func (c *Client) Create(ctx context.Context, request *clusters.CreateRequest) (*clusters.CreateResponse, error) { +func (c *Client) Create(ctx context.Context, request *clusters.CreateClusterRequest) (*clusters.CreateClusterResponse, error) { baseURL := "https://api.rivet.gg" if c.baseURL != "" { baseURL = c.baseURL @@ -266,7 +179,7 @@ func (c *Client) Create(ctx context.Context, request *clusters.CreateRequest) (* return apiError } - var response *clusters.CreateResponse + var response *clusters.CreateClusterResponse if err := c.caller.Call( ctx, &core.CallParams{ diff --git a/sdks/full/go/admin/clusters/clusters.go b/sdks/full/go/admin/clusters/clusters.go index acb64cc2f..a75575e06 100644 --- a/sdks/full/go/admin/clusters/clusters.go +++ b/sdks/full/go/admin/clusters/clusters.go @@ -6,29 +6,28 @@ import ( json "encoding/json" fmt "fmt" uuid "github.com/google/uuid" - admin "sdk/admin" core "sdk/core" ) -type CreateRequest struct { +type CreateClusterRequest struct { NameId string `json:"name_id"` OwnerTeamId *uuid.UUID `json:"owner_team_id,omitempty"` _rawJSON json.RawMessage } -func (c *CreateRequest) UnmarshalJSON(data []byte) error { - type unmarshaler CreateRequest +func (c *CreateClusterRequest) UnmarshalJSON(data []byte) error { + type unmarshaler CreateClusterRequest var value unmarshaler if err := json.Unmarshal(data, &value); err != nil { return err } - *c = CreateRequest(value) + *c = CreateClusterRequest(value) c._rawJSON = json.RawMessage(data) return nil } -func (c *CreateRequest) String() string { +func (c *CreateClusterRequest) String() string { if len(c._rawJSON) > 0 { if value, err := core.StringifyJSON(c._rawJSON); err == nil { return value @@ -40,24 +39,24 @@ func (c *CreateRequest) String() string { return fmt.Sprintf("%#v", c) } -type CreateResponse struct { +type CreateClusterResponse struct { ClusterId uuid.UUID `json:"cluster_id"` _rawJSON json.RawMessage } -func (c *CreateResponse) UnmarshalJSON(data []byte) error { - type unmarshaler CreateResponse +func (c *CreateClusterResponse) UnmarshalJSON(data []byte) error { + type unmarshaler CreateClusterResponse var value unmarshaler if err := json.Unmarshal(data, &value); err != nil { return err } - *c = CreateResponse(value) + *c = CreateClusterResponse(value) c._rawJSON = json.RawMessage(data) return nil } -func (c *CreateResponse) String() string { +func (c *CreateClusterResponse) String() string { if len(c._rawJSON) > 0 { if value, err := core.StringifyJSON(c._rawJSON); err == nil { return value @@ -69,53 +68,24 @@ func (c *CreateResponse) String() string { return fmt.Sprintf("%#v", c) } -type GetServerIpsResponse struct { - Ips []string `json:"ips,omitempty"` +type ListClustersResponse struct { + Clusters []*Cluster `json:"clusters,omitempty"` _rawJSON json.RawMessage } -func (g *GetServerIpsResponse) UnmarshalJSON(data []byte) error { - type unmarshaler GetServerIpsResponse +func (l *ListClustersResponse) UnmarshalJSON(data []byte) error { + type unmarshaler ListClustersResponse var value unmarshaler if err := json.Unmarshal(data, &value); err != nil { return err } - *g = GetServerIpsResponse(value) - g._rawJSON = json.RawMessage(data) - return nil -} - -func (g *GetServerIpsResponse) String() string { - if len(g._rawJSON) > 0 { - if value, err := core.StringifyJSON(g._rawJSON); err == nil { - return value - } - } - if value, err := core.StringifyJSON(g); err == nil { - return value - } - return fmt.Sprintf("%#v", g) -} - -type ListResponse struct { - Clusters []*admin.Cluster `json:"clusters,omitempty"` - - _rawJSON json.RawMessage -} - -func (l *ListResponse) UnmarshalJSON(data []byte) error { - type unmarshaler ListResponse - var value unmarshaler - if err := json.Unmarshal(data, &value); err != nil { - return err - } - *l = ListResponse(value) + *l = ListClustersResponse(value) l._rawJSON = json.RawMessage(data) return nil } -func (l *ListResponse) String() string { +func (l *ListClustersResponse) String() string { if len(l._rawJSON) > 0 { if value, err := core.StringifyJSON(l._rawJSON); err == nil { return value diff --git a/sdks/full/go/admin/clusters/datacenters/datacenters.go b/sdks/full/go/admin/clusters/datacenters.go similarity index 51% rename from sdks/full/go/admin/clusters/datacenters/datacenters.go rename to sdks/full/go/admin/clusters/datacenters.go index a518c5b8b..bb4e1df51 100644 --- a/sdks/full/go/admin/clusters/datacenters/datacenters.go +++ b/sdks/full/go/admin/clusters/datacenters.go @@ -1,37 +1,36 @@ // This file was auto-generated by Fern from our API Definition. -package datacenters +package clusters import ( json "encoding/json" fmt "fmt" uuid "github.com/google/uuid" - admin "sdk/admin" core "sdk/core" ) -type CreateRequest struct { - DisplayName string `json:"display_name"` - NameId string `json:"name_id"` - Provider admin.Provider `json:"provider,omitempty"` - ProviderDatacenterId string `json:"provider_datacenter_id"` - BuildDeliveryMethod admin.BuildDeliveryMethod `json:"build_delivery_method,omitempty"` +type CreateDatacenterRequest struct { + DisplayName string `json:"display_name"` + NameId string `json:"name_id"` + Provider Provider `json:"provider,omitempty"` + ProviderDatacenterId string `json:"provider_datacenter_id"` + BuildDeliveryMethod BuildDeliveryMethod `json:"build_delivery_method,omitempty"` _rawJSON json.RawMessage } -func (c *CreateRequest) UnmarshalJSON(data []byte) error { - type unmarshaler CreateRequest +func (c *CreateDatacenterRequest) UnmarshalJSON(data []byte) error { + type unmarshaler CreateDatacenterRequest var value unmarshaler if err := json.Unmarshal(data, &value); err != nil { return err } - *c = CreateRequest(value) + *c = CreateDatacenterRequest(value) c._rawJSON = json.RawMessage(data) return nil } -func (c *CreateRequest) String() string { +func (c *CreateDatacenterRequest) String() string { if len(c._rawJSON) > 0 { if value, err := core.StringifyJSON(c._rawJSON); err == nil { return value @@ -43,24 +42,24 @@ func (c *CreateRequest) String() string { return fmt.Sprintf("%#v", c) } -type CreateResponse struct { +type CreateDatacenterResponse struct { DatacenterId uuid.UUID `json:"datacenter_id"` _rawJSON json.RawMessage } -func (c *CreateResponse) UnmarshalJSON(data []byte) error { - type unmarshaler CreateResponse +func (c *CreateDatacenterResponse) UnmarshalJSON(data []byte) error { + type unmarshaler CreateDatacenterResponse var value unmarshaler if err := json.Unmarshal(data, &value); err != nil { return err } - *c = CreateResponse(value) + *c = CreateDatacenterResponse(value) c._rawJSON = json.RawMessage(data) return nil } -func (c *CreateResponse) String() string { +func (c *CreateDatacenterResponse) String() string { if len(c._rawJSON) > 0 { if value, err := core.StringifyJSON(c._rawJSON); err == nil { return value @@ -72,24 +71,24 @@ func (c *CreateResponse) String() string { return fmt.Sprintf("%#v", c) } -type ListResponse struct { - Datacenters []*admin.Datacenter `json:"datacenters,omitempty"` +type ListDatacentersResponse struct { + Datacenters []*Datacenter `json:"datacenters,omitempty"` _rawJSON json.RawMessage } -func (l *ListResponse) UnmarshalJSON(data []byte) error { - type unmarshaler ListResponse +func (l *ListDatacentersResponse) UnmarshalJSON(data []byte) error { + type unmarshaler ListDatacentersResponse var value unmarshaler if err := json.Unmarshal(data, &value); err != nil { return err } - *l = ListResponse(value) + *l = ListDatacentersResponse(value) l._rawJSON = json.RawMessage(data) return nil } -func (l *ListResponse) String() string { +func (l *ListDatacentersResponse) String() string { if len(l._rawJSON) > 0 { if value, err := core.StringifyJSON(l._rawJSON); err == nil { return value @@ -101,28 +100,28 @@ func (l *ListResponse) String() string { return fmt.Sprintf("%#v", l) } -type UpdateRequest struct { - PoolType admin.PoolType `json:"pool_type,omitempty"` - Hardware []*admin.Hardware `json:"hardware,omitempty"` - DesiredCount *int `json:"desired_count,omitempty"` - MaxCount *int `json:"max_count,omitempty"` - DrainTimeout *int64 `json:"drain_timeout,omitempty"` +type UpdateDatacenterRequest struct { + PoolType PoolType `json:"pool_type,omitempty"` + Hardware []*Hardware `json:"hardware,omitempty"` + DesiredCount *int `json:"desired_count,omitempty"` + MaxCount *int `json:"max_count,omitempty"` + DrainTimeout *int64 `json:"drain_timeout,omitempty"` _rawJSON json.RawMessage } -func (u *UpdateRequest) UnmarshalJSON(data []byte) error { - type unmarshaler UpdateRequest +func (u *UpdateDatacenterRequest) UnmarshalJSON(data []byte) error { + type unmarshaler UpdateDatacenterRequest var value unmarshaler if err := json.Unmarshal(data, &value); err != nil { return err } - *u = UpdateRequest(value) + *u = UpdateDatacenterRequest(value) u._rawJSON = json.RawMessage(data) return nil } -func (u *UpdateRequest) String() string { +func (u *UpdateDatacenterRequest) String() string { if len(u._rawJSON) > 0 { if value, err := core.StringifyJSON(u._rawJSON); err == nil { return value diff --git a/sdks/full/go/admin/clusters/datacenters/client/client.go b/sdks/full/go/admin/clusters/datacenters/client.go similarity index 73% rename from sdks/full/go/admin/clusters/datacenters/client/client.go rename to sdks/full/go/admin/clusters/datacenters/client.go index db4260d60..bd49c4886 100644 --- a/sdks/full/go/admin/clusters/datacenters/client/client.go +++ b/sdks/full/go/admin/clusters/datacenters/client.go @@ -1,6 +1,6 @@ // This file was auto-generated by Fern from our API Definition. -package client +package datacenters import ( bytes "bytes" @@ -12,7 +12,7 @@ import ( io "io" http "net/http" sdk "sdk" - datacenters "sdk/admin/clusters/datacenters" + clusters "sdk/admin/clusters" core "sdk/core" ) @@ -35,7 +35,7 @@ func NewClient(opts ...core.ClientOption) *Client { } // Get datacenters of a cluster -func (c *Client) List(ctx context.Context, clusterId uuid.UUID) (*datacenters.ListResponse, error) { +func (c *Client) List(ctx context.Context, clusterId uuid.UUID) (*clusters.ListDatacentersResponse, error) { baseURL := "https://api.rivet.gg" if c.baseURL != "" { baseURL = c.baseURL @@ -96,7 +96,7 @@ func (c *Client) List(ctx context.Context, clusterId uuid.UUID) (*datacenters.Li return apiError } - var response *datacenters.ListResponse + var response *clusters.ListDatacentersResponse if err := c.caller.Call( ctx, &core.CallParams{ @@ -112,7 +112,7 @@ func (c *Client) List(ctx context.Context, clusterId uuid.UUID) (*datacenters.Li return response, nil } -func (c *Client) Create(ctx context.Context, clusterId uuid.UUID, request *datacenters.CreateRequest) (*datacenters.CreateResponse, error) { +func (c *Client) Create(ctx context.Context, clusterId uuid.UUID, request *clusters.CreateDatacenterRequest) (*clusters.CreateDatacenterResponse, error) { baseURL := "https://api.rivet.gg" if c.baseURL != "" { baseURL = c.baseURL @@ -173,7 +173,7 @@ func (c *Client) Create(ctx context.Context, clusterId uuid.UUID, request *datac return apiError } - var response *datacenters.CreateResponse + var response *clusters.CreateDatacenterResponse if err := c.caller.Call( ctx, &core.CallParams{ @@ -190,7 +190,7 @@ func (c *Client) Create(ctx context.Context, clusterId uuid.UUID, request *datac return response, nil } -func (c *Client) Update(ctx context.Context, clusterId uuid.UUID, datacenterId uuid.UUID, request *datacenters.UpdateRequest) error { +func (c *Client) Update(ctx context.Context, clusterId uuid.UUID, datacenterId uuid.UUID, request *clusters.UpdateDatacenterRequest) error { baseURL := "https://api.rivet.gg" if c.baseURL != "" { baseURL = c.baseURL @@ -265,78 +265,3 @@ func (c *Client) Update(ctx context.Context, clusterId uuid.UUID, datacenterId u } return nil } - -func (c *Client) Taint(ctx context.Context, clusterId uuid.UUID, datacenterId string) error { - baseURL := "https://api.rivet.gg" - if c.baseURL != "" { - baseURL = c.baseURL - } - endpointURL := fmt.Sprintf(baseURL+"/"+"admin/clusters/%v/datacenters/%v/taint", clusterId, datacenterId) - - errorDecoder := func(statusCode int, body io.Reader) error { - raw, err := io.ReadAll(body) - if err != nil { - return err - } - apiError := core.NewAPIError(statusCode, errors.New(string(raw))) - decoder := json.NewDecoder(bytes.NewReader(raw)) - switch statusCode { - case 500: - value := new(sdk.InternalError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 429: - value := new(sdk.RateLimitError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 403: - value := new(sdk.ForbiddenError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 408: - value := new(sdk.UnauthorizedError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 404: - value := new(sdk.NotFoundError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - case 400: - value := new(sdk.BadRequestError) - value.APIError = apiError - if err := decoder.Decode(value); err != nil { - return apiError - } - return value - } - return apiError - } - - if err := c.caller.Call( - ctx, - &core.CallParams{ - URL: endpointURL, - Method: http.MethodGet, - Headers: c.header, - ErrorDecoder: errorDecoder, - }, - ); err != nil { - return err - } - return nil -} diff --git a/sdks/full/go/admin/clusters/servers.go b/sdks/full/go/admin/clusters/servers.go new file mode 100644 index 000000000..abc9675ce --- /dev/null +++ b/sdks/full/go/admin/clusters/servers.go @@ -0,0 +1,77 @@ +// This file was auto-generated by Fern from our API Definition. + +package clusters + +import ( + json "encoding/json" + fmt "fmt" + core "sdk/core" +) + +type ListServersRequest struct { + ServerId *string `json:"-"` + Datacenter *string `json:"-"` + Pool *PoolType `json:"-"` + PublicIp *string `json:"-"` +} + +type TaintServersRequest struct { + ServerId *string `json:"-"` + Datacenter *string `json:"-"` + Pool *PoolType `json:"-"` + PublicIp *string `json:"-"` +} + +type PoolType string + +const ( + PoolTypeJob PoolType = "job" + PoolTypeGg PoolType = "gg" + PoolTypeAts PoolType = "ats" +) + +func NewPoolTypeFromString(s string) (PoolType, error) { + switch s { + case "job": + return PoolTypeJob, nil + case "gg": + return PoolTypeGg, nil + case "ats": + return PoolTypeAts, nil + } + var t PoolType + return "", fmt.Errorf("%s is not a valid %T", s, t) +} + +func (p PoolType) Ptr() *PoolType { + return &p +} + +type ListServersResponse struct { + Servers []*Server `json:"servers,omitempty"` + + _rawJSON json.RawMessage +} + +func (l *ListServersResponse) UnmarshalJSON(data []byte) error { + type unmarshaler ListServersResponse + var value unmarshaler + if err := json.Unmarshal(data, &value); err != nil { + return err + } + *l = ListServersResponse(value) + l._rawJSON = json.RawMessage(data) + return nil +} + +func (l *ListServersResponse) String() string { + if len(l._rawJSON) > 0 { + if value, err := core.StringifyJSON(l._rawJSON); err == nil { + return value + } + } + if value, err := core.StringifyJSON(l); err == nil { + return value + } + return fmt.Sprintf("%#v", l) +} diff --git a/sdks/full/go/admin/clusters/servers/client.go b/sdks/full/go/admin/clusters/servers/client.go new file mode 100644 index 000000000..fd669f4f1 --- /dev/null +++ b/sdks/full/go/admin/clusters/servers/client.go @@ -0,0 +1,222 @@ +// This file was auto-generated by Fern from our API Definition. + +package servers + +import ( + bytes "bytes" + context "context" + json "encoding/json" + errors "errors" + fmt "fmt" + uuid "github.com/google/uuid" + io "io" + http "net/http" + url "net/url" + sdk "sdk" + clusters "sdk/admin/clusters" + core "sdk/core" +) + +type Client struct { + baseURL string + caller *core.Caller + header http.Header +} + +func NewClient(opts ...core.ClientOption) *Client { + options := core.NewClientOptions() + for _, opt := range opts { + opt(options) + } + return &Client{ + baseURL: options.BaseURL, + caller: core.NewCaller(options.HTTPClient), + header: options.ToHeader(), + } +} + +func (c *Client) List(ctx context.Context, clusterId uuid.UUID, request *clusters.ListServersRequest) (*clusters.ListServersResponse, error) { + baseURL := "https://api.rivet.gg" + if c.baseURL != "" { + baseURL = c.baseURL + } + endpointURL := fmt.Sprintf(baseURL+"/"+"admin/clusters/%v/servers", clusterId) + + queryParams := make(url.Values) + if request.ServerId != nil { + queryParams.Add("server_id", fmt.Sprintf("%v", *request.ServerId)) + } + if request.Datacenter != nil { + queryParams.Add("datacenter", fmt.Sprintf("%v", *request.Datacenter)) + } + if request.Pool != nil { + queryParams.Add("pool", fmt.Sprintf("%v", *request.Pool)) + } + if request.PublicIp != nil { + queryParams.Add("public_ip", fmt.Sprintf("%v", *request.PublicIp)) + } + if len(queryParams) > 0 { + endpointURL += "?" + queryParams.Encode() + } + + errorDecoder := func(statusCode int, body io.Reader) error { + raw, err := io.ReadAll(body) + if err != nil { + return err + } + apiError := core.NewAPIError(statusCode, errors.New(string(raw))) + decoder := json.NewDecoder(bytes.NewReader(raw)) + switch statusCode { + case 500: + value := new(sdk.InternalError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 429: + value := new(sdk.RateLimitError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 403: + value := new(sdk.ForbiddenError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 408: + value := new(sdk.UnauthorizedError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 404: + value := new(sdk.NotFoundError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 400: + value := new(sdk.BadRequestError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + } + return apiError + } + + var response *clusters.ListServersResponse + if err := c.caller.Call( + ctx, + &core.CallParams{ + URL: endpointURL, + Method: http.MethodGet, + Headers: c.header, + Response: &response, + ErrorDecoder: errorDecoder, + }, + ); err != nil { + return nil, err + } + return response, nil +} + +func (c *Client) Taint(ctx context.Context, clusterId uuid.UUID, request *clusters.TaintServersRequest) error { + baseURL := "https://api.rivet.gg" + if c.baseURL != "" { + baseURL = c.baseURL + } + endpointURL := fmt.Sprintf(baseURL+"/"+"admin/clusters/%v/servers/taint", clusterId) + + queryParams := make(url.Values) + if request.ServerId != nil { + queryParams.Add("server_id", fmt.Sprintf("%v", *request.ServerId)) + } + if request.Datacenter != nil { + queryParams.Add("datacenter", fmt.Sprintf("%v", *request.Datacenter)) + } + if request.Pool != nil { + queryParams.Add("pool", fmt.Sprintf("%v", *request.Pool)) + } + if request.PublicIp != nil { + queryParams.Add("public_ip", fmt.Sprintf("%v", *request.PublicIp)) + } + if len(queryParams) > 0 { + endpointURL += "?" + queryParams.Encode() + } + + errorDecoder := func(statusCode int, body io.Reader) error { + raw, err := io.ReadAll(body) + if err != nil { + return err + } + apiError := core.NewAPIError(statusCode, errors.New(string(raw))) + decoder := json.NewDecoder(bytes.NewReader(raw)) + switch statusCode { + case 500: + value := new(sdk.InternalError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 429: + value := new(sdk.RateLimitError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 403: + value := new(sdk.ForbiddenError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 408: + value := new(sdk.UnauthorizedError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 404: + value := new(sdk.NotFoundError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + case 400: + value := new(sdk.BadRequestError) + value.APIError = apiError + if err := decoder.Decode(value); err != nil { + return apiError + } + return value + } + return apiError + } + + if err := c.caller.Call( + ctx, + &core.CallParams{ + URL: endpointURL, + Method: http.MethodPost, + Headers: c.header, + ErrorDecoder: errorDecoder, + }, + ); err != nil { + return err + } + return nil +} diff --git a/sdks/full/go/admin/clusters/types.go b/sdks/full/go/admin/clusters/types.go index 178244839..c4cb1aecb 100644 --- a/sdks/full/go/admin/clusters/types.go +++ b/sdks/full/go/admin/clusters/types.go @@ -3,11 +3,210 @@ package clusters import ( + json "encoding/json" + fmt "fmt" uuid "github.com/google/uuid" - admin "sdk/admin" + core "sdk/core" ) -type GetServerIpsRequest struct { - ServerId *uuid.UUID `json:"-"` - Pool *admin.PoolType `json:"-"` +type BuildDeliveryMethod string + +const ( + BuildDeliveryMethodTrafficServer BuildDeliveryMethod = "traffic_server" + BuildDeliveryMethodS3Direct BuildDeliveryMethod = "s3_direct" +) + +func NewBuildDeliveryMethodFromString(s string) (BuildDeliveryMethod, error) { + switch s { + case "traffic_server": + return BuildDeliveryMethodTrafficServer, nil + case "s3_direct": + return BuildDeliveryMethodS3Direct, nil + } + var t BuildDeliveryMethod + return "", fmt.Errorf("%s is not a valid %T", s, t) +} + +func (b BuildDeliveryMethod) Ptr() *BuildDeliveryMethod { + return &b +} + +type Cluster struct { + ClusterId uuid.UUID `json:"cluster_id"` + NameId string `json:"name_id"` + CreateTs int64 `json:"create_ts"` + OwnerTeamId *uuid.UUID `json:"owner_team_id,omitempty"` + + _rawJSON json.RawMessage +} + +func (c *Cluster) UnmarshalJSON(data []byte) error { + type unmarshaler Cluster + var value unmarshaler + if err := json.Unmarshal(data, &value); err != nil { + return err + } + *c = Cluster(value) + c._rawJSON = json.RawMessage(data) + return nil +} + +func (c *Cluster) String() string { + if len(c._rawJSON) > 0 { + if value, err := core.StringifyJSON(c._rawJSON); err == nil { + return value + } + } + if value, err := core.StringifyJSON(c); err == nil { + return value + } + return fmt.Sprintf("%#v", c) +} + +type Datacenter struct { + DatacenterId uuid.UUID `json:"datacenter_id"` + ClusterId uuid.UUID `json:"cluster_id"` + NameId string `json:"name_id"` + DisplayName string `json:"display_name"` + Provider Provider `json:"provider,omitempty"` + ProviderDatacenterId string `json:"provider_datacenter_id"` + ProviderApiToken *string `json:"provider_api_token,omitempty"` + Pools []*Pool `json:"pools,omitempty"` + BuildDeliveryMethod BuildDeliveryMethod `json:"build_delivery_method,omitempty"` + + _rawJSON json.RawMessage +} + +func (d *Datacenter) UnmarshalJSON(data []byte) error { + type unmarshaler Datacenter + var value unmarshaler + if err := json.Unmarshal(data, &value); err != nil { + return err + } + *d = Datacenter(value) + d._rawJSON = json.RawMessage(data) + return nil +} + +func (d *Datacenter) String() string { + if len(d._rawJSON) > 0 { + if value, err := core.StringifyJSON(d._rawJSON); err == nil { + return value + } + } + if value, err := core.StringifyJSON(d); err == nil { + return value + } + return fmt.Sprintf("%#v", d) +} + +type Hardware struct { + ProviderHardware string `json:"provider_hardware"` + + _rawJSON json.RawMessage +} + +func (h *Hardware) UnmarshalJSON(data []byte) error { + type unmarshaler Hardware + var value unmarshaler + if err := json.Unmarshal(data, &value); err != nil { + return err + } + *h = Hardware(value) + h._rawJSON = json.RawMessage(data) + return nil +} + +func (h *Hardware) String() string { + if len(h._rawJSON) > 0 { + if value, err := core.StringifyJSON(h._rawJSON); err == nil { + return value + } + } + if value, err := core.StringifyJSON(h); err == nil { + return value + } + return fmt.Sprintf("%#v", h) +} + +type Pool struct { + PoolType PoolType `json:"pool_type,omitempty"` + Hardware []*Hardware `json:"hardware,omitempty"` + DesiredCount int `json:"desired_count"` + MaxCount int `json:"max_count"` + DrainTimeout int64 `json:"drain_timeout"` + + _rawJSON json.RawMessage +} + +func (p *Pool) UnmarshalJSON(data []byte) error { + type unmarshaler Pool + var value unmarshaler + if err := json.Unmarshal(data, &value); err != nil { + return err + } + *p = Pool(value) + p._rawJSON = json.RawMessage(data) + return nil +} + +func (p *Pool) String() string { + if len(p._rawJSON) > 0 { + if value, err := core.StringifyJSON(p._rawJSON); err == nil { + return value + } + } + if value, err := core.StringifyJSON(p); err == nil { + return value + } + return fmt.Sprintf("%#v", p) +} + +type Provider string + +const ( + ProviderLinode Provider = "linode" +) + +func NewProviderFromString(s string) (Provider, error) { + switch s { + case "linode": + return ProviderLinode, nil + } + var t Provider + return "", fmt.Errorf("%s is not a valid %T", s, t) +} + +func (p Provider) Ptr() *Provider { + return &p +} + +type Server struct { + ServerId uuid.UUID `json:"server_id"` + PublicIp string `json:"public_ip"` + + _rawJSON json.RawMessage +} + +func (s *Server) UnmarshalJSON(data []byte) error { + type unmarshaler Server + var value unmarshaler + if err := json.Unmarshal(data, &value); err != nil { + return err + } + *s = Server(value) + s._rawJSON = json.RawMessage(data) + return nil +} + +func (s *Server) String() string { + if len(s._rawJSON) > 0 { + if value, err := core.StringifyJSON(s._rawJSON); err == nil { + return value + } + } + if value, err := core.StringifyJSON(s); err == nil { + return value + } + return fmt.Sprintf("%#v", s) } diff --git a/sdks/full/go/admin/types.go b/sdks/full/go/admin/types.go deleted file mode 100644 index 63f5f9c32..000000000 --- a/sdks/full/go/admin/types.go +++ /dev/null @@ -1,207 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -package admin - -import ( - json "encoding/json" - fmt "fmt" - uuid "github.com/google/uuid" - core "sdk/core" -) - -type BuildDeliveryMethod string - -const ( - BuildDeliveryMethodTrafficServer BuildDeliveryMethod = "traffic_server" - BuildDeliveryMethodS3Direct BuildDeliveryMethod = "s3_direct" -) - -func NewBuildDeliveryMethodFromString(s string) (BuildDeliveryMethod, error) { - switch s { - case "traffic_server": - return BuildDeliveryMethodTrafficServer, nil - case "s3_direct": - return BuildDeliveryMethodS3Direct, nil - } - var t BuildDeliveryMethod - return "", fmt.Errorf("%s is not a valid %T", s, t) -} - -func (b BuildDeliveryMethod) Ptr() *BuildDeliveryMethod { - return &b -} - -type Cluster struct { - ClusterId uuid.UUID `json:"cluster_id"` - NameId string `json:"name_id"` - CreateTs int64 `json:"create_ts"` - OwnerTeamId *uuid.UUID `json:"owner_team_id,omitempty"` - - _rawJSON json.RawMessage -} - -func (c *Cluster) UnmarshalJSON(data []byte) error { - type unmarshaler Cluster - var value unmarshaler - if err := json.Unmarshal(data, &value); err != nil { - return err - } - *c = Cluster(value) - c._rawJSON = json.RawMessage(data) - return nil -} - -func (c *Cluster) String() string { - if len(c._rawJSON) > 0 { - if value, err := core.StringifyJSON(c._rawJSON); err == nil { - return value - } - } - if value, err := core.StringifyJSON(c); err == nil { - return value - } - return fmt.Sprintf("%#v", c) -} - -type Datacenter struct { - DatacenterId uuid.UUID `json:"datacenter_id"` - ClusterId uuid.UUID `json:"cluster_id"` - NameId string `json:"name_id"` - DisplayName string `json:"display_name"` - Provider Provider `json:"provider,omitempty"` - ProviderDatacenterId string `json:"provider_datacenter_id"` - ProviderApiToken *string `json:"provider_api_token,omitempty"` - Pools []*Pool `json:"pools,omitempty"` - BuildDeliveryMethod BuildDeliveryMethod `json:"build_delivery_method,omitempty"` - - _rawJSON json.RawMessage -} - -func (d *Datacenter) UnmarshalJSON(data []byte) error { - type unmarshaler Datacenter - var value unmarshaler - if err := json.Unmarshal(data, &value); err != nil { - return err - } - *d = Datacenter(value) - d._rawJSON = json.RawMessage(data) - return nil -} - -func (d *Datacenter) String() string { - if len(d._rawJSON) > 0 { - if value, err := core.StringifyJSON(d._rawJSON); err == nil { - return value - } - } - if value, err := core.StringifyJSON(d); err == nil { - return value - } - return fmt.Sprintf("%#v", d) -} - -type Hardware struct { - ProviderHardware string `json:"provider_hardware"` - - _rawJSON json.RawMessage -} - -func (h *Hardware) UnmarshalJSON(data []byte) error { - type unmarshaler Hardware - var value unmarshaler - if err := json.Unmarshal(data, &value); err != nil { - return err - } - *h = Hardware(value) - h._rawJSON = json.RawMessage(data) - return nil -} - -func (h *Hardware) String() string { - if len(h._rawJSON) > 0 { - if value, err := core.StringifyJSON(h._rawJSON); err == nil { - return value - } - } - if value, err := core.StringifyJSON(h); err == nil { - return value - } - return fmt.Sprintf("%#v", h) -} - -type Pool struct { - PoolType PoolType `json:"pool_type,omitempty"` - Hardware []*Hardware `json:"hardware,omitempty"` - DesiredCount int `json:"desired_count"` - MaxCount int `json:"max_count"` - DrainTimeout int64 `json:"drain_timeout"` - - _rawJSON json.RawMessage -} - -func (p *Pool) UnmarshalJSON(data []byte) error { - type unmarshaler Pool - var value unmarshaler - if err := json.Unmarshal(data, &value); err != nil { - return err - } - *p = Pool(value) - p._rawJSON = json.RawMessage(data) - return nil -} - -func (p *Pool) String() string { - if len(p._rawJSON) > 0 { - if value, err := core.StringifyJSON(p._rawJSON); err == nil { - return value - } - } - if value, err := core.StringifyJSON(p); err == nil { - return value - } - return fmt.Sprintf("%#v", p) -} - -type PoolType string - -const ( - PoolTypeJob PoolType = "job" - PoolTypeGg PoolType = "gg" - PoolTypeAts PoolType = "ats" -) - -func NewPoolTypeFromString(s string) (PoolType, error) { - switch s { - case "job": - return PoolTypeJob, nil - case "gg": - return PoolTypeGg, nil - case "ats": - return PoolTypeAts, nil - } - var t PoolType - return "", fmt.Errorf("%s is not a valid %T", s, t) -} - -func (p PoolType) Ptr() *PoolType { - return &p -} - -type Provider string - -const ( - ProviderLinode Provider = "linode" -) - -func NewProviderFromString(s string) (Provider, error) { - switch s { - case "linode": - return ProviderLinode, nil - } - var t Provider - return "", fmt.Errorf("%s is not a valid %T", s, t) -} - -func (p Provider) Ptr() *Provider { - return &p -} diff --git a/sdks/full/openapi/openapi.yml b/sdks/full/openapi/openapi.yml index b58cbac75..08bd68cee 100644 --- a/sdks/full/openapi/openapi.yml +++ b/sdks/full/openapi/openapi.yml @@ -60,30 +60,20 @@ paths: application/json: schema: $ref: '#/components/schemas/AdminLoginRequest' - /admin/clusters/server_ips: + /admin/clusters: get: - operationId: admin_clusters_getServerIps + description: Get clusters + operationId: admin_clusters_list tags: - AdminClusters - parameters: - - name: server_id - in: query - required: false - schema: - type: string - format: uuid - - name: pool - in: query - required: false - schema: - $ref: '#/components/schemas/AdminPoolType' + parameters: [] responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/AdminClustersGetServerIpsResponse' + $ref: '#/components/schemas/AdminClustersListClustersResponse' '400': description: '' content: @@ -121,10 +111,9 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /admin/clusters: - get: - description: Get clusters - operationId: admin_clusters_list + post: + description: Create a new cluster + operationId: admin_clusters_create tags: - AdminClusters parameters: [] @@ -134,7 +123,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AdminClustersListResponse' + $ref: '#/components/schemas/AdminClustersCreateClusterResponse' '400': description: '' content: @@ -172,11 +161,18 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - post: - description: Create a new cluster - operationId: admin_clusters_create + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AdminClustersCreateClusterRequest' + /cloud/bootstrap: + get: + description: Returns the basic information required to use the cloud APIs. + operationId: cloud_bootstrap tags: - - AdminClusters + - Cloud parameters: [] responses: '200': @@ -184,7 +180,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AdminClustersCreateResponse' + $ref: '#/components/schemas/CloudBootstrapResponse' '400': description: '' content: @@ -222,32 +218,28 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AdminClustersCreateRequest' - /admin/clusters/{cluster_id}/datacenters: + /cloud/games: get: - description: Get datacenters of a cluster - operationId: admin_clusters_datacenters_list + description: >- + Returns a list of games in which the current identity is a group member + of its development team. + operationId: cloud_games_getGames tags: - - AdminClustersDatacenters + - CloudGames parameters: - - name: cluster_id - in: path - required: true + - name: watch_index + in: query + description: A query parameter denoting the requests watch index. + required: false schema: type: string - format: uuid responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/AdminClustersDatacentersListResponse' + $ref: '#/components/schemas/CloudGamesGetGamesResponse' '400': description: '' content: @@ -286,23 +278,18 @@ paths: $ref: '#/components/schemas/ErrorBody' security: *ref_0 post: - operationId: admin_clusters_datacenters_create + description: Creates a new game. + operationId: cloud_games_createGame tags: - - AdminClustersDatacenters - parameters: - - name: cluster_id - in: path - required: true - schema: - type: string - format: uuid + - CloudGames + parameters: [] responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/AdminClustersDatacentersCreateResponse' + $ref: '#/components/schemas/CloudGamesCreateGameResponse' '400': description: '' content: @@ -345,28 +332,21 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AdminClustersDatacentersCreateRequest' - /admin/clusters/{cluster_id}/datacenters/{datacenter_id}: - patch: - operationId: admin_clusters_datacenters_update + $ref: '#/components/schemas/CloudGamesCreateGameRequest' + /cloud/games/validate: + post: + description: Validates information used to create a new game. + operationId: cloud_games_validateGame tags: - - AdminClustersDatacenters - parameters: - - name: cluster_id - in: path - required: true - schema: - type: string - format: uuid - - name: datacenter_id - in: path - required: true - schema: - type: string - format: uuid + - CloudGames + parameters: [] responses: - '204': + '200': description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CloudGamesValidateGameResponse' '400': description: '' content: @@ -409,27 +389,33 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AdminClustersDatacentersUpdateRequest' - /admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint: + $ref: '#/components/schemas/CloudGamesValidateGameRequest' + /cloud/games/{game_id}: get: - operationId: admin_clusters_datacenters_taint + description: Returns a game by its game id. + operationId: cloud_games_getGameById tags: - - AdminClustersDatacenters + - CloudGames parameters: - - name: cluster_id + - name: game_id in: path required: true schema: type: string format: uuid - - name: datacenter_id - in: path - required: true + - name: watch_index + in: query + description: A query parameter denoting the requests watch index. + required: false schema: type: string responses: - '204': + '200': description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CloudGamesGetGameByIdResponse' '400': description: '' content: @@ -467,20 +453,26 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /cloud/bootstrap: - get: - description: Returns the basic information required to use the cloud APIs. - operationId: cloud_bootstrap + /cloud/games/{game_id}/banner-upload/prepare: + post: + description: Prepares a game banner image upload. + operationId: cloud_games_gameBannerUploadPrepare tags: - - Cloud - parameters: [] + - CloudGames + parameters: + - name: game_id + in: path + required: true + schema: + type: string + format: uuid responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/CloudBootstrapResponse' + $ref: '#/components/schemas/CloudGamesGameBannerUploadPrepareResponse' '400': description: '' content: @@ -518,28 +510,36 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /cloud/games: - get: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CloudGamesGameBannerUploadPrepareRequest' + /cloud/games/{game_id}/banner-upload/{upload_id}/complete: + post: description: >- - Returns a list of games in which the current identity is a group member - of its development team. - operationId: cloud_games_getGames + Completes an game banner image upload. Must be called after the file + upload process completes. + operationId: cloud_games_gameBannerUploadComplete tags: - CloudGames parameters: - - name: watch_index - in: query - description: A query parameter denoting the requests watch index. - required: false + - name: game_id + in: path + required: true + schema: + type: string + format: uuid + - name: upload_id + in: path + required: true schema: type: string + format: uuid responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/CloudGamesGetGamesResponse' '400': description: '' content: @@ -577,19 +577,26 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 + /cloud/games/{game_id}/logo-upload/prepare: post: - description: Creates a new game. - operationId: cloud_games_createGame + description: Prepares a game logo image upload. + operationId: cloud_games_gameLogoUploadPrepare tags: - CloudGames - parameters: [] + parameters: + - name: game_id + in: path + required: true + schema: + type: string + format: uuid responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/CloudGamesCreateGameResponse' + $ref: '#/components/schemas/CloudGamesGameLogoUploadPrepareResponse' '400': description: '' content: @@ -632,21 +639,31 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CloudGamesCreateGameRequest' - /cloud/games/validate: + $ref: '#/components/schemas/CloudGamesGameLogoUploadPrepareRequest' + /cloud/games/{game_id}/logo-upload/{upload_id}/complete: post: - description: Validates information used to create a new game. - operationId: cloud_games_validateGame + description: >- + Completes a game logo image upload. Must be called after the file upload + process completes. + operationId: cloud_games_gameLogoUploadComplete tags: - CloudGames - parameters: [] + parameters: + - name: game_id + in: path + required: true + schema: + type: string + format: uuid + - name: upload_id + in: path + required: true + schema: + type: string + format: uuid responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/CloudGamesValidateGameResponse' '400': description: '' content: @@ -684,18 +701,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CloudGamesValidateGameRequest' - /cloud/games/{game_id}: - get: - description: Returns a game by its game id. - operationId: cloud_games_getGameById + /cloud/games/{game_id}/namespaces: + post: + description: Creates a new namespace for the given game. + operationId: cloud_games_namespaces_createGameNamespace tags: - - CloudGames + - CloudGamesNamespaces parameters: - name: game_id in: path @@ -703,19 +714,14 @@ paths: schema: type: string format: uuid - - name: watch_index - in: query - description: A query parameter denoting the requests watch index. - required: false - schema: - type: string responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/CloudGamesGetGameByIdResponse' + $ref: >- + #/components/schemas/CloudGamesNamespacesCreateGameNamespaceResponse '400': description: '' content: @@ -753,12 +759,19 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /cloud/games/{game_id}/banner-upload/prepare: - post: - description: Prepares a game banner image upload. - operationId: cloud_games_gameBannerUploadPrepare + requestBody: + required: true + content: + application/json: + schema: + $ref: >- + #/components/schemas/CloudGamesNamespacesCreateGameNamespaceRequest + /cloud/games/{game_id}/namespaces/validate: + post: + description: Validates information used to create a new game namespace. + operationId: cloud_games_namespaces_validateGameNamespace tags: - - CloudGames + - CloudGamesNamespaces parameters: - name: game_id in: path @@ -772,7 +785,8 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CloudGamesGameBannerUploadPrepareResponse' + $ref: >- + #/components/schemas/CloudGamesNamespacesValidateGameNamespaceResponse '400': description: '' content: @@ -815,15 +829,14 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CloudGamesGameBannerUploadPrepareRequest' - /cloud/games/{game_id}/banner-upload/{upload_id}/complete: - post: - description: >- - Completes an game banner image upload. Must be called after the file - upload process completes. - operationId: cloud_games_gameBannerUploadComplete + $ref: >- + #/components/schemas/CloudGamesNamespacesValidateGameNamespaceRequest + /cloud/games/{game_id}/namespaces/{namespace_id}: + get: + description: Gets a game namespace by namespace ID. + operationId: cloud_games_namespaces_getGameNamespaceById tags: - - CloudGames + - CloudGamesNamespaces parameters: - name: game_id in: path @@ -831,15 +844,20 @@ paths: schema: type: string format: uuid - - name: upload_id + - name: namespace_id in: path required: true schema: type: string format: uuid responses: - '204': + '200': description: '' + content: + application/json: + schema: + $ref: >- + #/components/schemas/CloudGamesNamespacesGetGameNamespaceByIdResponse '400': description: '' content: @@ -877,12 +895,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /cloud/games/{game_id}/logo-upload/prepare: + /cloud/games/{game_id}/namespaces/{namespace_id}/auth-user: post: - description: Prepares a game logo image upload. - operationId: cloud_games_gameLogoUploadPrepare + description: Adds an authenticated user to the given game namespace. + operationId: cloud_games_namespaces_updateNamespaceCdnAuthUser tags: - - CloudGames + - CloudGamesNamespaces parameters: - name: game_id in: path @@ -890,13 +908,15 @@ paths: schema: type: string format: uuid + - name: namespace_id + in: path + required: true + schema: + type: string + format: uuid responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/CloudGamesGameLogoUploadPrepareResponse' '400': description: '' content: @@ -939,15 +959,14 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CloudGamesGameLogoUploadPrepareRequest' - /cloud/games/{game_id}/logo-upload/{upload_id}/complete: - post: - description: >- - Completes a game logo image upload. Must be called after the file upload - process completes. - operationId: cloud_games_gameLogoUploadComplete + $ref: >- + #/components/schemas/CloudGamesNamespacesUpdateNamespaceCdnAuthUserRequest + /cloud/games/{game_id}/namespaces/{namespace_id}/auth-user/{user}: + delete: + description: Removes an authenticated user from the given game namespace. + operationId: cloud_games_namespaces_removeNamespaceCdnAuthUser tags: - - CloudGames + - CloudGamesNamespaces parameters: - name: game_id in: path @@ -955,12 +974,18 @@ paths: schema: type: string format: uuid - - name: upload_id + - name: namespace_id in: path required: true schema: type: string format: uuid + - name: user + in: path + description: A user name. + required: true + schema: + type: string responses: '204': description: '' @@ -1001,10 +1026,10 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /cloud/games/{game_id}/namespaces: - post: - description: Creates a new namespace for the given game. - operationId: cloud_games_namespaces_createGameNamespace + /cloud/games/{game_id}/namespaces/{namespace_id}/cdn-auth: + put: + description: Updates the CDN authentication type of the given game namespace. + operationId: cloud_games_namespaces_setNamespaceCdnAuthType tags: - CloudGamesNamespaces parameters: @@ -1014,14 +1039,15 @@ paths: schema: type: string format: uuid + - name: namespace_id + in: path + required: true + schema: + type: string + format: uuid responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesCreateGameNamespaceResponse '400': description: '' content: @@ -1065,11 +1091,13 @@ paths: application/json: schema: $ref: >- - #/components/schemas/CloudGamesNamespacesCreateGameNamespaceRequest - /cloud/games/{game_id}/namespaces/validate: - post: - description: Validates information used to create a new game namespace. - operationId: cloud_games_namespaces_validateGameNamespace + #/components/schemas/CloudGamesNamespacesSetNamespaceCdnAuthTypeRequest + /cloud/games/{game_id}/namespaces/{namespace_id}/domain-public-auth: + put: + description: >- + Toggles whether or not to allow authentication based on domain for the + given game namespace. + operationId: cloud_games_namespaces_toggleNamespaceDomainPublicAuth tags: - CloudGamesNamespaces parameters: @@ -1079,14 +1107,15 @@ paths: schema: type: string format: uuid + - name: namespace_id + in: path + required: true + schema: + type: string + format: uuid responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesValidateGameNamespaceResponse '400': description: '' content: @@ -1130,11 +1159,11 @@ paths: application/json: schema: $ref: >- - #/components/schemas/CloudGamesNamespacesValidateGameNamespaceRequest - /cloud/games/{game_id}/namespaces/{namespace_id}: - get: - description: Gets a game namespace by namespace ID. - operationId: cloud_games_namespaces_getGameNamespaceById + #/components/schemas/CloudGamesNamespacesToggleNamespaceDomainPublicAuthRequest + /cloud/games/{game_id}/namespaces/{namespace_id}/domains: + post: + description: Adds a domain to the given game namespace. + operationId: cloud_games_namespaces_addNamespaceDomain tags: - CloudGamesNamespaces parameters: @@ -1151,13 +1180,8 @@ paths: type: string format: uuid responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesGetGameNamespaceByIdResponse '400': description: '' content: @@ -1195,10 +1219,17 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /cloud/games/{game_id}/namespaces/{namespace_id}/auth-user: - post: - description: Adds an authenticated user to the given game namespace. - operationId: cloud_games_namespaces_updateNamespaceCdnAuthUser + requestBody: + required: true + content: + application/json: + schema: + $ref: >- + #/components/schemas/CloudGamesNamespacesAddNamespaceDomainRequest + /cloud/games/{game_id}/namespaces/{namespace_id}/domains/{domain}: + delete: + description: Removes a domain from the given game namespace. + operationId: cloud_games_namespaces_removeNamespaceDomain tags: - CloudGamesNamespaces parameters: @@ -1214,6 +1245,12 @@ paths: schema: type: string format: uuid + - name: domain + in: path + description: A valid domain name (no protocol). + required: true + schema: + type: string responses: '204': description: '' @@ -1254,17 +1291,10 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - requestBody: - required: true - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesUpdateNamespaceCdnAuthUserRequest - /cloud/games/{game_id}/namespaces/{namespace_id}/auth-user/{user}: - delete: - description: Removes an authenticated user from the given game namespace. - operationId: cloud_games_namespaces_removeNamespaceCdnAuthUser + /cloud/games/{game_id}/namespaces/{namespace_id}/mm-config: + post: + description: Updates matchmaker config for the given game namespace. + operationId: cloud_games_namespaces_updateGameNamespaceMatchmakerConfig tags: - CloudGamesNamespaces parameters: @@ -1280,12 +1310,6 @@ paths: schema: type: string format: uuid - - name: user - in: path - description: A user name. - required: true - schema: - type: string responses: '204': description: '' @@ -1326,28 +1350,52 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /cloud/games/{game_id}/namespaces/{namespace_id}/cdn-auth: - put: - description: Updates the CDN authentication type of the given game namespace. - operationId: cloud_games_namespaces_setNamespaceCdnAuthType + requestBody: + required: true + content: + application/json: + schema: + $ref: >- + #/components/schemas/CloudGamesNamespacesUpdateGameNamespaceMatchmakerConfigRequest + /cloud/games/{game_id}/namespaces/{namespace_id}/version-history: + get: + description: Gets the version history for a given namespace. + operationId: cloud_games_namespaces_GetGameNamespaceVersionHistoryList tags: - CloudGamesNamespaces parameters: - name: game_id in: path + description: A universally unique identifier. required: true schema: type: string - format: uuid - name: namespace_id in: path + description: A universally unique identifier. required: true schema: type: string - format: uuid + - name: anchor + in: query + description: How many items to offset the search by. + required: false + schema: + type: string + - name: limit + in: query + description: Amount of items to return. Must be between 1 and 32 inclusive. + required: false + schema: + type: integer responses: - '204': + '200': description: '' + content: + application/json: + schema: + $ref: >- + #/components/schemas/CloudGamesNamespacesGetGameNamespaceVersionHistoryResponse '400': description: '' content: @@ -1385,19 +1433,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - requestBody: - required: true - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesSetNamespaceCdnAuthTypeRequest - /cloud/games/{game_id}/namespaces/{namespace_id}/domain-public-auth: - put: + /cloud/games/{game_id}/namespaces/{namespace_id}/mm-config/validate: + post: description: >- - Toggles whether or not to allow authentication based on domain for the - given game namespace. - operationId: cloud_games_namespaces_toggleNamespaceDomainPublicAuth + Validates information used to update a game namespace's matchmaker + config. + operationId: cloud_games_namespaces_validateGameNamespaceMatchmakerConfig tags: - CloudGamesNamespaces parameters: @@ -1414,8 +1455,13 @@ paths: type: string format: uuid responses: - '204': + '200': description: '' + content: + application/json: + schema: + $ref: >- + #/components/schemas/CloudGamesNamespacesValidateGameNamespaceMatchmakerConfigResponse '400': description: '' content: @@ -1459,354 +1505,8 @@ paths: application/json: schema: $ref: >- - #/components/schemas/CloudGamesNamespacesToggleNamespaceDomainPublicAuthRequest - /cloud/games/{game_id}/namespaces/{namespace_id}/domains: - post: - description: Adds a domain to the given game namespace. - operationId: cloud_games_namespaces_addNamespaceDomain - tags: - - CloudGamesNamespaces - parameters: - - name: game_id - in: path - required: true - schema: - type: string - format: uuid - - name: namespace_id - in: path - required: true - schema: - type: string - format: uuid - responses: - '204': - description: '' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '403': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '408': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '429': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - security: *ref_0 - requestBody: - required: true - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesAddNamespaceDomainRequest - /cloud/games/{game_id}/namespaces/{namespace_id}/domains/{domain}: - delete: - description: Removes a domain from the given game namespace. - operationId: cloud_games_namespaces_removeNamespaceDomain - tags: - - CloudGamesNamespaces - parameters: - - name: game_id - in: path - required: true - schema: - type: string - format: uuid - - name: namespace_id - in: path - required: true - schema: - type: string - format: uuid - - name: domain - in: path - description: A valid domain name (no protocol). - required: true - schema: - type: string - responses: - '204': - description: '' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '403': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '408': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '429': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - security: *ref_0 - /cloud/games/{game_id}/namespaces/{namespace_id}/mm-config: - post: - description: Updates matchmaker config for the given game namespace. - operationId: cloud_games_namespaces_updateGameNamespaceMatchmakerConfig - tags: - - CloudGamesNamespaces - parameters: - - name: game_id - in: path - required: true - schema: - type: string - format: uuid - - name: namespace_id - in: path - required: true - schema: - type: string - format: uuid - responses: - '204': - description: '' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '403': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '408': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '429': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - security: *ref_0 - requestBody: - required: true - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesUpdateGameNamespaceMatchmakerConfigRequest - /cloud/games/{game_id}/namespaces/{namespace_id}/version-history: - get: - description: Gets the version history for a given namespace. - operationId: cloud_games_namespaces_GetGameNamespaceVersionHistoryList - tags: - - CloudGamesNamespaces - parameters: - - name: game_id - in: path - description: A universally unique identifier. - required: true - schema: - type: string - - name: namespace_id - in: path - description: A universally unique identifier. - required: true - schema: - type: string - - name: anchor - in: query - description: How many items to offset the search by. - required: false - schema: - type: string - - name: limit - in: query - description: Amount of items to return. Must be between 1 and 32 inclusive. - required: false - schema: - type: integer - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesGetGameNamespaceVersionHistoryResponse - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '403': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '408': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '429': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - security: *ref_0 - /cloud/games/{game_id}/namespaces/{namespace_id}/mm-config/validate: - post: - description: >- - Validates information used to update a game namespace's matchmaker - config. - operationId: cloud_games_namespaces_validateGameNamespaceMatchmakerConfig - tags: - - CloudGamesNamespaces - parameters: - - name: game_id - in: path - required: true - schema: - type: string - format: uuid - - name: namespace_id - in: path - required: true - schema: - type: string - format: uuid - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesValidateGameNamespaceMatchmakerConfigResponse - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '403': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '408': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '429': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - security: *ref_0 - requestBody: - required: true - content: - application/json: - schema: - $ref: >- - #/components/schemas/CloudGamesNamespacesValidateGameNamespaceMatchmakerConfigRequest - /cloud/games/{game_id}/namespaces/{namespace_id}/tokens/development: + #/components/schemas/CloudGamesNamespacesValidateGameNamespaceMatchmakerConfigRequest + /cloud/games/{game_id}/namespaces/{namespace_id}/tokens/development: post: description: Creates a development token for the given namespace. operationId: cloud_games_namespaces_createGameNamespaceTokenDevelopment @@ -4201,17 +3901,272 @@ paths: type: string - name: limit in: query - description: Range is between 1 and 32 (inclusive). + description: Range is between 1 and 32 (inclusive). + required: false + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityListFollowersResponse' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '408': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '429': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '500': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + security: *ref_0 + /identity/identities/{identity_id}/following: + get: + operationId: identity_listFollowing + tags: + - Identity + parameters: + - name: identity_id + in: path + required: true + schema: + type: string + format: uuid + - name: anchor + in: query + required: false + schema: + type: string + - name: limit + in: query + description: Range is between 1 and 32 (inclusive). + required: false + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityListFollowingResponse' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '408': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '429': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '500': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + security: *ref_0 + /identity/identities/self/friends: + get: + operationId: identity_listFriends + tags: + - Identity + parameters: + - name: anchor + in: query + required: false + schema: + type: string + - name: limit + in: query + description: Range is between 1 and 32 (inclusive). + required: false + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityListFriendsResponse' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '408': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '429': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '500': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + security: *ref_0 + /identity/identities/{identity_id}/mutual-friends: + get: + operationId: identity_listMutualFriends + tags: + - Identity + parameters: + - name: identity_id + in: path + required: true + schema: + type: string + format: uuid + - name: anchor + in: query + required: false + schema: + type: string + - name: limit + in: query + description: Range is between 1 and 32 (inclusive). + required: false + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityListMutualFriendsResponse' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '408': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '429': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '500': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + security: *ref_0 + /identity/identities/self/recent-followers: + get: + operationId: identity_listRecentFollowers + tags: + - Identity + parameters: + - name: count + in: query + required: false + schema: + type: integer + - name: watch_index + in: query required: false schema: - type: string + $ref: '#/components/schemas/WatchQuery' responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/IdentityListFollowersResponse' + $ref: '#/components/schemas/IdentityListRecentFollowersResponse' '400': description: '' content: @@ -4249,9 +4204,9 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /identity/identities/{identity_id}/following: - get: - operationId: identity_listFollowing + /identity/identities/self/recent-followers/{identity_id}/ignore: + post: + operationId: identity_ignoreRecentFollower tags: - Identity parameters: @@ -4261,24 +4216,9 @@ paths: schema: type: string format: uuid - - name: anchor - in: query - required: false - schema: - type: string - - name: limit - in: query - description: Range is between 1 and 32 (inclusive). - required: false - schema: - type: string responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/IdentityListFollowingResponse' '400': description: '' content: @@ -4316,30 +4256,15 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /identity/identities/self/friends: - get: - operationId: identity_listFriends + /identity/identities/self/delete-request: + post: + operationId: identity_markDeletion tags: - Identity - parameters: - - name: anchor - in: query - required: false - schema: - type: string - - name: limit - in: query - description: Range is between 1 and 32 (inclusive). - required: false - schema: - type: string + parameters: [] responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/IdentityListFriendsResponse' '400': description: '' content: @@ -4377,36 +4302,14 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /identity/identities/{identity_id}/mutual-friends: - get: - operationId: identity_listMutualFriends + delete: + operationId: identity_unmarkDeletion tags: - Identity - parameters: - - name: identity_id - in: path - required: true - schema: - type: string - format: uuid - - name: anchor - in: query - required: false - schema: - type: string - - name: limit - in: query - description: Range is between 1 and 32 (inclusive). - required: false - schema: - type: string + parameters: [] responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/IdentityListMutualFriendsResponse' '400': description: '' content: @@ -4444,29 +4347,37 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /identity/identities/self/recent-followers: + /kv/entries: get: - operationId: identity_listRecentFollowers + description: Returns a specific key-value entry by key. + operationId: kv_get tags: - - Identity + - Kv parameters: - - name: count + - name: key in: query - required: false + required: true schema: - type: integer + $ref: '#/components/schemas/KvKey' - name: watch_index in: query + description: A query parameter denoting the requests watch index. required: false schema: - $ref: '#/components/schemas/WatchQuery' + type: string + - name: namespace_id + in: query + required: false + schema: + type: string + format: uuid responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/IdentityListRecentFollowersResponse' + $ref: '#/components/schemas/KvGetResponse' '400': description: '' content: @@ -4504,18 +4415,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /identity/identities/self/recent-followers/{identity_id}/ignore: - post: - operationId: identity_ignoreRecentFollower + put: + description: Puts (sets or overwrites) a key-value entry by key. + operationId: kv_put tags: - - Identity - parameters: - - name: identity_id - in: path - required: true - schema: - type: string - format: uuid + - Kv + parameters: [] responses: '204': description: '' @@ -4556,12 +4461,29 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /identity/identities/self/delete-request: - post: - operationId: identity_markDeletion + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/KvPutRequest' + delete: + description: Deletes a key-value entry by key. + operationId: kv_delete tags: - - Identity - parameters: [] + - Kv + parameters: + - name: key + in: query + required: true + schema: + $ref: '#/components/schemas/KvKey' + - name: namespace_id + in: query + required: false + schema: + type: string + format: uuid responses: '204': description: '' @@ -4602,14 +4524,31 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - delete: - operationId: identity_unmarkDeletion + /kv/entries/list: + get: + description: Lists all keys in a directory. + operationId: kv_list tags: - - Identity - parameters: [] + - Kv + parameters: + - name: directory + in: query + required: true + schema: + $ref: '#/components/schemas/KvDirectory' + - name: namespace_id + in: query + required: true + schema: + type: string + format: uuid responses: - '204': + '200': description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/KvListResponse' '400': description: '' content: @@ -4647,14 +4586,14 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /kv/entries: + /kv/entries/batch: get: - description: Returns a specific key-value entry by key. - operationId: kv_get + description: Gets multiple key-value entries by key(s). + operationId: kv_getBatch tags: - Kv parameters: - - name: key + - name: keys in: query required: true schema: @@ -4677,7 +4616,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/KvGetResponse' + $ref: '#/components/schemas/KvGetBatchResponse' '400': description: '' content: @@ -4716,8 +4655,8 @@ paths: $ref: '#/components/schemas/ErrorBody' security: *ref_0 put: - description: Puts (sets or overwrites) a key-value entry by key. - operationId: kv_put + description: Puts (sets or overwrites) multiple key-value entries by key(s). + operationId: kv_putBatch tags: - Kv parameters: [] @@ -4766,14 +4705,14 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/KvPutRequest' + $ref: '#/components/schemas/KvPutBatchRequest' delete: - description: Deletes a key-value entry by key. - operationId: kv_delete + description: Deletes multiple key-value entries by key(s). + operationId: kv_deleteBatch tags: - Kv parameters: - - name: key + - name: keys in: query required: true schema: @@ -4824,31 +4763,80 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /kv/entries/list: + /datacenters/{datacenter_id}/tls: + get: + operationId: provision_datacenters_getTls + tags: + - ProvisionDatacenters + parameters: + - name: datacenter_id + in: path + required: true + schema: + type: string + format: uuid + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ProvisionDatacentersGetTlsResponse' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '408': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '429': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + '500': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorBody' + security: *ref_0 + /servers/{ip}: get: - description: Lists all keys in a directory. - operationId: kv_list + operationId: provision_servers_getInfo tags: - - Kv + - ProvisionServers parameters: - - name: directory - in: query - required: true - schema: - $ref: '#/components/schemas/KvDirectory' - - name: namespace_id - in: query + - name: ip + in: path required: true schema: type: string - format: uuid responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/KvListResponse' + $ref: '#/components/schemas/ProvisionServersGetInfoResponse' '400': description: '' content: @@ -4886,27 +4874,16 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /kv/entries/batch: + /admin/clusters/{cluster_id}/datacenters: get: - description: Gets multiple key-value entries by key(s). - operationId: kv_getBatch + description: Get datacenters of a cluster + operationId: admin_clusters_datacenters_list tags: - - Kv + - AdminClustersDatacenters parameters: - - name: keys - in: query + - name: cluster_id + in: path required: true - schema: - $ref: '#/components/schemas/KvKey' - - name: watch_index - in: query - description: A query parameter denoting the requests watch index. - required: false - schema: - type: string - - name: namespace_id - in: query - required: false schema: type: string format: uuid @@ -4916,7 +4893,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/KvGetBatchResponse' + $ref: '#/components/schemas/AdminClustersListDatacentersResponse' '400': description: '' content: @@ -4954,15 +4931,24 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - put: - description: Puts (sets or overwrites) multiple key-value entries by key(s). - operationId: kv_putBatch + post: + operationId: admin_clusters_datacenters_create tags: - - Kv - parameters: [] + - AdminClustersDatacenters + parameters: + - name: cluster_id + in: path + required: true + schema: + type: string + format: uuid responses: - '204': + '200': description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AdminClustersCreateDatacenterResponse' '400': description: '' content: @@ -5005,21 +4991,22 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/KvPutBatchRequest' - delete: - description: Deletes multiple key-value entries by key(s). - operationId: kv_deleteBatch + $ref: '#/components/schemas/AdminClustersCreateDatacenterRequest' + /admin/clusters/{cluster_id}/datacenters/{datacenter_id}: + patch: + operationId: admin_clusters_datacenters_update tags: - - Kv + - AdminClustersDatacenters parameters: - - name: keys - in: query + - name: cluster_id + in: path required: true schema: - $ref: '#/components/schemas/KvKey' - - name: namespace_id - in: query - required: false + type: string + format: uuid + - name: datacenter_id + in: path + required: true schema: type: string format: uuid @@ -5063,25 +5050,51 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /datacenters/{datacenter_id}/tls: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AdminClustersUpdateDatacenterRequest' + /admin/clusters/{cluster_id}/servers: get: - operationId: provision_datacenters_getTls + operationId: admin_clusters_servers_list tags: - - ProvisionDatacenters + - AdminClustersServers parameters: - - name: datacenter_id + - name: cluster_id in: path required: true schema: type: string format: uuid + - name: server_id + in: query + required: false + schema: + type: string + - name: datacenter + in: query + required: false + schema: + type: string + - name: pool + in: query + required: false + schema: + $ref: '#/components/schemas/AdminClustersPoolType' + - name: public_ip + in: query + required: false + schema: + type: string responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/ProvisionDatacentersGetTlsResponse' + $ref: '#/components/schemas/AdminClustersListServersResponse' '400': description: '' content: @@ -5119,24 +5132,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: *ref_0 - /servers/{ip}: - get: - operationId: provision_servers_getInfo + /admin/clusters/{cluster_id}/servers/taint: + post: + operationId: admin_clusters_servers_taint tags: - - ProvisionServers + - AdminClustersServers parameters: - - name: ip + - name: cluster_id in: path required: true schema: type: string + format: uuid + - name: server_id + in: query + required: false + schema: + type: string + - name: datacenter + in: query + required: false + schema: + type: string + - name: pool + in: query + required: false + schema: + $ref: '#/components/schemas/AdminClustersPoolType' + - name: public_ip + in: query + required: false + schema: + type: string responses: - '200': + '204': description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ProvisionServersGetInfoResponse' '400': description: '' content: @@ -8762,25 +8792,16 @@ components: type: string required: - url - AdminClustersGetServerIpsResponse: - type: object - properties: - ips: - type: array - items: - type: string - required: - - ips - AdminClustersListResponse: + AdminClustersListClustersResponse: type: object properties: clusters: type: array items: - $ref: '#/components/schemas/AdminCluster' + $ref: '#/components/schemas/AdminClustersCluster' required: - clusters - AdminClustersCreateRequest: + AdminClustersCreateClusterRequest: type: object properties: name_id: @@ -8790,7 +8811,7 @@ components: format: uuid required: - name_id - AdminClustersCreateResponse: + AdminClustersCreateClusterResponse: type: object properties: cluster_id: @@ -8798,61 +8819,6 @@ components: format: uuid required: - cluster_id - AdminClustersDatacentersListResponse: - type: object - properties: - datacenters: - type: array - items: - $ref: '#/components/schemas/AdminDatacenter' - required: - - datacenters - AdminClustersDatacentersCreateRequest: - type: object - properties: - display_name: - type: string - name_id: - type: string - provider: - $ref: '#/components/schemas/AdminProvider' - provider_datacenter_id: - type: string - build_delivery_method: - $ref: '#/components/schemas/AdminBuildDeliveryMethod' - required: - - display_name - - name_id - - provider - - provider_datacenter_id - - build_delivery_method - AdminClustersDatacentersCreateResponse: - type: object - properties: - datacenter_id: - type: string - format: uuid - required: - - datacenter_id - AdminClustersDatacentersUpdateRequest: - type: object - properties: - pool_type: - $ref: '#/components/schemas/AdminPoolType' - hardware: - type: array - items: - $ref: '#/components/schemas/AdminHardware' - desired_count: - type: integer - max_count: - type: integer - drain_timeout: - type: integer - format: int64 - required: - - pool_type - - hardware CloudBootstrapResponse: type: object properties: @@ -9935,30 +9901,30 @@ components: - datacenter_id - cluster_id - vlan_ip - AdminPoolType: + AdminClustersPoolType: type: string enum: - job - gg - ats - AdminProvider: + AdminClustersProvider: type: string enum: - linode - AdminBuildDeliveryMethod: + AdminClustersBuildDeliveryMethod: type: string enum: - traffic_server - s3_direct - AdminPool: + AdminClustersPool: type: object properties: pool_type: - $ref: '#/components/schemas/AdminPoolType' + $ref: '#/components/schemas/AdminClustersPoolType' hardware: type: array items: - $ref: '#/components/schemas/AdminHardware' + $ref: '#/components/schemas/AdminClustersHardware' desired_count: type: integer max_count: @@ -9972,14 +9938,14 @@ components: - desired_count - max_count - drain_timeout - AdminHardware: + AdminClustersHardware: type: object properties: provider_hardware: type: string required: - provider_hardware - AdminCluster: + AdminClustersCluster: type: object properties: cluster_id: @@ -9997,7 +9963,7 @@ components: - cluster_id - name_id - create_ts - AdminDatacenter: + AdminClustersDatacenter: type: object properties: datacenter_id: @@ -10011,7 +9977,7 @@ components: display_name: type: string provider: - $ref: '#/components/schemas/AdminProvider' + $ref: '#/components/schemas/AdminClustersProvider' provider_datacenter_id: type: string provider_api_token: @@ -10019,9 +9985,9 @@ components: pools: type: array items: - $ref: '#/components/schemas/AdminPool' + $ref: '#/components/schemas/AdminClustersPool' build_delivery_method: - $ref: '#/components/schemas/AdminBuildDeliveryMethod' + $ref: '#/components/schemas/AdminClustersBuildDeliveryMethod' required: - datacenter_id - cluster_id @@ -10031,6 +9997,81 @@ components: - provider_datacenter_id - pools - build_delivery_method + AdminClustersServer: + type: object + properties: + server_id: + type: string + format: uuid + public_ip: + type: string + required: + - server_id + - public_ip + AdminClustersListDatacentersResponse: + type: object + properties: + datacenters: + type: array + items: + $ref: '#/components/schemas/AdminClustersDatacenter' + required: + - datacenters + AdminClustersCreateDatacenterRequest: + type: object + properties: + display_name: + type: string + name_id: + type: string + provider: + $ref: '#/components/schemas/AdminClustersProvider' + provider_datacenter_id: + type: string + build_delivery_method: + $ref: '#/components/schemas/AdminClustersBuildDeliveryMethod' + required: + - display_name + - name_id + - provider + - provider_datacenter_id + - build_delivery_method + AdminClustersCreateDatacenterResponse: + type: object + properties: + datacenter_id: + type: string + format: uuid + required: + - datacenter_id + AdminClustersUpdateDatacenterRequest: + type: object + properties: + pool_type: + $ref: '#/components/schemas/AdminClustersPoolType' + hardware: + type: array + items: + $ref: '#/components/schemas/AdminClustersHardware' + desired_count: + type: integer + max_count: + type: integer + drain_timeout: + type: integer + format: int64 + required: + - pool_type + - hardware + AdminClustersListServersResponse: + type: object + properties: + servers: + type: array + items: + $ref: '#/components/schemas/AdminClustersServer' + required: + - servers AuthCompleteStatus: type: string enum: diff --git a/sdks/full/openapi_compat/openapi.yml b/sdks/full/openapi_compat/openapi.yml index 7020fc6d8..852c12364 100644 --- a/sdks/full/openapi_compat/openapi.yml +++ b/sdks/full/openapi_compat/openapi.yml @@ -2,12 +2,12 @@ components: schemas: AccountNumber: type: integer - AdminBuildDeliveryMethod: + AdminClustersBuildDeliveryMethod: enum: - traffic_server - s3_direct type: string - AdminCluster: + AdminClustersCluster: properties: cluster_id: format: uuid @@ -25,7 +25,7 @@ components: - name_id - create_ts type: object - AdminClustersCreateRequest: + AdminClustersCreateClusterRequest: properties: name_id: type: string @@ -35,7 +35,7 @@ components: required: - name_id type: object - AdminClustersCreateResponse: + AdminClustersCreateClusterResponse: properties: cluster_id: format: uuid @@ -43,16 +43,16 @@ components: required: - cluster_id type: object - AdminClustersDatacentersCreateRequest: + AdminClustersCreateDatacenterRequest: properties: build_delivery_method: - $ref: '#/components/schemas/AdminBuildDeliveryMethod' + $ref: '#/components/schemas/AdminClustersBuildDeliveryMethod' display_name: type: string name_id: type: string provider: - $ref: '#/components/schemas/AdminProvider' + $ref: '#/components/schemas/AdminClustersProvider' provider_datacenter_id: type: string required: @@ -62,7 +62,7 @@ components: - provider_datacenter_id - build_delivery_method type: object - AdminClustersDatacentersCreateResponse: + AdminClustersCreateDatacenterResponse: properties: datacenter_id: format: uuid @@ -70,56 +70,10 @@ components: required: - datacenter_id type: object - AdminClustersDatacentersListResponse: - properties: - datacenters: - items: - $ref: '#/components/schemas/AdminDatacenter' - type: array - required: - - datacenters - type: object - AdminClustersDatacentersUpdateRequest: - properties: - desired_count: - type: integer - drain_timeout: - format: int64 - type: integer - hardware: - items: - $ref: '#/components/schemas/AdminHardware' - type: array - max_count: - type: integer - pool_type: - $ref: '#/components/schemas/AdminPoolType' - required: - - pool_type - - hardware - type: object - AdminClustersGetServerIpsResponse: - properties: - ips: - items: - type: string - type: array - required: - - ips - type: object - AdminClustersListResponse: - properties: - clusters: - items: - $ref: '#/components/schemas/AdminCluster' - type: array - required: - - clusters - type: object - AdminDatacenter: + AdminClustersDatacenter: properties: build_delivery_method: - $ref: '#/components/schemas/AdminBuildDeliveryMethod' + $ref: '#/components/schemas/AdminClustersBuildDeliveryMethod' cluster_id: format: uuid type: string @@ -132,10 +86,10 @@ components: type: string pools: items: - $ref: '#/components/schemas/AdminPool' + $ref: '#/components/schemas/AdminClustersPool' type: array provider: - $ref: '#/components/schemas/AdminProvider' + $ref: '#/components/schemas/AdminClustersProvider' provider_api_token: type: string provider_datacenter_id: @@ -150,28 +104,41 @@ components: - pools - build_delivery_method type: object - AdminHardware: + AdminClustersHardware: properties: provider_hardware: type: string required: - provider_hardware type: object - AdminLoginRequest: + AdminClustersListClustersResponse: properties: - name: - type: string + clusters: + items: + $ref: '#/components/schemas/AdminClustersCluster' + type: array required: - - name + - clusters type: object - AdminLoginResponse: + AdminClustersListDatacentersResponse: properties: - url: - type: string + datacenters: + items: + $ref: '#/components/schemas/AdminClustersDatacenter' + type: array required: - - url + - datacenters + type: object + AdminClustersListServersResponse: + properties: + servers: + items: + $ref: '#/components/schemas/AdminClustersServer' + type: array + required: + - servers type: object - AdminPool: + AdminClustersPool: properties: desired_count: type: integer @@ -180,12 +147,12 @@ components: type: integer hardware: items: - $ref: '#/components/schemas/AdminHardware' + $ref: '#/components/schemas/AdminClustersHardware' type: array max_count: type: integer pool_type: - $ref: '#/components/schemas/AdminPoolType' + $ref: '#/components/schemas/AdminClustersPoolType' required: - pool_type - hardware @@ -193,16 +160,60 @@ components: - max_count - drain_timeout type: object - AdminPoolType: + AdminClustersPoolType: enum: - job - gg - ats type: string - AdminProvider: + AdminClustersProvider: enum: - linode type: string + AdminClustersServer: + properties: + public_ip: + type: string + server_id: + format: uuid + type: string + required: + - server_id + - public_ip + type: object + AdminClustersUpdateDatacenterRequest: + properties: + desired_count: + type: integer + drain_timeout: + format: int64 + type: integer + hardware: + items: + $ref: '#/components/schemas/AdminClustersHardware' + type: array + max_count: + type: integer + pool_type: + $ref: '#/components/schemas/AdminClustersPoolType' + required: + - pool_type + - hardware + type: object + AdminLoginRequest: + properties: + name: + type: string + required: + - name + type: object + AdminLoginResponse: + properties: + url: + type: string + required: + - url + type: object AuthCompleteStatus: description: Represents the state of an external account linking process. enum: @@ -4446,7 +4457,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AdminClustersListResponse' + $ref: '#/components/schemas/AdminClustersListClustersResponse' description: '' '400': content: @@ -4496,14 +4507,14 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AdminClustersCreateRequest' + $ref: '#/components/schemas/AdminClustersCreateClusterRequest' required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/AdminClustersCreateResponse' + $ref: '#/components/schemas/AdminClustersCreateClusterResponse' description: '' '400': content: @@ -4544,27 +4555,23 @@ paths: security: *id001 tags: - AdminClusters - /admin/clusters/server_ips: + /admin/clusters/{cluster_id}/datacenters: get: - operationId: admin_clusters_getServerIps + description: Get datacenters of a cluster + operationId: admin_clusters_datacenters_list parameters: - - in: query - name: server_id - required: false + - in: path + name: cluster_id + required: true schema: format: uuid type: string - - in: query - name: pool - required: false - schema: - $ref: '#/components/schemas/AdminPoolType' responses: '200': content: application/json: schema: - $ref: '#/components/schemas/AdminClustersGetServerIpsResponse' + $ref: '#/components/schemas/AdminClustersListDatacentersResponse' description: '' '400': content: @@ -4604,11 +4611,9 @@ paths: description: '' security: *id001 tags: - - AdminClusters - /admin/clusters/{cluster_id}/datacenters: - get: - description: Get datacenters of a cluster - operationId: admin_clusters_datacenters_list + - AdminClustersDatacenters + post: + operationId: admin_clusters_datacenters_create parameters: - in: path name: cluster_id @@ -4616,12 +4621,18 @@ paths: schema: format: uuid type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AdminClustersCreateDatacenterRequest' + required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/AdminClustersDatacentersListResponse' + $ref: '#/components/schemas/AdminClustersCreateDatacenterResponse' description: '' '400': content: @@ -4662,8 +4673,9 @@ paths: security: *id001 tags: - AdminClustersDatacenters - post: - operationId: admin_clusters_datacenters_create + /admin/clusters/{cluster_id}/datacenters/{datacenter_id}: + patch: + operationId: admin_clusters_datacenters_update parameters: - in: path name: cluster_id @@ -4671,18 +4683,20 @@ paths: schema: format: uuid type: string + - in: path + name: datacenter_id + required: true + schema: + format: uuid + type: string requestBody: content: application/json: schema: - $ref: '#/components/schemas/AdminClustersDatacentersCreateRequest' + $ref: '#/components/schemas/AdminClustersUpdateDatacenterRequest' required: true responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/AdminClustersDatacentersCreateResponse' + '204': description: '' '400': content: @@ -4723,9 +4737,9 @@ paths: security: *id001 tags: - AdminClustersDatacenters - /admin/clusters/{cluster_id}/datacenters/{datacenter_id}: - patch: - operationId: admin_clusters_datacenters_update + /admin/clusters/{cluster_id}/servers: + get: + operationId: admin_clusters_servers_list parameters: - in: path name: cluster_id @@ -4733,20 +4747,32 @@ paths: schema: format: uuid type: string - - in: path - name: datacenter_id - required: true + - in: query + name: server_id + required: false + schema: + type: string + - in: query + name: datacenter + required: false + schema: + type: string + - in: query + name: pool + required: false + schema: + $ref: '#/components/schemas/AdminClustersPoolType' + - in: query + name: public_ip + required: false schema: - format: uuid type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AdminClustersDatacentersUpdateRequest' - required: true responses: - '204': + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AdminClustersListServersResponse' description: '' '400': content: @@ -4786,10 +4812,10 @@ paths: description: '' security: *id001 tags: - - AdminClustersDatacenters - /admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint: - get: - operationId: admin_clusters_datacenters_taint + - AdminClustersServers + /admin/clusters/{cluster_id}/servers/taint: + post: + operationId: admin_clusters_servers_taint parameters: - in: path name: cluster_id @@ -4797,9 +4823,24 @@ paths: schema: format: uuid type: string - - in: path - name: datacenter_id - required: true + - in: query + name: server_id + required: false + schema: + type: string + - in: query + name: datacenter + required: false + schema: + type: string + - in: query + name: pool + required: false + schema: + $ref: '#/components/schemas/AdminClustersPoolType' + - in: query + name: public_ip + required: false schema: type: string responses: @@ -4843,7 +4884,7 @@ paths: description: '' security: *id001 tags: - - AdminClustersDatacenters + - AdminClustersServers /admin/login: post: operationId: admin_login diff --git a/sdks/full/rust-cli/.openapi-generator/FILES b/sdks/full/rust-cli/.openapi-generator/FILES index 0afcea178..fa802f51f 100644 --- a/sdks/full/rust-cli/.openapi-generator/FILES +++ b/sdks/full/rust-cli/.openapi-generator/FILES @@ -4,25 +4,27 @@ Cargo.toml README.md docs/AdminApi.md -docs/AdminBuildDeliveryMethod.md -docs/AdminCluster.md docs/AdminClustersApi.md -docs/AdminClustersCreateRequest.md -docs/AdminClustersCreateResponse.md +docs/AdminClustersBuildDeliveryMethod.md +docs/AdminClustersCluster.md +docs/AdminClustersCreateClusterRequest.md +docs/AdminClustersCreateClusterResponse.md +docs/AdminClustersCreateDatacenterRequest.md +docs/AdminClustersCreateDatacenterResponse.md +docs/AdminClustersDatacenter.md docs/AdminClustersDatacentersApi.md -docs/AdminClustersDatacentersCreateRequest.md -docs/AdminClustersDatacentersCreateResponse.md -docs/AdminClustersDatacentersListResponse.md -docs/AdminClustersDatacentersUpdateRequest.md -docs/AdminClustersGetServerIpsResponse.md -docs/AdminClustersListResponse.md -docs/AdminDatacenter.md -docs/AdminHardware.md +docs/AdminClustersHardware.md +docs/AdminClustersListClustersResponse.md +docs/AdminClustersListDatacentersResponse.md +docs/AdminClustersListServersResponse.md +docs/AdminClustersPool.md +docs/AdminClustersPoolType.md +docs/AdminClustersProvider.md +docs/AdminClustersServer.md +docs/AdminClustersServersApi.md +docs/AdminClustersUpdateDatacenterRequest.md docs/AdminLoginRequest.md docs/AdminLoginResponse.md -docs/AdminPool.md -docs/AdminPoolType.md -docs/AdminProvider.md docs/AuthCompleteStatus.md docs/AuthIdentityAccessTokenApi.md docs/AuthIdentityCompleteAccessTokenVerificationRequest.md @@ -350,6 +352,7 @@ git_push.sh src/apis/admin_api.rs src/apis/admin_clusters_api.rs src/apis/admin_clusters_datacenters_api.rs +src/apis/admin_clusters_servers_api.rs src/apis/auth_identity_access_token_api.rs src/apis/auth_identity_email_api.rs src/apis/auth_tokens_api.rs @@ -388,23 +391,24 @@ src/apis/portal_games_api.rs src/apis/provision_datacenters_api.rs src/apis/provision_servers_api.rs src/lib.rs -src/models/admin_build_delivery_method.rs -src/models/admin_cluster.rs -src/models/admin_clusters_create_request.rs -src/models/admin_clusters_create_response.rs -src/models/admin_clusters_datacenters_create_request.rs -src/models/admin_clusters_datacenters_create_response.rs -src/models/admin_clusters_datacenters_list_response.rs -src/models/admin_clusters_datacenters_update_request.rs -src/models/admin_clusters_get_server_ips_response.rs -src/models/admin_clusters_list_response.rs -src/models/admin_datacenter.rs -src/models/admin_hardware.rs +src/models/admin_clusters_build_delivery_method.rs +src/models/admin_clusters_cluster.rs +src/models/admin_clusters_create_cluster_request.rs +src/models/admin_clusters_create_cluster_response.rs +src/models/admin_clusters_create_datacenter_request.rs +src/models/admin_clusters_create_datacenter_response.rs +src/models/admin_clusters_datacenter.rs +src/models/admin_clusters_hardware.rs +src/models/admin_clusters_list_clusters_response.rs +src/models/admin_clusters_list_datacenters_response.rs +src/models/admin_clusters_list_servers_response.rs +src/models/admin_clusters_pool.rs +src/models/admin_clusters_pool_type.rs +src/models/admin_clusters_provider.rs +src/models/admin_clusters_server.rs +src/models/admin_clusters_update_datacenter_request.rs src/models/admin_login_request.rs src/models/admin_login_response.rs -src/models/admin_pool.rs -src/models/admin_pool_type.rs -src/models/admin_provider.rs src/models/auth_complete_status.rs src/models/auth_identity_complete_access_token_verification_request.rs src/models/auth_identity_complete_email_verification_request.rs diff --git a/sdks/full/rust-cli/README.md b/sdks/full/rust-cli/README.md index 4481ea679..3abccb224 100644 --- a/sdks/full/rust-cli/README.md +++ b/sdks/full/rust-cli/README.md @@ -27,12 +27,12 @@ Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *AdminApi* | [**admin_login**](docs/AdminApi.md#admin_login) | **POST** /admin/login | *AdminClustersApi* | [**admin_clusters_create**](docs/AdminClustersApi.md#admin_clusters_create) | **POST** /admin/clusters | -*AdminClustersApi* | [**admin_clusters_get_server_ips**](docs/AdminClustersApi.md#admin_clusters_get_server_ips) | **GET** /admin/clusters/server_ips | *AdminClustersApi* | [**admin_clusters_list**](docs/AdminClustersApi.md#admin_clusters_list) | **GET** /admin/clusters | *AdminClustersDatacentersApi* | [**admin_clusters_datacenters_create**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_create) | **POST** /admin/clusters/{cluster_id}/datacenters | *AdminClustersDatacentersApi* | [**admin_clusters_datacenters_list**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_list) | **GET** /admin/clusters/{cluster_id}/datacenters | -*AdminClustersDatacentersApi* | [**admin_clusters_datacenters_taint**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_taint) | **GET** /admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint | *AdminClustersDatacentersApi* | [**admin_clusters_datacenters_update**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_update) | **PATCH** /admin/clusters/{cluster_id}/datacenters/{datacenter_id} | +*AdminClustersServersApi* | [**admin_clusters_servers_list**](docs/AdminClustersServersApi.md#admin_clusters_servers_list) | **GET** /admin/clusters/{cluster_id}/servers | +*AdminClustersServersApi* | [**admin_clusters_servers_taint**](docs/AdminClustersServersApi.md#admin_clusters_servers_taint) | **POST** /admin/clusters/{cluster_id}/servers/taint | *AuthIdentityAccessTokenApi* | [**auth_identity_access_token_complete_access_token_verification**](docs/AuthIdentityAccessTokenApi.md#auth_identity_access_token_complete_access_token_verification) | **POST** /auth/identity/access-token/complete-verification | *AuthIdentityEmailApi* | [**auth_identity_email_complete_email_verification**](docs/AuthIdentityEmailApi.md#auth_identity_email_complete_email_verification) | **POST** /auth/identity/email/complete-verification | *AuthIdentityEmailApi* | [**auth_identity_email_start_email_verification**](docs/AuthIdentityEmailApi.md#auth_identity_email_start_email_verification) | **POST** /auth/identity/email/start-verification | @@ -169,23 +169,24 @@ Class | Method | HTTP request | Description ## Documentation For Models - - [AdminBuildDeliveryMethod](docs/AdminBuildDeliveryMethod.md) - - [AdminCluster](docs/AdminCluster.md) - - [AdminClustersCreateRequest](docs/AdminClustersCreateRequest.md) - - [AdminClustersCreateResponse](docs/AdminClustersCreateResponse.md) - - [AdminClustersDatacentersCreateRequest](docs/AdminClustersDatacentersCreateRequest.md) - - [AdminClustersDatacentersCreateResponse](docs/AdminClustersDatacentersCreateResponse.md) - - [AdminClustersDatacentersListResponse](docs/AdminClustersDatacentersListResponse.md) - - [AdminClustersDatacentersUpdateRequest](docs/AdminClustersDatacentersUpdateRequest.md) - - [AdminClustersGetServerIpsResponse](docs/AdminClustersGetServerIpsResponse.md) - - [AdminClustersListResponse](docs/AdminClustersListResponse.md) - - [AdminDatacenter](docs/AdminDatacenter.md) - - [AdminHardware](docs/AdminHardware.md) + - [AdminClustersBuildDeliveryMethod](docs/AdminClustersBuildDeliveryMethod.md) + - [AdminClustersCluster](docs/AdminClustersCluster.md) + - [AdminClustersCreateClusterRequest](docs/AdminClustersCreateClusterRequest.md) + - [AdminClustersCreateClusterResponse](docs/AdminClustersCreateClusterResponse.md) + - [AdminClustersCreateDatacenterRequest](docs/AdminClustersCreateDatacenterRequest.md) + - [AdminClustersCreateDatacenterResponse](docs/AdminClustersCreateDatacenterResponse.md) + - [AdminClustersDatacenter](docs/AdminClustersDatacenter.md) + - [AdminClustersHardware](docs/AdminClustersHardware.md) + - [AdminClustersListClustersResponse](docs/AdminClustersListClustersResponse.md) + - [AdminClustersListDatacentersResponse](docs/AdminClustersListDatacentersResponse.md) + - [AdminClustersListServersResponse](docs/AdminClustersListServersResponse.md) + - [AdminClustersPool](docs/AdminClustersPool.md) + - [AdminClustersPoolType](docs/AdminClustersPoolType.md) + - [AdminClustersProvider](docs/AdminClustersProvider.md) + - [AdminClustersServer](docs/AdminClustersServer.md) + - [AdminClustersUpdateDatacenterRequest](docs/AdminClustersUpdateDatacenterRequest.md) - [AdminLoginRequest](docs/AdminLoginRequest.md) - [AdminLoginResponse](docs/AdminLoginResponse.md) - - [AdminPool](docs/AdminPool.md) - - [AdminPoolType](docs/AdminPoolType.md) - - [AdminProvider](docs/AdminProvider.md) - [AuthCompleteStatus](docs/AuthCompleteStatus.md) - [AuthIdentityCompleteAccessTokenVerificationRequest](docs/AuthIdentityCompleteAccessTokenVerificationRequest.md) - [AuthIdentityCompleteEmailVerificationRequest](docs/AuthIdentityCompleteEmailVerificationRequest.md) diff --git a/sdks/full/rust-cli/docs/AdminClustersApi.md b/sdks/full/rust-cli/docs/AdminClustersApi.md index c6e9d7966..f27fac554 100644 --- a/sdks/full/rust-cli/docs/AdminClustersApi.md +++ b/sdks/full/rust-cli/docs/AdminClustersApi.md @@ -5,14 +5,13 @@ All URIs are relative to *https://api.rivet.gg* Method | HTTP request | Description ------------- | ------------- | ------------- [**admin_clusters_create**](AdminClustersApi.md#admin_clusters_create) | **POST** /admin/clusters | -[**admin_clusters_get_server_ips**](AdminClustersApi.md#admin_clusters_get_server_ips) | **GET** /admin/clusters/server_ips | [**admin_clusters_list**](AdminClustersApi.md#admin_clusters_list) | **GET** /admin/clusters | ## admin_clusters_create -> crate::models::AdminClustersCreateResponse admin_clusters_create(admin_clusters_create_request) +> crate::models::AdminClustersCreateClusterResponse admin_clusters_create(admin_clusters_create_cluster_request) Create a new cluster @@ -22,11 +21,11 @@ Create a new cluster Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- -**admin_clusters_create_request** | [**AdminClustersCreateRequest**](AdminClustersCreateRequest.md) | | [required] | +**admin_clusters_create_cluster_request** | [**AdminClustersCreateClusterRequest**](AdminClustersCreateClusterRequest.md) | | [required] | ### Return type -[**crate::models::AdminClustersCreateResponse**](AdminClustersCreateResponse.md) +[**crate::models::AdminClustersCreateClusterResponse**](AdminClustersCreateClusterResponse.md) ### Authorization @@ -40,38 +39,9 @@ Name | Type | Description | Required | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## admin_clusters_get_server_ips - -> crate::models::AdminClustersGetServerIpsResponse admin_clusters_get_server_ips(server_id, pool) - - -### Parameters - - -Name | Type | Description | Required | Notes -------------- | ------------- | ------------- | ------------- | ------------- -**server_id** | Option<**uuid::Uuid**> | | | -**pool** | Option<[**AdminPoolType**](.md)> | | | - -### Return type - -[**crate::models::AdminClustersGetServerIpsResponse**](AdminClustersGetServerIpsResponse.md) - -### Authorization - -[BearerAuth](../README.md#BearerAuth) - -### HTTP request headers - -- **Content-Type**: Not defined -- **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - - ## admin_clusters_list -> crate::models::AdminClustersListResponse admin_clusters_list() +> crate::models::AdminClustersListClustersResponse admin_clusters_list() Get clusters @@ -82,7 +52,7 @@ This endpoint does not need any parameter. ### Return type -[**crate::models::AdminClustersListResponse**](AdminClustersListResponse.md) +[**crate::models::AdminClustersListClustersResponse**](AdminClustersListClustersResponse.md) ### Authorization diff --git a/sdks/full/rust-cli/docs/AdminBuildDeliveryMethod.md b/sdks/full/rust-cli/docs/AdminClustersBuildDeliveryMethod.md similarity index 88% rename from sdks/full/rust-cli/docs/AdminBuildDeliveryMethod.md rename to sdks/full/rust-cli/docs/AdminClustersBuildDeliveryMethod.md index 1690a6eef..bc3442736 100644 --- a/sdks/full/rust-cli/docs/AdminBuildDeliveryMethod.md +++ b/sdks/full/rust-cli/docs/AdminClustersBuildDeliveryMethod.md @@ -1,4 +1,4 @@ -# AdminBuildDeliveryMethod +# AdminClustersBuildDeliveryMethod ## Properties diff --git a/sdks/full/rust/docs/AdminCluster.md b/sdks/full/rust-cli/docs/AdminClustersCluster.md similarity index 95% rename from sdks/full/rust/docs/AdminCluster.md rename to sdks/full/rust-cli/docs/AdminClustersCluster.md index bb31eed78..03e3a2c81 100644 --- a/sdks/full/rust/docs/AdminCluster.md +++ b/sdks/full/rust-cli/docs/AdminClustersCluster.md @@ -1,4 +1,4 @@ -# AdminCluster +# AdminClustersCluster ## Properties diff --git a/sdks/full/rust-cli/docs/AdminClustersCreateRequest.md b/sdks/full/rust-cli/docs/AdminClustersCreateClusterRequest.md similarity index 91% rename from sdks/full/rust-cli/docs/AdminClustersCreateRequest.md rename to sdks/full/rust-cli/docs/AdminClustersCreateClusterRequest.md index ed0a244c2..41829e0aa 100644 --- a/sdks/full/rust-cli/docs/AdminClustersCreateRequest.md +++ b/sdks/full/rust-cli/docs/AdminClustersCreateClusterRequest.md @@ -1,4 +1,4 @@ -# AdminClustersCreateRequest +# AdminClustersCreateClusterRequest ## Properties diff --git a/sdks/full/rust/docs/AdminClustersCreateResponse.md b/sdks/full/rust-cli/docs/AdminClustersCreateClusterResponse.md similarity index 89% rename from sdks/full/rust/docs/AdminClustersCreateResponse.md rename to sdks/full/rust-cli/docs/AdminClustersCreateClusterResponse.md index a40beb599..96ef5fa15 100644 --- a/sdks/full/rust/docs/AdminClustersCreateResponse.md +++ b/sdks/full/rust-cli/docs/AdminClustersCreateClusterResponse.md @@ -1,4 +1,4 @@ -# AdminClustersCreateResponse +# AdminClustersCreateClusterResponse ## Properties diff --git a/sdks/full/rust/docs/AdminClustersDatacentersCreateRequest.md b/sdks/full/rust-cli/docs/AdminClustersCreateDatacenterRequest.md similarity index 60% rename from sdks/full/rust/docs/AdminClustersDatacentersCreateRequest.md rename to sdks/full/rust-cli/docs/AdminClustersCreateDatacenterRequest.md index e07034332..0b33f6a93 100644 --- a/sdks/full/rust/docs/AdminClustersDatacentersCreateRequest.md +++ b/sdks/full/rust-cli/docs/AdminClustersCreateDatacenterRequest.md @@ -1,13 +1,13 @@ -# AdminClustersDatacentersCreateRequest +# AdminClustersCreateDatacenterRequest ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**build_delivery_method** | [**crate::models::AdminBuildDeliveryMethod**](AdminBuildDeliveryMethod.md) | | +**build_delivery_method** | [**crate::models::AdminClustersBuildDeliveryMethod**](AdminClustersBuildDeliveryMethod.md) | | **display_name** | **String** | | **name_id** | **String** | | -**provider** | [**crate::models::AdminProvider**](AdminProvider.md) | | +**provider** | [**crate::models::AdminClustersProvider**](AdminClustersProvider.md) | | **provider_datacenter_id** | **String** | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust/docs/AdminClustersDatacentersCreateResponse.md b/sdks/full/rust-cli/docs/AdminClustersCreateDatacenterResponse.md similarity index 89% rename from sdks/full/rust/docs/AdminClustersDatacentersCreateResponse.md rename to sdks/full/rust-cli/docs/AdminClustersCreateDatacenterResponse.md index 2fdf15f20..19bba07cc 100644 --- a/sdks/full/rust/docs/AdminClustersDatacentersCreateResponse.md +++ b/sdks/full/rust-cli/docs/AdminClustersCreateDatacenterResponse.md @@ -1,4 +1,4 @@ -# AdminClustersDatacentersCreateResponse +# AdminClustersCreateDatacenterResponse ## Properties diff --git a/sdks/full/rust-cli/docs/AdminDatacenter.md b/sdks/full/rust-cli/docs/AdminClustersDatacenter.md similarity index 63% rename from sdks/full/rust-cli/docs/AdminDatacenter.md rename to sdks/full/rust-cli/docs/AdminClustersDatacenter.md index 9ca87fa28..bd8100832 100644 --- a/sdks/full/rust-cli/docs/AdminDatacenter.md +++ b/sdks/full/rust-cli/docs/AdminClustersDatacenter.md @@ -1,16 +1,16 @@ -# AdminDatacenter +# AdminClustersDatacenter ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**build_delivery_method** | [**crate::models::AdminBuildDeliveryMethod**](AdminBuildDeliveryMethod.md) | | +**build_delivery_method** | [**crate::models::AdminClustersBuildDeliveryMethod**](AdminClustersBuildDeliveryMethod.md) | | **cluster_id** | [**uuid::Uuid**](uuid::Uuid.md) | | **datacenter_id** | [**uuid::Uuid**](uuid::Uuid.md) | | **display_name** | **String** | | **name_id** | **String** | | -**pools** | [**Vec**](AdminPool.md) | | -**provider** | [**crate::models::AdminProvider**](AdminProvider.md) | | +**pools** | [**Vec**](AdminClustersPool.md) | | +**provider** | [**crate::models::AdminClustersProvider**](AdminClustersProvider.md) | | **provider_api_token** | Option<**String**> | | [optional] **provider_datacenter_id** | **String** | | diff --git a/sdks/full/rust-cli/docs/AdminClustersDatacentersApi.md b/sdks/full/rust-cli/docs/AdminClustersDatacentersApi.md index d97e835e4..5db9f51b2 100644 --- a/sdks/full/rust-cli/docs/AdminClustersDatacentersApi.md +++ b/sdks/full/rust-cli/docs/AdminClustersDatacentersApi.md @@ -6,14 +6,13 @@ Method | HTTP request | Description ------------- | ------------- | ------------- [**admin_clusters_datacenters_create**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_create) | **POST** /admin/clusters/{cluster_id}/datacenters | [**admin_clusters_datacenters_list**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_list) | **GET** /admin/clusters/{cluster_id}/datacenters | -[**admin_clusters_datacenters_taint**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_taint) | **GET** /admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint | [**admin_clusters_datacenters_update**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_update) | **PATCH** /admin/clusters/{cluster_id}/datacenters/{datacenter_id} | ## admin_clusters_datacenters_create -> crate::models::AdminClustersDatacentersCreateResponse admin_clusters_datacenters_create(cluster_id, admin_clusters_datacenters_create_request) +> crate::models::AdminClustersCreateDatacenterResponse admin_clusters_datacenters_create(cluster_id, admin_clusters_create_datacenter_request) ### Parameters @@ -22,11 +21,11 @@ Method | HTTP request | Description Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- **cluster_id** | **uuid::Uuid** | | [required] | -**admin_clusters_datacenters_create_request** | [**AdminClustersDatacentersCreateRequest**](AdminClustersDatacentersCreateRequest.md) | | [required] | +**admin_clusters_create_datacenter_request** | [**AdminClustersCreateDatacenterRequest**](AdminClustersCreateDatacenterRequest.md) | | [required] | ### Return type -[**crate::models::AdminClustersDatacentersCreateResponse**](AdminClustersDatacentersCreateResponse.md) +[**crate::models::AdminClustersCreateDatacenterResponse**](AdminClustersCreateDatacenterResponse.md) ### Authorization @@ -42,7 +41,7 @@ Name | Type | Description | Required | Notes ## admin_clusters_datacenters_list -> crate::models::AdminClustersDatacentersListResponse admin_clusters_datacenters_list(cluster_id) +> crate::models::AdminClustersListDatacentersResponse admin_clusters_datacenters_list(cluster_id) Get datacenters of a cluster @@ -56,36 +55,7 @@ Name | Type | Description | Required | Notes ### Return type -[**crate::models::AdminClustersDatacentersListResponse**](AdminClustersDatacentersListResponse.md) - -### Authorization - -[BearerAuth](../README.md#BearerAuth) - -### HTTP request headers - -- **Content-Type**: Not defined -- **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - - -## admin_clusters_datacenters_taint - -> admin_clusters_datacenters_taint(cluster_id, datacenter_id) - - -### Parameters - - -Name | Type | Description | Required | Notes -------------- | ------------- | ------------- | ------------- | ------------- -**cluster_id** | **uuid::Uuid** | | [required] | -**datacenter_id** | **String** | | [required] | - -### Return type - - (empty response body) +[**crate::models::AdminClustersListDatacentersResponse**](AdminClustersListDatacentersResponse.md) ### Authorization @@ -101,7 +71,7 @@ Name | Type | Description | Required | Notes ## admin_clusters_datacenters_update -> admin_clusters_datacenters_update(cluster_id, datacenter_id, admin_clusters_datacenters_update_request) +> admin_clusters_datacenters_update(cluster_id, datacenter_id, admin_clusters_update_datacenter_request) ### Parameters @@ -111,7 +81,7 @@ Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- **cluster_id** | **uuid::Uuid** | | [required] | **datacenter_id** | **uuid::Uuid** | | [required] | -**admin_clusters_datacenters_update_request** | [**AdminClustersDatacentersUpdateRequest**](AdminClustersDatacentersUpdateRequest.md) | | [required] | +**admin_clusters_update_datacenter_request** | [**AdminClustersUpdateDatacenterRequest**](AdminClustersUpdateDatacenterRequest.md) | | [required] | ### Return type diff --git a/sdks/full/rust/docs/AdminHardware.md b/sdks/full/rust-cli/docs/AdminClustersHardware.md similarity index 92% rename from sdks/full/rust/docs/AdminHardware.md rename to sdks/full/rust-cli/docs/AdminClustersHardware.md index a6bbfe6d2..5c09e0cee 100644 --- a/sdks/full/rust/docs/AdminHardware.md +++ b/sdks/full/rust-cli/docs/AdminClustersHardware.md @@ -1,4 +1,4 @@ -# AdminHardware +# AdminClustersHardware ## Properties diff --git a/sdks/full/rust-cli/docs/AdminClustersListClustersResponse.md b/sdks/full/rust-cli/docs/AdminClustersListClustersResponse.md new file mode 100644 index 000000000..1eee53d06 --- /dev/null +++ b/sdks/full/rust-cli/docs/AdminClustersListClustersResponse.md @@ -0,0 +1,11 @@ +# AdminClustersListClustersResponse + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**clusters** | [**Vec**](AdminClustersCluster.md) | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdks/full/rust-cli/docs/AdminClustersListDatacentersResponse.md b/sdks/full/rust-cli/docs/AdminClustersListDatacentersResponse.md new file mode 100644 index 000000000..75f9d63ae --- /dev/null +++ b/sdks/full/rust-cli/docs/AdminClustersListDatacentersResponse.md @@ -0,0 +1,11 @@ +# AdminClustersListDatacentersResponse + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**datacenters** | [**Vec**](AdminClustersDatacenter.md) | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdks/full/rust-cli/docs/AdminClustersListResponse.md b/sdks/full/rust-cli/docs/AdminClustersListResponse.md deleted file mode 100644 index a6470efd9..000000000 --- a/sdks/full/rust-cli/docs/AdminClustersListResponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# AdminClustersListResponse - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**clusters** | [**Vec**](AdminCluster.md) | | - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/sdks/full/rust-cli/docs/AdminClustersDatacentersListResponse.md b/sdks/full/rust-cli/docs/AdminClustersListServersResponse.md similarity index 68% rename from sdks/full/rust-cli/docs/AdminClustersDatacentersListResponse.md rename to sdks/full/rust-cli/docs/AdminClustersListServersResponse.md index c6c2e8f1a..e40cafae1 100644 --- a/sdks/full/rust-cli/docs/AdminClustersDatacentersListResponse.md +++ b/sdks/full/rust-cli/docs/AdminClustersListServersResponse.md @@ -1,10 +1,10 @@ -# AdminClustersDatacentersListResponse +# AdminClustersListServersResponse ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**datacenters** | [**Vec**](AdminDatacenter.md) | | +**servers** | [**Vec**](AdminClustersServer.md) | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust-cli/docs/AdminPool.md b/sdks/full/rust-cli/docs/AdminClustersPool.md similarity index 64% rename from sdks/full/rust-cli/docs/AdminPool.md rename to sdks/full/rust-cli/docs/AdminClustersPool.md index a39d7fb68..617eb2c80 100644 --- a/sdks/full/rust-cli/docs/AdminPool.md +++ b/sdks/full/rust-cli/docs/AdminClustersPool.md @@ -1,4 +1,4 @@ -# AdminPool +# AdminClustersPool ## Properties @@ -6,9 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **desired_count** | **i32** | | **drain_timeout** | **i64** | | -**hardware** | [**Vec**](AdminHardware.md) | | +**hardware** | [**Vec**](AdminClustersHardware.md) | | **max_count** | **i32** | | -**pool_type** | [**crate::models::AdminPoolType**](AdminPoolType.md) | | +**pool_type** | [**crate::models::AdminClustersPoolType**](AdminClustersPoolType.md) | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust/docs/AdminPoolType.md b/sdks/full/rust-cli/docs/AdminClustersPoolType.md similarity index 92% rename from sdks/full/rust/docs/AdminPoolType.md rename to sdks/full/rust-cli/docs/AdminClustersPoolType.md index fcba04ce3..8e5de0ca9 100644 --- a/sdks/full/rust/docs/AdminPoolType.md +++ b/sdks/full/rust-cli/docs/AdminClustersPoolType.md @@ -1,4 +1,4 @@ -# AdminPoolType +# AdminClustersPoolType ## Properties diff --git a/sdks/full/rust/docs/AdminProvider.md b/sdks/full/rust-cli/docs/AdminClustersProvider.md similarity index 92% rename from sdks/full/rust/docs/AdminProvider.md rename to sdks/full/rust-cli/docs/AdminClustersProvider.md index 1e4417ca3..736c08897 100644 --- a/sdks/full/rust/docs/AdminProvider.md +++ b/sdks/full/rust-cli/docs/AdminClustersProvider.md @@ -1,4 +1,4 @@ -# AdminProvider +# AdminClustersProvider ## Properties diff --git a/sdks/full/rust-cli/docs/AdminClustersGetServerIpsResponse.md b/sdks/full/rust-cli/docs/AdminClustersServer.md similarity index 71% rename from sdks/full/rust-cli/docs/AdminClustersGetServerIpsResponse.md rename to sdks/full/rust-cli/docs/AdminClustersServer.md index 98c36cf92..2219721a9 100644 --- a/sdks/full/rust-cli/docs/AdminClustersGetServerIpsResponse.md +++ b/sdks/full/rust-cli/docs/AdminClustersServer.md @@ -1,10 +1,11 @@ -# AdminClustersGetServerIpsResponse +# AdminClustersServer ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**ips** | **Vec** | | +**public_ip** | **String** | | +**server_id** | [**uuid::Uuid**](uuid::Uuid.md) | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust-cli/docs/AdminClustersServersApi.md b/sdks/full/rust-cli/docs/AdminClustersServersApi.md new file mode 100644 index 000000000..820ace864 --- /dev/null +++ b/sdks/full/rust-cli/docs/AdminClustersServersApi.md @@ -0,0 +1,74 @@ +# \AdminClustersServersApi + +All URIs are relative to *https://api.rivet.gg* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**admin_clusters_servers_list**](AdminClustersServersApi.md#admin_clusters_servers_list) | **GET** /admin/clusters/{cluster_id}/servers | +[**admin_clusters_servers_taint**](AdminClustersServersApi.md#admin_clusters_servers_taint) | **POST** /admin/clusters/{cluster_id}/servers/taint | + + + +## admin_clusters_servers_list + +> crate::models::AdminClustersListServersResponse admin_clusters_servers_list(cluster_id, server_id, datacenter, pool, public_ip) + + +### Parameters + + +Name | Type | Description | Required | Notes +------------- | ------------- | ------------- | ------------- | ------------- +**cluster_id** | **uuid::Uuid** | | [required] | +**server_id** | Option<**String**> | | | +**datacenter** | Option<**String**> | | | +**pool** | Option<[**AdminClustersPoolType**](.md)> | | | +**public_ip** | Option<**String**> | | | + +### Return type + +[**crate::models::AdminClustersListServersResponse**](AdminClustersListServersResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +## admin_clusters_servers_taint + +> admin_clusters_servers_taint(cluster_id, server_id, datacenter, pool, public_ip) + + +### Parameters + + +Name | Type | Description | Required | Notes +------------- | ------------- | ------------- | ------------- | ------------- +**cluster_id** | **uuid::Uuid** | | [required] | +**server_id** | Option<**String**> | | | +**datacenter** | Option<**String**> | | | +**pool** | Option<[**AdminClustersPoolType**](.md)> | | | +**public_ip** | Option<**String**> | | | + +### Return type + + (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/sdks/full/rust-cli/docs/AdminClustersDatacentersUpdateRequest.md b/sdks/full/rust-cli/docs/AdminClustersUpdateDatacenterRequest.md similarity index 65% rename from sdks/full/rust-cli/docs/AdminClustersDatacentersUpdateRequest.md rename to sdks/full/rust-cli/docs/AdminClustersUpdateDatacenterRequest.md index f007f7056..5c226d40d 100644 --- a/sdks/full/rust-cli/docs/AdminClustersDatacentersUpdateRequest.md +++ b/sdks/full/rust-cli/docs/AdminClustersUpdateDatacenterRequest.md @@ -1,4 +1,4 @@ -# AdminClustersDatacentersUpdateRequest +# AdminClustersUpdateDatacenterRequest ## Properties @@ -6,9 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **desired_count** | Option<**i32**> | | [optional] **drain_timeout** | Option<**i64**> | | [optional] -**hardware** | [**Vec**](AdminHardware.md) | | +**hardware** | [**Vec**](AdminClustersHardware.md) | | **max_count** | Option<**i32**> | | [optional] -**pool_type** | [**crate::models::AdminPoolType**](AdminPoolType.md) | | +**pool_type** | [**crate::models::AdminClustersPoolType**](AdminClustersPoolType.md) | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust-cli/src/apis/admin_clusters_api.rs b/sdks/full/rust-cli/src/apis/admin_clusters_api.rs index 7f683eb02..8cdf81d02 100644 --- a/sdks/full/rust-cli/src/apis/admin_clusters_api.rs +++ b/sdks/full/rust-cli/src/apis/admin_clusters_api.rs @@ -28,19 +28,6 @@ pub enum AdminClustersCreateError { UnknownValue(serde_json::Value), } -/// struct for typed errors of method [`admin_clusters_get_server_ips`] -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum AdminClustersGetServerIpsError { - Status400(crate::models::ErrorBody), - Status403(crate::models::ErrorBody), - Status404(crate::models::ErrorBody), - Status408(crate::models::ErrorBody), - Status429(crate::models::ErrorBody), - Status500(crate::models::ErrorBody), - UnknownValue(serde_json::Value), -} - /// struct for typed errors of method [`admin_clusters_list`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -56,7 +43,7 @@ pub enum AdminClustersListError { /// Create a new cluster -pub async fn admin_clusters_create(configuration: &configuration::Configuration, admin_clusters_create_request: crate::models::AdminClustersCreateRequest) -> Result> { +pub async fn admin_clusters_create(configuration: &configuration::Configuration, admin_clusters_create_cluster_request: crate::models::AdminClustersCreateClusterRequest) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -70,7 +57,7 @@ pub async fn admin_clusters_create(configuration: &configuration::Configuration, if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); }; - local_var_req_builder = local_var_req_builder.json(&admin_clusters_create_request); + local_var_req_builder = local_var_req_builder.json(&admin_clusters_create_cluster_request); let local_var_req = local_var_req_builder.build()?; let local_var_resp = local_var_client.execute(local_var_req).await?; @@ -87,44 +74,8 @@ pub async fn admin_clusters_create(configuration: &configuration::Configuration, } } -pub async fn admin_clusters_get_server_ips(configuration: &configuration::Configuration, server_id: Option<&str>, pool: Option) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/admin/clusters/server_ips", local_var_configuration.base_path); - let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_str) = server_id { - local_var_req_builder = local_var_req_builder.query(&[("server_id", &local_var_str.to_string())]); - } - if let Some(ref local_var_str) = pool { - local_var_req_builder = local_var_req_builder.query(&[("pool", &local_var_str.to_string())]); - } - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; - Err(Error::ResponseError(local_var_error)) - } -} - /// Get clusters -pub async fn admin_clusters_list(configuration: &configuration::Configuration, ) -> Result> { +pub async fn admin_clusters_list(configuration: &configuration::Configuration, ) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; diff --git a/sdks/full/rust-cli/src/apis/admin_clusters_datacenters_api.rs b/sdks/full/rust-cli/src/apis/admin_clusters_datacenters_api.rs index 3d94683d5..ca2129b89 100644 --- a/sdks/full/rust-cli/src/apis/admin_clusters_datacenters_api.rs +++ b/sdks/full/rust-cli/src/apis/admin_clusters_datacenters_api.rs @@ -41,19 +41,6 @@ pub enum AdminClustersDatacentersListError { UnknownValue(serde_json::Value), } -/// struct for typed errors of method [`admin_clusters_datacenters_taint`] -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum AdminClustersDatacentersTaintError { - Status400(crate::models::ErrorBody), - Status403(crate::models::ErrorBody), - Status404(crate::models::ErrorBody), - Status408(crate::models::ErrorBody), - Status429(crate::models::ErrorBody), - Status500(crate::models::ErrorBody), - UnknownValue(serde_json::Value), -} - /// struct for typed errors of method [`admin_clusters_datacenters_update`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -68,7 +55,7 @@ pub enum AdminClustersDatacentersUpdateError { } -pub async fn admin_clusters_datacenters_create(configuration: &configuration::Configuration, cluster_id: &str, admin_clusters_datacenters_create_request: crate::models::AdminClustersDatacentersCreateRequest) -> Result> { +pub async fn admin_clusters_datacenters_create(configuration: &configuration::Configuration, cluster_id: &str, admin_clusters_create_datacenter_request: crate::models::AdminClustersCreateDatacenterRequest) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -82,7 +69,7 @@ pub async fn admin_clusters_datacenters_create(configuration: &configuration::Co if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); }; - local_var_req_builder = local_var_req_builder.json(&admin_clusters_datacenters_create_request); + local_var_req_builder = local_var_req_builder.json(&admin_clusters_create_datacenter_request); let local_var_req = local_var_req_builder.build()?; let local_var_resp = local_var_client.execute(local_var_req).await?; @@ -100,7 +87,7 @@ pub async fn admin_clusters_datacenters_create(configuration: &configuration::Co } /// Get datacenters of a cluster -pub async fn admin_clusters_datacenters_list(configuration: &configuration::Configuration, cluster_id: &str) -> Result> { +pub async fn admin_clusters_datacenters_list(configuration: &configuration::Configuration, cluster_id: &str) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -130,37 +117,7 @@ pub async fn admin_clusters_datacenters_list(configuration: &configuration::Conf } } -pub async fn admin_clusters_datacenters_taint(configuration: &configuration::Configuration, cluster_id: &str, datacenter_id: &str) -> Result<(), Error> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint", local_var_configuration.base_path, cluster_id=crate::apis::urlencode(cluster_id), datacenter_id=crate::apis::urlencode(datacenter_id)); - let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - Ok(()) - } else { - let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn admin_clusters_datacenters_update(configuration: &configuration::Configuration, cluster_id: &str, datacenter_id: &str, admin_clusters_datacenters_update_request: crate::models::AdminClustersDatacentersUpdateRequest) -> Result<(), Error> { +pub async fn admin_clusters_datacenters_update(configuration: &configuration::Configuration, cluster_id: &str, datacenter_id: &str, admin_clusters_update_datacenter_request: crate::models::AdminClustersUpdateDatacenterRequest) -> Result<(), Error> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -174,7 +131,7 @@ pub async fn admin_clusters_datacenters_update(configuration: &configuration::Co if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); }; - local_var_req_builder = local_var_req_builder.json(&admin_clusters_datacenters_update_request); + local_var_req_builder = local_var_req_builder.json(&admin_clusters_update_datacenter_request); let local_var_req = local_var_req_builder.build()?; let local_var_resp = local_var_client.execute(local_var_req).await?; diff --git a/sdks/full/rust-cli/src/apis/admin_clusters_servers_api.rs b/sdks/full/rust-cli/src/apis/admin_clusters_servers_api.rs new file mode 100644 index 000000000..7c0e2c1f3 --- /dev/null +++ b/sdks/full/rust-cli/src/apis/admin_clusters_servers_api.rs @@ -0,0 +1,128 @@ +/* + * Rivet API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * Generated by: https://openapi-generator.tech + */ + + +use reqwest; + +use crate::apis::ResponseContent; +use super::{Error, configuration}; + + +/// struct for typed errors of method [`admin_clusters_servers_list`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum AdminClustersServersListError { + Status400(crate::models::ErrorBody), + Status403(crate::models::ErrorBody), + Status404(crate::models::ErrorBody), + Status408(crate::models::ErrorBody), + Status429(crate::models::ErrorBody), + Status500(crate::models::ErrorBody), + UnknownValue(serde_json::Value), +} + +/// struct for typed errors of method [`admin_clusters_servers_taint`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum AdminClustersServersTaintError { + Status400(crate::models::ErrorBody), + Status403(crate::models::ErrorBody), + Status404(crate::models::ErrorBody), + Status408(crate::models::ErrorBody), + Status429(crate::models::ErrorBody), + Status500(crate::models::ErrorBody), + UnknownValue(serde_json::Value), +} + + +pub async fn admin_clusters_servers_list(configuration: &configuration::Configuration, cluster_id: &str, server_id: Option<&str>, datacenter: Option<&str>, pool: Option, public_ip: Option<&str>) -> Result> { + let local_var_configuration = configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/admin/clusters/{cluster_id}/servers", local_var_configuration.base_path, cluster_id=crate::apis::urlencode(cluster_id)); + let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_str) = server_id { + local_var_req_builder = local_var_req_builder.query(&[("server_id", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = datacenter { + local_var_req_builder = local_var_req_builder.query(&[("datacenter", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = pool { + local_var_req_builder = local_var_req_builder.query(&[("pool", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = public_ip { + local_var_req_builder = local_var_req_builder.query(&[("public_ip", &local_var_str.to_string())]); + } + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; + Err(Error::ResponseError(local_var_error)) + } +} + +pub async fn admin_clusters_servers_taint(configuration: &configuration::Configuration, cluster_id: &str, server_id: Option<&str>, datacenter: Option<&str>, pool: Option, public_ip: Option<&str>) -> Result<(), Error> { + let local_var_configuration = configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/admin/clusters/{cluster_id}/servers/taint", local_var_configuration.base_path, cluster_id=crate::apis::urlencode(cluster_id)); + let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_str) = server_id { + local_var_req_builder = local_var_req_builder.query(&[("server_id", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = datacenter { + local_var_req_builder = local_var_req_builder.query(&[("datacenter", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = pool { + local_var_req_builder = local_var_req_builder.query(&[("pool", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = public_ip { + local_var_req_builder = local_var_req_builder.query(&[("public_ip", &local_var_str.to_string())]); + } + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + Ok(()) + } else { + let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; + Err(Error::ResponseError(local_var_error)) + } +} + diff --git a/sdks/full/rust-cli/src/apis/mod.rs b/sdks/full/rust-cli/src/apis/mod.rs index 112d34ab1..e6401fd8f 100644 --- a/sdks/full/rust-cli/src/apis/mod.rs +++ b/sdks/full/rust-cli/src/apis/mod.rs @@ -93,6 +93,7 @@ pub fn parse_deep_object(prefix: &str, value: &serde_json::Value) -> Vec<(String pub mod admin_api; pub mod admin_clusters_api; pub mod admin_clusters_datacenters_api; +pub mod admin_clusters_servers_api; pub mod auth_identity_access_token_api; pub mod auth_identity_email_api; pub mod auth_tokens_api; diff --git a/sdks/full/rust-cli/src/models/admin_build_delivery_method.rs b/sdks/full/rust-cli/src/models/admin_clusters_build_delivery_method.rs similarity index 77% rename from sdks/full/rust-cli/src/models/admin_build_delivery_method.rs rename to sdks/full/rust-cli/src/models/admin_clusters_build_delivery_method.rs index 2067fee6d..08876954c 100644 --- a/sdks/full/rust-cli/src/models/admin_build_delivery_method.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_build_delivery_method.rs @@ -11,7 +11,7 @@ /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] -pub enum AdminBuildDeliveryMethod { +pub enum AdminClustersBuildDeliveryMethod { #[serde(rename = "traffic_server")] TrafficServer, #[serde(rename = "s3_direct")] @@ -19,7 +19,7 @@ pub enum AdminBuildDeliveryMethod { } -impl ToString for AdminBuildDeliveryMethod { +impl ToString for AdminClustersBuildDeliveryMethod { fn to_string(&self) -> String { match self { Self::TrafficServer => String::from("traffic_server"), @@ -28,8 +28,8 @@ impl ToString for AdminBuildDeliveryMethod { } } -impl Default for AdminBuildDeliveryMethod { - fn default() -> AdminBuildDeliveryMethod { +impl Default for AdminClustersBuildDeliveryMethod { + fn default() -> AdminClustersBuildDeliveryMethod { Self::TrafficServer } } diff --git a/sdks/full/rust/src/models/admin_cluster.rs b/sdks/full/rust-cli/src/models/admin_clusters_cluster.rs similarity index 86% rename from sdks/full/rust/src/models/admin_cluster.rs rename to sdks/full/rust-cli/src/models/admin_clusters_cluster.rs index 541fff3f6..25ef74db3 100644 --- a/sdks/full/rust/src/models/admin_cluster.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_cluster.rs @@ -12,7 +12,7 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminCluster { +pub struct AdminClustersCluster { #[serde(rename = "cluster_id")] pub cluster_id: uuid::Uuid, #[serde(rename = "create_ts")] @@ -23,9 +23,9 @@ pub struct AdminCluster { pub owner_team_id: Option, } -impl AdminCluster { - pub fn new(cluster_id: uuid::Uuid, create_ts: i64, name_id: String) -> AdminCluster { - AdminCluster { +impl AdminClustersCluster { + pub fn new(cluster_id: uuid::Uuid, create_ts: i64, name_id: String) -> AdminClustersCluster { + AdminClustersCluster { cluster_id, create_ts, name_id, diff --git a/sdks/full/rust/src/models/admin_clusters_create_request.rs b/sdks/full/rust-cli/src/models/admin_clusters_create_cluster_request.rs similarity index 73% rename from sdks/full/rust/src/models/admin_clusters_create_request.rs rename to sdks/full/rust-cli/src/models/admin_clusters_create_cluster_request.rs index 41800c976..b4c6f6782 100644 --- a/sdks/full/rust/src/models/admin_clusters_create_request.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_create_cluster_request.rs @@ -12,16 +12,16 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersCreateRequest { +pub struct AdminClustersCreateClusterRequest { #[serde(rename = "name_id")] pub name_id: String, #[serde(rename = "owner_team_id", skip_serializing_if = "Option::is_none")] pub owner_team_id: Option, } -impl AdminClustersCreateRequest { - pub fn new(name_id: String) -> AdminClustersCreateRequest { - AdminClustersCreateRequest { +impl AdminClustersCreateClusterRequest { + pub fn new(name_id: String) -> AdminClustersCreateClusterRequest { + AdminClustersCreateClusterRequest { name_id, owner_team_id: None, } diff --git a/sdks/full/rust/src/models/admin_clusters_create_response.rs b/sdks/full/rust-cli/src/models/admin_clusters_create_cluster_response.rs similarity index 66% rename from sdks/full/rust/src/models/admin_clusters_create_response.rs rename to sdks/full/rust-cli/src/models/admin_clusters_create_cluster_response.rs index 60276ba61..d1ad11319 100644 --- a/sdks/full/rust/src/models/admin_clusters_create_response.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_create_cluster_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersCreateResponse { +pub struct AdminClustersCreateClusterResponse { #[serde(rename = "cluster_id")] pub cluster_id: uuid::Uuid, } -impl AdminClustersCreateResponse { - pub fn new(cluster_id: uuid::Uuid) -> AdminClustersCreateResponse { - AdminClustersCreateResponse { +impl AdminClustersCreateClusterResponse { + pub fn new(cluster_id: uuid::Uuid) -> AdminClustersCreateClusterResponse { + AdminClustersCreateClusterResponse { cluster_id, } } diff --git a/sdks/full/rust/src/models/admin_clusters_datacenters_create_request.rs b/sdks/full/rust-cli/src/models/admin_clusters_create_datacenter_request.rs similarity index 59% rename from sdks/full/rust/src/models/admin_clusters_datacenters_create_request.rs rename to sdks/full/rust-cli/src/models/admin_clusters_create_datacenter_request.rs index 01a6c6ecb..c539d1ffc 100644 --- a/sdks/full/rust/src/models/admin_clusters_datacenters_create_request.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_create_datacenter_request.rs @@ -12,22 +12,22 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersCreateRequest { +pub struct AdminClustersCreateDatacenterRequest { #[serde(rename = "build_delivery_method")] - pub build_delivery_method: crate::models::AdminBuildDeliveryMethod, + pub build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, #[serde(rename = "display_name")] pub display_name: String, #[serde(rename = "name_id")] pub name_id: String, #[serde(rename = "provider")] - pub provider: crate::models::AdminProvider, + pub provider: crate::models::AdminClustersProvider, #[serde(rename = "provider_datacenter_id")] pub provider_datacenter_id: String, } -impl AdminClustersDatacentersCreateRequest { - pub fn new(build_delivery_method: crate::models::AdminBuildDeliveryMethod, display_name: String, name_id: String, provider: crate::models::AdminProvider, provider_datacenter_id: String) -> AdminClustersDatacentersCreateRequest { - AdminClustersDatacentersCreateRequest { +impl AdminClustersCreateDatacenterRequest { + pub fn new(build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, display_name: String, name_id: String, provider: crate::models::AdminClustersProvider, provider_datacenter_id: String) -> AdminClustersCreateDatacenterRequest { + AdminClustersCreateDatacenterRequest { build_delivery_method, display_name, name_id, diff --git a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_create_response.rs b/sdks/full/rust-cli/src/models/admin_clusters_create_datacenter_response.rs similarity index 64% rename from sdks/full/rust-cli/src/models/admin_clusters_datacenters_create_response.rs rename to sdks/full/rust-cli/src/models/admin_clusters_create_datacenter_response.rs index 8cdf104f9..8db217e87 100644 --- a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_create_response.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_create_datacenter_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersCreateResponse { +pub struct AdminClustersCreateDatacenterResponse { #[serde(rename = "datacenter_id")] pub datacenter_id: uuid::Uuid, } -impl AdminClustersDatacentersCreateResponse { - pub fn new(datacenter_id: uuid::Uuid) -> AdminClustersDatacentersCreateResponse { - AdminClustersDatacentersCreateResponse { +impl AdminClustersCreateDatacenterResponse { + pub fn new(datacenter_id: uuid::Uuid) -> AdminClustersCreateDatacenterResponse { + AdminClustersCreateDatacenterResponse { datacenter_id, } } diff --git a/sdks/full/rust/src/models/admin_datacenter.rs b/sdks/full/rust-cli/src/models/admin_clusters_datacenter.rs similarity index 65% rename from sdks/full/rust/src/models/admin_datacenter.rs rename to sdks/full/rust-cli/src/models/admin_clusters_datacenter.rs index 4f36a3e4b..80318b227 100644 --- a/sdks/full/rust/src/models/admin_datacenter.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_datacenter.rs @@ -12,9 +12,9 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminDatacenter { +pub struct AdminClustersDatacenter { #[serde(rename = "build_delivery_method")] - pub build_delivery_method: crate::models::AdminBuildDeliveryMethod, + pub build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, #[serde(rename = "cluster_id")] pub cluster_id: uuid::Uuid, #[serde(rename = "datacenter_id")] @@ -24,18 +24,18 @@ pub struct AdminDatacenter { #[serde(rename = "name_id")] pub name_id: String, #[serde(rename = "pools")] - pub pools: Vec, + pub pools: Vec, #[serde(rename = "provider")] - pub provider: crate::models::AdminProvider, + pub provider: crate::models::AdminClustersProvider, #[serde(rename = "provider_api_token", skip_serializing_if = "Option::is_none")] pub provider_api_token: Option, #[serde(rename = "provider_datacenter_id")] pub provider_datacenter_id: String, } -impl AdminDatacenter { - pub fn new(build_delivery_method: crate::models::AdminBuildDeliveryMethod, cluster_id: uuid::Uuid, datacenter_id: uuid::Uuid, display_name: String, name_id: String, pools: Vec, provider: crate::models::AdminProvider, provider_datacenter_id: String) -> AdminDatacenter { - AdminDatacenter { +impl AdminClustersDatacenter { + pub fn new(build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, cluster_id: uuid::Uuid, datacenter_id: uuid::Uuid, display_name: String, name_id: String, pools: Vec, provider: crate::models::AdminClustersProvider, provider_datacenter_id: String) -> AdminClustersDatacenter { + AdminClustersDatacenter { build_delivery_method, cluster_id, datacenter_id, diff --git a/sdks/full/rust-cli/src/models/admin_clusters_get_server_ips_response.rs b/sdks/full/rust-cli/src/models/admin_clusters_get_server_ips_response.rs deleted file mode 100644 index acf76e6c1..000000000 --- a/sdks/full/rust-cli/src/models/admin_clusters_get_server_ips_response.rs +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Rivet API - * - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.0.1 - * - * Generated by: https://openapi-generator.tech - */ - - - - -#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersGetServerIpsResponse { - #[serde(rename = "ips")] - pub ips: Vec, -} - -impl AdminClustersGetServerIpsResponse { - pub fn new(ips: Vec) -> AdminClustersGetServerIpsResponse { - AdminClustersGetServerIpsResponse { - ips, - } - } -} - - diff --git a/sdks/full/rust-cli/src/models/admin_hardware.rs b/sdks/full/rust-cli/src/models/admin_clusters_hardware.rs similarity index 72% rename from sdks/full/rust-cli/src/models/admin_hardware.rs rename to sdks/full/rust-cli/src/models/admin_clusters_hardware.rs index f88e2fbe5..c53b0f494 100644 --- a/sdks/full/rust-cli/src/models/admin_hardware.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_hardware.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminHardware { +pub struct AdminClustersHardware { #[serde(rename = "provider_hardware")] pub provider_hardware: String, } -impl AdminHardware { - pub fn new(provider_hardware: String) -> AdminHardware { - AdminHardware { +impl AdminClustersHardware { + pub fn new(provider_hardware: String) -> AdminClustersHardware { + AdminClustersHardware { provider_hardware, } } diff --git a/sdks/full/rust/src/models/admin_clusters_list_response.rs b/sdks/full/rust-cli/src/models/admin_clusters_list_clusters_response.rs similarity index 56% rename from sdks/full/rust/src/models/admin_clusters_list_response.rs rename to sdks/full/rust-cli/src/models/admin_clusters_list_clusters_response.rs index 21a0c57ee..285aabf7c 100644 --- a/sdks/full/rust/src/models/admin_clusters_list_response.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_list_clusters_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersListResponse { +pub struct AdminClustersListClustersResponse { #[serde(rename = "clusters")] - pub clusters: Vec, + pub clusters: Vec, } -impl AdminClustersListResponse { - pub fn new(clusters: Vec) -> AdminClustersListResponse { - AdminClustersListResponse { +impl AdminClustersListClustersResponse { + pub fn new(clusters: Vec) -> AdminClustersListClustersResponse { + AdminClustersListClustersResponse { clusters, } } diff --git a/sdks/full/rust/src/models/admin_clusters_datacenters_list_response.rs b/sdks/full/rust-cli/src/models/admin_clusters_list_datacenters_response.rs similarity index 54% rename from sdks/full/rust/src/models/admin_clusters_datacenters_list_response.rs rename to sdks/full/rust-cli/src/models/admin_clusters_list_datacenters_response.rs index fa31fc07c..95ebb3cd8 100644 --- a/sdks/full/rust/src/models/admin_clusters_datacenters_list_response.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_list_datacenters_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersListResponse { +pub struct AdminClustersListDatacentersResponse { #[serde(rename = "datacenters")] - pub datacenters: Vec, + pub datacenters: Vec, } -impl AdminClustersDatacentersListResponse { - pub fn new(datacenters: Vec) -> AdminClustersDatacentersListResponse { - AdminClustersDatacentersListResponse { +impl AdminClustersListDatacentersResponse { + pub fn new(datacenters: Vec) -> AdminClustersListDatacentersResponse { + AdminClustersListDatacentersResponse { datacenters, } } diff --git a/sdks/full/rust-cli/src/models/admin_clusters_list_servers_response.rs b/sdks/full/rust-cli/src/models/admin_clusters_list_servers_response.rs new file mode 100644 index 000000000..be7f9a272 --- /dev/null +++ b/sdks/full/rust-cli/src/models/admin_clusters_list_servers_response.rs @@ -0,0 +1,28 @@ +/* + * Rivet API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * Generated by: https://openapi-generator.tech + */ + + + + +#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] +pub struct AdminClustersListServersResponse { + #[serde(rename = "servers")] + pub servers: Vec, +} + +impl AdminClustersListServersResponse { + pub fn new(servers: Vec) -> AdminClustersListServersResponse { + AdminClustersListServersResponse { + servers, + } + } +} + + diff --git a/sdks/full/rust-cli/src/models/admin_pool.rs b/sdks/full/rust-cli/src/models/admin_clusters_pool.rs similarity index 69% rename from sdks/full/rust-cli/src/models/admin_pool.rs rename to sdks/full/rust-cli/src/models/admin_clusters_pool.rs index 280e0fa1e..7c28c2307 100644 --- a/sdks/full/rust-cli/src/models/admin_pool.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_pool.rs @@ -12,22 +12,22 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminPool { +pub struct AdminClustersPool { #[serde(rename = "desired_count")] pub desired_count: i32, #[serde(rename = "drain_timeout")] pub drain_timeout: i64, #[serde(rename = "hardware")] - pub hardware: Vec, + pub hardware: Vec, #[serde(rename = "max_count")] pub max_count: i32, #[serde(rename = "pool_type")] - pub pool_type: crate::models::AdminPoolType, + pub pool_type: crate::models::AdminClustersPoolType, } -impl AdminPool { - pub fn new(desired_count: i32, drain_timeout: i64, hardware: Vec, max_count: i32, pool_type: crate::models::AdminPoolType) -> AdminPool { - AdminPool { +impl AdminClustersPool { + pub fn new(desired_count: i32, drain_timeout: i64, hardware: Vec, max_count: i32, pool_type: crate::models::AdminClustersPoolType) -> AdminClustersPool { + AdminClustersPool { desired_count, drain_timeout, hardware, diff --git a/sdks/full/rust/src/models/admin_pool_type.rs b/sdks/full/rust-cli/src/models/admin_clusters_pool_type.rs similarity index 81% rename from sdks/full/rust/src/models/admin_pool_type.rs rename to sdks/full/rust-cli/src/models/admin_clusters_pool_type.rs index 0bb6980c1..fc5aff675 100644 --- a/sdks/full/rust/src/models/admin_pool_type.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_pool_type.rs @@ -11,7 +11,7 @@ /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] -pub enum AdminPoolType { +pub enum AdminClustersPoolType { #[serde(rename = "job")] Job, #[serde(rename = "gg")] @@ -21,7 +21,7 @@ pub enum AdminPoolType { } -impl ToString for AdminPoolType { +impl ToString for AdminClustersPoolType { fn to_string(&self) -> String { match self { Self::Job => String::from("job"), @@ -31,8 +31,8 @@ impl ToString for AdminPoolType { } } -impl Default for AdminPoolType { - fn default() -> AdminPoolType { +impl Default for AdminClustersPoolType { + fn default() -> AdminClustersPoolType { Self::Job } } diff --git a/sdks/full/rust-cli/src/models/admin_provider.rs b/sdks/full/rust-cli/src/models/admin_clusters_provider.rs similarity index 77% rename from sdks/full/rust-cli/src/models/admin_provider.rs rename to sdks/full/rust-cli/src/models/admin_clusters_provider.rs index d02c02ec0..9700e8e76 100644 --- a/sdks/full/rust-cli/src/models/admin_provider.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_provider.rs @@ -11,13 +11,13 @@ /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] -pub enum AdminProvider { +pub enum AdminClustersProvider { #[serde(rename = "linode")] Linode, } -impl ToString for AdminProvider { +impl ToString for AdminClustersProvider { fn to_string(&self) -> String { match self { Self::Linode => String::from("linode"), @@ -25,8 +25,8 @@ impl ToString for AdminProvider { } } -impl Default for AdminProvider { - fn default() -> AdminProvider { +impl Default for AdminClustersProvider { + fn default() -> AdminClustersProvider { Self::Linode } } diff --git a/sdks/full/rust-cli/src/models/admin_clusters_server.rs b/sdks/full/rust-cli/src/models/admin_clusters_server.rs new file mode 100644 index 000000000..81ac12b02 --- /dev/null +++ b/sdks/full/rust-cli/src/models/admin_clusters_server.rs @@ -0,0 +1,31 @@ +/* + * Rivet API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * Generated by: https://openapi-generator.tech + */ + + + + +#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] +pub struct AdminClustersServer { + #[serde(rename = "public_ip")] + pub public_ip: String, + #[serde(rename = "server_id")] + pub server_id: uuid::Uuid, +} + +impl AdminClustersServer { + pub fn new(public_ip: String, server_id: uuid::Uuid) -> AdminClustersServer { + AdminClustersServer { + public_ip, + server_id, + } + } +} + + diff --git a/sdks/full/rust/src/models/admin_clusters_datacenters_update_request.rs b/sdks/full/rust-cli/src/models/admin_clusters_update_datacenter_request.rs similarity index 67% rename from sdks/full/rust/src/models/admin_clusters_datacenters_update_request.rs rename to sdks/full/rust-cli/src/models/admin_clusters_update_datacenter_request.rs index fb10e610e..3c9e72640 100644 --- a/sdks/full/rust/src/models/admin_clusters_datacenters_update_request.rs +++ b/sdks/full/rust-cli/src/models/admin_clusters_update_datacenter_request.rs @@ -12,22 +12,22 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersUpdateRequest { +pub struct AdminClustersUpdateDatacenterRequest { #[serde(rename = "desired_count", skip_serializing_if = "Option::is_none")] pub desired_count: Option, #[serde(rename = "drain_timeout", skip_serializing_if = "Option::is_none")] pub drain_timeout: Option, #[serde(rename = "hardware")] - pub hardware: Vec, + pub hardware: Vec, #[serde(rename = "max_count", skip_serializing_if = "Option::is_none")] pub max_count: Option, #[serde(rename = "pool_type")] - pub pool_type: crate::models::AdminPoolType, + pub pool_type: crate::models::AdminClustersPoolType, } -impl AdminClustersDatacentersUpdateRequest { - pub fn new(hardware: Vec, pool_type: crate::models::AdminPoolType) -> AdminClustersDatacentersUpdateRequest { - AdminClustersDatacentersUpdateRequest { +impl AdminClustersUpdateDatacenterRequest { + pub fn new(hardware: Vec, pool_type: crate::models::AdminClustersPoolType) -> AdminClustersUpdateDatacenterRequest { + AdminClustersUpdateDatacenterRequest { desired_count: None, drain_timeout: None, hardware, diff --git a/sdks/full/rust-cli/src/models/mod.rs b/sdks/full/rust-cli/src/models/mod.rs index 3ba94935e..c85cc29c9 100644 --- a/sdks/full/rust-cli/src/models/mod.rs +++ b/sdks/full/rust-cli/src/models/mod.rs @@ -1,37 +1,39 @@ -pub mod admin_build_delivery_method; -pub use self::admin_build_delivery_method::AdminBuildDeliveryMethod; -pub mod admin_cluster; -pub use self::admin_cluster::AdminCluster; -pub mod admin_clusters_create_request; -pub use self::admin_clusters_create_request::AdminClustersCreateRequest; -pub mod admin_clusters_create_response; -pub use self::admin_clusters_create_response::AdminClustersCreateResponse; -pub mod admin_clusters_datacenters_create_request; -pub use self::admin_clusters_datacenters_create_request::AdminClustersDatacentersCreateRequest; -pub mod admin_clusters_datacenters_create_response; -pub use self::admin_clusters_datacenters_create_response::AdminClustersDatacentersCreateResponse; -pub mod admin_clusters_datacenters_list_response; -pub use self::admin_clusters_datacenters_list_response::AdminClustersDatacentersListResponse; -pub mod admin_clusters_datacenters_update_request; -pub use self::admin_clusters_datacenters_update_request::AdminClustersDatacentersUpdateRequest; -pub mod admin_clusters_get_server_ips_response; -pub use self::admin_clusters_get_server_ips_response::AdminClustersGetServerIpsResponse; -pub mod admin_clusters_list_response; -pub use self::admin_clusters_list_response::AdminClustersListResponse; -pub mod admin_datacenter; -pub use self::admin_datacenter::AdminDatacenter; -pub mod admin_hardware; -pub use self::admin_hardware::AdminHardware; +pub mod admin_clusters_build_delivery_method; +pub use self::admin_clusters_build_delivery_method::AdminClustersBuildDeliveryMethod; +pub mod admin_clusters_cluster; +pub use self::admin_clusters_cluster::AdminClustersCluster; +pub mod admin_clusters_create_cluster_request; +pub use self::admin_clusters_create_cluster_request::AdminClustersCreateClusterRequest; +pub mod admin_clusters_create_cluster_response; +pub use self::admin_clusters_create_cluster_response::AdminClustersCreateClusterResponse; +pub mod admin_clusters_create_datacenter_request; +pub use self::admin_clusters_create_datacenter_request::AdminClustersCreateDatacenterRequest; +pub mod admin_clusters_create_datacenter_response; +pub use self::admin_clusters_create_datacenter_response::AdminClustersCreateDatacenterResponse; +pub mod admin_clusters_datacenter; +pub use self::admin_clusters_datacenter::AdminClustersDatacenter; +pub mod admin_clusters_hardware; +pub use self::admin_clusters_hardware::AdminClustersHardware; +pub mod admin_clusters_list_clusters_response; +pub use self::admin_clusters_list_clusters_response::AdminClustersListClustersResponse; +pub mod admin_clusters_list_datacenters_response; +pub use self::admin_clusters_list_datacenters_response::AdminClustersListDatacentersResponse; +pub mod admin_clusters_list_servers_response; +pub use self::admin_clusters_list_servers_response::AdminClustersListServersResponse; +pub mod admin_clusters_pool; +pub use self::admin_clusters_pool::AdminClustersPool; +pub mod admin_clusters_pool_type; +pub use self::admin_clusters_pool_type::AdminClustersPoolType; +pub mod admin_clusters_provider; +pub use self::admin_clusters_provider::AdminClustersProvider; +pub mod admin_clusters_server; +pub use self::admin_clusters_server::AdminClustersServer; +pub mod admin_clusters_update_datacenter_request; +pub use self::admin_clusters_update_datacenter_request::AdminClustersUpdateDatacenterRequest; pub mod admin_login_request; pub use self::admin_login_request::AdminLoginRequest; pub mod admin_login_response; pub use self::admin_login_response::AdminLoginResponse; -pub mod admin_pool; -pub use self::admin_pool::AdminPool; -pub mod admin_pool_type; -pub use self::admin_pool_type::AdminPoolType; -pub mod admin_provider; -pub use self::admin_provider::AdminProvider; pub mod auth_complete_status; pub use self::auth_complete_status::AuthCompleteStatus; pub mod auth_identity_complete_access_token_verification_request; diff --git a/sdks/full/rust/.openapi-generator/FILES b/sdks/full/rust/.openapi-generator/FILES index 0afcea178..fa802f51f 100644 --- a/sdks/full/rust/.openapi-generator/FILES +++ b/sdks/full/rust/.openapi-generator/FILES @@ -4,25 +4,27 @@ Cargo.toml README.md docs/AdminApi.md -docs/AdminBuildDeliveryMethod.md -docs/AdminCluster.md docs/AdminClustersApi.md -docs/AdminClustersCreateRequest.md -docs/AdminClustersCreateResponse.md +docs/AdminClustersBuildDeliveryMethod.md +docs/AdminClustersCluster.md +docs/AdminClustersCreateClusterRequest.md +docs/AdminClustersCreateClusterResponse.md +docs/AdminClustersCreateDatacenterRequest.md +docs/AdminClustersCreateDatacenterResponse.md +docs/AdminClustersDatacenter.md docs/AdminClustersDatacentersApi.md -docs/AdminClustersDatacentersCreateRequest.md -docs/AdminClustersDatacentersCreateResponse.md -docs/AdminClustersDatacentersListResponse.md -docs/AdminClustersDatacentersUpdateRequest.md -docs/AdminClustersGetServerIpsResponse.md -docs/AdminClustersListResponse.md -docs/AdminDatacenter.md -docs/AdminHardware.md +docs/AdminClustersHardware.md +docs/AdminClustersListClustersResponse.md +docs/AdminClustersListDatacentersResponse.md +docs/AdminClustersListServersResponse.md +docs/AdminClustersPool.md +docs/AdminClustersPoolType.md +docs/AdminClustersProvider.md +docs/AdminClustersServer.md +docs/AdminClustersServersApi.md +docs/AdminClustersUpdateDatacenterRequest.md docs/AdminLoginRequest.md docs/AdminLoginResponse.md -docs/AdminPool.md -docs/AdminPoolType.md -docs/AdminProvider.md docs/AuthCompleteStatus.md docs/AuthIdentityAccessTokenApi.md docs/AuthIdentityCompleteAccessTokenVerificationRequest.md @@ -350,6 +352,7 @@ git_push.sh src/apis/admin_api.rs src/apis/admin_clusters_api.rs src/apis/admin_clusters_datacenters_api.rs +src/apis/admin_clusters_servers_api.rs src/apis/auth_identity_access_token_api.rs src/apis/auth_identity_email_api.rs src/apis/auth_tokens_api.rs @@ -388,23 +391,24 @@ src/apis/portal_games_api.rs src/apis/provision_datacenters_api.rs src/apis/provision_servers_api.rs src/lib.rs -src/models/admin_build_delivery_method.rs -src/models/admin_cluster.rs -src/models/admin_clusters_create_request.rs -src/models/admin_clusters_create_response.rs -src/models/admin_clusters_datacenters_create_request.rs -src/models/admin_clusters_datacenters_create_response.rs -src/models/admin_clusters_datacenters_list_response.rs -src/models/admin_clusters_datacenters_update_request.rs -src/models/admin_clusters_get_server_ips_response.rs -src/models/admin_clusters_list_response.rs -src/models/admin_datacenter.rs -src/models/admin_hardware.rs +src/models/admin_clusters_build_delivery_method.rs +src/models/admin_clusters_cluster.rs +src/models/admin_clusters_create_cluster_request.rs +src/models/admin_clusters_create_cluster_response.rs +src/models/admin_clusters_create_datacenter_request.rs +src/models/admin_clusters_create_datacenter_response.rs +src/models/admin_clusters_datacenter.rs +src/models/admin_clusters_hardware.rs +src/models/admin_clusters_list_clusters_response.rs +src/models/admin_clusters_list_datacenters_response.rs +src/models/admin_clusters_list_servers_response.rs +src/models/admin_clusters_pool.rs +src/models/admin_clusters_pool_type.rs +src/models/admin_clusters_provider.rs +src/models/admin_clusters_server.rs +src/models/admin_clusters_update_datacenter_request.rs src/models/admin_login_request.rs src/models/admin_login_response.rs -src/models/admin_pool.rs -src/models/admin_pool_type.rs -src/models/admin_provider.rs src/models/auth_complete_status.rs src/models/auth_identity_complete_access_token_verification_request.rs src/models/auth_identity_complete_email_verification_request.rs diff --git a/sdks/full/rust/README.md b/sdks/full/rust/README.md index 4481ea679..3abccb224 100644 --- a/sdks/full/rust/README.md +++ b/sdks/full/rust/README.md @@ -27,12 +27,12 @@ Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *AdminApi* | [**admin_login**](docs/AdminApi.md#admin_login) | **POST** /admin/login | *AdminClustersApi* | [**admin_clusters_create**](docs/AdminClustersApi.md#admin_clusters_create) | **POST** /admin/clusters | -*AdminClustersApi* | [**admin_clusters_get_server_ips**](docs/AdminClustersApi.md#admin_clusters_get_server_ips) | **GET** /admin/clusters/server_ips | *AdminClustersApi* | [**admin_clusters_list**](docs/AdminClustersApi.md#admin_clusters_list) | **GET** /admin/clusters | *AdminClustersDatacentersApi* | [**admin_clusters_datacenters_create**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_create) | **POST** /admin/clusters/{cluster_id}/datacenters | *AdminClustersDatacentersApi* | [**admin_clusters_datacenters_list**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_list) | **GET** /admin/clusters/{cluster_id}/datacenters | -*AdminClustersDatacentersApi* | [**admin_clusters_datacenters_taint**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_taint) | **GET** /admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint | *AdminClustersDatacentersApi* | [**admin_clusters_datacenters_update**](docs/AdminClustersDatacentersApi.md#admin_clusters_datacenters_update) | **PATCH** /admin/clusters/{cluster_id}/datacenters/{datacenter_id} | +*AdminClustersServersApi* | [**admin_clusters_servers_list**](docs/AdminClustersServersApi.md#admin_clusters_servers_list) | **GET** /admin/clusters/{cluster_id}/servers | +*AdminClustersServersApi* | [**admin_clusters_servers_taint**](docs/AdminClustersServersApi.md#admin_clusters_servers_taint) | **POST** /admin/clusters/{cluster_id}/servers/taint | *AuthIdentityAccessTokenApi* | [**auth_identity_access_token_complete_access_token_verification**](docs/AuthIdentityAccessTokenApi.md#auth_identity_access_token_complete_access_token_verification) | **POST** /auth/identity/access-token/complete-verification | *AuthIdentityEmailApi* | [**auth_identity_email_complete_email_verification**](docs/AuthIdentityEmailApi.md#auth_identity_email_complete_email_verification) | **POST** /auth/identity/email/complete-verification | *AuthIdentityEmailApi* | [**auth_identity_email_start_email_verification**](docs/AuthIdentityEmailApi.md#auth_identity_email_start_email_verification) | **POST** /auth/identity/email/start-verification | @@ -169,23 +169,24 @@ Class | Method | HTTP request | Description ## Documentation For Models - - [AdminBuildDeliveryMethod](docs/AdminBuildDeliveryMethod.md) - - [AdminCluster](docs/AdminCluster.md) - - [AdminClustersCreateRequest](docs/AdminClustersCreateRequest.md) - - [AdminClustersCreateResponse](docs/AdminClustersCreateResponse.md) - - [AdminClustersDatacentersCreateRequest](docs/AdminClustersDatacentersCreateRequest.md) - - [AdminClustersDatacentersCreateResponse](docs/AdminClustersDatacentersCreateResponse.md) - - [AdminClustersDatacentersListResponse](docs/AdminClustersDatacentersListResponse.md) - - [AdminClustersDatacentersUpdateRequest](docs/AdminClustersDatacentersUpdateRequest.md) - - [AdminClustersGetServerIpsResponse](docs/AdminClustersGetServerIpsResponse.md) - - [AdminClustersListResponse](docs/AdminClustersListResponse.md) - - [AdminDatacenter](docs/AdminDatacenter.md) - - [AdminHardware](docs/AdminHardware.md) + - [AdminClustersBuildDeliveryMethod](docs/AdminClustersBuildDeliveryMethod.md) + - [AdminClustersCluster](docs/AdminClustersCluster.md) + - [AdminClustersCreateClusterRequest](docs/AdminClustersCreateClusterRequest.md) + - [AdminClustersCreateClusterResponse](docs/AdminClustersCreateClusterResponse.md) + - [AdminClustersCreateDatacenterRequest](docs/AdminClustersCreateDatacenterRequest.md) + - [AdminClustersCreateDatacenterResponse](docs/AdminClustersCreateDatacenterResponse.md) + - [AdminClustersDatacenter](docs/AdminClustersDatacenter.md) + - [AdminClustersHardware](docs/AdminClustersHardware.md) + - [AdminClustersListClustersResponse](docs/AdminClustersListClustersResponse.md) + - [AdminClustersListDatacentersResponse](docs/AdminClustersListDatacentersResponse.md) + - [AdminClustersListServersResponse](docs/AdminClustersListServersResponse.md) + - [AdminClustersPool](docs/AdminClustersPool.md) + - [AdminClustersPoolType](docs/AdminClustersPoolType.md) + - [AdminClustersProvider](docs/AdminClustersProvider.md) + - [AdminClustersServer](docs/AdminClustersServer.md) + - [AdminClustersUpdateDatacenterRequest](docs/AdminClustersUpdateDatacenterRequest.md) - [AdminLoginRequest](docs/AdminLoginRequest.md) - [AdminLoginResponse](docs/AdminLoginResponse.md) - - [AdminPool](docs/AdminPool.md) - - [AdminPoolType](docs/AdminPoolType.md) - - [AdminProvider](docs/AdminProvider.md) - [AuthCompleteStatus](docs/AuthCompleteStatus.md) - [AuthIdentityCompleteAccessTokenVerificationRequest](docs/AuthIdentityCompleteAccessTokenVerificationRequest.md) - [AuthIdentityCompleteEmailVerificationRequest](docs/AuthIdentityCompleteEmailVerificationRequest.md) diff --git a/sdks/full/rust/docs/AdminClustersApi.md b/sdks/full/rust/docs/AdminClustersApi.md index c6e9d7966..f27fac554 100644 --- a/sdks/full/rust/docs/AdminClustersApi.md +++ b/sdks/full/rust/docs/AdminClustersApi.md @@ -5,14 +5,13 @@ All URIs are relative to *https://api.rivet.gg* Method | HTTP request | Description ------------- | ------------- | ------------- [**admin_clusters_create**](AdminClustersApi.md#admin_clusters_create) | **POST** /admin/clusters | -[**admin_clusters_get_server_ips**](AdminClustersApi.md#admin_clusters_get_server_ips) | **GET** /admin/clusters/server_ips | [**admin_clusters_list**](AdminClustersApi.md#admin_clusters_list) | **GET** /admin/clusters | ## admin_clusters_create -> crate::models::AdminClustersCreateResponse admin_clusters_create(admin_clusters_create_request) +> crate::models::AdminClustersCreateClusterResponse admin_clusters_create(admin_clusters_create_cluster_request) Create a new cluster @@ -22,11 +21,11 @@ Create a new cluster Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- -**admin_clusters_create_request** | [**AdminClustersCreateRequest**](AdminClustersCreateRequest.md) | | [required] | +**admin_clusters_create_cluster_request** | [**AdminClustersCreateClusterRequest**](AdminClustersCreateClusterRequest.md) | | [required] | ### Return type -[**crate::models::AdminClustersCreateResponse**](AdminClustersCreateResponse.md) +[**crate::models::AdminClustersCreateClusterResponse**](AdminClustersCreateClusterResponse.md) ### Authorization @@ -40,38 +39,9 @@ Name | Type | Description | Required | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## admin_clusters_get_server_ips - -> crate::models::AdminClustersGetServerIpsResponse admin_clusters_get_server_ips(server_id, pool) - - -### Parameters - - -Name | Type | Description | Required | Notes -------------- | ------------- | ------------- | ------------- | ------------- -**server_id** | Option<**uuid::Uuid**> | | | -**pool** | Option<[**AdminPoolType**](.md)> | | | - -### Return type - -[**crate::models::AdminClustersGetServerIpsResponse**](AdminClustersGetServerIpsResponse.md) - -### Authorization - -[BearerAuth](../README.md#BearerAuth) - -### HTTP request headers - -- **Content-Type**: Not defined -- **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - - ## admin_clusters_list -> crate::models::AdminClustersListResponse admin_clusters_list() +> crate::models::AdminClustersListClustersResponse admin_clusters_list() Get clusters @@ -82,7 +52,7 @@ This endpoint does not need any parameter. ### Return type -[**crate::models::AdminClustersListResponse**](AdminClustersListResponse.md) +[**crate::models::AdminClustersListClustersResponse**](AdminClustersListClustersResponse.md) ### Authorization diff --git a/sdks/full/rust/docs/AdminBuildDeliveryMethod.md b/sdks/full/rust/docs/AdminClustersBuildDeliveryMethod.md similarity index 88% rename from sdks/full/rust/docs/AdminBuildDeliveryMethod.md rename to sdks/full/rust/docs/AdminClustersBuildDeliveryMethod.md index 1690a6eef..bc3442736 100644 --- a/sdks/full/rust/docs/AdminBuildDeliveryMethod.md +++ b/sdks/full/rust/docs/AdminClustersBuildDeliveryMethod.md @@ -1,4 +1,4 @@ -# AdminBuildDeliveryMethod +# AdminClustersBuildDeliveryMethod ## Properties diff --git a/sdks/full/rust-cli/docs/AdminCluster.md b/sdks/full/rust/docs/AdminClustersCluster.md similarity index 95% rename from sdks/full/rust-cli/docs/AdminCluster.md rename to sdks/full/rust/docs/AdminClustersCluster.md index bb31eed78..03e3a2c81 100644 --- a/sdks/full/rust-cli/docs/AdminCluster.md +++ b/sdks/full/rust/docs/AdminClustersCluster.md @@ -1,4 +1,4 @@ -# AdminCluster +# AdminClustersCluster ## Properties diff --git a/sdks/full/rust/docs/AdminClustersCreateRequest.md b/sdks/full/rust/docs/AdminClustersCreateClusterRequest.md similarity index 91% rename from sdks/full/rust/docs/AdminClustersCreateRequest.md rename to sdks/full/rust/docs/AdminClustersCreateClusterRequest.md index ed0a244c2..41829e0aa 100644 --- a/sdks/full/rust/docs/AdminClustersCreateRequest.md +++ b/sdks/full/rust/docs/AdminClustersCreateClusterRequest.md @@ -1,4 +1,4 @@ -# AdminClustersCreateRequest +# AdminClustersCreateClusterRequest ## Properties diff --git a/sdks/full/rust-cli/docs/AdminClustersCreateResponse.md b/sdks/full/rust/docs/AdminClustersCreateClusterResponse.md similarity index 89% rename from sdks/full/rust-cli/docs/AdminClustersCreateResponse.md rename to sdks/full/rust/docs/AdminClustersCreateClusterResponse.md index a40beb599..96ef5fa15 100644 --- a/sdks/full/rust-cli/docs/AdminClustersCreateResponse.md +++ b/sdks/full/rust/docs/AdminClustersCreateClusterResponse.md @@ -1,4 +1,4 @@ -# AdminClustersCreateResponse +# AdminClustersCreateClusterResponse ## Properties diff --git a/sdks/full/rust-cli/docs/AdminClustersDatacentersCreateRequest.md b/sdks/full/rust/docs/AdminClustersCreateDatacenterRequest.md similarity index 60% rename from sdks/full/rust-cli/docs/AdminClustersDatacentersCreateRequest.md rename to sdks/full/rust/docs/AdminClustersCreateDatacenterRequest.md index e07034332..0b33f6a93 100644 --- a/sdks/full/rust-cli/docs/AdminClustersDatacentersCreateRequest.md +++ b/sdks/full/rust/docs/AdminClustersCreateDatacenterRequest.md @@ -1,13 +1,13 @@ -# AdminClustersDatacentersCreateRequest +# AdminClustersCreateDatacenterRequest ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**build_delivery_method** | [**crate::models::AdminBuildDeliveryMethod**](AdminBuildDeliveryMethod.md) | | +**build_delivery_method** | [**crate::models::AdminClustersBuildDeliveryMethod**](AdminClustersBuildDeliveryMethod.md) | | **display_name** | **String** | | **name_id** | **String** | | -**provider** | [**crate::models::AdminProvider**](AdminProvider.md) | | +**provider** | [**crate::models::AdminClustersProvider**](AdminClustersProvider.md) | | **provider_datacenter_id** | **String** | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust-cli/docs/AdminClustersDatacentersCreateResponse.md b/sdks/full/rust/docs/AdminClustersCreateDatacenterResponse.md similarity index 89% rename from sdks/full/rust-cli/docs/AdminClustersDatacentersCreateResponse.md rename to sdks/full/rust/docs/AdminClustersCreateDatacenterResponse.md index 2fdf15f20..19bba07cc 100644 --- a/sdks/full/rust-cli/docs/AdminClustersDatacentersCreateResponse.md +++ b/sdks/full/rust/docs/AdminClustersCreateDatacenterResponse.md @@ -1,4 +1,4 @@ -# AdminClustersDatacentersCreateResponse +# AdminClustersCreateDatacenterResponse ## Properties diff --git a/sdks/full/rust/docs/AdminDatacenter.md b/sdks/full/rust/docs/AdminClustersDatacenter.md similarity index 63% rename from sdks/full/rust/docs/AdminDatacenter.md rename to sdks/full/rust/docs/AdminClustersDatacenter.md index 9ca87fa28..bd8100832 100644 --- a/sdks/full/rust/docs/AdminDatacenter.md +++ b/sdks/full/rust/docs/AdminClustersDatacenter.md @@ -1,16 +1,16 @@ -# AdminDatacenter +# AdminClustersDatacenter ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**build_delivery_method** | [**crate::models::AdminBuildDeliveryMethod**](AdminBuildDeliveryMethod.md) | | +**build_delivery_method** | [**crate::models::AdminClustersBuildDeliveryMethod**](AdminClustersBuildDeliveryMethod.md) | | **cluster_id** | [**uuid::Uuid**](uuid::Uuid.md) | | **datacenter_id** | [**uuid::Uuid**](uuid::Uuid.md) | | **display_name** | **String** | | **name_id** | **String** | | -**pools** | [**Vec**](AdminPool.md) | | -**provider** | [**crate::models::AdminProvider**](AdminProvider.md) | | +**pools** | [**Vec**](AdminClustersPool.md) | | +**provider** | [**crate::models::AdminClustersProvider**](AdminClustersProvider.md) | | **provider_api_token** | Option<**String**> | | [optional] **provider_datacenter_id** | **String** | | diff --git a/sdks/full/rust/docs/AdminClustersDatacentersApi.md b/sdks/full/rust/docs/AdminClustersDatacentersApi.md index d97e835e4..5db9f51b2 100644 --- a/sdks/full/rust/docs/AdminClustersDatacentersApi.md +++ b/sdks/full/rust/docs/AdminClustersDatacentersApi.md @@ -6,14 +6,13 @@ Method | HTTP request | Description ------------- | ------------- | ------------- [**admin_clusters_datacenters_create**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_create) | **POST** /admin/clusters/{cluster_id}/datacenters | [**admin_clusters_datacenters_list**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_list) | **GET** /admin/clusters/{cluster_id}/datacenters | -[**admin_clusters_datacenters_taint**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_taint) | **GET** /admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint | [**admin_clusters_datacenters_update**](AdminClustersDatacentersApi.md#admin_clusters_datacenters_update) | **PATCH** /admin/clusters/{cluster_id}/datacenters/{datacenter_id} | ## admin_clusters_datacenters_create -> crate::models::AdminClustersDatacentersCreateResponse admin_clusters_datacenters_create(cluster_id, admin_clusters_datacenters_create_request) +> crate::models::AdminClustersCreateDatacenterResponse admin_clusters_datacenters_create(cluster_id, admin_clusters_create_datacenter_request) ### Parameters @@ -22,11 +21,11 @@ Method | HTTP request | Description Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- **cluster_id** | **uuid::Uuid** | | [required] | -**admin_clusters_datacenters_create_request** | [**AdminClustersDatacentersCreateRequest**](AdminClustersDatacentersCreateRequest.md) | | [required] | +**admin_clusters_create_datacenter_request** | [**AdminClustersCreateDatacenterRequest**](AdminClustersCreateDatacenterRequest.md) | | [required] | ### Return type -[**crate::models::AdminClustersDatacentersCreateResponse**](AdminClustersDatacentersCreateResponse.md) +[**crate::models::AdminClustersCreateDatacenterResponse**](AdminClustersCreateDatacenterResponse.md) ### Authorization @@ -42,7 +41,7 @@ Name | Type | Description | Required | Notes ## admin_clusters_datacenters_list -> crate::models::AdminClustersDatacentersListResponse admin_clusters_datacenters_list(cluster_id) +> crate::models::AdminClustersListDatacentersResponse admin_clusters_datacenters_list(cluster_id) Get datacenters of a cluster @@ -56,36 +55,7 @@ Name | Type | Description | Required | Notes ### Return type -[**crate::models::AdminClustersDatacentersListResponse**](AdminClustersDatacentersListResponse.md) - -### Authorization - -[BearerAuth](../README.md#BearerAuth) - -### HTTP request headers - -- **Content-Type**: Not defined -- **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - - -## admin_clusters_datacenters_taint - -> admin_clusters_datacenters_taint(cluster_id, datacenter_id) - - -### Parameters - - -Name | Type | Description | Required | Notes -------------- | ------------- | ------------- | ------------- | ------------- -**cluster_id** | **uuid::Uuid** | | [required] | -**datacenter_id** | **String** | | [required] | - -### Return type - - (empty response body) +[**crate::models::AdminClustersListDatacentersResponse**](AdminClustersListDatacentersResponse.md) ### Authorization @@ -101,7 +71,7 @@ Name | Type | Description | Required | Notes ## admin_clusters_datacenters_update -> admin_clusters_datacenters_update(cluster_id, datacenter_id, admin_clusters_datacenters_update_request) +> admin_clusters_datacenters_update(cluster_id, datacenter_id, admin_clusters_update_datacenter_request) ### Parameters @@ -111,7 +81,7 @@ Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- **cluster_id** | **uuid::Uuid** | | [required] | **datacenter_id** | **uuid::Uuid** | | [required] | -**admin_clusters_datacenters_update_request** | [**AdminClustersDatacentersUpdateRequest**](AdminClustersDatacentersUpdateRequest.md) | | [required] | +**admin_clusters_update_datacenter_request** | [**AdminClustersUpdateDatacenterRequest**](AdminClustersUpdateDatacenterRequest.md) | | [required] | ### Return type diff --git a/sdks/full/rust/docs/AdminClustersDatacentersListResponse.md b/sdks/full/rust/docs/AdminClustersDatacentersListResponse.md deleted file mode 100644 index c6c2e8f1a..000000000 --- a/sdks/full/rust/docs/AdminClustersDatacentersListResponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# AdminClustersDatacentersListResponse - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**datacenters** | [**Vec**](AdminDatacenter.md) | | - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/sdks/full/rust/docs/AdminClustersGetServerIpsResponse.md b/sdks/full/rust/docs/AdminClustersGetServerIpsResponse.md deleted file mode 100644 index 98c36cf92..000000000 --- a/sdks/full/rust/docs/AdminClustersGetServerIpsResponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# AdminClustersGetServerIpsResponse - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**ips** | **Vec** | | - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/sdks/full/rust-cli/docs/AdminHardware.md b/sdks/full/rust/docs/AdminClustersHardware.md similarity index 92% rename from sdks/full/rust-cli/docs/AdminHardware.md rename to sdks/full/rust/docs/AdminClustersHardware.md index a6bbfe6d2..5c09e0cee 100644 --- a/sdks/full/rust-cli/docs/AdminHardware.md +++ b/sdks/full/rust/docs/AdminClustersHardware.md @@ -1,4 +1,4 @@ -# AdminHardware +# AdminClustersHardware ## Properties diff --git a/sdks/full/rust/docs/AdminClustersListClustersResponse.md b/sdks/full/rust/docs/AdminClustersListClustersResponse.md new file mode 100644 index 000000000..1eee53d06 --- /dev/null +++ b/sdks/full/rust/docs/AdminClustersListClustersResponse.md @@ -0,0 +1,11 @@ +# AdminClustersListClustersResponse + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**clusters** | [**Vec**](AdminClustersCluster.md) | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdks/full/rust/docs/AdminClustersListDatacentersResponse.md b/sdks/full/rust/docs/AdminClustersListDatacentersResponse.md new file mode 100644 index 000000000..75f9d63ae --- /dev/null +++ b/sdks/full/rust/docs/AdminClustersListDatacentersResponse.md @@ -0,0 +1,11 @@ +# AdminClustersListDatacentersResponse + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**datacenters** | [**Vec**](AdminClustersDatacenter.md) | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdks/full/rust/docs/AdminClustersListResponse.md b/sdks/full/rust/docs/AdminClustersListResponse.md deleted file mode 100644 index a6470efd9..000000000 --- a/sdks/full/rust/docs/AdminClustersListResponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# AdminClustersListResponse - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**clusters** | [**Vec**](AdminCluster.md) | | - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/sdks/full/rust/docs/AdminClustersListServersResponse.md b/sdks/full/rust/docs/AdminClustersListServersResponse.md new file mode 100644 index 000000000..e40cafae1 --- /dev/null +++ b/sdks/full/rust/docs/AdminClustersListServersResponse.md @@ -0,0 +1,11 @@ +# AdminClustersListServersResponse + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**servers** | [**Vec**](AdminClustersServer.md) | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdks/full/rust/docs/AdminPool.md b/sdks/full/rust/docs/AdminClustersPool.md similarity index 64% rename from sdks/full/rust/docs/AdminPool.md rename to sdks/full/rust/docs/AdminClustersPool.md index a39d7fb68..617eb2c80 100644 --- a/sdks/full/rust/docs/AdminPool.md +++ b/sdks/full/rust/docs/AdminClustersPool.md @@ -1,4 +1,4 @@ -# AdminPool +# AdminClustersPool ## Properties @@ -6,9 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **desired_count** | **i32** | | **drain_timeout** | **i64** | | -**hardware** | [**Vec**](AdminHardware.md) | | +**hardware** | [**Vec**](AdminClustersHardware.md) | | **max_count** | **i32** | | -**pool_type** | [**crate::models::AdminPoolType**](AdminPoolType.md) | | +**pool_type** | [**crate::models::AdminClustersPoolType**](AdminClustersPoolType.md) | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust-cli/docs/AdminProvider.md b/sdks/full/rust/docs/AdminClustersPoolType.md similarity index 92% rename from sdks/full/rust-cli/docs/AdminProvider.md rename to sdks/full/rust/docs/AdminClustersPoolType.md index 1e4417ca3..8e5de0ca9 100644 --- a/sdks/full/rust-cli/docs/AdminProvider.md +++ b/sdks/full/rust/docs/AdminClustersPoolType.md @@ -1,4 +1,4 @@ -# AdminProvider +# AdminClustersPoolType ## Properties diff --git a/sdks/full/rust-cli/docs/AdminPoolType.md b/sdks/full/rust/docs/AdminClustersProvider.md similarity index 92% rename from sdks/full/rust-cli/docs/AdminPoolType.md rename to sdks/full/rust/docs/AdminClustersProvider.md index fcba04ce3..736c08897 100644 --- a/sdks/full/rust-cli/docs/AdminPoolType.md +++ b/sdks/full/rust/docs/AdminClustersProvider.md @@ -1,4 +1,4 @@ -# AdminPoolType +# AdminClustersProvider ## Properties diff --git a/sdks/full/rust/docs/AdminClustersServer.md b/sdks/full/rust/docs/AdminClustersServer.md new file mode 100644 index 000000000..2219721a9 --- /dev/null +++ b/sdks/full/rust/docs/AdminClustersServer.md @@ -0,0 +1,12 @@ +# AdminClustersServer + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**public_ip** | **String** | | +**server_id** | [**uuid::Uuid**](uuid::Uuid.md) | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdks/full/rust/docs/AdminClustersServersApi.md b/sdks/full/rust/docs/AdminClustersServersApi.md new file mode 100644 index 000000000..820ace864 --- /dev/null +++ b/sdks/full/rust/docs/AdminClustersServersApi.md @@ -0,0 +1,74 @@ +# \AdminClustersServersApi + +All URIs are relative to *https://api.rivet.gg* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**admin_clusters_servers_list**](AdminClustersServersApi.md#admin_clusters_servers_list) | **GET** /admin/clusters/{cluster_id}/servers | +[**admin_clusters_servers_taint**](AdminClustersServersApi.md#admin_clusters_servers_taint) | **POST** /admin/clusters/{cluster_id}/servers/taint | + + + +## admin_clusters_servers_list + +> crate::models::AdminClustersListServersResponse admin_clusters_servers_list(cluster_id, server_id, datacenter, pool, public_ip) + + +### Parameters + + +Name | Type | Description | Required | Notes +------------- | ------------- | ------------- | ------------- | ------------- +**cluster_id** | **uuid::Uuid** | | [required] | +**server_id** | Option<**String**> | | | +**datacenter** | Option<**String**> | | | +**pool** | Option<[**AdminClustersPoolType**](.md)> | | | +**public_ip** | Option<**String**> | | | + +### Return type + +[**crate::models::AdminClustersListServersResponse**](AdminClustersListServersResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +## admin_clusters_servers_taint + +> admin_clusters_servers_taint(cluster_id, server_id, datacenter, pool, public_ip) + + +### Parameters + + +Name | Type | Description | Required | Notes +------------- | ------------- | ------------- | ------------- | ------------- +**cluster_id** | **uuid::Uuid** | | [required] | +**server_id** | Option<**String**> | | | +**datacenter** | Option<**String**> | | | +**pool** | Option<[**AdminClustersPoolType**](.md)> | | | +**public_ip** | Option<**String**> | | | + +### Return type + + (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/sdks/full/rust/docs/AdminClustersDatacentersUpdateRequest.md b/sdks/full/rust/docs/AdminClustersUpdateDatacenterRequest.md similarity index 65% rename from sdks/full/rust/docs/AdminClustersDatacentersUpdateRequest.md rename to sdks/full/rust/docs/AdminClustersUpdateDatacenterRequest.md index f007f7056..5c226d40d 100644 --- a/sdks/full/rust/docs/AdminClustersDatacentersUpdateRequest.md +++ b/sdks/full/rust/docs/AdminClustersUpdateDatacenterRequest.md @@ -1,4 +1,4 @@ -# AdminClustersDatacentersUpdateRequest +# AdminClustersUpdateDatacenterRequest ## Properties @@ -6,9 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **desired_count** | Option<**i32**> | | [optional] **drain_timeout** | Option<**i64**> | | [optional] -**hardware** | [**Vec**](AdminHardware.md) | | +**hardware** | [**Vec**](AdminClustersHardware.md) | | **max_count** | Option<**i32**> | | [optional] -**pool_type** | [**crate::models::AdminPoolType**](AdminPoolType.md) | | +**pool_type** | [**crate::models::AdminClustersPoolType**](AdminClustersPoolType.md) | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdks/full/rust/src/apis/admin_clusters_api.rs b/sdks/full/rust/src/apis/admin_clusters_api.rs index 7f683eb02..8cdf81d02 100644 --- a/sdks/full/rust/src/apis/admin_clusters_api.rs +++ b/sdks/full/rust/src/apis/admin_clusters_api.rs @@ -28,19 +28,6 @@ pub enum AdminClustersCreateError { UnknownValue(serde_json::Value), } -/// struct for typed errors of method [`admin_clusters_get_server_ips`] -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum AdminClustersGetServerIpsError { - Status400(crate::models::ErrorBody), - Status403(crate::models::ErrorBody), - Status404(crate::models::ErrorBody), - Status408(crate::models::ErrorBody), - Status429(crate::models::ErrorBody), - Status500(crate::models::ErrorBody), - UnknownValue(serde_json::Value), -} - /// struct for typed errors of method [`admin_clusters_list`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -56,7 +43,7 @@ pub enum AdminClustersListError { /// Create a new cluster -pub async fn admin_clusters_create(configuration: &configuration::Configuration, admin_clusters_create_request: crate::models::AdminClustersCreateRequest) -> Result> { +pub async fn admin_clusters_create(configuration: &configuration::Configuration, admin_clusters_create_cluster_request: crate::models::AdminClustersCreateClusterRequest) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -70,7 +57,7 @@ pub async fn admin_clusters_create(configuration: &configuration::Configuration, if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); }; - local_var_req_builder = local_var_req_builder.json(&admin_clusters_create_request); + local_var_req_builder = local_var_req_builder.json(&admin_clusters_create_cluster_request); let local_var_req = local_var_req_builder.build()?; let local_var_resp = local_var_client.execute(local_var_req).await?; @@ -87,44 +74,8 @@ pub async fn admin_clusters_create(configuration: &configuration::Configuration, } } -pub async fn admin_clusters_get_server_ips(configuration: &configuration::Configuration, server_id: Option<&str>, pool: Option) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/admin/clusters/server_ips", local_var_configuration.base_path); - let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_str) = server_id { - local_var_req_builder = local_var_req_builder.query(&[("server_id", &local_var_str.to_string())]); - } - if let Some(ref local_var_str) = pool { - local_var_req_builder = local_var_req_builder.query(&[("pool", &local_var_str.to_string())]); - } - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; - Err(Error::ResponseError(local_var_error)) - } -} - /// Get clusters -pub async fn admin_clusters_list(configuration: &configuration::Configuration, ) -> Result> { +pub async fn admin_clusters_list(configuration: &configuration::Configuration, ) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; diff --git a/sdks/full/rust/src/apis/admin_clusters_datacenters_api.rs b/sdks/full/rust/src/apis/admin_clusters_datacenters_api.rs index 3d94683d5..ca2129b89 100644 --- a/sdks/full/rust/src/apis/admin_clusters_datacenters_api.rs +++ b/sdks/full/rust/src/apis/admin_clusters_datacenters_api.rs @@ -41,19 +41,6 @@ pub enum AdminClustersDatacentersListError { UnknownValue(serde_json::Value), } -/// struct for typed errors of method [`admin_clusters_datacenters_taint`] -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum AdminClustersDatacentersTaintError { - Status400(crate::models::ErrorBody), - Status403(crate::models::ErrorBody), - Status404(crate::models::ErrorBody), - Status408(crate::models::ErrorBody), - Status429(crate::models::ErrorBody), - Status500(crate::models::ErrorBody), - UnknownValue(serde_json::Value), -} - /// struct for typed errors of method [`admin_clusters_datacenters_update`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -68,7 +55,7 @@ pub enum AdminClustersDatacentersUpdateError { } -pub async fn admin_clusters_datacenters_create(configuration: &configuration::Configuration, cluster_id: &str, admin_clusters_datacenters_create_request: crate::models::AdminClustersDatacentersCreateRequest) -> Result> { +pub async fn admin_clusters_datacenters_create(configuration: &configuration::Configuration, cluster_id: &str, admin_clusters_create_datacenter_request: crate::models::AdminClustersCreateDatacenterRequest) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -82,7 +69,7 @@ pub async fn admin_clusters_datacenters_create(configuration: &configuration::Co if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); }; - local_var_req_builder = local_var_req_builder.json(&admin_clusters_datacenters_create_request); + local_var_req_builder = local_var_req_builder.json(&admin_clusters_create_datacenter_request); let local_var_req = local_var_req_builder.build()?; let local_var_resp = local_var_client.execute(local_var_req).await?; @@ -100,7 +87,7 @@ pub async fn admin_clusters_datacenters_create(configuration: &configuration::Co } /// Get datacenters of a cluster -pub async fn admin_clusters_datacenters_list(configuration: &configuration::Configuration, cluster_id: &str) -> Result> { +pub async fn admin_clusters_datacenters_list(configuration: &configuration::Configuration, cluster_id: &str) -> Result> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -130,37 +117,7 @@ pub async fn admin_clusters_datacenters_list(configuration: &configuration::Conf } } -pub async fn admin_clusters_datacenters_taint(configuration: &configuration::Configuration, cluster_id: &str, datacenter_id: &str) -> Result<(), Error> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/admin/clusters/{cluster_id}/datacenters/{datacenter_id}/taint", local_var_configuration.base_path, cluster_id=crate::apis::urlencode(cluster_id), datacenter_id=crate::apis::urlencode(datacenter_id)); - let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - Ok(()) - } else { - let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn admin_clusters_datacenters_update(configuration: &configuration::Configuration, cluster_id: &str, datacenter_id: &str, admin_clusters_datacenters_update_request: crate::models::AdminClustersDatacentersUpdateRequest) -> Result<(), Error> { +pub async fn admin_clusters_datacenters_update(configuration: &configuration::Configuration, cluster_id: &str, datacenter_id: &str, admin_clusters_update_datacenter_request: crate::models::AdminClustersUpdateDatacenterRequest) -> Result<(), Error> { let local_var_configuration = configuration; let local_var_client = &local_var_configuration.client; @@ -174,7 +131,7 @@ pub async fn admin_clusters_datacenters_update(configuration: &configuration::Co if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); }; - local_var_req_builder = local_var_req_builder.json(&admin_clusters_datacenters_update_request); + local_var_req_builder = local_var_req_builder.json(&admin_clusters_update_datacenter_request); let local_var_req = local_var_req_builder.build()?; let local_var_resp = local_var_client.execute(local_var_req).await?; diff --git a/sdks/full/rust/src/apis/admin_clusters_servers_api.rs b/sdks/full/rust/src/apis/admin_clusters_servers_api.rs new file mode 100644 index 000000000..7c0e2c1f3 --- /dev/null +++ b/sdks/full/rust/src/apis/admin_clusters_servers_api.rs @@ -0,0 +1,128 @@ +/* + * Rivet API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * Generated by: https://openapi-generator.tech + */ + + +use reqwest; + +use crate::apis::ResponseContent; +use super::{Error, configuration}; + + +/// struct for typed errors of method [`admin_clusters_servers_list`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum AdminClustersServersListError { + Status400(crate::models::ErrorBody), + Status403(crate::models::ErrorBody), + Status404(crate::models::ErrorBody), + Status408(crate::models::ErrorBody), + Status429(crate::models::ErrorBody), + Status500(crate::models::ErrorBody), + UnknownValue(serde_json::Value), +} + +/// struct for typed errors of method [`admin_clusters_servers_taint`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum AdminClustersServersTaintError { + Status400(crate::models::ErrorBody), + Status403(crate::models::ErrorBody), + Status404(crate::models::ErrorBody), + Status408(crate::models::ErrorBody), + Status429(crate::models::ErrorBody), + Status500(crate::models::ErrorBody), + UnknownValue(serde_json::Value), +} + + +pub async fn admin_clusters_servers_list(configuration: &configuration::Configuration, cluster_id: &str, server_id: Option<&str>, datacenter: Option<&str>, pool: Option, public_ip: Option<&str>) -> Result> { + let local_var_configuration = configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/admin/clusters/{cluster_id}/servers", local_var_configuration.base_path, cluster_id=crate::apis::urlencode(cluster_id)); + let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_str) = server_id { + local_var_req_builder = local_var_req_builder.query(&[("server_id", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = datacenter { + local_var_req_builder = local_var_req_builder.query(&[("datacenter", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = pool { + local_var_req_builder = local_var_req_builder.query(&[("pool", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = public_ip { + local_var_req_builder = local_var_req_builder.query(&[("public_ip", &local_var_str.to_string())]); + } + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; + Err(Error::ResponseError(local_var_error)) + } +} + +pub async fn admin_clusters_servers_taint(configuration: &configuration::Configuration, cluster_id: &str, server_id: Option<&str>, datacenter: Option<&str>, pool: Option, public_ip: Option<&str>) -> Result<(), Error> { + let local_var_configuration = configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/admin/clusters/{cluster_id}/servers/taint", local_var_configuration.base_path, cluster_id=crate::apis::urlencode(cluster_id)); + let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_str) = server_id { + local_var_req_builder = local_var_req_builder.query(&[("server_id", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = datacenter { + local_var_req_builder = local_var_req_builder.query(&[("datacenter", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = pool { + local_var_req_builder = local_var_req_builder.query(&[("pool", &local_var_str.to_string())]); + } + if let Some(ref local_var_str) = public_ip { + local_var_req_builder = local_var_req_builder.query(&[("public_ip", &local_var_str.to_string())]); + } + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + Ok(()) + } else { + let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity }; + Err(Error::ResponseError(local_var_error)) + } +} + diff --git a/sdks/full/rust/src/apis/mod.rs b/sdks/full/rust/src/apis/mod.rs index 112d34ab1..e6401fd8f 100644 --- a/sdks/full/rust/src/apis/mod.rs +++ b/sdks/full/rust/src/apis/mod.rs @@ -93,6 +93,7 @@ pub fn parse_deep_object(prefix: &str, value: &serde_json::Value) -> Vec<(String pub mod admin_api; pub mod admin_clusters_api; pub mod admin_clusters_datacenters_api; +pub mod admin_clusters_servers_api; pub mod auth_identity_access_token_api; pub mod auth_identity_email_api; pub mod auth_tokens_api; diff --git a/sdks/full/rust/src/models/admin_build_delivery_method.rs b/sdks/full/rust/src/models/admin_clusters_build_delivery_method.rs similarity index 77% rename from sdks/full/rust/src/models/admin_build_delivery_method.rs rename to sdks/full/rust/src/models/admin_clusters_build_delivery_method.rs index 2067fee6d..08876954c 100644 --- a/sdks/full/rust/src/models/admin_build_delivery_method.rs +++ b/sdks/full/rust/src/models/admin_clusters_build_delivery_method.rs @@ -11,7 +11,7 @@ /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] -pub enum AdminBuildDeliveryMethod { +pub enum AdminClustersBuildDeliveryMethod { #[serde(rename = "traffic_server")] TrafficServer, #[serde(rename = "s3_direct")] @@ -19,7 +19,7 @@ pub enum AdminBuildDeliveryMethod { } -impl ToString for AdminBuildDeliveryMethod { +impl ToString for AdminClustersBuildDeliveryMethod { fn to_string(&self) -> String { match self { Self::TrafficServer => String::from("traffic_server"), @@ -28,8 +28,8 @@ impl ToString for AdminBuildDeliveryMethod { } } -impl Default for AdminBuildDeliveryMethod { - fn default() -> AdminBuildDeliveryMethod { +impl Default for AdminClustersBuildDeliveryMethod { + fn default() -> AdminClustersBuildDeliveryMethod { Self::TrafficServer } } diff --git a/sdks/full/rust-cli/src/models/admin_cluster.rs b/sdks/full/rust/src/models/admin_clusters_cluster.rs similarity index 86% rename from sdks/full/rust-cli/src/models/admin_cluster.rs rename to sdks/full/rust/src/models/admin_clusters_cluster.rs index 541fff3f6..25ef74db3 100644 --- a/sdks/full/rust-cli/src/models/admin_cluster.rs +++ b/sdks/full/rust/src/models/admin_clusters_cluster.rs @@ -12,7 +12,7 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminCluster { +pub struct AdminClustersCluster { #[serde(rename = "cluster_id")] pub cluster_id: uuid::Uuid, #[serde(rename = "create_ts")] @@ -23,9 +23,9 @@ pub struct AdminCluster { pub owner_team_id: Option, } -impl AdminCluster { - pub fn new(cluster_id: uuid::Uuid, create_ts: i64, name_id: String) -> AdminCluster { - AdminCluster { +impl AdminClustersCluster { + pub fn new(cluster_id: uuid::Uuid, create_ts: i64, name_id: String) -> AdminClustersCluster { + AdminClustersCluster { cluster_id, create_ts, name_id, diff --git a/sdks/full/rust-cli/src/models/admin_clusters_create_request.rs b/sdks/full/rust/src/models/admin_clusters_create_cluster_request.rs similarity index 73% rename from sdks/full/rust-cli/src/models/admin_clusters_create_request.rs rename to sdks/full/rust/src/models/admin_clusters_create_cluster_request.rs index 41800c976..b4c6f6782 100644 --- a/sdks/full/rust-cli/src/models/admin_clusters_create_request.rs +++ b/sdks/full/rust/src/models/admin_clusters_create_cluster_request.rs @@ -12,16 +12,16 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersCreateRequest { +pub struct AdminClustersCreateClusterRequest { #[serde(rename = "name_id")] pub name_id: String, #[serde(rename = "owner_team_id", skip_serializing_if = "Option::is_none")] pub owner_team_id: Option, } -impl AdminClustersCreateRequest { - pub fn new(name_id: String) -> AdminClustersCreateRequest { - AdminClustersCreateRequest { +impl AdminClustersCreateClusterRequest { + pub fn new(name_id: String) -> AdminClustersCreateClusterRequest { + AdminClustersCreateClusterRequest { name_id, owner_team_id: None, } diff --git a/sdks/full/rust-cli/src/models/admin_clusters_create_response.rs b/sdks/full/rust/src/models/admin_clusters_create_cluster_response.rs similarity index 66% rename from sdks/full/rust-cli/src/models/admin_clusters_create_response.rs rename to sdks/full/rust/src/models/admin_clusters_create_cluster_response.rs index 60276ba61..d1ad11319 100644 --- a/sdks/full/rust-cli/src/models/admin_clusters_create_response.rs +++ b/sdks/full/rust/src/models/admin_clusters_create_cluster_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersCreateResponse { +pub struct AdminClustersCreateClusterResponse { #[serde(rename = "cluster_id")] pub cluster_id: uuid::Uuid, } -impl AdminClustersCreateResponse { - pub fn new(cluster_id: uuid::Uuid) -> AdminClustersCreateResponse { - AdminClustersCreateResponse { +impl AdminClustersCreateClusterResponse { + pub fn new(cluster_id: uuid::Uuid) -> AdminClustersCreateClusterResponse { + AdminClustersCreateClusterResponse { cluster_id, } } diff --git a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_create_request.rs b/sdks/full/rust/src/models/admin_clusters_create_datacenter_request.rs similarity index 59% rename from sdks/full/rust-cli/src/models/admin_clusters_datacenters_create_request.rs rename to sdks/full/rust/src/models/admin_clusters_create_datacenter_request.rs index 01a6c6ecb..c539d1ffc 100644 --- a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_create_request.rs +++ b/sdks/full/rust/src/models/admin_clusters_create_datacenter_request.rs @@ -12,22 +12,22 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersCreateRequest { +pub struct AdminClustersCreateDatacenterRequest { #[serde(rename = "build_delivery_method")] - pub build_delivery_method: crate::models::AdminBuildDeliveryMethod, + pub build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, #[serde(rename = "display_name")] pub display_name: String, #[serde(rename = "name_id")] pub name_id: String, #[serde(rename = "provider")] - pub provider: crate::models::AdminProvider, + pub provider: crate::models::AdminClustersProvider, #[serde(rename = "provider_datacenter_id")] pub provider_datacenter_id: String, } -impl AdminClustersDatacentersCreateRequest { - pub fn new(build_delivery_method: crate::models::AdminBuildDeliveryMethod, display_name: String, name_id: String, provider: crate::models::AdminProvider, provider_datacenter_id: String) -> AdminClustersDatacentersCreateRequest { - AdminClustersDatacentersCreateRequest { +impl AdminClustersCreateDatacenterRequest { + pub fn new(build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, display_name: String, name_id: String, provider: crate::models::AdminClustersProvider, provider_datacenter_id: String) -> AdminClustersCreateDatacenterRequest { + AdminClustersCreateDatacenterRequest { build_delivery_method, display_name, name_id, diff --git a/sdks/full/rust/src/models/admin_clusters_datacenters_create_response.rs b/sdks/full/rust/src/models/admin_clusters_create_datacenter_response.rs similarity index 64% rename from sdks/full/rust/src/models/admin_clusters_datacenters_create_response.rs rename to sdks/full/rust/src/models/admin_clusters_create_datacenter_response.rs index 8cdf104f9..8db217e87 100644 --- a/sdks/full/rust/src/models/admin_clusters_datacenters_create_response.rs +++ b/sdks/full/rust/src/models/admin_clusters_create_datacenter_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersCreateResponse { +pub struct AdminClustersCreateDatacenterResponse { #[serde(rename = "datacenter_id")] pub datacenter_id: uuid::Uuid, } -impl AdminClustersDatacentersCreateResponse { - pub fn new(datacenter_id: uuid::Uuid) -> AdminClustersDatacentersCreateResponse { - AdminClustersDatacentersCreateResponse { +impl AdminClustersCreateDatacenterResponse { + pub fn new(datacenter_id: uuid::Uuid) -> AdminClustersCreateDatacenterResponse { + AdminClustersCreateDatacenterResponse { datacenter_id, } } diff --git a/sdks/full/rust-cli/src/models/admin_datacenter.rs b/sdks/full/rust/src/models/admin_clusters_datacenter.rs similarity index 65% rename from sdks/full/rust-cli/src/models/admin_datacenter.rs rename to sdks/full/rust/src/models/admin_clusters_datacenter.rs index 4f36a3e4b..80318b227 100644 --- a/sdks/full/rust-cli/src/models/admin_datacenter.rs +++ b/sdks/full/rust/src/models/admin_clusters_datacenter.rs @@ -12,9 +12,9 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminDatacenter { +pub struct AdminClustersDatacenter { #[serde(rename = "build_delivery_method")] - pub build_delivery_method: crate::models::AdminBuildDeliveryMethod, + pub build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, #[serde(rename = "cluster_id")] pub cluster_id: uuid::Uuid, #[serde(rename = "datacenter_id")] @@ -24,18 +24,18 @@ pub struct AdminDatacenter { #[serde(rename = "name_id")] pub name_id: String, #[serde(rename = "pools")] - pub pools: Vec, + pub pools: Vec, #[serde(rename = "provider")] - pub provider: crate::models::AdminProvider, + pub provider: crate::models::AdminClustersProvider, #[serde(rename = "provider_api_token", skip_serializing_if = "Option::is_none")] pub provider_api_token: Option, #[serde(rename = "provider_datacenter_id")] pub provider_datacenter_id: String, } -impl AdminDatacenter { - pub fn new(build_delivery_method: crate::models::AdminBuildDeliveryMethod, cluster_id: uuid::Uuid, datacenter_id: uuid::Uuid, display_name: String, name_id: String, pools: Vec, provider: crate::models::AdminProvider, provider_datacenter_id: String) -> AdminDatacenter { - AdminDatacenter { +impl AdminClustersDatacenter { + pub fn new(build_delivery_method: crate::models::AdminClustersBuildDeliveryMethod, cluster_id: uuid::Uuid, datacenter_id: uuid::Uuid, display_name: String, name_id: String, pools: Vec, provider: crate::models::AdminClustersProvider, provider_datacenter_id: String) -> AdminClustersDatacenter { + AdminClustersDatacenter { build_delivery_method, cluster_id, datacenter_id, diff --git a/sdks/full/rust/src/models/admin_clusters_get_server_ips_response.rs b/sdks/full/rust/src/models/admin_clusters_get_server_ips_response.rs deleted file mode 100644 index acf76e6c1..000000000 --- a/sdks/full/rust/src/models/admin_clusters_get_server_ips_response.rs +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Rivet API - * - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.0.1 - * - * Generated by: https://openapi-generator.tech - */ - - - - -#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersGetServerIpsResponse { - #[serde(rename = "ips")] - pub ips: Vec, -} - -impl AdminClustersGetServerIpsResponse { - pub fn new(ips: Vec) -> AdminClustersGetServerIpsResponse { - AdminClustersGetServerIpsResponse { - ips, - } - } -} - - diff --git a/sdks/full/rust/src/models/admin_hardware.rs b/sdks/full/rust/src/models/admin_clusters_hardware.rs similarity index 72% rename from sdks/full/rust/src/models/admin_hardware.rs rename to sdks/full/rust/src/models/admin_clusters_hardware.rs index f88e2fbe5..c53b0f494 100644 --- a/sdks/full/rust/src/models/admin_hardware.rs +++ b/sdks/full/rust/src/models/admin_clusters_hardware.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminHardware { +pub struct AdminClustersHardware { #[serde(rename = "provider_hardware")] pub provider_hardware: String, } -impl AdminHardware { - pub fn new(provider_hardware: String) -> AdminHardware { - AdminHardware { +impl AdminClustersHardware { + pub fn new(provider_hardware: String) -> AdminClustersHardware { + AdminClustersHardware { provider_hardware, } } diff --git a/sdks/full/rust-cli/src/models/admin_clusters_list_response.rs b/sdks/full/rust/src/models/admin_clusters_list_clusters_response.rs similarity index 56% rename from sdks/full/rust-cli/src/models/admin_clusters_list_response.rs rename to sdks/full/rust/src/models/admin_clusters_list_clusters_response.rs index 21a0c57ee..285aabf7c 100644 --- a/sdks/full/rust-cli/src/models/admin_clusters_list_response.rs +++ b/sdks/full/rust/src/models/admin_clusters_list_clusters_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersListResponse { +pub struct AdminClustersListClustersResponse { #[serde(rename = "clusters")] - pub clusters: Vec, + pub clusters: Vec, } -impl AdminClustersListResponse { - pub fn new(clusters: Vec) -> AdminClustersListResponse { - AdminClustersListResponse { +impl AdminClustersListClustersResponse { + pub fn new(clusters: Vec) -> AdminClustersListClustersResponse { + AdminClustersListClustersResponse { clusters, } } diff --git a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_list_response.rs b/sdks/full/rust/src/models/admin_clusters_list_datacenters_response.rs similarity index 54% rename from sdks/full/rust-cli/src/models/admin_clusters_datacenters_list_response.rs rename to sdks/full/rust/src/models/admin_clusters_list_datacenters_response.rs index fa31fc07c..95ebb3cd8 100644 --- a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_list_response.rs +++ b/sdks/full/rust/src/models/admin_clusters_list_datacenters_response.rs @@ -12,14 +12,14 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersListResponse { +pub struct AdminClustersListDatacentersResponse { #[serde(rename = "datacenters")] - pub datacenters: Vec, + pub datacenters: Vec, } -impl AdminClustersDatacentersListResponse { - pub fn new(datacenters: Vec) -> AdminClustersDatacentersListResponse { - AdminClustersDatacentersListResponse { +impl AdminClustersListDatacentersResponse { + pub fn new(datacenters: Vec) -> AdminClustersListDatacentersResponse { + AdminClustersListDatacentersResponse { datacenters, } } diff --git a/sdks/full/rust/src/models/admin_clusters_list_servers_response.rs b/sdks/full/rust/src/models/admin_clusters_list_servers_response.rs new file mode 100644 index 000000000..be7f9a272 --- /dev/null +++ b/sdks/full/rust/src/models/admin_clusters_list_servers_response.rs @@ -0,0 +1,28 @@ +/* + * Rivet API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * Generated by: https://openapi-generator.tech + */ + + + + +#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] +pub struct AdminClustersListServersResponse { + #[serde(rename = "servers")] + pub servers: Vec, +} + +impl AdminClustersListServersResponse { + pub fn new(servers: Vec) -> AdminClustersListServersResponse { + AdminClustersListServersResponse { + servers, + } + } +} + + diff --git a/sdks/full/rust/src/models/admin_pool.rs b/sdks/full/rust/src/models/admin_clusters_pool.rs similarity index 69% rename from sdks/full/rust/src/models/admin_pool.rs rename to sdks/full/rust/src/models/admin_clusters_pool.rs index 280e0fa1e..7c28c2307 100644 --- a/sdks/full/rust/src/models/admin_pool.rs +++ b/sdks/full/rust/src/models/admin_clusters_pool.rs @@ -12,22 +12,22 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminPool { +pub struct AdminClustersPool { #[serde(rename = "desired_count")] pub desired_count: i32, #[serde(rename = "drain_timeout")] pub drain_timeout: i64, #[serde(rename = "hardware")] - pub hardware: Vec, + pub hardware: Vec, #[serde(rename = "max_count")] pub max_count: i32, #[serde(rename = "pool_type")] - pub pool_type: crate::models::AdminPoolType, + pub pool_type: crate::models::AdminClustersPoolType, } -impl AdminPool { - pub fn new(desired_count: i32, drain_timeout: i64, hardware: Vec, max_count: i32, pool_type: crate::models::AdminPoolType) -> AdminPool { - AdminPool { +impl AdminClustersPool { + pub fn new(desired_count: i32, drain_timeout: i64, hardware: Vec, max_count: i32, pool_type: crate::models::AdminClustersPoolType) -> AdminClustersPool { + AdminClustersPool { desired_count, drain_timeout, hardware, diff --git a/sdks/full/rust-cli/src/models/admin_pool_type.rs b/sdks/full/rust/src/models/admin_clusters_pool_type.rs similarity index 81% rename from sdks/full/rust-cli/src/models/admin_pool_type.rs rename to sdks/full/rust/src/models/admin_clusters_pool_type.rs index 0bb6980c1..fc5aff675 100644 --- a/sdks/full/rust-cli/src/models/admin_pool_type.rs +++ b/sdks/full/rust/src/models/admin_clusters_pool_type.rs @@ -11,7 +11,7 @@ /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] -pub enum AdminPoolType { +pub enum AdminClustersPoolType { #[serde(rename = "job")] Job, #[serde(rename = "gg")] @@ -21,7 +21,7 @@ pub enum AdminPoolType { } -impl ToString for AdminPoolType { +impl ToString for AdminClustersPoolType { fn to_string(&self) -> String { match self { Self::Job => String::from("job"), @@ -31,8 +31,8 @@ impl ToString for AdminPoolType { } } -impl Default for AdminPoolType { - fn default() -> AdminPoolType { +impl Default for AdminClustersPoolType { + fn default() -> AdminClustersPoolType { Self::Job } } diff --git a/sdks/full/rust/src/models/admin_provider.rs b/sdks/full/rust/src/models/admin_clusters_provider.rs similarity index 77% rename from sdks/full/rust/src/models/admin_provider.rs rename to sdks/full/rust/src/models/admin_clusters_provider.rs index d02c02ec0..9700e8e76 100644 --- a/sdks/full/rust/src/models/admin_provider.rs +++ b/sdks/full/rust/src/models/admin_clusters_provider.rs @@ -11,13 +11,13 @@ /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] -pub enum AdminProvider { +pub enum AdminClustersProvider { #[serde(rename = "linode")] Linode, } -impl ToString for AdminProvider { +impl ToString for AdminClustersProvider { fn to_string(&self) -> String { match self { Self::Linode => String::from("linode"), @@ -25,8 +25,8 @@ impl ToString for AdminProvider { } } -impl Default for AdminProvider { - fn default() -> AdminProvider { +impl Default for AdminClustersProvider { + fn default() -> AdminClustersProvider { Self::Linode } } diff --git a/sdks/full/rust/src/models/admin_clusters_server.rs b/sdks/full/rust/src/models/admin_clusters_server.rs new file mode 100644 index 000000000..81ac12b02 --- /dev/null +++ b/sdks/full/rust/src/models/admin_clusters_server.rs @@ -0,0 +1,31 @@ +/* + * Rivet API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * Generated by: https://openapi-generator.tech + */ + + + + +#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] +pub struct AdminClustersServer { + #[serde(rename = "public_ip")] + pub public_ip: String, + #[serde(rename = "server_id")] + pub server_id: uuid::Uuid, +} + +impl AdminClustersServer { + pub fn new(public_ip: String, server_id: uuid::Uuid) -> AdminClustersServer { + AdminClustersServer { + public_ip, + server_id, + } + } +} + + diff --git a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_update_request.rs b/sdks/full/rust/src/models/admin_clusters_update_datacenter_request.rs similarity index 67% rename from sdks/full/rust-cli/src/models/admin_clusters_datacenters_update_request.rs rename to sdks/full/rust/src/models/admin_clusters_update_datacenter_request.rs index fb10e610e..3c9e72640 100644 --- a/sdks/full/rust-cli/src/models/admin_clusters_datacenters_update_request.rs +++ b/sdks/full/rust/src/models/admin_clusters_update_datacenter_request.rs @@ -12,22 +12,22 @@ #[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] -pub struct AdminClustersDatacentersUpdateRequest { +pub struct AdminClustersUpdateDatacenterRequest { #[serde(rename = "desired_count", skip_serializing_if = "Option::is_none")] pub desired_count: Option, #[serde(rename = "drain_timeout", skip_serializing_if = "Option::is_none")] pub drain_timeout: Option, #[serde(rename = "hardware")] - pub hardware: Vec, + pub hardware: Vec, #[serde(rename = "max_count", skip_serializing_if = "Option::is_none")] pub max_count: Option, #[serde(rename = "pool_type")] - pub pool_type: crate::models::AdminPoolType, + pub pool_type: crate::models::AdminClustersPoolType, } -impl AdminClustersDatacentersUpdateRequest { - pub fn new(hardware: Vec, pool_type: crate::models::AdminPoolType) -> AdminClustersDatacentersUpdateRequest { - AdminClustersDatacentersUpdateRequest { +impl AdminClustersUpdateDatacenterRequest { + pub fn new(hardware: Vec, pool_type: crate::models::AdminClustersPoolType) -> AdminClustersUpdateDatacenterRequest { + AdminClustersUpdateDatacenterRequest { desired_count: None, drain_timeout: None, hardware, diff --git a/sdks/full/rust/src/models/mod.rs b/sdks/full/rust/src/models/mod.rs index 3ba94935e..c85cc29c9 100644 --- a/sdks/full/rust/src/models/mod.rs +++ b/sdks/full/rust/src/models/mod.rs @@ -1,37 +1,39 @@ -pub mod admin_build_delivery_method; -pub use self::admin_build_delivery_method::AdminBuildDeliveryMethod; -pub mod admin_cluster; -pub use self::admin_cluster::AdminCluster; -pub mod admin_clusters_create_request; -pub use self::admin_clusters_create_request::AdminClustersCreateRequest; -pub mod admin_clusters_create_response; -pub use self::admin_clusters_create_response::AdminClustersCreateResponse; -pub mod admin_clusters_datacenters_create_request; -pub use self::admin_clusters_datacenters_create_request::AdminClustersDatacentersCreateRequest; -pub mod admin_clusters_datacenters_create_response; -pub use self::admin_clusters_datacenters_create_response::AdminClustersDatacentersCreateResponse; -pub mod admin_clusters_datacenters_list_response; -pub use self::admin_clusters_datacenters_list_response::AdminClustersDatacentersListResponse; -pub mod admin_clusters_datacenters_update_request; -pub use self::admin_clusters_datacenters_update_request::AdminClustersDatacentersUpdateRequest; -pub mod admin_clusters_get_server_ips_response; -pub use self::admin_clusters_get_server_ips_response::AdminClustersGetServerIpsResponse; -pub mod admin_clusters_list_response; -pub use self::admin_clusters_list_response::AdminClustersListResponse; -pub mod admin_datacenter; -pub use self::admin_datacenter::AdminDatacenter; -pub mod admin_hardware; -pub use self::admin_hardware::AdminHardware; +pub mod admin_clusters_build_delivery_method; +pub use self::admin_clusters_build_delivery_method::AdminClustersBuildDeliveryMethod; +pub mod admin_clusters_cluster; +pub use self::admin_clusters_cluster::AdminClustersCluster; +pub mod admin_clusters_create_cluster_request; +pub use self::admin_clusters_create_cluster_request::AdminClustersCreateClusterRequest; +pub mod admin_clusters_create_cluster_response; +pub use self::admin_clusters_create_cluster_response::AdminClustersCreateClusterResponse; +pub mod admin_clusters_create_datacenter_request; +pub use self::admin_clusters_create_datacenter_request::AdminClustersCreateDatacenterRequest; +pub mod admin_clusters_create_datacenter_response; +pub use self::admin_clusters_create_datacenter_response::AdminClustersCreateDatacenterResponse; +pub mod admin_clusters_datacenter; +pub use self::admin_clusters_datacenter::AdminClustersDatacenter; +pub mod admin_clusters_hardware; +pub use self::admin_clusters_hardware::AdminClustersHardware; +pub mod admin_clusters_list_clusters_response; +pub use self::admin_clusters_list_clusters_response::AdminClustersListClustersResponse; +pub mod admin_clusters_list_datacenters_response; +pub use self::admin_clusters_list_datacenters_response::AdminClustersListDatacentersResponse; +pub mod admin_clusters_list_servers_response; +pub use self::admin_clusters_list_servers_response::AdminClustersListServersResponse; +pub mod admin_clusters_pool; +pub use self::admin_clusters_pool::AdminClustersPool; +pub mod admin_clusters_pool_type; +pub use self::admin_clusters_pool_type::AdminClustersPoolType; +pub mod admin_clusters_provider; +pub use self::admin_clusters_provider::AdminClustersProvider; +pub mod admin_clusters_server; +pub use self::admin_clusters_server::AdminClustersServer; +pub mod admin_clusters_update_datacenter_request; +pub use self::admin_clusters_update_datacenter_request::AdminClustersUpdateDatacenterRequest; pub mod admin_login_request; pub use self::admin_login_request::AdminLoginRequest; pub mod admin_login_response; pub use self::admin_login_response::AdminLoginResponse; -pub mod admin_pool; -pub use self::admin_pool::AdminPool; -pub mod admin_pool_type; -pub use self::admin_pool_type::AdminPoolType; -pub mod admin_provider; -pub use self::admin_provider::AdminProvider; pub mod auth_complete_status; pub use self::auth_complete_status::AuthCompleteStatus; pub mod auth_identity_complete_access_token_verification_request; diff --git a/sdks/full/typescript/archive.tgz b/sdks/full/typescript/archive.tgz index 0e68689cf..5ff9e798e 100644 --- a/sdks/full/typescript/archive.tgz +++ b/sdks/full/typescript/archive.tgz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9926aa1233edffe6ee5a3ae566dd25f938dd8f108efa2b0020b07db425f2d04 -size 639273 +oid sha256:df98dedd6f314dfc391a521f99398a0ba438b238fe461c2c6f3e22a59acf1668 +size 639780 diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/Client.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/Client.ts index d0f6cfdf1..283f65f3e 100644 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/Client.ts +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/Client.ts @@ -9,6 +9,7 @@ import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization"; import * as errors from "../../../../../../errors"; import { Datacenters } from "../resources/datacenters/client/Client"; +import { Servers } from "../resources/servers/client/Client"; export declare namespace Clusters { interface Options { @@ -26,137 +27,6 @@ export declare namespace Clusters { export class Clusters { constructor(protected readonly _options: Clusters.Options = {}) {} - /** - * @throws {@link Rivet.InternalError} - * @throws {@link Rivet.RateLimitError} - * @throws {@link Rivet.ForbiddenError} - * @throws {@link Rivet.UnauthorizedError} - * @throws {@link Rivet.NotFoundError} - * @throws {@link Rivet.BadRequestError} - */ - public async getServerIps( - request: Rivet.admin.clusters.GetServerIpsRequest = {}, - requestOptions?: Clusters.RequestOptions - ): Promise { - const { serverId, pool } = request; - const _queryParams: Record = {}; - if (serverId != null) { - _queryParams["server_id"] = serverId; - } - - if (pool != null) { - _queryParams["pool"] = pool; - } - - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: urlJoin( - (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, - "/admin/clusters/server_ips" - ), - method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - }, - contentType: "application/json", - queryParameters: _queryParams, - timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 180000, - maxRetries: requestOptions?.maxRetries, - }); - if (_response.ok) { - return await serializers.admin.clusters.GetServerIpsResponse.parseOrThrow(_response.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }); - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 500: - throw new Rivet.InternalError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 429: - throw new Rivet.RateLimitError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 403: - throw new Rivet.ForbiddenError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 408: - throw new Rivet.UnauthorizedError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 404: - throw new Rivet.NotFoundError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 400: - throw new Rivet.BadRequestError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - default: - throw new errors.RivetError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.RivetError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - }); - case "timeout": - throw new errors.RivetTimeoutError(); - case "unknown": - throw new errors.RivetError({ - message: _response.error.errorMessage, - }); - } - } - /** * Get clusters * @throws {@link Rivet.InternalError} @@ -166,7 +36,7 @@ export class Clusters { * @throws {@link Rivet.NotFoundError} * @throws {@link Rivet.BadRequestError} */ - public async list(requestOptions?: Clusters.RequestOptions): Promise { + public async list(requestOptions?: Clusters.RequestOptions): Promise { const _response = await (this._options.fetcher ?? core.fetcher)({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, @@ -181,7 +51,7 @@ export class Clusters { maxRetries: requestOptions?.maxRetries, }); if (_response.ok) { - return await serializers.admin.clusters.ListResponse.parseOrThrow(_response.body, { + return await serializers.admin.clusters.ListClustersResponse.parseOrThrow(_response.body, { unrecognizedObjectKeys: "passthrough", allowUnrecognizedUnionMembers: true, allowUnrecognizedEnumValues: true, @@ -285,9 +155,9 @@ export class Clusters { * @throws {@link Rivet.BadRequestError} */ public async create( - request: Rivet.admin.clusters.CreateRequest, + request: Rivet.admin.clusters.CreateClusterRequest, requestOptions?: Clusters.RequestOptions - ): Promise { + ): Promise { const _response = await (this._options.fetcher ?? core.fetcher)({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, @@ -298,14 +168,14 @@ export class Clusters { Authorization: await this._getAuthorizationHeader(), }, contentType: "application/json", - body: await serializers.admin.clusters.CreateRequest.jsonOrThrow(request, { + body: await serializers.admin.clusters.CreateClusterRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip", }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 180000, maxRetries: requestOptions?.maxRetries, }); if (_response.ok) { - return await serializers.admin.clusters.CreateResponse.parseOrThrow(_response.body, { + return await serializers.admin.clusters.CreateClusterResponse.parseOrThrow(_response.body, { unrecognizedObjectKeys: "passthrough", allowUnrecognizedUnionMembers: true, allowUnrecognizedEnumValues: true, @@ -405,6 +275,12 @@ export class Clusters { return (this._datacenters ??= new Datacenters(this._options)); } + protected _servers: Servers | undefined; + + public get servers(): Servers { + return (this._servers ??= new Servers(this._options)); + } + protected async _getAuthorizationHeader() { const bearer = await core.Supplier.get(this._options.token); if (bearer != null) { diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/index.ts index 415726b7f..cb0ff5c3b 100644 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/index.ts +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/index.ts @@ -1 +1 @@ -export * from "./requests"; +export {}; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/GetServerIpsRequest.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/GetServerIpsRequest.ts deleted file mode 100644 index 9be545aa4..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/GetServerIpsRequest.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Rivet from "../../../../../.."; - -export interface GetServerIpsRequest { - serverId?: string; - pool?: Rivet.admin.PoolType; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/index.ts deleted file mode 100644 index e849a980a..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/client/requests/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { GetServerIpsRequest } from "./GetServerIpsRequest"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/common/index.ts similarity index 100% rename from sdks/full/typescript/src/api/resources/admin/resources/common/index.ts rename to sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/common/index.ts diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/client/Client.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/client/Client.ts index f4fb82870..81d799257 100644 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/client/Client.ts +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/client/Client.ts @@ -37,7 +37,7 @@ export class Datacenters { public async list( clusterId: string, requestOptions?: Datacenters.RequestOptions - ): Promise { + ): Promise { const _response = await (this._options.fetcher ?? core.fetcher)({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, @@ -52,7 +52,7 @@ export class Datacenters { maxRetries: requestOptions?.maxRetries, }); if (_response.ok) { - return await serializers.admin.clusters.datacenters.ListResponse.parseOrThrow(_response.body, { + return await serializers.admin.clusters.ListDatacentersResponse.parseOrThrow(_response.body, { unrecognizedObjectKeys: "passthrough", allowUnrecognizedUnionMembers: true, allowUnrecognizedEnumValues: true, @@ -156,9 +156,9 @@ export class Datacenters { */ public async create( clusterId: string, - request: Rivet.admin.clusters.datacenters.CreateRequest, + request: Rivet.admin.clusters.CreateDatacenterRequest, requestOptions?: Datacenters.RequestOptions - ): Promise { + ): Promise { const _response = await (this._options.fetcher ?? core.fetcher)({ url: urlJoin( (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, @@ -169,14 +169,14 @@ export class Datacenters { Authorization: await this._getAuthorizationHeader(), }, contentType: "application/json", - body: await serializers.admin.clusters.datacenters.CreateRequest.jsonOrThrow(request, { + body: await serializers.admin.clusters.CreateDatacenterRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip", }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 180000, maxRetries: requestOptions?.maxRetries, }); if (_response.ok) { - return await serializers.admin.clusters.datacenters.CreateResponse.parseOrThrow(_response.body, { + return await serializers.admin.clusters.CreateDatacenterResponse.parseOrThrow(_response.body, { unrecognizedObjectKeys: "passthrough", allowUnrecognizedUnionMembers: true, allowUnrecognizedEnumValues: true, @@ -281,7 +281,7 @@ export class Datacenters { public async update( clusterId: string, datacenterId: string, - request: Rivet.admin.clusters.datacenters.UpdateRequest, + request: Rivet.admin.clusters.UpdateDatacenterRequest, requestOptions?: Datacenters.RequestOptions ): Promise { const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -294,7 +294,7 @@ export class Datacenters { Authorization: await this._getAuthorizationHeader(), }, contentType: "application/json", - body: await serializers.admin.clusters.datacenters.UpdateRequest.jsonOrThrow(request, { + body: await serializers.admin.clusters.UpdateDatacenterRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip", }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 180000, @@ -389,121 +389,6 @@ export class Datacenters { } } - /** - * @throws {@link Rivet.InternalError} - * @throws {@link Rivet.RateLimitError} - * @throws {@link Rivet.ForbiddenError} - * @throws {@link Rivet.UnauthorizedError} - * @throws {@link Rivet.NotFoundError} - * @throws {@link Rivet.BadRequestError} - */ - public async taint( - clusterId: string, - datacenterId: string, - requestOptions?: Datacenters.RequestOptions - ): Promise { - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: urlJoin( - (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, - `/admin/clusters/${clusterId}/datacenters/${datacenterId}/taint` - ), - method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - }, - contentType: "application/json", - timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 180000, - maxRetries: requestOptions?.maxRetries, - }); - if (_response.ok) { - return; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 500: - throw new Rivet.InternalError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 429: - throw new Rivet.RateLimitError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 403: - throw new Rivet.ForbiddenError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 408: - throw new Rivet.UnauthorizedError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 404: - throw new Rivet.NotFoundError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - case 400: - throw new Rivet.BadRequestError( - await serializers.ErrorBody.parseOrThrow(_response.error.body, { - unrecognizedObjectKeys: "passthrough", - allowUnrecognizedUnionMembers: true, - allowUnrecognizedEnumValues: true, - skipValidation: true, - breadcrumbsPrefix: ["response"], - }) - ); - default: - throw new errors.RivetError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.RivetError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - }); - case "timeout": - throw new errors.RivetTimeoutError(); - case "unknown": - throw new errors.RivetError({ - message: _response.error.errorMessage, - }); - } - } - protected async _getAuthorizationHeader() { const bearer = await core.Supplier.get(this._options.token); if (bearer != null) { diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts deleted file mode 100644 index 815626840..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Rivet from "../../../../../../.."; - -export interface CreateRequest { - displayName: string; - nameId: string; - provider: Rivet.admin.Provider; - providerDatacenterId: string; - buildDeliveryMethod: Rivet.admin.BuildDeliveryMethod; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts deleted file mode 100644 index 0026d3652..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export interface CreateResponse { - datacenterId: string; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts deleted file mode 100644 index 745d10274..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Rivet from "../../../../../../.."; - -export interface ListResponse { - datacenters: Rivet.admin.Datacenter[]; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts deleted file mode 100644 index 0d6b62174..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Rivet from "../../../../../../.."; - -export interface UpdateRequest { - poolType: Rivet.admin.PoolType; - hardware: Rivet.admin.Hardware[]; - desiredCount?: number; - maxCount?: number; - drainTimeout?: number; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/index.ts index 6b5e8fa9c..69a12246f 100644 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/index.ts +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/datacenters/types/index.ts @@ -1,4 +1,4 @@ -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; -export * from "./UpdateRequest"; +export * from "./ListDatacentersResponse"; +export * from "./CreateDatacenterRequest"; +export * from "./CreateDatacenterResponse"; +export * from "./UpdateDatacenterRequest"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/index.ts index bf0d31cec..7dd92d10a 100644 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/index.ts +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/index.ts @@ -1 +1,7 @@ +export * as common from "./common"; +export * from "./common/types"; export * as datacenters from "./datacenters"; +export * from "./datacenters/types"; +export * as servers from "./servers"; +export * from "./servers/types"; +export * from "./servers/client/requests"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/Client.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/Client.ts new file mode 100644 index 000000000..68f2d5a1b --- /dev/null +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/Client.ts @@ -0,0 +1,310 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as environments from "../../../../../../../../environments"; +import * as core from "../../../../../../../../core"; +import * as Rivet from "../../../../../../.."; +import urlJoin from "url-join"; +import * as serializers from "../../../../../../../../serialization"; +import * as errors from "../../../../../../../../errors"; + +export declare namespace Servers { + interface Options { + environment?: core.Supplier; + token?: core.Supplier; + fetcher?: core.FetchFunction; + } + + interface RequestOptions { + timeoutInSeconds?: number; + maxRetries?: number; + } +} + +export class Servers { + constructor(protected readonly _options: Servers.Options = {}) {} + + /** + * @throws {@link Rivet.InternalError} + * @throws {@link Rivet.RateLimitError} + * @throws {@link Rivet.ForbiddenError} + * @throws {@link Rivet.UnauthorizedError} + * @throws {@link Rivet.NotFoundError} + * @throws {@link Rivet.BadRequestError} + */ + public async list( + clusterId: string, + request: Rivet.admin.clusters.ListServersRequest = {}, + requestOptions?: Servers.RequestOptions + ): Promise { + const { serverId, datacenter, pool, publicIp } = request; + const _queryParams: Record = {}; + if (serverId != null) { + _queryParams["server_id"] = serverId; + } + + if (datacenter != null) { + _queryParams["datacenter"] = datacenter; + } + + if (pool != null) { + _queryParams["pool"] = pool; + } + + if (publicIp != null) { + _queryParams["public_ip"] = publicIp; + } + + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, + `/admin/clusters/${clusterId}/servers` + ), + method: "GET", + headers: { + Authorization: await this._getAuthorizationHeader(), + }, + contentType: "application/json", + queryParameters: _queryParams, + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 180000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return await serializers.admin.clusters.ListServersResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }); + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 500: + throw new Rivet.InternalError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 429: + throw new Rivet.RateLimitError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 403: + throw new Rivet.ForbiddenError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 408: + throw new Rivet.UnauthorizedError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 404: + throw new Rivet.NotFoundError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 400: + throw new Rivet.BadRequestError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + default: + throw new errors.RivetError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.RivetError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.RivetTimeoutError(); + case "unknown": + throw new errors.RivetError({ + message: _response.error.errorMessage, + }); + } + } + + /** + * @throws {@link Rivet.InternalError} + * @throws {@link Rivet.RateLimitError} + * @throws {@link Rivet.ForbiddenError} + * @throws {@link Rivet.UnauthorizedError} + * @throws {@link Rivet.NotFoundError} + * @throws {@link Rivet.BadRequestError} + */ + public async taint( + clusterId: string, + request: Rivet.admin.clusters.TaintServersRequest = {}, + requestOptions?: Servers.RequestOptions + ): Promise { + const { serverId, datacenter, pool, publicIp } = request; + const _queryParams: Record = {}; + if (serverId != null) { + _queryParams["server_id"] = serverId; + } + + if (datacenter != null) { + _queryParams["datacenter"] = datacenter; + } + + if (pool != null) { + _queryParams["pool"] = pool; + } + + if (publicIp != null) { + _queryParams["public_ip"] = publicIp; + } + + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: urlJoin( + (await core.Supplier.get(this._options.environment)) ?? environments.RivetEnvironment.Production, + `/admin/clusters/${clusterId}/servers/taint` + ), + method: "POST", + headers: { + Authorization: await this._getAuthorizationHeader(), + }, + contentType: "application/json", + queryParameters: _queryParams, + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 180000, + maxRetries: requestOptions?.maxRetries, + }); + if (_response.ok) { + return; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 500: + throw new Rivet.InternalError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 429: + throw new Rivet.RateLimitError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 403: + throw new Rivet.ForbiddenError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 408: + throw new Rivet.UnauthorizedError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 404: + throw new Rivet.NotFoundError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + case 400: + throw new Rivet.BadRequestError( + await serializers.ErrorBody.parseOrThrow(_response.error.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }) + ); + default: + throw new errors.RivetError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + }); + } + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.RivetError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + }); + case "timeout": + throw new errors.RivetTimeoutError(); + case "unknown": + throw new errors.RivetError({ + message: _response.error.errorMessage, + }); + } + } + + protected async _getAuthorizationHeader() { + const bearer = await core.Supplier.get(this._options.token); + if (bearer != null) { + return `Bearer ${bearer}`; + } + + return undefined; + } +} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/index.ts new file mode 100644 index 000000000..415726b7f --- /dev/null +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/index.ts @@ -0,0 +1 @@ +export * from "./requests"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.ts new file mode 100644 index 000000000..e366278c2 --- /dev/null +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.ts @@ -0,0 +1,12 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Rivet from "../../../../../../../.."; + +export interface ListServersRequest { + serverId?: string; + datacenter?: string; + pool?: Rivet.admin.clusters.PoolType; + publicIp?: string; +} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.ts new file mode 100644 index 000000000..73e1b6dc6 --- /dev/null +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.ts @@ -0,0 +1,12 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Rivet from "../../../../../../../.."; + +export interface TaintServersRequest { + serverId?: string; + datacenter?: string; + pool?: Rivet.admin.clusters.PoolType; + publicIp?: string; +} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/index.ts new file mode 100644 index 000000000..5f1cf7b61 --- /dev/null +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/client/requests/index.ts @@ -0,0 +1,2 @@ +export { ListServersRequest } from "./ListServersRequest"; +export { TaintServersRequest } from "./TaintServersRequest"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/index.ts new file mode 100644 index 000000000..c9240f83b --- /dev/null +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/resources/servers/index.ts @@ -0,0 +1,2 @@ +export * from "./types"; +export * from "./client"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateRequest.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateRequest.ts deleted file mode 100644 index d822b1c4d..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateRequest.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export interface CreateRequest { - nameId: string; - ownerTeamId?: string; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateResponse.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateResponse.ts deleted file mode 100644 index c88cbb43e..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/CreateResponse.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export interface CreateResponse { - clusterId: string; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/GetServerIpsResponse.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/GetServerIpsResponse.ts deleted file mode 100644 index 559a329f1..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/GetServerIpsResponse.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export interface GetServerIpsResponse { - ips: string[]; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/ListResponse.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/ListResponse.ts deleted file mode 100644 index d30a1106b..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/ListResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Rivet from "../../../../.."; - -export interface ListResponse { - clusters: Rivet.admin.Cluster[]; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/index.ts index 050cef163..d7f4b7f86 100644 --- a/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/index.ts +++ b/sdks/full/typescript/src/api/resources/admin/resources/clusters/types/index.ts @@ -1,4 +1,3 @@ -export * from "./GetServerIpsResponse"; -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; +export * from "./ListClustersResponse"; +export * from "./CreateClusterRequest"; +export * from "./CreateClusterResponse"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/BuildDeliveryMethod.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/BuildDeliveryMethod.ts deleted file mode 100644 index e668417bd..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/BuildDeliveryMethod.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export type BuildDeliveryMethod = "traffic_server" | "s3_direct"; - -export const BuildDeliveryMethod = { - TrafficServer: "traffic_server", - S3Direct: "s3_direct", -} as const; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Cluster.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/Cluster.ts deleted file mode 100644 index bce500970..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Cluster.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export interface Cluster { - clusterId: string; - nameId: string; - createTs: number; - ownerTeamId?: string; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Datacenter.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/Datacenter.ts deleted file mode 100644 index 94403ac64..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Datacenter.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Rivet from "../../../../.."; - -export interface Datacenter { - datacenterId: string; - clusterId: string; - nameId: string; - displayName: string; - provider: Rivet.admin.Provider; - providerDatacenterId: string; - providerApiToken?: string; - pools: Rivet.admin.Pool[]; - buildDeliveryMethod: Rivet.admin.BuildDeliveryMethod; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Hardware.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/Hardware.ts deleted file mode 100644 index c984a81f6..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Hardware.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export interface Hardware { - providerHardware: string; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Pool.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/Pool.ts deleted file mode 100644 index d83415dad..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Pool.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as Rivet from "../../../../.."; - -export interface Pool { - poolType: Rivet.admin.PoolType; - hardware: Rivet.admin.Hardware[]; - desiredCount: number; - maxCount: number; - drainTimeout: number; -} diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/PoolType.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/PoolType.ts deleted file mode 100644 index c94981008..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/PoolType.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export type PoolType = "job" | "gg" | "ats"; - -export const PoolType = { - Job: "job", - Gg: "gg", - Ats: "ats", -} as const; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Provider.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/Provider.ts deleted file mode 100644 index 100c8154a..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/Provider.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -export type Provider = "linode"; - -export const Provider = { - Linode: "linode", -} as const; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/common/types/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/common/types/index.ts deleted file mode 100644 index 5223d7dee..000000000 --- a/sdks/full/typescript/src/api/resources/admin/resources/common/types/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./PoolType"; -export * from "./Provider"; -export * from "./BuildDeliveryMethod"; -export * from "./Pool"; -export * from "./Hardware"; -export * from "./Cluster"; -export * from "./Datacenter"; diff --git a/sdks/full/typescript/src/api/resources/admin/resources/index.ts b/sdks/full/typescript/src/api/resources/admin/resources/index.ts index 22e1c0876..615a4d1bb 100644 --- a/sdks/full/typescript/src/api/resources/admin/resources/index.ts +++ b/sdks/full/typescript/src/api/resources/admin/resources/index.ts @@ -1,3 +1 @@ export * as clusters from "./clusters"; -export * as common from "./common"; -export * from "./common/types"; diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/index.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/common/index.ts similarity index 100% rename from sdks/full/typescript/src/serialization/resources/admin/resources/common/index.ts rename to sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/common/index.ts diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts deleted file mode 100644 index 38d3278ed..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateRequest.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../../../.."; -import * as Rivet from "../../../../../../../../api"; -import * as core from "../../../../../../../../core"; - -export const CreateRequest: core.serialization.ObjectSchema< - serializers.admin.clusters.datacenters.CreateRequest.Raw, - Rivet.admin.clusters.datacenters.CreateRequest -> = core.serialization.object({ - displayName: core.serialization.property("display_name", core.serialization.string()), - nameId: core.serialization.property("name_id", core.serialization.string()), - provider: core.serialization.lazy(async () => (await import("../../../../../../..")).admin.Provider), - providerDatacenterId: core.serialization.property("provider_datacenter_id", core.serialization.string()), - buildDeliveryMethod: core.serialization.property( - "build_delivery_method", - core.serialization.lazy(async () => (await import("../../../../../../..")).admin.BuildDeliveryMethod) - ), -}); - -export declare namespace CreateRequest { - interface Raw { - display_name: string; - name_id: string; - provider: serializers.admin.Provider.Raw; - provider_datacenter_id: string; - build_delivery_method: serializers.admin.BuildDeliveryMethod.Raw; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts deleted file mode 100644 index 53e77b120..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/CreateResponse.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../../../.."; -import * as Rivet from "../../../../../../../../api"; -import * as core from "../../../../../../../../core"; - -export const CreateResponse: core.serialization.ObjectSchema< - serializers.admin.clusters.datacenters.CreateResponse.Raw, - Rivet.admin.clusters.datacenters.CreateResponse -> = core.serialization.object({ - datacenterId: core.serialization.property("datacenter_id", core.serialization.string()), -}); - -export declare namespace CreateResponse { - interface Raw { - datacenter_id: string; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts deleted file mode 100644 index 79346f687..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/ListResponse.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../../../.."; -import * as Rivet from "../../../../../../../../api"; -import * as core from "../../../../../../../../core"; - -export const ListResponse: core.serialization.ObjectSchema< - serializers.admin.clusters.datacenters.ListResponse.Raw, - Rivet.admin.clusters.datacenters.ListResponse -> = core.serialization.object({ - datacenters: core.serialization.list( - core.serialization.lazyObject(async () => (await import("../../../../../../..")).admin.Datacenter) - ), -}); - -export declare namespace ListResponse { - interface Raw { - datacenters: serializers.admin.Datacenter.Raw[]; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts deleted file mode 100644 index 47518a8b3..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/UpdateRequest.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../../../.."; -import * as Rivet from "../../../../../../../../api"; -import * as core from "../../../../../../../../core"; - -export const UpdateRequest: core.serialization.ObjectSchema< - serializers.admin.clusters.datacenters.UpdateRequest.Raw, - Rivet.admin.clusters.datacenters.UpdateRequest -> = core.serialization.object({ - poolType: core.serialization.property( - "pool_type", - core.serialization.lazy(async () => (await import("../../../../../../..")).admin.PoolType) - ), - hardware: core.serialization.list( - core.serialization.lazyObject(async () => (await import("../../../../../../..")).admin.Hardware) - ), - desiredCount: core.serialization.property("desired_count", core.serialization.number().optional()), - maxCount: core.serialization.property("max_count", core.serialization.number().optional()), - drainTimeout: core.serialization.property("drain_timeout", core.serialization.number().optional()), -}); - -export declare namespace UpdateRequest { - interface Raw { - pool_type: serializers.admin.PoolType.Raw; - hardware: serializers.admin.Hardware.Raw[]; - desired_count?: number | null; - max_count?: number | null; - drain_timeout?: number | null; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.ts index 6b5e8fa9c..69a12246f 100644 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.ts +++ b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.ts @@ -1,4 +1,4 @@ -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; -export * from "./UpdateRequest"; +export * from "./ListDatacentersResponse"; +export * from "./CreateDatacenterRequest"; +export * from "./CreateDatacenterResponse"; +export * from "./UpdateDatacenterRequest"; diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/index.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/index.ts index bf0d31cec..e739c2728 100644 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/index.ts +++ b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/index.ts @@ -1 +1,6 @@ +export * as common from "./common"; +export * from "./common/types"; export * as datacenters from "./datacenters"; +export * from "./datacenters/types"; +export * as servers from "./servers"; +export * from "./servers/types"; diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/servers/index.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/servers/index.ts new file mode 100644 index 000000000..eea524d65 --- /dev/null +++ b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/resources/servers/index.ts @@ -0,0 +1 @@ +export * from "./types"; diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateRequest.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateRequest.ts deleted file mode 100644 index c5788cfd7..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateRequest.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const CreateRequest: core.serialization.ObjectSchema< - serializers.admin.clusters.CreateRequest.Raw, - Rivet.admin.clusters.CreateRequest -> = core.serialization.object({ - nameId: core.serialization.property("name_id", core.serialization.string()), - ownerTeamId: core.serialization.property("owner_team_id", core.serialization.string().optional()), -}); - -export declare namespace CreateRequest { - interface Raw { - name_id: string; - owner_team_id?: string | null; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateResponse.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateResponse.ts deleted file mode 100644 index 129f62022..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/CreateResponse.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const CreateResponse: core.serialization.ObjectSchema< - serializers.admin.clusters.CreateResponse.Raw, - Rivet.admin.clusters.CreateResponse -> = core.serialization.object({ - clusterId: core.serialization.property("cluster_id", core.serialization.string()), -}); - -export declare namespace CreateResponse { - interface Raw { - cluster_id: string; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/GetServerIpsResponse.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/GetServerIpsResponse.ts deleted file mode 100644 index ffb9c0a60..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/GetServerIpsResponse.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const GetServerIpsResponse: core.serialization.ObjectSchema< - serializers.admin.clusters.GetServerIpsResponse.Raw, - Rivet.admin.clusters.GetServerIpsResponse -> = core.serialization.object({ - ips: core.serialization.list(core.serialization.string()), -}); - -export declare namespace GetServerIpsResponse { - interface Raw { - ips: string[]; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/ListResponse.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/ListResponse.ts deleted file mode 100644 index 94b8c668e..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/ListResponse.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const ListResponse: core.serialization.ObjectSchema< - serializers.admin.clusters.ListResponse.Raw, - Rivet.admin.clusters.ListResponse -> = core.serialization.object({ - clusters: core.serialization.list( - core.serialization.lazyObject(async () => (await import("../../../../..")).admin.Cluster) - ), -}); - -export declare namespace ListResponse { - interface Raw { - clusters: serializers.admin.Cluster.Raw[]; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/index.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/index.ts index 050cef163..d7f4b7f86 100644 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/index.ts +++ b/sdks/full/typescript/src/serialization/resources/admin/resources/clusters/types/index.ts @@ -1,4 +1,3 @@ -export * from "./GetServerIpsResponse"; -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; +export * from "./ListClustersResponse"; +export * from "./CreateClusterRequest"; +export * from "./CreateClusterResponse"; diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/BuildDeliveryMethod.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/BuildDeliveryMethod.ts deleted file mode 100644 index 3ce8de97a..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/BuildDeliveryMethod.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const BuildDeliveryMethod: core.serialization.Schema< - serializers.admin.BuildDeliveryMethod.Raw, - Rivet.admin.BuildDeliveryMethod -> = core.serialization.enum_(["traffic_server", "s3_direct"]); - -export declare namespace BuildDeliveryMethod { - type Raw = "traffic_server" | "s3_direct"; -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Cluster.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Cluster.ts deleted file mode 100644 index 5004c1055..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Cluster.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const Cluster: core.serialization.ObjectSchema = - core.serialization.object({ - clusterId: core.serialization.property("cluster_id", core.serialization.string()), - nameId: core.serialization.property("name_id", core.serialization.string()), - createTs: core.serialization.property("create_ts", core.serialization.number()), - ownerTeamId: core.serialization.property("owner_team_id", core.serialization.string().optional()), - }); - -export declare namespace Cluster { - interface Raw { - cluster_id: string; - name_id: string; - create_ts: number; - owner_team_id?: string | null; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Datacenter.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Datacenter.ts deleted file mode 100644 index 49f64e198..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Datacenter.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const Datacenter: core.serialization.ObjectSchema = - core.serialization.object({ - datacenterId: core.serialization.property("datacenter_id", core.serialization.string()), - clusterId: core.serialization.property("cluster_id", core.serialization.string()), - nameId: core.serialization.property("name_id", core.serialization.string()), - displayName: core.serialization.property("display_name", core.serialization.string()), - provider: core.serialization.lazy(async () => (await import("../../../../..")).admin.Provider), - providerDatacenterId: core.serialization.property("provider_datacenter_id", core.serialization.string()), - providerApiToken: core.serialization.property("provider_api_token", core.serialization.string().optional()), - pools: core.serialization.list( - core.serialization.lazyObject(async () => (await import("../../../../..")).admin.Pool) - ), - buildDeliveryMethod: core.serialization.property( - "build_delivery_method", - core.serialization.lazy(async () => (await import("../../../../..")).admin.BuildDeliveryMethod) - ), - }); - -export declare namespace Datacenter { - interface Raw { - datacenter_id: string; - cluster_id: string; - name_id: string; - display_name: string; - provider: serializers.admin.Provider.Raw; - provider_datacenter_id: string; - provider_api_token?: string | null; - pools: serializers.admin.Pool.Raw[]; - build_delivery_method: serializers.admin.BuildDeliveryMethod.Raw; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Hardware.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Hardware.ts deleted file mode 100644 index 14ba1f829..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Hardware.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const Hardware: core.serialization.ObjectSchema = - core.serialization.object({ - providerHardware: core.serialization.property("provider_hardware", core.serialization.string()), - }); - -export declare namespace Hardware { - interface Raw { - provider_hardware: string; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Pool.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Pool.ts deleted file mode 100644 index 97904d703..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Pool.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const Pool: core.serialization.ObjectSchema = - core.serialization.object({ - poolType: core.serialization.property( - "pool_type", - core.serialization.lazy(async () => (await import("../../../../..")).admin.PoolType) - ), - hardware: core.serialization.list( - core.serialization.lazyObject(async () => (await import("../../../../..")).admin.Hardware) - ), - desiredCount: core.serialization.property("desired_count", core.serialization.number()), - maxCount: core.serialization.property("max_count", core.serialization.number()), - drainTimeout: core.serialization.property("drain_timeout", core.serialization.number()), - }); - -export declare namespace Pool { - interface Raw { - pool_type: serializers.admin.PoolType.Raw; - hardware: serializers.admin.Hardware.Raw[]; - desired_count: number; - max_count: number; - drain_timeout: number; - } -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/PoolType.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/PoolType.ts deleted file mode 100644 index ffe4776dc..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/PoolType.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const PoolType: core.serialization.Schema = - core.serialization.enum_(["job", "gg", "ats"]); - -export declare namespace PoolType { - type Raw = "job" | "gg" | "ats"; -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Provider.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Provider.ts deleted file mode 100644 index 52d6ce312..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/Provider.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../../.."; -import * as Rivet from "../../../../../../api"; -import * as core from "../../../../../../core"; - -export const Provider: core.serialization.Schema = - core.serialization.enum_(["linode"]); - -export declare namespace Provider { - type Raw = "linode"; -} diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/index.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/index.ts deleted file mode 100644 index 5223d7dee..000000000 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/common/types/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./PoolType"; -export * from "./Provider"; -export * from "./BuildDeliveryMethod"; -export * from "./Pool"; -export * from "./Hardware"; -export * from "./Cluster"; -export * from "./Datacenter"; diff --git a/sdks/full/typescript/src/serialization/resources/admin/resources/index.ts b/sdks/full/typescript/src/serialization/resources/admin/resources/index.ts index 22e1c0876..615a4d1bb 100644 --- a/sdks/full/typescript/src/serialization/resources/admin/resources/index.ts +++ b/sdks/full/typescript/src/serialization/resources/admin/resources/index.ts @@ -1,3 +1 @@ export * as clusters from "./clusters"; -export * as common from "./common"; -export * from "./common/types"; diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/Client.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/Client.d.ts index bca864be3..41571f322 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/Client.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/Client.d.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Rivet from "../../../../.."; import { Datacenters } from "../resources/datacenters/client/Client"; +import { Servers } from "../resources/servers/client/Client"; export declare namespace Clusters { interface Options { environment?: core.Supplier; @@ -19,15 +20,6 @@ export declare namespace Clusters { export declare class Clusters { protected readonly _options: Clusters.Options; constructor(_options?: Clusters.Options); - /** - * @throws {@link Rivet.InternalError} - * @throws {@link Rivet.RateLimitError} - * @throws {@link Rivet.ForbiddenError} - * @throws {@link Rivet.UnauthorizedError} - * @throws {@link Rivet.NotFoundError} - * @throws {@link Rivet.BadRequestError} - */ - getServerIps(request?: Rivet.admin.clusters.GetServerIpsRequest, requestOptions?: Clusters.RequestOptions): Promise; /** * Get clusters * @throws {@link Rivet.InternalError} @@ -37,7 +29,7 @@ export declare class Clusters { * @throws {@link Rivet.NotFoundError} * @throws {@link Rivet.BadRequestError} */ - list(requestOptions?: Clusters.RequestOptions): Promise; + list(requestOptions?: Clusters.RequestOptions): Promise; /** * Create a new cluster * @throws {@link Rivet.InternalError} @@ -47,8 +39,10 @@ export declare class Clusters { * @throws {@link Rivet.NotFoundError} * @throws {@link Rivet.BadRequestError} */ - create(request: Rivet.admin.clusters.CreateRequest, requestOptions?: Clusters.RequestOptions): Promise; + create(request: Rivet.admin.clusters.CreateClusterRequest, requestOptions?: Clusters.RequestOptions): Promise; protected _datacenters: Datacenters | undefined; get datacenters(): Datacenters; + protected _servers: Servers | undefined; + get servers(): Servers; protected _getAuthorizationHeader(): Promise; } diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/index.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/index.d.ts index 415726b7f..cb0ff5c3b 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/index.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/client/index.d.ts @@ -1 +1 @@ -export * from "./requests"; +export {}; diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/client/Client.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/client/Client.d.ts index 37aeb39c4..d97aa5f98 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/client/Client.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/client/Client.d.ts @@ -27,7 +27,7 @@ export declare class Datacenters { * @throws {@link Rivet.NotFoundError} * @throws {@link Rivet.BadRequestError} */ - list(clusterId: string, requestOptions?: Datacenters.RequestOptions): Promise; + list(clusterId: string, requestOptions?: Datacenters.RequestOptions): Promise; /** * @throws {@link Rivet.InternalError} * @throws {@link Rivet.RateLimitError} @@ -36,7 +36,7 @@ export declare class Datacenters { * @throws {@link Rivet.NotFoundError} * @throws {@link Rivet.BadRequestError} */ - create(clusterId: string, request: Rivet.admin.clusters.datacenters.CreateRequest, requestOptions?: Datacenters.RequestOptions): Promise; + create(clusterId: string, request: Rivet.admin.clusters.CreateDatacenterRequest, requestOptions?: Datacenters.RequestOptions): Promise; /** * @throws {@link Rivet.InternalError} * @throws {@link Rivet.RateLimitError} @@ -45,15 +45,6 @@ export declare class Datacenters { * @throws {@link Rivet.NotFoundError} * @throws {@link Rivet.BadRequestError} */ - update(clusterId: string, datacenterId: string, request: Rivet.admin.clusters.datacenters.UpdateRequest, requestOptions?: Datacenters.RequestOptions): Promise; - /** - * @throws {@link Rivet.InternalError} - * @throws {@link Rivet.RateLimitError} - * @throws {@link Rivet.ForbiddenError} - * @throws {@link Rivet.UnauthorizedError} - * @throws {@link Rivet.NotFoundError} - * @throws {@link Rivet.BadRequestError} - */ - taint(clusterId: string, datacenterId: string, requestOptions?: Datacenters.RequestOptions): Promise; + update(clusterId: string, datacenterId: string, request: Rivet.admin.clusters.UpdateDatacenterRequest, requestOptions?: Datacenters.RequestOptions): Promise; protected _getAuthorizationHeader(): Promise; } diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts index 6b5e8fa9c..69a12246f 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts @@ -1,4 +1,4 @@ -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; -export * from "./UpdateRequest"; +export * from "./ListDatacentersResponse"; +export * from "./CreateDatacenterRequest"; +export * from "./CreateDatacenterResponse"; +export * from "./UpdateDatacenterRequest"; diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/index.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/index.d.ts index bf0d31cec..7dd92d10a 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/index.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/index.d.ts @@ -1 +1,7 @@ +export * as common from "./common"; +export * from "./common/types"; export * as datacenters from "./datacenters"; +export * from "./datacenters/types"; +export * as servers from "./servers"; +export * from "./servers/types"; +export * from "./servers/client/requests"; diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.d.ts index d05bfbf49..2b37b8c2d 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/ListServersRequest.d.ts @@ -1,7 +1,10 @@ /** * This file was auto-generated by Fern from our API Definition. */ +import * as Rivet from "../../../../../../../.."; export interface ListServersRequest { - datacenterId?: string; - poolType?: string; + serverId?: string; + datacenter?: string; + pool?: Rivet.admin.clusters.PoolType; + publicIp?: string; } diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.d.ts index e711d6503..a2c73a241 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/client/requests/TaintServersRequest.d.ts @@ -4,6 +4,7 @@ import * as Rivet from "../../../../../../../.."; export interface TaintServersRequest { serverId?: string; - poolType?: Rivet.admin.clusters.PoolType; - datacenterId?: string; + datacenter?: string; + pool?: Rivet.admin.clusters.PoolType; + publicIp?: string; } diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/types/index.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/types/index.d.ts index 7055ee8a8..9ae12df05 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/types/index.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/resources/servers/types/index.d.ts @@ -1,2 +1 @@ export * from "./ListServersResponse"; -export * from "./GetServerResponse"; diff --git a/sdks/full/typescript/types/api/resources/admin/resources/clusters/types/index.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/clusters/types/index.d.ts index 050cef163..d7f4b7f86 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/clusters/types/index.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/clusters/types/index.d.ts @@ -1,4 +1,3 @@ -export * from "./GetServerIpsResponse"; -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; +export * from "./ListClustersResponse"; +export * from "./CreateClusterRequest"; +export * from "./CreateClusterResponse"; diff --git a/sdks/full/typescript/types/api/resources/admin/resources/index.d.ts b/sdks/full/typescript/types/api/resources/admin/resources/index.d.ts index 22e1c0876..615a4d1bb 100644 --- a/sdks/full/typescript/types/api/resources/admin/resources/index.d.ts +++ b/sdks/full/typescript/types/api/resources/admin/resources/index.d.ts @@ -1,3 +1 @@ export * as clusters from "./clusters"; -export * as common from "./common"; -export * from "./common/types"; diff --git a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts index 6b5e8fa9c..69a12246f 100644 --- a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts +++ b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/datacenters/types/index.d.ts @@ -1,4 +1,4 @@ -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; -export * from "./UpdateRequest"; +export * from "./ListDatacentersResponse"; +export * from "./CreateDatacenterRequest"; +export * from "./CreateDatacenterResponse"; +export * from "./UpdateDatacenterRequest"; diff --git a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/index.d.ts b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/index.d.ts index bf0d31cec..e739c2728 100644 --- a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/index.d.ts +++ b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/index.d.ts @@ -1 +1,6 @@ +export * as common from "./common"; +export * from "./common/types"; export * as datacenters from "./datacenters"; +export * from "./datacenters/types"; +export * as servers from "./servers"; +export * from "./servers/types"; diff --git a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/servers/types/index.d.ts b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/servers/types/index.d.ts index 7055ee8a8..9ae12df05 100644 --- a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/servers/types/index.d.ts +++ b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/resources/servers/types/index.d.ts @@ -1,2 +1 @@ export * from "./ListServersResponse"; -export * from "./GetServerResponse"; diff --git a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/types/index.d.ts b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/types/index.d.ts index 050cef163..d7f4b7f86 100644 --- a/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/types/index.d.ts +++ b/sdks/full/typescript/types/serialization/resources/admin/resources/clusters/types/index.d.ts @@ -1,4 +1,3 @@ -export * from "./GetServerIpsResponse"; -export * from "./ListResponse"; -export * from "./CreateRequest"; -export * from "./CreateResponse"; +export * from "./ListClustersResponse"; +export * from "./CreateClusterRequest"; +export * from "./CreateClusterResponse"; diff --git a/sdks/full/typescript/types/serialization/resources/admin/resources/index.d.ts b/sdks/full/typescript/types/serialization/resources/admin/resources/index.d.ts index 22e1c0876..615a4d1bb 100644 --- a/sdks/full/typescript/types/serialization/resources/admin/resources/index.d.ts +++ b/sdks/full/typescript/types/serialization/resources/admin/resources/index.d.ts @@ -1,3 +1 @@ export * as clusters from "./clusters"; -export * as common from "./common"; -export * from "./common/types"; diff --git a/sdks/runtime/typescript/archive.tgz b/sdks/runtime/typescript/archive.tgz index c1409633a..60d5c9de7 100644 --- a/sdks/runtime/typescript/archive.tgz +++ b/sdks/runtime/typescript/archive.tgz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2f3e9e0371099cbfe0ed0a5bd78d62bf99c30afc5df90d301b506497125684f -size 371495 +oid sha256:51fad73b0f437be52cdd3800fbf1e6c30c6400dc861e4ebfb99331da887d30dd +size 371559 diff --git a/svc/Cargo.lock b/svc/Cargo.lock index ee6f2690b..47aeb69fc 100644 --- a/svc/Cargo.lock +++ b/svc/Cargo.lock @@ -104,6 +104,7 @@ dependencies = [ "chrono", "cluster-datacenter-get", "cluster-datacenter-list", + "cluster-datacenter-resolve-for-name-id", "cluster-get", "cluster-list", "cluster-server-get", diff --git a/svc/api/admin/Cargo.toml b/svc/api/admin/Cargo.toml index 5ebad139e..3ae843f79 100644 --- a/svc/api/admin/Cargo.toml +++ b/svc/api/admin/Cargo.toml @@ -47,6 +47,7 @@ cluster-server-get = { path = "../../pkg/cluster/ops/server-get" } cluster-server-list = { path = "../../pkg/cluster/ops/server-list" } cluster-datacenter-list = { path = "../../pkg/cluster/ops/datacenter-list" } cluster-datacenter-get = { path = "../../pkg/cluster/ops/datacenter-get" } +cluster-datacenter-resolve-for-name-id = { path = "../../pkg/cluster/ops/datacenter-resolve-for-name-id" } token-create = { path = "../../pkg/token/ops/create" } [dev-dependencies] diff --git a/svc/api/admin/src/route/clusters/datacenters.rs b/svc/api/admin/src/route/clusters/datacenters.rs index 432983fc5..cbad5d0a4 100644 --- a/svc/api/admin/src/route/clusters/datacenters.rs +++ b/svc/api/admin/src/route/clusters/datacenters.rs @@ -12,7 +12,7 @@ pub async fn list( ctx: Ctx, cluster_id: Uuid, _watch_index: WatchIndexQuery, -) -> GlobalResult { +) -> GlobalResult { let response = op!([ctx] cluster_datacenter_list { cluster_ids: vec![cluster_id.into()], }) @@ -26,18 +26,18 @@ pub async fn list( .await? .datacenters .into_iter() - .map(models::AdminDatacenter::api_try_from) + .map(models::AdminClustersDatacenter::api_try_from) .collect::>>()?; - Ok(models::AdminClustersDatacentersListResponse { datacenters }) + Ok(models::AdminClustersListDatacentersResponse { datacenters }) } // MARK: POST /clusters/{cluster_id}/datacenters pub async fn create( ctx: Ctx, cluster_id: Uuid, - body: models::AdminClustersDatacentersCreateRequest, -) -> GlobalResult { + body: models::AdminClustersCreateDatacenterRequest, +) -> GlobalResult { // Make sure the cluster exists let clusters = op!([ctx] cluster_get { cluster_ids: vec![cluster_id.into()], @@ -100,38 +100,7 @@ pub async fn create( }) .await?; - Ok(models::AdminClustersDatacentersCreateResponse { datacenter_id }) -} - -// MARK: GET /clusters/{cluster_id}/datacenters/{datacenter_id}/taint -pub async fn taint( - ctx: Ctx, - cluster_id: Uuid, - datacenter_id: Uuid, - _watch_index: WatchIndexQuery, -) -> GlobalResult { - // Make sure that the datacenter is part of the cluster - let datacenters = op!([ctx] cluster_datacenter_get { - datacenter_ids: vec![datacenter_id.into()], - }) - .await? - .datacenters; - - let datacenter = match datacenters.first() { - Some(d) => d, - None => bail_with!(CLUSTER_DATACENTER_NOT_FOUND), - }; - - if datacenter.cluster_id != Some(cluster_id.into()) { - bail_with!(CLUSTER_DATACENTER_NOT_IN_CLUSTER); - } - - msg!([ctx] cluster::msg::datacenter_taint(datacenter_id) -> cluster::msg::datacenter_scale { - datacenter_id: Some(datacenter_id.into()), - }) - .await?; - - Ok(json!({})) + Ok(models::AdminClustersCreateDatacenterResponse { datacenter_id }) } // MARK: PUT /admin/clusters/{cluster_id}/datacenters/{datacenter_id} @@ -139,7 +108,7 @@ pub async fn update( ctx: Ctx, cluster_id: Uuid, datacenter_id: Uuid, - body: models::AdminClustersDatacentersUpdateRequest, + body: models::AdminClustersUpdateDatacenterRequest, ) -> GlobalResult { // Make sure that the datacenter is part of the cluster let datacenters = op!([ctx] cluster_datacenter_get { diff --git a/svc/api/admin/src/route/clusters/mod.rs b/svc/api/admin/src/route/clusters/mod.rs index 7bab56625..05c42c64d 100644 --- a/svc/api/admin/src/route/clusters/mod.rs +++ b/svc/api/admin/src/route/clusters/mod.rs @@ -1,79 +1,18 @@ use api_helper::{anchor::WatchIndexQuery, ctx::Ctx}; -use proto::backend; use rivet_api::models; -use rivet_convert::{ApiInto, ApiTryFrom}; +use rivet_convert::ApiTryFrom; use rivet_operation::prelude::{proto::backend::pkg::cluster, *}; -use serde::Deserialize; use crate::auth::Auth; pub mod datacenters; - -// MARK: GET /cluster/server_ips -#[derive(Debug, Clone, Deserialize)] -pub struct ServerIpsQuery { - server_id: Option, - pool: Option, -} - -pub async fn server_ips( - ctx: Ctx, - _watch_index: WatchIndexQuery, - query: ServerIpsQuery, -) -> GlobalResult { - let ips = match (query.server_id, query.pool) { - (Some(server_id), _) => { - let servers_res = op!([ctx] cluster_server_get { - server_ids: vec![server_id.into()], - }) - .await?; - let public_ip = servers_res - .servers - .first() - .and_then(|server| server.public_ip.clone()); - - public_ip.into_iter().collect::>() - } - (_, Some(pool)) => { - let pool_type = Some(ApiInto::::api_into(pool)); - - let cluster_id = util_cluster::default_cluster_id(); - let server_list_res = op!([ctx] cluster_server_list { - cluster_ids: vec![cluster_id.into()], - }) - .await?; - let cluster = unwrap!(server_list_res.clusters.first()); - - let servers_res = op!([ctx] cluster_server_get { - server_ids: cluster.server_ids.clone(), - }) - .await?; - - servers_res - .servers - .iter() - .filter(|server| { - backend::cluster::PoolType::from_i32(server.pool_type) == pool_type - }) - .filter_map(|server| server.public_ip.clone()) - .collect::>() - } - (None, None) => { - bail_with!( - API_BAD_QUERY, - error = "expected one of: `server_id`, `pool`" - ); - } - }; - - Ok(models::AdminClustersGetServerIpsResponse { ips }) -} +pub mod servers; // MARK: GET /clusters pub async fn list( ctx: Ctx, _watch_index: WatchIndexQuery, -) -> GlobalResult { +) -> GlobalResult { let cluster_ids = op!([ctx] cluster_list {}).await?.cluster_ids; let clusters = op!([ctx] cluster_get { @@ -82,17 +21,17 @@ pub async fn list( .await? .clusters .into_iter() - .map(models::AdminCluster::api_try_from) + .map(models::AdminClustersCluster::api_try_from) .collect::>>()?; - Ok(models::AdminClustersListResponse { clusters }) + Ok(models::AdminClustersListClustersResponse { clusters }) } // MARK: POST /cluster pub async fn create( ctx: Ctx, - body: models::AdminClustersCreateRequest, -) -> GlobalResult { + body: models::AdminClustersCreateClusterRequest, +) -> GlobalResult { let cluster_id = Uuid::new_v4(); msg!([ctx] cluster::msg::create(cluster_id) -> cluster::msg::create_complete { @@ -102,5 +41,5 @@ pub async fn create( }) .await?; - Ok(models::AdminClustersCreateResponse { cluster_id }) + Ok(models::AdminClustersCreateClusterResponse { cluster_id }) } diff --git a/svc/api/admin/src/route/clusters/servers.rs b/svc/api/admin/src/route/clusters/servers.rs new file mode 100644 index 000000000..cf7e736aa --- /dev/null +++ b/svc/api/admin/src/route/clusters/servers.rs @@ -0,0 +1,111 @@ +use api_helper::{anchor::WatchIndexQuery, ctx::Ctx}; +use rivet_api::models; +use rivet_convert::ApiFrom; +use rivet_operation::prelude::{ + proto::backend::{self, pkg::*}, + *, +}; +use serde::Deserialize; +use serde_json::{json, Value}; + +use crate::auth::Auth; + +#[derive(Debug, Clone, Deserialize)] +pub struct ServerFilterQuery { + server_id: Option, + datacenter: Option, + pool: Option, + public_ip: Option, +} + +impl ServerFilterQuery { + async fn convert_to_proto( + &self, + ctx: &Ctx, + cluster_id: Uuid, + ) -> GlobalResult { + let mut filter = backend::cluster::ServerFilter::default(); + + filter.filter_cluster_ids = true; + filter.cluster_ids = vec![cluster_id.into()]; + + if let Some(server_id) = self.server_id { + filter.filter_server_ids = true; + filter.server_ids = vec![server_id.into()]; + } + + if let Some(name_id) = &self.datacenter { + // Look up datacenter + let resolve_res = op!([ctx] cluster_datacenter_resolve_for_name_id { + cluster_id: Some(cluster_id.into()), + name_ids: vec![name_id.clone()], + }) + .await?; + let datacenter = unwrap!(resolve_res.datacenters.first(), "datacenter not found"); + + // Filter datacenters + filter.filter_datacenter_ids = true; + filter.datacenter_ids = vec![unwrap!(datacenter.datacenter_id)]; + } + + if let Some(pool) = self.pool { + let pool_type = >::api_from(pool); + + filter.filter_pool_types = true; + filter.pool_types = vec![pool_type as i32]; + } + + if let Some(public_ip) = &self.public_ip { + filter.filter_public_ips = true; + filter.public_ips = vec![public_ip.clone()]; + } + + Ok(filter) + } +} + +// MARK: GET /clusters/{cluster_id}/servers +pub async fn list( + ctx: Ctx, + cluster_id: Uuid, + _watch_index: WatchIndexQuery, + query: ServerFilterQuery, +) -> GlobalResult { + let filter = query.convert_to_proto(&ctx, cluster_id).await?; + + let servers_res = op!([ctx] cluster_server_list { + filter: Some(filter) + }) + .await?; + + let servers = servers_res + .servers + .iter() + .map(|x| { + GlobalResult::Ok(models::AdminClustersServer { + server_id: unwrap!(x.server_id).as_uuid(), + public_ip: x.public_ip.clone().unwrap_or_default(), + }) + }) + .collect::>>()?; + + Ok(models::AdminClustersListServersResponse { servers }) +} + +// MARK: GET /clusters/{cluster_id}/servers/taint +pub async fn taint( + ctx: Ctx, + cluster_id: Uuid, + _watch_index: WatchIndexQuery, + query: ServerFilterQuery, +) -> GlobalResult { + let filter = query.convert_to_proto(&ctx, cluster_id).await?; + + let request_id = Uuid::new_v4(); + msg!([ctx] cluster::msg::server_taint(request_id) -> cluster::msg::datacenter_scale { + filter: Some(filter), + }) + .await?; + + Ok(json!({})) +} diff --git a/svc/api/admin/src/route/mod.rs b/svc/api/admin/src/route/mod.rs index af83cd417..e20cc5df8 100644 --- a/svc/api/admin/src/route/mod.rs +++ b/svc/api/admin/src/route/mod.rs @@ -30,31 +30,34 @@ define_router! { "clusters": { GET: clusters::list(), POST: clusters::create( - body: models::AdminClustersCreateRequest, + body: models::AdminClustersCreateClusterRequest, ), }, - "clusters" / "server_ips": { - GET: clusters::server_ips( - query: clusters::ServerIpsQuery, + "clusters" / Uuid / "servers": { + GET: clusters::servers::list( + query: clusters::servers::ServerFilterQuery, + ), + }, + + "clusters" / Uuid / "servers" / "taint": { + GET: clusters::servers::taint( + query: clusters::servers::ServerFilterQuery, ), }, "clusters" / Uuid / "datacenters": { GET: clusters::datacenters::list(), POST: clusters::datacenters::create( - body: models::AdminClustersDatacentersCreateRequest, + body: models::AdminClustersCreateDatacenterRequest, ), }, "clusters" / Uuid / "datacenters" / Uuid : { PATCH: clusters::datacenters::update( - body: models::AdminClustersDatacentersUpdateRequest, + body: models::AdminClustersUpdateDatacenterRequest, ), }, - "clusters" / Uuid / "datacenters" / Uuid / "taint": { - GET: clusters::datacenters::taint(), - }, }, } diff --git a/svc/pkg/cluster/ops/server-get/src/lib.rs b/svc/pkg/cluster/ops/server-get/src/lib.rs index ffaec11b0..2b55f64ef 100644 --- a/svc/pkg/cluster/ops/server-get/src/lib.rs +++ b/svc/pkg/cluster/ops/server-get/src/lib.rs @@ -1,4 +1,7 @@ -use std::net::IpAddr; +use std::{ + convert::{TryFrom, TryInto}, + net::IpAddr, +}; use proto::backend::{self, pkg::*}; use rivet_operation::prelude::*; @@ -6,6 +9,7 @@ use rivet_operation::prelude::*; #[derive(sqlx::FromRow)] struct Server { server_id: Uuid, + cluster_id: Uuid, datacenter_id: Uuid, pool_type: i64, vlan_ip: Option, @@ -13,16 +17,19 @@ struct Server { cloud_destroy_ts: Option, } -impl From for backend::cluster::Server { - fn from(value: Server) -> Self { - backend::cluster::Server { +impl TryFrom for backend::cluster::Server { + type Error = GlobalError; + + fn try_from(value: Server) -> GlobalResult { + Ok(backend::cluster::Server { server_id: Some(value.server_id.into()), + cluster_id: Some(value.cluster_id.into()), datacenter_id: Some(value.datacenter_id.into()), - pool_type: value.pool_type as i32, + pool_type: value.pool_type.try_into()?, vlan_ip: value.vlan_ip.map(|ip| ip.to_string()), public_ip: value.public_ip.map(|ip| ip.to_string()), cloud_destroy_ts: value.cloud_destroy_ts, - } + }) } } @@ -41,12 +48,14 @@ pub async fn handle( " SELECT server_id, - datacenter_id, + d.cluster_id, + s.datacenter_id, pool_type, vlan_ip, public_ip, cloud_destroy_ts - FROM db_cluster.servers + FROM db_cluster.servers AS s + LEFT JOIN db_cluster.datacenters AS d ON servers.server_id = datacenters.server_id WHERE server_id = ANY($1) ", server_ids @@ -54,6 +63,9 @@ pub async fn handle( .await?; Ok(cluster::server_get::Response { - servers: servers.into_iter().map(Into::into).collect::>(), + servers: servers + .into_iter() + .map(TryInto::try_into) + .collect::>>()?, }) } diff --git a/svc/pkg/cluster/ops/server-list/src/lib.rs b/svc/pkg/cluster/ops/server-list/src/lib.rs index a84152851..cc9b50d91 100644 --- a/svc/pkg/cluster/ops/server-list/src/lib.rs +++ b/svc/pkg/cluster/ops/server-list/src/lib.rs @@ -1,79 +1,123 @@ -use std::collections::HashMap; +use std::{ + convert::{TryFrom, TryInto}, + net::IpAddr, +}; -use proto::backend::pkg::*; +use proto::backend::{self, pkg::*}; use rivet_operation::prelude::*; #[derive(sqlx::FromRow)] struct Server { - cluster_id: Uuid, server_id: Uuid, + cluster_id: Uuid, + datacenter_id: Uuid, + pool_type: i64, + vlan_ip: Option, + public_ip: Option, + cloud_destroy_ts: Option, +} + +impl TryFrom for backend::cluster::Server { + type Error = GlobalError; + + fn try_from(value: Server) -> GlobalResult { + Ok(backend::cluster::Server { + server_id: Some(value.server_id.into()), + cluster_id: Some(value.cluster_id.into()), + datacenter_id: Some(value.datacenter_id.into()), + pool_type: value.pool_type.try_into()?, + vlan_ip: value.vlan_ip.map(|ip| ip.to_string()), + public_ip: value.public_ip.map(|ip| ip.to_string()), + cloud_destroy_ts: value.cloud_destroy_ts, + }) + } } #[operation(name = "cluster-server-list")] pub async fn handle( ctx: OperationContext, ) -> GlobalResult { - let cluster_ids = ctx - .cluster_ids - .iter() - .map(common::Uuid::as_uuid) - .collect::>(); + let filter = unwrap_ref!(ctx.filter); - let servers = if ctx.include_destroyed { - sql_fetch_all!( - [ctx, Server] - " - SELECT d.cluster_id, s.server_id - FROM db_cluster.servers AS s - JOIN db_cluster.datacenters AS d - ON s.datacenter_id = d.datacenter_id - WHERE - d.cluster_id = ANY($1) AND - s.taint_ts IS NULL - ", - &cluster_ids + let server_ids = if filter.filter_server_ids { + Some( + filter + .server_ids + .iter() + .map(|&x| x.into()) + .collect::>(), ) - .await? } else { - sql_fetch_all!( - [ctx, Server] - " - SELECT d.cluster_id, s.server_id - FROM db_cluster.servers AS s - JOIN db_cluster.datacenters AS d - ON s.datacenter_id = d.datacenter_id - WHERE - d.cluster_id = ANY($1) AND - s.cloud_destroy_ts IS NULL AND - s.taint_ts IS NULL - ", - &cluster_ids + None + }; + let cluster_ids = if filter.filter_cluster_ids { + Some( + filter + .cluster_ids + .iter() + .map(|&x| x.into()) + .collect::>(), ) - .await? + } else { + None + }; + let datacenter_ids = if filter.filter_datacenter_ids { + Some( + filter + .datacenter_ids + .iter() + .map(|&x| x.into()) + .collect::>(), + ) + } else { + None + }; + let pool_types = if filter.filter_pool_types { + Some(&filter.pool_types) + } else { + None + }; + let public_ips = if filter.filter_public_ips { + Some(&filter.public_ips) + } else { + None }; - // Fill in empty clusters - let mut dcs_by_cluster_id = cluster_ids - .iter() - .map(|cluster_id| (*cluster_id, Vec::new())) - .collect::>>(); - - for dc in servers { - dcs_by_cluster_id - .entry(dc.cluster_id) - .or_default() - .push(dc.server_id); - } + let servers = sql_fetch_all!( + [ctx, Server] + " + SELECT + s.server_id, + d.cluster_id, + s.datacenter_id, + s.pool_type, + s.vlan_ip, + s.public_ip, + s.cloud_destroy_ts + FROM db_cluster.servers AS s + JOIN db_cluster.datacenters AS d + ON s.datacenter_id = d.datacenter_id + WHERE + ($1 OR s.cloud_destroy_ts IS NULL) + AND ($2 IS NULL OR s.server_id = ANY($2)) + AND ($3 IS NULL OR d.cluster_id = ANY($3)) + AND ($4 IS NULL OR s.datacenter_id = ANY($4)) + AND ($5 IS NULL OR s.pool_type = ANY($5)) + AND ($6 IS NULL OR s.public_ip = ANY($6::inet[])) + ", + ctx.include_destroyed, + &server_ids, + &cluster_ids, + &datacenter_ids, + &pool_types, + &public_ips, + ) + .await?; Ok(cluster::server_list::Response { - clusters: dcs_by_cluster_id + servers: servers .into_iter() - .map( - |(cluster_id, server_ids)| cluster::server_list::response::Cluster { - cluster_id: Some(cluster_id.into()), - server_ids: server_ids.into_iter().map(Into::into).collect::>(), - }, - ) - .collect::>(), + .map(TryInto::try_into) + .collect::>>()?, }) } diff --git a/svc/pkg/cluster/standalone/default-update/src/lib.rs b/svc/pkg/cluster/standalone/default-update/src/lib.rs index 0f21eac74..6634e39ae 100644 --- a/svc/pkg/cluster/standalone/default-update/src/lib.rs +++ b/svc/pkg/cluster/standalone/default-update/src/lib.rs @@ -172,11 +172,11 @@ pub async fn run_from_env(use_autoscaler: bool) -> GlobalResult<()> { } for (name_id, datacenter) in config.datacenters { - let datacenter_id_proto = Some(datacenter.datacenter_id.into()); + let datacenter_id_proto = datacenter.datacenter_id.into(); let existing_datacenter = datacenters_res .datacenters .iter() - .any(|dc| dc.datacenter_id == datacenter_id_proto); + .any(|dc| dc.datacenter_id == Some(datacenter_id_proto)); // Update existing datacenter if existing_datacenter { @@ -210,7 +210,7 @@ pub async fn run_from_env(use_autoscaler: bool) -> GlobalResult<()> { .collect::>(); msg!([ctx] @wait cluster::msg::datacenter_update(datacenter.datacenter_id) { - datacenter_id: datacenter_id_proto, + datacenter_id: Some(datacenter_id_proto), pools: new_pools, }) .await?; @@ -218,7 +218,7 @@ pub async fn run_from_env(use_autoscaler: bool) -> GlobalResult<()> { // Create new datacenter else { msg!([ctx] @wait cluster::msg::datacenter_create(datacenter.datacenter_id) { - datacenter_id: datacenter_id_proto, + datacenter_id: Some(datacenter_id_proto), cluster_id: Some(cluster_id.into()), name_id, display_name: datacenter.display_name, @@ -247,8 +247,13 @@ pub async fn run_from_env(use_autoscaler: bool) -> GlobalResult<()> { // excess. // Taint datacenter if taint { - msg!([ctx] @wait cluster::msg::datacenter_taint(datacenter.datacenter_id) { - datacenter_id: datacenter_id_proto, + let request_id = Uuid::new_v4(); + msg!([ctx] @wait cluster::msg::server_taint(request_id) { + filter: Some(backend::cluster::ServerFilter { + filter_datacenter_ids: true, + datacenter_ids: vec![datacenter_id_proto], + ..Default::default() + }), }) .await?; } diff --git a/svc/pkg/cluster/types/msg/datacenter-taint.proto b/svc/pkg/cluster/types/msg/datacenter-taint.proto deleted file mode 100644 index 410eabb2b..000000000 --- a/svc/pkg/cluster/types/msg/datacenter-taint.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; - -package rivet.backend.pkg.cluster.msg.datacenter_taint; - -import "proto/common.proto"; - -/// name = "msg-cluster-datacenter-taint" -/// parameters = [ -/// { name = "datacenter_id" }, -/// ] -message Message { - rivet.common.Uuid datacenter_id = 1; -} diff --git a/svc/pkg/cluster/types/msg/server-taint.proto b/svc/pkg/cluster/types/msg/server-taint.proto new file mode 100644 index 000000000..34513f39f --- /dev/null +++ b/svc/pkg/cluster/types/msg/server-taint.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package rivet.backend.pkg.cluster.msg.server_taint; + +import "proto/common.proto"; +import "proto/backend/cluster.proto"; + +/// name = "msg-cluster-server-taint" +/// parameters = [ +/// { name = "request_id" }, +/// ] +message Message { + rivet.backend.cluster.ServerFilter filter = 2; +} diff --git a/svc/pkg/cluster/types/server-list.proto b/svc/pkg/cluster/types/server-list.proto index e88bf382c..297a7f5cf 100644 --- a/svc/pkg/cluster/types/server-list.proto +++ b/svc/pkg/cluster/types/server-list.proto @@ -6,15 +6,10 @@ import "proto/common.proto"; import "proto/backend/cluster.proto"; message Request { - repeated rivet.common.Uuid cluster_ids = 1; + rivet.backend.cluster.ServerFilter filter = 1; bool include_destroyed = 2; } message Response { - message Cluster { - rivet.common.Uuid cluster_id = 1; - repeated rivet.common.Uuid server_ids = 2; - } - - repeated Cluster clusters = 1; + repeated rivet.backend.cluster.Server servers = 1; } diff --git a/svc/pkg/cluster/worker/src/workers/datacenter_taint.rs b/svc/pkg/cluster/worker/src/workers/datacenter_taint.rs deleted file mode 100644 index d824a9ec5..000000000 --- a/svc/pkg/cluster/worker/src/workers/datacenter_taint.rs +++ /dev/null @@ -1,32 +0,0 @@ -use chirp_worker::prelude::*; -use proto::backend::pkg::*; - -#[worker(name = "cluster-datacenter-taint")] -async fn worker( - ctx: &OperationContext, -) -> GlobalResult<()> { - let datacenter_id = unwrap_ref!(ctx.datacenter_id).as_uuid(); - - // Taint server records. These will be incrementally drained and destroyed by `cluster-datacenter-scale` - sql_execute!( - [ctx] - " - UPDATE db_cluster.servers - SET taint_ts = $2 - WHERE - datacenter_id = $1 AND - taint_ts IS NULL - ", - &datacenter_id, - util::timestamp::now(), - ) - .await?; - - // Trigger rescale - msg!([ctx] cluster::msg::datacenter_scale(datacenter_id) { - datacenter_id: Some(datacenter_id.into()), - }) - .await?; - - Ok(()) -} diff --git a/svc/pkg/cluster/worker/src/workers/mod.rs b/svc/pkg/cluster/worker/src/workers/mod.rs index b0de24e2c..a943ba64d 100644 --- a/svc/pkg/cluster/worker/src/workers/mod.rs +++ b/svc/pkg/cluster/worker/src/workers/mod.rs @@ -1,7 +1,6 @@ pub mod create; pub mod datacenter_create; pub mod datacenter_scale; -pub mod datacenter_taint; pub mod datacenter_tls_issue; pub mod datacenter_update; pub mod game_link; @@ -14,13 +13,14 @@ pub mod server_drain; pub mod server_install; pub mod server_install_complete; pub mod server_provision; +pub mod server_taint; pub mod server_undrain; chirp_worker::workers![ + server_taint, create, datacenter_create, datacenter_scale, - datacenter_taint, datacenter_tls_issue, datacenter_update, game_link, diff --git a/svc/pkg/cluster/worker/src/workers/server_taint.rs b/svc/pkg/cluster/worker/src/workers/server_taint.rs new file mode 100644 index 000000000..d0625fb61 --- /dev/null +++ b/svc/pkg/cluster/worker/src/workers/server_taint.rs @@ -0,0 +1,92 @@ +use chirp_worker::prelude::*; +use proto::backend::pkg::*; +use std::collections::HashSet; + +#[worker(name = "cluster-server-taint")] +async fn worker(ctx: &OperationContext) -> GlobalResult<()> { + let filter = unwrap_ref!(ctx.filter); + + let server_ids = if filter.filter_server_ids { + Some( + filter + .server_ids + .iter() + .map(|&x| x.into()) + .collect::>(), + ) + } else { + None + }; + let cluster_ids = if filter.filter_cluster_ids { + Some( + filter + .cluster_ids + .iter() + .map(|&x| x.into()) + .collect::>(), + ) + } else { + None + }; + let datacenter_ids = if filter.filter_datacenter_ids { + Some( + filter + .datacenter_ids + .iter() + .map(|&x| x.into()) + .collect::>(), + ) + } else { + None + }; + let pool_types = if filter.filter_pool_types { + Some(&filter.pool_types) + } else { + None + }; + let public_ips = if filter.filter_public_ips { + Some(&filter.public_ips) + } else { + None + }; + + // Taint server records. These will be incrementally drained and destroyed by `cluster-datacenter-scale` + let updated_dc_ids = sql_fetch_all!( + [ctx, (Uuid,)] + " + UPDATE db_cluster.servers AS s + SET taint_ts = $1 + FROM db_cluster.datacenters AS d + WHERE + s.datacenter_id = d.id + AND s.taint_ts IS NULL + AND ($2 IS NULL OR s.server_id = ANY($2)) + AND ($3 IS NULL OR d.cluster_id = ANY($3)) + AND ($4 IS NULL OR s.datacenter_id = ANY($4)) + AND ($5 IS NULL OR s.pool_type = ANY($5)) + AND ($6 IS NULL OR s.public_ip = ANY($6::inet[])) + RETURNING s.datacenter_id + ", + util::timestamp::now(), + &server_ids, + &cluster_ids, + &datacenter_ids, + &pool_types, + &public_ips, + ) + .await?; + + // Trigger rescale in affected datacenters + let updated_dc_ids = updated_dc_ids + .into_iter() + .map(|x| x.0) + .collect::>(); + for dc_id in updated_dc_ids { + msg!([ctx] cluster::msg::datacenter_scale(dc_id) { + datacenter_id: Some(dc_id.into()), + }) + .await?; + } + + Ok(()) +} diff --git a/svc/pkg/cluster/worker/tests/datacenter_taint.rs b/svc/pkg/cluster/worker/tests/server_taint.rs similarity index 91% rename from svc/pkg/cluster/worker/tests/datacenter_taint.rs rename to svc/pkg/cluster/worker/tests/server_taint.rs index e074e4c11..15f96a406 100644 --- a/svc/pkg/cluster/worker/tests/datacenter_taint.rs +++ b/svc/pkg/cluster/worker/tests/server_taint.rs @@ -81,8 +81,12 @@ async fn datacenter_taint(ctx: TestCtx) { // TODO: The servers brought up by this taint (and subsequent scale) aren't tagged as "test" so they wont // be garbage collected if the test fails // Taint datacenter - msg!([ctx] cluster::msg::datacenter_taint(datacenter_id) -> cluster::msg::datacenter_scale { - datacenter_id: Some(datacenter_id.into()), + msg!([ctx] cluster::msg::server_taint(datacenter_id) -> cluster::msg::datacenter_scale { + filter: Some(backend::cluster::ServerFilter { + filter_datacenter_ids: true, + datacenter_ids: vec![datacenter_id.into()], + ..Default::default() + }), }) .await .unwrap();