TemplateCreateInput

Struct TemplateCreateInput 

Source
pub struct TemplateCreateInput {
Show 14 fields pub name: String, pub image_name: String, pub category: Option<TemplateCategory>, pub container_disk_in_gb: Option<i32>, pub container_registry_auth_id: Option<String>, pub docker_entrypoint: Option<Vec<String>>, pub docker_start_cmd: Option<Vec<String>>, pub env: Option<EnvVars>, pub is_public: Option<bool>, pub is_serverless: Option<bool>, pub ports: Option<Vec<String>>, pub readme: Option<String>, pub volume_in_gb: Option<i32>, pub volume_mount_path: Option<String>,
}
Expand description

Input parameters for creating new templates.

Use this struct to define all aspects of a new template, from basic identification to detailed runtime configuration. All fields except name and image_name are optional, allowing for flexible template creation with sensible defaults.

§Required Fields

  • name: Unique, descriptive template name
  • image_name: Docker image for container deployment

§Default Behavior

When optional fields are omitted:

  • category: Defaults to TemplateCategory::Nvidia
  • container_disk_in_gb: Defaults to 50 GB
  • volume_in_gb: Defaults to 20 GB
  • volume_mount_path: Defaults to “/workspace”
  • is_public: Defaults to false (private template)
  • is_serverless: Defaults to false (Pod template)
  • ports: Defaults to ["8888/http", "22/tcp"]

§Examples

use runpod_sdk::model::{TemplateCreateInput, TemplateCategory};

let basic_template = TemplateCreateInput {
    name: "My Basic Template".to_string(),
    image_name: "python:3.9".to_string(),
    ..Default::default()
};

Fields§

§name: String

A user-defined name for the template. Must be unique within your account. Choose a descriptive name that clearly identifies the template’s purpose or use case.

§image_name: String

The Docker image tag for containers deployed from this template. Can be a public image (e.g., “python:3.9”) or private image with appropriate container_registry_auth_id for authentication.

§category: Option<TemplateCategory>

The compute category for this template. Determines the type of hardware acceleration available. Defaults to TemplateCategory::Nvidia if not specified.

§container_disk_in_gb: Option<i32>

The amount of disk space in GB to allocate for the container disk. Container disk provides fast local storage but data is wiped on restart. Defaults to 50 GB if not specified.

§container_registry_auth_id: Option<String>

The unique identifier for container registry authentication. Required when using private Docker images that need authentication. Reference the ID from a previously created container registry auth.

§docker_entrypoint: Option<Vec<String>>

Override for the Docker image ENTRYPOINT. If specified, replaces the ENTRYPOINT defined in the Docker image. Leave empty to use the image’s default ENTRYPOINT.

§docker_start_cmd: Option<Vec<String>>

Override for the Docker image start command. If specified, replaces the CMD defined in the Docker image. Leave empty to use the image’s default CMD.

§env: Option<EnvVars>

Environment variables for containers deployed from this template. These variables are set in the container environment and available to the running application for configuration and customization.

§is_public: Option<bool>

Whether the template should be visible to other RunPod users.

  • true: Template is public and can generate revenue when used by others
  • false: Template is private and only accessible to you (default)
§is_serverless: Option<bool>

Whether the template is designed for Serverless workers or Pods.

  • true: Creates auto-scaling Serverless workers for event-driven workloads
  • false: Creates persistent Pods for long-running workloads (default)
§ports: Option<Vec<String>>

A list of ports to expose on deployed instances. Each port is formatted as [port]/[protocol] (e.g., “8888/http”, “22/tcp”). Defaults to ["8888/http", "22/tcp"] if not specified.

§readme: Option<String>

Markdown-formatted documentation describing the template. Displayed in the RunPod UI and should include usage instructions, requirements, configuration details, and examples.

§volume_in_gb: Option<i32>

The amount of disk space in GB to allocate on the local Pod volume. Pod volume provides persistent storage that survives instance restarts. Defaults to 20 GB if not specified.

§volume_mount_path: Option<String>

The absolute path where the Pod volume will be mounted in the container. This is where persistent storage will be accessible within the container. Defaults to “/workspace” if not specified.

Trait Implementations§

Source§

impl Clone for TemplateCreateInput

Source§

fn clone(&self) -> TemplateCreateInput

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TemplateCreateInput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TemplateCreateInput

Source§

fn default() -> TemplateCreateInput

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for TemplateCreateInput

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for TemplateCreateInput

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,