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
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")
!!! abstract "Usage Documentation" 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_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.
__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.
Configuration for the model, should be a dictionary conforming to [ConfigDict
][pydantic.config.ConfigDict].
Inherited Members
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")
!!! abstract "Usage Documentation" 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_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.
__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.
Configuration for the model, should be a dictionary conforming to [ConfigDict
][pydantic.config.ConfigDict].
Inherited Members
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
!!! abstract "Usage Documentation" 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_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.
__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.
Configuration for the model, should be a dictionary conforming to [ConfigDict
][pydantic.config.ConfigDict].
Inherited Members
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
!!! abstract "Usage Documentation" 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_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.
__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.
Configuration for the model, should be a dictionary conforming to [ConfigDict
][pydantic.config.ConfigDict].