pa_api.xmlapi.types.config.config

 1from pydantic import AliasPath, ConfigDict, Field
 2
 3from pa_api.xmlapi.types.utils import List, String, XMLBaseModel
 4
 5from .devicegroup import DeviceGroup
 6
 7# class DeviceConfig(XMLBaseModel):
 8#     ...
 9
10
11class DeviceEntry(XMLBaseModel):
12    name: String = Field(alias="@name")
13    # config: DeviceConfig = Field(validation_alias=AliasPath("deviceconfig", "entry"))
14    device_groups: List[DeviceGroup] = Field(
15        validation_alias=AliasPath("device-group", "entry")
16    )
17
18
19class Configuration(XMLBaseModel):
20    """
21    This is used to parse the output of the running configuration.
22    """
23
24    model_config = ConfigDict(extra="allow")
25
26    urldb: String = Field(alias="@urldb")
27    version: String = Field(alias="@version")
28    detail_version: String = Field(alias="@detail-version")
29
30    devices: List[DeviceEntry] = Field(validation_alias=AliasPath("devices", "entry"))
class DeviceEntry(pa_api.xmlapi.types.utils.XMLBaseModel):
12class DeviceEntry(XMLBaseModel):
13    name: String = Field(alias="@name")
14    # config: DeviceConfig = Field(validation_alias=AliasPath("deviceconfig", "entry"))
15    device_groups: List[DeviceGroup] = Field(
16        validation_alias=AliasPath("device-group", "entry")
17    )

!!! 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.
name: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f4bd793fac0>, json_schema_input_type=PydanticUndefined)]
device_groups: Annotated[List[pa_api.xmlapi.types.config.devicegroup.DeviceGroup], BeforeValidator(func=<function ensure_list at 0x7f4bd793f9a0>, json_schema_input_type=PydanticUndefined)]
model_config: ClassVar[pydantic.config.ConfigDict] = {}

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

class Configuration(pa_api.xmlapi.types.utils.XMLBaseModel):
20class Configuration(XMLBaseModel):
21    """
22    This is used to parse the output of the running configuration.
23    """
24
25    model_config = ConfigDict(extra="allow")
26
27    urldb: String = Field(alias="@urldb")
28    version: String = Field(alias="@version")
29    detail_version: String = Field(alias="@detail-version")
30
31    devices: List[DeviceEntry] = Field(validation_alias=AliasPath("devices", "entry"))

This is used to parse the output of the running configuration.

model_config = {'extra': 'allow'}

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

urldb: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f4bd793fac0>, json_schema_input_type=PydanticUndefined)]
version: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f4bd793fac0>, json_schema_input_type=PydanticUndefined)]
detail_version: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f4bd793fac0>, json_schema_input_type=PydanticUndefined)]
devices: Annotated[List[DeviceEntry], BeforeValidator(func=<function ensure_list at 0x7f4bd793f9a0>, json_schema_input_type=PydanticUndefined)]