X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0f644e242ef37c911ad3dc25aca8135c339de349..ca544ed56275747db6423e9da0c34545296db3f5:/sdk/go/arvados/container.go diff --git a/sdk/go/arvados/container.go b/sdk/go/arvados/container.go index 7d39d678f8..2622c13703 100644 --- a/sdk/go/arvados/container.go +++ b/sdk/go/arvados/container.go @@ -4,9 +4,12 @@ package arvados +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"` @@ -21,6 +24,40 @@ type Container struct { SchedulingParameters SchedulingParameters `json:"scheduling_parameters"` } +// Container is an arvados#container 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"` +} + // Mount is special behavior to attach to a filesystem path or device. type Mount struct { Kind string `json:"kind"` @@ -31,22 +68,27 @@ type Mount struct { Path string `json:"path"` Content interface{} `json:"content"` ExcludeFromOutput bool `json:"exclude_from_output"` - Capacity int64 `json:capacity` + Capacity int64 `json:"capacity"` + Commit string `json:"commit"` // only if kind=="git_tree" + RepositoryName string `json:"repository_name"` // only if kind=="git_tree" + GitURL string `json:"git_url"` // only if kind=="git_tree" } // RuntimeConstraints specify a container's compute resources (RAM, // CPU) and network connectivity. type RuntimeConstraints struct { API *bool - RAM int `json:"ram"` - VCPUs int `json:"vcpus"` - KeepCacheRAM int `json:"keep_cache_ram"` + RAM int64 `json:"ram"` + VCPUs int `json:"vcpus"` + KeepCacheRAM int64 `json:"keep_cache_ram"` } // SchedulingParameters specify a container's scheduling parameters // such as Partitions type SchedulingParameters struct { - Partitions []string `json:"partitions"` + Partitions []string `json:"partitions"` + Preemptible bool `json:"preemptible"` + MaxRunTime int `json:"max_run_time"` } // ContainerList is an arvados#containerList resource. @@ -67,3 +109,12 @@ const ( ContainerStateComplete = ContainerState("Complete") ContainerStateCancelled = ContainerState("Cancelled") ) + +// ContainerState is a string corresponding to a valid Container state. +type ContainerRequestState string + +const ( + ContainerRequestStateUncomitted = ContainerState("Uncommitted") + ContainerRequestStateCommitted = ContainerState("Committed") + ContainerRequestStateFinal = ContainerState("Final") +)