Core Models
Core Pydantic models used throughout DiracX for data validation and serialization.
models
Models are used to define the data structure of the requests and responses for the DiracX API. They are shared between the client components (cli, api) and services components (db, logic, routers).
Attributes
SearchSpec = ScalarSearchSpec | VectorSearchSpec
module-attribute
Classes
ScalarSearchOperator
Bases: StrEnum
Source code in diracx-core/src/diracx/core/models.py
Attributes
EQUAL = 'eq'
class-attribute
instance-attribute
NOT_EQUAL = 'neq'
class-attribute
instance-attribute
GREATER_THAN = 'gt'
class-attribute
instance-attribute
LESS_THAN = 'lt'
class-attribute
instance-attribute
LIKE = 'like'
class-attribute
instance-attribute
NOT_LIKE = 'not like'
class-attribute
instance-attribute
REGEX = 'regex'
class-attribute
instance-attribute
VectorSearchOperator
ScalarSearchSpec
VectorSearchSpec
SortDirection
SortSpec
InsertedJob
SummaryParams
pydantic-model
SearchParams
pydantic-model
Bases: BaseModel
Fields:
Source code in diracx-core/src/diracx/core/models.py
Attributes
parameters = None
pydantic-field
search = []
pydantic-field
sort = []
pydantic-field
distinct = False
pydantic-field
JobParameters
pydantic-model
Bases: BaseModel
Some of the most important parameters that can be set for a job.
Fields:
-
timestamp(datetime | None) -
cpu_normalization_factor(int | None) -
norm_cpu_time_s(int | None) -
total_cpu_time_s(int | None) -
host_name(str | None) -
grid_ce(str | None) -
model_name(str | None) -
pilot_agent(str | None) -
pilot_reference(str | None) -
memory_mb(int | None) -
local_account(str | None) -
payload_pid(int | None) -
ce_queue(str | None) -
batch_system(str | None) -
job_type(str | None) -
job_status(str | None)
Validators:
Source code in diracx-core/src/diracx/core/models.py
Attributes
timestamp = None
pydantic-field
cpu_normalization_factor = None
pydantic-field
norm_cpu_time_s = None
pydantic-field
total_cpu_time_s = None
pydantic-field
host_name = None
pydantic-field
grid_ce = None
pydantic-field
model_name = None
pydantic-field
pilot_agent = None
pydantic-field
pilot_reference = None
pydantic-field
memory_mb = None
pydantic-field
local_account = None
pydantic-field
payload_pid = None
pydantic-field
ce_queue = None
pydantic-field
batch_system = None
pydantic-field
job_type = None
pydantic-field
job_status = None
pydantic-field
Functions
convert_cpu_fields_to_int(v)
pydantic-validator
Convert string representation of float to integer for CPU-related fields.
Source code in diracx-core/src/diracx/core/models.py
JobAttributes
pydantic-model
Bases: BaseModel
All the attributes that can be set for a job.
Fields:
-
job_type(str | None) -
job_group(str | None) -
site(str | None) -
job_name(str | None) -
owner(str | None) -
owner_group(str | None) -
vo(str | None) -
submission_time(datetime | None) -
reschedule_time(datetime | None) -
last_update_time(datetime | None) -
start_exec_time(datetime | None) -
heart_beat_time(datetime | None) -
end_exec_time(datetime | None) -
status(str | None) -
minor_status(str | None) -
application_status(str | None) -
user_priority(int | None) -
reschedule_counter(int | None) -
verified_flag(bool | None) -
accounted_flag(bool | str | None)
Source code in diracx-core/src/diracx/core/models.py
Attributes
job_type = None
pydantic-field
job_group = None
pydantic-field
site = None
pydantic-field
job_name = None
pydantic-field
owner = None
pydantic-field
owner_group = None
pydantic-field
vo = None
pydantic-field
submission_time = None
pydantic-field
reschedule_time = None
pydantic-field
last_update_time = None
pydantic-field
start_exec_time = None
pydantic-field
heart_beat_time = None
pydantic-field
end_exec_time = None
pydantic-field
status = None
pydantic-field
minor_status = None
pydantic-field
application_status = None
pydantic-field
user_priority = None
pydantic-field
reschedule_counter = None
pydantic-field
verified_flag = None
pydantic-field
accounted_flag = None
pydantic-field
JobMetaData
pydantic-model
Bases: JobAttributes, JobParameters
A model that combines both JobAttributes and JobParameters.
Fields:
-
timestamp(datetime | None) -
cpu_normalization_factor(int | None) -
norm_cpu_time_s(int | None) -
total_cpu_time_s(int | None) -
host_name(str | None) -
grid_ce(str | None) -
model_name(str | None) -
pilot_agent(str | None) -
pilot_reference(str | None) -
memory_mb(int | None) -
local_account(str | None) -
payload_pid(int | None) -
ce_queue(str | None) -
batch_system(str | None) -
job_type(str | None) -
job_status(str | None) -
job_group(str | None) -
site(str | None) -
job_name(str | None) -
owner(str | None) -
owner_group(str | None) -
vo(str | None) -
submission_time(datetime | None) -
reschedule_time(datetime | None) -
last_update_time(datetime | None) -
start_exec_time(datetime | None) -
heart_beat_time(datetime | None) -
end_exec_time(datetime | None) -
status(str | None) -
minor_status(str | None) -
application_status(str | None) -
user_priority(int | None) -
reschedule_counter(int | None) -
verified_flag(bool | None) -
accounted_flag(bool | str | None)
Validators:
Source code in diracx-core/src/diracx/core/models.py
JobStatus
Bases: StrEnum
Source code in diracx-core/src/diracx/core/models.py
Attributes
SUBMITTING = 'Submitting'
class-attribute
instance-attribute
RECEIVED = 'Received'
class-attribute
instance-attribute
CHECKING = 'Checking'
class-attribute
instance-attribute
STAGING = 'Staging'
class-attribute
instance-attribute
WAITING = 'Waiting'
class-attribute
instance-attribute
MATCHED = 'Matched'
class-attribute
instance-attribute
RUNNING = 'Running'
class-attribute
instance-attribute
STALLED = 'Stalled'
class-attribute
instance-attribute
COMPLETING = 'Completing'
class-attribute
instance-attribute
DONE = 'Done'
class-attribute
instance-attribute
COMPLETED = 'Completed'
class-attribute
instance-attribute
FAILED = 'Failed'
class-attribute
instance-attribute
DELETED = 'Deleted'
class-attribute
instance-attribute
KILLED = 'Killed'
class-attribute
instance-attribute
RESCHEDULED = 'Rescheduled'
class-attribute
instance-attribute
JobMinorStatus
Bases: StrEnum
Source code in diracx-core/src/diracx/core/models.py
Attributes
MAX_RESCHEDULING = 'Maximum of reschedulings reached'
class-attribute
instance-attribute
RESCHEDULED = 'Job Rescheduled'
class-attribute
instance-attribute
JobLoggingRecord
pydantic-model
Bases: BaseModel
Fields:
-
job_id(int) -
status(JobStatus | Literal['idem']) -
minor_status(str) -
application_status(str) -
date(datetime) -
source(str)
Source code in diracx-core/src/diracx/core/models.py
Attributes
job_id
pydantic-field
status
pydantic-field
minor_status
pydantic-field
application_status
pydantic-field
date
pydantic-field
source
pydantic-field
JobStatusUpdate
pydantic-model
Bases: BaseModel
Fields:
-
Status(JobStatus | None) -
MinorStatus(str | None) -
ApplicationStatus(str | None) -
Source(str)
Source code in diracx-core/src/diracx/core/models.py
Attributes
Status = None
pydantic-field
MinorStatus = None
pydantic-field
ApplicationStatus = None
pydantic-field
Source = 'Unknown'
pydantic-field
LimitedJobStatusReturn
pydantic-model
Bases: BaseModel
Fields:
Source code in diracx-core/src/diracx/core/models.py
Attributes
Status
pydantic-field
MinorStatus
pydantic-field
ApplicationStatus
pydantic-field
JobStatusReturn
pydantic-model
Bases: LimitedJobStatusReturn
Fields:
-
Status(JobStatus) -
MinorStatus(str) -
ApplicationStatus(str) -
StatusTime(datetime) -
Source(str)
Source code in diracx-core/src/diracx/core/models.py
Attributes
StatusTime
pydantic-field
Source
pydantic-field
SetJobStatusReturn
pydantic-model
Bases: BaseModel
Fields:
Source code in diracx-core/src/diracx/core/models.py
Attributes
success
pydantic-field
failed
pydantic-field
Classes
SetJobStatusReturnSuccess
pydantic-model
Bases: BaseModel
Successful new status change.
Fields:
-
Status(JobStatus | None) -
MinorStatus(str | None) -
ApplicationStatus(str | None) -
HeartBeatTime(datetime | None) -
StartExecTime(datetime | None) -
EndExecTime(datetime | None) -
LastUpdateTime(datetime | None)
Source code in diracx-core/src/diracx/core/models.py
Status = None
pydantic-field
MinorStatus = None
pydantic-field
ApplicationStatus = None
pydantic-field
HeartBeatTime = None
pydantic-field
StartExecTime = None
pydantic-field
EndExecTime = None
pydantic-field
LastUpdateTime = None
pydantic-field
UserInfo
pydantic-model
Bases: BaseModel
Fields:
-
sub(str) -
preferred_username(str) -
dirac_group(str) -
vo(str)
Source code in diracx-core/src/diracx/core/models.py
Attributes
sub
pydantic-field
preferred_username
pydantic-field
dirac_group
pydantic-field
vo
pydantic-field
ChecksumAlgorithm
SandboxFormat
SandboxInfo
pydantic-model
Bases: BaseModel
Fields:
Source code in diracx-core/src/diracx/core/models.py
Attributes
checksum_algorithm
pydantic-field
checksum
pydantic-field
size
pydantic-field
format
pydantic-field
SandboxType
SandboxDownloadResponse
pydantic-model
SandboxUploadResponse
pydantic-model
Bases: BaseModel
Fields:
Source code in diracx-core/src/diracx/core/models.py
Attributes
pfn
pydantic-field
url = None
pydantic-field
fields = {}
pydantic-field
TokenTypeHint
Bases: StrEnum
Token type hints for RFC7009 revocation endpoint.
Source code in diracx-core/src/diracx/core/models.py
Attributes
access_token = 'access_token'
class-attribute
instance-attribute
refresh_token = 'refresh_token'
class-attribute
instance-attribute
GrantType
Bases: StrEnum
Grant types for OAuth2.
Source code in diracx-core/src/diracx/core/models.py
Attributes
authorization_code = 'authorization_code'
class-attribute
instance-attribute
device_code = 'urn:ietf:params:oauth:grant-type:device_code'
class-attribute
instance-attribute
refresh_token = 'refresh_token'
class-attribute
instance-attribute
InitiateDeviceFlowResponse
Bases: TypedDict
Response for the device flow initiation.
Source code in diracx-core/src/diracx/core/models.py
Attributes
user_code
instance-attribute
device_code
instance-attribute
verification_uri_complete
instance-attribute
verification_uri
instance-attribute
expires_in
instance-attribute
OpenIDConfiguration
Bases: TypedDict
Source code in diracx-core/src/diracx/core/models.py
Attributes
issuer
instance-attribute
token_endpoint
instance-attribute
userinfo_endpoint
instance-attribute
authorization_endpoint
instance-attribute
device_authorization_endpoint
instance-attribute
revocation_endpoint
instance-attribute
jwks_uri
instance-attribute
grant_types_supported
instance-attribute
scopes_supported
instance-attribute
response_types_supported
instance-attribute
token_endpoint_auth_signing_alg_values_supported
instance-attribute
token_endpoint_auth_methods_supported
instance-attribute
code_challenge_methods_supported
instance-attribute
TokenPayload
TokenResponse
pydantic-model
Bases: BaseModel
Fields:
-
access_token(str) -
expires_in(int) -
token_type(str) -
refresh_token(str | None)
Source code in diracx-core/src/diracx/core/models.py
Attributes
access_token
pydantic-field
expires_in
pydantic-field
token_type = 'Bearer'
pydantic-field
refresh_token = None
pydantic-field
AccessTokenPayload
Bases: TokenPayload
Source code in diracx-core/src/diracx/core/models.py
Attributes
sub
instance-attribute
vo
instance-attribute
iss
instance-attribute
dirac_properties
instance-attribute
preferred_username
instance-attribute
dirac_group
instance-attribute
RefreshTokenPayload
Bases: TokenPayload
Source code in diracx-core/src/diracx/core/models.py
Attributes
legacy_exchange
instance-attribute
SupportInfo
GroupInfo
VOInfo
Metadata
HeartbeatData
pydantic-model
Bases: BaseModel
Fields:
-
LoadAverage(float | None) -
MemoryUsed(float | None) -
Vsize(float | None) -
AvailableDiskSpace(float | None) -
CPUConsumed(float | None) -
WallClockTime(float | None) -
StandardOutput(str | None)
Source code in diracx-core/src/diracx/core/models.py
Attributes
LoadAverage = None
pydantic-field
MemoryUsed = None
pydantic-field
Vsize = None
pydantic-field
AvailableDiskSpace = None
pydantic-field
CPUConsumed = None
pydantic-field
WallClockTime = None
pydantic-field
StandardOutput = None
pydantic-field
JobCommand
pydantic-model
Bases: BaseModel
Fields: