pa_api.xmlapi.types.operations.ha

 1from typing import Any, Optional
 2
 3from pydantic import ConfigDict, Field, model_validator
 4
 5from pa_api.xmlapi.types.utils import String, XMLBaseModel
 6
 7
 8class HALocalInfo(XMLBaseModel):
 9    model_config = ConfigDict(populate_by_name=True, extra="allow")
10
11    priority: int
12    preemptive: bool
13    state: str
14    mode: String
15    ha1_backup_macaddr: str = Field(alias="ha1-backup-macaddr")
16    ha1_macaddr: str = Field(alias="ha1-macaddr")
17    mgmt_ip: str = Field(alias="mgmt-ip")
18
19
20class HAPeerInfo(XMLBaseModel):
21    model_config = ConfigDict(populate_by_name=True, extra="allow")
22    priority: int
23    preemptive: bool
24    state: str
25    mode: str
26    conn_status: str = Field(alias="conn-status")
27    ha1_backup_macaddr: str = Field(alias="ha1-backup-macaddr")
28    ha1_macaddr: str = Field(alias="ha1-macaddr")
29    mgmt_ip: str = Field(alias="mgmt-ip")
30
31
32class HAGroup(XMLBaseModel):
33    model_config = ConfigDict(populate_by_name=True, extra="allow")
34
35    local_info: HALocalInfo = Field(alias="local-info")
36    peer_info: HAPeerInfo = Field(alias="peer-info")
37
38    @property
39    def is_primary(self):
40        return self.local_info.priority < self.peer_info.priority
41
42
43class HAInfo(XMLBaseModel):
44    model_config = ConfigDict(populate_by_name=True, extra="allow")
45
46    enabled: bool
47    group: Optional[HAGroup] = None
48
49    @model_validator(mode="before")
50    @classmethod
51    def ensure_group_none_if_disabled(cls, data: dict) -> Any:
52        if isinstance(data, dict):
53            enabled = data.get("enabled")
54            if not enabled or enabled != "yes":
55                return {"enabled": "no"}
56        return data
class HALocalInfo(pa_api.xmlapi.types.utils.XMLBaseModel):
 9class HALocalInfo(XMLBaseModel):
10    model_config = ConfigDict(populate_by_name=True, extra="allow")
11
12    priority: int
13    preemptive: bool
14    state: str
15    mode: String
16    ha1_backup_macaddr: str = Field(alias="ha1-backup-macaddr")
17    ha1_macaddr: str = Field(alias="ha1-macaddr")
18    mgmt_ip: str = Field(alias="mgmt-ip")

Usage docs: https://docs.pydantic.dev/2.9/concepts/models/

A base class for creating Pydantic models.

Attributes: __class_vars__: The names of the class variables defined on the model. __private_attributes__: Metadata about the private attributes of the model. __signature__: The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__: The core schema of the model.
__pydantic_custom_init__: Whether the model has a custom `__init__` function.
__pydantic_decorators__: Metadata containing the decorators defined on the model.
    This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
__pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
    __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__: The name of the post-init method for the model, if defined.
__pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel].
__pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model.
__pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model.

__pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra]
    is set to `'allow'`.
__pydantic_fields_set__: The names of fields explicitly set during instantiation.
__pydantic_private__: Values of private attributes set on the model instance.
model_config = {'populate_by_name': True, 'extra': 'allow'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

priority: int
preemptive: bool
state: str
mode: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f0db0c89bd0>, json_schema_input_type=PydanticUndefined)]
ha1_backup_macaddr: str
ha1_macaddr: str
mgmt_ip: str
model_fields: ClassVar[Dict[str, pydantic.fields.FieldInfo]] = {'priority': FieldInfo(annotation=int, required=True), 'preemptive': FieldInfo(annotation=bool, required=True), 'state': FieldInfo(annotation=str, required=True), 'mode': FieldInfo(annotation=str, required=True, metadata=[BeforeValidator(func=<function ensure_str>, json_schema_input_type=PydanticUndefined)]), 'ha1_backup_macaddr': FieldInfo(annotation=str, required=True, alias='ha1-backup-macaddr', alias_priority=2), 'ha1_macaddr': FieldInfo(annotation=str, required=True, alias='ha1-macaddr', alias_priority=2), 'mgmt_ip': FieldInfo(annotation=str, required=True, alias='mgmt-ip', alias_priority=2)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

model_computed_fields: ClassVar[Dict[str, pydantic.fields.ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

Inherited Members
pydantic.main.BaseModel
BaseModel
model_extra
model_fields_set
model_construct
model_copy
model_dump
model_dump_json
model_json_schema
model_parametrized_name
model_post_init
model_rebuild
model_validate
model_validate_json
model_validate_strings
dict
json
parse_obj
parse_raw
parse_file
from_orm
construct
copy
schema
schema_json
validate
update_forward_refs
pa_api.xmlapi.types.utils.XMLBaseModel
from_xml
class HAPeerInfo(pa_api.xmlapi.types.utils.XMLBaseModel):
21class HAPeerInfo(XMLBaseModel):
22    model_config = ConfigDict(populate_by_name=True, extra="allow")
23    priority: int
24    preemptive: bool
25    state: str
26    mode: str
27    conn_status: str = Field(alias="conn-status")
28    ha1_backup_macaddr: str = Field(alias="ha1-backup-macaddr")
29    ha1_macaddr: str = Field(alias="ha1-macaddr")
30    mgmt_ip: str = Field(alias="mgmt-ip")

Usage docs: https://docs.pydantic.dev/2.9/concepts/models/

A base class for creating Pydantic models.

Attributes: __class_vars__: The names of the class variables defined on the model. __private_attributes__: Metadata about the private attributes of the model. __signature__: The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__: The core schema of the model.
__pydantic_custom_init__: Whether the model has a custom `__init__` function.
__pydantic_decorators__: Metadata containing the decorators defined on the model.
    This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
__pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
    __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__: The name of the post-init method for the model, if defined.
__pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel].
__pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model.
__pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model.

__pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra]
    is set to `'allow'`.
__pydantic_fields_set__: The names of fields explicitly set during instantiation.
__pydantic_private__: Values of private attributes set on the model instance.
model_config = {'populate_by_name': True, 'extra': 'allow'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

priority: int
preemptive: bool
state: str
mode: str
conn_status: str
ha1_backup_macaddr: str
ha1_macaddr: str
mgmt_ip: str
model_fields: ClassVar[Dict[str, pydantic.fields.FieldInfo]] = {'priority': FieldInfo(annotation=int, required=True), 'preemptive': FieldInfo(annotation=bool, required=True), 'state': FieldInfo(annotation=str, required=True), 'mode': FieldInfo(annotation=str, required=True), 'conn_status': FieldInfo(annotation=str, required=True, alias='conn-status', alias_priority=2), 'ha1_backup_macaddr': FieldInfo(annotation=str, required=True, alias='ha1-backup-macaddr', alias_priority=2), 'ha1_macaddr': FieldInfo(annotation=str, required=True, alias='ha1-macaddr', alias_priority=2), 'mgmt_ip': FieldInfo(annotation=str, required=True, alias='mgmt-ip', alias_priority=2)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

model_computed_fields: ClassVar[Dict[str, pydantic.fields.ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

Inherited Members
pydantic.main.BaseModel
BaseModel
model_extra
model_fields_set
model_construct
model_copy
model_dump
model_dump_json
model_json_schema
model_parametrized_name
model_post_init
model_rebuild
model_validate
model_validate_json
model_validate_strings
dict
json
parse_obj
parse_raw
parse_file
from_orm
construct
copy
schema
schema_json
validate
update_forward_refs
pa_api.xmlapi.types.utils.XMLBaseModel
from_xml
class HAGroup(pa_api.xmlapi.types.utils.XMLBaseModel):
33class HAGroup(XMLBaseModel):
34    model_config = ConfigDict(populate_by_name=True, extra="allow")
35
36    local_info: HALocalInfo = Field(alias="local-info")
37    peer_info: HAPeerInfo = Field(alias="peer-info")
38
39    @property
40    def is_primary(self):
41        return self.local_info.priority < self.peer_info.priority

Usage docs: https://docs.pydantic.dev/2.9/concepts/models/

A base class for creating Pydantic models.

Attributes: __class_vars__: The names of the class variables defined on the model. __private_attributes__: Metadata about the private attributes of the model. __signature__: The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__: The core schema of the model.
__pydantic_custom_init__: Whether the model has a custom `__init__` function.
__pydantic_decorators__: Metadata containing the decorators defined on the model.
    This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
__pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
    __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__: The name of the post-init method for the model, if defined.
__pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel].
__pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model.
__pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model.

__pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra]
    is set to `'allow'`.
__pydantic_fields_set__: The names of fields explicitly set during instantiation.
__pydantic_private__: Values of private attributes set on the model instance.
model_config = {'populate_by_name': True, 'extra': 'allow'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

local_info: HALocalInfo
peer_info: HAPeerInfo
is_primary
39    @property
40    def is_primary(self):
41        return self.local_info.priority < self.peer_info.priority
model_fields: ClassVar[Dict[str, pydantic.fields.FieldInfo]] = {'local_info': FieldInfo(annotation=HALocalInfo, required=True, alias='local-info', alias_priority=2), 'peer_info': FieldInfo(annotation=HAPeerInfo, required=True, alias='peer-info', alias_priority=2)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

model_computed_fields: ClassVar[Dict[str, pydantic.fields.ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

Inherited Members
pydantic.main.BaseModel
BaseModel
model_extra
model_fields_set
model_construct
model_copy
model_dump
model_dump_json
model_json_schema
model_parametrized_name
model_post_init
model_rebuild
model_validate
model_validate_json
model_validate_strings
dict
json
parse_obj
parse_raw
parse_file
from_orm
construct
copy
schema
schema_json
validate
update_forward_refs
pa_api.xmlapi.types.utils.XMLBaseModel
from_xml
class HAInfo(pa_api.xmlapi.types.utils.XMLBaseModel):
44class HAInfo(XMLBaseModel):
45    model_config = ConfigDict(populate_by_name=True, extra="allow")
46
47    enabled: bool
48    group: Optional[HAGroup] = None
49
50    @model_validator(mode="before")
51    @classmethod
52    def ensure_group_none_if_disabled(cls, data: dict) -> Any:
53        if isinstance(data, dict):
54            enabled = data.get("enabled")
55            if not enabled or enabled != "yes":
56                return {"enabled": "no"}
57        return data

Usage docs: https://docs.pydantic.dev/2.9/concepts/models/

A base class for creating Pydantic models.

Attributes: __class_vars__: The names of the class variables defined on the model. __private_attributes__: Metadata about the private attributes of the model. __signature__: The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__: The core schema of the model.
__pydantic_custom_init__: Whether the model has a custom `__init__` function.
__pydantic_decorators__: Metadata containing the decorators defined on the model.
    This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
__pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
    __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__: The name of the post-init method for the model, if defined.
__pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel].
__pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model.
__pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model.

__pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra]
    is set to `'allow'`.
__pydantic_fields_set__: The names of fields explicitly set during instantiation.
__pydantic_private__: Values of private attributes set on the model instance.
model_config = {'populate_by_name': True, 'extra': 'allow'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

enabled: bool
group: Optional[HAGroup]
@model_validator(mode='before')
@classmethod
def ensure_group_none_if_disabled(cls, data: dict) -> Any:
50    @model_validator(mode="before")
51    @classmethod
52    def ensure_group_none_if_disabled(cls, data: dict) -> Any:
53        if isinstance(data, dict):
54            enabled = data.get("enabled")
55            if not enabled or enabled != "yes":
56                return {"enabled": "no"}
57        return data
model_fields: ClassVar[Dict[str, pydantic.fields.FieldInfo]] = {'enabled': FieldInfo(annotation=bool, required=True), 'group': FieldInfo(annotation=Union[HAGroup, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

model_computed_fields: ClassVar[Dict[str, pydantic.fields.ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

Inherited Members
pydantic.main.BaseModel
BaseModel
model_extra
model_fields_set
model_construct
model_copy
model_dump
model_dump_json
model_json_schema
model_parametrized_name
model_post_init
model_rebuild
model_validate
model_validate_json
model_validate_strings
dict
json
parse_obj
parse_raw
parse_file
from_orm
construct
copy
schema
schema_json
validate
update_forward_refs
pa_api.xmlapi.types.utils.XMLBaseModel
from_xml