diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bdf2e4..3b05c0b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,10 +5,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Setup Go 1.25.8 + - name: Setup Go 1.25.9 uses: actions/setup-go@v5 with: - go-version: 1.25.8 + go-version: 1.25.9 # You can test your matrix by printing the current Go version - name: Display Go version run: go version diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 67ced2c..c7e0dbe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,7 +34,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: "1.25.8" + go-version: "1.25.9" - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 diff --git a/cmd/pod/create.go b/cmd/pod/create.go index b0ce127..5ccd728 100644 --- a/cmd/pod/create.go +++ b/cmd/pod/create.go @@ -54,6 +54,13 @@ var ( createDataCenterIDs string createSSH bool createNetworkVolumeID string + createMinCudaVersion string + createDockerArgs string + createRegistryAuthID string + createCountryCode string + createStopAfter string + createTerminateAfter string + createCompliance string ) func init() { @@ -74,6 +81,13 @@ func init() { createCmd.Flags().StringVar(&createDataCenterIDs, "data-center-ids", "", "comma-separated list of data center ids") createCmd.Flags().BoolVar(&createSSH, "ssh", true, "enable ssh on the pod") createCmd.Flags().StringVar(&createNetworkVolumeID, "network-volume-id", "", "network volume id to attach") + createCmd.Flags().StringVar(&createMinCudaVersion, "min-cuda-version", "", "minimum cuda version (e.g., 12.6)") + createCmd.Flags().StringVar(&createDockerArgs, "docker-args", "", "docker cmd arguments") + createCmd.Flags().StringVar(&createRegistryAuthID, "registry-auth-id", "", "container registry auth id (from 'runpodctl registry list')") + createCmd.Flags().StringVar(&createCountryCode, "country-code", "", "limit pod to a specific country (e.g., US, DE)") + createCmd.Flags().StringVar(&createStopAfter, "stop-after", "", "auto-stop datetime (e.g., 2026-04-15T00:00:00Z)") + createCmd.Flags().StringVar(&createTerminateAfter, "terminate-after", "", "auto-terminate datetime (e.g., 2026-04-15T00:00:00Z)") + createCmd.Flags().StringVar(&createCompliance, "compliance", "", "comma-separated compliance requirements (e.g., HIPAA,SOC_2_TYPE_2)") } func runCreate(cmd *cobra.Command, args []string) error { @@ -188,6 +202,34 @@ func createPodGraphQL(gpuTypeID, cloudType string, supportPublicIP bool) (map[st } } + if createMinCudaVersion != "" { + req.MinCudaVersion = createMinCudaVersion + } + + if createDockerArgs != "" { + req.DockerArgs = createDockerArgs + } + + if createRegistryAuthID != "" { + req.ContainerRegistryAuthId = createRegistryAuthID + } + + if createCountryCode != "" { + req.CountryCode = createCountryCode + } + + if createStopAfter != "" { + req.StopAfter = createStopAfter + } + + if createTerminateAfter != "" { + req.TerminateAfter = createTerminateAfter + } + + if createCompliance != "" { + req.Compliance = strings.Split(createCompliance, ",") + } + if createEnv != "" { var envMap map[string]string if err := json.Unmarshal([]byte(createEnv), &envMap); err != nil { @@ -237,6 +279,14 @@ func createPodREST(computeType, gpuTypeID, cloudType string, supportPublicIP boo req.DataCenterIDs = strings.Split(createDataCenterIDs, ",") } + if createMinCudaVersion != "" { + req.MinCudaVersion = createMinCudaVersion + } + + if createDockerArgs != "" { + req.DockerArgs = createDockerArgs + } + if createEnv != "" { var env map[string]string if err := json.Unmarshal([]byte(createEnv), &env); err != nil { diff --git a/cmd/serverless/create.go b/cmd/serverless/create.go index f94e017..a86c76e 100644 --- a/cmd/serverless/create.go +++ b/cmd/serverless/create.go @@ -19,15 +19,22 @@ var createCmd = &cobra.Command{ } var ( - createName string - createTemplateID string - createComputeType string - createGpuTypeID string - createGpuCount int - createWorkersMin int - createWorkersMax int + createName string + createTemplateID string + createComputeType string + createGpuTypeID string + createGpuCount int + createWorkersMin int + createWorkersMax int createDataCenterIDs string createNetworkVolumeID string + createMinCudaVersion string + createScaleBy string + createScaleThreshold int + createIdleTimeout int + createFlashBoot bool + createExecutionTimeout int + createNetworkVolumeIDs string ) func init() { @@ -40,6 +47,13 @@ func init() { createCmd.Flags().IntVar(&createWorkersMax, "workers-max", 3, "maximum number of workers") createCmd.Flags().StringVar(&createDataCenterIDs, "data-center-ids", "", "comma-separated list of data center ids") createCmd.Flags().StringVar(&createNetworkVolumeID, "network-volume-id", "", "network volume id to attach") + createCmd.Flags().StringVar(&createMinCudaVersion, "min-cuda-version", "", "minimum cuda version (e.g., 12.6)") + createCmd.Flags().StringVar(&createScaleBy, "scale-by", "", "autoscale strategy: delay (seconds of queue wait) or requests (pending request count)") + createCmd.Flags().IntVar(&createScaleThreshold, "scale-threshold", -1, "trigger point for autoscaler (delay: seconds, requests: count)") + createCmd.Flags().IntVar(&createIdleTimeout, "idle-timeout", -1, "seconds before idle worker scales down (1-3600)") + createCmd.Flags().BoolVar(&createFlashBoot, "flash-boot", true, "enable flash boot") + createCmd.Flags().IntVar(&createExecutionTimeout, "execution-timeout", -1, "max seconds per request") + createCmd.Flags().StringVar(&createNetworkVolumeIDs, "network-volume-ids", "", "comma-separated network volume ids for multi-region") createCmd.MarkFlagRequired("template-id") //nolint:errcheck } @@ -76,12 +90,57 @@ func runCreate(cmd *cobra.Command, args []string) error { req.DataCenterIDs = strings.Split(createDataCenterIDs, ",") } + if createMinCudaVersion != "" { + req.MinCudaVersion = createMinCudaVersion + } + + if createScaleBy != "" { + switch strings.ToLower(strings.TrimSpace(createScaleBy)) { + case "delay": + req.ScalerType = "QUEUE_DELAY" + case "requests": + req.ScalerType = "REQUEST_COUNT" + default: + return fmt.Errorf("invalid --scale-by %q (use delay or requests)", createScaleBy) + } + } + + if createScaleThreshold >= 0 { + req.ScalerValue = createScaleThreshold + } + + if createIdleTimeout >= 0 { + if createIdleTimeout < 1 || createIdleTimeout > 3600 { + return fmt.Errorf("--idle-timeout must be between 1 and 3600 seconds") + } + req.IdleTimeout = createIdleTimeout + } + + if createExecutionTimeout >= 0 { + req.ExecutionTimeoutMs = createExecutionTimeout * 1000 + } + + if createNetworkVolumeIDs != "" { + req.NetworkVolumeIDs = strings.Split(createNetworkVolumeIDs, ",") + } + endpoint, err := client.CreateEndpoint(req) if err != nil { output.Error(err) return fmt.Errorf("failed to create endpoint: %w", err) } + // rest create ignores flashboot=false, so patch immediately after create + if !createFlashBoot { + fb := false + _, err := client.UpdateEndpoint(endpoint.ID, &api.EndpointUpdateRequest{Flashboot: &fb}) + if err != nil { + output.Error(err) + return fmt.Errorf("endpoint created but failed to disable flashboot: %w", err) + } + endpoint.Flashboot = &fb + } + format := output.ParseFormat(cmd.Flag("output").Value.String()) return output.Print(endpoint, &output.Config{Format: format}) } diff --git a/cmd/serverless/serverless_test.go b/cmd/serverless/serverless_test.go index 148f9e5..6e57443 100644 --- a/cmd/serverless/serverless_test.go +++ b/cmd/serverless/serverless_test.go @@ -82,8 +82,11 @@ func TestUpdateCmd_Flags(t *testing.T) { if flags.Lookup("idle-timeout") == nil { t.Error("expected --idle-timeout flag") } - if flags.Lookup("scaler-type") == nil { - t.Error("expected --scaler-type flag") + if flags.Lookup("scale-by") == nil { + t.Error("expected --scale-by flag") + } + if flags.Lookup("scale-threshold") == nil { + t.Error("expected --scale-threshold flag") } } diff --git a/cmd/serverless/update.go b/cmd/serverless/update.go index ee247d9..4503f03 100644 --- a/cmd/serverless/update.go +++ b/cmd/serverless/update.go @@ -2,6 +2,7 @@ package serverless import ( "fmt" + "strings" "github.com/runpod/runpodctl/internal/api" "github.com/runpod/runpodctl/internal/output" @@ -22,8 +23,8 @@ var ( updateWorkersMin int updateWorkersMax int updateIdleTimeout int - updateScalerType string - updateScalerValue int + updateScaleBy string + updateScaleThreshold int ) func init() { @@ -31,8 +32,8 @@ func init() { updateCmd.Flags().IntVar(&updateWorkersMin, "workers-min", -1, "new minimum number of workers") updateCmd.Flags().IntVar(&updateWorkersMax, "workers-max", -1, "new maximum number of workers") updateCmd.Flags().IntVar(&updateIdleTimeout, "idle-timeout", -1, "new idle timeout in seconds") - updateCmd.Flags().StringVar(&updateScalerType, "scaler-type", "", "scaler type (QUEUE_DELAY or REQUEST_COUNT)") - updateCmd.Flags().IntVar(&updateScalerValue, "scaler-value", -1, "scaler value") + updateCmd.Flags().StringVar(&updateScaleBy, "scale-by", "", "autoscale strategy: delay (seconds of queue wait) or requests (pending request count)") + updateCmd.Flags().IntVar(&updateScaleThreshold, "scale-threshold", -1, "trigger point for autoscaler (delay: seconds, requests: count)") } func runUpdate(cmd *cobra.Command, args []string) error { @@ -58,11 +59,18 @@ func runUpdate(cmd *cobra.Command, args []string) error { if updateIdleTimeout >= 0 { req.IdleTimeout = updateIdleTimeout } - if updateScalerType != "" { - req.ScalerType = updateScalerType + if updateScaleBy != "" { + switch strings.ToLower(strings.TrimSpace(updateScaleBy)) { + case "delay": + req.ScalerType = "QUEUE_DELAY" + case "requests": + req.ScalerType = "REQUEST_COUNT" + default: + return fmt.Errorf("invalid --scale-by %q (use delay or requests)", updateScaleBy) + } } - if updateScalerValue >= 0 { - req.ScalerValue = updateScalerValue + if updateScaleThreshold >= 0 { + req.ScalerValue = updateScaleThreshold } endpoint, err := client.UpdateEndpoint(endpointID, req) diff --git a/docs/github-issue-notes.md b/docs/github-issue-notes.md deleted file mode 100644 index 2fac53a..0000000 --- a/docs/github-issue-notes.md +++ /dev/null @@ -1,21 +0,0 @@ -# GitHub Issue Notes (Pending) - -- #31 Public IP filter (community cloud) - - Add flag on pod create (e.g., `--public-ip` / `--require-public-ip`) - - Map to API field that enforces public IP on community pods - - Add E2E test that creates a community pod with public IP requirement - -- #190 Global networking option - - Add flag on pod create (e.g., `--global-network`) - - Wire to API field once confirmed - - Add E2E coverage - -- #152 Python version for exec - - Add `--python` flag to `runpodctl exec python` (default `python3`) - - Use the flag when running remote commands - - Add unit test for flag handling - -- #118 Help text consistency - - Normalize help strings (consistent casing) - - Remove optional plurals like `(s)` - - Update command help across CLI diff --git a/docs/runpodctl.md b/docs/runpodctl.md index 0b8218c..c9ea98f 100644 --- a/docs/runpodctl.md +++ b/docs/runpodctl.md @@ -61,4 +61,4 @@ deprecated * [runpodctl user](runpodctl_user.md) - show account info * [runpodctl version](runpodctl_version.md) - print the version -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_billing.md b/docs/runpodctl_billing.md index 02e12c6..f7d0534 100644 --- a/docs/runpodctl_billing.md +++ b/docs/runpodctl_billing.md @@ -25,4 +25,4 @@ view billing history for pods, serverless, and network volumes * [runpodctl billing pods](runpodctl_billing_pods.md) - view pod billing history * [runpodctl billing serverless](runpodctl_billing_serverless.md) - view serverless billing history -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_billing_network-volume.md b/docs/runpodctl_billing_network-volume.md index 942bb01..94f003c 100644 --- a/docs/runpodctl_billing_network-volume.md +++ b/docs/runpodctl_billing_network-volume.md @@ -29,4 +29,4 @@ runpodctl billing network-volume [flags] * [runpodctl billing](runpodctl_billing.md) - view billing history -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_billing_pods.md b/docs/runpodctl_billing_pods.md index fe79d4e..43df830 100644 --- a/docs/runpodctl_billing_pods.md +++ b/docs/runpodctl_billing_pods.md @@ -32,4 +32,4 @@ runpodctl billing pods [flags] * [runpodctl billing](runpodctl_billing.md) - view billing history -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_billing_serverless.md b/docs/runpodctl_billing_serverless.md index 7f30b17..346c12a 100644 --- a/docs/runpodctl_billing_serverless.md +++ b/docs/runpodctl_billing_serverless.md @@ -32,4 +32,4 @@ runpodctl billing serverless [flags] * [runpodctl billing](runpodctl_billing.md) - view billing history -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_completion.md b/docs/runpodctl_completion.md index cf98b61..bf8e9a8 100644 --- a/docs/runpodctl_completion.md +++ b/docs/runpodctl_completion.md @@ -26,4 +26,4 @@ runpodctl completion [flags] * [runpodctl](runpodctl.md) - cli for runpod.io -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_datacenter.md b/docs/runpodctl_datacenter.md index 9f9799a..74dfe3e 100644 --- a/docs/runpodctl_datacenter.md +++ b/docs/runpodctl_datacenter.md @@ -23,4 +23,4 @@ list datacenters and their gpu availability * [runpodctl](runpodctl.md) - cli for runpod.io * [runpodctl datacenter list](runpodctl_datacenter_list.md) - list all datacenters -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_datacenter_list.md b/docs/runpodctl_datacenter_list.md index f7dc2be..4b7408f 100644 --- a/docs/runpodctl_datacenter_list.md +++ b/docs/runpodctl_datacenter_list.md @@ -26,4 +26,4 @@ runpodctl datacenter list [flags] * [runpodctl datacenter](runpodctl_datacenter.md) - list datacenters -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_doctor.md b/docs/runpodctl_doctor.md index 5bd3444..fbdc29d 100644 --- a/docs/runpodctl_doctor.md +++ b/docs/runpodctl_doctor.md @@ -26,4 +26,4 @@ runpodctl doctor [flags] * [runpodctl](runpodctl.md) - cli for runpod.io -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_gpu.md b/docs/runpodctl_gpu.md index cf23762..7c44471 100644 --- a/docs/runpodctl_gpu.md +++ b/docs/runpodctl_gpu.md @@ -23,4 +23,4 @@ list available gpu types and their availability * [runpodctl](runpodctl.md) - cli for runpod.io * [runpodctl gpu list](runpodctl_gpu_list.md) - list available gpu types -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_gpu_list.md b/docs/runpodctl_gpu_list.md index 43e309d..9d83e72 100644 --- a/docs/runpodctl_gpu_list.md +++ b/docs/runpodctl_gpu_list.md @@ -27,4 +27,4 @@ runpodctl gpu list [flags] * [runpodctl gpu](runpodctl_gpu.md) - list available gpu types -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_model.md b/docs/runpodctl_model.md index f36b065..48e5b5d 100644 --- a/docs/runpodctl_model.md +++ b/docs/runpodctl_model.md @@ -25,4 +25,4 @@ manage models in the runpod model repository * [runpodctl model list](runpodctl_model_list.md) - list models * [runpodctl model remove](runpodctl_model_remove.md) - remove a model -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_model_add.md b/docs/runpodctl_model_add.md index 875d64e..97cf2d1 100644 --- a/docs/runpodctl_model_add.md +++ b/docs/runpodctl_model_add.md @@ -38,4 +38,4 @@ runpodctl model add [flags] * [runpodctl model](runpodctl_model.md) - manage model repository -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_model_list.md b/docs/runpodctl_model_list.md index d39c680..f00f546 100644 --- a/docs/runpodctl_model_list.md +++ b/docs/runpodctl_model_list.md @@ -29,4 +29,4 @@ runpodctl model list [flags] * [runpodctl model](runpodctl_model.md) - manage model repository -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_model_remove.md b/docs/runpodctl_model_remove.md index 6940cad..1f795df 100644 --- a/docs/runpodctl_model_remove.md +++ b/docs/runpodctl_model_remove.md @@ -28,4 +28,4 @@ runpodctl model remove [flags] * [runpodctl model](runpodctl_model.md) - manage model repository -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_network-volume.md b/docs/runpodctl_network-volume.md index a006894..c0d7603 100644 --- a/docs/runpodctl_network-volume.md +++ b/docs/runpodctl_network-volume.md @@ -27,4 +27,4 @@ manage network volumes on runpod * [runpodctl network-volume list](runpodctl_network-volume_list.md) - list all network volumes * [runpodctl network-volume update](runpodctl_network-volume_update.md) - update a network volume -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_network-volume_create.md b/docs/runpodctl_network-volume_create.md index 9b0ad2e..3899616 100644 --- a/docs/runpodctl_network-volume_create.md +++ b/docs/runpodctl_network-volume_create.md @@ -29,4 +29,4 @@ runpodctl network-volume create [flags] * [runpodctl network-volume](runpodctl_network-volume.md) - manage network volumes -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_network-volume_delete.md b/docs/runpodctl_network-volume_delete.md index 140dd71..4fb30ef 100644 --- a/docs/runpodctl_network-volume_delete.md +++ b/docs/runpodctl_network-volume_delete.md @@ -26,4 +26,4 @@ runpodctl network-volume delete [flags] * [runpodctl network-volume](runpodctl_network-volume.md) - manage network volumes -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_network-volume_get.md b/docs/runpodctl_network-volume_get.md index f805941..6c67326 100644 --- a/docs/runpodctl_network-volume_get.md +++ b/docs/runpodctl_network-volume_get.md @@ -26,4 +26,4 @@ runpodctl network-volume get [flags] * [runpodctl network-volume](runpodctl_network-volume.md) - manage network volumes -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_network-volume_list.md b/docs/runpodctl_network-volume_list.md index 63e9dbb..4ac3420 100644 --- a/docs/runpodctl_network-volume_list.md +++ b/docs/runpodctl_network-volume_list.md @@ -26,4 +26,4 @@ runpodctl network-volume list [flags] * [runpodctl network-volume](runpodctl_network-volume.md) - manage network volumes -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_network-volume_update.md b/docs/runpodctl_network-volume_update.md index 923a279..eb2bd1f 100644 --- a/docs/runpodctl_network-volume_update.md +++ b/docs/runpodctl_network-volume_update.md @@ -28,4 +28,4 @@ runpodctl network-volume update [flags] * [runpodctl network-volume](runpodctl_network-volume.md) - manage network volumes -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod.md b/docs/runpodctl_pod.md index f7f3ab0..0254b07 100644 --- a/docs/runpodctl_pod.md +++ b/docs/runpodctl_pod.md @@ -31,4 +31,4 @@ manage gpu pods on runpod * [runpodctl pod stop](runpodctl_pod_stop.md) - stop a running pod * [runpodctl pod update](runpodctl_pod_update.md) - update an existing pod -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_create.md b/docs/runpodctl_pod_create.md index 21a248c..7d05669 100644 --- a/docs/runpodctl_pod_create.md +++ b/docs/runpodctl_pod_create.md @@ -30,21 +30,28 @@ runpodctl pod create [flags] ``` --cloud-type string cloud type (SECURE or COMMUNITY) (default "SECURE") + --compliance string comma-separated compliance requirements (e.g., HIPAA,SOC_2_TYPE_2) --compute-type string compute type (GPU or CPU) (default "GPU") --container-disk-in-gb int container disk size in gb (default 20) + --country-code string limit pod to a specific country (e.g., US, DE) --data-center-ids string comma-separated list of data center ids + --docker-args string docker cmd arguments --env string environment variables as json object --global-networking enable global networking (secure cloud only) --gpu-count int number of gpus (default 1) --gpu-id string gpu id (from 'runpodctl gpu list') -h, --help help for create --image string docker image name (required if no template) + --min-cuda-version string minimum cuda version (e.g., 12.6) --name string pod name --network-volume-id string network volume id to attach --ports string comma-separated list of ports (e.g., '8888/http,22/tcp') --public-ip require public ip (community cloud only) + --registry-auth-id string container registry auth id (from 'runpodctl registry list') --ssh enable ssh on the pod (default true) + --stop-after string auto-stop datetime (e.g., 2026-04-15T00:00:00Z) --template-id string template id (use 'runpodctl template search' to find templates) + --terminate-after string auto-terminate datetime (e.g., 2026-04-15T00:00:00Z) --volume-in-gb int volume size in gb --volume-mount-path string volume mount path (default "/workspace") ``` @@ -59,4 +66,4 @@ runpodctl pod create [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_delete.md b/docs/runpodctl_pod_delete.md index 05dd527..8a2d03e 100644 --- a/docs/runpodctl_pod_delete.md +++ b/docs/runpodctl_pod_delete.md @@ -26,4 +26,4 @@ runpodctl pod delete [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_get.md b/docs/runpodctl_pod_get.md index 32cc691..23ba991 100644 --- a/docs/runpodctl_pod_get.md +++ b/docs/runpodctl_pod_get.md @@ -28,4 +28,4 @@ runpodctl pod get [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_list.md b/docs/runpodctl_pod_list.md index 8b52a4a..02892f2 100644 --- a/docs/runpodctl_pod_list.md +++ b/docs/runpodctl_pod_list.md @@ -32,4 +32,4 @@ runpodctl pod list [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_reset.md b/docs/runpodctl_pod_reset.md index 7a1432e..b322212 100644 --- a/docs/runpodctl_pod_reset.md +++ b/docs/runpodctl_pod_reset.md @@ -26,4 +26,4 @@ runpodctl pod reset [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_restart.md b/docs/runpodctl_pod_restart.md index 2a6fe17..2db6024 100644 --- a/docs/runpodctl_pod_restart.md +++ b/docs/runpodctl_pod_restart.md @@ -26,4 +26,4 @@ runpodctl pod restart [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_start.md b/docs/runpodctl_pod_start.md index dbd043f..c454aff 100644 --- a/docs/runpodctl_pod_start.md +++ b/docs/runpodctl_pod_start.md @@ -26,4 +26,4 @@ runpodctl pod start [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_stop.md b/docs/runpodctl_pod_stop.md index 4ab4f83..99b1818 100644 --- a/docs/runpodctl_pod_stop.md +++ b/docs/runpodctl_pod_stop.md @@ -26,4 +26,4 @@ runpodctl pod stop [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_pod_update.md b/docs/runpodctl_pod_update.md index 1a2e92d..ffdaae1 100644 --- a/docs/runpodctl_pod_update.md +++ b/docs/runpodctl_pod_update.md @@ -33,4 +33,4 @@ runpodctl pod update [flags] * [runpodctl pod](runpodctl_pod.md) - manage gpu pods -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_receive.md b/docs/runpodctl_receive.md index 113bb93..adec053 100644 --- a/docs/runpodctl_receive.md +++ b/docs/runpodctl_receive.md @@ -26,4 +26,4 @@ runpodctl receive [flags] * [runpodctl](runpodctl.md) - cli for runpod.io -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_registry.md b/docs/runpodctl_registry.md index 1c288c1..71e16a7 100644 --- a/docs/runpodctl_registry.md +++ b/docs/runpodctl_registry.md @@ -26,4 +26,4 @@ manage container registry authentication on runpod * [runpodctl registry get](runpodctl_registry_get.md) - get registry auth details * [runpodctl registry list](runpodctl_registry_list.md) - list all registry auths -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_registry_create.md b/docs/runpodctl_registry_create.md index 22fa944..ee47f9e 100644 --- a/docs/runpodctl_registry_create.md +++ b/docs/runpodctl_registry_create.md @@ -29,4 +29,4 @@ runpodctl registry create [flags] * [runpodctl registry](runpodctl_registry.md) - manage container registry auth -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_registry_delete.md b/docs/runpodctl_registry_delete.md index f8601b9..32202f4 100644 --- a/docs/runpodctl_registry_delete.md +++ b/docs/runpodctl_registry_delete.md @@ -26,4 +26,4 @@ runpodctl registry delete [flags] * [runpodctl registry](runpodctl_registry.md) - manage container registry auth -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_registry_get.md b/docs/runpodctl_registry_get.md index 1492012..8603abc 100644 --- a/docs/runpodctl_registry_get.md +++ b/docs/runpodctl_registry_get.md @@ -26,4 +26,4 @@ runpodctl registry get [flags] * [runpodctl registry](runpodctl_registry.md) - manage container registry auth -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_registry_list.md b/docs/runpodctl_registry_list.md index 8aaa07d..9e6bd95 100644 --- a/docs/runpodctl_registry_list.md +++ b/docs/runpodctl_registry_list.md @@ -26,4 +26,4 @@ runpodctl registry list [flags] * [runpodctl registry](runpodctl_registry.md) - manage container registry auth -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_send.md b/docs/runpodctl_send.md index 70b5c64..f6ae2c9 100644 --- a/docs/runpodctl_send.md +++ b/docs/runpodctl_send.md @@ -27,4 +27,4 @@ runpodctl send [flags] * [runpodctl](runpodctl.md) - cli for runpod.io -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_serverless.md b/docs/runpodctl_serverless.md index 427d80f..f849b12 100644 --- a/docs/runpodctl_serverless.md +++ b/docs/runpodctl_serverless.md @@ -27,4 +27,4 @@ manage serverless endpoints on runpod * [runpodctl serverless list](runpodctl_serverless_list.md) - list all endpoints * [runpodctl serverless update](runpodctl_serverless_update.md) - update an endpoint -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_serverless_create.md b/docs/runpodctl_serverless_create.md index b83f896..9a6368f 100644 --- a/docs/runpodctl_serverless_create.md +++ b/docs/runpodctl_serverless_create.md @@ -13,16 +13,23 @@ runpodctl serverless create [flags] ### Options ``` - --compute-type string compute type (GPU or CPU) (default "GPU") - --data-center-ids string comma-separated list of data center ids - --gpu-count int number of gpus per worker (default 1) - --gpu-id string gpu id (from 'runpodctl gpu list') - -h, --help help for create - --name string endpoint name - --network-volume-id string network volume id to attach - --template-id string template id (required) - --workers-max int maximum number of workers (default 3) - --workers-min int minimum number of workers + --compute-type string compute type (GPU or CPU) (default "GPU") + --data-center-ids string comma-separated list of data center ids + --execution-timeout int max seconds per request (default -1) + --flash-boot enable flash boot (default true) + --gpu-count int number of gpus per worker (default 1) + --gpu-id string gpu id (from 'runpodctl gpu list') + -h, --help help for create + --idle-timeout int seconds before idle worker scales down (1-3600) (default -1) + --min-cuda-version string minimum cuda version (e.g., 12.6) + --name string endpoint name + --network-volume-id string network volume id to attach + --network-volume-ids string comma-separated network volume ids for multi-region + --scale-by string autoscale strategy: delay (seconds of queue wait) or requests (pending request count) + --scale-threshold int trigger point for autoscaler (delay: seconds, requests: count) (default -1) + --template-id string template id (required) + --workers-max int maximum number of workers (default 3) + --workers-min int minimum number of workers ``` ### Options inherited from parent commands @@ -35,4 +42,4 @@ runpodctl serverless create [flags] * [runpodctl serverless](runpodctl_serverless.md) - manage serverless endpoints -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 14-Apr-2026 diff --git a/docs/runpodctl_serverless_delete.md b/docs/runpodctl_serverless_delete.md index 6ca48a7..621e09e 100644 --- a/docs/runpodctl_serverless_delete.md +++ b/docs/runpodctl_serverless_delete.md @@ -26,4 +26,4 @@ runpodctl serverless delete [flags] * [runpodctl serverless](runpodctl_serverless.md) - manage serverless endpoints -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_serverless_get.md b/docs/runpodctl_serverless_get.md index 0f89b22..8db765c 100644 --- a/docs/runpodctl_serverless_get.md +++ b/docs/runpodctl_serverless_get.md @@ -28,4 +28,4 @@ runpodctl serverless get [flags] * [runpodctl serverless](runpodctl_serverless.md) - manage serverless endpoints -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_serverless_list.md b/docs/runpodctl_serverless_list.md index bd2725f..ed8b888 100644 --- a/docs/runpodctl_serverless_list.md +++ b/docs/runpodctl_serverless_list.md @@ -28,4 +28,4 @@ runpodctl serverless list [flags] * [runpodctl serverless](runpodctl_serverless.md) - manage serverless endpoints -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_serverless_update.md b/docs/runpodctl_serverless_update.md index f5f8b37..a369dd1 100644 --- a/docs/runpodctl_serverless_update.md +++ b/docs/runpodctl_serverless_update.md @@ -13,13 +13,13 @@ runpodctl serverless update [flags] ### Options ``` - -h, --help help for update - --idle-timeout int new idle timeout in seconds (default -1) - --name string new endpoint name - --scaler-type string scaler type (QUEUE_DELAY or REQUEST_COUNT) - --scaler-value int scaler value (default -1) - --workers-max int new maximum number of workers (default -1) - --workers-min int new minimum number of workers (default -1) + -h, --help help for update + --idle-timeout int new idle timeout in seconds (default -1) + --name string new endpoint name + --scale-by string autoscale strategy: delay (seconds of queue wait) or requests (pending request count) + --scale-threshold int trigger point for autoscaler (delay: seconds, requests: count) (default -1) + --workers-max int new maximum number of workers (default -1) + --workers-min int new minimum number of workers (default -1) ``` ### Options inherited from parent commands @@ -32,4 +32,4 @@ runpodctl serverless update [flags] * [runpodctl serverless](runpodctl_serverless.md) - manage serverless endpoints -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 14-Apr-2026 diff --git a/docs/runpodctl_ssh.md b/docs/runpodctl_ssh.md index 1737bfe..63f2fcb 100644 --- a/docs/runpodctl_ssh.md +++ b/docs/runpodctl_ssh.md @@ -25,4 +25,4 @@ manage ssh keys and show ssh info for pods. uses the api key from RUNPOD_API_KEY * [runpodctl ssh info](runpodctl_ssh_info.md) - show ssh info for a pod * [runpodctl ssh list-keys](runpodctl_ssh_list-keys.md) - list all ssh keys -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_ssh_add-key.md b/docs/runpodctl_ssh_add-key.md index feb3d52..7543061 100644 --- a/docs/runpodctl_ssh_add-key.md +++ b/docs/runpodctl_ssh_add-key.md @@ -28,4 +28,4 @@ runpodctl ssh add-key [flags] * [runpodctl ssh](runpodctl_ssh.md) - manage ssh keys and connections -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_ssh_info.md b/docs/runpodctl_ssh_info.md index 5ab8d59..b52254e 100644 --- a/docs/runpodctl_ssh_info.md +++ b/docs/runpodctl_ssh_info.md @@ -27,4 +27,4 @@ runpodctl ssh info [flags] * [runpodctl ssh](runpodctl_ssh.md) - manage ssh keys and connections -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_ssh_list-keys.md b/docs/runpodctl_ssh_list-keys.md index 4523c9e..aba5835 100644 --- a/docs/runpodctl_ssh_list-keys.md +++ b/docs/runpodctl_ssh_list-keys.md @@ -26,4 +26,4 @@ runpodctl ssh list-keys [flags] * [runpodctl ssh](runpodctl_ssh.md) - manage ssh keys and connections -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_template.md b/docs/runpodctl_template.md index e495589..fab6195 100644 --- a/docs/runpodctl_template.md +++ b/docs/runpodctl_template.md @@ -28,4 +28,4 @@ manage templates on runpod * [runpodctl template search](runpodctl_template_search.md) - search templates * [runpodctl template update](runpodctl_template_update.md) - update a template -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_template_create.md b/docs/runpodctl_template_create.md index 7dca12d..63ff593 100644 --- a/docs/runpodctl_template_create.md +++ b/docs/runpodctl_template_create.md @@ -37,4 +37,4 @@ runpodctl template create [flags] * [runpodctl template](runpodctl_template.md) - manage templates -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_template_delete.md b/docs/runpodctl_template_delete.md index 6c219a1..57e37b9 100644 --- a/docs/runpodctl_template_delete.md +++ b/docs/runpodctl_template_delete.md @@ -26,4 +26,4 @@ runpodctl template delete [flags] * [runpodctl template](runpodctl_template.md) - manage templates -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_template_get.md b/docs/runpodctl_template_get.md index 614917e..593e407 100644 --- a/docs/runpodctl_template_get.md +++ b/docs/runpodctl_template_get.md @@ -26,4 +26,4 @@ runpodctl template get [flags] * [runpodctl template](runpodctl_template.md) - manage templates -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_template_list.md b/docs/runpodctl_template_list.md index a4f41a1..c21703f 100644 --- a/docs/runpodctl_template_list.md +++ b/docs/runpodctl_template_list.md @@ -41,4 +41,4 @@ runpodctl template list [flags] * [runpodctl template](runpodctl_template.md) - manage templates -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_template_search.md b/docs/runpodctl_template_search.md index b21de71..d113e23 100644 --- a/docs/runpodctl_template_search.md +++ b/docs/runpodctl_template_search.md @@ -37,4 +37,4 @@ runpodctl template search [flags] * [runpodctl template](runpodctl_template.md) - manage templates -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_template_update.md b/docs/runpodctl_template_update.md index 329eb54..fe650d5 100644 --- a/docs/runpodctl_template_update.md +++ b/docs/runpodctl_template_update.md @@ -31,4 +31,4 @@ runpodctl template update [flags] * [runpodctl template](runpodctl_template.md) - manage templates -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_update.md b/docs/runpodctl_update.md index d9bec13..97d5fae 100644 --- a/docs/runpodctl_update.md +++ b/docs/runpodctl_update.md @@ -26,4 +26,4 @@ runpodctl update [flags] * [runpodctl](runpodctl.md) - cli for runpod.io -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_user.md b/docs/runpodctl_user.md index d93694f..47360a0 100644 --- a/docs/runpodctl_user.md +++ b/docs/runpodctl_user.md @@ -26,4 +26,4 @@ runpodctl user [flags] * [runpodctl](runpodctl.md) - cli for runpod.io -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/docs/runpodctl_version.md b/docs/runpodctl_version.md index 27ba418..e886765 100644 --- a/docs/runpodctl_version.md +++ b/docs/runpodctl_version.md @@ -22,4 +22,4 @@ runpodctl version [flags] * [runpodctl](runpodctl.md) - cli for runpod.io -###### Auto generated by spf13/cobra on 23-Mar-2026 +###### Auto generated by spf13/cobra on 13-Apr-2026 diff --git a/go.mod b/go.mod index ca9fee4..ee7fb2d 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/runpod/runpodctl -go 1.25.8 +go 1.25.9 require ( github.com/denisbrodbeck/machineid v1.0.1 diff --git a/internal/api/endpoints.go b/internal/api/endpoints.go index c66f085..61d2efb 100644 --- a/internal/api/endpoints.go +++ b/internal/api/endpoints.go @@ -8,20 +8,23 @@ import ( // Endpoint represents a serverless endpoint type Endpoint struct { - ID string `json:"id"` - Name string `json:"name"` - TemplateID string `json:"templateId,omitempty"` - GpuIDs string `json:"gpuIds,omitempty"` - NetworkVolumeID string `json:"networkVolumeId,omitempty"` - Locations string `json:"locations,omitempty"` - IdleTimeout int `json:"idleTimeout,omitempty"` - ScalerType string `json:"scalerType,omitempty"` - ScalerValue int `json:"scalerValue,omitempty"` - WorkersMin int `json:"workersMin,omitempty"` - WorkersMax int `json:"workersMax,omitempty"` - GpuCount int `json:"gpuCount,omitempty"` - Template map[string]interface{} `json:"template,omitempty"` - Workers []interface{} `json:"workers,omitempty"` + ID string `json:"id"` + Name string `json:"name"` + TemplateID string `json:"templateId,omitempty"` + GpuIDs string `json:"gpuIds,omitempty"` + NetworkVolumeID string `json:"networkVolumeId,omitempty"` + Locations string `json:"locations,omitempty"` + IdleTimeout int `json:"idleTimeout,omitempty"` + ScalerType string `json:"scalerType,omitempty"` + ScalerValue int `json:"scalerValue,omitempty"` + WorkersMin int `json:"workersMin,omitempty"` + WorkersMax int `json:"workersMax,omitempty"` + GpuCount int `json:"gpuCount,omitempty"` + MinCudaVersion string `json:"minCudaVersion,omitempty"` + Flashboot *bool `json:"flashboot,omitempty"` + ExecutionTimeoutMs int `json:"executionTimeoutMs,omitempty"` + Template map[string]interface{} `json:"template,omitempty"` + Workers []interface{} `json:"workers,omitempty"` } // EndpointListResponse is the response from listing endpoints @@ -31,15 +34,22 @@ type EndpointListResponse struct { // EndpointCreateRequest is the request to create an endpoint type EndpointCreateRequest struct { - Name string `json:"name,omitempty"` - TemplateID string `json:"templateId"` - ComputeType string `json:"computeType,omitempty"` - GpuTypeIDs []string `json:"gpuTypeIds,omitempty"` - GpuCount int `json:"gpuCount,omitempty"` - WorkersMin int `json:"workersMin,omitempty"` - WorkersMax int `json:"workersMax,omitempty"` - DataCenterIDs []string `json:"dataCenterIds,omitempty"` - NetworkVolumeID string `json:"networkVolumeId,omitempty"` + Name string `json:"name,omitempty"` + TemplateID string `json:"templateId"` + ComputeType string `json:"computeType,omitempty"` + GpuTypeIDs []string `json:"gpuTypeIds,omitempty"` + GpuCount int `json:"gpuCount,omitempty"` + WorkersMin int `json:"workersMin,omitempty"` + WorkersMax int `json:"workersMax,omitempty"` + DataCenterIDs []string `json:"dataCenterIds,omitempty"` + NetworkVolumeID string `json:"networkVolumeId,omitempty"` + MinCudaVersion string `json:"minCudaVersion,omitempty"` + ScalerType string `json:"scalerType,omitempty"` + ScalerValue int `json:"scalerValue,omitempty"` + IdleTimeout int `json:"idleTimeout,omitempty"` + Flashboot *bool `json:"flashboot,omitempty"` + ExecutionTimeoutMs int `json:"executionTimeoutMs,omitempty"` + NetworkVolumeIDs []string `json:"networkVolumeIds,omitempty"` } // EndpointUpdateRequest is the request to update an endpoint @@ -50,6 +60,7 @@ type EndpointUpdateRequest struct { IdleTimeout int `json:"idleTimeout,omitempty"` ScalerType string `json:"scalerType,omitempty"` ScalerValue int `json:"scalerValue,omitempty"` + Flashboot *bool `json:"flashboot,omitempty"` } // EndpointListOptions are options for listing endpoints diff --git a/internal/api/graphql.go b/internal/api/graphql.go index 93b254b..32ac349 100644 --- a/internal/api/graphql.go +++ b/internal/api/graphql.go @@ -235,6 +235,13 @@ type CreatePodGQLInput struct { VolumeInGb int `json:"volumeInGb,omitempty"` VolumeMountPath string `json:"volumeMountPath,omitempty"` NetworkVolumeId string `json:"networkVolumeId,omitempty"` + MinCudaVersion string `json:"minCudaVersion,omitempty"` + DockerArgs string `json:"dockerArgs,omitempty"` + ContainerRegistryAuthId string `json:"containerRegistryAuthId,omitempty"` + CountryCode string `json:"countryCode,omitempty"` + StopAfter string `json:"stopAfter,omitempty"` + TerminateAfter string `json:"terminateAfter,omitempty"` + Compliance []string `json:"compliance,omitempty"` } // CreatePod creates a pod via GraphQL (podFindAndDeployOnDemand) diff --git a/internal/api/pods.go b/internal/api/pods.go index 9b52b9b..0105114 100644 --- a/internal/api/pods.go +++ b/internal/api/pods.go @@ -52,6 +52,8 @@ type PodCreateRequest struct { CloudType string `json:"cloudType,omitempty"` DataCenterIDs []string `json:"dataCenterIds,omitempty"` NetworkVolumeID string `json:"networkVolumeId,omitempty"` + MinCudaVersion string `json:"minCudaVersion,omitempty"` + DockerArgs string `json:"dockerArgs,omitempty"` } // PodUpdateRequest is the request to update a pod