Documentation
¶
Index ¶
- func BuildCreatePayload(imagesCreateBody string) (*images.CreateImagePayload, error)
- func CreateImagesPath() string
- func DecodeCreateResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error)
- func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error)
- func EncodeCreateRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error
- func ListImagesPath() string
- func NewCreateAlreadyExists(body string) images.AlreadyExists
- func NewCreateImageCreated(body *CreateResponseBody) *imagesviews.ImageView
- func NewCreateInvalid(body string) images.Invalid
- func NewListImageOK(body []*ImageResponse) []*images.Image
- func ValidateImageEnvVarResponse(body *ImageEnvVarResponse) (err error)
- func ValidateImageEnvVarResponseBody(body *ImageEnvVarResponseBody) (err error)
- func ValidateImageLinkResponse(body *ImageLinkResponse) (err error)
- func ValidateImageLinkResponseBody(body *ImageLinkResponseBody) (err error)
- func ValidateImageRemoteDesktopRequestBody(body *ImageRemoteDesktopRequestBody) (err error)
- func ValidateImageRemoteDesktopResponse(body *ImageRemoteDesktopResponse) (err error)
- func ValidateImageRemoteDesktopResponseBody(body *ImageRemoteDesktopResponseBody) (err error)
- func ValidateImageResponse(body *ImageResponse) (err error)
- type Client
- type CreateRequestBody
- type CreateResponseBody
- type ImageCredentialsRequestBody
- type ImageCredentialsResponse
- type ImageCredentialsResponseBody
- type ImageEnvVarRequestBody
- type ImageEnvVarResponse
- type ImageEnvVarResponseBody
- type ImageLinkRequestBody
- type ImageLinkResponse
- type ImageLinkResponseBody
- type ImageProxyConfigRequestBody
- type ImageProxyConfigResponse
- type ImageProxyConfigResponseBody
- type ImageRemoteDesktopRequestBody
- type ImageRemoteDesktopResponse
- type ImageRemoteDesktopResponseBody
- type ImageResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildCreatePayload ¶
func BuildCreatePayload(imagesCreateBody string) (*images.CreateImagePayload, error)
BuildCreatePayload builds the payload for the images create endpoint from CLI flags.
func CreateImagesPath ¶
func CreateImagesPath() string
CreateImagesPath returns the URL path to the images service create HTTP endpoint.
func DecodeCreateResponse ¶
func DecodeCreateResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error)
DecodeCreateResponse returns a decoder for responses returned by the images create endpoint. restoreBody controls whether the response body should be restored after having been read. DecodeCreateResponse may return the following errors:
- "already_exists" (type images.AlreadyExists): http.StatusConflict
- "invalid" (type images.Invalid): http.StatusBadRequest
- error: internal error
func DecodeListResponse ¶
func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error)
DecodeListResponse returns a decoder for responses returned by the images list endpoint. restoreBody controls whether the response body should be restored after having been read.
func EncodeCreateRequest ¶
func EncodeCreateRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error
EncodeCreateRequest returns an encoder for requests sent to the images create server.
func ListImagesPath ¶
func ListImagesPath() string
ListImagesPath returns the URL path to the images service list HTTP endpoint.
func NewCreateAlreadyExists ¶
func NewCreateAlreadyExists(body string) images.AlreadyExists
NewCreateAlreadyExists builds a images service create endpoint already_exists error.
func NewCreateImageCreated ¶
func NewCreateImageCreated(body *CreateResponseBody) *imagesviews.ImageView
NewCreateImageCreated builds a "images" service "create" endpoint result from a HTTP "Created" response.
func NewCreateInvalid ¶
NewCreateInvalid builds a images service create endpoint invalid error.
func NewListImageOK ¶
func NewListImageOK(body []*ImageResponse) []*images.Image
NewListImageOK builds a "images" service "list" endpoint result from a HTTP "OK" response.
func ValidateImageEnvVarResponse ¶
func ValidateImageEnvVarResponse(body *ImageEnvVarResponse) (err error)
ValidateImageEnvVarResponse runs the validations defined on ImageEnvVarResponse
func ValidateImageEnvVarResponseBody ¶
func ValidateImageEnvVarResponseBody(body *ImageEnvVarResponseBody) (err error)
ValidateImageEnvVarResponseBody runs the validations defined on ImageEnvVarResponseBody
func ValidateImageLinkResponse ¶
func ValidateImageLinkResponse(body *ImageLinkResponse) (err error)
ValidateImageLinkResponse runs the validations defined on ImageLinkResponse
func ValidateImageLinkResponseBody ¶
func ValidateImageLinkResponseBody(body *ImageLinkResponseBody) (err error)
ValidateImageLinkResponseBody runs the validations defined on ImageLinkResponseBody
func ValidateImageRemoteDesktopRequestBody ¶ added in v0.5.0
func ValidateImageRemoteDesktopRequestBody(body *ImageRemoteDesktopRequestBody) (err error)
ValidateImageRemoteDesktopRequestBody runs the validations defined on ImageRemoteDesktopRequestBody
func ValidateImageRemoteDesktopResponse ¶ added in v0.5.0
func ValidateImageRemoteDesktopResponse(body *ImageRemoteDesktopResponse) (err error)
ValidateImageRemoteDesktopResponse runs the validations defined on ImageRemoteDesktopResponse
func ValidateImageRemoteDesktopResponseBody ¶ added in v0.5.0
func ValidateImageRemoteDesktopResponseBody(body *ImageRemoteDesktopResponseBody) (err error)
ValidateImageRemoteDesktopResponseBody runs the validations defined on ImageRemoteDesktopResponseBody
func ValidateImageResponse ¶
func ValidateImageResponse(body *ImageResponse) (err error)
ValidateImageResponse runs the validations defined on ImageResponse
Types ¶
type Client ¶
type Client struct {
// List Doer is the HTTP client used to make requests to the list endpoint.
ListDoer goahttp.Doer
// Create Doer is the HTTP client used to make requests to the create endpoint.
CreateDoer goahttp.Doer
// RestoreResponseBody controls whether the response bodies are reset after
// decoding so they can be read again.
RestoreResponseBody bool
// contains filtered or unexported fields
}
Client lists the images service endpoint HTTP clients.
func NewClient ¶
func NewClient( scheme string, host string, doer goahttp.Doer, enc func(*http.Request) goahttp.Encoder, dec func(*http.Response) goahttp.Decoder, restoreBody bool, ) *Client
NewClient instantiates HTTP clients for all the images service servers.
func (*Client) BuildCreateRequest ¶
BuildCreateRequest instantiates a HTTP request object with method and path set to call the "images" service "create" endpoint
func (*Client) BuildListRequest ¶
BuildListRequest instantiates a HTTP request object with method and path set to call the "images" service "list" endpoint
type CreateRequestBody ¶
type CreateRequestBody struct {
// Display name
Name string `form:"name" json:"name" xml:"name"`
// Container image reference
Image string `form:"image" json:"image" xml:"image"`
// Description of the image
Description *string `form:"description,omitempty" json:"description,omitempty" xml:"description,omitempty"`
// Category for grouping (e.g. Desktop, IDE, Tool, Game)
Category *string `form:"category,omitempty" json:"category,omitempty" xml:"category,omitempty"`
// Tags for filtering/searching images
Tags []string `form:"tags,omitempty" json:"tags,omitempty" xml:"tags,omitempty"`
// Default container port
DefaultPort int `form:"default_port" json:"default_port" xml:"default_port"`
// Default URL path for connecting
DefaultPath *string `form:"default_path,omitempty" json:"default_path,omitempty" xml:"default_path,omitempty"`
// Icon identifier
Icon *string `form:"icon,omitempty" json:"icon,omitempty" xml:"icon,omitempty"`
// Default command-line args
DefaultArgs []string `form:"default_args,omitempty" json:"default_args,omitempty" xml:"default_args,omitempty"`
// Default environment variables
DefaultEnv []*ImageEnvVarRequestBody `form:"default_env,omitempty" json:"default_env,omitempty" xml:"default_env,omitempty"`
// Run container in privileged mode
Privileged bool `form:"privileged" json:"privileged" xml:"privileged"`
// Project homepage or documentation URL
HomepageURL *string `form:"homepage_url,omitempty" json:"homepage_url,omitempty" xml:"homepage_url,omitempty"`
// Source code repository URL
SourceURL *string `form:"source_url,omitempty" json:"source_url,omitempty" xml:"source_url,omitempty"`
// Container image registry page (e.g. Docker Hub)
ImageHomepageURL *string `form:"image_homepage_url,omitempty" json:"image_homepage_url,omitempty" xml:"image_homepage_url,omitempty"`
// Default user for this image
DefaultUser *string `form:"default_user,omitempty" json:"default_user,omitempty" xml:"default_user,omitempty"`
// Known default password for DefaultUser. Only set when the image has a known
// default password; leave unset when the guest uses no password
DefaultPassword *string `form:"default_password,omitempty" json:"default_password,omitempty" xml:"default_password,omitempty"`
// Set to true when the image has cloud-init baked in, allowing user-data (e.g.
// a user/password) to be seeded into the guest at first boot
DefaultCloudInit *bool `form:"default_cloud_init,omitempty" json:"default_cloud_init,omitempty" xml:"default_cloud_init,omitempty"`
// Reserved user-data for the guest (cloud-init). Empty by default; later used
// to seed first-boot configuration when cloud-init is supported. Not yet
// consumed
DefaultUserData *string `form:"default_user_data,omitempty" json:"default_user_data,omitempty" xml:"default_user_data,omitempty"`
// Default home directory for the default user
DefaultHomedir *string `form:"default_homedir,omitempty" json:"default_homedir,omitempty" xml:"default_homedir,omitempty"`
// Default shell for exec/console sessions (e.g. /bin/bash)
DefaultShell *string `form:"default_shell,omitempty" json:"default_shell,omitempty" xml:"default_shell,omitempty"`
// Additional relevant URLs for this image
Links []*ImageLinkRequestBody `form:"links,omitempty" json:"links,omitempty" xml:"links,omitempty"`
// Default login credentials for this image
DefaultCredentials *ImageCredentialsRequestBody `form:"default_credentials,omitempty" json:"default_credentials,omitempty" xml:"default_credentials,omitempty"`
// Proxy behavior configuration
ProxyConfig *ImageProxyConfigRequestBody `form:"proxy_config,omitempty" json:"proxy_config,omitempty" xml:"proxy_config,omitempty"`
// Remote desktop agent configuration (Tier 1)
RemoteDesktop *ImageRemoteDesktopRequestBody `form:"remote_desktop,omitempty" json:"remote_desktop,omitempty" xml:"remote_desktop,omitempty"`
// UID that the main container runs as (sets runAsUser and fsGroup)
DefaultUID *int64 `form:"default_uid,omitempty" json:"default_uid,omitempty" xml:"default_uid,omitempty"`
// Selkies streaming, Chrome, ML frameworks)
DefaultSharedMemory *bool `form:"default_shared_memory,omitempty" json:"default_shared_memory,omitempty" xml:"default_shared_memory,omitempty"`
// Workspace types this image supports (container, vm, scratch). Empty means
// container-only
WorkspaceTypes []string `form:"workspace_types,omitempty" json:"workspace_types,omitempty" xml:"workspace_types,omitempty"`
// Controller-supported VM guest profile
VMProfile *string `form:"vm_profile,omitempty" json:"vm_profile,omitempty" xml:"vm_profile,omitempty"`
// Import a per-workspace persistent root disk
PersistentRootDisk *bool `form:"persistent_root_disk,omitempty" json:"persistent_root_disk,omitempty" xml:"persistent_root_disk,omitempty"`
// Persistent root capacity
PersistentRootDiskSize *string `` /* 127-byte string literal not displayed */
// Guest memory default
MemoryLimit *string `form:"memory_limit,omitempty" json:"memory_limit,omitempty" xml:"memory_limit,omitempty"`
// Guest memory request default
MemoryRequest *string `form:"memory_request,omitempty" json:"memory_request,omitempty" xml:"memory_request,omitempty"`
}
CreateRequestBody is the type of the "images" service "create" endpoint HTTP request body.
func NewCreateRequestBody ¶
func NewCreateRequestBody(p *images.CreateImagePayload) *CreateRequestBody
NewCreateRequestBody builds the HTTP request body from the payload of the "create" endpoint of the "images" service.
type CreateResponseBody ¶
type CreateResponseBody struct {
// Kubernetes resource name (metadata.name)
CrName *string `form:"cr_name,omitempty" json:"cr_name,omitempty" xml:"cr_name,omitempty"`
// Display name
Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
// Full image reference
Image *string `form:"image,omitempty" json:"image,omitempty" xml:"image,omitempty"`
// Description of the image
Description *string `form:"description,omitempty" json:"description,omitempty" xml:"description,omitempty"`
// Category for grouping (e.g. Desktop, IDE, Tool, Game)
Category *string `form:"category,omitempty" json:"category,omitempty" xml:"category,omitempty"`
// Tags for filtering/searching images
Tags []string `form:"tags,omitempty" json:"tags,omitempty" xml:"tags,omitempty"`
// Default container port
DefaultPort *int `form:"default_port,omitempty" json:"default_port,omitempty" xml:"default_port,omitempty"`
// Default URL path for connecting (e.g. /vnc.html?resize=remote)
DefaultPath *string `form:"default_path,omitempty" json:"default_path,omitempty" xml:"default_path,omitempty"`
// Proxy behavior configuration for this image
ProxyConfig *ImageProxyConfigResponseBody `form:"proxy_config,omitempty" json:"proxy_config,omitempty" xml:"proxy_config,omitempty"`
// Icon identifier
Icon *string `form:"icon,omitempty" json:"icon,omitempty" xml:"icon,omitempty"`
// Default command-line args injected at workspace creation
DefaultArgs []string `form:"default_args,omitempty" json:"default_args,omitempty" xml:"default_args,omitempty"`
// Default environment variables injected at workspace creation
DefaultEnv []*ImageEnvVarResponseBody `form:"default_env,omitempty" json:"default_env,omitempty" xml:"default_env,omitempty"`
// UID that the main container runs as (sets runAsUser and fsGroup)
DefaultUID *int64 `form:"default_uid,omitempty" json:"default_uid,omitempty" xml:"default_uid,omitempty"`
// Selkies streaming, Chrome, ML frameworks)
DefaultSharedMemory *bool `form:"default_shared_memory,omitempty" json:"default_shared_memory,omitempty" xml:"default_shared_memory,omitempty"`
// Run container in privileged mode
Privileged *bool `form:"privileged,omitempty" json:"privileged,omitempty" xml:"privileged,omitempty"`
// Project homepage or documentation URL
HomepageURL *string `form:"homepage_url,omitempty" json:"homepage_url,omitempty" xml:"homepage_url,omitempty"`
// Source code repository URL
SourceURL *string `form:"source_url,omitempty" json:"source_url,omitempty" xml:"source_url,omitempty"`
// Container image registry page (e.g. Docker Hub)
ImageHomepageURL *string `form:"image_homepage_url,omitempty" json:"image_homepage_url,omitempty" xml:"image_homepage_url,omitempty"`
// Default user for this image
DefaultUser *string `form:"default_user,omitempty" json:"default_user,omitempty" xml:"default_user,omitempty"`
// Known default password for DefaultUser. Only set when the image has a known
// default password; leave unset when the guest uses no password
DefaultPassword *string `form:"default_password,omitempty" json:"default_password,omitempty" xml:"default_password,omitempty"`
// Set to true when the image has cloud-init baked in, allowing user-data (e.g.
// a user/password) to be seeded into the guest at first boot
DefaultCloudInit *bool `form:"default_cloud_init,omitempty" json:"default_cloud_init,omitempty" xml:"default_cloud_init,omitempty"`
// Reserved user-data for the guest (cloud-init). Empty by default; later used
// to seed first-boot configuration when cloud-init is supported. Not yet
// consumed
DefaultUserData *string `form:"default_user_data,omitempty" json:"default_user_data,omitempty" xml:"default_user_data,omitempty"`
// Default home directory for the default user
DefaultHomedir *string `form:"default_homedir,omitempty" json:"default_homedir,omitempty" xml:"default_homedir,omitempty"`
// Default shell for exec/console sessions (e.g. /bin/bash)
DefaultShell *string `form:"default_shell,omitempty" json:"default_shell,omitempty" xml:"default_shell,omitempty"`
// Additional relevant URLs for this image
Links []*ImageLinkResponseBody `form:"links,omitempty" json:"links,omitempty" xml:"links,omitempty"`
// Default login credentials for this image
DefaultCredentials *ImageCredentialsResponseBody `form:"default_credentials,omitempty" json:"default_credentials,omitempty" xml:"default_credentials,omitempty"`
// Remote desktop agent configuration (Tier 1)
RemoteDesktop *ImageRemoteDesktopResponseBody `form:"remote_desktop,omitempty" json:"remote_desktop,omitempty" xml:"remote_desktop,omitempty"`
// Workspace types this image supports (container, vm, scratch). Empty means
// container-only
WorkspaceTypes []string `form:"workspace_types,omitempty" json:"workspace_types,omitempty" xml:"workspace_types,omitempty"`
// Controller-supported guest profile
VMProfile *string `form:"vm_profile,omitempty" json:"vm_profile,omitempty" xml:"vm_profile,omitempty"`
PersistentRootDisk *bool `form:"persistent_root_disk,omitempty" json:"persistent_root_disk,omitempty" xml:"persistent_root_disk,omitempty"`
PersistentRootDiskSize *string `` /* 127-byte string literal not displayed */
MemoryLimit *string `form:"memory_limit,omitempty" json:"memory_limit,omitempty" xml:"memory_limit,omitempty"`
MemoryRequest *string `form:"memory_request,omitempty" json:"memory_request,omitempty" xml:"memory_request,omitempty"`
}
CreateResponseBody is the type of the "images" service "create" endpoint HTTP response body.
type ImageCredentialsRequestBody ¶
type ImageCredentialsRequestBody struct {
// Default username
Username *string `form:"username,omitempty" json:"username,omitempty" xml:"username,omitempty"`
// Default password
Password *string `form:"password,omitempty" json:"password,omitempty" xml:"password,omitempty"`
}
ImageCredentialsRequestBody is used to define fields on request body types.
type ImageCredentialsResponse ¶
type ImageCredentialsResponse struct {
// Default username
Username *string `form:"username,omitempty" json:"username,omitempty" xml:"username,omitempty"`
// Default password
Password *string `form:"password,omitempty" json:"password,omitempty" xml:"password,omitempty"`
}
ImageCredentialsResponse is used to define fields on response body types.
type ImageCredentialsResponseBody ¶
type ImageCredentialsResponseBody struct {
// Default username
Username *string `form:"username,omitempty" json:"username,omitempty" xml:"username,omitempty"`
// Default password
Password *string `form:"password,omitempty" json:"password,omitempty" xml:"password,omitempty"`
}
ImageCredentialsResponseBody is used to define fields on response body types.
type ImageEnvVarRequestBody ¶
type ImageEnvVarRequestBody struct {
// Name of the environment variable
Name string `form:"name" json:"name" xml:"name"`
// Value (supports {{namespace}} and {{name}} placeholders)
Value string `form:"value" json:"value" xml:"value"`
}
ImageEnvVarRequestBody is used to define fields on request body types.
type ImageEnvVarResponse ¶
type ImageEnvVarResponse struct {
// Name of the environment variable
Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
// Value (supports {{namespace}} and {{name}} placeholders)
Value *string `form:"value,omitempty" json:"value,omitempty" xml:"value,omitempty"`
}
ImageEnvVarResponse is used to define fields on response body types.
type ImageEnvVarResponseBody ¶
type ImageEnvVarResponseBody struct {
// Name of the environment variable
Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
// Value (supports {{namespace}} and {{name}} placeholders)
Value *string `form:"value,omitempty" json:"value,omitempty" xml:"value,omitempty"`
}
ImageEnvVarResponseBody is used to define fields on response body types.
type ImageLinkRequestBody ¶
type ImageLinkRequestBody struct {
// Display label for the link
Title string `form:"title" json:"title" xml:"title"`
// Link target URL
URL string `form:"url" json:"url" xml:"url"`
}
ImageLinkRequestBody is used to define fields on request body types.
type ImageLinkResponse ¶
type ImageLinkResponse struct {
// Display label for the link
Title *string `form:"title,omitempty" json:"title,omitempty" xml:"title,omitempty"`
// Link target URL
URL *string `form:"url,omitempty" json:"url,omitempty" xml:"url,omitempty"`
}
ImageLinkResponse is used to define fields on response body types.
type ImageLinkResponseBody ¶
type ImageLinkResponseBody struct {
// Display label for the link
Title *string `form:"title,omitempty" json:"title,omitempty" xml:"title,omitempty"`
// Link target URL
URL *string `form:"url,omitempty" json:"url,omitempty" xml:"url,omitempty"`
}
ImageLinkResponseBody is used to define fields on response body types.
type ImageProxyConfigRequestBody ¶
type ImageProxyConfigRequestBody struct {
// Serve a no-op ServiceWorker at /sw.js to prevent SW registration errors
NeedsNoopSw bool `form:"needs_noop_sw" json:"needs_noop_sw" xml:"needs_noop_sw"`
// Paths that use WebSocket (informational, all paths support WS transparently)
WebsocketPaths []string `form:"websocket_paths,omitempty" json:"websocket_paths,omitempty" xml:"websocket_paths,omitempty"`
// Rewrite requests with absolute paths that escape the proxy prefix using
// Referer header
RewriteHostAbsolutePaths bool `form:"rewrite_host_absolute_paths" json:"rewrite_host_absolute_paths" xml:"rewrite_host_absolute_paths"`
// Additional headers to inject into proxied requests
CustomRequestHeaders map[string]string `form:"custom_request_headers,omitempty" json:"custom_request_headers,omitempty" xml:"custom_request_headers,omitempty"`
// Inject a <base> tag into HTML responses to fix relative path resolution
InjectBaseTag bool `form:"inject_base_tag" json:"inject_base_tag" xml:"inject_base_tag"`
// Connect to backend over HTTPS with skip-verify (for self-signed certs)
TLSInsecure bool `form:"tls_insecure" json:"tls_insecure" xml:"tls_insecure"`
// Forward the full proxy path (including /proxy/{ns}/{name}) to the pod
// instead of stripping it. Required for apps configured with a base URL
// matching the proxy prefix.
PreservePathPrefix bool `form:"preserve_path_prefix" json:"preserve_path_prefix" xml:"preserve_path_prefix"`
}
ImageProxyConfigRequestBody is used to define fields on request body types.
type ImageProxyConfigResponse ¶
type ImageProxyConfigResponse struct {
// Serve a no-op ServiceWorker at /sw.js to prevent SW registration errors
NeedsNoopSw *bool `form:"needs_noop_sw,omitempty" json:"needs_noop_sw,omitempty" xml:"needs_noop_sw,omitempty"`
// Paths that use WebSocket (informational, all paths support WS transparently)
WebsocketPaths []string `form:"websocket_paths,omitempty" json:"websocket_paths,omitempty" xml:"websocket_paths,omitempty"`
// Rewrite requests with absolute paths that escape the proxy prefix using
// Referer header
RewriteHostAbsolutePaths *bool `` /* 133-byte string literal not displayed */
// Additional headers to inject into proxied requests
CustomRequestHeaders map[string]string `form:"custom_request_headers,omitempty" json:"custom_request_headers,omitempty" xml:"custom_request_headers,omitempty"`
// Inject a <base> tag into HTML responses to fix relative path resolution
InjectBaseTag *bool `form:"inject_base_tag,omitempty" json:"inject_base_tag,omitempty" xml:"inject_base_tag,omitempty"`
// Connect to backend over HTTPS with skip-verify (for self-signed certs)
TLSInsecure *bool `form:"tls_insecure,omitempty" json:"tls_insecure,omitempty" xml:"tls_insecure,omitempty"`
// Forward the full proxy path (including /proxy/{ns}/{name}) to the pod
// instead of stripping it. Required for apps configured with a base URL
// matching the proxy prefix.
PreservePathPrefix *bool `form:"preserve_path_prefix,omitempty" json:"preserve_path_prefix,omitempty" xml:"preserve_path_prefix,omitempty"`
}
ImageProxyConfigResponse is used to define fields on response body types.
type ImageProxyConfigResponseBody ¶
type ImageProxyConfigResponseBody struct {
// Serve a no-op ServiceWorker at /sw.js to prevent SW registration errors
NeedsNoopSw *bool `form:"needs_noop_sw,omitempty" json:"needs_noop_sw,omitempty" xml:"needs_noop_sw,omitempty"`
// Paths that use WebSocket (informational, all paths support WS transparently)
WebsocketPaths []string `form:"websocket_paths,omitempty" json:"websocket_paths,omitempty" xml:"websocket_paths,omitempty"`
// Rewrite requests with absolute paths that escape the proxy prefix using
// Referer header
RewriteHostAbsolutePaths *bool `` /* 133-byte string literal not displayed */
// Additional headers to inject into proxied requests
CustomRequestHeaders map[string]string `form:"custom_request_headers,omitempty" json:"custom_request_headers,omitempty" xml:"custom_request_headers,omitempty"`
// Inject a <base> tag into HTML responses to fix relative path resolution
InjectBaseTag *bool `form:"inject_base_tag,omitempty" json:"inject_base_tag,omitempty" xml:"inject_base_tag,omitempty"`
// Connect to backend over HTTPS with skip-verify (for self-signed certs)
TLSInsecure *bool `form:"tls_insecure,omitempty" json:"tls_insecure,omitempty" xml:"tls_insecure,omitempty"`
// Forward the full proxy path (including /proxy/{ns}/{name}) to the pod
// instead of stripping it. Required for apps configured with a base URL
// matching the proxy prefix.
PreservePathPrefix *bool `form:"preserve_path_prefix,omitempty" json:"preserve_path_prefix,omitempty" xml:"preserve_path_prefix,omitempty"`
}
ImageProxyConfigResponseBody is used to define fields on response body types.
type ImageRemoteDesktopRequestBody ¶ added in v0.5.0
type ImageRemoteDesktopRequestBody struct {
// Protocol name: "selkies" (Linux in-guest agent) or "agent" (cross-platform
// kw-agent)
Protocol string `form:"protocol" json:"protocol" xml:"protocol"`
// Guest port the agent listens on
Port int `form:"port" json:"port" xml:"port"`
// Path relative to the agent's base URL
Path string `form:"path" json:"path" xml:"path"`
}
ImageRemoteDesktopRequestBody is used to define fields on request body types.
type ImageRemoteDesktopResponse ¶ added in v0.5.0
type ImageRemoteDesktopResponse struct {
// Protocol name: "selkies" (Linux in-guest agent) or "agent" (cross-platform
// kw-agent)
Protocol *string `form:"protocol,omitempty" json:"protocol,omitempty" xml:"protocol,omitempty"`
// Guest port the agent listens on
Port *int `form:"port,omitempty" json:"port,omitempty" xml:"port,omitempty"`
// Path relative to the agent's base URL
Path *string `form:"path,omitempty" json:"path,omitempty" xml:"path,omitempty"`
}
ImageRemoteDesktopResponse is used to define fields on response body types.
type ImageRemoteDesktopResponseBody ¶ added in v0.5.0
type ImageRemoteDesktopResponseBody struct {
// Protocol name: "selkies" (Linux in-guest agent) or "agent" (cross-platform
// kw-agent)
Protocol *string `form:"protocol,omitempty" json:"protocol,omitempty" xml:"protocol,omitempty"`
// Guest port the agent listens on
Port *int `form:"port,omitempty" json:"port,omitempty" xml:"port,omitempty"`
// Path relative to the agent's base URL
Path *string `form:"path,omitempty" json:"path,omitempty" xml:"path,omitempty"`
}
ImageRemoteDesktopResponseBody is used to define fields on response body types.
type ImageResponse ¶
type ImageResponse struct {
// Kubernetes resource name (metadata.name)
CrName *string `form:"cr_name,omitempty" json:"cr_name,omitempty" xml:"cr_name,omitempty"`
// Display name
Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
// Full image reference
Image *string `form:"image,omitempty" json:"image,omitempty" xml:"image,omitempty"`
// Description of the image
Description *string `form:"description,omitempty" json:"description,omitempty" xml:"description,omitempty"`
// Category for grouping (e.g. Desktop, IDE, Tool, Game)
Category *string `form:"category,omitempty" json:"category,omitempty" xml:"category,omitempty"`
// Tags for filtering/searching images
Tags []string `form:"tags,omitempty" json:"tags,omitempty" xml:"tags,omitempty"`
// Default container port
DefaultPort *int `form:"default_port,omitempty" json:"default_port,omitempty" xml:"default_port,omitempty"`
// Default URL path for connecting (e.g. /vnc.html?resize=remote)
DefaultPath *string `form:"default_path,omitempty" json:"default_path,omitempty" xml:"default_path,omitempty"`
// Proxy behavior configuration for this image
ProxyConfig *ImageProxyConfigResponse `form:"proxy_config,omitempty" json:"proxy_config,omitempty" xml:"proxy_config,omitempty"`
// Icon identifier
Icon *string `form:"icon,omitempty" json:"icon,omitempty" xml:"icon,omitempty"`
// Default command-line args injected at workspace creation
DefaultArgs []string `form:"default_args,omitempty" json:"default_args,omitempty" xml:"default_args,omitempty"`
// Default environment variables injected at workspace creation
DefaultEnv []*ImageEnvVarResponse `form:"default_env,omitempty" json:"default_env,omitempty" xml:"default_env,omitempty"`
// UID that the main container runs as (sets runAsUser and fsGroup)
DefaultUID *int64 `form:"default_uid,omitempty" json:"default_uid,omitempty" xml:"default_uid,omitempty"`
// Selkies streaming, Chrome, ML frameworks)
DefaultSharedMemory *bool `form:"default_shared_memory,omitempty" json:"default_shared_memory,omitempty" xml:"default_shared_memory,omitempty"`
// Run container in privileged mode
Privileged *bool `form:"privileged,omitempty" json:"privileged,omitempty" xml:"privileged,omitempty"`
// Project homepage or documentation URL
HomepageURL *string `form:"homepage_url,omitempty" json:"homepage_url,omitempty" xml:"homepage_url,omitempty"`
// Source code repository URL
SourceURL *string `form:"source_url,omitempty" json:"source_url,omitempty" xml:"source_url,omitempty"`
// Container image registry page (e.g. Docker Hub)
ImageHomepageURL *string `form:"image_homepage_url,omitempty" json:"image_homepage_url,omitempty" xml:"image_homepage_url,omitempty"`
// Default user for this image
DefaultUser *string `form:"default_user,omitempty" json:"default_user,omitempty" xml:"default_user,omitempty"`
// Known default password for DefaultUser. Only set when the image has a known
// default password; leave unset when the guest uses no password
DefaultPassword *string `form:"default_password,omitempty" json:"default_password,omitempty" xml:"default_password,omitempty"`
// Set to true when the image has cloud-init baked in, allowing user-data (e.g.
// a user/password) to be seeded into the guest at first boot
DefaultCloudInit *bool `form:"default_cloud_init,omitempty" json:"default_cloud_init,omitempty" xml:"default_cloud_init,omitempty"`
// Reserved user-data for the guest (cloud-init). Empty by default; later used
// to seed first-boot configuration when cloud-init is supported. Not yet
// consumed
DefaultUserData *string `form:"default_user_data,omitempty" json:"default_user_data,omitempty" xml:"default_user_data,omitempty"`
// Default home directory for the default user
DefaultHomedir *string `form:"default_homedir,omitempty" json:"default_homedir,omitempty" xml:"default_homedir,omitempty"`
// Default shell for exec/console sessions (e.g. /bin/bash)
DefaultShell *string `form:"default_shell,omitempty" json:"default_shell,omitempty" xml:"default_shell,omitempty"`
// Additional relevant URLs for this image
Links []*ImageLinkResponse `form:"links,omitempty" json:"links,omitempty" xml:"links,omitempty"`
// Default login credentials for this image
DefaultCredentials *ImageCredentialsResponse `form:"default_credentials,omitempty" json:"default_credentials,omitempty" xml:"default_credentials,omitempty"`
// Remote desktop agent configuration (Tier 1)
RemoteDesktop *ImageRemoteDesktopResponse `form:"remote_desktop,omitempty" json:"remote_desktop,omitempty" xml:"remote_desktop,omitempty"`
// Workspace types this image supports (container, vm, scratch). Empty means
// container-only
WorkspaceTypes []string `form:"workspace_types,omitempty" json:"workspace_types,omitempty" xml:"workspace_types,omitempty"`
// Controller-supported guest profile
VMProfile *string `form:"vm_profile,omitempty" json:"vm_profile,omitempty" xml:"vm_profile,omitempty"`
PersistentRootDisk *bool `form:"persistent_root_disk,omitempty" json:"persistent_root_disk,omitempty" xml:"persistent_root_disk,omitempty"`
PersistentRootDiskSize *string `` /* 127-byte string literal not displayed */
MemoryLimit *string `form:"memory_limit,omitempty" json:"memory_limit,omitempty" xml:"memory_limit,omitempty"`
MemoryRequest *string `form:"memory_request,omitempty" json:"memory_request,omitempty" xml:"memory_request,omitempty"`
}
ImageResponse is used to define fields on response body types.