pa_api.xmlapi.types.config.devicegroup
1from typing import Optional 2 3from pydantic import AliasPath, ConfigDict, Field 4 5from pa_api.xmlapi.types.utils import List, String, XMLBaseModel 6 7from .address import Address 8from .rules import RuleBase 9 10 11class DeviceGroup(XMLBaseModel): 12 """ 13 This is used to parse the output of the running configuration. 14 """ 15 16 model_config = ConfigDict(extra="allow") 17 18 name: String = Field(validation_alias="@name") 19 description: String = "" 20 21 devices: List[String] = Field( 22 validation_alias=AliasPath("devices", "entry", "@name"), default_factory=list 23 ) 24 # devices: List[Device] = Field( 25 # validation_alias=AliasPath("devices", "entry"), default_factory=list 26 # ) 27 addresses: List[Address] = Field( 28 validation_alias=AliasPath("address", "entry"), default_factory=list 29 ) 30 post_rulebase: Optional[RuleBase] = Field( 31 validation_alias="post-rulebase", default=None 32 ) 33 pre_rulebase: Optional[RuleBase] = Field( 34 validation_alias="pre-rulebase", default=None 35 ) 36 # applications: List[Application] = Field( 37 # validation_alias=AliasPath("application", "entry"), default_factory=list 38 # ) 39 tags: List[String] = Field( 40 validation_alias=AliasPath("tag", "member"), default_factory=list 41 ) 42 43 def iter_rulebases(self): 44 for rulebase in (self.pre_rulebase, self.post_rulebase): 45 if rulebase is not None: 46 yield rulebase
12class DeviceGroup(XMLBaseModel): 13 """ 14 This is used to parse the output of the running configuration. 15 """ 16 17 model_config = ConfigDict(extra="allow") 18 19 name: String = Field(validation_alias="@name") 20 description: String = "" 21 22 devices: List[String] = Field( 23 validation_alias=AliasPath("devices", "entry", "@name"), default_factory=list 24 ) 25 # devices: List[Device] = Field( 26 # validation_alias=AliasPath("devices", "entry"), default_factory=list 27 # ) 28 addresses: List[Address] = Field( 29 validation_alias=AliasPath("address", "entry"), default_factory=list 30 ) 31 post_rulebase: Optional[RuleBase] = Field( 32 validation_alias="post-rulebase", default=None 33 ) 34 pre_rulebase: Optional[RuleBase] = Field( 35 validation_alias="pre-rulebase", default=None 36 ) 37 # applications: List[Application] = Field( 38 # validation_alias=AliasPath("application", "entry"), default_factory=list 39 # ) 40 tags: List[String] = Field( 41 validation_alias=AliasPath("tag", "member"), default_factory=list 42 ) 43 44 def iter_rulebases(self): 45 for rulebase in (self.pre_rulebase, self.post_rulebase): 46 if rulebase is not None: 47 yield rulebase
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].
name: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f0db0c89bd0>, json_schema_input_type=PydanticUndefined)]
description: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f0db0c89bd0>, json_schema_input_type=PydanticUndefined)]
devices: Annotated[List[Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f0db0c89bd0>, json_schema_input_type=PydanticUndefined)]], BeforeValidator(func=<function ensure_list at 0x7f0db0c89ab0>, json_schema_input_type=PydanticUndefined)]
addresses: Annotated[List[pa_api.xmlapi.types.config.address.Address], BeforeValidator(func=<function ensure_list at 0x7f0db0c89ab0>, json_schema_input_type=PydanticUndefined)]
post_rulebase: Optional[pa_api.xmlapi.types.config.rules.rulebase.RuleBase]
pre_rulebase: Optional[pa_api.xmlapi.types.config.rules.rulebase.RuleBase]
model_fields: ClassVar[Dict[str, pydantic.fields.FieldInfo]] =
{'name': FieldInfo(annotation=str, required=True, alias_priority=2, validation_alias='@name', metadata=[BeforeValidator(func=<function ensure_str>, json_schema_input_type=PydanticUndefined)]), 'description': FieldInfo(annotation=str, required=False, default='', metadata=[BeforeValidator(func=<function ensure_str>, json_schema_input_type=PydanticUndefined)]), 'devices': FieldInfo(annotation=List[Annotated[str, BeforeValidator]], required=False, default_factory=list, alias_priority=2, validation_alias=AliasPath(path=['devices', 'entry', '@name']), metadata=[BeforeValidator(func=<function ensure_list>, json_schema_input_type=PydanticUndefined)]), 'addresses': FieldInfo(annotation=List[Address], required=False, default_factory=list, alias_priority=2, validation_alias=AliasPath(path=['address', 'entry']), metadata=[BeforeValidator(func=<function ensure_list>, json_schema_input_type=PydanticUndefined)]), 'post_rulebase': FieldInfo(annotation=Union[RuleBase, NoneType], required=False, default=None, alias_priority=2, validation_alias='post-rulebase'), 'pre_rulebase': FieldInfo(annotation=Union[RuleBase, NoneType], required=False, default=None, alias_priority=2, validation_alias='pre-rulebase'), 'tags': FieldInfo(annotation=List[Annotated[str, BeforeValidator]], required=False, default_factory=list, alias_priority=2, validation_alias=AliasPath(path=['tag', 'member']), metadata=[BeforeValidator(func=<function ensure_list>, json_schema_input_type=PydanticUndefined)])}
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