// Package apispec provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
package apispec

import (
	"encoding/json"
	"time"

	"github.com/oapi-codegen/runtime"
	openapi_types "github.com/oapi-codegen/runtime/types"
)

const (
	BearerAuthScopes = "bearerAuth.Scopes"
)

// Defines values for AddTeamMemberRequestRole.
const (
	AddTeamMemberRequestRoleAdmin     AddTeamMemberRequestRole = "admin"
	AddTeamMemberRequestRoleBuilder   AddTeamMemberRequestRole = "builder"
	AddTeamMemberRequestRoleDeveloper AddTeamMemberRequestRole = "developer"
	AddTeamMemberRequestRoleViewer    AddTeamMemberRequestRole = "viewer"
)

// Defines values for AppArmorProfileType.
const (
	AppArmorProfileTypeLocalhost      AppArmorProfileType = "Localhost"
	AppArmorProfileTypeRuntimeDefault AppArmorProfileType = "RuntimeDefault"
	AppArmorProfileTypeUnconfined     AppArmorProfileType = "Unconfined"
)

// Defines values for CreateSandboxVolumeS3ConfigProvider.
const (
	CreateSandboxVolumeS3ConfigProviderAli CreateSandboxVolumeS3ConfigProvider = "ali"
	CreateSandboxVolumeS3ConfigProviderAws CreateSandboxVolumeS3ConfigProvider = "aws"
	CreateSandboxVolumeS3ConfigProviderR2  CreateSandboxVolumeS3ConfigProvider = "r2"
)

// Defines values for CredentialProjectionType.
const (
	HttpHeaders             CredentialProjectionType = "http_headers"
	PlaceholderSubstitution CredentialProjectionType = "placeholder_substitution"
	SshProxy                CredentialProjectionType = "ssh_proxy"
	TlsClientCertificate    CredentialProjectionType = "tls_client_certificate"
	UsernamePassword        CredentialProjectionType = "username_password"
)

// Defines values for CredentialSourceResolverKind.
const (
	StaticHeaders              CredentialSourceResolverKind = "static_headers"
	StaticSshPrivateKey        CredentialSourceResolverKind = "static_ssh_private_key"
	StaticTlsClientCertificate CredentialSourceResolverKind = "static_tls_client_certificate"
	StaticUsernamePassword     CredentialSourceResolverKind = "static_username_password"
)

// Defines values for DeviceLoginPollResponseStatus.
const (
	DeviceLoginPollResponseStatusCompleted DeviceLoginPollResponseStatus = "completed"
	DeviceLoginPollResponseStatusPending   DeviceLoginPollResponseStatus = "pending"
	DeviceLoginPollResponseStatusSlowDown  DeviceLoginPollResponseStatus = "slow_down"
)

// Defines values for EgressAuthFailurePolicy.
const (
	FailClosed EgressAuthFailurePolicy = "fail-closed"
	FailOpen   EgressAuthFailurePolicy = "fail-open"
)

// Defines values for EgressAuthProtocol.
const (
	EgressAuthProtocolGrpc   EgressAuthProtocol = "grpc"
	EgressAuthProtocolHttp   EgressAuthProtocol = "http"
	EgressAuthProtocolHttps  EgressAuthProtocol = "https"
	EgressAuthProtocolMqtt   EgressAuthProtocol = "mqtt"
	EgressAuthProtocolRedis  EgressAuthProtocol = "redis"
	EgressAuthProtocolSocks5 EgressAuthProtocol = "socks5"
	EgressAuthProtocolSsh    EgressAuthProtocol = "ssh"
	EgressAuthProtocolTls    EgressAuthProtocol = "tls"
)

// Defines values for EgressAuthRolloutMode.
const (
	EgressAuthRolloutModeDisabled EgressAuthRolloutMode = "disabled"
	EgressAuthRolloutModeEnabled  EgressAuthRolloutMode = "enabled"
)

// Defines values for EgressProxyType.
const (
	EgressProxyTypeSocks5 EgressProxyType = "socks5"
)

// Defines values for EgressTLSMode.
const (
	Passthrough          EgressTLSMode = "passthrough"
	TerminateReoriginate EgressTLSMode = "terminate-reoriginate"
)

// Defines values for ErrorEnvelopeSuccess.
const (
	False ErrorEnvelopeSuccess = false
)

// Defines values for FileContentResponseEncoding.
const (
	Base64 FileContentResponseEncoding = "base64"
)

// Defines values for FileInfoType.
const (
	Dir     FileInfoType = "dir"
	File    FileInfoType = "file"
	Symlink FileInfoType = "symlink"
)

// Defines values for GatewayMetadataGatewayMode.
const (
	Direct GatewayMetadataGatewayMode = "direct"
	Global GatewayMetadataGatewayMode = "global"
)

// Defines values for MountStatusState.
const (
	MountStatusStateFailed   MountStatusState = "failed"
	MountStatusStateMounted  MountStatusState = "mounted"
	MountStatusStateMounting MountStatusState = "mounting"
	MountStatusStatePending  MountStatusState = "pending"
)

// Defines values for ObservabilityEventSource.
const (
	Manager ObservabilityEventSource = "manager"
	Netd    ObservabilityEventSource = "netd"
	Procd   ObservabilityEventSource = "procd"
)

// Defines values for PlaceholderSubstitutionLocation.
const (
	PlaceholderSubstitutionLocationBody   PlaceholderSubstitutionLocation = "body"
	PlaceholderSubstitutionLocationHeader PlaceholderSubstitutionLocation = "header"
	PlaceholderSubstitutionLocationQuery  PlaceholderSubstitutionLocation = "query"
)

// Defines values for ProcessType.
const (
	ProcessTypeCmd  ProcessType = "cmd"
	ProcessTypeRepl ProcessType = "repl"
)

// Defines values for ProtocolRuleProtocol.
const (
	ProtocolRuleProtocolHttp ProtocolRuleProtocol = "http"
	ProtocolRuleProtocolMcp  ProtocolRuleProtocol = "mcp"
)

// Defines values for QuotaDimension.
const (
	ActiveSandboxes   QuotaDimension = "active_sandboxes"
	CpuMillicpu       QuotaDimension = "cpu_millicpu"
	Egress            QuotaDimension = "egress"
	Ingress           QuotaDimension = "ingress"
	MemoryMib         QuotaDimension = "memory_mib"
	SnapshotStorageGb QuotaDimension = "snapshot_storage_gb"
	VolumeStorageGb   QuotaDimension = "volume_storage_gb"
)

// Defines values for REPLReadyMode.
const (
	PromptToken  REPLReadyMode = "prompt_token"
	StartupDelay REPLReadyMode = "startup_delay"
)

// Defines values for SandboxAppServiceRouteAuthMode.
const (
	SandboxAppServiceRouteAuthModeBearer SandboxAppServiceRouteAuthMode = "bearer"
	SandboxAppServiceRouteAuthModeHeader SandboxAppServiceRouteAuthMode = "header"
	SandboxAppServiceRouteAuthModeNone   SandboxAppServiceRouteAuthMode = "none"
)

// Defines values for SandboxAppServiceRuntimeType.
const (
	SandboxAppServiceRuntimeTypeCmd      SandboxAppServiceRuntimeType = "cmd"
	SandboxAppServiceRuntimeTypeFunction SandboxAppServiceRuntimeType = "function"
	SandboxAppServiceRuntimeTypeManual   SandboxAppServiceRuntimeType = "manual"
)

// Defines values for SandboxFunctionRuntime.
const (
	Python SandboxFunctionRuntime = "python"
)

// Defines values for SandboxFunctionSourceType.
const (
	Inline SandboxFunctionSourceType = "inline"
)

// Defines values for SandboxLifecycleStatus.
const (
	SandboxLifecycleStatusFailed      SandboxLifecycleStatus = "failed"
	SandboxLifecycleStatusPaused      SandboxLifecycleStatus = "paused"
	SandboxLifecycleStatusRunning     SandboxLifecycleStatus = "running"
	SandboxLifecycleStatusStarting    SandboxLifecycleStatus = "starting"
	SandboxLifecycleStatusTerminating SandboxLifecycleStatus = "terminating"
)

// Defines values for SandboxNetworkPolicyMode.
const (
	AllowAll SandboxNetworkPolicyMode = "allow-all"
	BlockAll SandboxNetworkPolicyMode = "block-all"
)

// Defines values for SandboxObservabilityEventType.
const (
	Lifecycle    SandboxObservabilityEventType = "lifecycle"
	NetworkAudit SandboxObservabilityEventType = "network_audit"
	RuntimeStats SandboxObservabilityEventType = "runtime_stats"
)

// Defines values for SandboxObservabilityLogStream.
const (
	Pty    SandboxObservabilityLogStream = "pty"
	Stderr SandboxObservabilityLogStream = "stderr"
	Stdout SandboxObservabilityLogStream = "stdout"
)

// Defines values for SandboxObservabilityOutcome.
const (
	SandboxObservabilityOutcomeCompleted SandboxObservabilityOutcome = "completed"
	SandboxObservabilityOutcomeDenied    SandboxObservabilityOutcome = "denied"
	SandboxObservabilityOutcomeError     SandboxObservabilityOutcome = "error"
	SandboxObservabilityOutcomeFailed    SandboxObservabilityOutcome = "failed"
	SandboxObservabilityOutcomeSucceeded SandboxObservabilityOutcome = "succeeded"
)

// Defines values for SandboxObservabilityWatchLineType.
const (
	SandboxObservabilityWatchLineTypeError     SandboxObservabilityWatchLineType = "error"
	SandboxObservabilityWatchLineTypeEvent     SandboxObservabilityWatchLineType = "event"
	SandboxObservabilityWatchLineTypeHeartbeat SandboxObservabilityWatchLineType = "heartbeat"
	SandboxObservabilityWatchLineTypeLog       SandboxObservabilityWatchLineType = "log"
	SandboxObservabilityWatchLineTypeWatermark SandboxObservabilityWatchLineType = "watermark"
)

// Defines values for SandboxRuntimeMetricFreshnessStatus.
const (
	Fresh   SandboxRuntimeMetricFreshnessStatus = "fresh"
	Missing SandboxRuntimeMetricFreshnessStatus = "missing"
	Stale   SandboxRuntimeMetricFreshnessStatus = "stale"
)

// Defines values for SandboxRuntimeMetricGapReason.
const (
	CollectionError SandboxRuntimeMetricGapReason = "collection_error"
	NoData          SandboxRuntimeMetricGapReason = "no_data"
	SeriesReset     SandboxRuntimeMetricGapReason = "series_reset"
	Unavailable     SandboxRuntimeMetricGapReason = "unavailable"
	Unsupported     SandboxRuntimeMetricGapReason = "unsupported"
)

// Defines values for SandboxRuntimeMetricKind.
const (
	Counter SandboxRuntimeMetricKind = "counter"
	Gauge   SandboxRuntimeMetricKind = "gauge"
)

// Defines values for SandboxRuntimeMetricName.
const (
	SandboxCpuLimit             SandboxRuntimeMetricName = "sandbox.cpu.limit"
	SandboxCpuTime              SandboxRuntimeMetricName = "sandbox.cpu.time"
	SandboxCpuUsage             SandboxRuntimeMetricName = "sandbox.cpu.usage"
	SandboxCpuUtilization       SandboxRuntimeMetricName = "sandbox.cpu.utilization"
	SandboxMemoryAvailable      SandboxRuntimeMetricName = "sandbox.memory.available"
	SandboxMemoryLimit          SandboxRuntimeMetricName = "sandbox.memory.limit"
	SandboxMemoryUsage          SandboxRuntimeMetricName = "sandbox.memory.usage"
	SandboxMemoryUtilization    SandboxRuntimeMetricName = "sandbox.memory.utilization"
	SandboxMemoryWorkingSet     SandboxRuntimeMetricName = "sandbox.memory.working_set"
	SandboxNetworkErrors        SandboxRuntimeMetricName = "sandbox.network.errors"
	SandboxNetworkIo            SandboxRuntimeMetricName = "sandbox.network.io"
	SandboxProcessCount         SandboxRuntimeMetricName = "sandbox.process.count"
	SandboxRootfsWritableInodes SandboxRuntimeMetricName = "sandbox.rootfs.writable.inodes"
	SandboxRootfsWritableUsage  SandboxRuntimeMetricName = "sandbox.rootfs.writable.usage"
)

// Defines values for SandboxRuntimeMetricStatistic.
const (
	Auto    SandboxRuntimeMetricStatistic = "auto"
	Average SandboxRuntimeMetricStatistic = "average"
	Last    SandboxRuntimeMetricStatistic = "last"
	Maximum SandboxRuntimeMetricStatistic = "maximum"
	Minimum SandboxRuntimeMetricStatistic = "minimum"
	Rate    SandboxRuntimeMetricStatistic = "rate"
)

// Defines values for SandboxRuntimeMetricUnit.
const (
	SandboxRuntimeMetricUnitBytes          SandboxRuntimeMetricUnit = "bytes"
	SandboxRuntimeMetricUnitBytesPerSecond SandboxRuntimeMetricUnit = "bytes_per_second"
	SandboxRuntimeMetricUnitCores          SandboxRuntimeMetricUnit = "cores"
	SandboxRuntimeMetricUnitCount          SandboxRuntimeMetricUnit = "count"
	SandboxRuntimeMetricUnitCountPerSecond SandboxRuntimeMetricUnit = "count_per_second"
	SandboxRuntimeMetricUnitRatio          SandboxRuntimeMetricUnit = "ratio"
	SandboxRuntimeMetricUnitSeconds        SandboxRuntimeMetricUnit = "seconds"
)

// Defines values for SandboxVolumeS3ConfigProvider.
const (
	SandboxVolumeS3ConfigProviderAli SandboxVolumeS3ConfigProvider = "ali"
	SandboxVolumeS3ConfigProviderAws SandboxVolumeS3ConfigProvider = "aws"
	SandboxVolumeS3ConfigProviderR2  SandboxVolumeS3ConfigProvider = "r2"
)

// Defines values for SeccompProfileType.
const (
	SeccompProfileTypeLocalhost      SeccompProfileType = "Localhost"
	SeccompProfileTypeRuntimeDefault SeccompProfileType = "RuntimeDefault"
	SeccompProfileTypeUnconfined     SeccompProfileType = "Unconfined"
)

// Defines values for SuccessAPIKeyListResponseSuccess.
const (
	SuccessAPIKeyListResponseSuccessTrue SuccessAPIKeyListResponseSuccess = true
)

// Defines values for SuccessAuthProvidersResponseSuccess.
const (
	SuccessAuthProvidersResponseSuccessTrue SuccessAuthProvidersResponseSuccess = true
)

// Defines values for SuccessClaimResponseSuccess.
const (
	SuccessClaimResponseSuccessTrue SuccessClaimResponseSuccess = true
)

// Defines values for SuccessContextExecResponseSuccess.
const (
	SuccessContextExecResponseSuccessTrue SuccessContextExecResponseSuccess = true
)

// Defines values for SuccessContextListResponseSuccess.
const (
	SuccessContextListResponseSuccessTrue SuccessContextListResponseSuccess = true
)

// Defines values for SuccessContextResponseSuccess.
const (
	SuccessContextResponseSuccessTrue SuccessContextResponseSuccess = true
)

// Defines values for SuccessCreateAPIKeyResponseSuccess.
const (
	SuccessCreateAPIKeyResponseSuccessTrue SuccessCreateAPIKeyResponseSuccess = true
)

// Defines values for SuccessCreatedResponseSuccess.
const (
	SuccessCreatedResponseSuccessTrue SuccessCreatedResponseSuccess = true
)

// Defines values for SuccessCredentialSourceListResponseSuccess.
const (
	SuccessCredentialSourceListResponseSuccessTrue SuccessCredentialSourceListResponseSuccess = true
)

// Defines values for SuccessCredentialSourceResponseSuccess.
const (
	SuccessCredentialSourceResponseSuccessTrue SuccessCredentialSourceResponseSuccess = true
)

// Defines values for SuccessCurrentAPIKeyResponseSuccess.
const (
	SuccessCurrentAPIKeyResponseSuccessTrue SuccessCurrentAPIKeyResponseSuccess = true
)

// Defines values for SuccessDeletedResponseSuccess.
const (
	SuccessDeletedResponseSuccessTrue SuccessDeletedResponseSuccess = true
)

// Defines values for SuccessDeviceLoginPollResponseSuccess.
const (
	SuccessDeviceLoginPollResponseSuccessTrue SuccessDeviceLoginPollResponseSuccess = true
)

// Defines values for SuccessDeviceLoginStartResponseSuccess.
const (
	SuccessDeviceLoginStartResponseSuccessTrue SuccessDeviceLoginStartResponseSuccess = true
)

// Defines values for SuccessEnvelopeSuccess.
const (
	SuccessEnvelopeSuccessTrue SuccessEnvelopeSuccess = true
)

// Defines values for SuccessFileListResponseSuccess.
const (
	SuccessFileListResponseSuccessTrue SuccessFileListResponseSuccess = true
)

// Defines values for SuccessFileStatResponseSuccess.
const (
	SuccessFileStatResponseSuccessTrue SuccessFileStatResponseSuccess = true
)

// Defines values for SuccessForkSandboxResponseSuccess.
const (
	SuccessForkSandboxResponseSuccessTrue SuccessForkSandboxResponseSuccess = true
)

// Defines values for SuccessGatewayMetadataResponseSuccess.
const (
	SuccessGatewayMetadataResponseSuccessTrue SuccessGatewayMetadataResponseSuccess = true
)

// Defines values for SuccessHealthResponseSuccess.
const (
	SuccessHealthResponseSuccessTrue SuccessHealthResponseSuccess = true
)

// Defines values for SuccessIdentityListResponseSuccess.
const (
	SuccessIdentityListResponseSuccessTrue SuccessIdentityListResponseSuccess = true
)

// Defines values for SuccessLoginResponseSuccess.
const (
	SuccessLoginResponseSuccessTrue SuccessLoginResponseSuccess = true
)

// Defines values for SuccessMessageResponseSuccess.
const (
	SuccessMessageResponseSuccessTrue SuccessMessageResponseSuccess = true
)

// Defines values for SuccessMovedResponseSuccess.
const (
	SuccessMovedResponseSuccessTrue SuccessMovedResponseSuccess = true
)

// Defines values for SuccessPauseSandboxResponseSuccess.
const (
	SuccessPauseSandboxResponseSuccessTrue SuccessPauseSandboxResponseSuccess = true
)

// Defines values for SuccessRefreshResponseSuccess.
const (
	SuccessRefreshResponseSuccessTrue SuccessRefreshResponseSuccess = true
)

// Defines values for SuccessRegionListResponseSuccess.
const (
	SuccessRegionListResponseSuccessTrue SuccessRegionListResponseSuccess = true
)

// Defines values for SuccessRegionResponseSuccess.
const (
	SuccessRegionResponseSuccessTrue SuccessRegionResponseSuccess = true
)

// Defines values for SuccessRegistryCredentialsResponseSuccess.
const (
	SuccessRegistryCredentialsResponseSuccessTrue SuccessRegistryCredentialsResponseSuccess = true
)

// Defines values for SuccessResizedResponseSuccess.
const (
	SuccessResizedResponseSuccessTrue SuccessResizedResponseSuccess = true
)

// Defines values for SuccessRestoreResponseSuccess.
const (
	SuccessRestoreResponseSuccessTrue SuccessRestoreResponseSuccess = true
)

// Defines values for SuccessRestoreSandboxRootFSResponseSuccess.
const (
	SuccessRestoreSandboxRootFSResponseSuccessTrue SuccessRestoreSandboxRootFSResponseSuccess = true
)

// Defines values for SuccessResumeSandboxResponseSuccess.
const (
	SuccessResumeSandboxResponseSuccessTrue SuccessResumeSandboxResponseSuccess = true
)

// Defines values for SuccessSSHPublicKeyListResponseSuccess.
const (
	SuccessSSHPublicKeyListResponseSuccessTrue SuccessSSHPublicKeyListResponseSuccess = true
)

// Defines values for SuccessSSHPublicKeyResponseSuccess.
const (
	SuccessSSHPublicKeyResponseSuccessTrue SuccessSSHPublicKeyResponseSuccess = true
)

// Defines values for SuccessSandboxListResponseSuccess.
const (
	SuccessSandboxListResponseSuccessTrue SuccessSandboxListResponseSuccess = true
)

// Defines values for SuccessSandboxNetworkPolicyResponseSuccess.
const (
	SuccessSandboxNetworkPolicyResponseSuccessTrue SuccessSandboxNetworkPolicyResponseSuccess = true
)

// Defines values for SuccessSandboxObservabilityEventsResponseSuccess.
const (
	SuccessSandboxObservabilityEventsResponseSuccessTrue SuccessSandboxObservabilityEventsResponseSuccess = true
)

// Defines values for SuccessSandboxObservabilityLogsResponseSuccess.
const (
	SuccessSandboxObservabilityLogsResponseSuccessTrue SuccessSandboxObservabilityLogsResponseSuccess = true
)

// Defines values for SuccessSandboxResponseSuccess.
const (
	SuccessSandboxResponseSuccessTrue SuccessSandboxResponseSuccess = true
)

// Defines values for SuccessSandboxRootFSSnapshotListResponseSuccess.
const (
	SuccessSandboxRootFSSnapshotListResponseSuccessTrue SuccessSandboxRootFSSnapshotListResponseSuccess = true
)

// Defines values for SuccessSandboxRootFSSnapshotResponseSuccess.
const (
	SuccessSandboxRootFSSnapshotResponseSuccessTrue SuccessSandboxRootFSSnapshotResponseSuccess = true
)

// Defines values for SuccessSandboxRuntimeMetricsCatalogResponseSuccess.
const (
	SuccessSandboxRuntimeMetricsCatalogResponseSuccessTrue SuccessSandboxRuntimeMetricsCatalogResponseSuccess = true
)

// Defines values for SuccessSandboxRuntimeMetricsResponseSuccess.
const (
	SuccessSandboxRuntimeMetricsResponseSuccessTrue SuccessSandboxRuntimeMetricsResponseSuccess = true
)

// Defines values for SuccessSandboxServicesResponseSuccess.
const (
	SuccessSandboxServicesResponseSuccessTrue SuccessSandboxServicesResponseSuccess = true
)

// Defines values for SuccessSandboxStatusResponseSuccess.
const (
	SuccessSandboxStatusResponseSuccessTrue SuccessSandboxStatusResponseSuccess = true
)

// Defines values for SuccessSandboxVolumeListResponseSuccess.
const (
	SuccessSandboxVolumeListResponseSuccessTrue SuccessSandboxVolumeListResponseSuccess = true
)

// Defines values for SuccessSandboxVolumeResponseSuccess.
const (
	SuccessSandboxVolumeResponseSuccessTrue SuccessSandboxVolumeResponseSuccess = true
)

// Defines values for SuccessSignaledResponseSuccess.
const (
	SuccessSignaledResponseSuccessTrue SuccessSignaledResponseSuccess = true
)

// Defines values for SuccessSnapshotListResponseSuccess.
const (
	SuccessSnapshotListResponseSuccessTrue SuccessSnapshotListResponseSuccess = true
)

// Defines values for SuccessSnapshotResponseSuccess.
const (
	SuccessSnapshotResponseSuccessTrue SuccessSnapshotResponseSuccess = true
)

// Defines values for SuccessTeamListResponseSuccess.
const (
	SuccessTeamListResponseSuccessTrue SuccessTeamListResponseSuccess = true
)

// Defines values for SuccessTeamMemberListResponseSuccess.
const (
	SuccessTeamMemberListResponseSuccessTrue SuccessTeamMemberListResponseSuccess = true
)

// Defines values for SuccessTeamMemberResponseSuccess.
const (
	SuccessTeamMemberResponseSuccessTrue SuccessTeamMemberResponseSuccess = true
)

// Defines values for SuccessTeamQuotaResponseSuccess.
const (
	SuccessTeamQuotaResponseSuccessTrue SuccessTeamQuotaResponseSuccess = true
)

// Defines values for SuccessTeamResponseSuccess.
const (
	SuccessTeamResponseSuccessTrue SuccessTeamResponseSuccess = true
)

// Defines values for SuccessTemplateListResponseSuccess.
const (
	SuccessTemplateListResponseSuccessTrue SuccessTemplateListResponseSuccess = true
)

// Defines values for SuccessTemplateResponseSuccess.
const (
	SuccessTemplateResponseSuccessTrue SuccessTemplateResponseSuccess = true
)

// Defines values for SuccessUserResponseSuccess.
const (
	SuccessUserResponseSuccessTrue SuccessUserResponseSuccess = true
)

// Defines values for SuccessVolumeFileArchiveImportResponseSuccess.
const (
	SuccessVolumeFileArchiveImportResponseSuccessTrue SuccessVolumeFileArchiveImportResponseSuccess = true
)

// Defines values for SuccessWrittenResponseSuccess.
const (
	True SuccessWrittenResponseSuccess = true
)

// Defines values for TeamQuotaUnit.
const (
	TeamQuotaUnitBytes    TeamQuotaUnit = "bytes"
	TeamQuotaUnitCount    TeamQuotaUnit = "count"
	TeamQuotaUnitGB       TeamQuotaUnit = "GB"
	TeamQuotaUnitMiB      TeamQuotaUnit = "MiB"
	TeamQuotaUnitMillicpu TeamQuotaUnit = "millicpu"
)

// Defines values for TrafficRuleAction.
const (
	Allow TrafficRuleAction = "allow"
	Deny  TrafficRuleAction = "deny"
)

// Defines values for TrafficRuleAppProtocol.
const (
	TrafficRuleAppProtocolAmqp    TrafficRuleAppProtocol = "amqp"
	TrafficRuleAppProtocolDns     TrafficRuleAppProtocol = "dns"
	TrafficRuleAppProtocolHttp    TrafficRuleAppProtocol = "http"
	TrafficRuleAppProtocolMongodb TrafficRuleAppProtocol = "mongodb"
	TrafficRuleAppProtocolMqtt    TrafficRuleAppProtocol = "mqtt"
	TrafficRuleAppProtocolRedis   TrafficRuleAppProtocol = "redis"
	TrafficRuleAppProtocolSocks5  TrafficRuleAppProtocol = "socks5"
	TrafficRuleAppProtocolSsh     TrafficRuleAppProtocol = "ssh"
	TrafficRuleAppProtocolTls     TrafficRuleAppProtocol = "tls"
	TrafficRuleAppProtocolUdp     TrafficRuleAppProtocol = "udp"
)

// Defines values for UpdateTeamMemberRequestRole.
const (
	UpdateTeamMemberRequestRoleAdmin     UpdateTeamMemberRequestRole = "admin"
	UpdateTeamMemberRequestRoleBuilder   UpdateTeamMemberRequestRole = "builder"
	UpdateTeamMemberRequestRoleDeveloper UpdateTeamMemberRequestRole = "developer"
	UpdateTeamMemberRequestRoleViewer    UpdateTeamMemberRequestRole = "viewer"
)

// Defines values for VolumeAccessMode.
const (
	ROX VolumeAccessMode = "ROX"
	RWO VolumeAccessMode = "RWO"
	RWX VolumeAccessMode = "RWX"
)

// Defines values for VolumeBackend.
const (
	S0fs VolumeBackend = "s0fs"
	S3   VolumeBackend = "s3"
)

// APIKey defines model for APIKey.
type APIKey struct {
	CreatedAt  time.Time  `json:"created_at"`
	CreatedBy  string     `json:"created_by"`
	ExpiresAt  time.Time  `json:"expires_at"`
	Id         string     `json:"id"`
	IsActive   bool       `json:"is_active"`
	KeyValue   *string    `json:"key_value,omitempty"`
	LastUsedAt *time.Time `json:"last_used_at,omitempty"`
	Name       string     `json:"name"`
	Roles      []string   `json:"roles"`

	// Scope API key scope. team keys use roles for team-scoped access. platform keys grant system admin access and can only be created or managed by system admin user sessions.
	Scope      string    `json:"scope"`
	TeamId     string    `json:"team_id"`
	UpdatedAt  time.Time `json:"updated_at"`
	UsageCount *int64    `json:"usage_count,omitempty"`
	UserId     *string   `json:"user_id"`
}

// AddTeamMemberRequest defines model for AddTeamMemberRequest.
type AddTeamMemberRequest struct {
	Email openapi_types.Email      `json:"email"`
	Role  AddTeamMemberRequestRole `json:"role"`
}

// AddTeamMemberRequestRole defines model for AddTeamMemberRequest.Role.
type AddTeamMemberRequestRole string

// Affinity defines model for Affinity.
type Affinity struct {
	NodeAffinity *NodeAffinity `json:"nodeAffinity,omitempty"`
	PodAffinity  *PodAffinity  `json:"podAffinity,omitempty"`
}

// AppArmorProfile defines model for AppArmorProfile.
type AppArmorProfile struct {
	LocalhostProfile *string             `json:"localhostProfile,omitempty"`
	Type             AppArmorProfileType `json:"type"`
}

// AppArmorProfileType defines model for AppArmorProfile.Type.
type AppArmorProfileType string

// AuthProvider defines model for AuthProvider.
type AuthProvider struct {
	BrowserLoginEnabled bool `json:"browser_login_enabled"`
	DeviceLoginEnabled  bool `json:"device_login_enabled"`

	// ExternalAuthPortalUrl When set, browser login for this provider should redirect to this external URL instead of initiating the OIDC flow directly. Used for deployments that host their own authorization portal.
	ExternalAuthPortalUrl *string `json:"external_auth_portal_url,omitempty"`
	Id                    string  `json:"id"`
	Name                  string  `json:"name"`
	Type                  string  `json:"type"`
}

// CachePolicySpec defines model for CachePolicySpec.
type CachePolicySpec struct {
	// Ttl Override for the broker-side cache TTL of resolved auth material.
	Ttl *string `json:"ttl,omitempty"`
}

// Capabilities defines model for Capabilities.
type Capabilities struct {
	Add  *[]string `json:"add,omitempty"`
	Drop *[]string `json:"drop,omitempty"`
}

// ChangePasswordRequest defines model for ChangePasswordRequest.
type ChangePasswordRequest struct {
	NewPassword string `json:"new_password"`
	OldPassword string `json:"old_password"`
}

// ClaimMountRequest defines model for ClaimMountRequest.
type ClaimMountRequest struct {
	MountPoint      string `json:"mount_point"`
	SandboxvolumeId string `json:"sandboxvolume_id"`
}

// ClaimRequest defines model for ClaimRequest.
type ClaimRequest struct {
	Config *SandboxConfig `json:"config,omitempty"`

	// Mounts Optional claim-time Sandbox Volume bindings. A claim may bind any subset of template-declared mount points; omitted declared mount points remain writable rootfs-backed directories and are included in rootfs checkpoints.
	Mounts *[]ClaimMountRequest `json:"mounts,omitempty"`

	// SnapshotId Optional sandbox rootfs snapshot ID used to initialize the claimed sandbox writable root filesystem.
	SnapshotId *string `json:"snapshot_id,omitempty"`
	Template   *string `json:"template,omitempty"`
}

// ClaimResponse defines model for ClaimResponse.
type ClaimResponse struct {
	BootstrapMounts *[]MountStatus         `json:"bootstrap_mounts,omitempty"`
	ClusterId       *string                `json:"cluster_id"`
	PodName         string                 `json:"pod_name"`
	SandboxId       string                 `json:"sandbox_id"`
	Status          SandboxLifecycleStatus `json:"status"`
	Template        string                 `json:"template"`
}

// ContainerSpec defines model for ContainerSpec.
type ContainerSpec struct {
	Env             *[]EnvVar        `json:"env,omitempty"`
	Image           string           `json:"image"`
	ImagePullPolicy *string          `json:"imagePullPolicy,omitempty"`
	Resources       ResourceQuota    `json:"resources"`
	SecurityContext *SecurityContext `json:"securityContext,omitempty"`
}

// ContextExecResponse defines model for ContextExecResponse.
type ContextExecResponse struct {
	// ExitCode Present when the underlying process has exited.
	ExitCode *int32 `json:"exit_code,omitempty"`

	// OutputRaw Raw PTY output, may contain terminal control characters (e.g. \r)
	OutputRaw string `json:"output_raw"`

	// State Final process state when the underlying process has exited.
	State *string `json:"state,omitempty"`

	// Stderr Captured stderr for non-PTY CMD contexts when available.
	Stderr *string `json:"stderr,omitempty"`

	// Stdout Captured stdout for non-PTY CMD contexts when available.
	Stdout *string `json:"stdout,omitempty"`
}

// ContextInputRequest defines model for ContextInputRequest.
type ContextInputRequest struct {
	// Data Input bytes encoded as a string. The /input endpoint writes this value exactly as provided. The /exec endpoint appends a trailing newline for REPL contexts when missing.
	Data string `json:"data"`
}

// ContextResourceUsage defines model for ContextResourceUsage.
type ContextResourceUsage struct {
	// Alias Alias for the REPL or CLI tool (e.g., python, node, bash, redis-cli)
	Alias     *string        `json:"alias,omitempty"`
	ContextId *string        `json:"context_id,omitempty"`
	Paused    *bool          `json:"paused,omitempty"`
	Running   *bool          `json:"running,omitempty"`
	Type      *string        `json:"type,omitempty"`
	Usage     *ResourceUsage `json:"usage,omitempty"`
}

// ContextResponse defines model for ContextResponse.
type ContextResponse struct {
	// Alias Alias for the REPL or CLI tool (e.g., python, node, bash, redis-cli)
	Alias     *string            `json:"alias,omitempty"`
	CreatedAt string             `json:"created_at"`
	Cwd       *string            `json:"cwd,omitempty"`
	EnvVars   *map[string]string `json:"env_vars,omitempty"`

	// ExitCode Present when the underlying process has exited.
	ExitCode *int32 `json:"exit_code,omitempty"`
	Id       string `json:"id"`

	// OutputRaw Raw PTY output for CMD contexts with wait=true, may contain terminal control characters
	OutputRaw *string `json:"output_raw,omitempty"`
	Paused    bool    `json:"paused"`
	Running   bool    `json:"running"`

	// State Final process state when the underlying process has exited.
	State *string `json:"state,omitempty"`

	// Stderr Captured stderr for non-PTY CMD contexts when available.
	Stderr *string `json:"stderr,omitempty"`

	// Stdout Captured stdout for non-PTY CMD contexts when available.
	Stdout *string     `json:"stdout,omitempty"`
	Type   ProcessType `json:"type"`
}

// CreateAPIKeyRequest defines model for CreateAPIKeyRequest.
type CreateAPIKeyRequest struct {
	// ExpiresIn 30d, 90d, 180d, 365d, or never
	ExpiresIn *string `json:"expires_in,omitempty"`
	Name      string  `json:"name"`

	// Roles Requested API key roles. Supported roles: admin, developer, builder, viewer. The roles must not grant permissions outside the authenticated caller's permissions.
	Roles *[]string `json:"roles,omitempty"`

	// Scope API key scope: team or platform. Defaults to team. platform keys grant system admin access, require a system admin user session, and do not support roles.
	Scope *string `json:"scope,omitempty"`
}

// CreateAPIKeyResponse defines model for CreateAPIKeyResponse.
type CreateAPIKeyResponse struct {
	CreatedAt time.Time `json:"created_at"`
	ExpiresAt time.Time `json:"expires_at"`
	Id        string    `json:"id"`
	Key       *string   `json:"key,omitempty"`
	Name      string    `json:"name"`
	Roles     []string  `json:"roles"`
	Scope     string    `json:"scope"`
	TeamId    string    `json:"team_id"`
}

// CreateCMDContextRequest defines model for CreateCMDContextRequest.
type CreateCMDContextRequest struct {
	Command []string `json:"command"`
}

// CreateContextRequest defines model for CreateContextRequest.
type CreateContextRequest struct {
	Cmd            *CreateCMDContextRequest  `json:"cmd,omitempty"`
	Cwd            *string                   `json:"cwd,omitempty"`
	EnvVars        *map[string]string        `json:"env_vars,omitempty"`
	IdleTimeoutSec *int32                    `json:"idle_timeout_sec,omitempty"`
	PtySize        *PTYSize                  `json:"pty_size,omitempty"`
	Repl           *CreateREPLContextRequest `json:"repl,omitempty"`
	TtlSec         *int32                    `json:"ttl_sec,omitempty"`
	Type           *ProcessType              `json:"type,omitempty"`
	WaitUntilDone  *bool                     `json:"wait_until_done,omitempty"`
}

// CreateREPLContextRequest defines model for CreateREPLContextRequest.
type CreateREPLContextRequest struct {
	// Alias Alias for the REPL or CLI tool (e.g., python, node, bash, redis-cli)
	Alias      *string     `json:"alias,omitempty"`
	Input      *string     `json:"input,omitempty"`
	ReplConfig *REPLConfig `json:"repl_config,omitempty"`
}

// CreateRegionRequest defines model for CreateRegionRequest.
type CreateRegionRequest struct {
	DisplayName        *string `json:"display_name,omitempty"`
	Enabled            *bool   `json:"enabled,omitempty"`
	Id                 string  `json:"id"`
	MeteringExportUrl  *string `json:"metering_export_url"`
	RegionalGatewayUrl string  `json:"regional_gateway_url"`
}

// CreateSSHPublicKeyRequest defines model for CreateSSHPublicKeyRequest.
type CreateSSHPublicKeyRequest struct {
	Name      string `json:"name"`
	PublicKey string `json:"public_key"`
}

// CreateSandboxRootFSSnapshotRequest Optional snapshot metadata. The source sandbox may be running or paused;
// running sources are checkpointed before the snapshot record is created.
type CreateSandboxRootFSSnapshotRequest struct {
	Description *string `json:"description,omitempty"`

	// ExpiresAt Optional snapshot expiration timestamp. Zero value means not set.
	ExpiresAt *time.Time `json:"expires_at,omitempty"`
	Name      *string    `json:"name,omitempty"`
}

// CreateSandboxVolumeRequest defines model for CreateSandboxVolumeRequest.
type CreateSandboxVolumeRequest struct {
	// AccessMode Access mode for sandbox volumes. Enforcement is scoped to storage-proxy instances. RWO allows read-write mounts on a single instance; ROX allows read-only mounts across instances; RWX allows read-write mounts across instances.
	AccessMode *VolumeAccessMode `json:"access_mode,omitempty"`

	// Backend Storage backend for a SandboxVolume. s0fs is the default durable Sandbox0 volume backend. s3 mounts an existing S3-compatible prefix through the volume portal and supports mount-s3-like object projection.
	Backend *VolumeBackend `json:"backend,omitempty"`

	// DefaultPosixGid Default POSIX GID used by external volume access paths that do not carry caller identity. Defaults to 0 when omitted on create.
	DefaultPosixGid *int64 `json:"default_posix_gid,omitempty"`

	// DefaultPosixUid Default POSIX UID used by external volume access paths that do not carry caller identity. Defaults to 0 when omitted on create.
	DefaultPosixUid *int64                       `json:"default_posix_uid,omitempty"`
	S3              *CreateSandboxVolumeS3Config `json:"s3,omitempty"`

	// SnapshotId Optional snapshot ID used to initialize the new volume from immutable snapshot state.
	SnapshotId *string `json:"snapshot_id,omitempty"`
}

// CreateSandboxVolumeS3Config defines model for CreateSandboxVolumeS3Config.
type CreateSandboxVolumeS3Config struct {
	// AccessKey Access key for this S3 backend volume. Required with secret_key. Stored encrypted and omitted from API responses.
	AccessKey string `json:"access_key"`
	Bucket    string `json:"bucket"`

	// EndpointUrl Optional endpoint override. Required for ali and r2. For aws, endpoint_url can be used instead of region for S3-compatible endpoints.
	EndpointUrl *string `json:"endpoint_url,omitempty"`

	// Prefix Optional object key prefix to expose as the volume root.
	Prefix *string `json:"prefix,omitempty"`

	// Provider S3-compatible provider. ali is Aliyun OSS; r2 is Cloudflare R2.
	Provider *CreateSandboxVolumeS3ConfigProvider `json:"provider,omitempty"`

	// Region AWS region for the target bucket. Required for provider aws unless endpoint_url is provided.
	Region *string `json:"region,omitempty"`

	// SecretKey Secret key for this S3 backend volume. Required with access_key. Stored encrypted and omitted from API responses.
	SecretKey string `json:"secret_key"`

	// SessionToken Optional temporary credential session token.
	SessionToken *string `json:"session_token,omitempty"`
}

// CreateSandboxVolumeS3ConfigProvider S3-compatible provider. ali is Aliyun OSS; r2 is Cloudflare R2.
type CreateSandboxVolumeS3ConfigProvider string

// CreateSnapshotRequest defines model for CreateSnapshotRequest.
type CreateSnapshotRequest struct {
	Description *string `json:"description,omitempty"`
	Name        string  `json:"name"`
}

// CreateTeamRequest defines model for CreateTeamRequest.
type CreateTeamRequest struct {
	HomeRegionId *string `json:"home_region_id"`
	Name         string  `json:"name"`
	Slug         *string `json:"slug,omitempty"`
}

// CredentialBinding defines model for CredentialBinding.
type CredentialBinding struct {
	CachePolicy *CachePolicySpec `json:"cachePolicy,omitempty"`
	Projection  ProjectionSpec   `json:"projection"`

	// Ref Stable binding identifier matched by `credentialRef`.
	Ref string `json:"ref"`

	// SourceRef Region-scoped credential source reference resolved by `manager`.
	SourceRef string `json:"sourceRef"`
}

// CredentialProjectionType defines model for CredentialProjectionType.
type CredentialProjectionType string

// CredentialSourceMetadata defines model for CredentialSourceMetadata.
type CredentialSourceMetadata struct {
	CreatedAt      *time.Time                   `json:"createdAt"`
	CurrentVersion *int64                       `json:"currentVersion,omitempty"`
	Name           string                       `json:"name"`
	ResolverKind   CredentialSourceResolverKind `json:"resolverKind"`
	Status         *string                      `json:"status,omitempty"`
	UpdatedAt      *time.Time                   `json:"updatedAt"`
}

// CredentialSourceResolverKind defines model for CredentialSourceResolverKind.
type CredentialSourceResolverKind string

// CredentialSourceWriteRequest defines model for CredentialSourceWriteRequest.
type CredentialSourceWriteRequest struct {
	Name         string                       `json:"name"`
	ResolverKind CredentialSourceResolverKind `json:"resolverKind"`
	Spec         CredentialSourceWriteSpec    `json:"spec"`
}

// CredentialSourceWriteSpec defines model for CredentialSourceWriteSpec.
type CredentialSourceWriteSpec struct {
	StaticHeaders              *StaticHeadersSourceSpec              `json:"staticHeaders,omitempty"`
	StaticSSHPrivateKey        *StaticSSHPrivateKeySourceSpec        `json:"staticSSHPrivateKey,omitempty"`
	StaticTLSClientCertificate *StaticTLSClientCertificateSourceSpec `json:"staticTLSClientCertificate,omitempty"`
	StaticUsernamePassword     *StaticUsernamePasswordSourceSpec     `json:"staticUsernamePassword,omitempty"`
}

// CurrentAPIKeyResponse defines model for CurrentAPIKeyResponse.
type CurrentAPIKeyResponse struct {
	CreatedBy   string    `json:"created_by"`
	ExpiresAt   time.Time `json:"expires_at"`
	Id          string    `json:"id"`
	IsActive    bool      `json:"is_active"`
	Permissions []string  `json:"permissions"`
	Roles       []string  `json:"roles"`
	Scope       string    `json:"scope"`
	TeamId      string    `json:"team_id"`
}

// DeviceLoginPollRequest defines model for DeviceLoginPollRequest.
type DeviceLoginPollRequest struct {
	DeviceLoginId string `json:"device_login_id"`
}

// DeviceLoginPollResponse defines model for DeviceLoginPollResponse.
type DeviceLoginPollResponse struct {
	ExpiresAt       *int64                        `json:"expires_at,omitempty"`
	IntervalSeconds *int                          `json:"interval_seconds,omitempty"`
	Login           *LoginResponse                `json:"login,omitempty"`
	Status          DeviceLoginPollResponseStatus `json:"status"`
}

// DeviceLoginPollResponseStatus defines model for DeviceLoginPollResponse.Status.
type DeviceLoginPollResponseStatus string

// DeviceLoginStartResponse defines model for DeviceLoginStartResponse.
type DeviceLoginStartResponse struct {
	DeviceLoginId           string  `json:"device_login_id"`
	ExpiresAt               int64   `json:"expires_at"`
	IntervalSeconds         int     `json:"interval_seconds"`
	UserCode                string  `json:"user_code"`
	VerificationUri         string  `json:"verification_uri"`
	VerificationUriComplete *string `json:"verification_uri_complete,omitempty"`
}

// EgressAuthFailurePolicy defines model for EgressAuthFailurePolicy.
type EgressAuthFailurePolicy string

// EgressAuthProtocol defines model for EgressAuthProtocol.
type EgressAuthProtocol string

// EgressAuthRolloutMode defines model for EgressAuthRolloutMode.
type EgressAuthRolloutMode string

// EgressCredentialRule defines model for EgressCredentialRule.
type EgressCredentialRule struct {
	// CredentialRef Stable binding ref to resolve when this traffic rule matches.
	// The referenced binding must be present in `network.credentialBindings`.
	CredentialRef string `json:"credentialRef"`

	// Domains Domain match list for the rule.
	Domains       *[]string                `json:"domains,omitempty"`
	FailurePolicy *EgressAuthFailurePolicy `json:"failurePolicy,omitempty"`

	// HttpMatch Request-level matcher for HTTP-family egress credential rules.
	HttpMatch *HTTPMatch `json:"httpMatch,omitempty"`

	// Name Optional stable identifier used for merge and replacement.
	Name *string `json:"name,omitempty"`

	// Ports Port/protocol constraints for the rule.
	Ports    *[]PortSpec            `json:"ports,omitempty"`
	Protocol *EgressAuthProtocol    `json:"protocol,omitempty"`
	Rollout  *EgressAuthRolloutMode `json:"rollout,omitempty"`
	TlsMode  *EgressTLSMode         `json:"tlsMode,omitempty"`
}

// EgressProxyPolicy Customer-managed transparent egress proxy for allowed TCP traffic.
type EgressProxyPolicy struct {
	// Address SOCKS5 proxy endpoint in host:port form.
	Address string `json:"address"`

	// CredentialRef Optional credential binding ref using a username_password projection.
	CredentialRef *string         `json:"credentialRef,omitempty"`
	Type          EgressProxyType `json:"type"`
}

// EgressProxyType defines model for EgressProxyType.
type EgressProxyType string

// EgressTLSMode defines model for EgressTLSMode.
type EgressTLSMode string

// EmptyDirMountSpec defines model for EmptyDirMountSpec.
type EmptyDirMountSpec struct {
	MountPath string `json:"mountPath"`

	// SizeLimit Optional size limit for the Kubernetes emptyDir volume.
	SizeLimit *string `json:"sizeLimit,omitempty"`
}

// EnvVar defines model for EnvVar.
type EnvVar struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

// Error defines model for Error.
type Error struct {
	Code    string       `json:"code"`
	Details *interface{} `json:"details,omitempty"`
	Message string       `json:"message"`
}

// ErrorEnvelope defines model for ErrorEnvelope.
type ErrorEnvelope struct {
	Error   Error                `json:"error"`
	Success ErrorEnvelopeSuccess `json:"success"`
}

// ErrorEnvelopeSuccess defines model for ErrorEnvelope.Success.
type ErrorEnvelopeSuccess bool

// ExecCandidate defines model for ExecCandidate.
type ExecCandidate struct {
	Args *[]string `json:"args,omitempty"`
	Name string    `json:"name"`
}

// FileContentResponse defines model for FileContentResponse.
type FileContentResponse struct {
	Content  *string                      `json:"content,omitempty"`
	Encoding *FileContentResponseEncoding `json:"encoding,omitempty"`
}

// FileContentResponseEncoding defines model for FileContentResponse.Encoding.
type FileContentResponseEncoding string

// FileInfo defines model for FileInfo.
type FileInfo struct {
	IsLink     *bool         `json:"is_link,omitempty"`
	LinkTarget *string       `json:"link_target,omitempty"`
	ModTime    *time.Time    `json:"mod_time,omitempty"`
	Mode       *string       `json:"mode,omitempty"`
	Name       *string       `json:"name,omitempty"`
	Path       *string       `json:"path,omitempty"`
	Size       *int64        `json:"size,omitempty"`
	Type       *FileInfoType `json:"type,omitempty"`
}

// FileInfoType defines model for FileInfo.Type.
type FileInfoType string

// ForkSandboxConfig defines model for ForkSandboxConfig.
type ForkSandboxConfig struct {
	// HardTtl Sandbox hard time-to-live in seconds for the forked sandbox. Omit to inherit the source setting. Set 0 to disable hard expiration.
	HardTtl *int32 `json:"hard_ttl,omitempty"`

	// Ttl Runtime soft time-to-live in seconds for the forked sandbox. Omit to inherit the source setting. Set 0 to disable soft expiration.
	Ttl *int32 `json:"ttl,omitempty"`
}

// ForkSandboxRequest Optional fork overrides. Omit config to inherit the source sandbox configuration.
// The source sandbox may be running or paused; running sources are checkpointed
// before the paused child sandbox is created.
type ForkSandboxRequest struct {
	Config *ForkSandboxConfig `json:"config,omitempty"`
}

// ForkSandboxResponse defines model for ForkSandboxResponse.
type ForkSandboxResponse struct {
	Sandbox         Sandbox `json:"sandbox"`
	SourceSandboxId string  `json:"source_sandbox_id"`
}

// ForkVolumeRequest defines model for ForkVolumeRequest.
type ForkVolumeRequest struct {
	// AccessMode Access mode for sandbox volumes. Enforcement is scoped to storage-proxy instances. RWO allows read-write mounts on a single instance; ROX allows read-only mounts across instances; RWX allows read-write mounts across instances.
	AccessMode *VolumeAccessMode `json:"access_mode,omitempty"`

	// DefaultPosixGid Override the default POSIX GID for external volume access paths. Inherits from the source volume when omitted.
	DefaultPosixGid *int64 `json:"default_posix_gid,omitempty"`

	// DefaultPosixUid Override the default POSIX UID for external volume access paths. Inherits from the source volume when omitted.
	DefaultPosixUid *int64 `json:"default_posix_uid,omitempty"`
}

// GatewayMetadata defines model for GatewayMetadata.
type GatewayMetadata struct {
	GatewayMode GatewayMetadataGatewayMode `json:"gateway_mode"`
	Service     string                     `json:"service"`
}

// GatewayMetadataGatewayMode defines model for GatewayMetadata.GatewayMode.
type GatewayMetadataGatewayMode string

// HTTPHeadersProjection defines model for HTTPHeadersProjection.
type HTTPHeadersProjection struct {
	// Headers Outbound headers synthesized from the resolved credential source.
	Headers *[]ProjectedHeader `json:"headers,omitempty"`
}

// HTTPMatch Request-level matcher for HTTP-family egress credential rules.
type HTTPMatch struct {
	// Headers HTTP request header matchers.
	Headers *[]HTTPValueMatch `json:"headers,omitempty"`

	// Methods HTTP methods matched case-insensitively after uppercasing.
	Methods *[]string `json:"methods,omitempty"`

	// PathPrefixes URL path prefix matches.
	PathPrefixes *[]string `json:"pathPrefixes,omitempty"`

	// Paths Exact URL path matches.
	Paths *[]string `json:"paths,omitempty"`

	// Query Decoded query parameter matchers.
	Query *[]HTTPValueMatch `json:"query,omitempty"`
}

// HTTPMethodPolicy HTTP method allow and deny lists.
type HTTPMethodPolicy struct {
	// Allowed When non-empty, only listed HTTP methods are allowed.
	Allowed *[]string `json:"allowed,omitempty"`

	// Denied HTTP methods that are always denied before allowed is evaluated.
	Denied *[]string `json:"denied,omitempty"`
}

// HTTPPathPolicy HTTP path allow and deny lists.
type HTTPPathPolicy struct {
	// Allowed When any allowed path list is non-empty, only listed exact paths are allowed.
	Allowed *[]string `json:"allowed,omitempty"`

	// AllowedPrefixes When any allowed path list is non-empty, only paths with listed prefixes are allowed.
	AllowedPrefixes *[]string `json:"allowedPrefixes,omitempty"`

	// Denied Exact paths that are always denied before allowed is evaluated.
	Denied *[]string `json:"denied,omitempty"`

	// DeniedPrefixes Path prefixes that are always denied before allowed is evaluated.
	DeniedPrefixes *[]string `json:"deniedPrefixes,omitempty"`
}

// HTTPProtocolRule HTTP request operation policy.
type HTTPProtocolRule struct {
	// Methods HTTP method allow and deny lists.
	Methods *HTTPMethodPolicy `json:"methods,omitempty"`

	// Paths HTTP path allow and deny lists.
	Paths *HTTPPathPolicy `json:"paths,omitempty"`
}

// HTTPValueMatch defines model for HTTPValueMatch.
type HTTPValueMatch struct {
	// Name Header or query parameter name.
	Name string `json:"name"`

	// Present When true and values is empty, only parameter/header presence is required.
	Present *bool `json:"present,omitempty"`

	// Values Accepted values. Empty with present=true requires only presence.
	Values *[]string `json:"values,omitempty"`
}

// Identity defines model for Identity.
type Identity struct {
	CreatedAt int64  `json:"created_at"`
	Id        string `json:"id"`
	Provider  string `json:"provider"`
}

// LabelSelector defines model for LabelSelector.
type LabelSelector struct {
	MatchExpressions *[]LabelSelectorRequirement `json:"matchExpressions,omitempty"`
	MatchLabels      *map[string]string          `json:"matchLabels,omitempty"`
}

// LabelSelectorRequirement defines model for LabelSelectorRequirement.
type LabelSelectorRequirement struct {
	Key      string    `json:"key"`
	Operator string    `json:"operator"`
	Values   *[]string `json:"values,omitempty"`
}

// LoginRequest defines model for LoginRequest.
type LoginRequest struct {
	Email    openapi_types.Email `json:"email"`
	Password string              `json:"password"`
}

// LoginResponse defines model for LoginResponse.
type LoginResponse struct {
	AccessToken  string `json:"access_token"`
	ExpiresAt    int64  `json:"expires_at"`
	RefreshToken string `json:"refresh_token"`
	User         User   `json:"user"`
}

// MCPProtocolRule Model Context Protocol operation policy.
type MCPProtocolRule struct {
	// Tools Tool-name allow and deny lists for MCP tools/call requests.
	Tools *MCPToolPolicy `json:"tools,omitempty"`
}

// MCPToolPolicy Tool-name allow and deny lists for MCP tools/call requests.
type MCPToolPolicy struct {
	// Allowed When non-empty, only listed tool names are allowed.
	Allowed *[]string `json:"allowed,omitempty"`

	// Denied Tool names denied before the allowed list is evaluated.
	Denied *[]string `json:"denied,omitempty"`
}

// MountStatus defines model for MountStatus.
type MountStatus struct {
	ErrorCode          *string          `json:"error_code,omitempty"`
	ErrorMessage       *string          `json:"error_message,omitempty"`
	MountPoint         string           `json:"mount_point"`
	MountedAt          *string          `json:"mounted_at,omitempty"`
	MountedDurationSec *int64           `json:"mounted_duration_sec,omitempty"`
	SandboxvolumeId    string           `json:"sandboxvolume_id"`
	State              MountStatusState `json:"state"`
}

// MountStatusState defines model for MountStatus.State.
type MountStatusState string

// MoveFileRequest defines model for MoveFileRequest.
type MoveFileRequest struct {
	Destination string `json:"destination"`
	Source      string `json:"source"`
}

// NetworkEgressPolicy Egress rule set interpreted by the selected network mode.
// In `allow-all`, only `denied*` fields are enforced.
// In `block-all`, only `allowed*` fields are enforced.
// `trafficRules` is a rule-based alternative and must not be combined
// with the legacy `allowed*`/`denied*` fields.
type NetworkEgressPolicy struct {
	// AllowedCidrs Legacy CIDR allowlist used only when mode is `block-all`. Use `trafficRules` instead.
	// Deprecated:
	AllowedCidrs *[]string `json:"allowedCidrs,omitempty"`

	// AllowedDomains Legacy domain allowlist used only when mode is `block-all`. Use `trafficRules` instead.
	// Deprecated:
	AllowedDomains *[]string `json:"allowedDomains,omitempty"`

	// AllowedPorts Legacy port/protocol allowlist used only when mode is `block-all`. Use `trafficRules` instead.
	// Deprecated:
	AllowedPorts *[]PortSpec `json:"allowedPorts,omitempty"`

	// CredentialRules Structured egress auth injection rules resolved by the manager runtime egress auth path.
	// These rules are orthogonal to allow/deny matching and are intended for
	// destination-scoped outbound auth behavior.
	CredentialRules *[]EgressCredentialRule `json:"credentialRules,omitempty"`

	// DeniedCidrs Legacy CIDR denylist used only when mode is `allow-all`. Use `trafficRules` instead.
	// Deprecated:
	DeniedCidrs *[]string `json:"deniedCidrs,omitempty"`

	// DeniedDomains Legacy domain denylist used only when mode is `allow-all`. Use `trafficRules` instead.
	// Deprecated:
	DeniedDomains *[]string `json:"deniedDomains,omitempty"`

	// DeniedPorts Legacy port/protocol denylist used only when mode is `allow-all`. Use `trafficRules` instead.
	// Deprecated:
	DeniedPorts *[]PortSpec `json:"deniedPorts,omitempty"`

	// ProtocolRules Protocol-aware controls applied after traffic is allowed by
	// `trafficRules` or legacy allow/deny fields.
	ProtocolRules *[]ProtocolRule `json:"protocolRules,omitempty"`

	// Proxy Customer-managed transparent egress proxy for allowed TCP traffic.
	Proxy *EgressProxyPolicy `json:"proxy,omitempty"`

	// TrafficRules Ordered egress allow/deny rules. The first matching rule wins and
	// unmatched traffic falls back to `mode`.
	TrafficRules *[]TrafficRule `json:"trafficRules,omitempty"`
}

// NodeAffinity defines model for NodeAffinity.
type NodeAffinity struct {
	PreferredDuringSchedulingIgnoredDuringExecution *[]PreferredSchedulingTerm `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`
	RequiredDuringSchedulingIgnoredDuringExecution  *NodeSelector              `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
}

// NodeSelector defines model for NodeSelector.
type NodeSelector struct {
	NodeSelectorTerms *[]NodeSelectorTerm `json:"nodeSelectorTerms,omitempty"`
}

// NodeSelectorRequirement defines model for NodeSelectorRequirement.
type NodeSelectorRequirement struct {
	Key      string    `json:"key"`
	Operator string    `json:"operator"`
	Values   *[]string `json:"values,omitempty"`
}

// NodeSelectorTerm defines model for NodeSelectorTerm.
type NodeSelectorTerm struct {
	MatchExpressions *[]NodeSelectorRequirement `json:"matchExpressions,omitempty"`
	MatchFields      *[]NodeSelectorRequirement `json:"matchFields,omitempty"`
}

// ObservabilityEventSource defines model for ObservabilityEventSource.
type ObservabilityEventSource string

// PTYSize defines model for PTYSize.
type PTYSize struct {
	Cols *int32 `json:"cols,omitempty"`
	Rows *int32 `json:"rows,omitempty"`
}

// PauseSandboxResponse defines model for PauseSandboxResponse.
type PauseSandboxResponse struct {
	// Paused True when checkpoint persistence has finished, runtime deletion has been accepted, and the sandbox is paused.
	Paused        bool                    `json:"paused"`
	ResourceUsage *SandboxResourceUsage   `json:"resource_usage,omitempty"`
	SandboxId     string                  `json:"sandbox_id"`
	Status        *SandboxLifecycleStatus `json:"status,omitempty"`
	UpdatedCpu    *string                 `json:"updated_cpu,omitempty"`
	UpdatedMemory *string                 `json:"updated_memory,omitempty"`
}

// PlaceholderReplacement defines model for PlaceholderReplacement.
type PlaceholderReplacement struct {
	// Locations HTTP request locations where this placeholder can be replaced.
	Locations []PlaceholderSubstitutionLocation `json:"locations"`

	// Placeholder Opaque sandbox-visible value to replace.
	Placeholder string `json:"placeholder"`

	// ValueTemplate Template rendered against the resolved credential source payload.
	ValueTemplate string `json:"valueTemplate"`
}

// PlaceholderSubstitutionLocation defines model for PlaceholderSubstitutionLocation.
type PlaceholderSubstitutionLocation string

// PlaceholderSubstitutionProjection defines model for PlaceholderSubstitutionProjection.
type PlaceholderSubstitutionProjection struct {
	// Replacements Placeholder replacements applied to outbound HTTP requests at the egress boundary.
	Replacements *[]PlaceholderReplacement `json:"replacements,omitempty"`
}

// PodAffinity defines model for PodAffinity.
type PodAffinity struct {
	PreferredDuringSchedulingIgnoredDuringExecution *[]WeightedPodAffinityTerm `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`
	RequiredDuringSchedulingIgnoredDuringExecution  *[]PodAffinityTerm         `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
}

// PodAffinityTerm defines model for PodAffinityTerm.
type PodAffinityTerm struct {
	LabelSelector *LabelSelector `json:"labelSelector,omitempty"`
	Namespaces    *[]string      `json:"namespaces,omitempty"`
	TopologyKey   string         `json:"topologyKey"`
}

// PodSpecOverride defines model for PodSpecOverride.
type PodSpecOverride struct {
	Affinity           *Affinity            `json:"affinity,omitempty"`
	EmptyDirMounts     *[]EmptyDirMountSpec `json:"emptyDirMounts,omitempty"`
	NodeSelector       *map[string]string   `json:"nodeSelector,omitempty"`
	ServiceAccountName *string              `json:"serviceAccountName,omitempty"`
	Tolerations        *[]Toleration        `json:"tolerations,omitempty"`
}

// PoolStrategy defines model for PoolStrategy.
type PoolStrategy struct {
	MaxIdle int32 `json:"maxIdle"`
	MinIdle int32 `json:"minIdle"`
}

// PortSpec defines model for PortSpec.
type PortSpec struct {
	EndPort  *int32  `json:"endPort,omitempty"`
	Port     int32   `json:"port"`
	Protocol *string `json:"protocol,omitempty"`
}

// PreferredSchedulingTerm defines model for PreferredSchedulingTerm.
type PreferredSchedulingTerm struct {
	Preference NodeSelectorTerm `json:"preference"`
	Weight     int32            `json:"weight"`
}

// ProcessType defines model for ProcessType.
type ProcessType string

// ProjectedHeader defines model for ProjectedHeader.
type ProjectedHeader struct {
	// Name Outbound header name.
	Name string `json:"name"`

	// ValueTemplate Template rendered against the resolved credential source payload.
	ValueTemplate string `json:"valueTemplate"`
}

// ProjectionSpec defines model for ProjectionSpec.
type ProjectionSpec struct {
	HttpHeaders             *HTTPHeadersProjection             `json:"httpHeaders,omitempty"`
	PlaceholderSubstitution *PlaceholderSubstitutionProjection `json:"placeholderSubstitution,omitempty"`

	// SshProxy Transparent SSH proxy projection used for SSH egress re-origination.
	SshProxy *SSHProxyProjection `json:"sshProxy,omitempty"`

	// TlsClientCertificate Client certificate projection used for TLS terminate-reoriginate auth.
	TlsClientCertificate *TLSClientCertificateProjection `json:"tlsClientCertificate,omitempty"`
	Type                 CredentialProjectionType        `json:"type"`

	// UsernamePassword Username/password projection used for SOCKS5 and MQTT auth handshakes.
	UsernamePassword *UsernamePasswordProjection `json:"usernamePassword,omitempty"`
}

// ProtocolRule Protocol-aware egress controls applied after destination traffic is allowed.
type ProtocolRule struct {
	// Domains Domain match list for the rule.
	Domains *[]string `json:"domains,omitempty"`

	// Http HTTP request operation policy.
	Http *HTTPProtocolRule `json:"http,omitempty"`

	// HttpMatch Request-level matcher for HTTP-family egress credential rules.
	HttpMatch *HTTPMatch `json:"httpMatch,omitempty"`

	// Mcp Model Context Protocol operation policy.
	Mcp *MCPProtocolRule `json:"mcp,omitempty"`

	// Name Optional stable identifier used for merge and replacement.
	Name *string `json:"name,omitempty"`

	// Ports Port/protocol constraints for the rule.
	Ports    *[]PortSpec          `json:"ports,omitempty"`
	Protocol ProtocolRuleProtocol `json:"protocol"`
	TlsMode  *EgressTLSMode       `json:"tlsMode,omitempty"`
}

// ProtocolRuleProtocol defines model for ProtocolRuleProtocol.
type ProtocolRuleProtocol string

// QuotaDimension defines model for QuotaDimension.
type QuotaDimension string

// REPLConfig defines model for REPLConfig.
type REPLConfig struct {
	Candidates  []ExecCandidate   `json:"candidates"`
	DefaultTerm *string           `json:"default_term,omitempty"`
	Description *string           `json:"description,omitempty"`
	DisplayName *string           `json:"display_name,omitempty"`
	Env         *[]REPLEnvVar     `json:"env,omitempty"`
	Name        string            `json:"name"`
	Prompt      *REPLPromptConfig `json:"prompt,omitempty"`
	Ready       *REPLReadyConfig  `json:"ready,omitempty"`
}

// REPLEnvVar defines model for REPLEnvVar.
type REPLEnvVar struct {
	Name      string  `json:"name"`
	Value     *string `json:"value,omitempty"`
	ValueFrom *string `json:"value_from,omitempty"`
}

// REPLPromptConfig defines model for REPLPromptConfig.
type REPLPromptConfig struct {
	CustomPrompt *string `json:"custom_prompt,omitempty"`
}

// REPLReadyConfig defines model for REPLReadyConfig.
type REPLReadyConfig struct {
	Mode           *REPLReadyMode `json:"mode,omitempty"`
	StartupDelayMs *int32         `json:"startup_delay_ms,omitempty"`
	Token          *string        `json:"token,omitempty"`
}

// REPLReadyMode defines model for REPLReadyMode.
type REPLReadyMode string

// RefreshRequest defines model for RefreshRequest.
type RefreshRequest struct {
	RefreshToken string `json:"refresh_token"`
}

// RefreshResponse defines model for RefreshResponse.
type RefreshResponse struct {
	ExpiresAt time.Time `json:"expires_at"`

	// HardExpiresAt Hard expiration timestamp. Zero value means not set.
	HardExpiresAt time.Time `json:"hard_expires_at"`
	SandboxId     string    `json:"sandbox_id"`
}

// Region defines model for Region.
type Region struct {
	DisplayName        *string `json:"display_name,omitempty"`
	Enabled            bool    `json:"enabled"`
	Id                 string  `json:"id"`
	MeteringExportUrl  *string `json:"metering_export_url"`
	RegionalGatewayUrl string  `json:"regional_gateway_url"`
}

// RegisterRequest defines model for RegisterRequest.
type RegisterRequest struct {
	Email openapi_types.Email `json:"email"`

	// HomeRegionId Required in global-gateway mode because registration creates the user's initial team.
	HomeRegionId *string `json:"home_region_id"`
	Name         string  `json:"name"`
	Password     string  `json:"password"`
}

// RegistryCredentials defines model for RegistryCredentials.
type RegistryCredentials struct {
	ExpiresAt    *time.Time `json:"expiresAt,omitempty"`
	Password     string     `json:"password"`
	Provider     string     `json:"provider"`
	PullRegistry string     `json:"pullRegistry"`
	PushRegistry string     `json:"pushRegistry"`
	Username     string     `json:"username"`
}

// RegistryCredentialsRequest defines model for RegistryCredentialsRequest.
type RegistryCredentialsRequest struct {
	// TargetImage Target image name and tag requested for push, without credentials.
	TargetImage *string `json:"targetImage,omitempty"`
}

// ResizeContextRequest defines model for ResizeContextRequest.
type ResizeContextRequest struct {
	Cols int32 `json:"cols"`
	Rows int32 `json:"rows"`
}

// ResourceQuota defines model for ResourceQuota.
type ResourceQuota struct {
	Cpu *string `json:"cpu,omitempty"`

	// EphemeralStorage Ephemeral storage limit for the sandbox writable layer and container logs. Defaults to 8Gi when omitted.
	EphemeralStorage *string `json:"ephemeralStorage,omitempty"`
	Memory           *string `json:"memory,omitempty"`
}

// ResourceUsage defines model for ResourceUsage.
type ResourceUsage struct {
	ContainerMemoryLimit      *int64   `json:"container_memory_limit,omitempty"`
	ContainerMemoryUsage      *int64   `json:"container_memory_usage,omitempty"`
	ContainerMemoryWorkingSet *int64   `json:"container_memory_working_set,omitempty"`
	CpuPercent                *float64 `json:"cpu_percent,omitempty"`
	IoReadBytes               *int64   `json:"io_read_bytes,omitempty"`
	IoWriteBytes              *int64   `json:"io_write_bytes,omitempty"`
	MemoryBytes               *int64   `json:"memory_bytes,omitempty"`
	MemoryRss                 *int64   `json:"memory_rss,omitempty"`
	MemoryVms                 *int64   `json:"memory_vms,omitempty"`
	OpenFiles                 *int     `json:"open_files,omitempty"`
	ThreadCount               *int     `json:"thread_count,omitempty"`
}

// RestoreSandboxRootFSRequest defines model for RestoreSandboxRootFSRequest.
type RestoreSandboxRootFSRequest struct {
	SnapshotId string `json:"snapshot_id"`
}

// RestoreSandboxRootFSResponse defines model for RestoreSandboxRootFSResponse.
type RestoreSandboxRootFSResponse struct {
	SandboxId  string                 `json:"sandbox_id"`
	SnapshotId string                 `json:"snapshot_id"`
	Status     SandboxLifecycleStatus `json:"status"`
}

// ResumeSandboxResponse defines model for ResumeSandboxResponse.
type ResumeSandboxResponse struct {
	RestoredMemory *string `json:"restored_memory,omitempty"`
	Resumed        bool    `json:"resumed"`
	SandboxId      string  `json:"sandbox_id"`
}

// SSHProxyProjection Transparent SSH proxy projection used for SSH egress re-origination.
type SSHProxyProjection struct {
	// KnownHosts OpenSSH known_hosts entries used to verify upstream host keys.
	KnownHosts *[]string `json:"knownHosts,omitempty"`

	// SandboxPublicKeys Fake public keys accepted from sandbox-side SSH clients.
	SandboxPublicKeys *[]string `json:"sandboxPublicKeys,omitempty"`

	// UpstreamUsername Username used by netd when authenticating to the upstream SSH server.
	UpstreamUsername *string `json:"upstreamUsername,omitempty"`
}

// SSHPublicKey defines model for SSHPublicKey.
type SSHPublicKey struct {
	Comment           *string   `json:"comment,omitempty"`
	CreatedAt         time.Time `json:"created_at"`
	FingerprintSha256 string    `json:"fingerprint_sha256"`
	Id                string    `json:"id"`
	KeyType           string    `json:"key_type"`
	Name              string    `json:"name"`
	PublicKey         string    `json:"public_key"`
	UpdatedAt         time.Time `json:"updated_at"`
}

// Sandbox defines model for Sandbox.
type Sandbox struct {
	AutoResume bool      `json:"auto_resume"`
	ClaimedAt  time.Time `json:"claimed_at"`
	CreatedAt  time.Time `json:"created_at"`

	// ExpiresAt Soft expiration timestamp. Zero value means not set.
	ExpiresAt time.Time `json:"expires_at"`

	// HardExpiresAt Hard expiration timestamp. Zero value means not set.
	HardExpiresAt time.Time            `json:"hard_expires_at"`
	Id            string               `json:"id"`
	Mounts        *[]ClaimMountRequest `json:"mounts,omitempty"`

	// Paused True when status is paused.
	Paused  bool   `json:"paused"`
	PodName string `json:"pod_name"`

	// Resources Instance-level sandbox resource override. Sandbox0 exposes memory only and derives CPU from the platform memory-per-CPU ratio.
	Resources *SandboxResourceConfig `json:"resources,omitempty"`

	// RuntimeGeneration Monotonically increasing runtime generation. Resume starts a new generation.
	RuntimeGeneration int64                  `json:"runtime_generation"`
	Services          *[]SandboxAppService   `json:"services,omitempty"`
	Ssh               *SandboxSSHConnection  `json:"ssh,omitempty"`
	Status            SandboxLifecycleStatus `json:"status"`
	TeamId            string                 `json:"team_id"`
	TemplateId        string                 `json:"template_id"`
	UpdatedAt         time.Time              `json:"updated_at"`
	UserId            *string                `json:"user_id,omitempty"`
}

// SandboxAppService Canonical service model for sandbox exposure.
type SandboxAppService struct {
	DisplayName *string                  `json:"display_name,omitempty"`
	HealthCheck *SandboxAppServiceHealth `json:"health_check,omitempty"`

	// Id Stable service ID. Must be a DNS label.
	Id      string                   `json:"id"`
	Ingress SandboxAppServiceIngress `json:"ingress"`

	// Port Public exposure routing port. Required for manual and cmd services. Omit for function services; Sandbox0 assigns the internal function service port.
	Port    *int32                    `json:"port,omitempty"`
	Runtime *SandboxAppServiceRuntime `json:"runtime,omitempty"`
}

// SandboxAppServiceHealth defines model for SandboxAppServiceHealth.
type SandboxAppServiceHealth struct {
	Path *string `json:"path,omitempty"`
}

// SandboxAppServiceIngress defines model for SandboxAppServiceIngress.
type SandboxAppServiceIngress struct {
	Public bool                      `json:"public"`
	Routes *[]SandboxAppServiceRoute `json:"routes,omitempty"`
}

// SandboxAppServiceRoute defines model for SandboxAppServiceRoute.
type SandboxAppServiceRoute struct {
	Auth       *SandboxAppServiceRouteAuth      `json:"auth,omitempty"`
	Cors       *SandboxAppServiceRouteCORS      `json:"cors,omitempty"`
	Id         string                           `json:"id"`
	Methods    *[]string                        `json:"methods,omitempty"`
	PathPrefix *string                          `json:"path_prefix,omitempty"`
	RateLimit  *SandboxAppServiceRouteRateLimit `json:"rate_limit,omitempty"`

	// Resume Allows this public route to wake a paused sandbox when sandbox auto_resume is true.
	// Resume-enabled public routes require a restartable service runtime: cmd or function.
	Resume         bool    `json:"resume"`
	RewritePrefix  *string `json:"rewrite_prefix"`
	TimeoutSeconds *int32  `json:"timeout_seconds,omitempty"`
}

// SandboxAppServiceRouteAuth defines model for SandboxAppServiceRouteAuth.
type SandboxAppServiceRouteAuth struct {
	// BearerTokenSha256 Hex SHA-256 of the accepted bearer token. Required when mode is bearer.
	BearerTokenSha256 *string `json:"bearer_token_sha256,omitempty"`

	// HeaderName Required header name when mode is header.
	HeaderName *string `json:"header_name,omitempty"`

	// HeaderValueSha256 Hex SHA-256 of the required header value when mode is header.
	HeaderValueSha256 *string                        `json:"header_value_sha256,omitempty"`
	Mode              SandboxAppServiceRouteAuthMode `json:"mode"`
}

// SandboxAppServiceRouteAuthMode defines model for SandboxAppServiceRouteAuth.Mode.
type SandboxAppServiceRouteAuthMode string

// SandboxAppServiceRouteCORS defines model for SandboxAppServiceRouteCORS.
type SandboxAppServiceRouteCORS struct {
	AllowCredentials *bool     `json:"allow_credentials,omitempty"`
	AllowedHeaders   *[]string `json:"allowed_headers,omitempty"`
	AllowedMethods   *[]string `json:"allowed_methods,omitempty"`
	AllowedOrigins   *[]string `json:"allowed_origins,omitempty"`
	ExposeHeaders    *[]string `json:"expose_headers,omitempty"`
	MaxAgeSeconds    *int32    `json:"max_age_seconds,omitempty"`
}

// SandboxAppServiceRouteRateLimit defines model for SandboxAppServiceRouteRateLimit.
type SandboxAppServiceRouteRateLimit struct {
	Burst int32 `json:"burst"`
	Rps   int32 `json:"rps"`
}

// SandboxAppServiceRuntime defines model for SandboxAppServiceRuntime.
type SandboxAppServiceRuntime struct {
	// Command Process argv used when type is cmd.
	Command *[]string          `json:"command,omitempty"`
	Cwd     *string            `json:"cwd,omitempty"`
	EnvVars *map[string]string `json:"env_vars,omitempty"`

	// Function Function code executed by procd for a sandbox service request. cluster-gateway owns public ingress and carries this source to procd.
	Function *SandboxFunction `json:"function,omitempty"`

	// Type Runtime strategy for restarting a service process.
	Type SandboxAppServiceRuntimeType `json:"type"`
}

// SandboxAppServiceRuntimeType Runtime strategy for restarting a service process.
type SandboxAppServiceRuntimeType string

// SandboxAppServiceView defines model for SandboxAppServiceView.
type SandboxAppServiceView struct {
	DisplayName *string                  `json:"display_name,omitempty"`
	HealthCheck *SandboxAppServiceHealth `json:"health_check,omitempty"`

	// Id Stable service ID. Must be a DNS label.
	Id      string                   `json:"id"`
	Ingress SandboxAppServiceIngress `json:"ingress"`

	// Port Public exposure routing port. Required for manual and cmd services. Omit for function services; Sandbox0 assigns the internal function service port.
	Port *int32 `json:"port,omitempty"`

	// PublicUrl Public HTTPS URL for this service when public exposure is enabled.
	PublicUrl       *string                   `json:"public_url,omitempty"`
	PublishBlockers *[]string                 `json:"publish_blockers,omitempty"`
	Publishable     bool                      `json:"publishable"`
	Runtime         *SandboxAppServiceRuntime `json:"runtime,omitempty"`
}

// SandboxConfig defines model for SandboxConfig.
type SandboxConfig struct {
	// AutoResume Sandbox-level resume gate for paused sandboxes. When false, any inbound request
	// (API or public exposure) must not auto resume the sandbox.
	AutoResume *bool              `json:"auto_resume,omitempty"`
	EnvVars    *map[string]string `json:"env_vars,omitempty"`

	// HardTtl Sandbox hard time-to-live in seconds. When it expires, Sandbox0 deletes the sandbox identity and durable state, including paused rootfs checkpoints.
	HardTtl *int32                `json:"hard_ttl,omitempty"`
	Network *SandboxNetworkPolicy `json:"network,omitempty"`

	// Resources Instance-level sandbox resource override. Sandbox0 exposes memory only and derives CPU from the platform memory-per-CPU ratio.
	Resources *SandboxResourceConfig `json:"resources,omitempty"`
	Services  *[]SandboxAppService   `json:"services,omitempty"`

	// Ttl Runtime soft time-to-live in seconds. When it expires, Sandbox0 checkpoints the writable rootfs, pauses the sandbox, and releases runtime compute while preserving durable sandbox state.
	Ttl *int32 `json:"ttl,omitempty"`

	// Webhook Per-sandbox webhook configuration. Sandbox0 delivers webhook events at least once and consumers should deduplicate by event_id. For sandbox lifecycle events, procd persists signed delivery records to a manager-owned SandboxVolume outside the workspace before dispatch; manager also emits sandbox.deleted during pod deletion cleanup.
	Webhook *WebhookConfig `json:"webhook,omitempty"`
}

// SandboxFunction Function code executed by procd for a sandbox service request. cluster-gateway owns public ingress and carries this source to procd.
type SandboxFunction struct {
	// Handler Python callable name. Defaults to handler.
	Handler *string `json:"handler,omitempty"`

	// MaxConcurrency Maximum in-flight executions for this function service inside one sandbox runtime. Omit or set to 0 for unlimited.
	MaxConcurrency *int32 `json:"max_concurrency,omitempty"`

	// Runtime Function runtime. Only python is supported in this version.
	Runtime SandboxFunctionRuntime `json:"runtime"`

	// Source Function source code stored in sandbox service config.
	Source SandboxFunctionSource `json:"source"`
}

// SandboxFunctionRuntime Function runtime. Only python is supported in this version.
type SandboxFunctionRuntime string

// SandboxFunctionSource Function source code stored in sandbox service config.
type SandboxFunctionSource struct {
	// Code Inline source code. Limited to 256 KiB.
	Code string `json:"code"`

	// Type Source transport. Only inline source is supported in this version.
	Type SandboxFunctionSourceType `json:"type"`
}

// SandboxFunctionSourceType Source transport. Only inline source is supported in this version.
type SandboxFunctionSourceType string

// SandboxLifecycleStatus defines model for SandboxLifecycleStatus.
type SandboxLifecycleStatus string

// SandboxNetworkPolicy defines model for SandboxNetworkPolicy.
type SandboxNetworkPolicy struct {
	CredentialBindings *[]CredentialBinding `json:"credentialBindings,omitempty"`

	// Egress Egress rule set interpreted by the selected network mode.
	// In `allow-all`, only `denied*` fields are enforced.
	// In `block-all`, only `allowed*` fields are enforced.
	// `trafficRules` is a rule-based alternative and must not be combined
	// with the legacy `allowed*`/`denied*` fields.
	Egress *NetworkEgressPolicy     `json:"egress,omitempty"`
	Mode   SandboxNetworkPolicyMode `json:"mode"`
}

// SandboxNetworkPolicyMode defines model for SandboxNetworkPolicy.Mode.
type SandboxNetworkPolicyMode string

// SandboxObservabilityEvent defines model for SandboxObservabilityEvent.
type SandboxObservabilityEvent struct {
	Attributes *map[string]interface{}       `json:"attributes,omitempty"`
	ClusterId  string                        `json:"cluster_id"`
	Cursor     string                        `json:"cursor"`
	EventType  SandboxObservabilityEventType `json:"event_type"`
	IngestedAt time.Time                     `json:"ingested_at"`
	OccurredAt time.Time                     `json:"occurred_at"`
	Outcome    *SandboxObservabilityOutcome  `json:"outcome,omitempty"`
	RegionId   string                        `json:"region_id"`
	SandboxId  string                        `json:"sandbox_id"`
	Source     ObservabilityEventSource      `json:"source"`
	TeamId     string                        `json:"team_id"`
	Watermark  string                        `json:"watermark"`
}

// SandboxObservabilityEventType defines model for SandboxObservabilityEventType.
type SandboxObservabilityEventType string

// SandboxObservabilityEventsResponse defines model for SandboxObservabilityEventsResponse.
type SandboxObservabilityEventsResponse struct {
	Events     []SandboxObservabilityEvent `json:"events"`
	NextCursor *string                     `json:"next_cursor,omitempty"`
	Watermark  *string                     `json:"watermark,omitempty"`
}

// SandboxObservabilityLogEntry defines model for SandboxObservabilityLogEntry.
type SandboxObservabilityLogEntry struct {
	Attributes *map[string]interface{}        `json:"attributes,omitempty"`
	ClusterId  string                         `json:"cluster_id"`
	ContextId  *string                        `json:"context_id,omitempty"`
	Cursor     string                         `json:"cursor"`
	IngestedAt time.Time                      `json:"ingested_at"`
	Message    string                         `json:"message"`
	OccurredAt time.Time                      `json:"occurred_at"`
	ProcessId  *string                        `json:"process_id,omitempty"`
	RegionId   string                         `json:"region_id"`
	SandboxId  string                         `json:"sandbox_id"`
	Stream     *SandboxObservabilityLogStream `json:"stream,omitempty"`
	TeamId     string                         `json:"team_id"`
}

// SandboxObservabilityLogStream defines model for SandboxObservabilityLogStream.
type SandboxObservabilityLogStream string

// SandboxObservabilityLogsResponse defines model for SandboxObservabilityLogsResponse.
type SandboxObservabilityLogsResponse struct {
	Logs       []SandboxObservabilityLogEntry `json:"logs"`
	NextCursor *string                        `json:"next_cursor,omitempty"`
	Watermark  *string                        `json:"watermark,omitempty"`
}

// SandboxObservabilityOutcome defines model for SandboxObservabilityOutcome.
type SandboxObservabilityOutcome string

// SandboxObservabilityWatchLine defines model for SandboxObservabilityWatchLine.
type SandboxObservabilityWatchLine struct {
	// Cursor Watch resume cursor. Present on watermark lines.
	Cursor *string                             `json:"cursor,omitempty"`
	Data   *SandboxObservabilityWatchLine_Data `json:"data,omitempty"`

	// Error Stream error message.
	Error *string `json:"error,omitempty"`

	// Time Heartbeat timestamp.
	Time *time.Time                        `json:"time,omitempty"`
	Type SandboxObservabilityWatchLineType `json:"type"`

	// Watermark Backend watermark for the emitted batch.
	Watermark *string `json:"watermark,omitempty"`
}

// SandboxObservabilityWatchLine_Data defines model for SandboxObservabilityWatchLine.Data.
type SandboxObservabilityWatchLine_Data struct {
	union json.RawMessage
}

// SandboxObservabilityWatchLineType defines model for SandboxObservabilityWatchLine.Type.
type SandboxObservabilityWatchLineType string

// SandboxRefreshRequest defines model for SandboxRefreshRequest.
type SandboxRefreshRequest struct {
	// Duration Duration to extend TTL in seconds (optional, defaults to original TTL)
	Duration *int32 `json:"duration,omitempty"`
}

// SandboxResourceConfig Instance-level sandbox resource override. Sandbox0 exposes memory only and derives CPU from the platform memory-per-CPU ratio.
type SandboxResourceConfig struct {
	// Memory Sandbox memory limit. Must be at least 128Mi and no more than the platform sandbox maximum, which defaults to 32Gi.
	Memory *string `json:"memory,omitempty"`
}

// SandboxResourceUsage defines model for SandboxResourceUsage.
type SandboxResourceUsage struct {
	ContainerMemoryLimit      *int64                  `json:"container_memory_limit,omitempty"`
	ContainerMemoryUsage      *int64                  `json:"container_memory_usage,omitempty"`
	ContainerMemoryWorkingSet *int64                  `json:"container_memory_working_set,omitempty"`
	ContextCount              *int                    `json:"context_count,omitempty"`
	Contexts                  *[]ContextResourceUsage `json:"contexts,omitempty"`
	PausedContextCount        *int                    `json:"paused_context_count,omitempty"`
	RunningContextCount       *int                    `json:"running_context_count,omitempty"`
	TotalIoReadBytes          *int64                  `json:"total_io_read_bytes,omitempty"`
	TotalIoWriteBytes         *int64                  `json:"total_io_write_bytes,omitempty"`
	TotalMemoryRss            *int64                  `json:"total_memory_rss,omitempty"`
	TotalMemoryVms            *int64                  `json:"total_memory_vms,omitempty"`
	TotalOpenFiles            *int                    `json:"total_open_files,omitempty"`
	TotalThreadCount          *int                    `json:"total_thread_count,omitempty"`
}

// SandboxRootFSSnapshot defines model for SandboxRootFSSnapshot.
type SandboxRootFSSnapshot struct {
	CreatedAt   time.Time `json:"created_at"`
	Description *string   `json:"description,omitempty"`

	// ExpiresAt Optional snapshot expiration timestamp. Zero value means not set.
	ExpiresAt *time.Time `json:"expires_at,omitempty"`
	Id        string     `json:"id"`
	Name      *string    `json:"name,omitempty"`
	SandboxId string     `json:"sandbox_id"`
}

// SandboxRootFSSnapshotList defines model for SandboxRootFSSnapshotList.
type SandboxRootFSSnapshotList struct {
	Count     int                     `json:"count"`
	Snapshots []SandboxRootFSSnapshot `json:"snapshots"`
}

// SandboxRuntimeMetricDescriptor defines model for SandboxRuntimeMetricDescriptor.
type SandboxRuntimeMetricDescriptor struct {
	Description string                   `json:"description"`
	Dimensions  []string                 `json:"dimensions"`
	Kind        SandboxRuntimeMetricKind `json:"kind"`
	Name        SandboxRuntimeMetricName `json:"name"`
	Unit        SandboxRuntimeMetricUnit `json:"unit"`
}

// SandboxRuntimeMetricFreshness Freshness is measured relative to the requested end_time, including for historical queries.
type SandboxRuntimeMetricFreshness struct {
	AgeSeconds       *float64                            `json:"age_seconds,omitempty"`
	NewestObservedAt *time.Time                          `json:"newest_observed_at,omitempty"`
	Status           SandboxRuntimeMetricFreshnessStatus `json:"status"`
}

// SandboxRuntimeMetricFreshnessStatus defines model for SandboxRuntimeMetricFreshnessStatus.
type SandboxRuntimeMetricFreshnessStatus string

// SandboxRuntimeMetricGap defines model for SandboxRuntimeMetricGap.
type SandboxRuntimeMetricGap struct {
	Dimensions *map[string]string            `json:"dimensions,omitempty"`
	EndTime    time.Time                     `json:"end_time"`
	Metric     SandboxRuntimeMetricName      `json:"metric"`
	Reason     SandboxRuntimeMetricGapReason `json:"reason"`
	StartTime  time.Time                     `json:"start_time"`
}

// SandboxRuntimeMetricGapReason defines model for SandboxRuntimeMetricGapReason.
type SandboxRuntimeMetricGapReason string

// SandboxRuntimeMetricKind defines model for SandboxRuntimeMetricKind.
type SandboxRuntimeMetricKind string

// SandboxRuntimeMetricName defines model for SandboxRuntimeMetricName.
type SandboxRuntimeMetricName string

// SandboxRuntimeMetricPoint defines model for SandboxRuntimeMetricPoint.
type SandboxRuntimeMetricPoint struct {
	Time  time.Time `json:"time"`
	Value float64   `json:"value"`
}

// SandboxRuntimeMetricSegment A continuous series segment. Runtime restarts and collector counter resets start a new segment without exposing internal topology identifiers.
type SandboxRuntimeMetricSegment struct {
	Points []SandboxRuntimeMetricPoint `json:"points"`
}

// SandboxRuntimeMetricSeries defines model for SandboxRuntimeMetricSeries.
type SandboxRuntimeMetricSeries struct {
	Dimensions *map[string]string            `json:"dimensions,omitempty"`
	Kind       SandboxRuntimeMetricKind      `json:"kind"`
	Metric     SandboxRuntimeMetricName      `json:"metric"`
	Segments   []SandboxRuntimeMetricSegment `json:"segments"`
	Statistic  SandboxRuntimeMetricStatistic `json:"statistic"`
	Unit       SandboxRuntimeMetricUnit      `json:"unit"`
}

// SandboxRuntimeMetricStatistic defines model for SandboxRuntimeMetricStatistic.
type SandboxRuntimeMetricStatistic string

// SandboxRuntimeMetricUnit defines model for SandboxRuntimeMetricUnit.
type SandboxRuntimeMetricUnit string

// SandboxRuntimeMetricsCatalogResponse defines model for SandboxRuntimeMetricsCatalogResponse.
type SandboxRuntimeMetricsCatalogResponse struct {
	Metrics []SandboxRuntimeMetricDescriptor `json:"metrics"`
}

// SandboxRuntimeMetricsResponse defines model for SandboxRuntimeMetricsResponse.
type SandboxRuntimeMetricsResponse struct {
	EndTime time.Time `json:"end_time"`

	// Freshness Freshness is measured relative to the requested end_time, including for historical queries.
	Freshness   SandboxRuntimeMetricFreshness `json:"freshness"`
	Gaps        []SandboxRuntimeMetricGap     `json:"gaps"`
	Partial     bool                          `json:"partial"`
	Series      []SandboxRuntimeMetricSeries  `json:"series"`
	StartTime   time.Time                     `json:"start_time"`
	StepSeconds int64                         `json:"step_seconds"`
}

// SandboxSSHConnection defines model for SandboxSSHConnection.
type SandboxSSHConnection struct {
	Host     string `json:"host"`
	Port     int    `json:"port"`
	Username string `json:"username"`
}

// SandboxServicesUpdateRequest defines model for SandboxServicesUpdateRequest.
type SandboxServicesUpdateRequest struct {
	Services []SandboxAppService `json:"services"`
}

// SandboxStatus defines model for SandboxStatus.
type SandboxStatus struct {
	ClaimedAt     *string                 `json:"claimed_at,omitempty"`
	CreatedAt     *string                 `json:"created_at,omitempty"`
	ExpiresAt     *string                 `json:"expires_at,omitempty"`
	HardExpiresAt *string                 `json:"hard_expires_at,omitempty"`
	PodName       *string                 `json:"pod_name,omitempty"`
	SandboxId     *string                 `json:"sandbox_id,omitempty"`
	Status        *SandboxLifecycleStatus `json:"status,omitempty"`
	TeamId        *string                 `json:"team_id,omitempty"`
	TemplateId    *string                 `json:"template_id,omitempty"`
	UserId        *string                 `json:"user_id,omitempty"`
}

// SandboxSummary defines model for SandboxSummary.
type SandboxSummary struct {
	// ClusterId Cluster where sandbox runs (multi-cluster only)
	ClusterId *string   `json:"cluster_id"`
	CreatedAt time.Time `json:"created_at"`
	ExpiresAt time.Time `json:"expires_at"`

	// HardExpiresAt Hard expiration timestamp. Zero value means not set.
	HardExpiresAt time.Time `json:"hard_expires_at"`
	Id            string    `json:"id"`

	// Paused True when status is paused.
	Paused bool `json:"paused"`

	// RuntimeGeneration Monotonically increasing runtime generation. Resume starts a new generation.
	RuntimeGeneration int64                  `json:"runtime_generation"`
	Status            SandboxLifecycleStatus `json:"status"`
	TemplateId        string                 `json:"template_id"`
	UpdatedAt         time.Time              `json:"updated_at"`
}

// SandboxTemplateCondition defines model for SandboxTemplateCondition.
type SandboxTemplateCondition struct {
	LastTransitionTime *time.Time `json:"lastTransitionTime,omitempty"`
	Message            *string    `json:"message,omitempty"`
	Reason             *string    `json:"reason,omitempty"`
	Status             *string    `json:"status,omitempty"`
	Type               *string    `json:"type,omitempty"`
}

// SandboxTemplateSpec defines model for SandboxTemplateSpec.
type SandboxTemplateSpec struct {
	ClusterId     *string               `json:"clusterId,omitempty"`
	Description   *string               `json:"description,omitempty"`
	DisplayName   *string               `json:"displayName,omitempty"`
	EnvVars       *map[string]string    `json:"envVars,omitempty"`
	MainContainer *ContainerSpec        `json:"mainContainer,omitempty"`
	Network       *SandboxNetworkPolicy `json:"network,omitempty"`
	Pod           *PodSpecOverride      `json:"pod,omitempty"`
	Pool          *PoolStrategy         `json:"pool,omitempty"`
	Tags          *[]string             `json:"tags,omitempty"`
	VolumeMounts  *[]VolumeMountSpec    `json:"volumeMounts,omitempty"`
}

// SandboxTemplateStatus defines model for SandboxTemplateStatus.
type SandboxTemplateStatus struct {
	ActiveCount    *int32                      `json:"activeCount,omitempty"`
	Conditions     *[]SandboxTemplateCondition `json:"conditions,omitempty"`
	IdleCount      *int32                      `json:"idleCount,omitempty"`
	LastUpdateTime *time.Time                  `json:"lastUpdateTime"`
}

// SandboxUpdateConfig Subset of SandboxConfig fields that can be updated at runtime without restarting the sandbox.
// Note: env_vars only affect new processes. webhook is not included as it requires restart.
type SandboxUpdateConfig struct {
	// AutoResume Sandbox-level resume gate for paused sandboxes. When false, any inbound request
	// (API or public exposure) must not auto resume the sandbox.
	AutoResume *bool `json:"auto_resume,omitempty"`

	// EnvVars Sandbox-level environment variables used as defaults for new procd-managed
	// processes. Omitting this field preserves the existing environment map; passing
	// an empty object clears it.
	EnvVars *map[string]string `json:"env_vars,omitempty"`

	// HardTtl Sandbox hard time-to-live in seconds. When it expires, Sandbox0 deletes the sandbox identity and durable state, including paused rootfs checkpoints.
	HardTtl *int32                `json:"hard_ttl,omitempty"`
	Network *SandboxNetworkPolicy `json:"network,omitempty"`

	// Resources Instance-level sandbox resource override. Sandbox0 exposes memory only and derives CPU from the platform memory-per-CPU ratio.
	Resources *SandboxResourceConfig `json:"resources,omitempty"`
	Services  *[]SandboxAppService   `json:"services,omitempty"`

	// Ttl Runtime soft time-to-live in seconds. When it expires, Sandbox0 checkpoints the writable rootfs, pauses the sandbox, and releases runtime compute while preserving durable sandbox state.
	Ttl *int32 `json:"ttl,omitempty"`
}

// SandboxUpdateRequest defines model for SandboxUpdateRequest.
type SandboxUpdateRequest struct {
	// Config Subset of SandboxConfig fields that can be updated at runtime without restarting the sandbox.
	// Note: env_vars only affect new processes. webhook is not included as it requires restart.
	Config *SandboxUpdateConfig `json:"config,omitempty"`
}

// SandboxVolume defines model for SandboxVolume.
type SandboxVolume struct {
	// AccessMode Access mode for sandbox volumes. Enforcement is scoped to storage-proxy instances. RWO allows read-write mounts on a single instance; ROX allows read-only mounts across instances; RWX allows read-write mounts across instances.
	AccessMode *VolumeAccessMode `json:"access_mode,omitempty"`

	// Backend Storage backend for a SandboxVolume. s0fs is the default durable Sandbox0 volume backend. s3 mounts an existing S3-compatible prefix through the volume portal and supports mount-s3-like object projection.
	Backend         VolumeBackend          `json:"backend"`
	CreatedAt       time.Time              `json:"created_at"`
	DefaultPosixGid *int64                 `json:"default_posix_gid"`
	DefaultPosixUid *int64                 `json:"default_posix_uid"`
	Id              string                 `json:"id"`
	S3              *SandboxVolumeS3Config `json:"s3,omitempty"`
	SourceVolumeId  *string                `json:"source_volume_id"`
	TeamId          string                 `json:"team_id"`
	UpdatedAt       time.Time              `json:"updated_at"`
	UserId          string                 `json:"user_id"`
}

// SandboxVolumeS3Config defines model for SandboxVolumeS3Config.
type SandboxVolumeS3Config struct {
	Bucket      string                        `json:"bucket"`
	EndpointUrl *string                       `json:"endpoint_url,omitempty"`
	Prefix      *string                       `json:"prefix,omitempty"`
	Provider    SandboxVolumeS3ConfigProvider `json:"provider"`
	Region      *string                       `json:"region,omitempty"`
}

// SandboxVolumeS3ConfigProvider defines model for SandboxVolumeS3Config.Provider.
type SandboxVolumeS3ConfigProvider string

// SeccompProfile defines model for SeccompProfile.
type SeccompProfile struct {
	LocalhostProfile *string            `json:"localhostProfile,omitempty"`
	Type             SeccompProfileType `json:"type"`
}

// SeccompProfileType defines model for SeccompProfile.Type.
type SeccompProfileType string

// SecurityContext defines model for SecurityContext.
type SecurityContext struct {
	AllowPrivilegeEscalation *bool            `json:"allowPrivilegeEscalation,omitempty"`
	AppArmorProfile          *AppArmorProfile `json:"appArmorProfile,omitempty"`
	Capabilities             *Capabilities    `json:"capabilities,omitempty"`
	Privileged               *bool            `json:"privileged,omitempty"`
	ReadOnlyRootFilesystem   *bool            `json:"readOnlyRootFilesystem,omitempty"`
	RunAsGroup               *int64           `json:"runAsGroup,omitempty"`
	RunAsNonRoot             *bool            `json:"runAsNonRoot,omitempty"`
	RunAsUser                *int64           `json:"runAsUser,omitempty"`
	SeccompProfile           *SeccompProfile  `json:"seccompProfile,omitempty"`
}

// SignalContextRequest defines model for SignalContextRequest.
type SignalContextRequest struct {
	Signal string `json:"signal"`
}

// Snapshot defines model for Snapshot.
type Snapshot struct {
	CreatedAt   string  `json:"created_at"`
	Description *string `json:"description,omitempty"`
	ExpiresAt   *string `json:"expires_at"`
	Id          string  `json:"id"`
	Name        string  `json:"name"`
	SizeBytes   int64   `json:"size_bytes"`
	VolumeId    string  `json:"volume_id"`
}

// StaticHeadersSourceSpec defines model for StaticHeadersSourceSpec.
type StaticHeadersSourceSpec struct {
	Values *map[string]string `json:"values,omitempty"`
}

// StaticSSHPrivateKeySourceSpec defines model for StaticSSHPrivateKeySourceSpec.
type StaticSSHPrivateKeySourceSpec struct {
	Passphrase    *string `json:"passphrase,omitempty"`
	PrivateKeyPem *string `json:"privateKeyPem,omitempty"`
}

// StaticTLSClientCertificateSourceSpec defines model for StaticTLSClientCertificateSourceSpec.
type StaticTLSClientCertificateSourceSpec struct {
	CaPem          *string `json:"caPem,omitempty"`
	CertificatePem *string `json:"certificatePem,omitempty"`
	PrivateKeyPem  *string `json:"privateKeyPem,omitempty"`
}

// StaticUsernamePasswordSourceSpec defines model for StaticUsernamePasswordSourceSpec.
type StaticUsernamePasswordSourceSpec struct {
	Password *string `json:"password,omitempty"`
	Username *string `json:"username,omitempty"`
}

// SuccessAPIKeyListResponse defines model for SuccessAPIKeyListResponse.
type SuccessAPIKeyListResponse struct {
	Data *struct {
		ApiKeys *[]APIKey `json:"api_keys,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessAPIKeyListResponseSuccess `json:"success"`
}

// SuccessAPIKeyListResponseSuccess defines model for SuccessAPIKeyListResponse.Success.
type SuccessAPIKeyListResponseSuccess bool

// SuccessAuthProvidersResponse defines model for SuccessAuthProvidersResponse.
type SuccessAuthProvidersResponse struct {
	Data *struct {
		Providers *[]AuthProvider `json:"providers,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessAuthProvidersResponseSuccess `json:"success"`
}

// SuccessAuthProvidersResponseSuccess defines model for SuccessAuthProvidersResponse.Success.
type SuccessAuthProvidersResponseSuccess bool

// SuccessClaimResponse defines model for SuccessClaimResponse.
type SuccessClaimResponse struct {
	Data    *ClaimResponse              `json:"data,omitempty"`
	Success SuccessClaimResponseSuccess `json:"success"`
}

// SuccessClaimResponseSuccess defines model for SuccessClaimResponse.Success.
type SuccessClaimResponseSuccess bool

// SuccessContextExecResponse defines model for SuccessContextExecResponse.
type SuccessContextExecResponse struct {
	Data    *ContextExecResponse              `json:"data,omitempty"`
	Success SuccessContextExecResponseSuccess `json:"success"`
}

// SuccessContextExecResponseSuccess defines model for SuccessContextExecResponse.Success.
type SuccessContextExecResponseSuccess bool

// SuccessContextListResponse defines model for SuccessContextListResponse.
type SuccessContextListResponse struct {
	Data *struct {
		Contexts *[]ContextResponse `json:"contexts,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessContextListResponseSuccess `json:"success"`
}

// SuccessContextListResponseSuccess defines model for SuccessContextListResponse.Success.
type SuccessContextListResponseSuccess bool

// SuccessContextResponse defines model for SuccessContextResponse.
type SuccessContextResponse struct {
	Data    *ContextResponse              `json:"data,omitempty"`
	Success SuccessContextResponseSuccess `json:"success"`
}

// SuccessContextResponseSuccess defines model for SuccessContextResponse.Success.
type SuccessContextResponseSuccess bool

// SuccessCreateAPIKeyResponse defines model for SuccessCreateAPIKeyResponse.
type SuccessCreateAPIKeyResponse struct {
	Data    *CreateAPIKeyResponse              `json:"data,omitempty"`
	Success SuccessCreateAPIKeyResponseSuccess `json:"success"`
}

// SuccessCreateAPIKeyResponseSuccess defines model for SuccessCreateAPIKeyResponse.Success.
type SuccessCreateAPIKeyResponseSuccess bool

// SuccessCreatedResponse defines model for SuccessCreatedResponse.
type SuccessCreatedResponse struct {
	Data *struct {
		Created *bool `json:"created,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessCreatedResponseSuccess `json:"success"`
}

// SuccessCreatedResponseSuccess defines model for SuccessCreatedResponse.Success.
type SuccessCreatedResponseSuccess bool

// SuccessCredentialSourceListResponse defines model for SuccessCredentialSourceListResponse.
type SuccessCredentialSourceListResponse struct {
	Data    *[]CredentialSourceMetadata                `json:"data,omitempty"`
	Success SuccessCredentialSourceListResponseSuccess `json:"success"`
}

// SuccessCredentialSourceListResponseSuccess defines model for SuccessCredentialSourceListResponse.Success.
type SuccessCredentialSourceListResponseSuccess bool

// SuccessCredentialSourceResponse defines model for SuccessCredentialSourceResponse.
type SuccessCredentialSourceResponse struct {
	Data    *CredentialSourceMetadata              `json:"data,omitempty"`
	Success SuccessCredentialSourceResponseSuccess `json:"success"`
}

// SuccessCredentialSourceResponseSuccess defines model for SuccessCredentialSourceResponse.Success.
type SuccessCredentialSourceResponseSuccess bool

// SuccessCurrentAPIKeyResponse defines model for SuccessCurrentAPIKeyResponse.
type SuccessCurrentAPIKeyResponse struct {
	Data *struct {
		ApiKey *CurrentAPIKeyResponse `json:"api_key,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessCurrentAPIKeyResponseSuccess `json:"success"`
}

// SuccessCurrentAPIKeyResponseSuccess defines model for SuccessCurrentAPIKeyResponse.Success.
type SuccessCurrentAPIKeyResponseSuccess bool

// SuccessDeletedResponse defines model for SuccessDeletedResponse.
type SuccessDeletedResponse struct {
	Data *struct {
		Deleted *bool `json:"deleted,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessDeletedResponseSuccess `json:"success"`
}

// SuccessDeletedResponseSuccess defines model for SuccessDeletedResponse.Success.
type SuccessDeletedResponseSuccess bool

// SuccessDeviceLoginPollResponse defines model for SuccessDeviceLoginPollResponse.
type SuccessDeviceLoginPollResponse struct {
	Data    *DeviceLoginPollResponse              `json:"data,omitempty"`
	Success SuccessDeviceLoginPollResponseSuccess `json:"success"`
}

// SuccessDeviceLoginPollResponseSuccess defines model for SuccessDeviceLoginPollResponse.Success.
type SuccessDeviceLoginPollResponseSuccess bool

// SuccessDeviceLoginStartResponse defines model for SuccessDeviceLoginStartResponse.
type SuccessDeviceLoginStartResponse struct {
	Data    *DeviceLoginStartResponse              `json:"data,omitempty"`
	Success SuccessDeviceLoginStartResponseSuccess `json:"success"`
}

// SuccessDeviceLoginStartResponseSuccess defines model for SuccessDeviceLoginStartResponse.Success.
type SuccessDeviceLoginStartResponseSuccess bool

// SuccessEnvelope defines model for SuccessEnvelope.
type SuccessEnvelope struct {
	Data    *interface{}           `json:"data,omitempty"`
	Success SuccessEnvelopeSuccess `json:"success"`
}

// SuccessEnvelopeSuccess defines model for SuccessEnvelope.Success.
type SuccessEnvelopeSuccess bool

// SuccessFileListResponse defines model for SuccessFileListResponse.
type SuccessFileListResponse struct {
	Data *struct {
		Entries *[]FileInfo `json:"entries,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessFileListResponseSuccess `json:"success"`
}

// SuccessFileListResponseSuccess defines model for SuccessFileListResponse.Success.
type SuccessFileListResponseSuccess bool

// SuccessFileStatResponse defines model for SuccessFileStatResponse.
type SuccessFileStatResponse struct {
	Data    *FileInfo                      `json:"data,omitempty"`
	Success SuccessFileStatResponseSuccess `json:"success"`
}

// SuccessFileStatResponseSuccess defines model for SuccessFileStatResponse.Success.
type SuccessFileStatResponseSuccess bool

// SuccessForkSandboxResponse defines model for SuccessForkSandboxResponse.
type SuccessForkSandboxResponse struct {
	Data    *ForkSandboxResponse              `json:"data,omitempty"`
	Success SuccessForkSandboxResponseSuccess `json:"success"`
}

// SuccessForkSandboxResponseSuccess defines model for SuccessForkSandboxResponse.Success.
type SuccessForkSandboxResponseSuccess bool

// SuccessGatewayMetadataResponse defines model for SuccessGatewayMetadataResponse.
type SuccessGatewayMetadataResponse struct {
	Data    *GatewayMetadata                      `json:"data,omitempty"`
	Success SuccessGatewayMetadataResponseSuccess `json:"success"`
}

// SuccessGatewayMetadataResponseSuccess defines model for SuccessGatewayMetadataResponse.Success.
type SuccessGatewayMetadataResponseSuccess bool

// SuccessHealthResponse defines model for SuccessHealthResponse.
type SuccessHealthResponse struct {
	Data *struct {
		Status    *string `json:"status,omitempty"`
		Timestamp *int64  `json:"timestamp,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessHealthResponseSuccess `json:"success"`
}

// SuccessHealthResponseSuccess defines model for SuccessHealthResponse.Success.
type SuccessHealthResponseSuccess bool

// SuccessIdentityListResponse defines model for SuccessIdentityListResponse.
type SuccessIdentityListResponse struct {
	Data *struct {
		Identities *[]Identity `json:"identities,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessIdentityListResponseSuccess `json:"success"`
}

// SuccessIdentityListResponseSuccess defines model for SuccessIdentityListResponse.Success.
type SuccessIdentityListResponseSuccess bool

// SuccessLoginResponse defines model for SuccessLoginResponse.
type SuccessLoginResponse struct {
	Data    *LoginResponse              `json:"data,omitempty"`
	Success SuccessLoginResponseSuccess `json:"success"`
}

// SuccessLoginResponseSuccess defines model for SuccessLoginResponse.Success.
type SuccessLoginResponseSuccess bool

// SuccessMessageResponse defines model for SuccessMessageResponse.
type SuccessMessageResponse struct {
	Data *struct {
		Message *string `json:"message,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessMessageResponseSuccess `json:"success"`
}

// SuccessMessageResponseSuccess defines model for SuccessMessageResponse.Success.
type SuccessMessageResponseSuccess bool

// SuccessMovedResponse defines model for SuccessMovedResponse.
type SuccessMovedResponse struct {
	Data *struct {
		Moved *bool `json:"moved,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessMovedResponseSuccess `json:"success"`
}

// SuccessMovedResponseSuccess defines model for SuccessMovedResponse.Success.
type SuccessMovedResponseSuccess bool

// SuccessPauseSandboxResponse defines model for SuccessPauseSandboxResponse.
type SuccessPauseSandboxResponse struct {
	Data    *PauseSandboxResponse              `json:"data,omitempty"`
	Success SuccessPauseSandboxResponseSuccess `json:"success"`
}

// SuccessPauseSandboxResponseSuccess defines model for SuccessPauseSandboxResponse.Success.
type SuccessPauseSandboxResponseSuccess bool

// SuccessRefreshResponse defines model for SuccessRefreshResponse.
type SuccessRefreshResponse struct {
	Data    *RefreshResponse              `json:"data,omitempty"`
	Success SuccessRefreshResponseSuccess `json:"success"`
}

// SuccessRefreshResponseSuccess defines model for SuccessRefreshResponse.Success.
type SuccessRefreshResponseSuccess bool

// SuccessRegionListResponse defines model for SuccessRegionListResponse.
type SuccessRegionListResponse struct {
	Data *struct {
		Regions *[]Region `json:"regions,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessRegionListResponseSuccess `json:"success"`
}

// SuccessRegionListResponseSuccess defines model for SuccessRegionListResponse.Success.
type SuccessRegionListResponseSuccess bool

// SuccessRegionResponse defines model for SuccessRegionResponse.
type SuccessRegionResponse struct {
	Data    *Region                      `json:"data,omitempty"`
	Success SuccessRegionResponseSuccess `json:"success"`
}

// SuccessRegionResponseSuccess defines model for SuccessRegionResponse.Success.
type SuccessRegionResponseSuccess bool

// SuccessRegistryCredentialsResponse defines model for SuccessRegistryCredentialsResponse.
type SuccessRegistryCredentialsResponse struct {
	Data    *RegistryCredentials                      `json:"data,omitempty"`
	Success SuccessRegistryCredentialsResponseSuccess `json:"success"`
}

// SuccessRegistryCredentialsResponseSuccess defines model for SuccessRegistryCredentialsResponse.Success.
type SuccessRegistryCredentialsResponseSuccess bool

// SuccessResizedResponse defines model for SuccessResizedResponse.
type SuccessResizedResponse struct {
	Data *struct {
		Resized *bool `json:"resized,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessResizedResponseSuccess `json:"success"`
}

// SuccessResizedResponseSuccess defines model for SuccessResizedResponse.Success.
type SuccessResizedResponseSuccess bool

// SuccessRestoreResponse defines model for SuccessRestoreResponse.
type SuccessRestoreResponse struct {
	Data *struct {
		Status *string `json:"status,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessRestoreResponseSuccess `json:"success"`
}

// SuccessRestoreResponseSuccess defines model for SuccessRestoreResponse.Success.
type SuccessRestoreResponseSuccess bool

// SuccessRestoreSandboxRootFSResponse defines model for SuccessRestoreSandboxRootFSResponse.
type SuccessRestoreSandboxRootFSResponse struct {
	Data    *RestoreSandboxRootFSResponse              `json:"data,omitempty"`
	Success SuccessRestoreSandboxRootFSResponseSuccess `json:"success"`
}

// SuccessRestoreSandboxRootFSResponseSuccess defines model for SuccessRestoreSandboxRootFSResponse.Success.
type SuccessRestoreSandboxRootFSResponseSuccess bool

// SuccessResumeSandboxResponse defines model for SuccessResumeSandboxResponse.
type SuccessResumeSandboxResponse struct {
	Data    *ResumeSandboxResponse              `json:"data,omitempty"`
	Success SuccessResumeSandboxResponseSuccess `json:"success"`
}

// SuccessResumeSandboxResponseSuccess defines model for SuccessResumeSandboxResponse.Success.
type SuccessResumeSandboxResponseSuccess bool

// SuccessSSHPublicKeyListResponse defines model for SuccessSSHPublicKeyListResponse.
type SuccessSSHPublicKeyListResponse struct {
	Data *struct {
		SshKeys *[]SSHPublicKey `json:"ssh_keys,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessSSHPublicKeyListResponseSuccess `json:"success"`
}

// SuccessSSHPublicKeyListResponseSuccess defines model for SuccessSSHPublicKeyListResponse.Success.
type SuccessSSHPublicKeyListResponseSuccess bool

// SuccessSSHPublicKeyResponse defines model for SuccessSSHPublicKeyResponse.
type SuccessSSHPublicKeyResponse struct {
	Data    *SSHPublicKey                      `json:"data,omitempty"`
	Success SuccessSSHPublicKeyResponseSuccess `json:"success"`
}

// SuccessSSHPublicKeyResponseSuccess defines model for SuccessSSHPublicKeyResponse.Success.
type SuccessSSHPublicKeyResponseSuccess bool

// SuccessSandboxListResponse defines model for SuccessSandboxListResponse.
type SuccessSandboxListResponse struct {
	Data *struct {
		// Count Total matching sandboxes
		Count int `json:"count"`

		// HasMore More results available
		HasMore   bool             `json:"has_more"`
		Sandboxes []SandboxSummary `json:"sandboxes"`
	} `json:"data,omitempty"`
	Success SuccessSandboxListResponseSuccess `json:"success"`
}

// SuccessSandboxListResponseSuccess defines model for SuccessSandboxListResponse.Success.
type SuccessSandboxListResponseSuccess bool

// SuccessSandboxNetworkPolicyResponse defines model for SuccessSandboxNetworkPolicyResponse.
type SuccessSandboxNetworkPolicyResponse struct {
	Data    *SandboxNetworkPolicy                      `json:"data,omitempty"`
	Success SuccessSandboxNetworkPolicyResponseSuccess `json:"success"`
}

// SuccessSandboxNetworkPolicyResponseSuccess defines model for SuccessSandboxNetworkPolicyResponse.Success.
type SuccessSandboxNetworkPolicyResponseSuccess bool

// SuccessSandboxObservabilityEventsResponse defines model for SuccessSandboxObservabilityEventsResponse.
type SuccessSandboxObservabilityEventsResponse struct {
	Data    *SandboxObservabilityEventsResponse              `json:"data,omitempty"`
	Success SuccessSandboxObservabilityEventsResponseSuccess `json:"success"`
}

// SuccessSandboxObservabilityEventsResponseSuccess defines model for SuccessSandboxObservabilityEventsResponse.Success.
type SuccessSandboxObservabilityEventsResponseSuccess bool

// SuccessSandboxObservabilityLogsResponse defines model for SuccessSandboxObservabilityLogsResponse.
type SuccessSandboxObservabilityLogsResponse struct {
	Data    *SandboxObservabilityLogsResponse              `json:"data,omitempty"`
	Success SuccessSandboxObservabilityLogsResponseSuccess `json:"success"`
}

// SuccessSandboxObservabilityLogsResponseSuccess defines model for SuccessSandboxObservabilityLogsResponse.Success.
type SuccessSandboxObservabilityLogsResponseSuccess bool

// SuccessSandboxResponse defines model for SuccessSandboxResponse.
type SuccessSandboxResponse struct {
	Data    *Sandbox                      `json:"data,omitempty"`
	Success SuccessSandboxResponseSuccess `json:"success"`
}

// SuccessSandboxResponseSuccess defines model for SuccessSandboxResponse.Success.
type SuccessSandboxResponseSuccess bool

// SuccessSandboxRootFSSnapshotListResponse defines model for SuccessSandboxRootFSSnapshotListResponse.
type SuccessSandboxRootFSSnapshotListResponse struct {
	Data    *SandboxRootFSSnapshotList                      `json:"data,omitempty"`
	Success SuccessSandboxRootFSSnapshotListResponseSuccess `json:"success"`
}

// SuccessSandboxRootFSSnapshotListResponseSuccess defines model for SuccessSandboxRootFSSnapshotListResponse.Success.
type SuccessSandboxRootFSSnapshotListResponseSuccess bool

// SuccessSandboxRootFSSnapshotResponse defines model for SuccessSandboxRootFSSnapshotResponse.
type SuccessSandboxRootFSSnapshotResponse struct {
	Data    *SandboxRootFSSnapshot                      `json:"data,omitempty"`
	Success SuccessSandboxRootFSSnapshotResponseSuccess `json:"success"`
}

// SuccessSandboxRootFSSnapshotResponseSuccess defines model for SuccessSandboxRootFSSnapshotResponse.Success.
type SuccessSandboxRootFSSnapshotResponseSuccess bool

// SuccessSandboxRuntimeMetricsCatalogResponse defines model for SuccessSandboxRuntimeMetricsCatalogResponse.
type SuccessSandboxRuntimeMetricsCatalogResponse struct {
	Data    *SandboxRuntimeMetricsCatalogResponse              `json:"data,omitempty"`
	Success SuccessSandboxRuntimeMetricsCatalogResponseSuccess `json:"success"`
}

// SuccessSandboxRuntimeMetricsCatalogResponseSuccess defines model for SuccessSandboxRuntimeMetricsCatalogResponse.Success.
type SuccessSandboxRuntimeMetricsCatalogResponseSuccess bool

// SuccessSandboxRuntimeMetricsResponse defines model for SuccessSandboxRuntimeMetricsResponse.
type SuccessSandboxRuntimeMetricsResponse struct {
	Data    *SandboxRuntimeMetricsResponse              `json:"data,omitempty"`
	Success SuccessSandboxRuntimeMetricsResponseSuccess `json:"success"`
}

// SuccessSandboxRuntimeMetricsResponseSuccess defines model for SuccessSandboxRuntimeMetricsResponse.Success.
type SuccessSandboxRuntimeMetricsResponseSuccess bool

// SuccessSandboxServicesResponse defines model for SuccessSandboxServicesResponse.
type SuccessSandboxServicesResponse struct {
	Data *struct {
		ExposureDomain *string                 `json:"exposure_domain,omitempty"`
		SandboxId      string                  `json:"sandbox_id"`
		Services       []SandboxAppServiceView `json:"services"`
	} `json:"data,omitempty"`
	Success SuccessSandboxServicesResponseSuccess `json:"success"`
}

// SuccessSandboxServicesResponseSuccess defines model for SuccessSandboxServicesResponse.Success.
type SuccessSandboxServicesResponseSuccess bool

// SuccessSandboxStatusResponse defines model for SuccessSandboxStatusResponse.
type SuccessSandboxStatusResponse struct {
	Data    *SandboxStatus                      `json:"data,omitempty"`
	Success SuccessSandboxStatusResponseSuccess `json:"success"`
}

// SuccessSandboxStatusResponseSuccess defines model for SuccessSandboxStatusResponse.Success.
type SuccessSandboxStatusResponseSuccess bool

// SuccessSandboxVolumeListResponse defines model for SuccessSandboxVolumeListResponse.
type SuccessSandboxVolumeListResponse struct {
	Data    *[]SandboxVolume                        `json:"data,omitempty"`
	Success SuccessSandboxVolumeListResponseSuccess `json:"success"`
}

// SuccessSandboxVolumeListResponseSuccess defines model for SuccessSandboxVolumeListResponse.Success.
type SuccessSandboxVolumeListResponseSuccess bool

// SuccessSandboxVolumeResponse defines model for SuccessSandboxVolumeResponse.
type SuccessSandboxVolumeResponse struct {
	Data    *SandboxVolume                      `json:"data,omitempty"`
	Success SuccessSandboxVolumeResponseSuccess `json:"success"`
}

// SuccessSandboxVolumeResponseSuccess defines model for SuccessSandboxVolumeResponse.Success.
type SuccessSandboxVolumeResponseSuccess bool

// SuccessSignaledResponse defines model for SuccessSignaledResponse.
type SuccessSignaledResponse struct {
	Data *struct {
		Signaled *bool `json:"signaled,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessSignaledResponseSuccess `json:"success"`
}

// SuccessSignaledResponseSuccess defines model for SuccessSignaledResponse.Success.
type SuccessSignaledResponseSuccess bool

// SuccessSnapshotListResponse defines model for SuccessSnapshotListResponse.
type SuccessSnapshotListResponse struct {
	Data    *[]Snapshot                        `json:"data,omitempty"`
	Success SuccessSnapshotListResponseSuccess `json:"success"`
}

// SuccessSnapshotListResponseSuccess defines model for SuccessSnapshotListResponse.Success.
type SuccessSnapshotListResponseSuccess bool

// SuccessSnapshotResponse defines model for SuccessSnapshotResponse.
type SuccessSnapshotResponse struct {
	Data    *Snapshot                      `json:"data,omitempty"`
	Success SuccessSnapshotResponseSuccess `json:"success"`
}

// SuccessSnapshotResponseSuccess defines model for SuccessSnapshotResponse.Success.
type SuccessSnapshotResponseSuccess bool

// SuccessTeamListResponse defines model for SuccessTeamListResponse.
type SuccessTeamListResponse struct {
	Data *struct {
		Teams *[]Team `json:"teams,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessTeamListResponseSuccess `json:"success"`
}

// SuccessTeamListResponseSuccess defines model for SuccessTeamListResponse.Success.
type SuccessTeamListResponseSuccess bool

// SuccessTeamMemberListResponse defines model for SuccessTeamMemberListResponse.
type SuccessTeamMemberListResponse struct {
	Data *struct {
		Members *[]TeamMember `json:"members,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessTeamMemberListResponseSuccess `json:"success"`
}

// SuccessTeamMemberListResponseSuccess defines model for SuccessTeamMemberListResponse.Success.
type SuccessTeamMemberListResponseSuccess bool

// SuccessTeamMemberResponse defines model for SuccessTeamMemberResponse.
type SuccessTeamMemberResponse struct {
	Data    *TeamMember                      `json:"data,omitempty"`
	Success SuccessTeamMemberResponseSuccess `json:"success"`
}

// SuccessTeamMemberResponseSuccess defines model for SuccessTeamMemberResponse.Success.
type SuccessTeamMemberResponseSuccess bool

// SuccessTeamQuotaResponse defines model for SuccessTeamQuotaResponse.
type SuccessTeamQuotaResponse struct {
	Data    *TeamQuota                      `json:"data,omitempty"`
	Success SuccessTeamQuotaResponseSuccess `json:"success"`
}

// SuccessTeamQuotaResponseSuccess defines model for SuccessTeamQuotaResponse.Success.
type SuccessTeamQuotaResponseSuccess bool

// SuccessTeamResponse defines model for SuccessTeamResponse.
type SuccessTeamResponse struct {
	Data    *Team                      `json:"data,omitempty"`
	Success SuccessTeamResponseSuccess `json:"success"`
}

// SuccessTeamResponseSuccess defines model for SuccessTeamResponse.Success.
type SuccessTeamResponseSuccess bool

// SuccessTemplateListResponse defines model for SuccessTemplateListResponse.
type SuccessTemplateListResponse struct {
	Data *struct {
		Count     *int        `json:"count,omitempty"`
		Templates *[]Template `json:"templates,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessTemplateListResponseSuccess `json:"success"`
}

// SuccessTemplateListResponseSuccess defines model for SuccessTemplateListResponse.Success.
type SuccessTemplateListResponseSuccess bool

// SuccessTemplateResponse defines model for SuccessTemplateResponse.
type SuccessTemplateResponse struct {
	Data    *Template                      `json:"data,omitempty"`
	Success SuccessTemplateResponseSuccess `json:"success"`
}

// SuccessTemplateResponseSuccess defines model for SuccessTemplateResponse.Success.
type SuccessTemplateResponseSuccess bool

// SuccessUserResponse defines model for SuccessUserResponse.
type SuccessUserResponse struct {
	Data    *User                      `json:"data,omitempty"`
	Success SuccessUserResponseSuccess `json:"success"`
}

// SuccessUserResponseSuccess defines model for SuccessUserResponse.Success.
type SuccessUserResponseSuccess bool

// SuccessVolumeFileArchiveImportResponse defines model for SuccessVolumeFileArchiveImportResponse.
type SuccessVolumeFileArchiveImportResponse struct {
	Data    *VolumeFileArchiveImportResponse              `json:"data,omitempty"`
	Success SuccessVolumeFileArchiveImportResponseSuccess `json:"success"`
}

// SuccessVolumeFileArchiveImportResponseSuccess defines model for SuccessVolumeFileArchiveImportResponse.Success.
type SuccessVolumeFileArchiveImportResponseSuccess bool

// SuccessWrittenResponse defines model for SuccessWrittenResponse.
type SuccessWrittenResponse struct {
	Data *struct {
		Written *bool `json:"written,omitempty"`
	} `json:"data,omitempty"`
	Success SuccessWrittenResponseSuccess `json:"success"`
}

// SuccessWrittenResponseSuccess defines model for SuccessWrittenResponse.Success.
type SuccessWrittenResponseSuccess bool

// TLSClientCertificateProjection Client certificate projection used for TLS terminate-reoriginate auth.
type TLSClientCertificateProjection = map[string]interface{}

// Team defines model for Team.
type Team struct {
	CreatedAt    time.Time `json:"created_at"`
	HomeRegionId *string   `json:"home_region_id"`
	Id           string    `json:"id"`
	Name         string    `json:"name"`
	OwnerId      *string   `json:"owner_id"`
	Slug         string    `json:"slug"`
	UpdatedAt    time.Time `json:"updated_at"`
}

// TeamDeleteConflictDetails defines model for TeamDeleteConflictDetails.
type TeamDeleteConflictDetails struct {
	// BlockingResources Resources that must be removed before the team can be deleted.
	BlockingResources []TeamDeleteResourceCount `json:"blocking_resources"`

	// RetainedResources Historical resources retained by policy. These do not block deletion.
	RetainedResources *[]TeamDeleteResourceCount `json:"retained_resources,omitempty"`

	// RetentionPolicy Summary of the historical metering retention policy for team deletion.
	RetentionPolicy *string `json:"retention_policy,omitempty"`
	TeamId          string  `json:"team_id"`
}

// TeamDeleteConflictResponse defines model for TeamDeleteConflictResponse.
type TeamDeleteConflictResponse struct {
	Error struct {
		Code    string                     `json:"code"`
		Details *TeamDeleteConflictDetails `json:"details,omitempty"`
		Message string                     `json:"message"`
	} `json:"error"`
	Success bool `json:"success"`
}

// TeamDeleteResourceCount defines model for TeamDeleteResourceCount.
type TeamDeleteResourceCount struct {
	// Category Machine-readable resource category that still references the team.
	Category string `json:"category"`

	// Count Number of resources in this category.
	Count int64 `json:"count"`
}

// TeamMember defines model for TeamMember.
type TeamMember struct {
	// AvatarUrl User avatar URL. Present in team member list responses.
	AvatarUrl *string `json:"avatar_url,omitempty"`

	// Email User email address. Present in team member list responses.
	Email    *openapi_types.Email `json:"email,omitempty"`
	Id       string               `json:"id"`
	JoinedAt time.Time            `json:"joined_at"`

	// Name User display name. Present in team member list responses.
	Name   *string `json:"name,omitempty"`
	Role   string  `json:"role"`
	TeamId string  `json:"team_id"`
	UserId string  `json:"user_id"`
}

// TeamQuota defines model for TeamQuota.
type TeamQuota struct {
	Current    int64          `json:"current"`
	Dimension  QuotaDimension `json:"dimension"`
	LimitValue *int64         `json:"limit_value"`
	Remaining  *int64         `json:"remaining"`
	TeamId     string         `json:"team_id"`
	Unit       TeamQuotaUnit  `json:"unit"`
	Unlimited  bool           `json:"unlimited"`
}

// TeamQuotaUnit defines model for TeamQuota.Unit.
type TeamQuotaUnit string

// Template defines model for Template.
type Template struct {
	CreatedAt  time.Time              `json:"created_at"`
	Scope      string                 `json:"scope"`
	Spec       SandboxTemplateSpec    `json:"spec"`
	Status     *SandboxTemplateStatus `json:"status,omitempty"`
	TeamId     *string                `json:"team_id,omitempty"`
	TemplateId string                 `json:"template_id"`
	UpdatedAt  time.Time              `json:"updated_at"`
	UserId     *string                `json:"user_id,omitempty"`
}

// TemplateCreateRequest defines model for TemplateCreateRequest.
type TemplateCreateRequest struct {
	Spec       SandboxTemplateSpec `json:"spec"`
	TemplateId string              `json:"template_id"`
}

// TemplateUpdateRequest defines model for TemplateUpdateRequest.
type TemplateUpdateRequest struct {
	Spec SandboxTemplateSpec `json:"spec"`
}

// Toleration defines model for Toleration.
type Toleration struct {
	Effect   *string `json:"effect,omitempty"`
	Key      *string `json:"key,omitempty"`
	Operator *string `json:"operator,omitempty"`
	Value    *string `json:"value,omitempty"`
}

// TrafficRule defines model for TrafficRule.
type TrafficRule struct {
	Action TrafficRuleAction `json:"action"`

	// AppProtocols Classified application protocols matched by the rule.
	AppProtocols *[]TrafficRuleAppProtocol `json:"appProtocols,omitempty"`

	// Cidrs CIDR match list for the rule.
	Cidrs *[]string `json:"cidrs,omitempty"`

	// Domains Domain match list for the rule.
	Domains *[]string `json:"domains,omitempty"`

	// Name Optional stable identifier used for merge and replacement.
	Name *string `json:"name,omitempty"`

	// Ports Port/protocol constraints for the rule.
	Ports *[]PortSpec `json:"ports,omitempty"`
}

// TrafficRuleAction defines model for TrafficRuleAction.
type TrafficRuleAction string

// TrafficRuleAppProtocol defines model for TrafficRuleAppProtocol.
type TrafficRuleAppProtocol string

// TransferTeamOwnerRequest defines model for TransferTeamOwnerRequest.
type TransferTeamOwnerRequest struct {
	UserId string `json:"user_id"`
}

// UpdateRegionRequest defines model for UpdateRegionRequest.
type UpdateRegionRequest struct {
	DisplayName        *string `json:"display_name,omitempty"`
	Enabled            *bool   `json:"enabled,omitempty"`
	MeteringExportUrl  *string `json:"metering_export_url"`
	RegionalGatewayUrl *string `json:"regional_gateway_url,omitempty"`
}

// UpdateTeamMemberRequest defines model for UpdateTeamMemberRequest.
type UpdateTeamMemberRequest struct {
	Role UpdateTeamMemberRequestRole `json:"role"`
}

// UpdateTeamMemberRequestRole defines model for UpdateTeamMemberRequest.Role.
type UpdateTeamMemberRequestRole string

// UpdateTeamRequest defines model for UpdateTeamRequest.
type UpdateTeamRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// UpdateUserRequest defines model for UpdateUserRequest.
type UpdateUserRequest struct {
	AvatarUrl *string `json:"avatar_url,omitempty"`
	Name      *string `json:"name,omitempty"`
}

// User defines model for User.
type User struct {
	AvatarUrl     *string             `json:"avatar_url"`
	CreatedAt     time.Time           `json:"created_at"`
	Email         openapi_types.Email `json:"email"`
	EmailVerified bool                `json:"email_verified"`
	Id            string              `json:"id"`
	IsAdmin       bool                `json:"is_admin"`
	Name          string              `json:"name"`
	UpdatedAt     time.Time           `json:"updated_at"`
}

// UsernamePasswordProjection Username/password projection used for SOCKS5 and MQTT auth handshakes.
type UsernamePasswordProjection = map[string]interface{}

// VolumeAccessMode Access mode for sandbox volumes. Enforcement is scoped to storage-proxy instances. RWO allows read-write mounts on a single instance; ROX allows read-only mounts across instances; RWX allows read-write mounts across instances.
type VolumeAccessMode string

// VolumeBackend Storage backend for a SandboxVolume. s0fs is the default durable Sandbox0 volume backend. s3 mounts an existing S3-compatible prefix through the volume portal and supports mount-s3-like object projection.
type VolumeBackend string

// VolumeFileArchiveImportResponse defines model for VolumeFileArchiveImportResponse.
type VolumeFileArchiveImportResponse struct {
	Bytes       int64 `json:"bytes"`
	Directories int64 `json:"directories"`
	Files       int64 `json:"files"`
	Symlinks    int64 `json:"symlinks"`
}

// VolumeMountSpec defines model for VolumeMountSpec.
type VolumeMountSpec struct {
	MountPath string `json:"mountPath"`
	Name      string `json:"name"`
	ReadOnly  *bool  `json:"readOnly,omitempty"`
}

// WebLoginExchangeRequest defines model for WebLoginExchangeRequest.
type WebLoginExchangeRequest struct {
	// LoginCode Short-lived one-time code returned to the web login callback.
	LoginCode string `json:"login_code"`

	// ReturnUrl Exact return URL used when the login code was created.
	ReturnUrl string `json:"return_url"`
}

// WebhookConfig Per-sandbox webhook configuration. Sandbox0 delivers webhook events at least once and consumers should deduplicate by event_id. For sandbox lifecycle events, procd persists signed delivery records to a manager-owned SandboxVolume outside the workspace before dispatch; manager also emits sandbox.deleted during pod deletion cleanup.
type WebhookConfig struct {
	// Secret Optional. Shared secret used to sign webhook payloads.
	Secret *string `json:"secret,omitempty"`

	// Url Required when webhook is enabled. Target URL that receives event callbacks.
	Url *string `json:"url,omitempty"`

	// WatchDir Optional. When set, procd subscribes to file events under this directory (same semantics as the file watch WebSocket API) and emits file.modified events.
	WatchDir *string `json:"watch_dir,omitempty"`
}

// WeightedPodAffinityTerm defines model for WeightedPodAffinityTerm.
type WeightedPodAffinityTerm struct {
	PodAffinityTerm PodAffinityTerm `json:"podAffinityTerm"`
	Weight          int32           `json:"weight"`
}

// APIKeyID defines model for APIKeyID.
type APIKeyID = string

// ContextID defines model for ContextID.
type ContextID = string

// FilePath defines model for FilePath.
type FilePath = string

// IdentityID defines model for IdentityID.
type IdentityID = string

// OIDCProvider defines model for OIDCProvider.
type OIDCProvider = string

// QueryMkdir defines model for QueryMkdir.
type QueryMkdir = bool

// QueryRecursive defines model for QueryRecursive.
type QueryRecursive = bool

// RegionId defines model for RegionId.
type RegionId = string

// RootFSSnapshotID defines model for RootFSSnapshotID.
type RootFSSnapshotID = string

// SandboxID defines model for SandboxID.
type SandboxID = string

// SandboxVolumeID defines model for SandboxVolumeID.
type SandboxVolumeID = string

// SnapshotID defines model for SnapshotID.
type SnapshotID = string

// TeamID defines model for TeamID.
type TeamID = string

// TemplateID defines model for TemplateID.
type TemplateID = string

// UserID defines model for UserID.
type UserID = string

// GetApiV1SandboxesParams defines parameters for GetApiV1Sandboxes.
type GetApiV1SandboxesParams struct {
	// Status Filter by sandbox status
	Status *SandboxLifecycleStatus `form:"status,omitempty" json:"status,omitempty"`

	// TemplateId Filter by template ID
	TemplateId *string `form:"template_id,omitempty" json:"template_id,omitempty"`

	// Paused Filter by paused state
	Paused *bool `form:"paused,omitempty" json:"paused,omitempty"`

	// Limit Maximum number of results per page
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset Pagination offset
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DeleteApiV1SandboxesIdFilesParams defines parameters for DeleteApiV1SandboxesIdFiles.
type DeleteApiV1SandboxesIdFilesParams struct {
	Path FilePath `form:"path" json:"path"`
}

// GetApiV1SandboxesIdFilesParams defines parameters for GetApiV1SandboxesIdFiles.
type GetApiV1SandboxesIdFilesParams struct {
	Path FilePath `form:"path" json:"path"`
}

// PostApiV1SandboxesIdFilesParams defines parameters for PostApiV1SandboxesIdFiles.
type PostApiV1SandboxesIdFilesParams struct {
	Path      FilePath        `form:"path" json:"path"`
	Mkdir     *QueryMkdir     `form:"mkdir,omitempty" json:"mkdir,omitempty"`
	Recursive *QueryRecursive `form:"recursive,omitempty" json:"recursive,omitempty"`
}

// GetApiV1SandboxesIdFilesListParams defines parameters for GetApiV1SandboxesIdFilesList.
type GetApiV1SandboxesIdFilesListParams struct {
	Path FilePath `form:"path" json:"path"`
}

// GetApiV1SandboxesIdFilesStatParams defines parameters for GetApiV1SandboxesIdFilesStat.
type GetApiV1SandboxesIdFilesStatParams struct {
	Path FilePath `form:"path" json:"path"`
}

// GetSandboxRuntimeMetricsParams defines parameters for GetSandboxRuntimeMetrics.
type GetSandboxRuntimeMetricsParams struct {
	// StartTime Query observations at or after this RFC3339 timestamp. Defaults to one hour before end_time.
	StartTime *time.Time `form:"start_time,omitempty" json:"start_time,omitempty"`

	// EndTime Query observations at or before this RFC3339 timestamp. Defaults to the current time.
	EndTime *time.Time `form:"end_time,omitempty" json:"end_time,omitempty"`

	// Metrics Comma-separated canonical metric names. Defaults to CPU utilization, memory utilization, and network I/O.
	Metrics *string `form:"metrics,omitempty" json:"metrics,omitempty"`

	// StepSeconds Requested bucket width in seconds. The effective step is at least 15 seconds and may be increased to honor max_points.
	StepSeconds *int `form:"step_seconds,omitempty" json:"step_seconds,omitempty"`

	// Statistic Aggregation applied within each output bucket. Auto uses average for gauges and rate for counters.
	Statistic *SandboxRuntimeMetricStatistic `form:"statistic,omitempty" json:"statistic,omitempty"`

	// MaxPoints Maximum points per returned series. The server may increase step_seconds to honor this bound.
	MaxPoints *int `form:"max_points,omitempty" json:"max_points,omitempty"`
}

// GetApiV1SandboxesIdObservabilityEventsParams defines parameters for GetApiV1SandboxesIdObservabilityEvents.
type GetApiV1SandboxesIdObservabilityEventsParams struct {
	// StartTime Include events that occurred at or after this RFC3339 timestamp.
	StartTime *time.Time `form:"start_time,omitempty" json:"start_time,omitempty"`

	// EndTime Include events that occurred at or before this RFC3339 timestamp.
	EndTime *time.Time `form:"end_time,omitempty" json:"end_time,omitempty"`

	// Limit Maximum number of events to return. Values above 1000 are capped.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Cursor Opaque pagination cursor returned by a previous response. When watch is true, this must be a watch resume cursor from an NDJSON watermark line.
	Cursor *string `form:"cursor,omitempty" json:"cursor,omitempty"`

	// Watch Stream matching records as application/x-ndjson in ingestion order until the client disconnects. When watch is true, end_time is not supported. Without cursor or start_time, streaming starts at request time.
	Watch     *bool                          `form:"watch,omitempty" json:"watch,omitempty"`
	Source    *ObservabilityEventSource      `form:"source,omitempty" json:"source,omitempty"`
	EventType *SandboxObservabilityEventType `form:"event_type,omitempty" json:"event_type,omitempty"`
	Outcome   *SandboxObservabilityOutcome   `form:"outcome,omitempty" json:"outcome,omitempty"`
}

// GetApiV1SandboxesIdObservabilityLogsParams defines parameters for GetApiV1SandboxesIdObservabilityLogs.
type GetApiV1SandboxesIdObservabilityLogsParams struct {
	// StartTime Include log entries that occurred at or after this RFC3339 timestamp.
	StartTime *time.Time `form:"start_time,omitempty" json:"start_time,omitempty"`

	// EndTime Include log entries that occurred at or before this RFC3339 timestamp.
	EndTime *time.Time `form:"end_time,omitempty" json:"end_time,omitempty"`

	// Limit Maximum number of log entries to return. Values above 1000 are capped.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Cursor Opaque pagination cursor returned by a previous response. When watch is true, this must be a watch resume cursor from an NDJSON watermark line.
	Cursor *string `form:"cursor,omitempty" json:"cursor,omitempty"`

	// Watch Stream matching records as application/x-ndjson in ingestion order until the client disconnects. When watch is true, end_time is not supported. Without cursor or start_time, streaming starts at request time.
	Watch *bool `form:"watch,omitempty" json:"watch,omitempty"`

	// ContextId Restrict results to a sandbox process context.
	ContextId *string                        `form:"context_id,omitempty" json:"context_id,omitempty"`
	Stream    *SandboxObservabilityLogStream `form:"stream,omitempty" json:"stream,omitempty"`
}

// DeleteApiV1SandboxvolumesIdParams defines parameters for DeleteApiV1SandboxvolumesId.
type DeleteApiV1SandboxvolumesIdParams struct {
	// Force Force delete even if volume has active mounts
	Force *bool `form:"force,omitempty" json:"force,omitempty"`
}

// DeleteApiV1SandboxvolumesIdFilesParams defines parameters for DeleteApiV1SandboxvolumesIdFiles.
type DeleteApiV1SandboxvolumesIdFilesParams struct {
	Path FilePath `form:"path" json:"path"`
}

// GetApiV1SandboxvolumesIdFilesParams defines parameters for GetApiV1SandboxvolumesIdFiles.
type GetApiV1SandboxvolumesIdFilesParams struct {
	Path FilePath `form:"path" json:"path"`
}

// PostApiV1SandboxvolumesIdFilesParams defines parameters for PostApiV1SandboxvolumesIdFiles.
type PostApiV1SandboxvolumesIdFilesParams struct {
	Path      FilePath        `form:"path" json:"path"`
	Mkdir     *QueryMkdir     `form:"mkdir,omitempty" json:"mkdir,omitempty"`
	Recursive *QueryRecursive `form:"recursive,omitempty" json:"recursive,omitempty"`
}

// PutApiV1SandboxvolumesIdFilesArchiveParams defines parameters for PutApiV1SandboxvolumesIdFilesArchive.
type PutApiV1SandboxvolumesIdFilesArchiveParams struct {
	Path FilePath `form:"path" json:"path"`
}

// GetApiV1SandboxvolumesIdFilesListParams defines parameters for GetApiV1SandboxvolumesIdFilesList.
type GetApiV1SandboxvolumesIdFilesListParams struct {
	Path FilePath `form:"path" json:"path"`
}

// GetApiV1SandboxvolumesIdFilesStatParams defines parameters for GetApiV1SandboxvolumesIdFilesStat.
type GetApiV1SandboxvolumesIdFilesStatParams struct {
	Path FilePath `form:"path" json:"path"`
}

// GetAuthOidcProviderCallbackParams defines parameters for GetAuthOidcProviderCallback.
type GetAuthOidcProviderCallbackParams struct {
	Code  string `form:"code" json:"code"`
	State string `form:"state" json:"state"`
}

// GetAuthOidcProviderLoginParams defines parameters for GetAuthOidcProviderLogin.
type GetAuthOidcProviderLoginParams struct {
	ReturnUrl *string `form:"return_url,omitempty" json:"return_url,omitempty"`

	// WebLogin When true, the OIDC callback redirects to return_url with a short-lived login_code for server-side exchange.
	WebLogin *bool `form:"web_login,omitempty" json:"web_login,omitempty"`
}

// GetTeamsIdMembersParams defines parameters for GetTeamsIdMembers.
type GetTeamsIdMembersParams struct {
	// Query Search by member email, display name, or user ID.
	Query *string `form:"query,omitempty" json:"query,omitempty"`
}

// PostApiKeysJSONRequestBody defines body for PostApiKeys for application/json ContentType.
type PostApiKeysJSONRequestBody = CreateAPIKeyRequest

// PostApiV1CredentialSourcesJSONRequestBody defines body for PostApiV1CredentialSources for application/json ContentType.
type PostApiV1CredentialSourcesJSONRequestBody = CredentialSourceWriteRequest

// PutApiV1CredentialSourcesNameJSONRequestBody defines body for PutApiV1CredentialSourcesName for application/json ContentType.
type PutApiV1CredentialSourcesNameJSONRequestBody = CredentialSourceWriteRequest

// PostApiV1RegistryCredentialsJSONRequestBody defines body for PostApiV1RegistryCredentials for application/json ContentType.
type PostApiV1RegistryCredentialsJSONRequestBody = RegistryCredentialsRequest

// PostApiV1SandboxesJSONRequestBody defines body for PostApiV1Sandboxes for application/json ContentType.
type PostApiV1SandboxesJSONRequestBody = ClaimRequest

// PutApiV1SandboxesIdJSONRequestBody defines body for PutApiV1SandboxesId for application/json ContentType.
type PutApiV1SandboxesIdJSONRequestBody = SandboxUpdateRequest

// PostApiV1SandboxesIdContextsJSONRequestBody defines body for PostApiV1SandboxesIdContexts for application/json ContentType.
type PostApiV1SandboxesIdContextsJSONRequestBody = CreateContextRequest

// PostApiV1SandboxesIdContextsCtxIdExecJSONRequestBody defines body for PostApiV1SandboxesIdContextsCtxIdExec for application/json ContentType.
type PostApiV1SandboxesIdContextsCtxIdExecJSONRequestBody = ContextInputRequest

// PostApiV1SandboxesIdContextsCtxIdInputJSONRequestBody defines body for PostApiV1SandboxesIdContextsCtxIdInput for application/json ContentType.
type PostApiV1SandboxesIdContextsCtxIdInputJSONRequestBody = ContextInputRequest

// PostApiV1SandboxesIdContextsCtxIdResizeJSONRequestBody defines body for PostApiV1SandboxesIdContextsCtxIdResize for application/json ContentType.
type PostApiV1SandboxesIdContextsCtxIdResizeJSONRequestBody = ResizeContextRequest

// PostApiV1SandboxesIdContextsCtxIdSignalJSONRequestBody defines body for PostApiV1SandboxesIdContextsCtxIdSignal for application/json ContentType.
type PostApiV1SandboxesIdContextsCtxIdSignalJSONRequestBody = SignalContextRequest

// PostApiV1SandboxesIdFilesMoveJSONRequestBody defines body for PostApiV1SandboxesIdFilesMove for application/json ContentType.
type PostApiV1SandboxesIdFilesMoveJSONRequestBody = MoveFileRequest

// PostApiV1SandboxesIdForkJSONRequestBody defines body for PostApiV1SandboxesIdFork for application/json ContentType.
type PostApiV1SandboxesIdForkJSONRequestBody = ForkSandboxRequest

// PutApiV1SandboxesIdNetworkJSONRequestBody defines body for PutApiV1SandboxesIdNetwork for application/json ContentType.
type PutApiV1SandboxesIdNetworkJSONRequestBody = SandboxNetworkPolicy

// PostApiV1SandboxesIdRefreshJSONRequestBody defines body for PostApiV1SandboxesIdRefresh for application/json ContentType.
type PostApiV1SandboxesIdRefreshJSONRequestBody = SandboxRefreshRequest

// PostApiV1SandboxesIdRootfsRestoreJSONRequestBody defines body for PostApiV1SandboxesIdRootfsRestore for application/json ContentType.
type PostApiV1SandboxesIdRootfsRestoreJSONRequestBody = RestoreSandboxRootFSRequest

// PutApiV1SandboxesIdServicesJSONRequestBody defines body for PutApiV1SandboxesIdServices for application/json ContentType.
type PutApiV1SandboxesIdServicesJSONRequestBody = SandboxServicesUpdateRequest

// PostApiV1SandboxesIdSnapshotsJSONRequestBody defines body for PostApiV1SandboxesIdSnapshots for application/json ContentType.
type PostApiV1SandboxesIdSnapshotsJSONRequestBody = CreateSandboxRootFSSnapshotRequest

// PostApiV1SandboxvolumesJSONRequestBody defines body for PostApiV1Sandboxvolumes for application/json ContentType.
type PostApiV1SandboxvolumesJSONRequestBody = CreateSandboxVolumeRequest

// PostApiV1SandboxvolumesIdFilesMoveJSONRequestBody defines body for PostApiV1SandboxvolumesIdFilesMove for application/json ContentType.
type PostApiV1SandboxvolumesIdFilesMoveJSONRequestBody = MoveFileRequest

// PostApiV1SandboxvolumesIdForkJSONRequestBody defines body for PostApiV1SandboxvolumesIdFork for application/json ContentType.
type PostApiV1SandboxvolumesIdForkJSONRequestBody = ForkVolumeRequest

// PostApiV1SandboxvolumesIdSnapshotsJSONRequestBody defines body for PostApiV1SandboxvolumesIdSnapshots for application/json ContentType.
type PostApiV1SandboxvolumesIdSnapshotsJSONRequestBody = CreateSnapshotRequest

// PostApiV1TemplatesJSONRequestBody defines body for PostApiV1Templates for application/json ContentType.
type PostApiV1TemplatesJSONRequestBody = TemplateCreateRequest

// PutApiV1TemplatesIdJSONRequestBody defines body for PutApiV1TemplatesId for application/json ContentType.
type PutApiV1TemplatesIdJSONRequestBody = TemplateUpdateRequest

// PostAuthChangePasswordJSONRequestBody defines body for PostAuthChangePassword for application/json ContentType.
type PostAuthChangePasswordJSONRequestBody = ChangePasswordRequest

// PostAuthLoginJSONRequestBody defines body for PostAuthLogin for application/json ContentType.
type PostAuthLoginJSONRequestBody = LoginRequest

// PostAuthOidcProviderDevicePollJSONRequestBody defines body for PostAuthOidcProviderDevicePoll for application/json ContentType.
type PostAuthOidcProviderDevicePollJSONRequestBody = DeviceLoginPollRequest

// PostAuthRefreshJSONRequestBody defines body for PostAuthRefresh for application/json ContentType.
type PostAuthRefreshJSONRequestBody = RefreshRequest

// PostAuthRegisterJSONRequestBody defines body for PostAuthRegister for application/json ContentType.
type PostAuthRegisterJSONRequestBody = RegisterRequest

// PostAuthWebLoginExchangeJSONRequestBody defines body for PostAuthWebLoginExchange for application/json ContentType.
type PostAuthWebLoginExchangeJSONRequestBody = WebLoginExchangeRequest

// PostRegionsJSONRequestBody defines body for PostRegions for application/json ContentType.
type PostRegionsJSONRequestBody = CreateRegionRequest

// PutRegionsIdJSONRequestBody defines body for PutRegionsId for application/json ContentType.
type PutRegionsIdJSONRequestBody = UpdateRegionRequest

// PostTeamsJSONRequestBody defines body for PostTeams for application/json ContentType.
type PostTeamsJSONRequestBody = CreateTeamRequest

// PutTeamsIdJSONRequestBody defines body for PutTeamsId for application/json ContentType.
type PutTeamsIdJSONRequestBody = UpdateTeamRequest

// PostTeamsIdMembersJSONRequestBody defines body for PostTeamsIdMembers for application/json ContentType.
type PostTeamsIdMembersJSONRequestBody = AddTeamMemberRequest

// PutTeamsIdMembersUserIdJSONRequestBody defines body for PutTeamsIdMembersUserId for application/json ContentType.
type PutTeamsIdMembersUserIdJSONRequestBody = UpdateTeamMemberRequest

// PutTeamsIdOwnerJSONRequestBody defines body for PutTeamsIdOwner for application/json ContentType.
type PutTeamsIdOwnerJSONRequestBody = TransferTeamOwnerRequest

// PutUsersMeJSONRequestBody defines body for PutUsersMe for application/json ContentType.
type PutUsersMeJSONRequestBody = UpdateUserRequest

// PostUsersMeSshKeysJSONRequestBody defines body for PostUsersMeSshKeys for application/json ContentType.
type PostUsersMeSshKeysJSONRequestBody = CreateSSHPublicKeyRequest

// AsSandboxObservabilityEvent returns the union data inside the SandboxObservabilityWatchLine_Data as a SandboxObservabilityEvent
func (t SandboxObservabilityWatchLine_Data) AsSandboxObservabilityEvent() (SandboxObservabilityEvent, error) {
	var body SandboxObservabilityEvent
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromSandboxObservabilityEvent overwrites any union data inside the SandboxObservabilityWatchLine_Data as the provided SandboxObservabilityEvent
func (t *SandboxObservabilityWatchLine_Data) FromSandboxObservabilityEvent(v SandboxObservabilityEvent) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeSandboxObservabilityEvent performs a merge with any union data inside the SandboxObservabilityWatchLine_Data, using the provided SandboxObservabilityEvent
func (t *SandboxObservabilityWatchLine_Data) MergeSandboxObservabilityEvent(v SandboxObservabilityEvent) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsSandboxObservabilityLogEntry returns the union data inside the SandboxObservabilityWatchLine_Data as a SandboxObservabilityLogEntry
func (t SandboxObservabilityWatchLine_Data) AsSandboxObservabilityLogEntry() (SandboxObservabilityLogEntry, error) {
	var body SandboxObservabilityLogEntry
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromSandboxObservabilityLogEntry overwrites any union data inside the SandboxObservabilityWatchLine_Data as the provided SandboxObservabilityLogEntry
func (t *SandboxObservabilityWatchLine_Data) FromSandboxObservabilityLogEntry(v SandboxObservabilityLogEntry) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeSandboxObservabilityLogEntry performs a merge with any union data inside the SandboxObservabilityWatchLine_Data, using the provided SandboxObservabilityLogEntry
func (t *SandboxObservabilityWatchLine_Data) MergeSandboxObservabilityLogEntry(v SandboxObservabilityLogEntry) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t SandboxObservabilityWatchLine_Data) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *SandboxObservabilityWatchLine_Data) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}
