X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6fe8e52020d421797306e5c6536afbcee761510a..38a0f5e77f2190487d03d6538337d3b7055fd1e8:/sdk/go/arvados/container.go diff --git a/sdk/go/arvados/container.go b/sdk/go/arvados/container.go index 210ed9981c..b8530db342 100644 --- a/sdk/go/arvados/container.go +++ b/sdk/go/arvados/container.go @@ -8,20 +8,68 @@ import "time" // Container is an arvados#container resource. type Container struct { - UUID string `json:"uuid"` - CreatedAt time.Time `json:"created_at"` - Command []string `json:"command"` - ContainerImage string `json:"container_image"` - Cwd string `json:"cwd"` - Environment map[string]string `json:"environment"` - LockedByUUID string `json:"locked_by_uuid"` - Mounts map[string]Mount `json:"mounts"` - Output string `json:"output"` - OutputPath string `json:"output_path"` - Priority int `json:"priority"` - RuntimeConstraints RuntimeConstraints `json:"runtime_constraints"` - State ContainerState `json:"state"` - SchedulingParameters SchedulingParameters `json:"scheduling_parameters"` + UUID string `json:"uuid"` + Etag string `json:"etag"` + CreatedAt time.Time `json:"created_at"` + ModifiedByClientUUID string `json:"modified_by_client_uuid"` + ModifiedByUserUUID string `json:"modified_by_user_uuid"` + ModifiedAt time.Time `json:"modified_at"` + Command []string `json:"command"` + ContainerImage string `json:"container_image"` + Cwd string `json:"cwd"` + Environment map[string]string `json:"environment"` + LockedByUUID string `json:"locked_by_uuid"` + Mounts map[string]Mount `json:"mounts"` + Output string `json:"output"` + OutputPath string `json:"output_path"` + Priority int64 `json:"priority"` + RuntimeConstraints RuntimeConstraints `json:"runtime_constraints"` + State ContainerState `json:"state"` + SchedulingParameters SchedulingParameters `json:"scheduling_parameters"` + ExitCode int `json:"exit_code"` + RuntimeStatus map[string]interface{} `json:"runtime_status"` + StartedAt *time.Time `json:"started_at"` // nil if not yet started + FinishedAt *time.Time `json:"finished_at"` // nil if not yet finished + GatewayAddress string `json:"gateway_address"` + InteractiveSessionStarted bool `json:"interactive_session_started"` +} + +// ContainerRequest is an arvados#container_request resource. +type ContainerRequest struct { + UUID string `json:"uuid"` + OwnerUUID string `json:"owner_uuid"` + CreatedAt time.Time `json:"created_at"` + ModifiedByClientUUID string `json:"modified_by_client_uuid"` + ModifiedByUserUUID string `json:"modified_by_user_uuid"` + ModifiedAt time.Time `json:"modified_at"` + Href string `json:"href"` + Kind string `json:"kind"` + Etag string `json:"etag"` + Name string `json:"name"` + Description string `json:"description"` + Properties map[string]interface{} `json:"properties"` + State ContainerRequestState `json:"state"` + RequestingContainerUUID string `json:"requesting_container_uuid"` + ContainerUUID string `json:"container_uuid"` + ContainerCountMax int `json:"container_count_max"` + Mounts map[string]Mount `json:"mounts"` + RuntimeConstraints RuntimeConstraints `json:"runtime_constraints"` + SchedulingParameters SchedulingParameters `json:"scheduling_parameters"` + ContainerImage string `json:"container_image"` + Environment map[string]string `json:"environment"` + Cwd string `json:"cwd"` + Command []string `json:"command"` + OutputPath string `json:"output_path"` + OutputName string `json:"output_name"` + OutputTTL int `json:"output_ttl"` + Priority int `json:"priority"` + UseExisting bool `json:"use_existing"` + LogUUID string `json:"log_uuid"` + OutputUUID string `json:"output_uuid"` + RuntimeToken string `json:"runtime_token"` + ExpiresAt time.Time `json:"expires_at"` + Filters []Filter `json:"filters"` + ContainerCount int `json:"container_count"` } // Mount is special behavior to attach to a filesystem path or device. @@ -43,7 +91,7 @@ type Mount struct { // RuntimeConstraints specify a container's compute resources (RAM, // CPU) and network connectivity. type RuntimeConstraints struct { - API *bool + API bool `json:"API"` RAM int64 `json:"ram"` VCPUs int `json:"vcpus"` KeepCacheRAM int64 `json:"keep_cache_ram"` @@ -65,6 +113,14 @@ type ContainerList struct { Limit int `json:"limit"` } +// ContainerRequestList is an arvados#containerRequestList resource. +type ContainerRequestList struct { + Items []ContainerRequest `json:"items"` + ItemsAvailable int `json:"items_available"` + Offset int `json:"offset"` + Limit int `json:"limit"` +} + // ContainerState is a string corresponding to a valid Container state. type ContainerState string @@ -75,3 +131,12 @@ const ( ContainerStateComplete = ContainerState("Complete") ContainerStateCancelled = ContainerState("Cancelled") ) + +// ContainerRequestState is a string corresponding to a valid Container Request state. +type ContainerRequestState string + +const ( + ContainerRequestStateUncomitted = ContainerRequestState("Uncommitted") + ContainerRequestStateCommitted = ContainerRequestState("Committed") + ContainerRequestStateFinal = ContainerRequestState("Final") +)