jubilant.modeltypes

Dataclasses that contain parsed output from juju show-model --format=json.

These dataclasses were originally generated from the Go structs in the Juju codebase, to ensure they are correct. Class names come from the Go struct name, whereas attribute names come from the JSON field names.

class jubilant.modeltypes.ModelCredential(
name: 'str',
owner: 'str',
cloud: 'str',
validity_check: 'str' = '',
)

Bases: object

cloud: str
name: str
owner: str
validity_check: str = ''
class jubilant.modeltypes.ModelInfo(
name: str,
short_name: str,
model_uuid: str,
model_type: str,
controller_uuid: str,
controller_name: str,
is_controller: bool,
cloud: str,
life: str,
region: str = '',
type: str = '',
status: ~jubilant.modeltypes.ModelStatusInfo = <factory>,
users: dict[str,
~jubilant.modeltypes.ModelUserInfo] = <factory>,
machines: dict[str,
~jubilant.modeltypes.ModelMachineInfo] = <factory>,
secret_backends: dict[str,
~jubilant.modeltypes.SecretBackendInfo] = <factory>,
agent_version: str = '',
credential: ~jubilant.modeltypes.ModelCredential | None = None,
supported_features: list[~jubilant.modeltypes.SupportedFeature] = <factory>,
)

Bases: object

Parsed version of the object returned by juju show-model --format=json.

agent_version: str = ''
cloud: str
controller_name: str
controller_uuid: str
credential: ModelCredential | None = None
is_controller: bool
life: str
machines: dict[str, ModelMachineInfo]
model_type: str
model_uuid: str
name: str
region: str = ''
secret_backends: dict[str, SecretBackendInfo]
short_name: str
status: ModelStatusInfo
supported_features: list[SupportedFeature]
type: str = ''
users: dict[str, ModelUserInfo]
class jubilant.modeltypes.ModelMachineInfo(cores: 'int')

Bases: object

cores: int
class jubilant.modeltypes.ModelStatusInfo(
current: 'str' = '',
message: 'str' = '',
reason: 'str' = '',
since: 'str' = '',
migration: 'str' = '',
migration_start: 'str' = '',
migration_end: 'str' = '',
)

Bases: object

current: str = ''
message: str = ''
migration: str = ''
migration_end: str = ''
migration_start: str = ''
reason: str = ''
since: str = ''
class jubilant.modeltypes.ModelUserInfo(access: 'str', last_connection: 'str', display_name: 'str' = '')

Bases: object

access: str
display_name: str = ''
last_connection: str
class jubilant.modeltypes.SecretBackendInfo(num_secrets: 'int', status: 'str', message: 'str' = '')

Bases: object

message: str = ''
num_secrets: int
status: str
class jubilant.modeltypes.SupportedFeature(name: 'str', description: 'str', version: 'str' = '')

Bases: object

description: str
name: str
version: str = ''